JSFiddle - React, Tailwind, and code Playground

by Flexmonster Pivot Table

HTML

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

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  customizeCell: customizeCellFunction,
  report: {
    dataSource: {
      data: getData()
    },
    slice: {
      rows: [{
          uniqueName: "Color"
        },
        {
          uniqueName: "[Measures]"
        }
      ],
      columns: [{
        uniqueName: "Country"
      }],
      measures: [{
        uniqueName: "Price",
        aggregation: "sum"
      }]
    }
  }
});

function customizeCellFunction(cell, data) {
  if (data.isDrillThrough &&
    data.type == "header" && data.hierarchy.type == "string") {
    cell.addClass("align-left");
  }
}

function getData() {
  return [{
      "Color": "green",
      "Country": "Canada",
      "State": "Ontario",
      "City": "Toronto",
      "Price": 174,
      "Quantity": 22
    },
    {
      "Color": "red",
      "Country": "USA",
      "State": "California",
      "City": "Los Angeles",
      "Price": 166,
      "Quantity": 19
    }
  ]
}