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 >...