@elaraai/east-ui 1.0.67 → 1.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/src/charts/chart/index.d.ts +39 -4
- package/dist/src/charts/chart/index.d.ts.map +1 -1
- package/dist/src/charts/chart/index.js +3 -3
- package/dist/src/charts/chart/index.js.map +1 -1
- package/dist/src/charts/spec/index.d.ts +61 -3
- package/dist/src/charts/spec/index.d.ts.map +1 -1
- package/dist/src/charts/spec/types.d.ts +1 -1
- package/dist/src/charts/spec/types.js +1 -1
- package/dist/src/collections/blend/index.d.ts +1 -1
- package/dist/src/collections/blend/index.d.ts.map +1 -1
- package/dist/src/collections/blend/index.js +1 -1
- package/dist/src/collections/blend/index.js.map +1 -1
- package/dist/src/collections/blend/types.js +1 -1
- package/dist/src/collections/blend/types.js.map +1 -1
- package/dist/src/collections/board/index.d.ts +4 -4
- package/dist/src/collections/board/index.d.ts.map +1 -1
- package/dist/src/collections/board/index.js +1 -1
- package/dist/src/collections/board/index.js.map +1 -1
- package/dist/src/collections/board/types.js +1 -1
- package/dist/src/collections/board/types.js.map +1 -1
- package/dist/src/collections/calendar/index.d.ts +1 -1
- package/dist/src/collections/calendar/index.d.ts.map +1 -1
- package/dist/src/collections/deck/index.d.ts +58 -0
- package/dist/src/collections/deck/index.d.ts.map +1 -1
- package/dist/src/collections/index.d.ts +1 -2
- package/dist/src/collections/index.d.ts.map +1 -1
- package/dist/src/collections/index.js +1 -2
- package/dist/src/collections/index.js.map +1 -1
- package/dist/src/collections/library/index.d.ts +29 -0
- package/dist/src/collections/library/index.d.ts.map +1 -1
- package/dist/src/collections/library/types.d.ts +29 -0
- package/dist/src/collections/library/types.d.ts.map +1 -1
- package/dist/src/collections/matrix/index.d.ts +1 -1
- package/dist/src/collections/matrix/index.d.ts.map +1 -1
- package/dist/src/collections/plan/assemble.d.ts +3732 -0
- package/dist/src/collections/plan/assemble.d.ts.map +1 -0
- package/dist/src/collections/plan/assemble.js +187 -0
- package/dist/src/collections/plan/assemble.js.map +1 -0
- package/dist/src/collections/plan/builders.d.ts +612 -0
- package/dist/src/collections/plan/builders.d.ts.map +1 -0
- package/dist/src/collections/plan/builders.js +543 -0
- package/dist/src/collections/plan/builders.js.map +1 -0
- package/dist/src/collections/plan/data-forms.d.ts +332 -0
- package/dist/src/collections/plan/data-forms.d.ts.map +1 -0
- package/dist/src/collections/plan/data-forms.js +212 -0
- package/dist/src/collections/plan/data-forms.js.map +1 -0
- package/dist/src/collections/plan/factories.d.ts +338 -0
- package/dist/src/collections/plan/factories.d.ts.map +1 -0
- package/dist/src/collections/plan/factories.js +414 -0
- package/dist/src/collections/plan/factories.js.map +1 -0
- package/dist/src/collections/plan/index.d.ts +271 -0
- package/dist/src/collections/plan/index.d.ts.map +1 -0
- package/dist/src/collections/plan/index.js +162 -0
- package/dist/src/collections/plan/index.js.map +1 -0
- package/dist/src/collections/plan/ir.d.ts +3496 -0
- package/dist/src/collections/plan/ir.d.ts.map +1 -0
- package/dist/src/collections/plan/ir.js +83 -0
- package/dist/src/collections/plan/ir.js.map +1 -0
- package/dist/src/collections/plan/pick.d.ts +115 -0
- package/dist/src/collections/plan/pick.d.ts.map +1 -0
- package/dist/src/collections/plan/pick.js +193 -0
- package/dist/src/collections/plan/pick.js.map +1 -0
- package/dist/src/collections/plan/root.d.ts +210 -0
- package/dist/src/collections/plan/root.d.ts.map +1 -0
- package/dist/src/collections/plan/root.js +146 -0
- package/dist/src/collections/plan/root.js.map +1 -0
- package/dist/src/collections/plan/series.d.ts +11890 -0
- package/dist/src/collections/plan/series.d.ts.map +1 -0
- package/dist/src/collections/plan/series.js +412 -0
- package/dist/src/collections/plan/series.js.map +1 -0
- package/dist/src/collections/plan/types.d.ts +9291 -0
- package/dist/src/collections/plan/types.d.ts.map +1 -0
- package/dist/src/collections/plan/types.js +940 -0
- package/dist/src/collections/plan/types.js.map +1 -0
- package/dist/src/collections/roster/index.d.ts +4 -4
- package/dist/src/collections/roster/index.d.ts.map +1 -1
- package/dist/src/collections/roster/index.js +1 -1
- package/dist/src/collections/roster/index.js.map +1 -1
- package/dist/src/collections/roster/types.d.ts +1 -1
- package/dist/src/collections/roster/types.d.ts.map +1 -1
- package/dist/src/collections/roster/types.js +4 -3
- package/dist/src/collections/roster/types.js.map +1 -1
- package/dist/src/collections/table/index.d.ts +70 -2
- package/dist/src/collections/table/index.d.ts.map +1 -1
- package/dist/src/collections/table/index.js +55 -11
- package/dist/src/collections/table/index.js.map +1 -1
- package/dist/src/collections/table/types.d.ts +1 -1
- package/dist/src/collections/table/types.d.ts.map +1 -1
- package/dist/src/component.d.ts +3898 -1339
- package/dist/src/component.d.ts.map +1 -1
- package/dist/src/component.js +83 -146
- package/dist/src/component.js.map +1 -1
- package/dist/src/container/card/types.d.ts +1 -1
- package/dist/src/container/card/types.d.ts.map +1 -1
- package/dist/src/contracts/approval.d.ts +117 -0
- package/dist/src/contracts/approval.d.ts.map +1 -0
- package/dist/src/contracts/approval.js +105 -0
- package/dist/src/contracts/approval.js.map +1 -0
- package/dist/src/contracts/drag.d.ts +3 -3
- package/dist/src/contracts/drag.d.ts.map +1 -1
- package/dist/src/contracts/drag.js +23 -10
- package/dist/src/contracts/drag.js.map +1 -1
- package/dist/src/contracts/index.d.ts +4 -1
- package/dist/src/contracts/index.d.ts.map +1 -1
- package/dist/src/contracts/index.js +4 -1
- package/dist/src/contracts/index.js.map +1 -1
- package/dist/src/contracts/pick.d.ts +705 -0
- package/dist/src/contracts/pick.d.ts.map +1 -0
- package/dist/src/contracts/pick.js +360 -0
- package/dist/src/contracts/pick.js.map +1 -0
- package/dist/src/contracts/review.d.ts +7 -99
- package/dist/src/contracts/review.d.ts.map +1 -1
- package/dist/src/contracts/review.js +11 -85
- package/dist/src/contracts/review.js.map +1 -1
- package/dist/src/contracts/slice-affordances.d.ts +13 -4
- package/dist/src/contracts/slice-affordances.d.ts.map +1 -1
- package/dist/src/contracts/slice-affordances.js +13 -3
- package/dist/src/contracts/slice-affordances.js.map +1 -1
- package/dist/src/contracts/source.d.ts +432 -0
- package/dist/src/contracts/source.d.ts.map +1 -0
- package/dist/src/contracts/source.js +505 -0
- package/dist/src/contracts/source.js.map +1 -0
- package/dist/src/contracts/states.d.ts +130 -0
- package/dist/src/contracts/states.d.ts.map +1 -1
- package/dist/src/contracts/states.js +122 -0
- package/dist/src/contracts/states.js.map +1 -1
- package/dist/src/contracts/time.d.ts +76 -0
- package/dist/src/contracts/time.d.ts.map +1 -0
- package/dist/src/contracts/time.js +78 -0
- package/dist/src/contracts/time.js.map +1 -0
- package/dist/src/display/trace/types.d.ts +1 -1
- package/dist/src/display/trace/types.d.ts.map +1 -1
- package/dist/src/index.d.ts +10 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +22 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +5 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +4 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/layout/dock/index.d.ts +1 -1
- package/dist/src/layout/dock/index.js +1 -1
- package/dist/src/layout/index.d.ts +0 -1
- package/dist/src/layout/index.d.ts.map +1 -1
- package/dist/src/layout/index.js +0 -1
- package/dist/src/layout/index.js.map +1 -1
- package/dist/src/overlays/drawer/types.d.ts +1 -1
- package/dist/src/overlays/drawer/types.d.ts.map +1 -1
- package/dist/src/pick/index.d.ts +443 -0
- package/dist/src/pick/index.d.ts.map +1 -0
- package/dist/src/pick/index.js +64 -0
- package/dist/src/pick/index.js.map +1 -0
- package/dist/src/pick/panel/index.d.ts +64 -0
- package/dist/src/pick/panel/index.d.ts.map +1 -0
- package/dist/src/pick/panel/index.js +61 -0
- package/dist/src/pick/panel/index.js.map +1 -0
- package/dist/src/platform/slice/index.d.ts +291 -0
- package/dist/src/platform/slice/index.d.ts.map +1 -1
- package/dist/src/platform/slice/index.js +16 -0
- package/dist/src/platform/slice/index.js.map +1 -1
- package/dist/src/runtime/collections/deck.d.ts +29 -0
- package/dist/src/runtime/collections/deck.d.ts.map +1 -1
- package/dist/src/runtime/collections/index.d.ts +1 -2
- package/dist/src/runtime/collections/index.d.ts.map +1 -1
- package/dist/src/runtime/collections/index.js +1 -2
- package/dist/src/runtime/collections/index.js.map +1 -1
- package/dist/src/runtime/collections/library.d.ts +1 -1
- package/dist/src/runtime/collections/library.js +1 -1
- package/dist/src/runtime/collections/plan.d.ts +98 -0
- package/dist/src/runtime/collections/plan.d.ts.map +1 -0
- package/dist/src/runtime/collections/plan.js +98 -0
- package/dist/src/runtime/collections/plan.js.map +1 -0
- package/dist/src/runtime/collections/schematic.d.ts +1 -1
- package/dist/src/runtime/collections/schematic.js +1 -1
- package/dist/src/runtime/collections/table.d.ts +9 -1
- package/dist/src/runtime/collections/table.d.ts.map +1 -1
- package/dist/src/runtime/collections/table.js +1 -7
- package/dist/src/runtime/collections/table.js.map +1 -1
- package/dist/src/runtime/layout/dock.d.ts +2 -2
- package/dist/src/runtime/layout/dock.js +2 -2
- package/dist/src/runtime/layout/index.d.ts +0 -1
- package/dist/src/runtime/layout/index.d.ts.map +1 -1
- package/dist/src/runtime/layout/index.js +0 -1
- package/dist/src/runtime/layout/index.js.map +1 -1
- package/dist/src/shared/plot-gutter.d.ts +6 -23
- package/dist/src/shared/plot-gutter.d.ts.map +1 -1
- package/dist/src/shared/plot-gutter.js +6 -19
- package/dist/src/shared/plot-gutter.js.map +1 -1
- package/dist/src/shared/reify.d.ts +47 -4
- package/dist/src/shared/reify.d.ts.map +1 -1
- package/dist/src/shared/reify.js +62 -4
- package/dist/src/shared/reify.js.map +1 -1
- package/dist/src/slice/breakdown/index.d.ts +27 -0
- package/dist/src/slice/breakdown/index.d.ts.map +1 -1
- package/dist/src/slice/breakdown/types.d.ts +27 -0
- package/dist/src/slice/breakdown/types.d.ts.map +1 -1
- package/dist/src/slice/cohort/index.d.ts +54 -0
- package/dist/src/slice/cohort/index.d.ts.map +1 -1
- package/dist/src/slice/cohort/types.d.ts +27 -0
- package/dist/src/slice/cohort/types.d.ts.map +1 -1
- package/dist/src/slice/filter/index.d.ts +27 -0
- package/dist/src/slice/filter/index.d.ts.map +1 -1
- package/dist/src/slice/filter/types.d.ts +27 -0
- package/dist/src/slice/filter/types.d.ts.map +1 -1
- package/dist/src/slice/index.d.ts +405 -0
- package/dist/src/slice/index.d.ts.map +1 -1
- package/dist/src/slice/legend/index.d.ts +27 -0
- package/dist/src/slice/legend/index.d.ts.map +1 -1
- package/dist/src/slice/legend/types.d.ts +27 -0
- package/dist/src/slice/legend/types.d.ts.map +1 -1
- package/dist/src/slice/range/index.d.ts +60 -18
- package/dist/src/slice/range/index.d.ts.map +1 -1
- package/dist/src/slice/range/index.js +9 -1
- package/dist/src/slice/range/index.js.map +1 -1
- package/dist/src/slice/range/types.d.ts +63 -22
- package/dist/src/slice/range/types.d.ts.map +1 -1
- package/dist/src/slice/range/types.js +12 -5
- package/dist/src/slice/range/types.js.map +1 -1
- package/dist/src/slice/search/index.d.ts +27 -0
- package/dist/src/slice/search/index.d.ts.map +1 -1
- package/dist/src/slice/search/types.d.ts +27 -0
- package/dist/src/slice/search/types.d.ts.map +1 -1
- package/dist/src/slice/summary/index.d.ts +27 -0
- package/dist/src/slice/summary/index.d.ts.map +1 -1
- package/dist/src/slice/summary/types.d.ts +27 -0
- package/dist/src/slice/summary/types.d.ts.map +1 -1
- package/dist/src/style/content.d.ts +4 -6
- package/dist/src/style/content.d.ts.map +1 -1
- package/dist/src/style/content.js +4 -6
- package/dist/src/style/content.js.map +1 -1
- package/dist/src/style/scheme.js +1 -1
- package/dist/src/style/scheme.js.map +1 -1
- package/dist/test/collections/index.d.ts +2 -2
- package/dist/test/collections/index.d.ts.map +1 -1
- package/dist/test/collections/index.js +2 -2
- package/dist/test/collections/index.js.map +1 -1
- package/dist/test/collections/paged-source.examples.d.ts +9 -0
- package/dist/test/collections/paged-source.examples.d.ts.map +1 -0
- package/dist/test/collections/paged-source.examples.js +136 -0
- package/dist/test/collections/paged-source.examples.js.map +1 -0
- package/dist/test/collections/plan.examples.d.ts +125 -0
- package/dist/test/collections/plan.examples.d.ts.map +1 -0
- package/dist/test/collections/plan.examples.js +2939 -0
- package/dist/test/collections/plan.examples.js.map +1 -0
- package/dist/test/contracts/pick.examples.d.ts +6 -0
- package/dist/test/contracts/pick.examples.d.ts.map +1 -0
- package/dist/test/contracts/pick.examples.js +89 -0
- package/dist/test/contracts/pick.examples.js.map +1 -0
- package/dist/test/layout/dock.examples.d.ts +4 -4
- package/dist/test/layout/dock.examples.d.ts.map +1 -1
- package/dist/test/layout/dock.examples.js +34 -16
- package/dist/test/layout/dock.examples.js.map +1 -1
- package/dist/test/slice/slice.examples.d.ts +2 -1
- package/dist/test/slice/slice.examples.d.ts.map +1 -1
- package/dist/test/slice/slice.examples.js +67 -9
- package/dist/test/slice/slice.examples.js.map +1 -1
- package/package.json +3 -3
- package/dist/src/collections/gantt/index.d.ts +0 -377
- package/dist/src/collections/gantt/index.d.ts.map +0 -1
- package/dist/src/collections/gantt/index.js +0 -896
- package/dist/src/collections/gantt/index.js.map +0 -1
- package/dist/src/collections/gantt/types.d.ts +0 -353
- package/dist/src/collections/gantt/types.d.ts.map +0 -1
- package/dist/src/collections/gantt/types.js +0 -207
- package/dist/src/collections/gantt/types.js.map +0 -1
- package/dist/src/collections/planner/index.d.ts +0 -624
- package/dist/src/collections/planner/index.d.ts.map +0 -1
- package/dist/src/collections/planner/index.js +0 -941
- package/dist/src/collections/planner/index.js.map +0 -1
- package/dist/src/collections/planner/types.d.ts +0 -615
- package/dist/src/collections/planner/types.d.ts.map +0 -1
- package/dist/src/collections/planner/types.js +0 -423
- package/dist/src/collections/planner/types.js.map +0 -1
- package/dist/src/layout/aligned-stack/index.d.ts +0 -101
- package/dist/src/layout/aligned-stack/index.d.ts.map +0 -1
- package/dist/src/layout/aligned-stack/index.js +0 -105
- package/dist/src/layout/aligned-stack/index.js.map +0 -1
- package/dist/src/layout/aligned-stack/types.d.ts +0 -50
- package/dist/src/layout/aligned-stack/types.d.ts.map +0 -1
- package/dist/src/layout/aligned-stack/types.js +0 -24
- package/dist/src/layout/aligned-stack/types.js.map +0 -1
- package/dist/src/runtime/collections/gantt.d.ts +0 -67
- package/dist/src/runtime/collections/gantt.d.ts.map +0 -1
- package/dist/src/runtime/collections/gantt.js +0 -58
- package/dist/src/runtime/collections/gantt.js.map +0 -1
- package/dist/src/runtime/collections/planner.d.ts +0 -80
- package/dist/src/runtime/collections/planner.d.ts.map +0 -1
- package/dist/src/runtime/collections/planner.js +0 -76
- package/dist/src/runtime/collections/planner.js.map +0 -1
- package/dist/src/runtime/layout/aligned-stack.d.ts +0 -38
- package/dist/src/runtime/layout/aligned-stack.d.ts.map +0 -1
- package/dist/src/runtime/layout/aligned-stack.js +0 -36
- package/dist/src/runtime/layout/aligned-stack.js.map +0 -1
- package/dist/test/collections/gantt.examples.d.ts +0 -33
- package/dist/test/collections/gantt.examples.d.ts.map +0 -1
- package/dist/test/collections/gantt.examples.js +0 -359
- package/dist/test/collections/gantt.examples.js.map +0 -1
- package/dist/test/collections/planner.examples.d.ts +0 -47
- package/dist/test/collections/planner.examples.d.ts.map +0 -1
- package/dist/test/collections/planner.examples.js +0 -546
- package/dist/test/collections/planner.examples.js.map +0 -1
- package/dist/test/layout/aligned-stack.examples.d.ts +0 -25
- package/dist/test/layout/aligned-stack.examples.d.ts.map +0 -1
- package/dist/test/layout/aligned-stack.examples.js +0 -294
- package/dist/test/layout/aligned-stack.examples.js.map +0 -1
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The Plan kind factories — `span` / `buckets` / `chart` / `heat` / `table` /
|
|
7
|
+
* `cards` / `events` / `group`. Each returns the row's flattened subtree
|
|
8
|
+
* (`ExprType<ArrayType<PlanRowType>>`) with parent aggregates computed
|
|
9
|
+
* eagerly by the `assemble` engines, so factories compose.
|
|
10
|
+
*
|
|
11
|
+
* @packageDocumentation
|
|
12
|
+
*/
|
|
13
|
+
import { East, Expr, ArrayType, BooleanType, FloatType, OptionType, StringType, variant, some, none, } from "@elaraai/east";
|
|
14
|
+
import {} from "../../charts/chart/index.js";
|
|
15
|
+
import { ChartXType } from "../../charts/spec/index.js";
|
|
16
|
+
import { TableAggregateType } from "../table/types.js";
|
|
17
|
+
import { TickFormatType } from "../../format/types.js";
|
|
18
|
+
import { PlanAggregateType, PlanTableEmphasisType, PlanTableSeriesType, PlanTableSplitType, PlanChartAxisType, PlanChartHeightType, PlanHeatCellsType, PlanTableCellType, PlanPortType, PlanCellMarkerType, PlanChartPointType, PlanChartBandPointType, PlanChartLayerType, PlanAxisSideType, PlanBreachType, PlanRollupType, PlanRunType, PlanDecisionMarkType, PlanBucketEventType, PlanChipType, PlanEventMarkType, PlanLaneType, PlanRowKindType, PlanInstantType, } from "./types.js";
|
|
19
|
+
import { createHeatCells, resolveTag, resolveInstant } from "./builders.js";
|
|
20
|
+
import { makeRow, assembleNested, } from "./assemble.js";
|
|
21
|
+
/**
|
|
22
|
+
* Wraps a Chart layer builder result with the Plan-only channels (axis side,
|
|
23
|
+
* breach threshold, stack series).
|
|
24
|
+
*
|
|
25
|
+
* @param layer - The `Chart.Line` / `Column` / `Area` / `Scatter` / `Band` / `ref*` builder result
|
|
26
|
+
* @param channels - The Plan-only channels ({@link PlanLayerChannels})
|
|
27
|
+
* @returns The wrapped layer for `Plan.chart`'s `layers`
|
|
28
|
+
*/
|
|
29
|
+
export function createLayer(layer, channels) {
|
|
30
|
+
return { plan: true, layer, channels };
|
|
31
|
+
}
|
|
32
|
+
/** Resolve an axis side literal into a `PlanAxisSideType` value. */
|
|
33
|
+
function axisSide(side) {
|
|
34
|
+
return East.value(variant(side ?? "left", null), PlanAxisSideType);
|
|
35
|
+
}
|
|
36
|
+
/** Envelope the optional breach channel. */
|
|
37
|
+
function breachOpt(breach) {
|
|
38
|
+
if (breach === undefined)
|
|
39
|
+
return East.value(none, OptionType(PlanBreachType));
|
|
40
|
+
const arm = "above" in breach
|
|
41
|
+
? variant("above", breach.above)
|
|
42
|
+
: variant("below", breach.below);
|
|
43
|
+
return East.value(some(arm), OptionType(PlanBreachType));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A consumed layer point's x coordinate as a canvas instant (#631). The
|
|
47
|
+
* Chart builder already typed the coordinate by the accessor's STATIC type
|
|
48
|
+
* (`ChartXType`: `time` / `number` / `category` — `scaleFor`), so the arm
|
|
49
|
+
* is known here without an East match: a `DateTimeType` x is a `time`
|
|
50
|
+
* instant, a numeric x a `number` instant, a `StringType` x an `ordinal`
|
|
51
|
+
* one. Which arm the canvas accepts is the root axis's; the renderer holds
|
|
52
|
+
* every row against it.
|
|
53
|
+
*/
|
|
54
|
+
function pointInstant(x, xScale) {
|
|
55
|
+
switch (xScale) {
|
|
56
|
+
case "time": return East.value(variant("time", x.unwrap("time")), PlanInstantType);
|
|
57
|
+
case "linear": return East.value(variant("number", x.unwrap("number")), PlanInstantType);
|
|
58
|
+
default: return East.value(variant("ordinal", x.unwrap("category")), PlanInstantType);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Consumes one chart-row layer input into `ArrayType(PlanChartLayerType)`
|
|
63
|
+
* arms (one per series for multi-series layers).
|
|
64
|
+
*/
|
|
65
|
+
function consumeLayer(input) {
|
|
66
|
+
const wrapped = input.plan === true;
|
|
67
|
+
const layer = wrapped ? input.layer : input;
|
|
68
|
+
const channels = wrapped ? input.channels : {};
|
|
69
|
+
if (layer.kind === "ref") {
|
|
70
|
+
const side = axisSide(channels.axis);
|
|
71
|
+
if (layer.refKind === "line") {
|
|
72
|
+
const o = layer.refOptions;
|
|
73
|
+
if (o.y === undefined) {
|
|
74
|
+
throw new Error("Plan.chart: vertical (x) refLines are not supported — instants are event marks (Plan.events) or the axis now-line");
|
|
75
|
+
}
|
|
76
|
+
return East.value([East.value(variant("refLine", {
|
|
77
|
+
y: o.y, axis: side,
|
|
78
|
+
label: o.label !== undefined ? some(o.label) : none,
|
|
79
|
+
}), PlanChartLayerType)], ArrayType(PlanChartLayerType));
|
|
80
|
+
}
|
|
81
|
+
if (layer.refKind === "band") {
|
|
82
|
+
const o = layer.refOptions;
|
|
83
|
+
if (o.x === undefined) {
|
|
84
|
+
throw new Error("Plan.chart: refBand needs x bounds (two instants) — y-range refBands are not supported on chart rows");
|
|
85
|
+
}
|
|
86
|
+
return East.value([East.value(variant("refBand", {
|
|
87
|
+
from: resolveInstant(o.x[0], "refBand x bounds"),
|
|
88
|
+
to: resolveInstant(o.x[1], "refBand x bounds"),
|
|
89
|
+
label: o.label !== undefined ? some(o.label) : none,
|
|
90
|
+
}), PlanChartLayerType)], ArrayType(PlanChartLayerType));
|
|
91
|
+
}
|
|
92
|
+
if (layer.refKind === "dot") {
|
|
93
|
+
const o = layer.refOptions;
|
|
94
|
+
return East.value([East.value(variant("refDot", {
|
|
95
|
+
t: resolveInstant(o.x, "refDot x"), y: o.y, axis: side,
|
|
96
|
+
label: o.label !== undefined ? some(o.label) : none,
|
|
97
|
+
}), PlanChartLayerType)], ArrayType(PlanChartLayerType));
|
|
98
|
+
}
|
|
99
|
+
throw new Error("Plan.chart: unsupported annotation layer");
|
|
100
|
+
}
|
|
101
|
+
if (layer.kind === "band") {
|
|
102
|
+
const xScale = layer.xScale;
|
|
103
|
+
const side = axisSide(channels.axis ?? layer.style.axis);
|
|
104
|
+
return layer.data.map((_$, s) => East.value(variant("band", {
|
|
105
|
+
points: s.points.map((_$2, p) => East.value({
|
|
106
|
+
t: pointInstant(p.x, xScale), lo: p.low, hi: p.high,
|
|
107
|
+
}, PlanChartBandPointType)),
|
|
108
|
+
axis: side,
|
|
109
|
+
}), PlanChartLayerType));
|
|
110
|
+
}
|
|
111
|
+
// Series layer — line / column / area / scatter. The shared channels are
|
|
112
|
+
// built fresh per use so no East expression is spliced twice.
|
|
113
|
+
if (layer.orientation === "horizontal") {
|
|
114
|
+
throw new Error("Plan.chart: Chart.Bar (horizontal) flips the frame the shared axis owns — use Chart.Column (vertical)");
|
|
115
|
+
}
|
|
116
|
+
const xScale = layer.xScale;
|
|
117
|
+
const stacked = layer.style.stack !== undefined;
|
|
118
|
+
if (layer.mark === "line") {
|
|
119
|
+
return layer.data.map((_$, s) => East.value(variant("line", {
|
|
120
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
121
|
+
axis: axisSide(channels.axis ?? layer.style.axis), breach: breachOpt(channels.breach),
|
|
122
|
+
}), PlanChartLayerType));
|
|
123
|
+
}
|
|
124
|
+
if (layer.mark === "area") {
|
|
125
|
+
return layer.data.map((_$, s) => East.value(variant("area", {
|
|
126
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
127
|
+
axis: axisSide(channels.axis ?? layer.style.axis),
|
|
128
|
+
}), PlanChartLayerType));
|
|
129
|
+
}
|
|
130
|
+
if (layer.mark === "scatter") {
|
|
131
|
+
return layer.data.map((_$, s) => East.value(variant("scatter", {
|
|
132
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
133
|
+
axis: axisSide(channels.axis ?? layer.style.axis),
|
|
134
|
+
}), PlanChartLayerType));
|
|
135
|
+
}
|
|
136
|
+
return layer.data.map((_$, s) => East.value(variant("column", {
|
|
137
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
138
|
+
axis: axisSide(channels.axis ?? layer.style.axis),
|
|
139
|
+
series: channels.series !== undefined
|
|
140
|
+
? East.value(some(channels.series), OptionType(StringType))
|
|
141
|
+
: (stacked
|
|
142
|
+
? East.value(some(s.key), OptionType(StringType))
|
|
143
|
+
: East.value(none, OptionType(StringType))),
|
|
144
|
+
breach: breachOpt(channels.breach),
|
|
145
|
+
}), PlanChartLayerType));
|
|
146
|
+
}
|
|
147
|
+
/** Concatenate the consumed layers of a chart row. */
|
|
148
|
+
export function consumeLayers(inputs) {
|
|
149
|
+
const list = Array.isArray(inputs) ? inputs : [inputs];
|
|
150
|
+
return list.reduce((acc, l) => acc.concat(consumeLayer(l)), East.value([], ArrayType(PlanChartLayerType)));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Pins a chart row to an explicit height (composed charts — §4·K3's 120px
|
|
154
|
+
* OUT + DEFECTS row), a CSS px size like every component height.
|
|
155
|
+
*
|
|
156
|
+
* @param size - The CSS px size (`"120px"`)
|
|
157
|
+
* @returns A `PlanChartHeightType` expression with the `fixed` arm
|
|
158
|
+
*/
|
|
159
|
+
export function createFixedHeight(size) {
|
|
160
|
+
return East.value(variant("fixed", size), PlanChartHeightType);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Creates a span row (the Gantt surface) — continuous state-run bars, with
|
|
164
|
+
* optional nested rows rolled up into union/byStatus bands (`×k` peak
|
|
165
|
+
* concurrency, summed quantities, pessimistic certainty).
|
|
166
|
+
*
|
|
167
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
168
|
+
* @param input - The span configuration ({@link PlanSpanInput})
|
|
169
|
+
* @returns The flattened subtree (parent first, children re-parented), branded with its kind
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```ts
|
|
173
|
+
* import { East } from "@elaraai/east";
|
|
174
|
+
* import { UIComponentType } from "@elaraai/east-ui";
|
|
175
|
+
* import { Plan } from "@elaraai/east-ui/internal";
|
|
176
|
+
*
|
|
177
|
+
* const example = East.function([], UIComponentType, _$ =>
|
|
178
|
+
* Plan.Root({
|
|
179
|
+
* axis: Plan.axis({ resolution: "week" }),
|
|
180
|
+
* rows: [Plan.span({
|
|
181
|
+
* key: "m03", label: "L1-M03", id: true, sub: "120 t",
|
|
182
|
+
* runs: [Plan.run({ key: "r1", start: new Date("2026-07-01"), end: new Date("2026-07-22"),
|
|
183
|
+
* label: "RUN · B-214", quantity: "96 t", state: "actual" })],
|
|
184
|
+
* })],
|
|
185
|
+
* }),
|
|
186
|
+
* );
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function createSpan(input) {
|
|
190
|
+
const spanKind = (rollup) => East.value(variant("span", {
|
|
191
|
+
runs: East.value((input.runs ?? []), ArrayType(PlanRunType)),
|
|
192
|
+
decisions: East.value((input.decisions ?? []), ArrayType(PlanDecisionMarkType)),
|
|
193
|
+
ports: East.value((input.ports ?? []), ArrayType(PlanPortType)),
|
|
194
|
+
rollup: rollup !== undefined ? some(resolveTag(rollup, PlanRollupType)) : none,
|
|
195
|
+
unit: input.unit !== undefined ? some(input.unit) : none,
|
|
196
|
+
}), PlanRowKindType);
|
|
197
|
+
if (input.rows === undefined)
|
|
198
|
+
return makeRow(input, spanKind(input.rollup));
|
|
199
|
+
// Nesting declares the rollup (default union); the RENDERER derives the
|
|
200
|
+
// bands from the subtree's runs — never precomputed expressions.
|
|
201
|
+
return assembleNested(input, input.rows, spanKind(input.rollup ?? "union"));
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Creates a bucket row (the Planner surface, verbatim) — allocation tiles in
|
|
205
|
+
* discrete slots, optionally sub-divided into lanes (AM/PM). WEEK resolution
|
|
206
|
+
* folds lanes into week cells; DAY re-splits — same data, slice-driven.
|
|
207
|
+
*
|
|
208
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
209
|
+
* @param input - The buckets configuration ({@link PlanBucketsInput})
|
|
210
|
+
* @returns The 1-row flattened subtree, branded with its kind
|
|
211
|
+
*/
|
|
212
|
+
export function createBuckets(input) {
|
|
213
|
+
const kind = East.value(variant("buckets", {
|
|
214
|
+
lanes: East.value(input.lanes ?? [], ArrayType(PlanLaneType)),
|
|
215
|
+
events: East.value((input.events ?? []), ArrayType(PlanBucketEventType)),
|
|
216
|
+
markers: East.value((input.markers ?? []), ArrayType(PlanCellMarkerType)),
|
|
217
|
+
}), PlanRowKindType);
|
|
218
|
+
return makeRow(input, kind);
|
|
219
|
+
}
|
|
220
|
+
/** Whether a domain bound is temporal — mirrors `Chart.Root`'s `isTemporalBound`. */
|
|
221
|
+
function isTemporalBound(bound) {
|
|
222
|
+
if (bound instanceof Date)
|
|
223
|
+
return true;
|
|
224
|
+
if (typeof bound === "number")
|
|
225
|
+
return false;
|
|
226
|
+
return Expr.type(bound).type === "DateTime";
|
|
227
|
+
}
|
|
228
|
+
/** Whether explicit tick positions are temporal — mirrors `Chart.Root`'s `isTemporalTickValues`. */
|
|
229
|
+
function isTemporalTickValues(tv) {
|
|
230
|
+
if (tv === undefined)
|
|
231
|
+
return false;
|
|
232
|
+
const expr = East.value(tv);
|
|
233
|
+
return Expr.type(expr).value.type === "DateTime";
|
|
234
|
+
}
|
|
235
|
+
/** Envelope a chart-row y-axis input (`Chart.Root`'s y-axis rules — value axes are numeric). */
|
|
236
|
+
function buildChartAxis(a, side) {
|
|
237
|
+
if (a.domain !== undefined && isTemporalBound(a.domain[0])) {
|
|
238
|
+
throw new Error(`Plan.chart: the ${side} axis is a numeric value axis — a temporal extent belongs to the shared time axis (Plan.axis window)`);
|
|
239
|
+
}
|
|
240
|
+
if (isTemporalTickValues(a.tickValues)) {
|
|
241
|
+
throw new Error(`Plan.chart: Date tickValues are only valid on a time axis — the ${side} axis is numeric; pass float tick positions`);
|
|
242
|
+
}
|
|
243
|
+
return East.value({
|
|
244
|
+
domain: a.domain !== undefined
|
|
245
|
+
? some(variant("number", { min: a.domain[0], max: a.domain[1] }))
|
|
246
|
+
: none,
|
|
247
|
+
tickValues: a.tickValues !== undefined
|
|
248
|
+
? some(variant("number", a.tickValues))
|
|
249
|
+
: none,
|
|
250
|
+
format: a.format !== undefined ? some(a.format) : none,
|
|
251
|
+
}, PlanChartAxisType);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Creates a chart row — Chart layers consumed AS DATA (reified `{t, y}`
|
|
255
|
+
* points on the axis arm the x accessor's type implies), drawn by the canvas
|
|
256
|
+
* itself on the shared scale. Never an embedded `<Chart>`; `Chart.Bar` is a
|
|
257
|
+
* build-time error.
|
|
258
|
+
*
|
|
259
|
+
* @param input - The chart configuration ({@link PlanChartInput})
|
|
260
|
+
* @returns The 1-row flattened subtree
|
|
261
|
+
*/
|
|
262
|
+
export function createChart(input) {
|
|
263
|
+
// Base-input `height` is the row-height override; the chart's own height
|
|
264
|
+
// mode is the `height` field here — spelled apart deliberately.
|
|
265
|
+
const heightMode = input.height === undefined
|
|
266
|
+
? East.value(variant("spark", null), PlanChartHeightType)
|
|
267
|
+
: (typeof input.height === "string"
|
|
268
|
+
? East.value(variant(input.height, null), PlanChartHeightType)
|
|
269
|
+
: East.value(input.height, PlanChartHeightType));
|
|
270
|
+
const kind = East.value(variant("chart", {
|
|
271
|
+
layers: consumeLayers(input.layers),
|
|
272
|
+
left: input.left !== undefined ? some(buildChartAxis(input.left, "left")) : none,
|
|
273
|
+
right: input.right !== undefined ? some(buildChartAxis(input.right, "right")) : none,
|
|
274
|
+
height: heightMode,
|
|
275
|
+
expandedHeight: input.expandedHeight !== undefined ? some(input.expandedHeight) : none,
|
|
276
|
+
expandable: input.expandable !== undefined ? some(input.expandable) : none,
|
|
277
|
+
}), PlanRowKindType);
|
|
278
|
+
const { height: _rowHeight, ...base } = input;
|
|
279
|
+
return makeRow(base, kind);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Creates a heat row (the Matrix cell recipes on the shared axis) — colour
|
|
283
|
+
* depth, weight bars or segment compositions. With `rows` and no explicit
|
|
284
|
+
* `cells`, the parent's cells are the per-bucket `aggregate` of its direct
|
|
285
|
+
* children's heat cells; the warn ring stays on the breaching child.
|
|
286
|
+
*
|
|
287
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
288
|
+
* @param input - The heat configuration ({@link PlanHeatInput})
|
|
289
|
+
* @returns The flattened subtree (parent first, children re-parented), branded with its kind
|
|
290
|
+
*/
|
|
291
|
+
export function createHeat(input) {
|
|
292
|
+
const aggregateOpt = () => input.aggregate !== undefined
|
|
293
|
+
? some(resolveTag(input.aggregate, PlanAggregateType))
|
|
294
|
+
: none;
|
|
295
|
+
const cells = input.cells;
|
|
296
|
+
if (input.rows === undefined) {
|
|
297
|
+
const kind = East.value(variant("heat", {
|
|
298
|
+
cells: cells !== undefined ? East.value(cells, PlanHeatCellsType) : createHeatCells([]),
|
|
299
|
+
aggregate: aggregateOpt(),
|
|
300
|
+
}), PlanRowKindType);
|
|
301
|
+
return makeRow(input, kind);
|
|
302
|
+
}
|
|
303
|
+
// A nesting parent DECLARES its aggregation (default mean); its cells stay
|
|
304
|
+
// empty (carrying the scale) and the renderer derives the per-bucket
|
|
305
|
+
// values from the children.
|
|
306
|
+
const kind = East.value(variant("heat", {
|
|
307
|
+
cells: cells !== undefined ? East.value(cells, PlanHeatCellsType) : createHeatCells([], input.scale),
|
|
308
|
+
aggregate: some(resolveTag(input.aggregate ?? "mean", PlanAggregateType)),
|
|
309
|
+
}), PlanRowKindType);
|
|
310
|
+
return assembleNested(input, input.rows, kind);
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Creates a table row (the Table groupBy surface with time-bucket columns).
|
|
314
|
+
* With `rows` and no explicit `cells`, the parent prints per-bucket
|
|
315
|
+
* subtotals via `aggregate` — a collapsed parent reads as its subtotal line.
|
|
316
|
+
*
|
|
317
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
318
|
+
* @param input - The table configuration ({@link PlanTableInput})
|
|
319
|
+
* @returns The flattened subtree (parent first, children re-parented), branded with its kind
|
|
320
|
+
*/
|
|
321
|
+
export function createTable(input) {
|
|
322
|
+
if (input.cells !== undefined && input.series !== undefined) {
|
|
323
|
+
throw new Error("Plan.table: pass `cells` (sugar for one plain series) OR `series` — not both");
|
|
324
|
+
}
|
|
325
|
+
const aggregateOpt = () => input.aggregate !== undefined
|
|
326
|
+
? some(resolveTag(input.aggregate, TableAggregateType))
|
|
327
|
+
: none;
|
|
328
|
+
const emphasisOf = () => resolveTag(input.emphasis ?? "body", PlanTableEmphasisType);
|
|
329
|
+
const formatOpt = () => input.format !== undefined ? some(East.value(input.format, TickFormatType)) : none;
|
|
330
|
+
// The stored form is ALWAYS series — `cells` wraps into one unstyled
|
|
331
|
+
// series, so the renderer has a single representation.
|
|
332
|
+
const seriesOf = () => input.series !== undefined
|
|
333
|
+
? East.value(input.series, ArrayType(PlanTableSeriesType))
|
|
334
|
+
: (input.cells !== undefined
|
|
335
|
+
? East.value([East.value({
|
|
336
|
+
cells: East.value(input.cells, ArrayType(PlanTableCellType)),
|
|
337
|
+
format: none, tone: none, strong: none, rollup: none,
|
|
338
|
+
}, PlanTableSeriesType)], ArrayType(PlanTableSeriesType))
|
|
339
|
+
: East.value([], ArrayType(PlanTableSeriesType)));
|
|
340
|
+
const splitOf = () => resolveTag(input.split ?? "horizontal", PlanTableSplitType);
|
|
341
|
+
if (input.rows === undefined) {
|
|
342
|
+
const kind = East.value(variant("table", {
|
|
343
|
+
series: seriesOf(),
|
|
344
|
+
split: splitOf(),
|
|
345
|
+
aggregate: aggregateOpt(),
|
|
346
|
+
format: formatOpt(),
|
|
347
|
+
emphasis: emphasisOf(),
|
|
348
|
+
}), PlanRowKindType);
|
|
349
|
+
return makeRow(input, kind);
|
|
350
|
+
}
|
|
351
|
+
// A nesting parent DECLARES its subtotal mode + format; the renderer
|
|
352
|
+
// derives the per-bucket cells from the children.
|
|
353
|
+
const kind = East.value(variant("table", {
|
|
354
|
+
series: seriesOf(),
|
|
355
|
+
split: splitOf(),
|
|
356
|
+
aggregate: some(resolveTag(input.aggregate ?? "sum", TableAggregateType)),
|
|
357
|
+
format: formatOpt(),
|
|
358
|
+
emphasis: emphasisOf(),
|
|
359
|
+
}), PlanRowKindType);
|
|
360
|
+
return assembleNested(input, input.rows, kind);
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Creates a cards row (the Roster surface on the shared axis) — shift chips
|
|
364
|
+
* spanning whole buckets.
|
|
365
|
+
*
|
|
366
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
367
|
+
* @param input - The cards configuration ({@link PlanCardsInput})
|
|
368
|
+
* @returns The 1-row flattened subtree, branded with its kind
|
|
369
|
+
*/
|
|
370
|
+
export function createCards(input) {
|
|
371
|
+
const kind = East.value(variant("cards", {
|
|
372
|
+
chips: East.value((input.chips ?? []), ArrayType(PlanChipType)),
|
|
373
|
+
}), PlanRowKindType);
|
|
374
|
+
return makeRow(input, kind);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Creates an event row — ● milestone / ◇◆ decision / ▲ exception marks at
|
|
378
|
+
* their instants on the shared scale (Gantt milestones live here).
|
|
379
|
+
*
|
|
380
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
381
|
+
* @param input - The events configuration ({@link PlanEventsInput})
|
|
382
|
+
* @returns The 1-row flattened subtree, branded with its kind
|
|
383
|
+
*/
|
|
384
|
+
export function createEvents(input) {
|
|
385
|
+
const kind = East.value(variant("events", {
|
|
386
|
+
marks: East.value((input.marks ?? []), ArrayType(PlanEventMarkType)),
|
|
387
|
+
}), PlanRowKindType);
|
|
388
|
+
return makeRow(input, kind);
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Creates a group strip — the canvas-level heterogeneous container. Collapsed
|
|
392
|
+
* it rests as its summary heat strip — explicit `summary` cells, or the
|
|
393
|
+
* renderer-derived `summaryAggregate` declaration (`none` ⇒ a plain band);
|
|
394
|
+
* expanding swaps the strip for the member rows in place.
|
|
395
|
+
*
|
|
396
|
+
* @typeParam K - The axis kind the group's instants ride (inferred; `never` when erased)
|
|
397
|
+
* @param input - The group configuration ({@link PlanGroupInput})
|
|
398
|
+
* @returns The flattened subtree (group first, members re-parented), branded with its kind
|
|
399
|
+
*/
|
|
400
|
+
export function createGroup(input) {
|
|
401
|
+
const summary = input.summary !== undefined
|
|
402
|
+
? East.value(some(East.value(input.summary, PlanHeatCellsType)), OptionType(PlanHeatCellsType))
|
|
403
|
+
: East.value(none, OptionType(PlanHeatCellsType));
|
|
404
|
+
const summaryAggregate = input.summaryAggregate !== undefined
|
|
405
|
+
? some(resolveTag(input.summaryAggregate, PlanAggregateType))
|
|
406
|
+
: none;
|
|
407
|
+
const kind = East.value(variant("group", {
|
|
408
|
+
summary, summaryAggregate, collapsed: input.collapsed !== undefined ? some(input.collapsed) : none,
|
|
409
|
+
}), PlanRowKindType);
|
|
410
|
+
if (input.rows === undefined)
|
|
411
|
+
return makeRow(input, kind);
|
|
412
|
+
return assembleNested(input, input.rows, kind);
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=factories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../src/collections/plan/factories.ts"],"names":[],"mappings":"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"}
|