@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
|
@@ -27,10 +27,19 @@
|
|
|
27
27
|
* beside one, and the keys are Strings, as the canvas seeks them. The Calendar
|
|
28
28
|
* reads a kind's resources whole, and refuses a paged one.
|
|
29
29
|
*
|
|
30
|
+
* The builders over the app's own records read their resources through
|
|
31
|
+
* accessors beside Plan's (#1367, `Builder Interfaces Spec.md` §4.2): the
|
|
32
|
+
* Roster's people — a person's position, skills, contract hours, and whether
|
|
33
|
+
* they are an agency's, a trainer or a trainee, and their usual shift — and
|
|
34
|
+
* the Allocation's lanes (`offset`) and resources (`min`, `max`, `note`,
|
|
35
|
+
* `hold`, `jobs`). Each accessor is reified once, held to the type it returns,
|
|
36
|
+
* and the kind carries them all (`accessors`) for its builder to call per row.
|
|
37
|
+
*
|
|
30
38
|
* @packageDocumentation
|
|
31
39
|
*/
|
|
32
|
-
import { BooleanType, DictType, FunctionType, OptionType, StringType, type EastType, type ExprType, type SubtypeExprOrValue } from "@elaraai/east";
|
|
33
|
-
import { StatusValueType } from "@elaraai/east-ui";
|
|
40
|
+
import { ArrayType, BooleanType, DictType, FloatType, FunctionType, OptionType, SetType, StringType, type EastType, type ExprType, type SubtypeExprOrValue } from "@elaraai/east";
|
|
41
|
+
import { StatusValueType, TimeStepType } from "@elaraai/east-ui";
|
|
42
|
+
import { AllocationJobType } from "../allocation/types.js";
|
|
34
43
|
import type { PagedValue } from "../bind/data.js";
|
|
35
44
|
import { type PlanSeriesValue } from "../plan/series.js";
|
|
36
45
|
import { PlanRollupType, type PlanAxisKindLiteral, type PlanRollupLiteral } from "../plan/types.js";
|
|
@@ -68,6 +77,73 @@ export interface ScheduleResourcesConfig<K extends EastType, R extends EastType>
|
|
|
68
77
|
collapsed?: boolean | ((row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<BooleanType>);
|
|
69
78
|
/** Plan: the read-only rows under each resource, in order — `Plan.series.heat`, `table` or `chart` over the resources' rows. */
|
|
70
79
|
measures?: readonly PlanSeriesValue<PlanAxisKindLiteral>[];
|
|
80
|
+
/** The Roster's people: a person's default position, a key of its `positions`. */
|
|
81
|
+
position?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<StringType>;
|
|
82
|
+
/** The Roster's people: the skills a person holds, keys of its `activities`. */
|
|
83
|
+
skills?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<SetType<StringType>>;
|
|
84
|
+
/** The Roster's people: a person's contracted weekly hours. */
|
|
85
|
+
contract?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<FloatType>;
|
|
86
|
+
/** The Roster's people: whether a person is a named agency worker. */
|
|
87
|
+
agency?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<BooleanType>;
|
|
88
|
+
/** The Roster's people: whether a person trains others. */
|
|
89
|
+
trainer?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<BooleanType>;
|
|
90
|
+
/** The Roster's people: whether a person needs a trainer beside them. */
|
|
91
|
+
trainee?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<BooleanType>;
|
|
92
|
+
/** The Roster's people: a person's usual shift, a key of its `shifts`, or none. */
|
|
93
|
+
usual?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<StringType>>;
|
|
94
|
+
/** The Allocation's lanes: how far past each slot's start a lane's bins are booked (`variant("minutes", 15)`). */
|
|
95
|
+
offset?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<TimeStepType>;
|
|
96
|
+
/** The Allocation's resources: a resource's minimum, in the quantity's unit. The Allocation requires it. */
|
|
97
|
+
min?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<FloatType>;
|
|
98
|
+
/** The Allocation's resources: a resource's maximum, in the quantity's unit. The Allocation requires it. */
|
|
99
|
+
max?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<FloatType>;
|
|
100
|
+
/** The Allocation's resources: a line about a resource's next job. */
|
|
101
|
+
note?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<StringType>>;
|
|
102
|
+
/** The Allocation's resources: how long a reservation on a resource is checked for, and held while it holds only reservations. */
|
|
103
|
+
hold?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<TimeStepType>;
|
|
104
|
+
/** The Allocation's resources: the other work on a resource. */
|
|
105
|
+
jobs?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<ArrayType<AllocationJobType>>;
|
|
106
|
+
}
|
|
107
|
+
/** One of a resource kind's accessors, reified: an East function over a resource's row and its key, erased over both. */
|
|
108
|
+
export type ScheduleResourceAccessor<T extends EastType> = ExprType<FunctionType<[EastType, EastType], T>>;
|
|
109
|
+
/**
|
|
110
|
+
* A resource kind's accessors, each reified once (#1367): what a builder over
|
|
111
|
+
* the app's own records calls per row. One the kind was not given is
|
|
112
|
+
* `undefined`.
|
|
113
|
+
*/
|
|
114
|
+
export interface ScheduleResourceAccessors {
|
|
115
|
+
/** A resource's name. */
|
|
116
|
+
readonly label: ScheduleResourceAccessor<StringType>;
|
|
117
|
+
/** A resource's second line: `none` for a kind with no `meta`. */
|
|
118
|
+
readonly meta: ScheduleResourceAccessor<OptionType<StringType>>;
|
|
119
|
+
/** The group a resource sits under: a person's home group, a resource's group. */
|
|
120
|
+
readonly group: ScheduleResourceAccessor<StringType> | undefined;
|
|
121
|
+
/** The Roster's people: a person's default position. */
|
|
122
|
+
readonly position: ScheduleResourceAccessor<StringType> | undefined;
|
|
123
|
+
/** The Roster's people: the skills a person holds. */
|
|
124
|
+
readonly skills: ScheduleResourceAccessor<SetType<StringType>> | undefined;
|
|
125
|
+
/** The Roster's people: a person's contracted weekly hours. */
|
|
126
|
+
readonly contract: ScheduleResourceAccessor<FloatType> | undefined;
|
|
127
|
+
/** The Roster's people: whether a person is a named agency worker. */
|
|
128
|
+
readonly agency: ScheduleResourceAccessor<BooleanType> | undefined;
|
|
129
|
+
/** The Roster's people: whether a person trains others. */
|
|
130
|
+
readonly trainer: ScheduleResourceAccessor<BooleanType> | undefined;
|
|
131
|
+
/** The Roster's people: whether a person needs a trainer beside them. */
|
|
132
|
+
readonly trainee: ScheduleResourceAccessor<BooleanType> | undefined;
|
|
133
|
+
/** The Roster's people: a person's usual shift. */
|
|
134
|
+
readonly usual: ScheduleResourceAccessor<OptionType<StringType>> | undefined;
|
|
135
|
+
/** The Allocation's lanes: how far past each slot's start a lane's bins are booked. */
|
|
136
|
+
readonly offset: ScheduleResourceAccessor<TimeStepType> | undefined;
|
|
137
|
+
/** The Allocation's resources: a resource's minimum. */
|
|
138
|
+
readonly min: ScheduleResourceAccessor<FloatType> | undefined;
|
|
139
|
+
/** The Allocation's resources: a resource's maximum. */
|
|
140
|
+
readonly max: ScheduleResourceAccessor<FloatType> | undefined;
|
|
141
|
+
/** The Allocation's resources: a line about a resource's next job. */
|
|
142
|
+
readonly note: ScheduleResourceAccessor<OptionType<StringType>> | undefined;
|
|
143
|
+
/** The Allocation's resources: how long a reservation on a resource is held. */
|
|
144
|
+
readonly hold: ScheduleResourceAccessor<TimeStepType> | undefined;
|
|
145
|
+
/** The Allocation's resources: the other work on a resource. */
|
|
146
|
+
readonly jobs: ScheduleResourceAccessor<ArrayType<AllocationJobType>> | undefined;
|
|
71
147
|
}
|
|
72
148
|
/**
|
|
73
149
|
* A resource kind, declared: what a builder's `resources` takes, by slot.
|
|
@@ -106,6 +182,8 @@ export interface ScheduleResourceKind<K extends EastType, R extends EastType> {
|
|
|
106
182
|
readonly nested: boolean;
|
|
107
183
|
/** Plan: how a parent's bands roll its children's events up. */
|
|
108
184
|
readonly rollup: ExprType<PlanRollupType>;
|
|
185
|
+
/** Its accessors, each reified once: what a builder over the app's own records calls per row (#1367). */
|
|
186
|
+
readonly accessors: ScheduleResourceAccessors;
|
|
109
187
|
/**
|
|
110
188
|
* The kind on the wire, under its slot: the Calendar's.
|
|
111
189
|
*
|
|
@@ -131,9 +209,9 @@ export interface ScheduleResourceKind<K extends EastType, R extends EastType> {
|
|
|
131
209
|
* @param config - Its name, its icon, each resource's label and second line, and Plan's options
|
|
132
210
|
* @returns The kind, for a builder's `resources`
|
|
133
211
|
* @throws {Error} When `rows` is not a `Dict`, or a paged read of one (#1199) keyed by anything but a String or
|
|
134
|
-
* beside `group` or `parent`; a `window`, which is gone; a `rollup` that is not a way to roll up;
|
|
212
|
+
* beside `group` or `parent`; a `window`, which is gone; a `rollup` that is not a way to roll up; a measure that
|
|
135
213
|
* is not a `Plan.series.heat`, `table` or `chart` over the resources' rows written in place, that nests, or whose
|
|
136
|
-
* key another measure has
|
|
214
|
+
* key another measure has; and an accessor returning another type than it takes, naming what it returns (#1367)
|
|
137
215
|
* @example
|
|
138
216
|
* ```tsx
|
|
139
217
|
* import { DictType, East, StringType, StructType, some } from "@elaraai/east";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/schedule/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../../src/schedule/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,13 +27,23 @@
|
|
|
27
27
|
* beside one, and the keys are Strings, as the canvas seeks them. The Calendar
|
|
28
28
|
* reads a kind's resources whole, and refuses a paged one.
|
|
29
29
|
*
|
|
30
|
+
* The builders over the app's own records read their resources through
|
|
31
|
+
* accessors beside Plan's (#1367, `Builder Interfaces Spec.md` §4.2): the
|
|
32
|
+
* Roster's people — a person's position, skills, contract hours, and whether
|
|
33
|
+
* they are an agency's, a trainer or a trainee, and their usual shift — and
|
|
34
|
+
* the Allocation's lanes (`offset`) and resources (`min`, `max`, `note`,
|
|
35
|
+
* `hold`, `jobs`). Each accessor is reified once, held to the type it returns,
|
|
36
|
+
* and the kind carries them all (`accessors`) for its builder to call per row.
|
|
37
|
+
*
|
|
30
38
|
* @packageDocumentation
|
|
31
39
|
*/
|
|
32
|
-
import { ArrayType, BooleanType, DictType, East, FunctionType, OptionType, StringType, isTypeEqual, none, printType, some, } from "@elaraai/east";
|
|
33
|
-
import { StatusValueType } from "@elaraai/east-ui";
|
|
40
|
+
import { ArrayType, BooleanType, DictType, East, FloatType, FunctionType, OptionType, SetType, StringType, isTypeEqual, none, printType, some, } from "@elaraai/east";
|
|
41
|
+
import { StatusValueType, TimeStepType } from "@elaraai/east-ui";
|
|
34
42
|
import { resolveRowSource, resolveTag } from "@elaraai/east-ui/internal";
|
|
43
|
+
import { AllocationJobType } from "../allocation/types.js";
|
|
35
44
|
import { planSeriesFacts } from "../plan/series.js";
|
|
36
45
|
import { PlanRollupType } from "../plan/types.js";
|
|
46
|
+
import { scheduleAccessor } from "./accessor.js";
|
|
37
47
|
import { PlanResourceRowType, PlanResourcesType, ScheduleResourceRowType, ScheduleResourcesType } from "./types.js";
|
|
38
48
|
import { scheduleEntryByKey } from "./window.js";
|
|
39
49
|
/** The key a schedule's definitions carry their sort under. */
|
|
@@ -75,10 +85,11 @@ export function scheduleResources(rows, input) {
|
|
|
75
85
|
const keyType = type.key;
|
|
76
86
|
const rowType = type.value;
|
|
77
87
|
const optString = OptionType(StringType);
|
|
78
|
-
// Each accessor, one East function, called per row (`shared/reify.ts`'s rule).
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
const
|
|
88
|
+
// Each accessor, one East function, called per row (`shared/reify.ts`'s rule), held to the type it returns (#1367).
|
|
89
|
+
const accessor = (prop, out, what, fn) => fn === undefined ? undefined
|
|
90
|
+
: scheduleAccessor(rowType, keyType, out, fn, (returns) => `${where}: \`${prop}\` returns ${what} — and this one returns ${returns}`);
|
|
91
|
+
const label = accessor("label", StringType, "a String, a resource's name", config.label);
|
|
92
|
+
const meta = accessor("meta", optString, "an Option of a String, a resource's second line", config.meta ?? (() => East.value(none, optString)));
|
|
82
93
|
// A String key is its own text; any other key as East prints it.
|
|
83
94
|
const text = keyType.type === "String"
|
|
84
95
|
? East.function([StringType], StringType, (_$, key) => key)
|
|
@@ -131,15 +142,33 @@ export function scheduleResources(rows, input) {
|
|
|
131
142
|
}
|
|
132
143
|
}
|
|
133
144
|
}
|
|
134
|
-
// Plan's accessors
|
|
135
|
-
const
|
|
136
|
-
const
|
|
137
|
-
const
|
|
138
|
-
const
|
|
139
|
-
const
|
|
140
|
-
const statusOf = accessor(OptionType(StatusValueType), config.status);
|
|
145
|
+
// Plan's accessors.
|
|
146
|
+
const groupOf = accessor("group", StringType, "a String, the group a resource sits under", config.group);
|
|
147
|
+
const parentOf = accessor("parent", optString, "an Option of a String, the key's text of the resource it nests under", config.parent);
|
|
148
|
+
const subOf = accessor("sub", optString, "an Option of a String, the gutter's sub line", config.sub);
|
|
149
|
+
const valueOf = accessor("value", optString, "an Option of a String, the gutter's value slot", config.value);
|
|
150
|
+
const statusOf = accessor("status", OptionType(StatusValueType), "an Option of a StatusValue, the gutter's status dot", config.status);
|
|
141
151
|
const collapsed = config.collapsed;
|
|
142
|
-
const collapsedOf = typeof collapsed === "function" ? accessor(BooleanType, collapsed) : undefined;
|
|
152
|
+
const collapsedOf = typeof collapsed === "function" ? accessor("collapsed", BooleanType, "a Boolean, whether a resource starts folded", collapsed) : undefined;
|
|
153
|
+
// The builders' over the app's own records (#1367): the Roster's people, the Allocation's lanes and resources.
|
|
154
|
+
const accessors = {
|
|
155
|
+
label,
|
|
156
|
+
meta,
|
|
157
|
+
group: groupOf,
|
|
158
|
+
position: accessor("position", StringType, "a String, a person's default position", config.position),
|
|
159
|
+
skills: accessor("skills", SetType(StringType), "a Set of String, the skills a person holds", config.skills),
|
|
160
|
+
contract: accessor("contract", FloatType, "a Float, a person's contracted weekly hours", config.contract),
|
|
161
|
+
agency: accessor("agency", BooleanType, "a Boolean, whether a person is a named agency worker", config.agency),
|
|
162
|
+
trainer: accessor("trainer", BooleanType, "a Boolean, whether a person trains others", config.trainer),
|
|
163
|
+
trainee: accessor("trainee", BooleanType, "a Boolean, whether a person needs a trainer beside them", config.trainee),
|
|
164
|
+
usual: accessor("usual", optString, "an Option of a String, a person's usual shift", config.usual),
|
|
165
|
+
offset: accessor("offset", TimeStepType, "a TimeStep, how far past each slot's start a lane's bins are booked", config.offset),
|
|
166
|
+
min: accessor("min", FloatType, "a Float, a resource's minimum", config.min),
|
|
167
|
+
max: accessor("max", FloatType, "a Float, a resource's maximum", config.max),
|
|
168
|
+
note: accessor("note", optString, "an Option of a String, a line about a resource's next job", config.note),
|
|
169
|
+
hold: accessor("hold", TimeStepType, "a TimeStep, how long a reservation on a resource is held", config.hold),
|
|
170
|
+
jobs: accessor("jobs", ArrayType(AllocationJobType), "an Array of Allocation.Types.Job, the other work on a resource", config.jobs),
|
|
171
|
+
};
|
|
143
172
|
// One resource as Plan's builder takes it.
|
|
144
173
|
const planRow = East.function([rowType, keyType], PlanResourceRowType, ($, row, key) => {
|
|
145
174
|
const keyText = $.const(text);
|
|
@@ -192,6 +221,7 @@ export function scheduleResources(rows, input) {
|
|
|
192
221
|
grouped: config.group !== undefined,
|
|
193
222
|
nested: config.parent !== undefined,
|
|
194
223
|
rollup,
|
|
224
|
+
accessors,
|
|
195
225
|
build(slot) {
|
|
196
226
|
// The Calendar reads a kind's resources whole, and pages none.
|
|
197
227
|
if (source === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/schedule/resources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/schedule/resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EACH,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAEvI,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAoD,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACpH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAgKlE,kCAAkC;AAClC,MAAM,OAAO,GAAsB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAEhE,4CAA4C;AAC5C,MAAM,QAAQ,GAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE/D,0GAA0G;AAC1G,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAE9D,qEAAqE;AACrE,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;AAgDhE,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,KAAc;IAC3D,MAAM,MAAM,GAAG,KAAoD,CAAC;IACpE,MAAM,KAAK,GAAG,wBAAwB,MAAM,CAAC,IAAI,GAAG,CAAC;IACrD,4GAA4G;IAC5G,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,2EAA2E;YAC/F,4HAA4H,CAAC,CAAC;IACtI,CAAC;IACD,yFAAyF;IACzF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC;IACrC,IAAI,MAAsC,CAAC;IAC3C,IAAI,MAAsC,CAAC;IAC3C,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,2EAA2E,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACpH,CAAC;QACD,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;SAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3D,MAAM,GAAG,QAAQ,CAAC,MAAuC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mGAAmG;YACvH,wDAAwD,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9I,CAAC;IACD,MAAM,OAAO,GAAI,IAAqC,CAAC,GAAG,CAAC;IAC3D,MAAM,OAAO,GAAI,IAAqC,CAAC,KAAK,CAAC;IAC7D,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,oHAAoH;IACpH,MAAM,QAAQ,GAAG,CAAqB,IAAY,EAAE,GAAM,EAAE,IAAY,EACpE,EAAsG,EAAE,EAAE,CAC1G,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;QACxB,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,cAAc,IAAI,2BAA2B,OAAO,EAAE,CAAC,CAAC;IAC9I,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,6BAA6B,EAAE,MAAM,CAAC,KAAK,CAAE,CAAC;IAC1F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,iDAAiD,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC;IACjJ,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ;QAClC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;QAC3D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzE,mEAAmE;IACnE,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6DAA6D,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3G,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE,cAAc,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,wDAAwD;IACxD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,GAAG,KAAK,cAAc,CAAC,GAAG,CAAC;QACtC,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACD,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,2CAA2C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,qIAAqI,CAAC,CAAC;QAChK,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,GAAG,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,SAAS,KAAK,+EAA+E,CAAC,CAAC;QACxH,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,KAAK,oEAAoE,CAAC,CAAC;QACzG,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,KAAK,sBAAsB,KAAK,CAAC,GAAG,yGAAyG,CAAC,CAAC;QAC7K,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvB,sGAAsG;QACtG,+EAA+E;QAC/E,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0HAA0H,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5K,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAU,EAAE,CAAC;YAC9C,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,mFAAmF,IAAI,KAAK;oBAChH,gIAAgI,IAAI,QAAQ,CAAC,CAAC;YACtJ,CAAC;QACL,CAAC;IACL,CAAC;IACD,oBAAoB;IACpB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,2CAA2C,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzG,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE,sEAAsE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,8CAA8C,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrG,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,gDAAgD,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7G,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,qDAAqD,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACvI,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,6CAA6C,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/J,+GAA+G;IAC/G,MAAM,SAAS,GAA8B;QACzC,KAAK;QACL,IAAI;QACJ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,uCAAuC,EAAE,MAAM,CAAC,QAAQ,CAAC;QACpG,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,4CAA4C,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5G,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,6CAA6C,EAAE,MAAM,CAAC,QAAQ,CAAC;QACzG,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9G,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,2CAA2C,EAAE,MAAM,CAAC,OAAO,CAAC;QACtG,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,yDAAyD,EAAE,MAAM,CAAC,OAAO,CAAC;QACpH,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,+CAA+C,EAAE,MAAM,CAAC,KAAK,CAAC;QAClG,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,qEAAqE,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9H,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,CAAC,GAAG,CAAC;QAC5E,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,CAAC,GAAG,CAAC;QAC5E,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,2DAA2D,EAAE,MAAM,CAAC,IAAI,CAAC;QAC3G,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,0DAA0D,EAAE,MAAM,CAAC,IAAI,CAAC;QAC7G,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,iBAAiB,CAAC,EAAE,gEAAgE,EAAE,MAAM,CAAC,IAAI,CAAC;KACtI,CAAC;IACF,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACnF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAsD,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,uFAAuF;QACvF,MAAM,IAAI,GAAG,CAAC,EAAW,EAAE,SAAkB,EAAE,IAA6C,EAAW,EAAE;YACrG,IAAI,EAAE,KAAK,SAAS;gBAAE,OAAO,SAAS,CAAC;YACvC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAA4D,CAAC,CAAC;YACpF,MAAM,KAAK,GAAG,KAAK,CAAC,GAAY,EAAE,GAAY,CAAuB,CAAC;YACtE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;YACd,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,GAAY,EAAE,GAAY,CAAC;YAC1C,IAAI,EAAE,MAAM,CAAC,GAAY,EAAE,GAAY,CAAC;YACxC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC5B,SAAS,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI;SAC9E,EAAE,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,mGAAmG;IACnG,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACrD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACf,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAY,EAAE,GAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1F,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aACrD,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,EAAE,CAAC;IACL,OAAO;QACH,CAAC,YAAY,CAAC,EAAE,WAAW;QAC3B,OAAO;QACP,OAAO;QACP,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ;QACR,MAAM;QACN,MAAM,EAAE,MAAuE;QAC/E,OAAO,EAAE,OAAuF;QAChG,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS;QACnC,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,SAAS;QACnC,MAAM;QACN,SAAS;QACT,KAAK,CAAC,IAAY;YACd,+DAA+D;YAC/D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4FAA4F;oBAChH,4DAA4D,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,GAAG,GAAG,MAA2D,CAAC;YACxE,OAAO,IAAI,CAAC,KAAK,CAAC;gBACd,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC9B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAsD,CAAC,CAAC;oBAChF,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAY,EAAE,GAAY,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAY,EAAE,GAAY,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC;gBAC5J,CAAC,CAAC;aACL,EAAE,qBAAqB,CAAC,CAAC;QAC9B,CAAC;QACD,SAAS,CAAC,IAAY;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC;gBACd,GAAG,EAAE,IAAI;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM;gBACN,QAAQ,EAAE,WAAW;gBACrB,+FAA+F;gBAC/F,yFAAyF;gBACzF,IAAI,EAAE,MAAM,KAAK,SAAS;oBACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;oBAChD,CAAC,CAAE,MAA4D,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;wBACpF,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACjC,OAAO,OAAO,CAAC,GAAY,EAAE,GAAY,CAAC,CAAC;oBAC/C,CAAC,CAAC;gBACN,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;aAC/H,EAAE,iBAAiB,CAAC,CAAC;QACnC,CAAC;KACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The shared editing session over a record a builder writes (#1199, #1367):
|
|
7
|
+
* whole entries keyed by the record's key, each Save one patch commit through
|
|
8
|
+
* the record's patch door (`Record.onApply(record, { keyed: true })`). Its
|
|
9
|
+
* base is the record's snapshot — or, for a record read by key through a paged
|
|
10
|
+
* read of its own entries (`entries`, `Data.bindPaged(record)`), its revision,
|
|
11
|
+
* every entry it reads read by its key.
|
|
12
|
+
*
|
|
13
|
+
* An event kind's session (`Schedule.events`) and a builder's periods'
|
|
14
|
+
* (`Schedule.periods`) are this one session, so a builder keeps each record it
|
|
15
|
+
* writes in one session of one history, as the Calendar's and Plan's kinds are.
|
|
16
|
+
*
|
|
17
|
+
* @packageDocumentation
|
|
18
|
+
*/
|
|
19
|
+
import { NullType, OptionType, StringType, type DictType, type EastType, type ExprType, type FunctionType, type VariantType } from "@elaraai/east";
|
|
20
|
+
import { EditingType } from "@elaraai/east-ui/internal";
|
|
21
|
+
import { ScheduleEntriesType } from "./types.js";
|
|
22
|
+
/** One entry read by its key: still reading, absent, or held. */
|
|
23
|
+
type KeyRead = VariantType<{
|
|
24
|
+
reading: NullType;
|
|
25
|
+
absent: NullType;
|
|
26
|
+
held: EastType;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* A record's session, declared (see the module docs): what a builder reads the
|
|
30
|
+
* record through, and its session's wire, built where the builder builds it.
|
|
31
|
+
*/
|
|
32
|
+
export interface ScheduleRecordSession {
|
|
33
|
+
/** The record's entries, read whole. */
|
|
34
|
+
readonly readAll: () => ExprType<DictType<EastType, EastType>>;
|
|
35
|
+
/** One entry by its key's text, through `entries`; `undefined` for a record read whole. */
|
|
36
|
+
readonly byKey: ExprType<FunctionType<[StringType], KeyRead>> | undefined;
|
|
37
|
+
/** The record's largest key's text, through `entries`; `undefined` for a record read whole. */
|
|
38
|
+
readonly lastKey: ExprType<FunctionType<[], OptionType<OptionType<StringType>>>> | undefined;
|
|
39
|
+
/** A key's text: a String key as it is, any other key as East prints it. */
|
|
40
|
+
readonly idOf: ExprType<FunctionType<[EastType], StringType>>;
|
|
41
|
+
/** A key from its text. */
|
|
42
|
+
readonly keyOf: ExprType<FunctionType<[StringType], EastType>>;
|
|
43
|
+
/** The record's commits, newest first, as its handle reads them. */
|
|
44
|
+
readonly history: ExprType<EastType>;
|
|
45
|
+
/**
|
|
46
|
+
* The session's wire: the shared `EditingType` over the record, and its read by key.
|
|
47
|
+
*
|
|
48
|
+
* @returns `editing`, the session; `entries`, the record read by key, `none` for a record read whole
|
|
49
|
+
*/
|
|
50
|
+
build(): {
|
|
51
|
+
editing: ExprType<typeof EditingType>;
|
|
52
|
+
entries: ExprType<OptionType<typeof ScheduleEntriesType>>;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Declares the session over a record (see the module docs).
|
|
57
|
+
*
|
|
58
|
+
* @param record - The record, `Record.bind(record, [e3.mutation.patch(record)])`
|
|
59
|
+
* @param keyType - The record's key type
|
|
60
|
+
* @param rowType - The record's row type
|
|
61
|
+
* @param entries - A paged read of the record's own entries, checked (`checkEntries`); `undefined` for a record read whole
|
|
62
|
+
* @returns The session, declared
|
|
63
|
+
* @throws {Error} When the record is not bound with its patch mutation (`Record.onApply`'s refusal)
|
|
64
|
+
*/
|
|
65
|
+
export declare function scheduleRecordSession(record: unknown, keyType: EastType, rowType: EastType, entries: ExprType<EastType> | undefined): ScheduleRecordSession;
|
|
66
|
+
/** Whether an expression's type is a struct: a bound record's handle is. */
|
|
67
|
+
export declare function isHandle(record: unknown): boolean;
|
|
68
|
+
export {};
|
|
69
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/schedule/session.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACgC,QAAQ,EAAE,UAAU,EAAE,UAAU,EACnE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAmB,KAAK,WAAW,EACpG,MAAM,eAAe,CAAC;AACvB,OAAO,EAA0E,WAAW,EAAwB,MAAM,2BAA2B,CAAC;AAEtJ,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,iEAAiE;AACjE,KAAK,OAAO,GAAG,WAAW,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAC1E,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7F,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9D,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrC;;;;OAIG;IACH,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAA;KAAE,CAAC;CACjH;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,qBAAqB,CAoF3J;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEjD"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The shared editing session over a record a builder writes (#1199, #1367):
|
|
7
|
+
* whole entries keyed by the record's key, each Save one patch commit through
|
|
8
|
+
* the record's patch door (`Record.onApply(record, { keyed: true })`). Its
|
|
9
|
+
* base is the record's snapshot — or, for a record read by key through a paged
|
|
10
|
+
* read of its own entries (`entries`, `Data.bindPaged(record)`), its revision,
|
|
11
|
+
* every entry it reads read by its key.
|
|
12
|
+
*
|
|
13
|
+
* An event kind's session (`Schedule.events`) and a builder's periods'
|
|
14
|
+
* (`Schedule.periods`) are this one session, so a builder keeps each record it
|
|
15
|
+
* writes in one session of one history, as the Calendar's and Plan's kinds are.
|
|
16
|
+
*
|
|
17
|
+
* @packageDocumentation
|
|
18
|
+
*/
|
|
19
|
+
import { BlobType, East, Expr, IntegerType, NullType, OptionType, StringType, none, some, toEastTypeValue, variant, } from "@elaraai/east";
|
|
20
|
+
import { EditingApplyResultType, EditingChangeSetTypeFor, EditingDraftFieldType, EditingType, EditingWireApplyType } from "@elaraai/east-ui/internal";
|
|
21
|
+
import { Record } from "../bind/record.js";
|
|
22
|
+
import { ScheduleEntriesType } from "./types.js";
|
|
23
|
+
import { scheduleEntryByKey, scheduleLastKey } from "./window.js";
|
|
24
|
+
/**
|
|
25
|
+
* Declares the session over a record (see the module docs).
|
|
26
|
+
*
|
|
27
|
+
* @param record - The record, `Record.bind(record, [e3.mutation.patch(record)])`
|
|
28
|
+
* @param keyType - The record's key type
|
|
29
|
+
* @param rowType - The record's row type
|
|
30
|
+
* @param entries - A paged read of the record's own entries, checked (`checkEntries`); `undefined` for a record read whole
|
|
31
|
+
* @returns The session, declared
|
|
32
|
+
* @throws {Error} When the record is not bound with its patch mutation (`Record.onApply`'s refusal)
|
|
33
|
+
*/
|
|
34
|
+
export function scheduleRecordSession(record, keyType, rowType, entries) {
|
|
35
|
+
const handle = record;
|
|
36
|
+
// The Save: one patch commit through the record's patch door, its entries checked against what the drafts began from.
|
|
37
|
+
// Declared now, so a record bound without its patch door is refused where the builder's kind is.
|
|
38
|
+
const apply = Record.onApply(record, { keyed: true });
|
|
39
|
+
const readAll = handle["read"];
|
|
40
|
+
const byKey = entries === undefined ? undefined : scheduleEntryByKey(entries, keyType, rowType);
|
|
41
|
+
const lastKey = entries === undefined ? undefined : scheduleLastKey(entries, keyType);
|
|
42
|
+
// An entry's id is its key's text: a String key as it is, any other key as East prints it.
|
|
43
|
+
const idOf = (keyType.type === "String"
|
|
44
|
+
? East.function([StringType], StringType, (_$, key) => key)
|
|
45
|
+
: East.function([keyType], StringType, (_$, key) => East.print(key)));
|
|
46
|
+
const keyOf = (keyType.type === "String"
|
|
47
|
+
? East.function([StringType], StringType, (_$, id) => id)
|
|
48
|
+
: East.function([StringType], keyType, (_$, id) => id.parse(keyType)));
|
|
49
|
+
const draftType = EditingDraftFieldType(rowType);
|
|
50
|
+
return {
|
|
51
|
+
readAll,
|
|
52
|
+
byKey,
|
|
53
|
+
lastKey,
|
|
54
|
+
idOf,
|
|
55
|
+
keyOf,
|
|
56
|
+
history: handle["history"],
|
|
57
|
+
build() {
|
|
58
|
+
// The shared session over the record: whole-entry drafts, keyed batches, Save through the patch door.
|
|
59
|
+
// Its base is the record's snapshot — or, for a record read by key (#1199), its revision, every entry
|
|
60
|
+
// it reads read by its key through the record's own entries.
|
|
61
|
+
const batchType = EditingChangeSetTypeFor(rowType, keyType);
|
|
62
|
+
const encodedEntry = (row) => East.value(some(East.Blob.encodeBeast(row, "v2")), OptionType(BlobType));
|
|
63
|
+
const readEntry = byKey === undefined
|
|
64
|
+
? East.function([StringType, IntegerType], OptionType(BlobType), ($, id, _offset) => {
|
|
65
|
+
const parse = $.const(keyOf);
|
|
66
|
+
const held = $.const(readAll());
|
|
67
|
+
return held.tryGet(parse(id)).match({
|
|
68
|
+
some: (_$2, row) => encodedEntry(row),
|
|
69
|
+
none: (_$2) => East.value(none, OptionType(BlobType)),
|
|
70
|
+
});
|
|
71
|
+
})
|
|
72
|
+
: East.function([StringType, IntegerType], OptionType(BlobType), ($, id, _offset) => {
|
|
73
|
+
const find = $.const(byKey);
|
|
74
|
+
const result = $.let(none, OptionType(BlobType));
|
|
75
|
+
$.match(find(id), { held: ($2, row) => { $2.assign(result, encodedEntry(row)); } });
|
|
76
|
+
return result;
|
|
77
|
+
});
|
|
78
|
+
const onApply = East.asyncFunction([BlobType], EditingApplyResultType, ($, blob) => {
|
|
79
|
+
const commit = $.const(apply);
|
|
80
|
+
return commit(blob.decodeBeast(batchType, "v2"));
|
|
81
|
+
});
|
|
82
|
+
const editing = East.value({
|
|
83
|
+
sourceId: handle["binding"].name,
|
|
84
|
+
entryType: toEastTypeValue(rowType),
|
|
85
|
+
idField: none,
|
|
86
|
+
draftType: toEastTypeValue(draftType),
|
|
87
|
+
children: none,
|
|
88
|
+
keyType: some(toEastTypeValue(keyType)),
|
|
89
|
+
snapshot: byKey === undefined ? some(East.Blob.encodeBeast(readAll(), "v2")) : none,
|
|
90
|
+
readEntry,
|
|
91
|
+
onPatch: none,
|
|
92
|
+
onApply: some(East.value(variant("async", onApply), EditingWireApplyType)),
|
|
93
|
+
mode: variant("batch", null),
|
|
94
|
+
}, EditingType);
|
|
95
|
+
// The record read by key (#1199): its revision and a move to another, one entry's row, and its largest key.
|
|
96
|
+
let seam;
|
|
97
|
+
if (entries === undefined || byKey === undefined || lastKey === undefined) {
|
|
98
|
+
seam = East.value(none, OptionType(ScheduleEntriesType));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const pinned = entries;
|
|
102
|
+
const entry = East.function([StringType], OptionType(OptionType(BlobType)), ($, id) => {
|
|
103
|
+
const find = $.const(byKey);
|
|
104
|
+
const result = $.let(none, OptionType(OptionType(BlobType)));
|
|
105
|
+
$.match(find(id), {
|
|
106
|
+
held: ($2, row) => { $2.assign(result, some(encodedEntry(row))); },
|
|
107
|
+
absent: ($2) => { $2.assign(result, some(none)); },
|
|
108
|
+
});
|
|
109
|
+
return result;
|
|
110
|
+
});
|
|
111
|
+
seam = East.value(some({ revision: pinned.revision, refresh: pinned.refresh, entry, last: lastKey }), OptionType(ScheduleEntriesType));
|
|
112
|
+
}
|
|
113
|
+
return { editing, entries: seam };
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/** Whether an expression's type is a struct: a bound record's handle is. */
|
|
118
|
+
export function isHandle(record) {
|
|
119
|
+
return record instanceof Expr && Expr.type(record).type === "Struct";
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/schedule/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,10 @@ export interface ScheduleTemplates<V extends StructType> {
|
|
|
14
14
|
readonly valuesType: V;
|
|
15
15
|
/** The templates, with each initial value encoded at its own type. */
|
|
16
16
|
readonly items: ExprType<ArrayType<ScheduleTemplateType>>;
|
|
17
|
+
/** The builder's Slice source whose shown keys filter these templates, by their record keys; `undefined`, every one shows (#1343). */
|
|
18
|
+
readonly source: string | undefined;
|
|
19
|
+
/** Whether each gives how long its event runs (`duration`): a span kind's templates do, an instant kind's do not (#1344). */
|
|
20
|
+
readonly timed: boolean;
|
|
17
21
|
}
|
|
18
22
|
/** Accessors describing one template record row. Each receives the row and its key. */
|
|
19
23
|
export interface ScheduleTemplatesConfig<K extends EastType, R extends EastType, V extends StructType> {
|
|
@@ -23,10 +27,18 @@ export interface ScheduleTemplatesConfig<K extends EastType, R extends EastType,
|
|
|
23
27
|
group?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<StringType>>;
|
|
24
28
|
/** Its optional start time for a drop onto a whole day. */
|
|
25
29
|
at?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<ScheduleClockType>>;
|
|
26
|
-
/**
|
|
27
|
-
|
|
30
|
+
/**
|
|
31
|
+
* The length of an event made from this template: a span kind's templates give it, and an instant kind's
|
|
32
|
+
* (`at`), whose events are one time, give none (#1344).
|
|
33
|
+
*/
|
|
34
|
+
duration?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<ScheduleDurationType>;
|
|
28
35
|
/** Every initial event field except its start, end and resource. */
|
|
29
36
|
values: (row: ExprType<R>, key: ExprType<K>) => ExprType<V>;
|
|
37
|
+
/**
|
|
38
|
+
* The builder's `Slice.bindRecords` source over these templates' record (`jobTemplates`): its shown keys filter
|
|
39
|
+
* the Templates tab's cards, each template's key its record key. Omitted, every template shows (#1343).
|
|
40
|
+
*/
|
|
41
|
+
source?: string;
|
|
30
42
|
}
|
|
31
43
|
/**
|
|
32
44
|
* Reads templates from keyed data, usually a bound record's read(). Each
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/schedule/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAE,QAAQ,EAAc,UAAU,EAAE,UAAU,EACvD,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAqB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAC5F,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE3F,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAqC,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,UAAU;IACnD,kCAAkC;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/schedule/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAE,QAAQ,EAAc,UAAU,EAAE,UAAU,EACvD,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAqB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAC5F,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE3F,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAqC,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,UAAU;IACnD,kCAAkC;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC1D,sIAAsI;IACtI,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,6HAA6H;IAC7H,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CAC3B;AAED,uFAAuF;AACvF,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU;IACjG,0CAA0C;IAC1C,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC7E,kCAAkC;IAClC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,2DAA2D;IAC3D,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/F;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAC5F,oEAAoE;IACpE,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU,EAC1F,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACnF,iBAAiB,CAAC,CAAC,CAAC,CA8BtB;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAMzJ"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
-
import { ArrayType, DictType, East, Expr, OptionType, StringType, isTypeEqual, none, printType, } from "@elaraai/east";
|
|
5
|
+
import { ArrayType, DictType, East, Expr, OptionType, StringType, isTypeEqual, none, printType, variant, } from "@elaraai/east";
|
|
6
6
|
import { ScheduleClockType, ScheduleDurationType, ScheduleTemplateType } from "./types.js";
|
|
7
7
|
/** Identifies a declaration of templates read from keyed data. */
|
|
8
8
|
export const SCHEDULE_TEMPLATES = Symbol("Schedule.templates");
|
|
@@ -33,6 +33,7 @@ export function scheduleTemplates(rows, config) {
|
|
|
33
33
|
const keyText = keyType.type === "String"
|
|
34
34
|
? East.function([StringType], StringType, (_$, key) => key)
|
|
35
35
|
: East.function([keyType], StringType, (_$, key) => East.print(key));
|
|
36
|
+
const duration = config.duration;
|
|
36
37
|
const describe = East.function([rowType, keyType], ScheduleTemplateType, ($, row, key) => {
|
|
37
38
|
const text = $.const(keyText);
|
|
38
39
|
const initial = $.const(values);
|
|
@@ -40,7 +41,8 @@ export function scheduleTemplates(rows, config) {
|
|
|
40
41
|
key: text(key), name: config.name(row, key),
|
|
41
42
|
group: config.group === undefined ? none : config.group(row, key),
|
|
42
43
|
at: config.at === undefined ? none : config.at(row, key),
|
|
43
|
-
|
|
44
|
+
// An instant kind's template is one time: it lasts no time, as one written in the code does.
|
|
45
|
+
duration: duration === undefined ? variant("minutes", 0) : duration(row, key),
|
|
44
46
|
values: East.Blob.encodeBeast(initial(row, key), "v2"),
|
|
45
47
|
};
|
|
46
48
|
});
|
|
@@ -48,7 +50,7 @@ export function scheduleTemplates(rows, config) {
|
|
|
48
50
|
const describeRow = $.const(describe);
|
|
49
51
|
return describeRow(row, key);
|
|
50
52
|
});
|
|
51
|
-
return { [SCHEDULE_TEMPLATES]: true, valuesType, items };
|
|
53
|
+
return { [SCHEDULE_TEMPLATES]: true, valuesType, items, source: config.source, timed: duration !== undefined };
|
|
52
54
|
}
|
|
53
55
|
/** Checks a bound template's initial values against the fields its kind requires. */
|
|
54
56
|
export function checkedTemplates(templates, expected, where) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/schedule/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/schedule/templates.ts"],"names":[],"mappings":"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"}
|