JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
HTML
<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivot-container"></div>
CSS
.disabled {
opacity: 0.5;
}
JavaScript
new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
width: "100%",
height: 430,
toolbar: true,
report: {
dataSource: {
filename: "data/sales.csv"
},
"slice": {
"rows": [
{
"uniqueName": "Category"
}
],
"columns": [
{
"uniqueName": "[Measures]"
}
],
"measures": [
{
"uniqueName": "Unit Price",
"aggregation": "sum"
}
]
}
},
fieldslistopen: onFieldsListOpen,
fieldslistclose: onFieldsListClose
});
function onFieldsListClose() {
$("#pivot-container #fm-fields-view").off("mouseup", mouseupHanlder);
}
function onFieldsListOpen() {
$("#pivot-container #fm-fields-view").on("mouseup", mouseupHanlder);
checkFieldsCount();
}
function mouseupHanlder() {
setTimeout(checkFieldsCount, 1);
}
function checkFieldsCount() {
var applyBtn = $("#pivot-container #fm-fields-view a.fm-ui-btn-dark");
var fieldsCount = $("#pivot-container #fm-fields-view").find("#fm-lst-pages li, #fm-lst-rows li, #fm-lst-columns li, #fm-lst-measures li").length - 1;
console.log("fieldsCount", fieldsCount);
var isDisabled = fieldsCount > 8;
if (isDisabled && !applyBtn.hasClass("disabled")) {
alert("Please select max 8 fields.");
}
applyBtn.toggleClass("fm-ui-disabled", isDisabled);
applyBtn.toggleClass("disabled", isDisabled);
}