Table widget reference

Table widget: top-level options en gedrag

Deze pagina documenteert alle niet-kolom-specifieke table opties uit de editor: filter JSON, default sort, totals, grouping/comparison/pivot, widget-level value rules en serialisatiegedrag bij save.

1. Top-level opties

Table widget settings
Table instellingen in de widget editor.

Default draftwaarden

  • groupingEnabled=true, comparisonMode=rows, pivotEnabled=false.
  • defaultSort en filter zijn initieel uit/empty.
  • columns[] start met één lege kolomdraft in de editor.
  • Lege opties worden niet naar JSON geschreven.
Key Type Default Beschrijving
filterobjectnoneExtra widgetfilter bovenop page filters; moet een JSON object zijn.
defaultSort.field, defaultSort.orderstring, asc/descuitSortering op initial render.
totalsboolean/objectuittrue of object met label.
hideUngroupedColumnsbooleanfalseVerbergt niet-gegroepeerde kolommen in grouped mode.
drilldownEnabledbooleanfalseActiveert drilldown UI op grouped data.
drilldownOrderstring[][]Geforceerde drilldownvolgorde.
groupingbooleantrueMaster switch voor grouping engine.
groupDimensionsstring[][]Dimensies waarop gegroepeerd wordt.
groupMetricsstring[][]Metrics die geaggregeerd worden.
groupMetricAggregationsrecord{}Per metric: sum|avg|min|max|count|countDistinct.
comparisonModerows/columnsrowsVergelijksets onder elkaar (rows) of naast elkaar (columns).
comparisonChangeColumnsbooleanfalseToont change/delta kolommen.
comparisonChangeBaselineprimary/previousprimaryWelke set als baseline geldt voor delta.
pivot.enabledbooleanfalseActiveert pivoting.
pivot.modecolumns/transposecolumnsKolompivot of transposed matrix.
pivot.dimensionstring""Verplicht wanneer mode=columns.
pivot.metricsstring[][]Metrics die in pivot output komen.
pivot.fillValueanynoneParser ondersteunt number/bool/null/string input uit editor.
pivot.emptyLabelstring""Label voor lege dimensiewaarden.
pivot.transposeLabelHeaderstringMetricLabel-header in transpose mode.
pivot.transposeValueHeaderstringValueValue-header in transpose mode.
valueRulesarray[]Widget-level waarde replacements.
columnsarray[]Kolomconfiguratie (uitgewerkt op aparte pagina).

2. Validatie en save-gedrag

Filter JSON

  • filterText moet parsebaar zijn als JSON object.
  • Array of primitive waarde geeft fout: Filter must be a JSON object.
  • Bij fout wordt save afgebroken met Invalid table filter JSON.

Pivot guardrails

  • Bij pivot.enabled=true + mode=columns is pivot.dimension verplicht.
  • Zonder dimensie stopt save met een duidelijke foutmelding.
  • pivot.metrics wordt deduped met een set.

Comparison nuances

  • comparisonMode=columns wordt alleen opgeslagen als grouping aan staat.
  • comparisonChangeBaseline=previous wordt alleen gezet als change columns actief zijn.
  • Zonder change columns blijft baseline impliciet primary.

Output minimalisatie

  • Lege/standaardwaarden worden weggelaten uit options JSON.
  • Als geen enkele setting gezet is, geeft builder null terug.
  • Dit houdt opgeslagen page JSON compact en diffs schoon.

3. Voorbeeld top-level table JSON

{
  "filter": { "status": "open" },
  "defaultSort": { "field": "created_at", "order": "desc" },
  "totals": { "enabled": true, "label": "Totaal" },
  "groupDimensions": ["region"],
  "groupMetrics": ["revenue"],
  "groupMetricAggregations": {
    "revenue": "sum"
  },
  "comparisonMode": "columns",
  "comparisonChangeColumns": true,
  "comparisonChangeBaseline": "previous",
  "pivot": {
    "enabled": true,
    "mode": "columns",
    "dimension": "month",
    "metrics": ["revenue"],
    "fillValue": 0,
    "emptyLabel": "Onbekend"
  },
  "valueRules": [
    {
      "value": "critical",
      "matchMode": "exact",
      "replacement": "Kritiek",
      "replacementType": "text"
    }
  ]
}