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
.fm-custom-cell {
display: flex !important;
align-items: center !important;
font-size: 12px !important;
}
.fm-custom-cell .flag-icon {
width: 21px !important;
height: 16px !important;
margin-left: 0 !important;
margin-right: 2px !important;
}
#fm-pivot-view .fm-grid-layout .fm-custom-cell.fm-expanded .fm-expanded-icon::before,
#fm-pivot-view .fm-grid-layout .fm-custom-cell.fm-collapsed .fm-collapsed-icon::before {
top: -2px;
height: 16px;
}
JavaScript
new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
height: 550,
toolbar: true,
report: {
options: {
grid: {
showGrandTotals: "rows",
showTotals: "columns",
type: "classic"
}
},
"dataSource": {
"type": "json",
"filename": "data/retail-data.json",
},
"slice": {
"rows": [{
"uniqueName": "Country",
"filter": {
"members": [
"country.[australia]",
"country.[usa]",
"country.[japan]"
]
}
},
{
"uniqueName": "Status",
"filter": {
"members": [
"status.[resolved]",
]
}
},
{
"uniqueName": "[Measures]"
}
],
"measures": [{
"uniqueName": "Price",
"aggregation": "sum",
},
{
"uniqueName": "Quantity",
"aggregation": "sum"
},
{
"uniqueName": "Sales",
"aggregation": "sum"
}
],
"expands": {
"expandAll": true
}
}
}
});