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-header-c {
  text-align: right !important;
  padding-left: 16px !important;
  padding-right: 4px !important;
}

#fm-pivot-view .fm-v-sort-icon,
#fm-pivot-view .fm-v-sort-desc,
#fm-pivot-view .fm-v-sort-asc {
  left: 0 !important;
  right: auto !important;
}

#fm-pivot-view .fm-v-sort-icon:before,
#fm-pivot-view .fm-v-sort-desc:before,
#fm-pivot-view .fm-v-sort-asc:before {
  left: 0;
}

JavaScript

new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 430,
  toolbar: true,
  report: {
    dataSource: {
      filename: "data/sales.csv"
    },
    "slice": {
      "rows": [{
          "uniqueName": "Customer"
        },
        {
          "uniqueName": "[Measures]"
        }
      ],
      "columns": [{
        "uniqueName": "Month"
      }],
      "measures": [{
        "uniqueName": "Revenue",
        "aggregation": "sum",
        "format": "2sfou03a"
      }],
    },
    formats: [{
      name: "2sfou03a",
      thousandsSeparator: ",",
      decimalSeparator: ".",
      decimalPlaces: 2,
      currencySymbol: "$",
      currencySymbolAlign: "left",
      nullValue: "",
      textAlign: "right",
      isPercent: false
    }]
  }
});