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>
<button onclick="addBusinessType()">Add "Business Type"</button>
<button onclick="resetSlice()">Reset Slice</button>
<div id="pivot-container"></div>
JavaScript
// Initial slice:
const initialSlice = {
rows: [{
uniqueName: "Country"
}],
measures: [{
uniqueName: "Price"
}]
}
// Initial filters:
const initialFilters = [{
uniqueName: "Category",
filter: {}
}, {
uniqueName: "Size",
filter: {}
}, {
uniqueName: "Color",
filter: {}
}, {
uniqueName: "Destination",
filter: {}
}, {
uniqueName: "Business Type",
filter: {}
}, {
uniqueName: "Country",
filter: {}
}, {
uniqueName: "Price",
filter: {}
}, {
uniqueName: "Quantity",
filter: {}
}, {
uniqueName: "Discount",
filter: {}
}];
var pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
width: "100%",
height: 430,
toolbar: true,
report: {
dataSource: {
filename: "data/data.csv"
},
slice: initialSlice
}
});
function resetSlice() {
// Resetting the slice:
pivot.runQuery(initialSlice);
// Resetting the filters:
for (i = 0; i < initialFilters.length; i++) {
pivot.setFilter(initialFilters[i].uniqueName, initialFilters[i].filter);
}
}
function addBusinessType() {
let currentSlice = flexmonster.getReport().slice;
let newField = {
uniqueName: "Business Type"
};
currentSlice.columns.push(newField);
flexmonster.runQuery(currentSlice);
}