Grouping fields in folders and setting captions

Mapping configuration

by Flexmonster Pivot Table

HTML

<script src="https://cdn.flexmonster.com/flexmonster.js"></script>

<div id="pivot-container"></div>

CSS

@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  report: {
    dataSource: {
      mapping: {
        "item_color": {
          caption: "Color"
        },
        "destination_country": {
          caption: "Country",
          folder: "Place"
        },
        "destination_state": {
          caption: "State",
          folder: "Place"
        },
        "destination_city": {
          caption: "City",
          folder: "Place"
        },
        "item_price": {
          type: "number",
          caption: "Price"
        },
        "item_quantity": {
          type: "number",
          caption: "Quantity"
        }
      },
      data: getData()
    },
    options: {
      configuratorActive: true
    },
    slice: {
      rows: [{
        "uniqueName": "City"
      }],
      columns: [{
        "uniqueName": "[Measures]"
      }],
      measures: [{
          "uniqueName": "Price",
          "aggregation": "sum"
        },
        {
          "uniqueName": "Quantity",
          "aggregation": "sum"
        }
      ]
    }
  }
});

function getData() {
  return [{
      "item_color": "green",
      "destination_country": "Canada",
      "destination_state": "Ontario",
      "destination_city": "Toronto",
      "item_price": 174,
      "item_quantity": 22
    },
    {
      "item_color": "red",
      "destination_country": "USA",
      "destination_state": "California",
      "destination_city": "Los Angeles",
      "item_price": 166,
      "item_quantity": 19
    }
  ]
}