Concorde functional component — Jsonata. sonic-jsonata : 1 input → expression → 1 output (readonly). Doc ID: core/components/functional/jsonata/jsonata. Keywords: Concorde, supersoniks, core/components/functional/jsonata/jsonata, jsonata, Jsonata, functional component, sonic-jsonata, web component, sonic-mix, serviceURL="/docs-mock-api", inputProvider, $input, outputProvider, expression, formDataProvider, $top, $taxPercent. URL: https://concorde.supersoniks.org/crawl/core/components/functional/jsonata/jsonata.html.
Jsonata
sonic-jsonata : 1 input → expression → 1 output (readonly).
Unidirectional (fetch → compute → display), unlike sonic-mix.
Offline :
serviceURL="/docs-mock-api"— Local API demos.
Demos
Groupby + top N
Change Top N → recalcul sans refetch.
Totaux (somme + taxe)
Change Tax % → même idée.
Attributes
| Attribute | Role |
|---|---|
inputProvider |
Entrée ($input dans l’expression) |
outputProvider |
Sortie (readonly) |
expression |
Expression JSONata |
formDataProvider |
Form optionnel ($top, $taxPercent, …) — même id que le form |
outputSchema |
Schéma léger optionnel (type, required) |
Helpers
$ucFirst · $currency · $percent · $date · $toChart(items, labelKey, valueKey, datasetLabel?)
Pas de DOM, pas de réseau, pas d’eval.
Markup
<sonic-jsonata
inputProvider="api/space-cats"
outputProvider="leaderboard"
formDataProvider="topForm"
expression='$input{name: $sum(points)} ~> $each(function($v,$k){{"name":$k,"points":$v}}) ^(>points)[[0..$number($top)-1]]'
></sonic-jsonata>
Pour du multi-entrées ou une fonction TS : primitive derive.
States
{output}/_state_ → { status, error? } (loading | ready | error | empty). Brancher avec sonic-states.