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="expand()">Expand data</button>
<button onclick="collapse()">Collapse data</button>
<div id="pivot-container"></div>

JavaScript

new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 600,
  toolbar: true,
	report: {
		dataSource: {
			dataSourceType: "microsoft analysis services",

			/* URL to msmdpump.dll */
			proxyUrl: "https://olap.flexmonster.com/olap/msmdpump.dll",

			/* Catalog name */
			catalog: "Adventure Works DW Standard Edition",

			/* Cube name */
			cube: "Adventure Works"
		},
    "slice": {
        "rows": [
            {
                "uniqueName": "[Geography].[Geography]",
                "filter": {
                    "exclude": [
                        "[Geography].[Geography].[Country].&[France]",
                        "[Geography].[Geography].[Country].&[Germany]",
                        "[Geography].[Geography].[Country].&[United Kingdom]",
                        "[Geography].[Geography].[Country].&[United States]"
                    ]
                }
            },
            {
                "uniqueName": "[Sales Reason].[Sales Reasons]"
            },
            {
                "uniqueName": "[Product].[Category]"
            },
            {
                "uniqueName": "[Reseller Sales Order Details].[Carrier Tracking Number]"
            }
        ],
        "columns": [
            {
                "uniqueName": "[Measures]"
            }
        ],
        "measures": [
            {
                "uniqueName": "[Measures].[Reseller Order Count]"
            },
            {
                "uniqueName": "[Measures].[Discount Amount]"
            }
        ]
      }
	}
});


function expand() {
  var newReport = flexmonster.getReport();
  newReport.slice.expands = {
            "rows": [
                {
                    "tuple": [
                        "[Geography].[Geography].[State-Province].&[NSW]&[AU]"
                    ]
                },
                {
                    "tuple": [
                       ...