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 class="row">
  <div class="column left">
    <button class="btn" onclick="setChartOption(false)">Hide header</button>
    <button class="btn" onclick="setChartOption(true)">Show header</button>
  </div>
  <div id="pivot-container" class="column right"></div>
</div>

CSS

.btn {
  width: 100%;
}

.row {
  display: flex;
  align-items: center;
}

.column {
  padding: 0 5px;
}

.left {
  flex: 20%;
}

.right {
  flex: 80%;
}

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  report: {
    dataSource: {
      filename: "data/data.csv"
    },
    options: {
      viewType: "charts",
      chart: {
        type: "pie",
        showLegendButton: true,
      }
    },
    slice: {
      rows: [
      {
        uniqueName: "Country",
        filter: {
        	members: [
         		"country.[australia]",
            "country.[canada]",
            "country.[france]"
          ]
        }
      }, 
      {
        uniqueName: "Category",
        filter: {
      		exclude: [
          	"category.[bikes]",
            "category.[cars]"
          ]
        }
      }],
      columns: [{ uniqueName: "[Measures]" }],
      measures: [{ uniqueName: "Price" }],
      expands: {
        rows: [{
          tuple: [
            "Country.[Canada]"
          ]
        }]
      }
    }
  }
});

function setChartOption(value) {
  flexmonster.setOptions({
    chart: {
      showMeasures: value,
      showFilter: value
    }
  });
  flexmonster.refresh();
}