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="pivotContainer"></div>
JavaScript
var pivot = new Flexmonster({
container: "pivotContainer",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
"dataSource": {
"type": "csv",
"filename": "data/data.csv"
},
"slice": {
"rows": [{
"uniqueName": "Category"
}],
"columns": [{
"uniqueName": "[Measures]"
}],
"measures": [{
"uniqueName": "Price",
"aggregation": "sum"
},
{
"uniqueName": "Quantity",
"aggregation": "sum"
},
{
"uniqueName": "Editable",
"formula": "sum(\"Quantity\") * sum(\"Price\")",
"caption": "Editable"
},
{
"uniqueName": "~#Not Editable",
"formula": "sum(\"Quantity\") * sum(\"Price\")",
"caption": "~#Not Editable"
}
]
},
options: {
showCalculatedValuesButton: false
}
}
});
pivot.on("fieldslistopen", () => {
setTimeout(() => {
let measuresList = document.querySelector("#fm-lst-measures").childNodes;
for (let measure of measuresList)
if (measure.childNodes[0].innerText.includes("~#"))
measure.removeChild(measure.childNodes[1]);
}, 0);
});
pivot.customizeContextMenu(function(items, data, viewType) {
if (data.measure && data.measure.formula && data.measure.uniqueName.includes("~#"))
items.splice(3, 1);
return items;
});