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="filter">
  <div><span class="label">Filter by Coutry:</span><input type="text" id="filter-country"></div>
  <div><span class="label">Filter by Category:</span><input type="text" id="filter-category"></div>
</div>
<div id="pivot-container"></div>

CSS

.filter {
  padding: 10px;
}

.label {
  display: inline-block;
  width: 100px;
  margin-bottom: 10px;
}

JavaScript

new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  width: "100%",
  height: 430,
  toolbar: true,
  report: {
    "dataSource": {
      "dataSourceType": "csv",
      "filename": "data/data.csv"
    },
    "slice": {
      "rows": [{
        "uniqueName": "Country"
      }],
      "columns": [{
          "uniqueName": "Category"
        },
        {
          "uniqueName": "[Measures]"
        }
      ],
      "measures": [{
        "uniqueName": "Price",
        "aggregation": "sum"
      }]
    }
  }
});

function filterBy(field, search) {
  flexmonster.setFilter(field, {
    "query": {
      "contain": search
    }
  });
}

$("#filter-country").keyup(function() {
  filterBy("Country", $(this).val());
});
$("#filter-category").keyup(function() {
  filterBy("Category", $(this).val());
});