@elaraai/e3-ui 1.0.94 → 1.0.95
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/adapters.d.ts +159 -0
- package/dist/src/allocation/adapters.d.ts.map +1 -0
- package/dist/src/allocation/adapters.js +241 -0
- package/dist/src/allocation/adapters.js.map +1 -0
- package/dist/src/allocation/functions.d.ts +664 -0
- package/dist/src/allocation/functions.d.ts.map +1 -0
- package/dist/src/allocation/functions.js +782 -0
- package/dist/src/allocation/functions.js.map +1 -0
- package/dist/src/allocation/index.d.ts +2985 -0
- package/dist/src/allocation/index.d.ts.map +1 -0
- package/dist/src/allocation/index.js +499 -0
- package/dist/src/allocation/index.js.map +1 -0
- package/dist/src/allocation/types.d.ts +832 -0
- package/dist/src/allocation/types.d.ts.map +1 -0
- package/dist/src/allocation/types.js +360 -0
- package/dist/src/allocation/types.js.map +1 -0
- package/dist/src/bind/func.d.ts +14 -0
- package/dist/src/bind/func.d.ts.map +1 -1
- package/dist/src/bind/func.js +22 -1
- package/dist/src/bind/func.js.map +1 -1
- package/dist/src/calendar/index.d.ts +510 -1639
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +56 -29
- package/dist/src/calendar/index.js.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +9 -21
- package/dist/src/flowchart/canvas.d.ts.map +1 -1
- package/dist/src/flowchart/canvas.js +10 -22
- package/dist/src/flowchart/canvas.js.map +1 -1
- package/dist/src/flowchart/flowchart.d.ts +19 -13
- package/dist/src/flowchart/flowchart.d.ts.map +1 -1
- package/dist/src/flowchart/flowchart.js.map +1 -1
- package/dist/src/flowchart/index.d.ts +44 -21
- package/dist/src/flowchart/index.d.ts.map +1 -1
- package/dist/src/flowchart/index.js +43 -20
- package/dist/src/flowchart/index.js.map +1 -1
- package/dist/src/flowchart/library.d.ts +166 -81
- package/dist/src/flowchart/library.d.ts.map +1 -1
- package/dist/src/flowchart/library.js +232 -105
- package/dist/src/flowchart/library.js.map +1 -1
- package/dist/src/flowchart/over.d.ts +9 -16
- package/dist/src/flowchart/over.d.ts.map +1 -1
- package/dist/src/flowchart/over.js +9 -16
- package/dist/src/flowchart/over.js.map +1 -1
- package/dist/src/flowchart/payload.d.ts +710 -508
- package/dist/src/flowchart/payload.d.ts.map +1 -1
- package/dist/src/flowchart/payload.js +128 -74
- package/dist/src/flowchart/payload.js.map +1 -1
- package/dist/src/flowchart/window.d.ts +132 -347
- package/dist/src/flowchart/window.d.ts.map +1 -1
- package/dist/src/flowchart/window.js +48 -55
- package/dist/src/flowchart/window.js.map +1 -1
- package/dist/src/index.d.ts +11 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +14 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +18 -7
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +28 -9
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +26 -10
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +39 -13
- package/dist/src/plan/event-rows.js.map +1 -1
- package/dist/src/plan/ir.d.ts +244 -815
- package/dist/src/plan/ir.d.ts.map +1 -1
- package/dist/src/plan/ir.js +8 -6
- package/dist/src/plan/ir.js.map +1 -1
- package/dist/src/plan/library.d.ts +3 -0
- package/dist/src/plan/library.d.ts.map +1 -1
- package/dist/src/plan/library.js +1 -1
- package/dist/src/plan/library.js.map +1 -1
- package/dist/src/plan/ordered-source.d.ts +1 -0
- package/dist/src/plan/ordered-source.d.ts.map +1 -1
- package/dist/src/plan/plan.d.ts +559 -1667
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +123 -45
- package/dist/src/plan/plan.js.map +1 -1
- package/dist/src/plan/root.d.ts +16 -20
- package/dist/src/plan/root.d.ts.map +1 -1
- package/dist/src/plan/root.js +23 -33
- package/dist/src/plan/root.js.map +1 -1
- package/dist/src/roster/coverage.d.ts +17 -231
- package/dist/src/roster/coverage.d.ts.map +1 -1
- package/dist/src/roster/coverage.js +94 -90
- package/dist/src/roster/coverage.js.map +1 -1
- package/dist/src/roster/fit.d.ts +59 -0
- package/dist/src/roster/fit.d.ts.map +1 -0
- package/dist/src/roster/fit.js +155 -0
- package/dist/src/roster/fit.js.map +1 -0
- package/dist/src/roster/index.d.ts +2862 -3662
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +383 -81
- package/dist/src/roster/index.js.map +1 -1
- package/dist/src/roster/library.d.ts +37 -92
- package/dist/src/roster/library.d.ts.map +1 -1
- package/dist/src/roster/library.js +25 -64
- package/dist/src/roster/library.js.map +1 -1
- package/dist/src/roster/lists.d.ts +195 -0
- package/dist/src/roster/lists.d.ts.map +1 -0
- package/dist/src/roster/lists.js +233 -0
- package/dist/src/roster/lists.js.map +1 -0
- package/dist/src/roster/rules.d.ts +17 -260
- package/dist/src/roster/rules.d.ts.map +1 -1
- package/dist/src/roster/rules.js +135 -132
- package/dist/src/roster/rules.js.map +1 -1
- package/dist/src/roster/targets.d.ts +115 -0
- package/dist/src/roster/targets.d.ts.map +1 -0
- package/dist/src/roster/targets.js +213 -0
- package/dist/src/roster/targets.js.map +1 -0
- package/dist/src/roster/times.d.ts +251 -0
- package/dist/src/roster/times.d.ts.map +1 -0
- package/dist/src/roster/times.js +174 -0
- package/dist/src/roster/times.js.map +1 -0
- package/dist/src/roster/types.d.ts +828 -183
- package/dist/src/roster/types.d.ts.map +1 -1
- package/dist/src/roster/types.js +224 -97
- package/dist/src/roster/types.js.map +1 -1
- package/dist/src/schedule/accessor.d.ts +28 -0
- package/dist/src/schedule/accessor.d.ts.map +1 -0
- package/dist/src/schedule/accessor.js +39 -0
- package/dist/src/schedule/accessor.js.map +1 -0
- package/dist/src/schedule/events.d.ts +170 -42
- package/dist/src/schedule/events.d.ts.map +1 -1
- package/dist/src/schedule/events.js +431 -171
- package/dist/src/schedule/events.js.map +1 -1
- package/dist/src/schedule/index.d.ts +41 -4
- package/dist/src/schedule/index.d.ts.map +1 -1
- package/dist/src/schedule/index.js +35 -3
- package/dist/src/schedule/index.js.map +1 -1
- package/dist/src/schedule/library.d.ts +13 -3
- package/dist/src/schedule/library.d.ts.map +1 -1
- package/dist/src/schedule/library.js +11 -4
- package/dist/src/schedule/library.js.map +1 -1
- package/dist/src/schedule/periods.d.ts +115 -0
- package/dist/src/schedule/periods.d.ts.map +1 -0
- package/dist/src/schedule/periods.js +215 -0
- package/dist/src/schedule/periods.js.map +1 -0
- package/dist/src/schedule/record-window.d.ts +25 -3
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/record-window.js +31 -18
- package/dist/src/schedule/record-window.js.map +1 -1
- package/dist/src/schedule/resources.d.ts +82 -4
- package/dist/src/schedule/resources.d.ts.map +1 -1
- package/dist/src/schedule/resources.js +44 -14
- package/dist/src/schedule/resources.js.map +1 -1
- package/dist/src/schedule/session.d.ts +69 -0
- package/dist/src/schedule/session.d.ts.map +1 -0
- package/dist/src/schedule/session.js +121 -0
- package/dist/src/schedule/session.js.map +1 -0
- package/dist/src/schedule/templates.d.ts +14 -2
- package/dist/src/schedule/templates.d.ts.map +1 -1
- package/dist/src/schedule/templates.js +5 -3
- package/dist/src/schedule/templates.js.map +1 -1
- package/dist/src/schedule/types.d.ts +1671 -37
- package/dist/src/schedule/types.d.ts.map +1 -1
- package/dist/src/schedule/types.js +196 -5
- package/dist/src/schedule/types.js.map +1 -1
- package/dist/src/schedule/window.d.ts +14 -0
- package/dist/src/schedule/window.d.ts.map +1 -1
- package/dist/src/schedule/window.js +14 -4
- package/dist/src/schedule/window.js.map +1 -1
- package/dist/src/schedule/words.d.ts +22 -0
- package/dist/src/schedule/words.d.ts.map +1 -0
- package/dist/src/schedule/words.js +25 -0
- package/dist/src/schedule/words.js.map +1 -0
- package/dist/src/sheet/index.d.ts +61 -27
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +59 -25
- package/dist/src/sheet/index.js.map +1 -1
- package/dist/src/sheet/library.d.ts +21 -3
- package/dist/src/sheet/library.d.ts.map +1 -1
- package/dist/src/sheet/library.js +23 -6
- package/dist/src/sheet/library.js.map +1 -1
- package/dist/src/sheet/registers.d.ts +100 -85
- package/dist/src/sheet/registers.d.ts.map +1 -1
- package/dist/src/sheet/registers.js +100 -85
- package/dist/src/sheet/registers.js.map +1 -1
- package/dist/src/sheet/root.d.ts +8 -12
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +6 -40
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +598 -2349
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +124 -37
- package/dist/src/sheet/sheet.js.map +1 -1
- package/dist/src/sheet/sub-rows.d.ts +74 -28
- package/dist/src/sheet/sub-rows.d.ts.map +1 -1
- package/dist/src/sheet/sub-rows.js +74 -28
- package/dist/src/sheet/sub-rows.js.map +1 -1
- package/dist/src/sheet/templates.d.ts +98 -34
- package/dist/src/sheet/templates.d.ts.map +1 -1
- package/dist/src/sheet/templates.js +102 -58
- package/dist/src/sheet/templates.js.map +1 -1
- package/dist/src/sheet/types.d.ts +289 -1359
- package/dist/src/sheet/types.d.ts.map +1 -1
- package/dist/src/sheet/types.js +20 -26
- package/dist/src/sheet/types.js.map +1 -1
- package/dist/src/sheet/views.d.ts +10 -11
- package/dist/src/sheet/views.d.ts.map +1 -1
- package/dist/src/sheet/views.js +15 -20
- package/dist/src/sheet/views.js.map +1 -1
- package/dist/src/{roster/visibility.d.ts → utils/key-visibility.d.ts} +42 -7
- package/dist/src/utils/key-visibility.d.ts.map +1 -0
- package/dist/src/utils/key-visibility.js +36 -0
- package/dist/src/utils/key-visibility.js.map +1 -0
- package/dist/src/utils/ordered-source.d.ts +1 -0
- package/dist/src/utils/ordered-source.d.ts.map +1 -1
- package/dist/src/utils/ordered-source.js +8 -3
- package/dist/src/utils/ordered-source.js.map +1 -1
- package/dist/src/utils/record-sources.d.ts +107 -0
- package/dist/src/utils/record-sources.d.ts.map +1 -0
- package/dist/src/utils/record-sources.js +132 -0
- package/dist/src/utils/record-sources.js.map +1 -0
- package/dist/test/allocation/allocation.examples.d.ts +2902 -0
- package/dist/test/allocation/allocation.examples.d.ts.map +1 -0
- package/dist/test/allocation/allocation.examples.js +643 -0
- package/dist/test/allocation/allocation.examples.js.map +1 -0
- package/dist/test/allocation/fit.examples.d.ts +546 -0
- package/dist/test/allocation/fit.examples.d.ts.map +1 -0
- package/dist/test/allocation/fit.examples.js +171 -0
- package/dist/test/allocation/fit.examples.js.map +1 -0
- package/dist/test/allocation/kiln-yard.d.ts +181 -0
- package/dist/test/allocation/kiln-yard.d.ts.map +1 -0
- package/dist/test/allocation/kiln-yard.js +228 -0
- package/dist/test/allocation/kiln-yard.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +651 -1
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +140 -2
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/func/func.examples.d.ts +10 -1
- package/dist/test/bind/func/func.examples.d.ts.map +1 -1
- package/dist/test/bind/func/func.examples.js +8 -1
- package/dist/test/bind/func/func.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts +633 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +26 -2
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-records.examples.js +18 -14
- package/dist/test/calendar/calendar-records.examples.js.map +1 -1
- package/dist/test/calendar/calendar.examples.d.ts +521 -16
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar.examples.js +182 -135
- package/dist/test/calendar/calendar.examples.js.map +1 -1
- package/dist/test/examples-package.d.ts +75 -0
- package/dist/test/examples-package.d.ts.map +1 -0
- package/dist/test/examples-package.js +263 -0
- package/dist/test/examples-package.js.map +1 -0
- package/dist/test/flowchart/flowchart.examples.d.ts +211 -19
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
- package/dist/test/flowchart/flowchart.examples.js +102 -75
- package/dist/test/flowchart/flowchart.examples.js.map +1 -1
- package/dist/test/plan/plan-events.examples.d.ts +1439 -209
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-events.examples.js +199 -59
- package/dist/test/plan/plan-events.examples.js.map +1 -1
- package/dist/test/plan/plan-records.examples.d.ts +420 -0
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +70 -19
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan-windows.examples.d.ts +636 -55
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-windows.examples.js +69 -33
- package/dist/test/plan/plan-windows.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.d.ts +153 -31
- package/dist/test/plan/plan.examples.d.ts.map +1 -1
- package/dist/test/plan/plan.examples.js +178 -101
- package/dist/test/plan/plan.examples.js.map +1 -1
- package/dist/test/roster/domain.examples.d.ts +467 -250
- package/dist/test/roster/domain.examples.d.ts.map +1 -1
- package/dist/test/roster/domain.examples.js +92 -29
- package/dist/test/roster/domain.examples.js.map +1 -1
- package/dist/test/roster/roster-records.examples.d.ts +430 -586
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
- package/dist/test/roster/roster-records.examples.js +102 -43
- package/dist/test/roster/roster-records.examples.js.map +1 -1
- package/dist/test/roster/roster.examples.d.ts +2319 -606
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +456 -148
- package/dist/test/roster/roster.examples.js.map +1 -1
- package/dist/test/roster/warehouse.d.ts +172 -63
- package/dist/test/roster/warehouse.d.ts.map +1 -1
- package/dist/test/roster/warehouse.js +172 -39
- package/dist/test/roster/warehouse.js.map +1 -1
- package/dist/test/schedule/schedule.examples.d.ts +3499 -0
- package/dist/test/schedule/schedule.examples.d.ts.map +1 -0
- package/dist/test/schedule/schedule.examples.js +192 -0
- package/dist/test/schedule/schedule.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet-records.examples.js +22 -18
- package/dist/test/sheet/sheet-records.examples.js.map +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +715 -26
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +204 -130
- package/dist/test/sheet/sheet.examples.js.map +1 -1
- package/package.json +17 -10
- package/dist/src/roster/people.d.ts +0 -50
- package/dist/src/roster/people.d.ts.map +0 -1
- package/dist/src/roster/people.js +0 -32
- package/dist/src/roster/people.js.map +0 -1
- package/dist/src/roster/visibility.d.ts.map +0 -1
- package/dist/src/roster/visibility.js +0 -25
- package/dist/src/roster/visibility.js.map +0 -1
|
@@ -22,22 +22,31 @@
|
|
|
22
22
|
* transition, a lane's header or a decision's diamond.
|
|
23
23
|
*
|
|
24
24
|
* Each data tab takes its own bound data (the user, 2026-10-08), apart from
|
|
25
|
-
* the flows and from the other tabs
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* lands on
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
25
|
+
* the flows and from the other tabs, read as `Sheet.library.tab` reads its
|
|
26
|
+
* rows: its accessors `(row, key) => …` reified once into a describe function
|
|
27
|
+
* the rows' map then calls, a Dict's key the second argument and an Array's
|
|
28
|
+
* index, printed, in its place. A card crosses the closed payload as the
|
|
29
|
+
* fields its drop sets, typed by the row it lands on — a flow's rows are the
|
|
30
|
+
* flowchart's own types. Dropped on the canvas (#1249), a state template adds
|
|
31
|
+
* a state where it lands on a lane, a transition template retypes the
|
|
32
|
+
* transition it lands on, and an author's card sets its fields on what its
|
|
33
|
+
* drop's type names; ⏎ on a card drops it on the canvas's selection.
|
|
34
|
+
*
|
|
35
|
+
* Templates are records (#1340, ruling 9): the state and the transition
|
|
36
|
+
* templates are each a record of their own, read whole
|
|
37
|
+
* (`Data.bind(record).read()`, a `Dict<String, T>`), each card keyed by its
|
|
38
|
+
* record's key, and each list names its `source` of the flowchart's one
|
|
39
|
+
* `Slice.bindRecords`, which narrows its cards by those keys as it narrows
|
|
40
|
+
* anything of that record's — a list written in the code names none, and is
|
|
41
|
+
* refused, naming the change (#1346). An author's tab reads an `Array<T>` or
|
|
42
|
+
* a `Dict<String, T>`, each card keyed by its `key`, a key that repeats
|
|
43
|
+
* keeping its first card; naming a `source` it follows that source by its
|
|
44
|
+
* cards' keys, and naming none it lists its rows whole.
|
|
37
45
|
*
|
|
38
46
|
* @packageDocumentation
|
|
39
47
|
*/
|
|
40
48
|
import { ArrayType, DictType, East, Expr, NullType, OptionType, SetType, StringType, StructType, VariantType, isTypeEqual, none, printType, some, variant, } from "@elaraai/east";
|
|
49
|
+
import { tabSource, templatesSource } from "../utils/record-sources.js";
|
|
41
50
|
import { FlowchartPatchTypeFor } from "./patch.js";
|
|
42
51
|
import { FlowchartLaneType, FlowchartLinkType, FlowchartStateType, FlowchartTriggerType } from "./types.js";
|
|
43
52
|
// ============================================================================
|
|
@@ -113,16 +122,16 @@ export const FlowchartLandsType = VariantType({
|
|
|
113
122
|
* tab's name is the author's when given; left out, the renderer names it in
|
|
114
123
|
* its words (`States`, `Transitions`), so a host translates it.
|
|
115
124
|
*
|
|
116
|
-
* @property flows - Every flow in the record; a click opens one
|
|
117
|
-
* @property states - State templates from the tab's own
|
|
118
|
-
* @property transitions - Transition templates from the tab's own
|
|
119
|
-
* @property tab - The author's own cards: its name, its icon,
|
|
125
|
+
* @property flows - Every flow in the record — over a slice, those its `flows` source narrows them to; a click opens one
|
|
126
|
+
* @property states - State templates from the tab's own record: its name, its icon, its cards, and the source of the slice they follow, by their keys (#1346)
|
|
127
|
+
* @property transitions - Transition templates from the tab's own record: its name, its icon, its cards, and the source of the slice they follow, by their keys (#1346)
|
|
128
|
+
* @property tab - The author's own cards: its name, its icon, its cards by what they land on, and the source of the slice they follow, by their keys — none, its cards whole (#1346)
|
|
120
129
|
*/
|
|
121
130
|
export const FlowchartLibraryTabType = VariantType({
|
|
122
131
|
flows: NullType,
|
|
123
|
-
states: StructType({ name: OptionType(StringType), icon: OptionType(StringType), cards: ArrayType(FlowchartStateCardType) }),
|
|
124
|
-
transitions: StructType({ name: OptionType(StringType), icon: OptionType(StringType), cards: ArrayType(FlowchartTransitionCardType) }),
|
|
125
|
-
tab: StructType({ name: StringType, icon: OptionType(StringType), lands: FlowchartLandsType }),
|
|
132
|
+
states: StructType({ name: OptionType(StringType), icon: OptionType(StringType), cards: ArrayType(FlowchartStateCardType), source: StringType }),
|
|
133
|
+
transitions: StructType({ name: OptionType(StringType), icon: OptionType(StringType), cards: ArrayType(FlowchartTransitionCardType), source: StringType }),
|
|
134
|
+
tab: StructType({ name: StringType, icon: OptionType(StringType), lands: FlowchartLandsType, source: OptionType(StringType) }),
|
|
126
135
|
});
|
|
127
136
|
/**
|
|
128
137
|
* The Flows tab — `Flowchart.library.flows()` (FB13, FB14): every flow the
|
|
@@ -197,33 +206,35 @@ export function libraryFlows() {
|
|
|
197
206
|
}
|
|
198
207
|
/**
|
|
199
208
|
* The state templates — `Flowchart.library.states(rows, { … })` (FB26,
|
|
200
|
-
* decisions 6 and 7): one card per row of the tab's own
|
|
201
|
-
* line under it, the tab's icon — grouped by its `group` and
|
|
202
|
-
* key, label and line. Each card is a drag source, and a click
|
|
203
|
-
* click on the selected card letting it go. A card dropped on a
|
|
204
|
-
* state there, seeded with the fields its `drop` sets over a
|
|
205
|
-
* (#1249).
|
|
209
|
+
* decisions 6 and 7): one card per row of the tab's own templates record —
|
|
210
|
+
* its label, the line under it, the tab's icon — grouped by its `group` and
|
|
211
|
+
* searched by its key, label and line. Each card is a drag source, and a click
|
|
212
|
+
* selects it, a click on the selected card letting it go. A card dropped on a
|
|
213
|
+
* lane adds a state there, seeded with the fields its `drop` sets over a
|
|
214
|
+
* state's defaults (#1249).
|
|
206
215
|
*
|
|
207
216
|
* @remarks
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* `
|
|
217
|
+
* Templates are records (#1340, ruling 9): the rows are a templates record's,
|
|
218
|
+
* read whole — `Data.bind(record).read()`, a `Dict<String, T>` — apart from
|
|
219
|
+
* the flows and from the other tabs, each accessor taking a row and its key.
|
|
220
|
+
* A card's key is its record's key, and the tab follows `source`, the
|
|
221
|
+
* flowchart's slice's source over that record, by it (#1346). Left out, the
|
|
222
|
+
* tab's name is `States`, in the flowchart's words. Refused when the surface
|
|
223
|
+
* is built: a list naming no source — one written in the code — or one the
|
|
224
|
+
* slice lacks, or `flows`; rows that are no `Dict<String, T>`; a `key`, which
|
|
225
|
+
* the record's keys are; a `drop` over another type than
|
|
226
|
+
* `Flowchart.Types.State`; and the tab listed twice.
|
|
216
227
|
*
|
|
217
228
|
* @typeParam T - The rows' element type
|
|
218
|
-
* @param rows - The rows —
|
|
219
|
-
* @param config - The tab's name and icon, what each card shows, and its `
|
|
229
|
+
* @param rows - The templates record's rows — a `Dict<String, T>` expression, its binding's `read()`
|
|
230
|
+
* @param config - The tab's name and icon, what each card shows, its `drop` and its `source` ({@link FlowchartStatesConfig})
|
|
220
231
|
* @returns The tab
|
|
221
232
|
*
|
|
222
233
|
* @example
|
|
223
234
|
* ```tsx
|
|
224
235
|
* // .tsx file with the `@jsxImportSource @elaraai/e3-ui` pragma
|
|
225
|
-
* import {
|
|
226
|
-
* import { Box, Reactive, UIComponentType } from "@elaraai/east-ui";
|
|
236
|
+
* import { DictType, East, IntegerType, OptionType, StringType, StructType, none, some, variant } from "@elaraai/east";
|
|
237
|
+
* import { Box, Reactive, Slice, UIComponentType } from "@elaraai/east-ui";
|
|
227
238
|
* import { Data, Flowchart, Record } from "@elaraai/e3-ui";
|
|
228
239
|
* import e3 from "@elaraai/e3";
|
|
229
240
|
*
|
|
@@ -257,57 +268,71 @@ export function libraryFlows() {
|
|
|
257
268
|
* },
|
|
258
269
|
* }));
|
|
259
270
|
* export const depotFlowsPatch = e3.mutation.patch(depotFlows);
|
|
260
|
-
* export const StepTemplate = StructType({
|
|
261
|
-
* export const stepTemplates = e3.
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
271
|
+
* export const StepTemplate = StructType({ name: StringType, kind: StringType, slots: OptionType(IntegerType) });
|
|
272
|
+
* export const stepTemplates = e3.record("flowchart_step_templates", DictType(StringType, StepTemplate), new Map([
|
|
273
|
+
* ["ARV", { name: "Arrived", kind: "Intake", slots: none }],
|
|
274
|
+
* ["SCN", { name: "Scanned", kind: "Intake", slots: none }],
|
|
275
|
+
* ["CH*", { name: "Sort chutes", kind: "Sort", slots: some(12n) }],
|
|
276
|
+
* ["HLD", { name: "Held", kind: "Hold", slots: none }],
|
|
277
|
+
* ["LDD", { name: "Loaded", kind: "Load", slots: none }],
|
|
267
278
|
* ]));
|
|
279
|
+
* export const stepsByKind = e3.recordIndex("flowchart_steps_by_kind", stepTemplates, { on: ["kind"] });
|
|
268
280
|
* export const MoveTemplate = StructType({ kind: Flowchart.Types.Kind, decision: OptionType(StringType), note: StringType });
|
|
269
281
|
* export const moveTemplates = e3.record("flowchart_move_templates", DictType(StringType, MoveTemplate), new Map([
|
|
270
282
|
* ["Observed", { kind: variant("observed", null), decision: none, note: "Mined from the scans" }],
|
|
271
283
|
* ["Planned", { kind: variant("planned", null), decision: none, note: "The designed path" }],
|
|
272
284
|
* ["Routed", { kind: variant("planned", null), decision: some("route"), note: "Governed by the route decision" }],
|
|
273
285
|
* ]));
|
|
274
|
-
* export const
|
|
275
|
-
* export const
|
|
276
|
-
*
|
|
277
|
-
*
|
|
286
|
+
* export const movesByKind = e3.recordIndex("flowchart_moves_by_kind", moveTemplates, { on: ["kind"] });
|
|
287
|
+
* export const DecisionOwner = StructType({ name: StringType, desk: StringType });
|
|
288
|
+
* export const decisionOwners = e3.record("flowchart_decision_owners", DictType(StringType, DecisionOwner), new Map([
|
|
289
|
+
* ["sort-planner", { name: "Sort planner", desk: "Sort hall" }],
|
|
290
|
+
* ["customs-desk", { name: "Customs desk", desk: "Hold bay" }],
|
|
278
291
|
* ]));
|
|
292
|
+
* export const ownersByDesk = e3.recordIndex("flowchart_owners_by_desk", decisionOwners, { on: ["desk"] });
|
|
279
293
|
*
|
|
280
294
|
* const flowchart = East.function([], UIComponentType, (_$) => (
|
|
281
295
|
* <Reactive>{$ => {
|
|
282
296
|
* const flows = $.let(Record.bind(depotFlows, [depotFlowsPatch]));
|
|
297
|
+
* // What a tab reads whole binds with Data.bind, which keeps it loaded beside its pages.
|
|
283
298
|
* const steps = $.let(Data.bind(stepTemplates));
|
|
284
|
-
* const moves = $.let(
|
|
299
|
+
* const moves = $.let(Data.bind(moveTemplates));
|
|
285
300
|
* const owners = $.let(Data.bind(decisionOwners));
|
|
301
|
+
* // One rail over the library's records, a source each (#1346): each tab follows the source it names.
|
|
302
|
+
* const slice = $.let(Slice.bindRecords("flowchart.depot", {
|
|
303
|
+
* steps: { source: Data.bindPaged(stepTemplates, { indexes: [stepsByKind] }), label: "Steps", icon: { prefix: "fas", name: "box" },
|
|
304
|
+
* fields: { kind: { label: "Step kind", hints: ["Intake", "Sort", "Hold", "Load"] } } },
|
|
305
|
+
* moves: { source: Data.bindPaged(moveTemplates, { indexes: [movesByKind] }), label: "Transitions", icon: { prefix: "fas", name: "arrow-right" },
|
|
306
|
+
* fields: { kind: { label: "Transition kind" } } },
|
|
307
|
+
* owners: { source: Data.bindPaged(decisionOwners, { indexes: [ownersByDesk] }), label: "Owners", icon: { prefix: "fas", name: "user-tie" },
|
|
308
|
+
* fields: { desk: { label: "Desk", hints: ["Sort hall", "Hold bay"] } } },
|
|
309
|
+
* }));
|
|
286
310
|
* return (
|
|
287
311
|
* <Box height="560px">
|
|
288
312
|
* <Flowchart
|
|
289
313
|
* record={flows}
|
|
290
314
|
* flow="Inbound parcels"
|
|
291
315
|
* name="depot"
|
|
316
|
+
* slice={{ slice }}
|
|
292
317
|
* library={[
|
|
293
318
|
* Flowchart.library.flows(),
|
|
294
|
-
* // Step types,
|
|
319
|
+
* // Step types, a templates record by code: a card dropped on a lane adds a state seeded with what its drop sets.
|
|
295
320
|
* Flowchart.library.states(steps.read(), {
|
|
296
|
-
* name: "Steps", icon: "box",
|
|
297
|
-
*
|
|
298
|
-
* drop: s => Flowchart.patch(Flowchart.Types.State, { key:
|
|
321
|
+
* name: "Steps", icon: "box", source: "steps",
|
|
322
|
+
* label: s => s.name, meta: (_s, code) => some(code), group: s => s.kind,
|
|
323
|
+
* drop: (s, code) => Flowchart.patch(Flowchart.Types.State, { key: code, label: some(s.name), members: s.slots }),
|
|
299
324
|
* }),
|
|
300
|
-
* // Transition types, a record
|
|
325
|
+
* // Transition types, a templates record by name: a card dropped on a transition retypes it.
|
|
301
326
|
* Flowchart.library.transitions(moves.read(), {
|
|
302
|
-
* icon: "arrow-right",
|
|
303
|
-
*
|
|
327
|
+
* icon: "arrow-right", source: "moves",
|
|
328
|
+
* label: (_m, name) => name, meta: m => some(m.note),
|
|
304
329
|
* drop: m => Flowchart.patch(Flowchart.Types.Link, { kind: some(m.kind), trigger: m.decision }),
|
|
305
330
|
* }),
|
|
306
|
-
* // The author's own cards: a role dropped on a decision owns it.
|
|
331
|
+
* // The author's own cards, a record of roles: a role dropped on a decision owns it.
|
|
307
332
|
* Flowchart.library.tab(owners.read(), {
|
|
308
|
-
* name: "Owners", icon: "user-tie",
|
|
309
|
-
* key:
|
|
310
|
-
* drop:
|
|
333
|
+
* name: "Owners", icon: "user-tie", source: "owners",
|
|
334
|
+
* key: (_o, role) => role, label: o => o.name, meta: o => some(o.desk),
|
|
335
|
+
* drop: (_o, role) => Flowchart.patch(Flowchart.Types.Trigger, { owner: some(role) }),
|
|
311
336
|
* }),
|
|
312
337
|
* ]}
|
|
313
338
|
* />
|
|
@@ -329,17 +354,19 @@ export function libraryStates(rows, config) {
|
|
|
329
354
|
* connection makes a transition of the default type, and a card retypes it.
|
|
330
355
|
*
|
|
331
356
|
* @remarks
|
|
332
|
-
* The rows are read as {@link libraryStates}' are
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
357
|
+
* The rows are a templates record's, read as {@link libraryStates}' are, each
|
|
358
|
+
* card keyed by its record's key, and the tab follows its `source` as theirs
|
|
359
|
+
* does. Left out, the tab's name is `Transitions`, in the flowchart's words.
|
|
360
|
+
* Refused when the surface is built: a list naming no source, or one the slice
|
|
361
|
+
* lacks, or `flows`; rows that are no `Dict<String, T>`; a `key`; a `drop`
|
|
362
|
+
* over another type than `Flowchart.Types.Link`; and the tab listed twice;
|
|
363
|
+
* and, when the tab's cards are read, a card whose `drop` sets the
|
|
364
|
+
* transition's `key`, `from` or `to` — the fields a patch sets are values its
|
|
365
|
+
* rows give, which the build cannot see.
|
|
339
366
|
*
|
|
340
367
|
* @typeParam T - The rows' element type
|
|
341
|
-
* @param rows - The rows —
|
|
342
|
-
* @param config - The tab's name and icon, what each card shows, and its `
|
|
368
|
+
* @param rows - The templates record's rows — a `Dict<String, T>` expression, its binding's `read()`
|
|
369
|
+
* @param config - The tab's name and icon, what each card shows, its `drop` and its `source` ({@link FlowchartTransitionsConfig})
|
|
343
370
|
* @returns The tab
|
|
344
371
|
*/
|
|
345
372
|
export function libraryTransitions(rows, config) {
|
|
@@ -354,15 +381,19 @@ export function libraryTransitions(rows, config) {
|
|
|
354
381
|
* its fields there (#1249); without one, the cards are read, never dragged.
|
|
355
382
|
*
|
|
356
383
|
* @remarks
|
|
357
|
-
* The rows are
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
384
|
+
* The rows are an `Array<T>` or a `Dict<String, T>` the app binds, each
|
|
385
|
+
* accessor taking a row and its key, a Dict's key or an Array's index,
|
|
386
|
+
* printed; a key that repeats keeps its first card. Naming a `source` of the
|
|
387
|
+
* flowchart's slice (#1346), the tab follows it by its cards' keys, each a
|
|
388
|
+
* row's key in that record; naming none, it lists its rows whole. A tab's
|
|
389
|
+
* name is its identity in `library`. Refused when the surface is built: rows
|
|
390
|
+
* that are neither an Array nor a `Dict<String, T>`; a `source` the slice
|
|
391
|
+
* lacks; a `drop` over none of a flow's row types; and two tabs of one name.
|
|
361
392
|
*
|
|
362
393
|
* @typeParam T - The rows' element type
|
|
363
394
|
* @typeParam P - The patch `drop` returns
|
|
364
395
|
* @param rows - The rows — an `Array<T>` or a `Dict<String, T>` value or expression, such as a binding's `read()`
|
|
365
|
-
* @param config - The tab's name and icon, what each card shows, and its `
|
|
396
|
+
* @param config - The tab's name and icon, what each card shows, its `drop` and its `source` ({@link FlowchartTabConfig})
|
|
366
397
|
* @returns The tab
|
|
367
398
|
*/
|
|
368
399
|
export function libraryTab(rows, config) {
|
|
@@ -406,20 +437,42 @@ function tabName(tab) {
|
|
|
406
437
|
return tab.kind === "tab" ? `the "${tab.config.name}" tab` : `Flowchart.library.${tab.kind}()`;
|
|
407
438
|
}
|
|
408
439
|
/**
|
|
409
|
-
* A data tab's rows:
|
|
440
|
+
* A data tab's rows: a Dict by String keys — for a templates list, its
|
|
441
|
+
* templates record's, each card that record's row by its key (#1346) — or,
|
|
442
|
+
* for an author's tab, an Array too.
|
|
410
443
|
*
|
|
411
444
|
* @param tab - The tab
|
|
412
445
|
* @returns The rows, as East reads them
|
|
413
|
-
* @throws {Error} Naming the tab: rows that are neither an Array nor a `Dict<String, T>`
|
|
446
|
+
* @throws {Error} Naming the tab: rows that are neither an Array nor a `Dict<String, T>`, or a templates list's that are no `Dict<String, T>`
|
|
414
447
|
*/
|
|
415
448
|
function rowsOf(tab) {
|
|
416
449
|
const expr = East.value(tab.rows);
|
|
417
450
|
const type = Expr.type(expr);
|
|
418
|
-
if (type.type === "Array")
|
|
419
|
-
return { expr, dict: false, row: type.value };
|
|
420
451
|
if (type.type === "Dict" && type.key.type === "String")
|
|
421
452
|
return { expr, dict: true, row: type.value };
|
|
422
|
-
|
|
453
|
+
// A templates list's rows are its templates record's.
|
|
454
|
+
const templates = tab.kind !== "tab";
|
|
455
|
+
if (type.type === "Array" && !templates)
|
|
456
|
+
return { expr, dict: false, row: type.value };
|
|
457
|
+
if (type.type === "Array") {
|
|
458
|
+
throw new Error(`Flowchart: ${tabName(tab)} lists templates, which are records — its rows are its templates record's, each card a row by its key: a Dict<String, T>, its binding's read() — and these are an Array`);
|
|
459
|
+
}
|
|
460
|
+
throw new Error(templates
|
|
461
|
+
? `Flowchart: ${tabName(tab)} reads its rows as a Dict<String, T> — its templates record's, its binding's read(), its own apart from the flows and the other tabs — and these are ${printType(type)}`
|
|
462
|
+
: `Flowchart: ${tabName(tab)} reads its rows as an Array<T> or a Dict<String, T> — a value, or an expression such as a binding's read(), its own apart from the flows and the other tabs — and these are ${printType(type)}`);
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* A templates list's cards are its record's rows, each keyed by its record's
|
|
466
|
+
* key (#1346): a `key` given beside them — the accessor every list took
|
|
467
|
+
* before its rows were a record's — is refused, naming the change.
|
|
468
|
+
*
|
|
469
|
+
* @param tab - The templates list
|
|
470
|
+
* @throws {Error} Naming the list, when its config gives a `key`
|
|
471
|
+
*/
|
|
472
|
+
function keyedByRecord(tab) {
|
|
473
|
+
if ("key" in tab.config) {
|
|
474
|
+
throw new Error(`Flowchart: ${tabName(tab)}'s cards are its templates record's rows, each keyed by the record's key, which its source follows — leave \`key\` out`);
|
|
475
|
+
}
|
|
423
476
|
}
|
|
424
477
|
/**
|
|
425
478
|
* A data tab's drop, reified once over its rows' type: the function a card's
|
|
@@ -435,14 +488,15 @@ function dropOf(rows, drop) {
|
|
|
435
488
|
* keeping its first card.
|
|
436
489
|
*
|
|
437
490
|
* @param rows - The tab's rows
|
|
438
|
-
* @param config - What each card shows
|
|
491
|
+
* @param config - What each card shows, and — an author's tab's — its key; with none, each card's key is its row's
|
|
439
492
|
* @param cardType - The cards' type
|
|
440
493
|
* @param sets - What a card sets, from its row and its key, checked as it is read; `undefined` for cards that set nothing
|
|
441
494
|
* @returns The cards, in the rows' order
|
|
442
495
|
*/
|
|
443
496
|
function cardsOf(rows, config, cardType, sets) {
|
|
497
|
+
const keyOf = config.key;
|
|
444
498
|
const describe = East.function([rows.row, StringType], cardType, ($, row, key) => {
|
|
445
|
-
const card = $.let(
|
|
499
|
+
const card = $.let(keyOf === undefined ? key : keyOf(row, key), StringType);
|
|
446
500
|
return {
|
|
447
501
|
key: card,
|
|
448
502
|
label: config.label(row, key),
|
|
@@ -464,14 +518,17 @@ function cardsOf(rows, config, cardType, sets) {
|
|
|
464
518
|
return fold(list);
|
|
465
519
|
}
|
|
466
520
|
/**
|
|
467
|
-
* The state templates on the wire: the tab's name and icon,
|
|
468
|
-
*
|
|
521
|
+
* The state templates on the wire: the tab's name and icon, its cards, each
|
|
522
|
+
* with the state its drop seeds, and the source they follow.
|
|
469
523
|
*
|
|
470
524
|
* @param tab - The tab
|
|
525
|
+
* @param sources - The slice's sources
|
|
471
526
|
* @returns The tab's wire value
|
|
472
|
-
* @throws {Error} Naming the tab:
|
|
527
|
+
* @throws {Error} Naming the tab: a list naming no source of the slice, a `key`, rows that are no `Dict<String, T>`, or a `drop` over another type than a state's patch
|
|
473
528
|
*/
|
|
474
|
-
function statesTab(tab) {
|
|
529
|
+
function statesTab(tab, sources) {
|
|
530
|
+
const source = templatesSource("Flowchart", TEMPLATES_CALL.states, tab.config.source, sources);
|
|
531
|
+
keyedByRecord(tab);
|
|
475
532
|
const rows = rowsOf(tab);
|
|
476
533
|
const drop = dropOf(rows, tab.config.drop);
|
|
477
534
|
if (!isTypeEqual(drop.patch, FlowchartPatchTypeFor(FlowchartStateType))) {
|
|
@@ -486,18 +543,23 @@ function statesTab(tab) {
|
|
|
486
543
|
name: tab.config.name === undefined ? none : some(tab.config.name),
|
|
487
544
|
icon: tab.config.icon === undefined ? none : some(tab.config.icon),
|
|
488
545
|
cards,
|
|
546
|
+
source,
|
|
489
547
|
}), FlowchartLibraryTabType);
|
|
490
548
|
}
|
|
491
549
|
/**
|
|
492
|
-
* The transition templates on the wire: the tab's name and icon,
|
|
493
|
-
*
|
|
494
|
-
*
|
|
550
|
+
* The transition templates on the wire: the tab's name and icon, its cards,
|
|
551
|
+
* each with what it sets on the transition it lands on — refused, as the card
|
|
552
|
+
* is read, when that is the transition's `key`, `from` or `to` — and the source
|
|
553
|
+
* they follow.
|
|
495
554
|
*
|
|
496
555
|
* @param tab - The tab
|
|
556
|
+
* @param sources - The slice's sources
|
|
497
557
|
* @returns The tab's wire value
|
|
498
|
-
* @throws {Error} Naming the tab:
|
|
558
|
+
* @throws {Error} Naming the tab: a list naming no source of the slice, a `key`, rows that are no `Dict<String, T>`, or a `drop` over another type than a transition's patch
|
|
499
559
|
*/
|
|
500
|
-
function transitionsTab(tab) {
|
|
560
|
+
function transitionsTab(tab, sources) {
|
|
561
|
+
const source = templatesSource("Flowchart", TEMPLATES_CALL.transitions, tab.config.source, sources);
|
|
562
|
+
keyedByRecord(tab);
|
|
501
563
|
const rows = rowsOf(tab);
|
|
502
564
|
const drop = dropOf(rows, tab.config.drop);
|
|
503
565
|
if (!isTypeEqual(drop.patch, FlowchartPatchTypeFor(FlowchartLinkType))) {
|
|
@@ -519,18 +581,21 @@ function transitionsTab(tab) {
|
|
|
519
581
|
name: tab.config.name === undefined ? none : some(tab.config.name),
|
|
520
582
|
icon: tab.config.icon === undefined ? none : some(tab.config.icon),
|
|
521
583
|
cards,
|
|
584
|
+
source,
|
|
522
585
|
}), FlowchartLibraryTabType);
|
|
523
586
|
}
|
|
524
587
|
/**
|
|
525
|
-
* An author's tab on the wire: its name and icon,
|
|
526
|
-
*
|
|
527
|
-
*
|
|
588
|
+
* An author's tab on the wire: its name and icon, its cards by what they land
|
|
589
|
+
* on — the row type of the patch its `drop` returns — or read, never dragged,
|
|
590
|
+
* without one, and the source it follows, if it names one.
|
|
528
591
|
*
|
|
529
592
|
* @param tab - The tab
|
|
593
|
+
* @param sources - The slice's sources
|
|
530
594
|
* @returns The tab's wire value
|
|
531
|
-
* @throws {Error} Naming the tab: rows that are neither an Array nor a `Dict<String, T>`, or a `drop` over none of a flow's row types
|
|
595
|
+
* @throws {Error} Naming the tab: a source the slice lacks, rows that are neither an Array nor a `Dict<String, T>`, or a `drop` over none of a flow's row types
|
|
532
596
|
*/
|
|
533
|
-
function authorTab(tab) {
|
|
597
|
+
function authorTab(tab, sources) {
|
|
598
|
+
const source = tabSource("Flowchart", `"${tab.config.name}"`, tab.config.source, sources);
|
|
534
599
|
const rows = rowsOf(tab);
|
|
535
600
|
const config = tab.config;
|
|
536
601
|
// Without a drop, its cards are read, never dragged: they land nowhere.
|
|
@@ -554,10 +619,72 @@ function authorTab(tab) {
|
|
|
554
619
|
name: config.name,
|
|
555
620
|
icon: config.icon === undefined ? none : some(config.icon),
|
|
556
621
|
lands,
|
|
622
|
+
source,
|
|
557
623
|
}), FlowchartLibraryTabType);
|
|
558
624
|
}
|
|
559
625
|
/** The kinds of tab `library` lists. */
|
|
560
626
|
const KINDS = new Set(["flows", "states", "transitions", "tab"]);
|
|
627
|
+
/** How a templates refusal writes the declaration to make, by the list's kind. */
|
|
628
|
+
const TEMPLATES_CALL = {
|
|
629
|
+
states: "Flowchart.library.states(rows, { …, source: \"stateTemplates\" })",
|
|
630
|
+
transitions: "Flowchart.library.transitions(rows, { …, source: \"transitionTemplates\" })",
|
|
631
|
+
};
|
|
632
|
+
/** A tab `library` lists, as a `Flowchart.library.*` call makes one; `undefined` for anything else. */
|
|
633
|
+
function declaredTab(given) {
|
|
634
|
+
const tab = given;
|
|
635
|
+
if (tab === null || tab === undefined || typeof tab !== "object" || !KINDS.has(tab.kind)
|
|
636
|
+
|| (tab.kind !== "flows" && (typeof tab.config !== "object" || tab.config === null))) {
|
|
637
|
+
return undefined;
|
|
638
|
+
}
|
|
639
|
+
return tab;
|
|
640
|
+
}
|
|
641
|
+
/** Each tab `library` lists, as declared, those of no `Flowchart.library.*` call left out. */
|
|
642
|
+
function declaredTabs(library) {
|
|
643
|
+
return (Array.isArray(library) ? library : []).flatMap((given) => {
|
|
644
|
+
const tab = declaredTab(given);
|
|
645
|
+
return tab === undefined ? [] : [tab];
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Checks the library's templates lists against the flowchart's slice, before
|
|
650
|
+
* the slice itself is checked, so a list written in the code is refused with
|
|
651
|
+
* the change to make before a source no list names is (#1340, ruling 9): each
|
|
652
|
+
* templates list is a record of its own, naming its source of the flowchart's
|
|
653
|
+
* one `Slice.bindRecords`.
|
|
654
|
+
*
|
|
655
|
+
* @param library - The flowchart's `library`, as given
|
|
656
|
+
* @param names - The sources the slice names, read before it is checked (`sliceSourceNames`)
|
|
657
|
+
* @throws {Error} Naming the list and the change to make: a list naming no source — one written in the code — or one the slice lacks, a list naming `flows`, and the state and the transition templates naming one source
|
|
658
|
+
* @internal
|
|
659
|
+
*/
|
|
660
|
+
export function checkTemplatesSources(library, names) {
|
|
661
|
+
const lists = declaredTabs(library).flatMap((tab) => (tab.kind === "states" || tab.kind === "transitions" ? [tab] : []));
|
|
662
|
+
for (const list of lists)
|
|
663
|
+
templatesSource("Flowchart", TEMPLATES_CALL[list.kind], list.config.source, names);
|
|
664
|
+
const flows = lists.find((list) => list.config.source === "flows");
|
|
665
|
+
if (flows !== undefined) {
|
|
666
|
+
throw new Error(`Flowchart: ${tabName(flows)} names the source 'flows', which narrows the flows — each templates list is a record of its own, and its own source of the slice`);
|
|
667
|
+
}
|
|
668
|
+
// The two lists naming one source; a list listed twice is the library's refusal (`buildLibrary`).
|
|
669
|
+
const states = lists.find((list) => list.kind === "states");
|
|
670
|
+
const transitions = lists.find((list) => list.kind === "transitions");
|
|
671
|
+
if (states !== undefined && transitions !== undefined && states.config.source === transitions.config.source) {
|
|
672
|
+
throw new Error(`Flowchart: the state templates and the transition templates both name the source '${states.config.source}' — each templates list is a record of its own, and its own source of the slice`);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* The sources the library names (#1346), each once, in its order: each
|
|
677
|
+
* templates list's and each author's tab's — what the flowchart's slice may
|
|
678
|
+
* hold beside `flows`.
|
|
679
|
+
*
|
|
680
|
+
* @param library - The flowchart's `library`, as given
|
|
681
|
+
* @returns The sources' names
|
|
682
|
+
* @internal
|
|
683
|
+
*/
|
|
684
|
+
export function librarySources(library) {
|
|
685
|
+
const named = declaredTabs(library).flatMap((tab) => (tab.kind === "flows" || tab.config.source === undefined ? [] : [tab.config.source]));
|
|
686
|
+
return named.filter((source, i) => named.indexOf(source) === i);
|
|
687
|
+
}
|
|
561
688
|
/**
|
|
562
689
|
* The library pane on the wire (`Flowchart Builder Spec.md` §4.2, §4.4, FB16,
|
|
563
690
|
* FB25–FB29): its tabs in the order `library` lists them; none when it is
|
|
@@ -565,16 +692,18 @@ const KINDS = new Set(["flows", "states", "transitions", "tab"]);
|
|
|
565
692
|
*
|
|
566
693
|
* @param library - The tabs, each a `Flowchart.library.*` call
|
|
567
694
|
* @param many - Whether the flowchart holds flows by name, rather than one flow
|
|
695
|
+
* @param sources - The flowchart's slice's sources, which each templates list's and each author's tab's `source` must be one of
|
|
568
696
|
* @returns The tabs on the wire
|
|
569
697
|
* @throws {Error} Naming the tab and the remedy: a `library` that is no list
|
|
570
698
|
* of `Flowchart.library.*` calls; a tab listed twice — the Flows tab, the
|
|
571
699
|
* state templates or the transition templates, or two of the author's tabs
|
|
572
700
|
* of one name; the Flows tab over one flow; and each of a data tab's
|
|
573
|
-
* refusals — rows that are neither an Array nor a
|
|
574
|
-
* `
|
|
701
|
+
* refusals — a source the slice lacks, rows that are neither an Array nor a
|
|
702
|
+
* `Dict<String, T>` (a templates record's, for a templates list), a
|
|
703
|
+
* templates list's `key`, and a `drop` of another type than its tab's
|
|
575
704
|
* @internal
|
|
576
705
|
*/
|
|
577
|
-
export function buildLibrary(library, many) {
|
|
706
|
+
export function buildLibrary(library, many, sources = []) {
|
|
578
707
|
if (library === undefined)
|
|
579
708
|
return East.value([], ArrayType(FlowchartLibraryTabType));
|
|
580
709
|
const LIST = "Flowchart: `library` lists the library pane's tabs, each a Flowchart.library.* call — library={[Flowchart.library.flows()]}";
|
|
@@ -582,11 +711,9 @@ export function buildLibrary(library, many) {
|
|
|
582
711
|
throw new Error(LIST);
|
|
583
712
|
const seen = new Set();
|
|
584
713
|
const wires = library.map((given) => {
|
|
585
|
-
const tab = given;
|
|
586
|
-
if (tab ===
|
|
587
|
-
|| (tab.kind !== "flows" && (typeof tab.config !== "object" || tab.config === null))) {
|
|
714
|
+
const tab = declaredTab(given);
|
|
715
|
+
if (tab === undefined)
|
|
588
716
|
throw new Error(LIST);
|
|
589
|
-
}
|
|
590
717
|
// A tab once: the Flows tab and the templates by kind, an author's tab by its name.
|
|
591
718
|
const id = tab.kind === "tab" ? `tab:${tab.config.name}` : tab.kind;
|
|
592
719
|
if (seen.has(id)) {
|
|
@@ -601,9 +728,9 @@ export function buildLibrary(library, many) {
|
|
|
601
728
|
throw new Error(`Flowchart: ${tabName(tab)} lists flows by name, and this \`data\` is one flow, Flowchart.Types.Flow — leave the Flows tab out of \`library\`, or pass the flows by name`);
|
|
602
729
|
}
|
|
603
730
|
return East.value(variant("flows", null), FlowchartLibraryTabType);
|
|
604
|
-
case "states": return statesTab(tab);
|
|
605
|
-
case "transitions": return transitionsTab(tab);
|
|
606
|
-
case "tab": return authorTab(tab);
|
|
731
|
+
case "states": return statesTab(tab, sources);
|
|
732
|
+
case "transitions": return transitionsTab(tab, sources);
|
|
733
|
+
case "tab": return authorTab(tab, sources);
|
|
607
734
|
}
|
|
608
735
|
});
|
|
609
736
|
return East.value(wires, ArrayType(FlowchartLibraryTabType));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/flowchart/library.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"library.js","sourceRoot":"","sources":["../../../src/flowchart/library.ts"],"names":[],"mappings":"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"}
|