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[hierarchy-r-0="Country"][member-r-0="Canada"] {
background-color: #CCCCCC;
}
#fm-pivot-view .fm-grid-view div.fm-cell[measure="Price"],
#fm-pivot-view .fm-grid-view div.fm-cell.fm-header[measure="Price"] {
background-color: #B2DBBF;
}
JavaScript
let pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
customizeCell: customizeCellFunction,
report: {
"dataSource": {
"filename": "data/retail-data.json",
mapping: {
"Order Date": {
type: "year/month/day"
}
}
},
slice: {
rows: [{
uniqueName: "Country"
}, {
uniqueName: "Status"
}],
columns: [{
uniqueName: "Order Date",
levelName: "Order Date.Month"
}, {
uniqueName: "[Measures]"
}],
measures: [{
uniqueName: "Price",
aggregation: "sum"
}]
}
}
});
const monthRegex = /^(January|February|March|April|May|June|July|August|September|October|November|December)/;
function customizeCellFunction(cell, data) {
if (data.type == "header" && data.columns.length > 0 && data.member && data.member.hierarchyName == "Order Date" && monthRegex.test(data.member.caption)) {
const year = data.member.parentMember.match(/\d+/g);
cell.text = cell.text.replace(monthRegex, "$& "+year);
}
}