JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<div id="pivot-container"></div>
JavaScript
var pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
width: "100%",
height: 500,
toolbar: true,
customizeCell: customizeCellFunction,
report: {
"dataSource": {
"data": getData()
},
"slice": {
"reportFilters": [
{"uniqueName": "Destination"},
{"uniqueName": "Discount"},
{"uniqueName": "Quantity"},
{"uniqueName": "Size"},
{"uniqueName": "Column1"},
{"uniqueName": "Column2"},
{"uniqueName": "Column3"},
{"uniqueName": "Column4"},
{"uniqueName": "Column5"},
{"uniqueName": "Column6"},
{"uniqueName": "Column7"}
],
"rows": [{
"uniqueName": "Country"
}, {
"uniqueName": "Business Type"
}, {
"uniqueName": "Category"
}, {
"uniqueName": "[Measures]"
}],
"columns": [{
"uniqueName": "Color"
}],
"measures": [{
"uniqueName": "Price"
}],
"expands": {
"rows": [
{
"tuple": [
"country.[australia]"
]
},
{
"tuple": [
"country.[australia]",
"business type.[warehouse]"
]
}
]
}
},
"options": {
"grid": {
"type": "flat"
}
}
}
});
function customizeCellFunction(cell, data) {
if (data.isClassicTotalRow) cell.addClass("fm-total-classic-r");
if (data.isGrandTotalRow) cell.addClass("fm-grand-total-r");
if (data.isGrandTotalColumn) cell.addClass("fm-grand-total-c");
}
function getData() {
return [{
"Category": "Accessories",
"Size": "262 oz",
"Color": "red",
"Destination": "Australia",
"Business Type": "Specialty Bike Shop",
"Country": "Australia",
"Price": 174,
"Quantity": 225,
"Discount": 23,
"Column1": "1",
"Column2": "2",
"Column3": "3",
"Column4": "4",
"Column5": "5",
"Column6":...