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>

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": "Quantity"
        },
        {
          "uniqueName": "[Measures]"
        }
      ],
      "measures": [{
        "uniqueName": "Cost",
        "aggregation": "sum"
      }]
    }
  }
});
pivot.sortingMethod("Quantity", function(a, b) {
  return parseInt(a) - parseInt(b);
});

function getData() {
  var data = [{
      Quantity: 10,
      Cost: 1.00
    },
    {
      Quantity: 20,
      Cost: 1.20
    },
    {
      Quantity: 5,
      Cost: 1.00
    },
    {
      Quantity: 12,
      Cost: 2.00
    },
    {
      Quantity: 17,
      Cost: 0.00
    },
    {
      Quantity: 7,
      Cost: 1.00
    }
  ];

  for (var i = 0; i < data.length; i++) {
    var row = data[i];
    if (row.Quantity >= 5 && row.Quantity < 10) {
      row.Quantity = "5-9";
    }
    if (row.Quantity >= 10 && row.Quantity < 15) {
      row.Quantity = "10-14";
    }
    if (row.Quantity >= 15 && row.Quantity < 20) {
      row.Quantity = "15-19";
    }
    if (row.Quantity >= 20 && row.Quantity < 25) {
      row.Quantity = "20-24";
    }
  }

  return data;
}