Template reference

Label template JSON: complete functie-overzicht

Table kolommen (labelTemplate) en chart x-labels (xLabelTemplate) gebruiken dezelfde template engine. Deze pagina documenteert het JSON-formaat, resolutie van velden en alle ondersteunde op-functies uit de runtime.

1. JSON schema

De editor accepteert alleen een JSON object met een niet-lege ops-array. Zonder geldige ops blokkeert opslaan met een validatiefout.

{
  "value": { "field": "status" },
  "ops": [
    { "op": "trim" },
    { "op": "upper" }
  ],
  "fallback": "-"
}
Key Type Beschrijving
valueliteral/objectStartwaarde voor de pipeline. Mag literal zijn of een reference object.
opsarrayVerplicht en niet leeg. Elke entry bevat minimaal op.
fallbackliteral/objectWordt gebruikt als eindresultaat leeg is (null, undefined of lege string).

2. Value references en resolutie

Reference objects kunnen zowel in value als in op-argumenten (zoals add.value, coalesce.values[], datediff.other) gebruikt worden.

Vorm Voorbeeld Gedrag
Field reference{ "field": "revenue" }Leest uit row/context field.
ColumnId reference{ "columnId": "margin__2" }Leest raw waarde van een andere tabelkolom via columnId.
Literal wrapper{ "literal": 100 }Forceert een literal waarde als object.
Direct literal"OK", 42, trueWordt direct gebruikt als waarde.

Belangrijke runtime-notes

  • op-namen zijn case-insensitive; runtime lowercaset intern.
  • Aliases werken ook: bijvoorbeeld replaceRegex en replace_regex.
  • Styling ops zoals class, color, bg, icon, wrap wijzigen presentatie, niet de kernwaarde.

3. String, mapping en text ops

Op Belangrijkste argumenten Beschrijving
set, valuevalueZet huidige waarde expliciet.
fieldfieldZet waarde vanuit contextveld.
startindexSnijdt string vanaf index.
cutoff, ellipsislength, ellipsisTrimt string op lengte, optioneel met ....
head, taillengthEerste of laatste N tekens.
upper, lower, title, trim-Standaard casing/trimtransformaties.
snake, kebab, slug-Slugify varianten.
initials-Maakt initialen uit tekst.
replacesearch/from, replacement/toGlobale tekstvervanging (escaped regex).
replaceRegex, replace_regexpattern, replacement, flagsRegex replacement.
paddirection, length, charPad links of rechts.
defaultvalueAlleen toegepast als huidige waarde leeg is.
coalescevalues[]Eerste niet-lege kandidaat kiezen.
joinseparatorVoegt arraywaarden samen.
len-Lengte van string/array.
map, switchmap/cases, defaultWaarde-naar-label mapping.
status-Status-normalisatie helper.
match, matchAllpattern, allRegex extract van eerste of alle matches.
maskvisible, charMaskeert tekst behalve zichtbaar deel.
classvalue of classVoegt CSS class toe aan output wrapper.
colorvalue of colorZet inline tekstkleur.
bg, backgroundvalue of backgroundZet achtergrondkleur.
iconvalue of iconVoegt icon-klassenaam toe.
wrapvalue of wrapWikkelt output met template (met {value}).

4. Math, nummerformat en classificatie ops

Op Belangrijkste argumenten Beschrijving
abs-Absolute waarde.
add, sub, mul, divvalue of fieldNumerieke bewerkingen.
percentOf, percent_ofvaluePercentage van operand.
scalevalueAlias voor vermenigvuldigen.
round, ceil, floordigitsAfronding met optionele decimalen.
currency, number, percentformat, currency, digitsLocale formattering van output.
bucketranges[] met min, max, labelMapt numerieke range naar label.
clampmin, maxBegrenst numerieke waarde.
ordinal-Maakt ordinale output (bijv. 1st/2nd).
pluralsingular, pluralKiest enkelvoud/meervoud op basis van waarde.
unitunitVoegt eenheid toe.
palette, colorFromPalettecolors[]Kiest kleur op basis van waardehash/index.

5. Datum, tijd en utility ops

Op Belangrijkste argumenten Beschrijving
date, datetime, timeformatFormatteert datum/tijd output.
ago, fromNow-Relative tijd (verleden/toekomst tekst).
dateAdddurationVerschuift datum met duration (bijv. +2d, -3h).
dateDiffother, unitDatumverschil in gekozen eenheid.
hashalgoHash van huidige waarde (default md5).

6. Praktische voorbeelden

{
  "value": { "field": "name" },
  "ops": [
    { "op": "trim" },
    { "op": "title" },
    { "op": "cutoff", "length": 24, "ellipsis": true }
  ],
  "fallback": "Onbekend"
}
{
  "value": { "field": "revenue" },
  "ops": [
    { "op": "div", "value": { "field": "orders" } },
    { "op": "round", "digits": 2 },
    { "op": "currency", "currency": "EUR" }
  ]
}
{
  "value": { "field": "status" },
  "ops": [
    { "op": "lower" },
    { "op": "switch", "cases": { "open": "Actief", "closed": "Afgesloten" }, "default": "Onbekend" },
    { "op": "class", "value": "badge" }
  ]
}