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>
<input id="file" type="file" accept=".json"/>
<div id="pivotContainer"></div>
CSS
#file {
margin: 10px;
}
JavaScript
var pivot = new Flexmonster({
container: "pivotContainer",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
dataSource: {
filename: "data/data.csv"
}
}
});
pivot.on('reportcomplete', () => {
console.log(pivot.getReport());
});
(function() {
function onChange(event) {
var reader = new FileReader();
if (event.target.files[0]) {
reader.onload = onReaderLoad;
reader.readAsText(event.target.files[0]);
}
}
function onReaderLoad(event) {
try {
setReport(JSON.parse(event.target.result));
} catch (e) {
pivot.alert({
title: "Error",
message: "Invalid JSON",
type: "error",
buttons: [{
label: "OK"
}],
blocking: false
});
}
}
document.getElementById('file').addEventListener('change', onChange);
}());
function setReport(report) {
report.dataSource.requestHeaders = {
key: 'value'
}
console.log(report);
pivot.setReport(report);
}