@elaraai/e3-ui 1.0.102 → 1.0.104
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/dist/src/allocation/functions.d.ts +2 -1
- package/dist/src/allocation/functions.d.ts.map +1 -1
- package/dist/src/allocation/functions.js +3 -2
- package/dist/src/allocation/functions.js.map +1 -1
- package/dist/src/allocation/index.d.ts +120 -1
- package/dist/src/allocation/index.d.ts.map +1 -1
- package/dist/src/allocation/index.js +24 -4
- package/dist/src/allocation/index.js.map +1 -1
- package/dist/src/bind/data-indexed.d.ts +25 -4
- package/dist/src/bind/data-indexed.d.ts.map +1 -1
- package/dist/src/bind/data-indexed.js +58 -7
- package/dist/src/bind/data-indexed.js.map +1 -1
- package/dist/src/bind/data.d.ts +12 -14
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +11 -11
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/func.d.ts +7 -2
- package/dist/src/bind/func.d.ts.map +1 -1
- package/dist/src/bind/func.js +10 -3
- package/dist/src/bind/func.js.map +1 -1
- package/dist/src/bind/record.d.ts +6 -6
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +148 -1
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +55 -5
- package/dist/src/calendar/index.js.map +1 -1
- package/dist/src/decision/bind.d.ts.map +1 -1
- package/dist/src/decision/index.d.ts +218 -218
- package/dist/src/decision/index.d.ts.map +1 -1
- package/dist/src/decision/types.d.ts.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +32 -14
- package/dist/src/flowchart/canvas.d.ts.map +1 -1
- package/dist/src/flowchart/canvas.js +21 -6
- package/dist/src/flowchart/canvas.js.map +1 -1
- package/dist/src/flowchart/details.d.ts +469 -0
- package/dist/src/flowchart/details.d.ts.map +1 -0
- package/dist/src/flowchart/details.js +1035 -0
- package/dist/src/flowchart/details.js.map +1 -0
- package/dist/src/flowchart/flowchart.d.ts +16 -72
- package/dist/src/flowchart/flowchart.d.ts.map +1 -1
- package/dist/src/flowchart/flowchart.js +10 -1
- package/dist/src/flowchart/flowchart.js.map +1 -1
- package/dist/src/flowchart/index.d.ts +282 -251
- package/dist/src/flowchart/index.d.ts.map +1 -1
- package/dist/src/flowchart/index.js +234 -220
- package/dist/src/flowchart/index.js.map +1 -1
- package/dist/src/flowchart/kinds.d.ts +438 -0
- package/dist/src/flowchart/kinds.d.ts.map +1 -0
- package/dist/src/flowchart/kinds.js +799 -0
- package/dist/src/flowchart/kinds.js.map +1 -0
- package/dist/src/flowchart/library.d.ts +155 -740
- package/dist/src/flowchart/library.d.ts.map +1 -1
- package/dist/src/flowchart/library.js +191 -673
- package/dist/src/flowchart/library.js.map +1 -1
- package/dist/src/flowchart/payload.d.ts +3654 -7845
- package/dist/src/flowchart/payload.d.ts.map +1 -1
- package/dist/src/flowchart/payload.js +331 -469
- package/dist/src/flowchart/payload.js.map +1 -1
- package/dist/src/flowchart/templates.d.ts +657 -0
- package/dist/src/flowchart/templates.d.ts.map +1 -0
- package/dist/src/flowchart/templates.js +658 -0
- package/dist/src/flowchart/templates.js.map +1 -0
- package/dist/src/flowchart/types.d.ts +2258 -214
- package/dist/src/flowchart/types.d.ts.map +1 -1
- package/dist/src/flowchart/types.js +374 -124
- package/dist/src/flowchart/types.js.map +1 -1
- package/dist/src/index.d.ts +13 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +24 -29
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +5 -7
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +12 -19
- package/dist/src/internal.js.map +1 -1
- package/dist/src/ontology/index.d.ts +44 -15
- package/dist/src/ontology/index.d.ts.map +1 -1
- package/dist/src/ontology/index.js +19 -11
- package/dist/src/ontology/index.js.map +1 -1
- package/dist/src/plan/builders.d.ts +26 -26
- package/dist/src/plan/builders.d.ts.map +1 -1
- package/dist/src/plan/builders.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +59 -58
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +6 -4
- package/dist/src/plan/event-rows.js.map +1 -1
- package/dist/src/plan/factories.js.map +1 -1
- package/dist/src/plan/ir.d.ts +1 -0
- package/dist/src/plan/ir.d.ts.map +1 -1
- package/dist/src/plan/library.d.ts.map +1 -1
- package/dist/src/plan/nested-checks.js.map +1 -1
- package/dist/src/plan/plan.d.ts +567 -423
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +67 -3
- package/dist/src/plan/plan.js.map +1 -1
- package/dist/src/plan/series.d.ts.map +1 -1
- package/dist/src/plan/series.js.map +1 -1
- package/dist/src/plan/types.d.ts +173 -172
- package/dist/src/plan/types.d.ts.map +1 -1
- package/dist/src/query/builder.d.ts +368 -321
- package/dist/src/query/builder.d.ts.map +1 -1
- package/dist/src/query/builder.js +12 -1
- package/dist/src/query/builder.js.map +1 -1
- package/dist/src/query/index.d.ts +5 -1
- package/dist/src/query/index.d.ts.map +1 -1
- package/dist/src/query/index.js +3 -1
- package/dist/src/query/index.js.map +1 -1
- package/dist/src/query/library.d.ts +6 -6
- package/dist/src/query/queries.d.ts +3 -3
- package/dist/src/roster/fit.d.ts +5 -2
- package/dist/src/roster/fit.d.ts.map +1 -1
- package/dist/src/roster/fit.js +5 -3
- package/dist/src/roster/fit.js.map +1 -1
- package/dist/src/roster/index.d.ts +103 -2
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +45 -6
- package/dist/src/roster/index.js.map +1 -1
- package/dist/src/runtime/index.d.ts +1 -3
- package/dist/src/runtime/index.d.ts.map +1 -1
- package/dist/src/runtime/index.js +1 -3
- package/dist/src/runtime/index.js.map +1 -1
- package/dist/src/schedule/fields.js.map +1 -1
- package/dist/src/schedule/library.js.map +1 -1
- package/dist/src/schedule/record-window.d.ts +27 -26
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/types.d.ts +196 -196
- package/dist/src/schematic/index.d.ts +1 -1
- package/dist/src/schematic/index.d.ts.map +1 -1
- package/dist/src/schematic/index.js +1 -1
- package/dist/src/schematic/index.js.map +1 -1
- package/dist/src/schematic/kinds.d.ts +4 -24
- package/dist/src/schematic/kinds.d.ts.map +1 -1
- package/dist/src/schematic/kinds.js +8 -212
- package/dist/src/schematic/kinds.js.map +1 -1
- package/dist/src/schematic/library.d.ts.map +1 -1
- package/dist/src/schematic/payload.d.ts +1688 -1549
- package/dist/src/schematic/payload.d.ts.map +1 -1
- package/dist/src/schematic/payload.js +38 -1
- package/dist/src/schematic/payload.js.map +1 -1
- package/dist/src/schematic/shapes.d.ts.map +1 -1
- package/dist/src/schematic/types.d.ts +978 -978
- package/dist/src/schematic/types.d.ts.map +1 -1
- package/dist/src/schematic/types.js +4 -36
- package/dist/src/schematic/types.js.map +1 -1
- package/dist/src/schematic/window.d.ts +9 -42
- package/dist/src/schematic/window.d.ts.map +1 -1
- package/dist/src/schematic/window.js +10 -115
- package/dist/src/schematic/window.js.map +1 -1
- package/dist/src/sheet/actions.d.ts +388 -0
- package/dist/src/sheet/actions.d.ts.map +1 -0
- package/dist/src/sheet/actions.js +594 -0
- package/dist/src/sheet/actions.js.map +1 -0
- package/dist/src/sheet/bridge.d.ts +12 -1
- package/dist/src/sheet/bridge.d.ts.map +1 -1
- package/dist/src/sheet/bridge.js +30 -6
- package/dist/src/sheet/bridge.js.map +1 -1
- package/dist/src/sheet/columns.d.ts +5 -2
- package/dist/src/sheet/columns.d.ts.map +1 -1
- package/dist/src/sheet/columns.js.map +1 -1
- package/dist/src/sheet/draft-bridge.d.ts +9 -4
- package/dist/src/sheet/draft-bridge.d.ts.map +1 -1
- package/dist/src/sheet/draft-bridge.js +22 -7
- package/dist/src/sheet/draft-bridge.js.map +1 -1
- package/dist/src/sheet/editing-types.d.ts +71 -71
- package/dist/src/sheet/fields.d.ts +13 -0
- package/dist/src/sheet/fields.d.ts.map +1 -1
- package/dist/src/sheet/fields.js +3 -0
- package/dist/src/sheet/fields.js.map +1 -1
- package/dist/src/sheet/group.js.map +1 -1
- package/dist/src/sheet/index.d.ts +32 -2
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +18 -3
- package/dist/src/sheet/index.js.map +1 -1
- package/dist/src/sheet/library.d.ts +8 -0
- package/dist/src/sheet/library.d.ts.map +1 -1
- package/dist/src/sheet/library.js.map +1 -1
- package/dist/src/sheet/link.d.ts.map +1 -1
- package/dist/src/sheet/record.js.map +1 -1
- package/dist/src/sheet/root.d.ts +23 -1
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +40 -5
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +9332 -5621
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +41 -2
- package/dist/src/sheet/sheet.js.map +1 -1
- package/dist/src/sheet/templates.d.ts +4 -0
- package/dist/src/sheet/templates.d.ts.map +1 -1
- package/dist/src/sheet/types.d.ts +13020 -5839
- package/dist/src/sheet/types.d.ts.map +1 -1
- package/dist/src/sheet/types.js +114 -2
- package/dist/src/sheet/types.js.map +1 -1
- package/dist/src/studio/builder.d.ts +6 -6
- package/dist/src/studio/library.d.ts +9 -9
- package/dist/src/studio/pages.d.ts +6 -6
- package/dist/src/studio/publish.d.ts +3 -3
- package/dist/src/utils/derive.d.ts +1 -1
- package/dist/src/utils/derive.js +1 -1
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/key-visibility.d.ts +1 -1
- package/dist/src/utils/record-kind.d.ts +625 -0
- package/dist/src/utils/record-kind.d.ts.map +1 -0
- package/dist/src/utils/record-kind.js +450 -0
- package/dist/src/utils/record-kind.js.map +1 -0
- package/dist/src/utils/views.d.ts +55 -0
- package/dist/src/utils/views.d.ts.map +1 -0
- package/dist/src/utils/views.js +72 -0
- package/dist/src/utils/views.js.map +1 -0
- package/dist/src/utils/vocabulary.d.ts +48 -0
- package/dist/src/utils/vocabulary.d.ts.map +1 -0
- package/dist/src/utils/vocabulary.js +47 -0
- package/dist/src/utils/vocabulary.js.map +1 -0
- package/dist/test/allocation/allocation.examples.d.ts +3 -1
- package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
- package/dist/test/allocation/allocation.examples.js +81 -2
- package/dist/test/allocation/allocation.examples.js.map +1 -1
- package/dist/test/bind/data/data.examples.d.ts +1 -1
- package/dist/test/bind/func/func.examples.d.ts +19 -1
- package/dist/test/bind/func/func.examples.d.ts.map +1 -1
- package/dist/test/bind/func/func.examples.js +36 -1
- package/dist/test/bind/func/func.examples.js.map +1 -1
- package/dist/test/calendar/calendar.examples.d.ts +2 -0
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar.examples.js +80 -2
- package/dist/test/calendar/calendar.examples.js.map +1 -1
- package/dist/test/decision/queue.examples.d.ts +1 -0
- package/dist/test/decision/queue.examples.d.ts.map +1 -1
- package/dist/test/decision/queue.examples.js +12 -0
- package/dist/test/decision/queue.examples.js.map +1 -1
- package/dist/test/examples-package.d.ts.map +1 -1
- package/dist/test/examples-package.js +5 -4
- package/dist/test/examples-package.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +1250 -4605
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
- package/dist/test/flowchart/flowchart.examples.js +861 -512
- package/dist/test/flowchart/flowchart.examples.js.map +1 -1
- package/dist/test/ontology/ontology.examples.d.ts +2 -3
- package/dist/test/ontology/ontology.examples.d.ts.map +1 -1
- package/dist/test/ontology/ontology.examples.js +32 -21
- package/dist/test/ontology/ontology.examples.js.map +1 -1
- package/dist/test/plan/plan-events.examples.d.ts +1 -0
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-events.examples.js +44 -0
- package/dist/test/plan/plan-events.examples.js.map +1 -1
- package/dist/test/plan/plan-nested.examples.d.ts +15 -15
- package/dist/test/plan/plan-nested.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-nested.examples.js +5 -5
- package/dist/test/plan/plan-nested.examples.js.map +1 -1
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +1 -1
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.js.map +1 -1
- package/dist/test/query/query.examples.d.ts +2 -0
- package/dist/test/query/query.examples.d.ts.map +1 -1
- package/dist/test/query/query.examples.js +37 -1
- package/dist/test/query/query.examples.js.map +1 -1
- package/dist/test/roster/domain.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.d.ts +2 -0
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +76 -15
- package/dist/test/roster/roster.examples.js.map +1 -1
- package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic-records.examples.js +6 -4
- package/dist/test/schematic/schematic-records.examples.js.map +1 -1
- package/dist/test/schematic/schematic.examples.d.ts +1 -0
- package/dist/test/schematic/schematic.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic.examples.js +144 -0
- package/dist/test/schematic/schematic.examples.js.map +1 -1
- package/dist/test/sheet/sheet-actions.examples.d.ts +1264 -0
- package/dist/test/sheet/sheet-actions.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-actions.examples.js +394 -0
- package/dist/test/sheet/sheet-actions.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +1 -0
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +77 -0
- package/dist/test/sheet/sheet.examples.js.map +1 -1
- package/dist/test/studio/studio.examples.d.ts +1 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +18 -8
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +14 -13
- package/dist/src/diff/index.d.ts +0 -407
- package/dist/src/diff/index.d.ts.map +0 -1
- package/dist/src/diff/index.js +0 -203
- package/dist/src/diff/index.js.map +0 -1
- package/dist/src/experiment/index.d.ts +0 -1033
- package/dist/src/experiment/index.d.ts.map +0 -1
- package/dist/src/experiment/index.js +0 -197
- package/dist/src/experiment/index.js.map +0 -1
- package/dist/src/experiment/types.d.ts +0 -1093
- package/dist/src/experiment/types.d.ts.map +0 -1
- package/dist/src/experiment/types.js +0 -423
- package/dist/src/experiment/types.js.map +0 -1
- package/dist/src/flowchart/over.d.ts +0 -227
- package/dist/src/flowchart/over.d.ts.map +0 -1
- package/dist/src/flowchart/over.js +0 -213
- package/dist/src/flowchart/over.js.map +0 -1
- package/dist/src/flowchart/patch.d.ts +0 -64
- package/dist/src/flowchart/patch.d.ts.map +0 -1
- package/dist/src/flowchart/patch.js +0 -67
- package/dist/src/flowchart/patch.js.map +0 -1
- package/dist/src/flowchart/values.d.ts +0 -271
- package/dist/src/flowchart/values.d.ts.map +0 -1
- package/dist/src/flowchart/values.js +0 -220
- package/dist/src/flowchart/values.js.map +0 -1
- package/dist/src/flowchart/window.d.ts +0 -306
- package/dist/src/flowchart/window.d.ts.map +0 -1
- package/dist/src/flowchart/window.js +0 -63
- package/dist/src/flowchart/window.js.map +0 -1
- package/dist/src/runtime/diff.d.ts +0 -36
- package/dist/src/runtime/diff.d.ts.map +0 -1
- package/dist/src/runtime/diff.js +0 -34
- package/dist/src/runtime/diff.js.map +0 -1
- package/dist/src/runtime/experiment.d.ts +0 -48
- package/dist/src/runtime/experiment.d.ts.map +0 -1
- package/dist/src/runtime/experiment.js +0 -10
- package/dist/src/runtime/experiment.js.map +0 -1
- package/dist/test/diff/diff.examples.d.ts +0 -313
- package/dist/test/diff/diff.examples.d.ts.map +0 -1
- package/dist/test/diff/diff.examples.js +0 -452
- package/dist/test/diff/diff.examples.js.map +0 -1
- package/dist/test/experiment/experiment.examples.d.ts +0 -1512
- package/dist/test/experiment/experiment.examples.d.ts.map +0 -1
- package/dist/test/experiment/experiment.examples.js +0 -609
- package/dist/test/experiment/experiment.examples.js.map +0 -1
|
@@ -1,271 +0,0 @@
|
|
|
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
|
-
* `Flowchart.value` and `Flowchart.values` (#1244, `Flowchart Builder Spec.md`
|
|
7
|
-
* §4.3, §4.4): the flows a solution ships, written as literals — flows by
|
|
8
|
-
* name, a record's value, or one flow, the value of the host's dataset — each
|
|
9
|
-
* filled where the literal leaves a field out and checked when the package
|
|
10
|
-
* builds, as `Query.value` checks the saved queries a solution ships.
|
|
11
|
-
*
|
|
12
|
-
* @packageDocumentation
|
|
13
|
-
*/
|
|
14
|
-
import { type ValueTypeOf } from "@elaraai/east";
|
|
15
|
-
import { FlowchartFlowType, type FlowchartFlowsType } from "./types.js";
|
|
16
|
-
/** String shorthand for a transition's kind (`Flowchart.Types.Kind`): `"planned"` draws solid, `"observed"` dashed. */
|
|
17
|
-
export type FlowchartLinkKindLiteral = "planned" | "observed";
|
|
18
|
-
/**
|
|
19
|
-
* One lane of a flow, as a literal writes it.
|
|
20
|
-
*
|
|
21
|
-
* @property key - Its identity, which states name
|
|
22
|
-
* @property label - Its band's header; left out, the key, uppercased
|
|
23
|
-
*/
|
|
24
|
-
export interface FlowchartLaneInput {
|
|
25
|
-
/** Its identity, which states name. */
|
|
26
|
-
readonly key: string;
|
|
27
|
-
/** Its band's header; left out, the key, uppercased. */
|
|
28
|
-
readonly label?: string;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* One state of a flow, as a literal writes it.
|
|
32
|
-
*
|
|
33
|
-
* @property key - Its short code: its identity, which transitions and decisions name
|
|
34
|
-
* @property label - The name under its code
|
|
35
|
-
* @property lane - The lane it is in, which the flow must have
|
|
36
|
-
* @property members - A state class's count of members: the ×N badge
|
|
37
|
-
* @property notes - Notes shown on hover
|
|
38
|
-
*/
|
|
39
|
-
export interface FlowchartStateInput {
|
|
40
|
-
/** Its short code: its identity, which transitions and decisions name. */
|
|
41
|
-
readonly key: string;
|
|
42
|
-
/** The name under its code. */
|
|
43
|
-
readonly label?: string;
|
|
44
|
-
/** The lane it is in, which the flow must have. */
|
|
45
|
-
readonly lane: string;
|
|
46
|
-
/** A state class's count of members: the ×N badge. */
|
|
47
|
-
readonly members?: bigint;
|
|
48
|
-
/** Notes shown on hover. */
|
|
49
|
-
readonly notes?: string;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* The evidence behind a transition, as a literal writes it.
|
|
53
|
-
*
|
|
54
|
-
* @property volume - The volume measured across it: its stroke's weight and its badge
|
|
55
|
-
* @property count - The events behind it
|
|
56
|
-
* @property measuredAt - When it was measured
|
|
57
|
-
* @property unit - The volume's unit, printed on its badge
|
|
58
|
-
*/
|
|
59
|
-
export interface FlowchartEvidenceInput {
|
|
60
|
-
/** The volume measured across it: its stroke's weight and its badge. */
|
|
61
|
-
readonly volume?: number;
|
|
62
|
-
/** The events behind it. */
|
|
63
|
-
readonly count?: bigint;
|
|
64
|
-
/** When it was measured. */
|
|
65
|
-
readonly measuredAt?: Date;
|
|
66
|
-
/** The volume's unit, printed on its badge. */
|
|
67
|
-
readonly unit?: string;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* One transition of a flow, as a literal writes it.
|
|
71
|
-
*
|
|
72
|
-
* @property key - Its identity; left out, the renderer derives one from its ends
|
|
73
|
-
* @property from - The state it leaves
|
|
74
|
-
* @property to - The state it enters; one the flow does not have draws as the unresolved ghost
|
|
75
|
-
* @property kind - `"planned"` (solid, the default) or `"observed"` (dashed)
|
|
76
|
-
* @property trigger - The decision that governs it, which the flow must have
|
|
77
|
-
* @property evidence - The evidence behind it
|
|
78
|
-
*/
|
|
79
|
-
export interface FlowchartLinkInput {
|
|
80
|
-
/** Its identity; left out, the renderer derives one from its ends. */
|
|
81
|
-
readonly key?: string;
|
|
82
|
-
/** The state it leaves. */
|
|
83
|
-
readonly from: string;
|
|
84
|
-
/** The state it enters; one the flow does not have draws as the unresolved ghost. */
|
|
85
|
-
readonly to: string;
|
|
86
|
-
/** `"planned"` (solid, the default) or `"observed"` (dashed). */
|
|
87
|
-
readonly kind?: FlowchartLinkKindLiteral;
|
|
88
|
-
/** The decision that governs it, which the flow must have. */
|
|
89
|
-
readonly trigger?: string;
|
|
90
|
-
/** The evidence behind it. */
|
|
91
|
-
readonly evidence?: FlowchartEvidenceInput;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* One decision of a flow, as a literal writes it.
|
|
95
|
-
*
|
|
96
|
-
* @property key - Its identity, which transitions name
|
|
97
|
-
* @property label - Its name
|
|
98
|
-
* @property letter - Its diamond's letter; left out, its name's first
|
|
99
|
-
* @property owner - Who decides it
|
|
100
|
-
* @property queue - The states queued at it
|
|
101
|
-
* @property outcomes - A line on what it decides
|
|
102
|
-
*/
|
|
103
|
-
export interface FlowchartTriggerInput {
|
|
104
|
-
/** Its identity, which transitions name. */
|
|
105
|
-
readonly key: string;
|
|
106
|
-
/** Its name. */
|
|
107
|
-
readonly label: string;
|
|
108
|
-
/** Its diamond's letter; left out, its name's first. */
|
|
109
|
-
readonly letter?: string;
|
|
110
|
-
/** Who decides it. */
|
|
111
|
-
readonly owner?: string;
|
|
112
|
-
/** The states queued at it. */
|
|
113
|
-
readonly queue?: readonly string[];
|
|
114
|
-
/** A line on what it decides. */
|
|
115
|
-
readonly outcomes?: string;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* One flow, as a literal writes it — what `Flowchart.value` takes, and each
|
|
119
|
-
* flow `Flowchart.values` takes by name.
|
|
120
|
-
*
|
|
121
|
-
* @property description - One sentence about it: the line its card in the Flows tab shows
|
|
122
|
-
* @property lanes - Its lanes, in band order
|
|
123
|
-
* @property states - Its states
|
|
124
|
-
* @property links - Its transitions
|
|
125
|
-
* @property triggers - Its decisions; left out, none
|
|
126
|
-
*/
|
|
127
|
-
export interface FlowchartFlowInput {
|
|
128
|
-
/** One sentence about it: the line its card in the Flows tab shows. */
|
|
129
|
-
readonly description?: string;
|
|
130
|
-
/** Its lanes, in band order. */
|
|
131
|
-
readonly lanes: readonly FlowchartLaneInput[];
|
|
132
|
-
/** Its states. */
|
|
133
|
-
readonly states: readonly FlowchartStateInput[];
|
|
134
|
-
/** Its transitions. */
|
|
135
|
-
readonly links: readonly FlowchartLinkInput[];
|
|
136
|
-
/** Its decisions; left out, none. */
|
|
137
|
-
readonly triggers?: readonly FlowchartTriggerInput[];
|
|
138
|
-
}
|
|
139
|
-
/** One flow's value. */
|
|
140
|
-
type FlowValue = ValueTypeOf<typeof FlowchartFlowType>;
|
|
141
|
-
/**
|
|
142
|
-
* One flow's value — what an app with a single flow declares its input of one
|
|
143
|
-
* flow with, which it hands the flowchart as `data` — written as a literal and
|
|
144
|
-
* checked when the package builds. A record always holds flows by name, so a
|
|
145
|
-
* lone flow in a record is `Flowchart.values` with one entry.
|
|
146
|
-
*
|
|
147
|
-
* @remarks
|
|
148
|
-
* - **Filled**: a literal leaves out what it does not need — the flow's
|
|
149
|
-
* `description`, a state's `label`, `members` and `notes`, a link's `key`,
|
|
150
|
-
* `kind`, `trigger` and `evidence`, a lane's `label`, a decision's `letter`,
|
|
151
|
-
* `owner`, `queue` and `outcomes`, and `triggers` — and each is `none`, or
|
|
152
|
-
* empty.
|
|
153
|
-
* - **Checked**: a flow whose rows would not draw or commit fails the build —
|
|
154
|
-
* two lanes, states, links or decisions of one key, a state naming a lane
|
|
155
|
-
* the flow does not have, a link naming a decision it does not have. A link
|
|
156
|
-
* naming a state the flow does not have is kept: it draws as the unresolved
|
|
157
|
-
* ghost.
|
|
158
|
-
*
|
|
159
|
-
* @param flow - The flow, as a literal ({@link FlowchartFlowInput})
|
|
160
|
-
* @returns The flow: a value of `Flowchart.Types.Flow`
|
|
161
|
-
* @throws {Error} When two lanes, states, links or decisions share a key, a
|
|
162
|
-
* state names a lane the flow does not have, or a link names a decision it
|
|
163
|
-
* does not have — naming the row and the remedy
|
|
164
|
-
*
|
|
165
|
-
* @example
|
|
166
|
-
* ```tsx
|
|
167
|
-
* // .tsx file with the `@jsxImportSource @elaraai/e3-ui` pragma
|
|
168
|
-
* import { East, variant } from "@elaraai/east";
|
|
169
|
-
* import { Box, Reactive, UIComponentType } from "@elaraai/east-ui";
|
|
170
|
-
* import { Data, Flowchart } from "@elaraai/e3-ui";
|
|
171
|
-
* import e3 from "@elaraai/e3";
|
|
172
|
-
*
|
|
173
|
-
* export const handoverFlow = e3.input("flowchart_handover", Flowchart.Types.Flow, variant("value", Flowchart.value({
|
|
174
|
-
* description: "From the last scan to the driver's signature",
|
|
175
|
-
* lanes: [{ key: "load", label: "Load" }, { key: "road", label: "Road" }, { key: "door", label: "Door" }],
|
|
176
|
-
* states: [
|
|
177
|
-
* { key: "LDD", label: "Loaded", lane: "load" },
|
|
178
|
-
* { key: "DSP", label: "Dispatched", lane: "road" },
|
|
179
|
-
* { key: "DLV", label: "Delivered", lane: "door" },
|
|
180
|
-
* { key: "RTN", label: "Returned", lane: "door" },
|
|
181
|
-
* ],
|
|
182
|
-
* links: [
|
|
183
|
-
* { from: "LDD", to: "DSP" },
|
|
184
|
-
* { from: "DSP", to: "DLV", trigger: "attempt" },
|
|
185
|
-
* { from: "DSP", to: "RTN", kind: "observed", trigger: "attempt" },
|
|
186
|
-
* ],
|
|
187
|
-
* triggers: [{ key: "attempt", label: "attempt", owner: "driver" }],
|
|
188
|
-
* })));
|
|
189
|
-
*
|
|
190
|
-
* const flowchart = East.function([], UIComponentType, (_$) => (
|
|
191
|
-
* <Reactive>{$ => {
|
|
192
|
-
* const handover = $.let(Data.bind(handoverFlow));
|
|
193
|
-
* return (
|
|
194
|
-
* <Box height="500px">
|
|
195
|
-
* <Flowchart data={handover} orientation="TD" inspector={false} name="handover" />
|
|
196
|
-
* </Box>
|
|
197
|
-
* );
|
|
198
|
-
* }}</Reactive>
|
|
199
|
-
* ));
|
|
200
|
-
* ```
|
|
201
|
-
*/
|
|
202
|
-
export declare function flowchartValue(flow: FlowchartFlowInput): FlowValue;
|
|
203
|
-
/**
|
|
204
|
-
* A record of flows' value, by name — what an app declares its record of
|
|
205
|
-
* flows with — each flow written as a literal and checked when the package
|
|
206
|
-
* builds, as `Flowchart.value` checks one: a record's value, as `Query.value`
|
|
207
|
-
* is one.
|
|
208
|
-
*
|
|
209
|
-
* @param flows - The flows, each its name to its literal ({@link FlowchartFlowInput})
|
|
210
|
-
* @returns The flows by name: a value of the record's type, `Flowchart.Types.Flows`
|
|
211
|
-
* @throws {Error} When a flow does not check, naming the flow, the row and the
|
|
212
|
-
* remedy, as `Flowchart.value` does
|
|
213
|
-
*
|
|
214
|
-
* @example
|
|
215
|
-
* ```tsx
|
|
216
|
-
* // .tsx file with the `@jsxImportSource @elaraai/e3-ui` pragma
|
|
217
|
-
* import { East } from "@elaraai/east";
|
|
218
|
-
* import { Box, Reactive, UIComponentType } from "@elaraai/east-ui";
|
|
219
|
-
* import { Flowchart, Record } from "@elaraai/e3-ui";
|
|
220
|
-
* import e3 from "@elaraai/e3";
|
|
221
|
-
*
|
|
222
|
-
* export const depotFlows = e3.record("flowchart_depot_flows", Flowchart.Types.Flows, {
|
|
223
|
-
* initial: Flowchart.values({
|
|
224
|
-
* "Inbound parcels": {
|
|
225
|
-
* description: "From the trailer to the van",
|
|
226
|
-
* lanes: [{ key: "intake", label: "Intake" }, { key: "sort", label: "Sort" }, { key: "load", label: "Load" }],
|
|
227
|
-
* states: [
|
|
228
|
-
* { key: "ARV", label: "Arrived", lane: "intake" },
|
|
229
|
-
* { key: "SCN", label: "Scanned", lane: "intake" },
|
|
230
|
-
* { key: "CH*", label: "Sort chutes", lane: "sort", members: 12n },
|
|
231
|
-
* { key: "LDD", label: "Loaded", lane: "load" },
|
|
232
|
-
* ],
|
|
233
|
-
* links: [
|
|
234
|
-
* { from: "ARV", to: "SCN" },
|
|
235
|
-
* { from: "SCN", to: "CH*", trigger: "route" },
|
|
236
|
-
* { from: "CH*", to: "LDD" },
|
|
237
|
-
* { from: "SCN", to: "SCN", kind: "observed" },
|
|
238
|
-
* ],
|
|
239
|
-
* triggers: [{ key: "route", label: "route", owner: "sort-planner" }],
|
|
240
|
-
* },
|
|
241
|
-
* "Returns": {
|
|
242
|
-
* description: "From the counter back to the sender",
|
|
243
|
-
* lanes: [{ key: "counter", label: "Counter" }, { key: "check", label: "Check" }, { key: "out", label: "Out" }],
|
|
244
|
-
* states: [
|
|
245
|
-
* { key: "RCV", label: "Received", lane: "counter" },
|
|
246
|
-
* { key: "INS", label: "Inspected", lane: "check" },
|
|
247
|
-
* { key: "RSD", label: "Resent", lane: "out" },
|
|
248
|
-
* ],
|
|
249
|
-
* links: [{ from: "RCV", to: "INS" }, { from: "INS", to: "RSD" }, { from: "INS", to: "BIN", kind: "observed" }],
|
|
250
|
-
* },
|
|
251
|
-
* }),
|
|
252
|
-
* mutations: (mutation) => ({
|
|
253
|
-
* patch: mutation.patch(),
|
|
254
|
-
* }),
|
|
255
|
-
* });
|
|
256
|
-
*
|
|
257
|
-
* const flowchart = East.function([], UIComponentType, (_$) => (
|
|
258
|
-
* <Reactive>{$ => {
|
|
259
|
-
* const flows = $.let(Record.bind(depotFlows));
|
|
260
|
-
* return (
|
|
261
|
-
* <Box height="500px">
|
|
262
|
-
* <Flowchart record={flows} flow="Inbound parcels" library={[Flowchart.library.flows()]} />
|
|
263
|
-
* </Box>
|
|
264
|
-
* );
|
|
265
|
-
* }}</Reactive>
|
|
266
|
-
* ));
|
|
267
|
-
* ```
|
|
268
|
-
*/
|
|
269
|
-
export declare function flowchartValues(flows: Readonly<Record<string, FlowchartFlowInput>>): ValueTypeOf<FlowchartFlowsType>;
|
|
270
|
-
export {};
|
|
271
|
-
//# sourceMappingURL=values.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../../src/flowchart/values.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,220 +0,0 @@
|
|
|
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
|
-
* `Flowchart.value` and `Flowchart.values` (#1244, `Flowchart Builder Spec.md`
|
|
7
|
-
* §4.3, §4.4): the flows a solution ships, written as literals — flows by
|
|
8
|
-
* name, a record's value, or one flow, the value of the host's dataset — each
|
|
9
|
-
* filled where the literal leaves a field out and checked when the package
|
|
10
|
-
* builds, as `Query.value` checks the saved queries a solution ships.
|
|
11
|
-
*
|
|
12
|
-
* @packageDocumentation
|
|
13
|
-
*/
|
|
14
|
-
import { SortedMap, StringType, compareFor, none, some, variant } from "@elaraai/east";
|
|
15
|
-
import { FlowchartFlowType } from "./types.js";
|
|
16
|
-
/** An optional literal field as an `Option`. */
|
|
17
|
-
function optional(field) {
|
|
18
|
-
return field === undefined ? none : some(field);
|
|
19
|
-
}
|
|
20
|
-
/** The keys a flow's rows of one kind carry, each once: the second of a key is refused, naming it. */
|
|
21
|
-
function keysOnce(keys, where, rows, row) {
|
|
22
|
-
const seen = new Set();
|
|
23
|
-
for (const key of keys) {
|
|
24
|
-
if (seen.has(key)) {
|
|
25
|
-
throw new Error(`${where}: two ${rows} are keyed "${key}" — a ${row}'s key is its identity in the flow, so give each ${row} its own`);
|
|
26
|
-
}
|
|
27
|
-
seen.add(key);
|
|
28
|
-
}
|
|
29
|
-
return seen;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* One flow's value from its literal: checked, and filled where the literal
|
|
33
|
-
* leaves a field out.
|
|
34
|
-
*
|
|
35
|
-
* @param flow - The literal
|
|
36
|
-
* @param where - Who is asking, and of which flow: what a refusal opens with
|
|
37
|
-
* @returns The flow's value
|
|
38
|
-
* @throws {Error} When two lanes, states, links or decisions of the flow share a key, a state names a lane the flow does not have, or a link names a decision it does not have
|
|
39
|
-
*/
|
|
40
|
-
function flowValue(flow, where) {
|
|
41
|
-
const triggers = flow.triggers ?? [];
|
|
42
|
-
const lanes = keysOnce(flow.lanes.map((l) => l.key), where, "lanes", "lane");
|
|
43
|
-
keysOnce(flow.states.map((s) => s.key), where, "states", "state");
|
|
44
|
-
keysOnce(flow.links.flatMap((l) => (l.key === undefined ? [] : [l.key])), where, "links", "link");
|
|
45
|
-
const decisions = keysOnce(triggers.map((t) => t.key), where, "decisions", "decision");
|
|
46
|
-
for (const state of flow.states) {
|
|
47
|
-
if (!lanes.has(state.lane)) {
|
|
48
|
-
throw new Error(`${where}: the state "${state.key}" names the lane "${state.lane}", which the flow has none of — add it to \`lanes\`, or name a lane the flow has`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// A link naming a state the flow does not have is kept: it draws as the
|
|
52
|
-
// unresolved ghost, and the Issues tab lists it.
|
|
53
|
-
for (const link of flow.links) {
|
|
54
|
-
if (link.trigger !== undefined && !decisions.has(link.trigger)) {
|
|
55
|
-
throw new Error(`${where}: the link "${link.from}" → "${link.to}" names the decision "${link.trigger}", which the flow has none of — add it to \`triggers\`, or leave the link's \`trigger\` out`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return {
|
|
59
|
-
description: optional(flow.description),
|
|
60
|
-
lanes: flow.lanes.map((l) => ({ key: l.key, label: optional(l.label) })),
|
|
61
|
-
states: flow.states.map((s) => ({
|
|
62
|
-
key: s.key, label: optional(s.label), lane: s.lane, members: optional(s.members), notes: optional(s.notes),
|
|
63
|
-
})),
|
|
64
|
-
links: flow.links.map((l) => ({
|
|
65
|
-
key: optional(l.key),
|
|
66
|
-
from: l.from,
|
|
67
|
-
to: l.to,
|
|
68
|
-
kind: l.kind === undefined ? none : some(variant(l.kind, null)),
|
|
69
|
-
trigger: optional(l.trigger),
|
|
70
|
-
evidence: l.evidence === undefined ? none : some({
|
|
71
|
-
volume: optional(l.evidence.volume),
|
|
72
|
-
count: optional(l.evidence.count),
|
|
73
|
-
measuredAt: optional(l.evidence.measuredAt),
|
|
74
|
-
unit: optional(l.evidence.unit),
|
|
75
|
-
}),
|
|
76
|
-
})),
|
|
77
|
-
triggers: triggers.map((t) => ({
|
|
78
|
-
key: t.key, label: t.label, letter: optional(t.letter), owner: optional(t.owner),
|
|
79
|
-
queue: t.queue === undefined ? none : some([...t.queue]), outcomes: optional(t.outcomes),
|
|
80
|
-
})),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* One flow's value — what an app with a single flow declares its input of one
|
|
85
|
-
* flow with, which it hands the flowchart as `data` — written as a literal and
|
|
86
|
-
* checked when the package builds. A record always holds flows by name, so a
|
|
87
|
-
* lone flow in a record is `Flowchart.values` with one entry.
|
|
88
|
-
*
|
|
89
|
-
* @remarks
|
|
90
|
-
* - **Filled**: a literal leaves out what it does not need — the flow's
|
|
91
|
-
* `description`, a state's `label`, `members` and `notes`, a link's `key`,
|
|
92
|
-
* `kind`, `trigger` and `evidence`, a lane's `label`, a decision's `letter`,
|
|
93
|
-
* `owner`, `queue` and `outcomes`, and `triggers` — and each is `none`, or
|
|
94
|
-
* empty.
|
|
95
|
-
* - **Checked**: a flow whose rows would not draw or commit fails the build —
|
|
96
|
-
* two lanes, states, links or decisions of one key, a state naming a lane
|
|
97
|
-
* the flow does not have, a link naming a decision it does not have. A link
|
|
98
|
-
* naming a state the flow does not have is kept: it draws as the unresolved
|
|
99
|
-
* ghost.
|
|
100
|
-
*
|
|
101
|
-
* @param flow - The flow, as a literal ({@link FlowchartFlowInput})
|
|
102
|
-
* @returns The flow: a value of `Flowchart.Types.Flow`
|
|
103
|
-
* @throws {Error} When two lanes, states, links or decisions share a key, a
|
|
104
|
-
* state names a lane the flow does not have, or a link names a decision it
|
|
105
|
-
* does not have — naming the row and the remedy
|
|
106
|
-
*
|
|
107
|
-
* @example
|
|
108
|
-
* ```tsx
|
|
109
|
-
* // .tsx file with the `@jsxImportSource @elaraai/e3-ui` pragma
|
|
110
|
-
* import { East, variant } from "@elaraai/east";
|
|
111
|
-
* import { Box, Reactive, UIComponentType } from "@elaraai/east-ui";
|
|
112
|
-
* import { Data, Flowchart } from "@elaraai/e3-ui";
|
|
113
|
-
* import e3 from "@elaraai/e3";
|
|
114
|
-
*
|
|
115
|
-
* export const handoverFlow = e3.input("flowchart_handover", Flowchart.Types.Flow, variant("value", Flowchart.value({
|
|
116
|
-
* description: "From the last scan to the driver's signature",
|
|
117
|
-
* lanes: [{ key: "load", label: "Load" }, { key: "road", label: "Road" }, { key: "door", label: "Door" }],
|
|
118
|
-
* states: [
|
|
119
|
-
* { key: "LDD", label: "Loaded", lane: "load" },
|
|
120
|
-
* { key: "DSP", label: "Dispatched", lane: "road" },
|
|
121
|
-
* { key: "DLV", label: "Delivered", lane: "door" },
|
|
122
|
-
* { key: "RTN", label: "Returned", lane: "door" },
|
|
123
|
-
* ],
|
|
124
|
-
* links: [
|
|
125
|
-
* { from: "LDD", to: "DSP" },
|
|
126
|
-
* { from: "DSP", to: "DLV", trigger: "attempt" },
|
|
127
|
-
* { from: "DSP", to: "RTN", kind: "observed", trigger: "attempt" },
|
|
128
|
-
* ],
|
|
129
|
-
* triggers: [{ key: "attempt", label: "attempt", owner: "driver" }],
|
|
130
|
-
* })));
|
|
131
|
-
*
|
|
132
|
-
* const flowchart = East.function([], UIComponentType, (_$) => (
|
|
133
|
-
* <Reactive>{$ => {
|
|
134
|
-
* const handover = $.let(Data.bind(handoverFlow));
|
|
135
|
-
* return (
|
|
136
|
-
* <Box height="500px">
|
|
137
|
-
* <Flowchart data={handover} orientation="TD" inspector={false} name="handover" />
|
|
138
|
-
* </Box>
|
|
139
|
-
* );
|
|
140
|
-
* }}</Reactive>
|
|
141
|
-
* ));
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
export function flowchartValue(flow) {
|
|
145
|
-
return flowValue(flow, "Flowchart.value");
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* A record of flows' value, by name — what an app declares its record of
|
|
149
|
-
* flows with — each flow written as a literal and checked when the package
|
|
150
|
-
* builds, as `Flowchart.value` checks one: a record's value, as `Query.value`
|
|
151
|
-
* is one.
|
|
152
|
-
*
|
|
153
|
-
* @param flows - The flows, each its name to its literal ({@link FlowchartFlowInput})
|
|
154
|
-
* @returns The flows by name: a value of the record's type, `Flowchart.Types.Flows`
|
|
155
|
-
* @throws {Error} When a flow does not check, naming the flow, the row and the
|
|
156
|
-
* remedy, as `Flowchart.value` does
|
|
157
|
-
*
|
|
158
|
-
* @example
|
|
159
|
-
* ```tsx
|
|
160
|
-
* // .tsx file with the `@jsxImportSource @elaraai/e3-ui` pragma
|
|
161
|
-
* import { East } from "@elaraai/east";
|
|
162
|
-
* import { Box, Reactive, UIComponentType } from "@elaraai/east-ui";
|
|
163
|
-
* import { Flowchart, Record } from "@elaraai/e3-ui";
|
|
164
|
-
* import e3 from "@elaraai/e3";
|
|
165
|
-
*
|
|
166
|
-
* export const depotFlows = e3.record("flowchart_depot_flows", Flowchart.Types.Flows, {
|
|
167
|
-
* initial: Flowchart.values({
|
|
168
|
-
* "Inbound parcels": {
|
|
169
|
-
* description: "From the trailer to the van",
|
|
170
|
-
* lanes: [{ key: "intake", label: "Intake" }, { key: "sort", label: "Sort" }, { key: "load", label: "Load" }],
|
|
171
|
-
* states: [
|
|
172
|
-
* { key: "ARV", label: "Arrived", lane: "intake" },
|
|
173
|
-
* { key: "SCN", label: "Scanned", lane: "intake" },
|
|
174
|
-
* { key: "CH*", label: "Sort chutes", lane: "sort", members: 12n },
|
|
175
|
-
* { key: "LDD", label: "Loaded", lane: "load" },
|
|
176
|
-
* ],
|
|
177
|
-
* links: [
|
|
178
|
-
* { from: "ARV", to: "SCN" },
|
|
179
|
-
* { from: "SCN", to: "CH*", trigger: "route" },
|
|
180
|
-
* { from: "CH*", to: "LDD" },
|
|
181
|
-
* { from: "SCN", to: "SCN", kind: "observed" },
|
|
182
|
-
* ],
|
|
183
|
-
* triggers: [{ key: "route", label: "route", owner: "sort-planner" }],
|
|
184
|
-
* },
|
|
185
|
-
* "Returns": {
|
|
186
|
-
* description: "From the counter back to the sender",
|
|
187
|
-
* lanes: [{ key: "counter", label: "Counter" }, { key: "check", label: "Check" }, { key: "out", label: "Out" }],
|
|
188
|
-
* states: [
|
|
189
|
-
* { key: "RCV", label: "Received", lane: "counter" },
|
|
190
|
-
* { key: "INS", label: "Inspected", lane: "check" },
|
|
191
|
-
* { key: "RSD", label: "Resent", lane: "out" },
|
|
192
|
-
* ],
|
|
193
|
-
* links: [{ from: "RCV", to: "INS" }, { from: "INS", to: "RSD" }, { from: "INS", to: "BIN", kind: "observed" }],
|
|
194
|
-
* },
|
|
195
|
-
* }),
|
|
196
|
-
* mutations: (mutation) => ({
|
|
197
|
-
* patch: mutation.patch(),
|
|
198
|
-
* }),
|
|
199
|
-
* });
|
|
200
|
-
*
|
|
201
|
-
* const flowchart = East.function([], UIComponentType, (_$) => (
|
|
202
|
-
* <Reactive>{$ => {
|
|
203
|
-
* const flows = $.let(Record.bind(depotFlows));
|
|
204
|
-
* return (
|
|
205
|
-
* <Box height="500px">
|
|
206
|
-
* <Flowchart record={flows} flow="Inbound parcels" library={[Flowchart.library.flows()]} />
|
|
207
|
-
* </Box>
|
|
208
|
-
* );
|
|
209
|
-
* }}</Reactive>
|
|
210
|
-
* ));
|
|
211
|
-
* ```
|
|
212
|
-
*/
|
|
213
|
-
export function flowchartValues(flows) {
|
|
214
|
-
const byName = new SortedMap([], compareFor(StringType));
|
|
215
|
-
for (const [name, flow] of Object.entries(flows)) {
|
|
216
|
-
byName.set(name, flowValue(flow, `Flowchart.values: "${name}"`));
|
|
217
|
-
}
|
|
218
|
-
return byName;
|
|
219
|
-
}
|
|
220
|
-
//# sourceMappingURL=values.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/flowchart/values.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAiC,MAAM,eAAe,CAAC;AACtH,OAAO,EAAE,iBAAiB,EAA2B,MAAM,YAAY,CAAC;AAuIxE,gDAAgD;AAChD,SAAS,QAAQ,CAAI,KAAoB;IACrC,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,sGAAsG;AACtG,SAAS,QAAQ,CAAC,IAAuB,EAAE,KAAa,EAAE,IAAY,EAAE,GAAW;IAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,eAAe,GAAG,SAAS,GAAG,oDAAoD,GAAG,UAAU,CAAC,CAAC;QAC1I,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,IAAwB,EAAE,KAAa;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACvF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,KAAK,CAAC,GAAG,qBAAqB,KAAK,CAAC,IAAI,kFAAkF,CAAC,CAAC;QACxK,CAAC;IACL,CAAC;IACD,wEAAwE;IACxE,iDAAiD;IACjD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,eAAe,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,yBAAyB,IAAI,CAAC,OAAO,6FAA6F,CAAC,CAAC;QACvM,CAAC;IACL,CAAC;IACD,OAAO;QACH,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;QACvC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5B,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;SAC7G,CAAC,CAAC;QACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/D,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7C,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACnC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACjC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC3C,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;aAClC,CAAC;SACL,CAAC,CAAC;QACH,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3B,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;YAChF,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;SAC3F,CAAC,CAAC;KACN,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,UAAU,cAAc,CAAC,IAAwB;IACnD,OAAO,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAmD;IAC/E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAoB,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,sBAAsB,IAAI,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
|