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-pivot-view .fm-grid-view div.fm-cell.green {
color: #75cf35 !important;
}
#fm-pivot-view .fm-grid-view div.fm-cell.red {
color: #f58888 !important;
}
JavaScript
const pivot = new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
height: 550,
toolbar: true,
report: {
dataSource: {
type: "json",
filename: "data/retail-data.json",
mapping: {
"Order Date": {
type: "date string",
},
},
},
options: {
grid: {
type: "classic"
},
showGrandTotals: "off",
showAggregationLabels: false
},
slice: {
rows: [{
uniqueName: "[Measures]",
}],
columns: [{
uniqueName: "Order Date",
filter: {
query: {
before: "2018-01-07"
}
}
}],
measures: [{
uniqueName: "Price",
aggregation: "sum",
},
{
uniqueName: "Quantity",
aggregation: "sum",
caption: "Quantity"
},
{
uniqueName: "Sales",
aggregation: "sum",
},
],
},
formats: [{
name: "",
thousandsSeparator: ",",
decimalSeparator: ".",
decimalPlaces: 0,
currencySymbol: "$",
positiveCurrencyFormat: "$1",
nullValue: "-",
textAlign: "right",
isPercent: false,
}, ],
},
customizeCell: customizeCell,
beforegriddraw: getCurrentData
});
const currentData = {};
function getCurrentData() {
pivot.getData({
rows: [{
uniqueName: "[Measures]",
}],
columns: [{
uniqueName: "Order Date",
filter: {
query: {
before: "2018-01-07"
}
}
}],
measures: [{
uniqueName: "Price",
aggregation: "sum",
},
{
uniqueName: "Quantity",
aggregation: "sum",
caption: "Quantity"
},
{
uniqueName: "Sales",
aggregation: "sum",
...