JSFiddle - React, Tailwind, and code Playground

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: {
      dataSourceType: "json",
      data: [{
      		"action": "a1",
          "user": "p1",
          "genderF": "p1",
          "genderM": null
        },
        {
        	"action": "a2",
          "user": "p1",
          "genderF": "p1",
          "genderM": null
        },
        {
        	"action": "a3",
          "user": "p2",
          "genderF": null,
          "genderM": "p2"
        },
        {
        	"action": "a4",
          "user": "p3",
          "genderF": "p3",
          "genderM": null
        },
        {
        	"action": "a5",
          "user": "p3",
          "genderF": "p3",
          "genderM": null
        },
        {
        	"action": "a6",
          "user": "p5",
          "genderF": null,
          "genderM": "p4"
        },
      ]
    },
    slice: {
      rows: [{
        uniqueName: "action"
      }],
      columns: [{
        uniqueName: "[Measures]"
      }],
      measures: [{
          "uniqueName": "uniqueUserCount",
          "formula": "distinctcount('user')",
        },
        {
          "uniqueName": "femaleRatio",
          "formula": "distinctcount('genderF') / 'uniqueUserCount'"
        },
        {
          "uniqueName": "maleRatio",
          "formula": "distinctcount('genderM') / 'uniqueUserCount'"
        }
      ],
    }
  }
});