JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
April 25, 2024
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="updateData()">Update data from the same URL</button>
<button onclick="updateDataWithTimestamp()">Force updating data from the same URL using timestamp</button>
<div id="pivot-container">The component will appear here</div>
<div class="output" id="output">Output will appear here</div>
CSS
.output {
width: 80%;
height: 300px;
margin-left: auto;
margin-right: auto;
padding: 20px;
background: rgba(242, 242, 242, 1);
font-family: Menlo, Monaco, "Courier New", Courier, monospace;
white-space: pre-wrap;
font-size: 16px;
font-weight: 400;
overflow-y: scroll;
margin-top: 20px;
margin-bottom: 10px;
}
code {
font-size: 105%;
color: #DF3800;
background-color: #f5f5f5;
padding: 1px 4px;
font-family: monospace !important;
border-radius: 4px;
}
p {
font-size: 15px;
line-height: 1.5;
padding-right: 10px;
padding-left: 10px;
}
a {
color: #00a45a;
text-decoration: none;
}
button {
margin-left: 10px;
}
JavaScript
var pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
height: 340
});
flexmonster.on('dataloaded', function() {
showOutput('Data loaded!');
});
flexmonster.on('loadingdata', function() {
showOutput('Loading data!');
});
flexmonster.on('dataerror', function(e) {
showOutput('Error with data!' + e.error);
});
function updateData() {
flexmonster.updateData({
filename: "data/data.csv"
})
}
function updateDataWithTimestamp() {
flexmonster.updateData({
filename: "data/data.csv?" + Date.now()
})
}
let outputInitialized = false;
function showOutput(content) {
var log = "[" + (new Date()).toLocaleTimeString('en-US') + "] " + content;
var outputElement = document.getElementById("output");
if (!outputInitialized) {
outputElement.innerText = '';
outputInitialized = true;
}
outputElement.innerText += log + "\n";
outputElement.scrollTop = outputElement.scrollHeight;
}