JSFiddle - React, Tailwind, and code Playground
by Flexmonster Pivot Table
HTML
<script src="https://cdn.flexmonster.com/flexmonster.js"></script>
<p>Try dragging a measure(Discount, Quantity, Price) into Rows/Columns secton</p>
<div id="pivot-container"></div>
CSS
@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);
JavaScript
var pivot = new Flexmonster({
container: "pivot-container",
componentFolder: "https://cdn.flexmonster.com/",
toolbar: true,
report: {
options: {
configuratorActive: true,
},
dataSource: {
type: "csv",
filename: "https://cdn.flexmonster.com/data/data.csv",
},
slice: {
rows: [
{
uniqueName: "Country",
},
],
columns: [
{
uniqueName: "[Measures]",
},
],
measures: [
{
uniqueName: "Price",
aggregation: "sum",
},
],
},
},
});
document
.querySelector("#pivot-container")
.addEventListener("mouseup", function (e) {
const colsList = Array.from(
document.querySelectorAll(
"div#fm-pivot-view div.fm-fields-view-wrap.fm-fields-opened ul.fm-lst-columns li",
),
).map((node) => node.innerText);
const rowsList = Array.from(
document.querySelectorAll(
"div#fm-pivot-view div.fm-fields-view-wrap.fm-fields-opened ul.fm-lst-rows li",
),
).map((node) => node.innerText);
const reportFilters = Array.from(
document.querySelectorAll(
"div#fm-pivot-view div.fm-fields-view-wrap.fm-fields-opened ul.fm-lst-pages li",
),
).map((node) => node.innerText);
const measures = Array.from(
document.querySelectorAll(
"#fm-pivot-view div.fm-fields-view-wrap.fm-fields-opened div.fm-fields-view div.fm-popup-content div.fm-list-wrap-all div.fm-ui-element.fm-ui.fm-list-content li.fm-measure",
),
).map((node) => node.innerText);
const fields = [...colsList, ...rowsList, ...reportFilters];
let disable = false;
fields.forEach((fieldCaption) => {
if (measures.includes(fieldCaption)) {
disable = true;
}
});
const applyBtn = document.querySelector(
"#fm-pivot-view >...