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="pivotContainer"></div>

JavaScript

var pivot = new Flexmonster({
  container: "pivotContainer",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  report: {
    "dataSource": {
      "data": getData()
    },
    "slice": {
      "rows": [{
        "uniqueName": "Member"
      }],
      "columns": [{
        "uniqueName": "[Measures]"
      }],
      "measures": [{
        "uniqueName": "Value",
        "aggregation": "sum"
      }]
    }
  }
});

let sortOrder = ["B", "C", "A", "D"];

flexmonster.sortingMethod("Member", function(a, b) {
  console.log(sortOrder.indexOf(a));
  return sortOrder.indexOf(a) > sortOrder.indexOf(b) ? 1 : -1;
});

function getData() {
  return [{
      "Value": -93,
      "Member": "A"
    },
    {
      "Value": 3,
      "Member": "D"
    },
    {
      "Value": -20,
      "Member": "B"
    },
    {
      "Value": 36,
      "Member": "B"
    },
    {
      "Value": 150,
      "Member": "A"
    },
    {
      "Value": -50,
      "Member": "D"
    },
    {
      "Value": -75,
      "Member": "D"
    },
    {
      "Value": -44,
      "Member": "A"
    },
    {
      "Value": -57,
      "Member": "C"
    },
    {
      "Value": 69,
      "Member": "B"
    },
    {
      "Value": 91,
      "Member": "C"
    },
    {
      "Value": 45,
      "Member": "C"
    },
    {
      "Value": -88,
      "Member": "B"
    },
    {
      "Value": 77,
      "Member": "A"
    },
    {
      "Value": 21,
      "Member": "D"
    }
  ]
}