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>
JavaScript
new Flexmonster({
container: "#pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
height: 370,
report: {
dataSource: {
type: "json",
data: getData()
},
slice: {
rows: [{
uniqueName: "Area"
},
{
uniqueName: "Vendor"
},
{
uniqueName: "Truck"
}
],
measures: [{
uniqueName: "Count of Trucks",
formula: "count(\"Truck\")",
caption: "Count of Trucks"
}]
},
options: {
grid: {
type: "flat",
},
},
}
});
function uniqueAreaVendor(dataset) {
let uniqueCombinations = {};
dataset.forEach(entry => {
const key = entry.Area + "|" + entry.Vendor;
if (!uniqueCombinations[key]) {
uniqueCombinations[key] = {
Area: entry.Area,
Vendor: entry.Vendor,
"Count of Trucks": 1
};
} else {
uniqueCombinations[key]["Count of Trucks"]++;
}
});
return Object.values(uniqueCombinations);
}
function getData() {
return [{
Area: "West Virginia",
Vendor: "Vendor Inc",
Truck: "Volvo FH16 Aero"
},
{
Area: "West Virginia",
Vendor: "Vendor Inc",
Truck: "Freightliner Cascadia"
},
{
Area: "West Virginia",
Vendor: "Vendor Inc",
Truck: "Western Star 5700XE"
},
{
Area: "West Virginia",
Vendor: "Transport Solutions",
Truck: "Kenworth W900"
},
{
Area: "West Virginia",
Vendor: "Transport Solutions",
Truck: "Volvo VNL 860"
},
{
Area: "Northern California",
Vendor: "Transport Solutions",
Truck: "Freightliner Coronado"
},
{
Area: "Northern California",
Vendor: "Vendor Inc",
Truck: "Peterbilt 579"
},
{
Area: "Northern California",
Vendor: "Vendor Inc",
Truck: "Mack Anthem"
},
{
Area: "Northern California",
Vendor:...