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>

CSS

#fm-pivot-view .fm-grid-view div.fm-cell.green {
  color: #75cf35 !important;
}

#fm-pivot-view .fm-grid-view div.fm-cell.red {
  color: #f58888 !important;
}

JavaScript

const pivot = new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  licenseFilePath: "https://cdn.flexmonster.com/jsfiddle.charts.key",
  height: 550,
  toolbar: true,
  report: {
    dataSource: {
      type: "json",
      filename: "data/retail-data.json",
      mapping: {
        "Order Date": {
               type: "date string",
        },
      },
    },
    options: {
      grid: {
        type: "classic"
      },
      showGrandTotals: "off",
      showAggregationLabels: false
    },
    slice: {
      rows: [{
        uniqueName: "[Measures]",

      }],
      columns: [{
        uniqueName: "Order Date",
        filter: {
          query: {
                   before: "2018-01-07"
          }
        }
      }],
      measures: [{
          uniqueName: "Price",
          aggregation: "sum",
        },
        {
          uniqueName: "Quantity",
          aggregation: "sum",
          caption: "Quantity"
        },
        {
          uniqueName: "Sales",
          aggregation: "sum",
        },
      ],

    },
    formats: [{
      name: "",
      thousandsSeparator: ",",
      decimalSeparator: ".",
      decimalPlaces: 0,
      currencySymbol: "$",
      positiveCurrencyFormat: "$1",
      nullValue: "-",
      textAlign: "right",
      isPercent: false,
    }, ],
  },
  customizeCell: customizeCell,
  beforegriddraw: getCurrentData

});

const currentData = {};

function getCurrentData() {
  pivot.getData({
      rows: [{
        uniqueName: "[Measures]",

      }],
      columns: [{
        uniqueName: "Order Date",
        filter: {
          query: {
                before: "2018-01-07"
          }
        }
      }],
      measures: [{
          uniqueName: "Price",
          aggregation: "sum",
        },
        {
          uniqueName: "Quantity",
          aggregation: "sum",
          caption: "Quantity"
        },
        {
          uniqueName: "Sales",
          aggregation: "sum",
       ...