@elaraai/e3-ui 1.0.98 → 1.0.99
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/src/allocation/adapters.d.ts +1 -1
- package/dist/src/allocation/adapters.js +1 -1
- package/dist/src/allocation/index.d.ts +46 -90
- package/dist/src/allocation/index.d.ts.map +1 -1
- package/dist/src/allocation/index.js +5 -5
- package/dist/src/allocation/index.js.map +1 -1
- package/dist/src/bind/data-indexed.d.ts +273 -51
- package/dist/src/bind/data-indexed.d.ts.map +1 -1
- package/dist/src/bind/data-indexed.js +233 -56
- package/dist/src/bind/data-indexed.js.map +1 -1
- package/dist/src/bind/data.d.ts +48 -9
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +48 -3
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/record.d.ts +61 -24
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +17 -57
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +55 -95
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +10 -6
- package/dist/src/calendar/index.js.map +1 -1
- package/dist/src/flowchart/index.d.ts +35 -31
- package/dist/src/flowchart/index.d.ts.map +1 -1
- package/dist/src/flowchart/index.js +35 -31
- package/dist/src/flowchart/index.js.map +1 -1
- package/dist/src/flowchart/library.d.ts +108 -84
- package/dist/src/flowchart/library.d.ts.map +1 -1
- package/dist/src/flowchart/library.js +108 -84
- package/dist/src/flowchart/library.js.map +1 -1
- package/dist/src/flowchart/payload.d.ts +39 -107
- package/dist/src/flowchart/payload.d.ts.map +1 -1
- package/dist/src/flowchart/payload.js +3 -3
- package/dist/src/flowchart/payload.js.map +1 -1
- package/dist/src/flowchart/values.d.ts +35 -31
- package/dist/src/flowchart/values.d.ts.map +1 -1
- package/dist/src/flowchart/values.js +35 -31
- package/dist/src/flowchart/values.js.map +1 -1
- package/dist/src/flowchart/window.d.ts +0 -12
- package/dist/src/flowchart/window.d.ts.map +1 -1
- package/dist/src/flowchart/window.js +3 -2
- package/dist/src/flowchart/window.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +7 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +12 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/assemble.d.ts +8 -0
- package/dist/src/plan/assemble.d.ts.map +1 -1
- package/dist/src/plan/assemble.js +1 -1
- package/dist/src/plan/assemble.js.map +1 -1
- package/dist/src/plan/builders.d.ts +1518 -2
- package/dist/src/plan/builders.d.ts.map +1 -1
- package/dist/src/plan/builders.js +248 -114
- package/dist/src/plan/builders.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +9 -14
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +6 -46
- package/dist/src/plan/event-rows.js.map +1 -1
- package/dist/src/plan/factories.d.ts +72 -4
- package/dist/src/plan/factories.d.ts.map +1 -1
- package/dist/src/plan/factories.js +147 -1
- package/dist/src/plan/factories.js.map +1 -1
- package/dist/src/plan/index.d.ts +147 -125
- package/dist/src/plan/index.d.ts.map +1 -1
- package/dist/src/plan/index.js +135 -122
- package/dist/src/plan/index.js.map +1 -1
- package/dist/src/plan/ir.d.ts +1105 -44
- package/dist/src/plan/ir.d.ts.map +1 -1
- package/dist/src/plan/ir.js +5 -0
- package/dist/src/plan/ir.js.map +1 -1
- package/dist/src/plan/library.d.ts +65 -42
- package/dist/src/plan/library.d.ts.map +1 -1
- package/dist/src/plan/library.js +65 -42
- package/dist/src/plan/library.js.map +1 -1
- package/dist/src/plan/nested-checks.d.ts +146 -0
- package/dist/src/plan/nested-checks.d.ts.map +1 -0
- package/dist/src/plan/nested-checks.js +468 -0
- package/dist/src/plan/nested-checks.js.map +1 -0
- package/dist/src/plan/nested-patch.d.ts +35 -0
- package/dist/src/plan/nested-patch.d.ts.map +1 -0
- package/dist/src/plan/nested-patch.js +143 -0
- package/dist/src/plan/nested-patch.js.map +1 -0
- package/dist/src/plan/nested-read.d.ts +3250 -0
- package/dist/src/plan/nested-read.d.ts.map +1 -0
- package/dist/src/plan/nested-read.js +163 -0
- package/dist/src/plan/nested-read.js.map +1 -0
- package/dist/src/plan/nested.d.ts +280 -0
- package/dist/src/plan/nested.d.ts.map +1 -0
- package/dist/src/plan/nested.js +6 -0
- package/dist/src/plan/nested.js.map +1 -0
- package/dist/src/plan/ordered-source.d.ts +1030 -1
- package/dist/src/plan/ordered-source.d.ts.map +1 -1
- package/dist/src/plan/ordered-source.js +48 -6
- package/dist/src/plan/ordered-source.js.map +1 -1
- package/dist/src/plan/over.d.ts +111 -75
- package/dist/src/plan/over.d.ts.map +1 -1
- package/dist/src/plan/over.js +111 -75
- package/dist/src/plan/over.js.map +1 -1
- package/dist/src/plan/pick.d.ts +15 -3
- package/dist/src/plan/pick.d.ts.map +1 -1
- package/dist/src/plan/pick.js +75 -36
- package/dist/src/plan/pick.js.map +1 -1
- package/dist/src/plan/plan.d.ts +2719 -558
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +14 -2
- package/dist/src/plan/plan.js.map +1 -1
- package/dist/src/plan/reads.d.ts +421 -0
- package/dist/src/plan/reads.d.ts.map +1 -0
- package/dist/src/plan/reads.js +143 -0
- package/dist/src/plan/reads.js.map +1 -0
- package/dist/src/plan/refs.d.ts +111 -75
- package/dist/src/plan/refs.d.ts.map +1 -1
- package/dist/src/plan/refs.js +111 -75
- package/dist/src/plan/refs.js.map +1 -1
- package/dist/src/plan/root.d.ts +10 -5
- package/dist/src/plan/root.d.ts.map +1 -1
- package/dist/src/plan/root.js +76 -13
- package/dist/src/plan/root.js.map +1 -1
- package/dist/src/plan/series.d.ts +5140 -4331
- package/dist/src/plan/series.d.ts.map +1 -1
- package/dist/src/plan/series.js +1026 -264
- package/dist/src/plan/series.js.map +1 -1
- package/dist/src/plan/shade.d.ts +981 -0
- package/dist/src/plan/shade.d.ts.map +1 -0
- package/dist/src/plan/shade.js +60 -0
- package/dist/src/plan/shade.js.map +1 -0
- package/dist/src/plan/types.d.ts +178 -18
- package/dist/src/plan/types.d.ts.map +1 -1
- package/dist/src/plan/types.js +69 -19
- package/dist/src/plan/types.js.map +1 -1
- package/dist/src/query/builder.d.ts +3 -3
- package/dist/src/query/builder.d.ts.map +1 -1
- package/dist/src/query/builder.js +1 -1
- package/dist/src/query/library.d.ts +3 -3
- package/dist/src/query/library.d.ts.map +1 -1
- package/dist/src/query/library.js +1 -1
- package/dist/src/query/queries.d.ts +2 -2
- package/dist/src/query/queries.js +1 -1
- package/dist/src/query/saved.d.ts +8 -4
- package/dist/src/query/saved.d.ts.map +1 -1
- package/dist/src/query/saved.js +8 -4
- package/dist/src/query/saved.js.map +1 -1
- package/dist/src/query/types.d.ts +8 -3
- package/dist/src/query/types.d.ts.map +1 -1
- package/dist/src/query/types.js +8 -3
- package/dist/src/query/types.js.map +1 -1
- package/dist/src/roster/index.d.ts +47 -91
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +6 -6
- package/dist/src/roster/index.js.map +1 -1
- package/dist/src/roster/targets.d.ts +8 -4
- package/dist/src/roster/targets.d.ts.map +1 -1
- package/dist/src/roster/targets.js +9 -5
- package/dist/src/roster/targets.js.map +1 -1
- package/dist/src/schedule/cell-checks.js +3 -3
- package/dist/src/schedule/cell-checks.js.map +1 -1
- package/dist/src/schedule/days.d.ts +1 -1
- package/dist/src/schedule/days.js +1 -1
- package/dist/src/schedule/events.d.ts +10 -6
- package/dist/src/schedule/events.d.ts.map +1 -1
- package/dist/src/schedule/events.js +252 -228
- package/dist/src/schedule/events.js.map +1 -1
- package/dist/src/schedule/patch.d.ts +1 -1
- package/dist/src/schedule/patch.js +1 -1
- package/dist/src/schedule/periods.d.ts +8 -4
- package/dist/src/schedule/periods.d.ts.map +1 -1
- package/dist/src/schedule/periods.js +1 -1
- package/dist/src/schedule/periods.js.map +1 -1
- package/dist/src/schedule/record-window.d.ts +38 -58
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/record-window.js +15 -16
- package/dist/src/schedule/record-window.js.map +1 -1
- package/dist/src/schedule/resources.d.ts +1 -1
- package/dist/src/schedule/session.d.ts +1 -1
- package/dist/src/schedule/session.js +1 -1
- package/dist/src/schedule/types.d.ts +29 -1
- package/dist/src/schedule/types.d.ts.map +1 -1
- package/dist/src/schedule/types.js +16 -1
- package/dist/src/schedule/types.js.map +1 -1
- package/dist/src/schematic/index.d.ts +19 -9
- package/dist/src/schematic/index.d.ts.map +1 -1
- package/dist/src/schematic/index.js +19 -9
- package/dist/src/schematic/index.js.map +1 -1
- package/dist/src/schematic/kinds.d.ts +4 -4
- package/dist/src/schematic/kinds.js +9 -9
- package/dist/src/schematic/kinds.js.map +1 -1
- package/dist/src/schematic/payload.d.ts +38 -88
- package/dist/src/schematic/payload.d.ts.map +1 -1
- package/dist/src/schematic/payload.js +4 -4
- package/dist/src/schematic/payload.js.map +1 -1
- package/dist/src/schematic/window.d.ts +8 -7
- package/dist/src/schematic/window.d.ts.map +1 -1
- package/dist/src/schematic/window.js +22 -19
- package/dist/src/schematic/window.js.map +1 -1
- package/dist/src/sheet/bridge.d.ts +19 -0
- package/dist/src/sheet/bridge.d.ts.map +1 -1
- package/dist/src/sheet/bridge.js +28 -21
- package/dist/src/sheet/bridge.js.map +1 -1
- package/dist/src/sheet/index.d.ts +66 -46
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +66 -46
- package/dist/src/sheet/index.js.map +1 -1
- package/dist/src/sheet/library.d.ts +13 -8
- package/dist/src/sheet/library.d.ts.map +1 -1
- package/dist/src/sheet/library.js +13 -8
- package/dist/src/sheet/library.js.map +1 -1
- package/dist/src/sheet/record.d.ts +1 -1
- package/dist/src/sheet/record.js +2 -2
- package/dist/src/sheet/record.js.map +1 -1
- package/dist/src/sheet/registers.d.ts +152 -128
- package/dist/src/sheet/registers.d.ts.map +1 -1
- package/dist/src/sheet/registers.js +152 -128
- package/dist/src/sheet/registers.js.map +1 -1
- package/dist/src/sheet/root.d.ts +4 -1
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +15 -3
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +39 -113
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +7 -5
- package/dist/src/sheet/sheet.js.map +1 -1
- package/dist/src/sheet/sub-rows.d.ts +106 -76
- package/dist/src/sheet/sub-rows.d.ts.map +1 -1
- package/dist/src/sheet/sub-rows.js +106 -76
- package/dist/src/sheet/sub-rows.js.map +1 -1
- package/dist/src/sheet/types.d.ts +19 -62
- package/dist/src/sheet/types.d.ts.map +1 -1
- package/dist/src/studio/builder.d.ts +3 -153
- package/dist/src/studio/builder.d.ts.map +1 -1
- package/dist/src/studio/builder.js +1 -1
- package/dist/src/studio/canvas.d.ts +5 -4
- package/dist/src/studio/canvas.d.ts.map +1 -1
- package/dist/src/studio/canvas.js +8 -7
- package/dist/src/studio/canvas.js.map +1 -1
- package/dist/src/studio/component.d.ts +30 -20
- package/dist/src/studio/component.d.ts.map +1 -1
- package/dist/src/studio/component.js +26 -61
- package/dist/src/studio/component.js.map +1 -1
- package/dist/src/studio/index.d.ts +2 -2
- package/dist/src/studio/index.d.ts.map +1 -1
- package/dist/src/studio/index.js +1 -1
- package/dist/src/studio/index.js.map +1 -1
- package/dist/src/studio/inspector.d.ts +10 -39
- package/dist/src/studio/inspector.d.ts.map +1 -1
- package/dist/src/studio/inspector.js +11 -31
- package/dist/src/studio/inspector.js.map +1 -1
- package/dist/src/studio/library.d.ts +3 -169
- package/dist/src/studio/library.d.ts.map +1 -1
- package/dist/src/studio/library.js +1 -1
- package/dist/src/studio/page.d.ts +0 -8
- package/dist/src/studio/page.d.ts.map +1 -1
- package/dist/src/studio/pages.d.ts +17 -591
- package/dist/src/studio/pages.d.ts.map +1 -1
- package/dist/src/studio/pages.js +17 -44
- package/dist/src/studio/pages.js.map +1 -1
- package/dist/src/studio/palette.d.ts +2 -7
- package/dist/src/studio/palette.d.ts.map +1 -1
- package/dist/src/studio/palette.js +4 -5
- package/dist/src/studio/palette.js.map +1 -1
- package/dist/src/studio/publish.d.ts +8 -18
- package/dist/src/studio/publish.d.ts.map +1 -1
- package/dist/src/studio/publish.js +10 -36
- package/dist/src/studio/publish.js.map +1 -1
- package/dist/src/utils/derive.d.ts +12 -12
- package/dist/src/utils/derive.d.ts.map +1 -1
- package/dist/src/utils/derive.js +5 -2
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/ordered-source.d.ts.map +1 -1
- package/dist/src/utils/ordered-source.js +14 -5
- package/dist/src/utils/ordered-source.js.map +1 -1
- package/dist/test/allocation/allocation.examples.d.ts +1900 -1598
- package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
- package/dist/test/allocation/allocation.examples.js +179 -89
- package/dist/test/allocation/allocation.examples.js.map +1 -1
- package/dist/test/allocation/optimise.examples.d.ts.map +1 -1
- package/dist/test/allocation/optimise.examples.js +7 -7
- package/dist/test/allocation/optimise.examples.js.map +1 -1
- package/dist/test/bind/data/data.examples.d.ts +1057 -903
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +260 -204
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts +457 -426
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +41 -21
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts +162 -170
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-records.examples.js +20 -12
- package/dist/test/calendar/calendar-records.examples.js.map +1 -1
- package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-windows.examples.js +12 -12
- package/dist/test/calendar/calendar-windows.examples.js.map +1 -1
- package/dist/test/calendar/calendar.examples.d.ts +1172 -901
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar.examples.js +211 -124
- package/dist/test/calendar/calendar.examples.js.map +1 -1
- package/dist/test/calendar/optimise.examples.js +2 -2
- package/dist/test/calendar/optimise.examples.js.map +1 -1
- package/dist/test/examples-package.d.ts +6 -9
- package/dist/test/examples-package.d.ts.map +1 -1
- package/dist/test/examples-package.js +11 -32
- package/dist/test/examples-package.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2820
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
- package/dist/test/flowchart/flowchart.examples.js +211 -121
- package/dist/test/flowchart/flowchart.examples.js.map +1 -1
- package/dist/test/plan/optimise.examples.js +2 -2
- package/dist/test/plan/optimise.examples.js.map +1 -1
- package/dist/test/plan/plan-events.examples.d.ts +4055 -3263
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-events.examples.js +492 -319
- package/dist/test/plan/plan-events.examples.js.map +1 -1
- package/dist/test/plan/plan-nested.examples.d.ts +1829 -0
- package/dist/test/plan/plan-nested.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-nested.examples.js +321 -0
- package/dist/test/plan/plan-nested.examples.js.map +1 -0
- package/dist/test/plan/plan-records.examples.d.ts +328 -362
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +81 -57
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan-windows.examples.d.ts +1756 -1398
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-windows.examples.js +161 -128
- package/dist/test/plan/plan-windows.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.d.ts +2238 -5712
- package/dist/test/plan/plan.examples.d.ts.map +1 -1
- package/dist/test/plan/plan.examples.js +839 -968
- package/dist/test/plan/plan.examples.js.map +1 -1
- package/dist/test/query/query.examples.d.ts +5221 -3005
- package/dist/test/query/query.examples.d.ts.map +1 -1
- package/dist/test/query/query.examples.js +169 -118
- package/dist/test/query/query.examples.js.map +1 -1
- package/dist/test/roster/optimise.examples.d.ts.map +1 -1
- package/dist/test/roster/optimise.examples.js +7 -7
- package/dist/test/roster/optimise.examples.js.map +1 -1
- package/dist/test/roster/roster-records.examples.d.ts +364 -392
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
- package/dist/test/roster/roster-records.examples.js +40 -26
- package/dist/test/roster/roster-records.examples.js.map +1 -1
- package/dist/test/roster/roster.examples.d.ts +4605 -4308
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +212 -113
- package/dist/test/roster/roster.examples.js.map +1 -1
- package/dist/test/schedule/schedule.examples.d.ts +2646 -2471
- package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
- package/dist/test/schedule/schedule.examples.js +144 -88
- package/dist/test/schedule/schedule.examples.js.map +1 -1
- package/dist/test/schematic/schematic-records.examples.d.ts +286 -276
- package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic-records.examples.js +52 -38
- package/dist/test/schematic/schematic-records.examples.js.map +1 -1
- package/dist/test/schematic/schematic.examples.d.ts +1842 -1491
- package/dist/test/schematic/schematic.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic.examples.js +240 -134
- package/dist/test/schematic/schematic.examples.js.map +1 -1
- package/dist/test/sheet/optimise.examples.d.ts +102 -95
- package/dist/test/sheet/optimise.examples.d.ts.map +1 -1
- package/dist/test/sheet/optimise.examples.js +7 -3
- package/dist/test/sheet/optimise.examples.js.map +1 -1
- package/dist/test/sheet/sheet-records.examples.d.ts +175 -214
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet-records.examples.js +29 -17
- package/dist/test/sheet/sheet-records.examples.js.map +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +3642 -3353
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +389 -282
- package/dist/test/sheet/sheet.examples.js.map +1 -1
- package/dist/test/studio/component.examples.js +2 -2
- package/dist/test/studio/component.examples.js.map +1 -1
- package/dist/test/studio/page.examples.js +6 -6
- package/dist/test/studio/page.examples.js.map +1 -1
- package/dist/test/studio/studio.examples.d.ts +2329 -873
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +155 -107
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +15 -11
|
@@ -43,8 +43,8 @@ export const OpsRow = StructType({
|
|
|
43
43
|
load: FloatType,
|
|
44
44
|
state: EventStateType,
|
|
45
45
|
});
|
|
46
|
-
/** One hall
|
|
47
|
-
export const OpsHall = DictType(StringType, OpsRow);
|
|
46
|
+
/** One hall — its presses (or the delivery vans), a Dict keyed by id, which its series step down into by field. */
|
|
47
|
+
export const OpsHall = StructType({ presses: DictType(StringType, OpsRow) });
|
|
48
48
|
/**
|
|
49
49
|
* The seeded ops schedule — an `e3.input`'s default IS the dataset's initial
|
|
50
50
|
* value, so this is what a freshly-deployed workspace (and the offline
|
|
@@ -60,80 +60,80 @@ export const OpsHall = DictType(StringType, OpsRow);
|
|
|
60
60
|
* estimated ahead of it.
|
|
61
61
|
*/
|
|
62
62
|
export const opsInput = e3.input('ops', DictType(StringType, OpsHall), variant('value', new Map([
|
|
63
|
-
["Hall 1", new Map([
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
["Hall 2", new Map([
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
["Hall 3", new Map([
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
["Hall 4", new Map([
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
["Hall 5", new Map([
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
63
|
+
["Hall 1", { presses: new Map([
|
|
64
|
+
["H1-P01", { ticket: "J-4603", startWeek: 25n, weeks: 3n, sheets: 96.0, load: 78.0, state: ACTUAL }],
|
|
65
|
+
["H1-P02", { ticket: "J-4612", startWeek: 26n, weeks: 2n, sheets: 64.0, load: 71.0, state: ACTUAL }],
|
|
66
|
+
["H1-P03", { ticket: "J-4642", startWeek: 28n, weeks: 3n, sheets: 112.0, load: 88.0, state: RUNNING }],
|
|
67
|
+
["H1-P04", { ticket: "J-4624", startWeek: 27n, weeks: 4n, sheets: 104.0, load: 84.0, state: RUNNING }],
|
|
68
|
+
["H1-P05", { ticket: "J-4657", startWeek: 31n, weeks: 3n, sheets: 88.0, load: 66.0, state: CONFIRMED }],
|
|
69
|
+
["H1-P06", { ticket: "J-4669", startWeek: 32n, weeks: 2n, sheets: 72.0, load: 59.0, state: CONFIRMED }],
|
|
70
|
+
["H1-P07", { ticket: "J-4693", startWeek: 33n, weeks: 4n, sheets: 120.0, load: 92.0, state: PROPOSED }],
|
|
71
|
+
["H1-P08", { ticket: "J-4708", startWeek: 35n, weeks: 3n, sheets: 96.0, load: 74.0, state: PROPOSED }],
|
|
72
|
+
["H1-P09", { ticket: "J-4726", startWeek: 36n, weeks: 3n, sheets: 80.0, load: 63.0, state: ESTIMATED }],
|
|
73
|
+
["H1-P10", { ticket: "J-4741", startWeek: 37n, weeks: 2n, sheets: 56.0, load: 48.0, state: ESTIMATED }],
|
|
74
|
+
]) }],
|
|
75
|
+
["Hall 2", { presses: new Map([
|
|
76
|
+
["H2-P01", { ticket: "J-4906", startWeek: 25n, weeks: 4n, sheets: 118.0, load: 91.0, state: ACTUAL }],
|
|
77
|
+
["H2-P02", { ticket: "J-4921", startWeek: 27n, weeks: 2n, sheets: 52.0, load: 55.0, state: ACTUAL }],
|
|
78
|
+
["H2-P03", { ticket: "J-4933", startWeek: 29n, weeks: 3n, sheets: 92.0, load: 80.0, state: RUNNING }],
|
|
79
|
+
["H2-P04", { ticket: "J-4948", startWeek: 30n, weeks: 2n, sheets: 68.0, load: 61.0, state: CONFIRMED }],
|
|
80
|
+
["H2-P05", { ticket: "J-4960", startWeek: 31n, weeks: 4n, sheets: 128.0, load: 96.0, state: CONFIRMED }],
|
|
81
|
+
["H2-P06", { ticket: "J-4975", startWeek: 33n, weeks: 3n, sheets: 84.0, load: 69.0, state: PROPOSED }],
|
|
82
|
+
["H2-P07", { ticket: "J-4987", startWeek: 34n, weeks: 2n, sheets: 60.0, load: 52.0, state: PROPOSED }],
|
|
83
|
+
["H2-P08", { ticket: "J-5002", startWeek: 35n, weeks: 4n, sheets: 112.0, load: 87.0, state: PROPOSED }],
|
|
84
|
+
["H2-P09", { ticket: "J-5014", startWeek: 37n, weeks: 3n, sheets: 76.0, load: 64.0, state: ESTIMATED }],
|
|
85
|
+
["H2-P10", { ticket: "J-5029", startWeek: 38n, weeks: 2n, sheets: 48.0, load: 44.0, state: ESTIMATED }],
|
|
86
|
+
]) }],
|
|
87
|
+
["Hall 3", { presses: new Map([
|
|
88
|
+
["H3-P01", { ticket: "J-5203", startWeek: 24n, weeks: 3n, sheets: 88.0, load: 73.0, state: ACTUAL }],
|
|
89
|
+
["H3-P02", { ticket: "J-5215", startWeek: 26n, weeks: 4n, sheets: 124.0, load: 94.0, state: ACTUAL }],
|
|
90
|
+
["H3-P03", { ticket: "J-5230", startWeek: 29n, weeks: 2n, sheets: 56.0, load: 51.0, state: RUNNING }],
|
|
91
|
+
["H3-P04", { ticket: "J-5242", startWeek: 30n, weeks: 3n, sheets: 100.0, load: 82.0, state: RUNNING }],
|
|
92
|
+
["H3-P05", { ticket: "J-5257", startWeek: 32n, weeks: 2n, sheets: 72.0, load: 62.0, state: CONFIRMED }],
|
|
93
|
+
["H3-P06", { ticket: "J-5272", startWeek: 33n, weeks: 4n, sheets: 116.0, load: 90.0, state: CONFIRMED }],
|
|
94
|
+
["H3-P07", { ticket: "J-5284", startWeek: 35n, weeks: 3n, sheets: 92.0, load: 76.0, state: PROPOSED }],
|
|
95
|
+
["H3-P08", { ticket: "J-5299", startWeek: 36n, weeks: 2n, sheets: 64.0, load: 57.0, state: PROPOSED }],
|
|
96
|
+
["H3-P09", { ticket: "J-5311", startWeek: 37n, weeks: 4n, sheets: 108.0, load: 85.0, state: ESTIMATED }],
|
|
97
|
+
["H3-P10", { ticket: "J-5323", startWeek: 39n, weeks: 2n, sheets: 44.0, load: 41.0, state: ESTIMATED }],
|
|
98
|
+
]) }],
|
|
99
|
+
["Hall 4", { presses: new Map([
|
|
100
|
+
["H4-P01", { ticket: "J-5506", startWeek: 25n, weeks: 2n, sheets: 60.0, load: 54.0, state: ACTUAL }],
|
|
101
|
+
["H4-P02", { ticket: "J-5518", startWeek: 27n, weeks: 3n, sheets: 96.0, load: 79.0, state: ACTUAL }],
|
|
102
|
+
["H4-P03", { ticket: "J-5533", startWeek: 28n, weeks: 4n, sheets: 132.0, load: 98.0, state: RUNNING }],
|
|
103
|
+
["H4-P04", { ticket: "J-5545", startWeek: 31n, weeks: 2n, sheets: 68.0, load: 60.0, state: CONFIRMED }],
|
|
104
|
+
["H4-P05", { ticket: "J-5560", startWeek: 32n, weeks: 3n, sheets: 104.0, load: 83.0, state: CONFIRMED }],
|
|
105
|
+
["H4-P06", { ticket: "J-5572", startWeek: 34n, weeks: 2n, sheets: 76.0, load: 67.0, state: PROPOSED }],
|
|
106
|
+
["H4-P07", { ticket: "J-5587", startWeek: 35n, weeks: 4n, sheets: 120.0, load: 93.0, state: PROPOSED }],
|
|
107
|
+
["H4-P08", { ticket: "J-5599", startWeek: 37n, weeks: 3n, sheets: 84.0, load: 70.0, state: ESTIMATED }],
|
|
108
|
+
["H4-P09", { ticket: "J-5614", startWeek: 38n, weeks: 2n, sheets: 52.0, load: 47.0, state: ESTIMATED }],
|
|
109
|
+
["H4-P10", { ticket: "J-5626", startWeek: 39n, weeks: 3n, sheets: 88.0, load: 72.0, state: ESTIMATED }],
|
|
110
|
+
]) }],
|
|
111
|
+
["Hall 5", { presses: new Map([
|
|
112
|
+
["H5-P01", { ticket: "J-5803", startWeek: 24n, weeks: 4n, sheets: 110.0, load: 86.0, state: ACTUAL }],
|
|
113
|
+
["H5-P02", { ticket: "J-5815", startWeek: 26n, weeks: 2n, sheets: 58.0, load: 53.0, state: ACTUAL }],
|
|
114
|
+
["H5-P03", { ticket: "J-5827", startWeek: 28n, weeks: 3n, sheets: 94.0, load: 77.0, state: RUNNING }],
|
|
115
|
+
["H5-P04", { ticket: "J-5839", startWeek: 30n, weeks: 4n, sheets: 126.0, load: 95.0, state: RUNNING }],
|
|
116
|
+
["H5-P05", { ticket: "J-5854", startWeek: 32n, weeks: 2n, sheets: 70.0, load: 61.0, state: CONFIRMED }],
|
|
117
|
+
["H5-P06", { ticket: "J-5866", startWeek: 33n, weeks: 3n, sheets: 98.0, load: 81.0, state: CONFIRMED }],
|
|
118
|
+
["H5-P07", { ticket: "J-5881", startWeek: 35n, weeks: 2n, sheets: 66.0, load: 58.0, state: PROPOSED }],
|
|
119
|
+
["H5-P08", { ticket: "J-5893", startWeek: 36n, weeks: 4n, sheets: 114.0, load: 89.0, state: PROPOSED }],
|
|
120
|
+
["H5-P09", { ticket: "J-5908", startWeek: 38n, weeks: 3n, sheets: 82.0, load: 68.0, state: ESTIMATED }],
|
|
121
|
+
["H5-P10", { ticket: "J-5920", startWeek: 39n, weeks: 2n, sheets: 50.0, load: 45.0, state: ESTIMATED }],
|
|
122
|
+
]) }],
|
|
123
123
|
// The delivery vans — the same flat row, read as weekly load strips
|
|
124
124
|
// rather than run bars (see the `vans` series below).
|
|
125
|
-
["Vans", new Map([
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
125
|
+
["Vans", { presses: new Map([
|
|
126
|
+
["V-01", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 46.0, state: CONFIRMED }],
|
|
127
|
+
["V-02", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 58.0, state: CONFIRMED }],
|
|
128
|
+
["V-03", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 67.0, state: CONFIRMED }],
|
|
129
|
+
["V-04", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 74.0, state: CONFIRMED }],
|
|
130
|
+
["V-05", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 81.0, state: CONFIRMED }],
|
|
131
|
+
["V-06", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 88.0, state: CONFIRMED }],
|
|
132
|
+
["V-07", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 93.0, state: CONFIRMED }],
|
|
133
|
+
["V-08", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 97.0, state: CONFIRMED }],
|
|
134
|
+
["V-09", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 64.0, state: CONFIRMED }],
|
|
135
|
+
["V-10", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 52.0, state: CONFIRMED }],
|
|
136
|
+
]) }],
|
|
137
137
|
])));
|
|
138
138
|
/**
|
|
139
139
|
* A maintenance work order — the row of the `work_orders` record, keyed by
|
|
@@ -156,37 +156,38 @@ export const WorkQueueKey = StructType({ status: StringType, due: DateTimeType }
|
|
|
156
156
|
* workspace holds, and deploy builds its index over it. The ids run in the
|
|
157
157
|
* order the orders were raised, which is nothing like the order they are due.
|
|
158
158
|
*/
|
|
159
|
-
export const workOrders = e3.record('work_orders', DictType(StringType, WorkOrderRow),
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
]
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
159
|
+
export const workOrders = e3.record('work_orders', DictType(StringType, WorkOrderRow), {
|
|
160
|
+
initial: new Map([
|
|
161
|
+
["WO-1001", { site: "North", title: "Replace kiln 2 burner", crew: "Mech A", status: "planned", due: new Date("2026-10-19T00:00:00Z") }],
|
|
162
|
+
["WO-1002", { site: "North", title: "Calibrate belt scale 4", crew: "Inst", status: "late", due: new Date("2026-09-15T00:00:00Z") }],
|
|
163
|
+
["WO-1003", { site: "South", title: "Reline crusher jaw", crew: "Mech B", status: "open", due: new Date("2026-09-25T00:00:00Z") }],
|
|
164
|
+
["WO-1004", { site: "South", title: "Grease stacker bearings", crew: "Mech B", status: "open", due: new Date("2026-09-24T00:00:00Z") }],
|
|
165
|
+
["WO-1005", { site: "Port", title: "Inspect shiploader boom", crew: "Struct", status: "late", due: new Date("2026-09-18T00:00:00Z") }],
|
|
166
|
+
["WO-1006", { site: "North", title: "Swap conveyor 7 idlers", crew: "Mech A", status: "open", due: new Date("2026-09-29T00:00:00Z") }],
|
|
167
|
+
["WO-1007", { site: "Port", title: "Test dust suppression pumps", crew: "Elec", status: "planned", due: new Date("2026-10-06T00:00:00Z") }],
|
|
168
|
+
["WO-1008", { site: "South", title: "Replace screen deck panels", crew: "Mech B", status: "late", due: new Date("2026-09-11T00:00:00Z") }],
|
|
169
|
+
["WO-1009", { site: "North", title: "Thermal scan MCC room", crew: "Elec", status: "open", due: new Date("2026-09-26T00:00:00Z") }],
|
|
170
|
+
["WO-1010", { site: "Port", title: "Rebuild reclaimer gearbox", crew: "Mech A", status: "planned", due: new Date("2026-10-26T00:00:00Z") }],
|
|
171
|
+
["WO-1011", { site: "South", title: "Align apron feeder", crew: "Mech B", status: "open", due: new Date("2026-10-01T00:00:00Z") }],
|
|
172
|
+
["WO-1012", { site: "North", title: "Service compressor 2", crew: "Mech A", status: "late", due: new Date("2026-09-21T00:00:00Z") }],
|
|
173
|
+
["WO-1013", { site: "Port", title: "Weld chute liner", crew: "Struct", status: "open", due: new Date("2026-09-30T00:00:00Z") }],
|
|
174
|
+
["WO-1014", { site: "South", title: "Replace pump 3 impeller", crew: "Mech B", status: "planned", due: new Date("2026-10-09T00:00:00Z") }],
|
|
175
|
+
["WO-1015", { site: "North", title: "Relamp stockpile towers", crew: "Elec", status: "planned", due: new Date("2026-10-13T00:00:00Z") }],
|
|
176
|
+
["WO-1016", { site: "Port", title: "Tension berth 2 belt", crew: "Mech A", status: "open", due: new Date("2026-09-24T00:00:00Z") }],
|
|
177
|
+
["WO-1017", { site: "South", title: "Inspect tailings line", crew: "Struct", status: "late", due: new Date("2026-09-22T00:00:00Z") }],
|
|
178
|
+
["WO-1018", { site: "North", title: "Change kiln 1 seals", crew: "Mech A", status: "planned", due: new Date("2026-11-02T00:00:00Z") }],
|
|
179
|
+
]),
|
|
180
|
+
indexes: (index) => ({
|
|
181
|
+
// The dispatch queue — every work order under `{status, due}`, carrying its
|
|
182
|
+
// title so the queue renders from index pages alone and never reads an
|
|
183
|
+
// order's row.
|
|
184
|
+
by_status: index.key(East.function([StringType, WorkOrderRow], WorkQueueKey, ($, _id, order) => ({ status: order.status, due: order.due })), { value: East.function([StringType, WorkOrderRow], StringType, ($, _id, order) => order.title) }),
|
|
185
|
+
}),
|
|
186
|
+
mutations: (mutation) => ({
|
|
187
|
+
// The work orders' patch door: another session's change to an order commits through it, and moves the queue with it.
|
|
188
|
+
patch: mutation.patch(),
|
|
189
|
+
}),
|
|
187
190
|
});
|
|
188
|
-
/** The work orders' patch door: another session's change to an order commits through it, and moves the queue with it. */
|
|
189
|
-
export const workOrdersPatch = e3.mutation.patch(workOrders);
|
|
190
191
|
export const dataBindFloat = example({
|
|
191
192
|
keywords: ["Data", "bind", "Reactive", "Float", "dataset", "read"],
|
|
192
193
|
description: "Bind to a Float dataset and display its current value",
|
|
@@ -290,7 +291,7 @@ export const dataBindPagedPlan = example({
|
|
|
290
291
|
label: (_h, hall) => hall,
|
|
291
292
|
runs: _l => [],
|
|
292
293
|
rollup: "union",
|
|
293
|
-
children: Plan.children(
|
|
294
|
+
children: Plan.children("presses", [
|
|
294
295
|
// Presses — each flat row becomes TWO bars: a one-week
|
|
295
296
|
// make-ready ahead of the job, then the run itself, with its
|
|
296
297
|
// label and quantity built from the job ticket and sheets
|
|
@@ -326,7 +327,7 @@ export const dataBindPagedPlan = example({
|
|
|
326
327
|
match: (_h, hall) => hall.equal("Vans"),
|
|
327
328
|
label: (_h, hall) => hall,
|
|
328
329
|
collapsed: true, summaryAggregate: "mean",
|
|
329
|
-
children: Plan.children(
|
|
330
|
+
children: Plan.children("presses", [
|
|
330
331
|
Plan.series.heat(OpsRow, {
|
|
331
332
|
key: "van-load", title: "Van load",
|
|
332
333
|
label: (_r, k) => k, id: true,
|
|
@@ -374,14 +375,14 @@ export const dataBindPagedRevision = example({
|
|
|
374
375
|
});
|
|
375
376
|
export const dataBindPagedIndex = example({
|
|
376
377
|
keywords: [
|
|
377
|
-
"Data", "bindPaged", "index", "
|
|
378
|
+
"Data", "bindPaged", "index", "indexes", "record", "secondary index", "queue", "ordered",
|
|
378
379
|
"window", "covering", "projection", "ik", "key", "value", "row", "join", "Table", "paged", "by_status",
|
|
379
380
|
],
|
|
380
|
-
description: "Read a record THROUGH one of its indexes — `Data.bindPaged(workOrders, { index:
|
|
381
|
+
description: "Read a record THROUGH one of its indexes — `Data.bindPaged(workOrders, { index: \"by_status\" })` serves the INDEX's pages in the index's own order, so the dispatch queue arrives late-first and by due date within each status, whatever the work orders' ids are. Each row is `{ ik, key, value, row }`: the index key, the order's id, and the title the index covers — so the Table renders from index pages alone and reads no order's row (`join: true` would fill `row` from the record too)",
|
|
381
382
|
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
382
|
-
//
|
|
383
|
-
//
|
|
384
|
-
const queue = $.let(Data.bindPaged(workOrders, { index:
|
|
383
|
+
// Name one of the record's indexes: the window's type — its key
|
|
384
|
+
// and what it covers — comes from the index's declaration.
|
|
385
|
+
const queue = $.let(Data.bindPaged(workOrders, { index: "by_status" }));
|
|
385
386
|
return _jsx(Table, { data: queue, columns: {
|
|
386
387
|
ik: { header: "Due", value: (ik) => East.str `${ik.status} · ${ik.due.printFormatted("ddd D MMM")}` },
|
|
387
388
|
value: { header: "Work order" },
|
|
@@ -614,7 +615,7 @@ export const countsSaid = East.function([DictType(StringType, IntegerType)], UIC
|
|
|
614
615
|
export const previewCountsView = ui('preview_counts_view', [previewCountsInput], countsSaid);
|
|
615
616
|
/** A ui task over the work orders, their queue read a window at a time beside the commits of their record, which is never read whole. */
|
|
616
617
|
export const previewOrdersView = ui('preview_orders_view', [], East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
617
|
-
const orders = $.let(Data.bindPaged(workOrders, { index:
|
|
618
|
+
const orders = $.let(Data.bindPaged(workOrders, { index: "by_status" }));
|
|
618
619
|
const record = $.let(Record.bind(workOrders, []));
|
|
619
620
|
const commits = $.let(record.history().match({
|
|
620
621
|
some: (_$2, history) => history.size(),
|
|
@@ -631,14 +632,20 @@ export const previewOrdersView = ui('preview_orders_view', [], East.function([],
|
|
|
631
632
|
/** A person and the skills they hold: a Set field, which an index lists once under each skill. */
|
|
632
633
|
export const IndexedPerson = StructType({ name: StringType, skills: SetType(StringType) });
|
|
633
634
|
/** People by key: Ada and Amy share skill `b`, and Abe holds none, so the skills index lists him nowhere. */
|
|
634
|
-
export const indexedPeople = e3.record('indexed_people', DictType(StringType, IndexedPerson),
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
])
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
635
|
+
export const indexedPeople = e3.record('indexed_people', DictType(StringType, IndexedPerson), {
|
|
636
|
+
initial: new Map([
|
|
637
|
+
["p1", { name: "Ada", skills: new Set(["a", "b"]) }],
|
|
638
|
+
["p2", { name: "Abe", skills: new Set() }],
|
|
639
|
+
["p3", { name: "Amy", skills: new Set(["b"]) }],
|
|
640
|
+
]),
|
|
641
|
+
indexes: (index) => ({
|
|
642
|
+
by_name: index.on(["name"]),
|
|
643
|
+
by_skill: index.on(["skills"]),
|
|
644
|
+
}),
|
|
645
|
+
mutations: (mutation) => ({
|
|
646
|
+
patch: mutation.patch(),
|
|
647
|
+
}),
|
|
648
|
+
});
|
|
642
649
|
/** An event of a status over a span of time: no end is an instant, and no start the backlog. */
|
|
643
650
|
export const IntervalEvent = StructType({ status: StringType, start: OptionType(DateTimeType), end: OptionType(DateTimeType) });
|
|
644
651
|
/**
|
|
@@ -647,22 +654,28 @@ export const IntervalEvent = StructType({ status: StringType, start: OptionType(
|
|
|
647
654
|
* it ends, an instant at each of its bounds, one cancelled and one in the
|
|
648
655
|
* backlog — what an overlap with `[2 Oct, 3 Oct)` takes and what it leaves.
|
|
649
656
|
*/
|
|
650
|
-
export const indexedIntervals = e3.record('indexed_intervals', DictType(StringType, IntervalEvent),
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
657
|
+
export const indexedIntervals = e3.record('indexed_intervals', DictType(StringType, IntervalEvent), {
|
|
658
|
+
initial: new Map([
|
|
659
|
+
["backlog", { status: "Ready", start: none, end: none }],
|
|
660
|
+
["carry", { status: "Ready", start: some(new Date("2026-10-01T22:00:00Z")), end: some(new Date("2026-10-02T06:00:00Z")) }],
|
|
661
|
+
["span", { status: "Ready", start: some(new Date("2025-01-01T00:00:00Z")), end: some(new Date("2027-01-01T00:00:00Z")) }],
|
|
662
|
+
["inside", { status: "Ready", start: some(new Date("2026-10-02T10:00:00Z")), end: some(new Date("2026-10-02T11:00:00Z")) }],
|
|
663
|
+
["ends-at-from", { status: "Ready", start: some(new Date("2026-10-01T12:00:00Z")), end: some(new Date("2026-10-02T00:00:00Z")) }],
|
|
664
|
+
["starts-at-to", { status: "Ready", start: some(new Date("2026-10-03T00:00:00Z")), end: some(new Date("2026-10-03T01:00:00Z")) }],
|
|
665
|
+
["instant-at-from", { status: "Ready", start: some(new Date("2026-10-02T00:00:00Z")), end: none }],
|
|
666
|
+
["instant-at-to", { status: "Ready", start: some(new Date("2026-10-03T00:00:00Z")), end: none }],
|
|
667
|
+
["cancelled", { status: "Cancelled", start: some(new Date("2026-01-01T00:00:00Z")), end: some(new Date("2027-01-01T00:00:00Z")) }],
|
|
668
|
+
]),
|
|
669
|
+
indexes: (index) => ({
|
|
670
|
+
// The start alone is listed first: a declared overlap must never be read as a start range because its index came first.
|
|
671
|
+
by_start: index.on(["start"]),
|
|
672
|
+
by_status_time: index.interval({ on: ["status"], from: "start", to: "end" }),
|
|
673
|
+
by_time: index.interval({ from: "start", to: "end" }),
|
|
674
|
+
}),
|
|
675
|
+
mutations: (mutation) => ({
|
|
676
|
+
patch: mutation.patch(),
|
|
677
|
+
}),
|
|
678
|
+
});
|
|
666
679
|
/** A rack on a data centre floor, in metres: its hall, where it stands — by its centre — if anywhere yet, and its footprint. */
|
|
667
680
|
export const IndexedRack = StructType({ hall: StringType, x: OptionType(FloatType), y: OptionType(FloatType), w: FloatType, h: FloatType });
|
|
668
681
|
/**
|
|
@@ -670,19 +683,60 @@ export const IndexedRack = StructType({ hall: StringType, x: OptionType(FloatTyp
|
|
|
670
683
|
* aisle, one in hall B far down the floor, and one in hall A not yet placed —
|
|
671
684
|
* what a window over the row takes, what its margin takes, and what it leaves.
|
|
672
685
|
*/
|
|
673
|
-
export const indexedRacks = e3.record('indexed_racks', DictType(StringType, IndexedRack),
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
]
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
+
export const indexedRacks = e3.record('indexed_racks', DictType(StringType, IndexedRack), {
|
|
687
|
+
initial: new Map([
|
|
688
|
+
["r1", { hall: "A", x: some(1.0), y: some(1.0), w: 0.6, h: 1.2 }],
|
|
689
|
+
["r2", { hall: "A", x: some(2.0), y: some(1.0), w: 0.6, h: 1.2 }],
|
|
690
|
+
["r3", { hall: "A", x: some(3.0), y: some(1.0), w: 0.6, h: 1.2 }],
|
|
691
|
+
["r4", { hall: "B", x: some(2.0), y: some(3.5), w: 0.6, h: 1.2 }],
|
|
692
|
+
["far", { hall: "B", x: some(40.0), y: some(40.0), w: 0.6, h: 1.2 }],
|
|
693
|
+
["unplaced", { hall: "A", x: none, y: none, w: 0.6, h: 1.2 }],
|
|
694
|
+
]),
|
|
695
|
+
indexes: (index) => ({
|
|
696
|
+
// The window whatever the rail chooses, and beside it a choice of halls and the window in one read; both carry their rows.
|
|
697
|
+
racks_by_area: index.area({ x: "x", y: "y", width: "w", height: "h", at: "centre", cell: 0.01 }),
|
|
698
|
+
racks_by_hall_area: index.area({ on: ["hall"], x: "x", y: "y", width: "w", height: "h", at: "centre", cell: 0.01 }),
|
|
699
|
+
racks_by_hall: index.on(["hall"]),
|
|
700
|
+
}),
|
|
701
|
+
mutations: (mutation) => ({
|
|
702
|
+
patch: mutation.patch(),
|
|
703
|
+
}),
|
|
704
|
+
});
|
|
705
|
+
/**
|
|
706
|
+
* A rack whose fields are named as e3's own parts of a generated key once were
|
|
707
|
+
* (#1432): `area`, `__area`, `tile` and `__tile`. No name is reserved — e3's
|
|
708
|
+
* parts are its index's kind's — so each is a field of the rail like any
|
|
709
|
+
* other, and an area index may be led by them.
|
|
710
|
+
*/
|
|
711
|
+
export const NamedRack = StructType({
|
|
712
|
+
area: StringType, __area: StringType, tile: StringType, __tile: StringType, x: OptionType(FloatType), y: OptionType(FloatType),
|
|
713
|
+
});
|
|
714
|
+
/**
|
|
715
|
+
* Five racks: two in area A1 by B — one inside the window over the floor's
|
|
716
|
+
* corner, one far down it — one by C and one in A2 inside it, and one in A1 by
|
|
717
|
+
* B not yet placed.
|
|
718
|
+
*/
|
|
719
|
+
export const namedRacks = e3.record('named_racks', DictType(StringType, NamedRack), {
|
|
720
|
+
initial: new Map([
|
|
721
|
+
["n1", { area: "A1", __area: "B", tile: "T1", __tile: "U1", x: some(1.0), y: some(1.0) }],
|
|
722
|
+
["n2", { area: "A1", __area: "B", tile: "T2", __tile: "U1", x: some(100.0), y: some(100.0) }],
|
|
723
|
+
["n3", { area: "A1", __area: "C", tile: "T1", __tile: "U2", x: some(1.5), y: some(1.5) }],
|
|
724
|
+
["n4", { area: "A2", __area: "B", tile: "T1", __tile: "U2", x: some(2.0), y: some(2.0) }],
|
|
725
|
+
["unplaced", { area: "A1", __area: "B", tile: "T2", __tile: "U1", x: none, y: none }],
|
|
726
|
+
]),
|
|
727
|
+
indexes: (index) => ({
|
|
728
|
+
// Each field leads a plain index; the window is read whatever the rail chooses, or beside a choice of `area` and `__area`.
|
|
729
|
+
named_by_area: index.on(["area"]),
|
|
730
|
+
named_by_under_area: index.on(["__area"]),
|
|
731
|
+
named_by_tile: index.on(["tile"]),
|
|
732
|
+
named_by_under_tile: index.on(["__tile"]),
|
|
733
|
+
named_by_place: index.area({ x: "x", y: "y", cell: 1 }),
|
|
734
|
+
named_by_area_place: index.area({ on: ["area", "__area"], x: "x", y: "y", cell: 1 }),
|
|
735
|
+
}),
|
|
736
|
+
mutations: (mutation) => ({
|
|
737
|
+
patch: mutation.patch(),
|
|
738
|
+
}),
|
|
739
|
+
});
|
|
686
740
|
/** A rack's load: what its card's figure and its dot draw. */
|
|
687
741
|
export const IndexedRackLoad = StructType({ kw: FloatType, alarm: StringType });
|
|
688
742
|
/**
|
|
@@ -692,14 +746,18 @@ export const IndexedRackLoad = StructType({ kw: FloatType, alarm: StringType });
|
|
|
692
746
|
* racks read their details by, through the runs the area index files them in
|
|
693
747
|
* (#1393).
|
|
694
748
|
*/
|
|
695
|
-
export const indexedRackLoads = e3.record('indexed_rack_loads', DictType(StringType, IndexedRackLoad),
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
]
|
|
702
|
-
|
|
749
|
+
export const indexedRackLoads = e3.record('indexed_rack_loads', DictType(StringType, IndexedRackLoad), {
|
|
750
|
+
initial: new Map([
|
|
751
|
+
["far", { kw: 1.0, alarm: "ok" }],
|
|
752
|
+
["gone", { kw: 2.0, alarm: "ok" }],
|
|
753
|
+
["r1", { kw: 4.2, alarm: "ok" }],
|
|
754
|
+
["r2", { kw: 9.9, alarm: "warm" }],
|
|
755
|
+
["r4", { kw: 11.1, alarm: "hot" }],
|
|
756
|
+
]),
|
|
757
|
+
mutations: (mutation) => ({
|
|
758
|
+
patch: mutation.patch(),
|
|
759
|
+
}),
|
|
760
|
+
});
|
|
703
761
|
/** A print job: the press it runs on, if any yet, its state, and when it runs, if it is scheduled. */
|
|
704
762
|
export const IndexedJob = StructType({ press: OptionType(StringType), state: StringType, start: OptionType(DateTimeType), end: OptionType(DateTimeType) });
|
|
705
763
|
/**
|
|
@@ -709,57 +767,55 @@ export const IndexedJob = StructType({ press: OptionType(StringType), state: Str
|
|
|
709
767
|
* one in the backlog — what a cell of some presses in a week holds, and what a
|
|
710
768
|
* month's totals count (#1039).
|
|
711
769
|
*/
|
|
712
|
-
export const indexedJobs = e3.record('indexed_jobs', DictType(StringType, IndexedJob),
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
]
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
// a
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
770
|
+
export const indexedJobs = e3.record('indexed_jobs', DictType(StringType, IndexedJob), {
|
|
771
|
+
initial: new Map([
|
|
772
|
+
["carry", { press: some("P-1"), state: "running", start: some(new Date("2026-10-02T20:00:00Z")), end: some(new Date("2026-10-05T04:00:00Z")) }],
|
|
773
|
+
["across", { press: some("P-1"), state: "planned", start: some(new Date("2026-10-11T18:00:00Z")), end: some(new Date("2026-10-12T06:00:00Z")) }],
|
|
774
|
+
["month", { press: some("P-2"), state: "planned", start: some(new Date("2026-10-01T00:00:00Z")), end: some(new Date("2026-11-01T00:00:00Z")) }],
|
|
775
|
+
["inside", { press: some("P-2"), state: "running", start: some(new Date("2026-10-06T08:00:00Z")), end: some(new Date("2026-10-06T16:00:00Z")) }],
|
|
776
|
+
["late", { press: some("P-3"), state: "late", start: some(new Date("2026-10-07T09:00:00Z")), end: some(new Date("2026-10-07T12:00:00Z")) }],
|
|
777
|
+
["instant", { press: some("P-3"), state: "late", start: some(new Date("2026-10-05T00:00:00Z")), end: none }],
|
|
778
|
+
["unpressed", { press: none, state: "planned", start: some(new Date("2026-10-06T00:00:00Z")), end: some(new Date("2026-10-06T02:00:00Z")) }],
|
|
779
|
+
["backlog", { press: some("P-1"), state: "planned", start: none, end: none }],
|
|
780
|
+
]),
|
|
781
|
+
indexes: (index) => ({
|
|
782
|
+
// The jobs a window overlaps, by state or not; their cells, some presses in a week, by state or not; and their totals,
|
|
783
|
+
// a press in a month.
|
|
784
|
+
jobs_by_time: index.interval({ from: "start", to: "end" }),
|
|
785
|
+
jobs_by_state_time: index.interval({ on: ["state"], from: "start", to: "end" }),
|
|
786
|
+
jobs_by_press_week: index.series({ key: "press", from: "start", to: "end", tile: "week" }),
|
|
787
|
+
jobs_by_state_press_week: index.series({ on: ["state"], key: "press", from: "start", to: "end", tile: "week" }),
|
|
788
|
+
jobs_by_press_month: index.summary({ key: "press", from: "start", to: "end", tile: "month" }),
|
|
789
|
+
}),
|
|
790
|
+
mutations: (mutation) => ({
|
|
791
|
+
patch: mutation.patch(),
|
|
792
|
+
}),
|
|
793
|
+
});
|
|
730
794
|
/** A step of a flow: its lane, and who owns it, if anyone. */
|
|
731
795
|
export const ComputedStep = StructType({ lane: StringType, owner: OptionType(StringType) });
|
|
732
796
|
/** A flow: what it is, and its steps. */
|
|
733
797
|
export const ComputedFlow = StructType({ description: StringType, states: ArrayType(ComputedStep) });
|
|
734
798
|
/** Flows whose indexes are computed from their steps: `a` has two steps in one lane, `c` a step no one owns, and `d` none at all. */
|
|
735
|
-
export const computedFlows = e3.record('computed_flows', DictType(StringType, ComputedFlow),
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
]
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
})
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
export const computedByLabel = e3.recordIndex('label', computedFlows, {
|
|
757
|
-
key: East.function([StringType, ComputedFlow], StringType, (_$, _id, flow) => flow.description),
|
|
758
|
-
});
|
|
759
|
-
export const computedBySize = e3.recordIndex('size', computedFlows, {
|
|
760
|
-
key: East.function([StringType, ComputedFlow], IntegerType, (_$, _id, flow) => flow.states.size()),
|
|
761
|
-
});
|
|
762
|
-
export const computedByDecisionOwner = e3.recordIndex('decisionOwner', computedFlows, {
|
|
763
|
-
keys: East.function([StringType, ComputedFlow], SetType(OptionType(StringType)), (_$, _id, flow) => flow.states.toSet((_$2, state) => state.owner)),
|
|
799
|
+
export const computedFlows = e3.record('computed_flows', DictType(StringType, ComputedFlow), {
|
|
800
|
+
initial: new Map([
|
|
801
|
+
["a", { description: "Inbound", states: [{ lane: "load", owner: some("team-a") }, { lane: "load", owner: some("team-a") }, { lane: "review", owner: none }] }],
|
|
802
|
+
["b", { description: "Inbound", states: [{ lane: "load", owner: some("team-b") }] }],
|
|
803
|
+
["c", { description: "Returns", states: [{ lane: "review", owner: none }] }],
|
|
804
|
+
["d", { description: "Empty", states: [] }],
|
|
805
|
+
]),
|
|
806
|
+
indexes: (index) => ({
|
|
807
|
+
description: index.on(["description"]),
|
|
808
|
+
state_count: index.key(East.function([StringType, ComputedFlow], StructType({ stateCount: IntegerType }), (_$, _id, flow) => ({ stateCount: flow.states.size() }))),
|
|
809
|
+
description_count: index.key(East.function([StringType, ComputedFlow], StructType({ description: StringType, stateCount: IntegerType }), (_$, _id, flow) => ({ description: flow.description, stateCount: flow.states.size() }))),
|
|
810
|
+
lane: index.keys(East.function([StringType, ComputedFlow], SetType(StructType({ lane: StringType })), (_$, _id, flow) => flow.states.toSet((_$2, state) => ({ lane: state.lane })))),
|
|
811
|
+
owner: index.keys(East.function([StringType, ComputedFlow], SetType(StructType({ owner: OptionType(StringType) })), (_$, _id, flow) => flow.states.toSet((_$2, state) => ({ owner: state.owner })))),
|
|
812
|
+
// Scalar computed keys, each a field by its index's name.
|
|
813
|
+
label: index.key(East.function([StringType, ComputedFlow], StringType, (_$, _id, flow) => flow.description)),
|
|
814
|
+
size: index.key(East.function([StringType, ComputedFlow], IntegerType, (_$, _id, flow) => flow.states.size())),
|
|
815
|
+
decisionOwner: index.keys(East.function([StringType, ComputedFlow], SetType(OptionType(StringType)), (_$, _id, flow) => flow.states.toSet((_$2, state) => state.owner))),
|
|
816
|
+
}),
|
|
817
|
+
mutations: (mutation) => ({
|
|
818
|
+
patch: mutation.patch(),
|
|
819
|
+
}),
|
|
764
820
|
});
|
|
765
821
|
//# sourceMappingURL=data.examples.js.map
|