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>

<button onclick="turnOnTotals()">Show subtotals</button>
<button onclick="turnOffTotals()">Hide subtotals</button>
<div id="pivot-container"></div>

JavaScript

var pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 430,
  toolbar: true,
  report: {
    dataSource: {
      data: getData()
    },
    "slice": {
      "rows": [{
        "uniqueName": "Color"
      }],
      "columns": [{
          "uniqueName": "Country"
        },
        {
          "uniqueName": "City"
        },
        {
          "uniqueName": "[Measures]"
        }
      ],
      "measures": [{
        "uniqueName": "Price",
        "aggregation": "sum"
      }],
      "expands": {
        "columns": [{
            "tuple": [
              "country.[canada]"
            ]
          },
          {
            "tuple": [
              "country.[usa]"
            ]
          }
        ]
      }
    },
    "options": {
      "grid": {
        "showTotals": "off"
      }
    }
  }
});

function turnOffTotals() {
  var options = pivot.getOptions();
  options.grid.showTotals = "off";
  pivot.setOptions(options);
  pivot.refresh();
}

function turnOnTotals() {
  var options = pivot.getOptions();
  options.grid.showTotals = "on";
  pivot.setOptions(options);
  pivot.refresh();
}

function getData() {
  return [{
    "Color": "green",
    "M": "September",
    "W": "Wed",
    "Country": "Canada",
    "State": "Ontario",
    "City": "Toronto",
    "Price": 174,
    "Quantity": 22
  }, {
    "Color": "red",
    "M": "March",
    "W": "Mon",
    "Time": "1000",
    "Country": "USA",
    "State": "California",
    "City": "Los Angeles",
    "Price": 1664,
    "Quantity": 19
  }, {
    "Color": "red",
    "M": "January",
    "W": "Mon",
    "Country": "Canada",
    "State": "Quebec",
    "City": "Montreal",
    "Price": 1190,
    "Quantity": 292
  }, {
    "Color": "green",
    "D": "04/08/2014",
    "M": "August",
    "W": "Fri",
    "Time": "1000",
    "Country": "USA",
    "State": "California",
    "City": "Los Angeles",
    "Price": 1222,
    "Quantity": 730
  }, {
   ...