{
  "name": "TableChartPaginated",
  "label": "Table Chart - Paginated",
  "description": "Server-side paginated table. Pick over TableScrollable for large datasets.",
  "category": "Table Charts",
  "inputs": [
    {
      "name": "dataset",
      "type": "dataset",
      "label": "Dataset",
      "required": true,
      "category": "Component Data",
      "config": {
        "hideSort": true
      }
    },
    {
      "name": "dimensionsAndMeasures",
      "type": "dimensionOrMeasure",
      "label": "Columns",
      "array": true,
      "required": true,
      "config": {
        "dataset": "dataset"
      },
      "category": "Component Data",
      "inputs": [
        {
          "name": "prefix",
          "type": "string",
          "label": "Prefix"
        },
        {
          "name": "suffix",
          "type": "string",
          "label": "Suffix"
        },
        {
          "name": "displayName",
          "type": "string",
          "label": "Display name"
        },
        {
          "name": "maxCharacters",
          "type": "number",
          "label": "Maximum characters",
          "supportedTypes": [
            "string"
          ]
        },
        {
          "name": "decimalPlaces",
          "type": "number",
          "label": "Decimal places",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "currency",
          "type": "string",
          "label": "Currency",
          "description": "e.g. EUR",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "abbreviateLargeNumber",
          "type": "boolean",
          "label": "Abbreviate large number",
          "supportedTypes": [
            "number"
          ]
        },
        {
          "name": "width",
          "type": "number",
          "label": "Width",
          "description": "You can input a number in pixels e.g. 400"
        },
        {
          "name": "align",
          "type": "align",
          "label": "Align"
        },
        {
          "type": "tableCellStyle",
          "name": "tableCellStyle",
          "label": "Table cell style"
        }
      ]
    },
    {
      "name": "title",
      "type": "string",
      "label": "Title",
      "category": "Component Header"
    },
    {
      "name": "description",
      "type": "string",
      "label": "Description",
      "category": "Component Header"
    },
    {
      "name": "tooltip",
      "type": "string",
      "label": "Tooltip",
      "category": "Component Header"
    },
    {
      "name": "showIndex",
      "type": "boolean",
      "label": "Show index column",
      "defaultValue": true,
      "category": "Component Settings"
    },
    {
      "name": "displayNullAs",
      "type": "string",
      "label": "Display null as",
      "category": "Component Settings"
    },
    {
      "name": "maxResults",
      "type": "number",
      "label": "Max results to download",
      "category": "Component Settings",
      "defaultValue": 1000
    },
    {
      "name": "clickDimension",
      "type": "dimension",
      "label": "Dimension to set on click",
      "config": {
        "dataset": "dataset",
        "hideGranularity": true
      },
      "required": false,
      "category": "Data Mapping for Interactions"
    },
    {
      "name": "sortColumn",
      "type": "dimensionOrMeasure",
      "label": "Default sort column",
      "config": {
        "dataset": "dataset"
      },
      "category": "Component Settings"
    },
    {
      "name": "sortDirection",
      "type": "sortDirection",
      "label": "Default sort direction",
      "category": "Component Settings"
    },
    {
      "name": "menuOptions",
      "type": "exportOption",
      "label": "Menu options",
      "array": true,
      "defaultValue": [
        "csv",
        "xlsx",
        "png"
      ],
      "category": "Component Settings"
    }
  ],
  "events": [
    {
      "name": "onRowClicked",
      "label": "A row is clicked",
      "properties": [
        {
          "name": "rowDimensionValue",
          "label": "Clicked row dimension value",
          "type": "string"
        },
        {
          "name": "rowDimensionTimeRange",
          "label": "Clicked row dimension time range",
          "type": "timeRange"
        }
      ]
    }
  ]
}