@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roster.examples.d.ts","sourceRoot":"","sources":["../../../test/roster/roster.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EACH,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAa,UAAU,EAAE,UAAU,EAC9H,OAAO,EAC/B,MAAM,eAAe,CAAC;AAWvB,OAAO,EACH,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,cAAc,EAAE,aAAa,GACnJ,MAAM,gBAAgB,CAAC;AAMxB,6DAA6D;AAC7D,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"roster.examples.d.ts","sourceRoot":"","sources":["../../../test/roster/roster.examples.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM3B,CAAC;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMtB,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAM1B,CAAC;AACH,oFAA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"}
|
|
@@ -6,7 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
|
|
|
6
6
|
/** @jsxImportSource @elaraai/e3-ui */
|
|
7
7
|
import { ArrayType, BooleanType, DateTimeType, DictType, East, FloatType, FunctionType, IntegerType, NullType, OptionType, PatchType, StringType, StructType, example, none, some, variant, } from "@elaraai/east";
|
|
8
8
|
import e3 from "@elaraai/e3";
|
|
9
|
-
import { Box, Field, Reactive, Slice, UIComponentType, VStack } from "@elaraai/east-ui";
|
|
9
|
+
import { Box, Button, Field, HStack, Reactive, Slice, Text, UIComponentType, VStack } from "@elaraai/east-ui";
|
|
10
10
|
import { Data, Func, Record, Roster, Schedule } from "@elaraai/e3-ui";
|
|
11
11
|
import { WarehouseActivity, WarehouseAgency, WarehouseCover, WarehouseDuty, WarehousePattern, WarehousePerson, WarehousePosition, WarehouseShift, WarehouseSuggestion, WarehouseTeam, WarehouseWeek, warehouseActivities, warehouseAgencies, warehouseCover, warehouseDuties, warehousePatterns, warehousePayRates, warehousePeople, warehousePositions, warehouseShifts, warehouseSuggestions, warehouseTeams, warehouseWeeks, } from "./warehouse.js";
|
|
12
12
|
// The warehouse's row types, and its seeded weeks as the Roster reads them, for the renderer's specs on e3 (#1368).
|
|
@@ -15,39 +15,95 @@ export { WarehouseCover, WarehouseDuty, WarehouseRosterWeek, warehouseNextStart,
|
|
|
15
15
|
// targets, which the Roster writes, each through its patch door; and what it reads — its suggestions, its pay rates,
|
|
16
16
|
// its staff and agencies, and its shift times, teams, positions and activities.
|
|
17
17
|
/** The duties, both weeks', each the warehouse's own row. */
|
|
18
|
-
export const rosterDuties = e3.record("roster_duties", DictType(StringType, WarehouseDuty),
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
export const rosterDuties = e3.record("roster_duties", DictType(StringType, WarehouseDuty), {
|
|
19
|
+
initial: warehouseDuties,
|
|
20
|
+
indexes: (index) => ({
|
|
21
|
+
// The duties by their times: what the Roster's slice reads a week of them through, its navigation writing the range.
|
|
22
|
+
roster_duties_by_time: index.interval({ from: "start", to: "end" }),
|
|
23
|
+
}),
|
|
24
|
+
mutations: (mutation) => ({
|
|
25
|
+
patch: mutation.patch(),
|
|
26
|
+
}),
|
|
27
|
+
});
|
|
22
28
|
/** The weeks of the rota: the one before issued, this one open. */
|
|
23
|
-
export const rosterWeeks = e3.record("roster_rota_weeks", DictType(DateTimeType, WarehouseWeek),
|
|
24
|
-
|
|
29
|
+
export const rosterWeeks = e3.record("roster_rota_weeks", DictType(DateTimeType, WarehouseWeek), {
|
|
30
|
+
initial: warehouseWeeks,
|
|
31
|
+
mutations: (mutation) => ({
|
|
32
|
+
patch: mutation.patch(),
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
25
35
|
/** The cover targets, a row per slot: the week before's, this week's and the forecast's for the week after. */
|
|
26
|
-
export const rosterCover = e3.record("roster_cover", DictType(StringType, WarehouseCover),
|
|
27
|
-
|
|
36
|
+
export const rosterCover = e3.record("roster_cover", DictType(StringType, WarehouseCover), {
|
|
37
|
+
initial: warehouseCover,
|
|
38
|
+
mutations: (mutation) => ({
|
|
39
|
+
patch: mutation.patch(),
|
|
40
|
+
}),
|
|
41
|
+
});
|
|
28
42
|
/** The suggestions: someone for a slot, and why. */
|
|
29
|
-
export const rosterSuggestions = e3.record("roster_suggestions", DictType(StringType, WarehouseSuggestion),
|
|
43
|
+
export const rosterSuggestions = e3.record("roster_suggestions", DictType(StringType, WarehouseSuggestion), {
|
|
44
|
+
initial: warehouseSuggestions,
|
|
45
|
+
mutations: (mutation) => ({
|
|
46
|
+
// The suggestions' patch door: another session's edit of them.
|
|
47
|
+
patch: mutation.patch(),
|
|
48
|
+
}),
|
|
49
|
+
});
|
|
30
50
|
/** The pay rates, an hour, by the warehouse's own pay codes. */
|
|
31
|
-
export const rosterPayRates = e3.record("roster_pay_rates", DictType(StringType, FloatType), warehousePayRates);
|
|
32
|
-
export const rosterStaff = e3.record("roster_staff", DictType(StringType, WarehousePerson),
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
export const rosterPayRates = e3.record("roster_pay_rates", DictType(StringType, FloatType), { initial: warehousePayRates });
|
|
52
|
+
export const rosterStaff = e3.record("roster_staff", DictType(StringType, WarehousePerson), {
|
|
53
|
+
initial: warehousePeople,
|
|
54
|
+
indexes: (index) => ({
|
|
55
|
+
// The rail's fields, each on an index of its own: the staff by group then name, position, trainer, agency, skill and name, the activities by group.
|
|
56
|
+
roster_staff_by_team_name: index.on(["team", "name"]),
|
|
57
|
+
roster_staff_by_position: index.on(["position"]),
|
|
58
|
+
roster_staff_by_trainer: index.on(["trainer"]),
|
|
59
|
+
roster_staff_by_agency: index.on(["agency"]),
|
|
60
|
+
roster_staff_by_skill: index.on(["skills"]),
|
|
61
|
+
roster_staff_by_name: index.on(["name"]),
|
|
62
|
+
}),
|
|
63
|
+
mutations: (mutation) => ({
|
|
64
|
+
// What the renderer's tests on e3 write and ask beside the examples (#1376): another session's edits of the
|
|
65
|
+
// reference data, a roster the warehouse has locked, and another app's fit over the same staff.
|
|
66
|
+
// The staff's patch door: another session's edit of the staff.
|
|
67
|
+
patch: mutation.patch(),
|
|
68
|
+
}),
|
|
69
|
+
});
|
|
70
|
+
export const rosterAgencies = e3.record("roster_agencies", DictType(StringType, WarehouseAgency), { initial: warehouseAgencies });
|
|
71
|
+
export const rosterShiftTimes = e3.record("roster_shift_times", DictType(StringType, WarehouseShift), {
|
|
72
|
+
initial: warehouseShifts,
|
|
73
|
+
mutations: (mutation) => ({
|
|
74
|
+
// The shift times' patch door: another session's edit of them.
|
|
75
|
+
patch: mutation.patch(),
|
|
76
|
+
}),
|
|
77
|
+
});
|
|
78
|
+
export const rosterTeams = e3.record("roster_teams", DictType(StringType, WarehouseTeam), {
|
|
79
|
+
initial: warehouseTeams,
|
|
80
|
+
mutations: (mutation) => ({
|
|
81
|
+
// The teams' patch door: another session's edit of them.
|
|
82
|
+
patch: mutation.patch(),
|
|
83
|
+
}),
|
|
84
|
+
});
|
|
85
|
+
export const rosterPositions = e3.record("roster_positions", DictType(StringType, WarehousePosition), {
|
|
86
|
+
initial: warehousePositions,
|
|
87
|
+
mutations: (mutation) => ({
|
|
88
|
+
// The positions' patch door: another session's edit of them.
|
|
89
|
+
patch: mutation.patch(),
|
|
90
|
+
}),
|
|
91
|
+
});
|
|
37
92
|
/** Every activity by its key: each group's skills, and the duty of none (#1342). */
|
|
38
|
-
export const rosterActivities = e3.record("roster_activities", DictType(StringType, WarehouseActivity),
|
|
93
|
+
export const rosterActivities = e3.record("roster_activities", DictType(StringType, WarehouseActivity), {
|
|
94
|
+
initial: warehouseActivities,
|
|
95
|
+
indexes: (index) => ({
|
|
96
|
+
roster_activities_by_group: index.on(["group"]),
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
39
99
|
/** The week patterns (#1406): the thirteen a planner drops on a person's week, the warehouse's own record. */
|
|
40
|
-
export const rosterPatterns = e3.record("roster_week_patterns", DictType(StringType, WarehousePattern),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
// The
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
export const rosterStaffByAgency = e3.recordIndex("roster_staff_by_agency", rosterStaff, { on: ["agency"] });
|
|
48
|
-
export const rosterStaffBySkill = e3.recordIndex("roster_staff_by_skill", rosterStaff, { on: ["skills"] });
|
|
49
|
-
export const rosterStaffByName = e3.recordIndex("roster_staff_by_name", rosterStaff, { on: ["name"] });
|
|
50
|
-
export const rosterActivitiesByGroup = e3.recordIndex("roster_activities_by_group", rosterActivities, { on: ["group"] });
|
|
100
|
+
export const rosterPatterns = e3.record("roster_week_patterns", DictType(StringType, WarehousePattern), {
|
|
101
|
+
initial: warehousePatterns,
|
|
102
|
+
mutations: (mutation) => ({
|
|
103
|
+
// The week patterns' patch door: another session's edit of them.
|
|
104
|
+
patch: mutation.patch(),
|
|
105
|
+
}),
|
|
106
|
+
});
|
|
51
107
|
/** The warehouse's fit's body: the ready-made rule, then a greedy order — the people off that day with the most spare contract hours first, whatever their group. */
|
|
52
108
|
export const rosterStaffFitBody = East.function([Roster.Types.FitRequest(WarehouseDuty)], Roster.Types.FitResult, ($, req) => {
|
|
53
109
|
const answer = $.const(Roster.answer(WarehouseDuty));
|
|
@@ -64,27 +120,21 @@ export const rosterStaffFitBody = East.function([Roster.Types.FitRequest(Warehou
|
|
|
64
120
|
});
|
|
65
121
|
// The warehouse's fit, on e3: who fits a Find fix's need on its slot.
|
|
66
122
|
export const rosterStaffFit = e3.function("roster_staff_fit", rosterStaffFitBody);
|
|
67
|
-
// What the renderer's tests on e3 write and ask beside the examples (#1376): another session's edits of the
|
|
68
|
-
// reference data, a roster the warehouse has locked, and another app's fit over the same staff.
|
|
69
|
-
/** The staff's patch door: another session's edit of the staff. */
|
|
70
|
-
export const rosterStaffPatch = e3.mutation.patch(rosterStaff);
|
|
71
|
-
/** The shift times' patch door: another session's edit of them. */
|
|
72
|
-
export const rosterShiftTimesPatch = e3.mutation.patch(rosterShiftTimes);
|
|
73
|
-
/** The teams' patch door: another session's edit of them. */
|
|
74
|
-
export const rosterTeamsPatch = e3.mutation.patch(rosterTeams);
|
|
75
|
-
/** The positions' patch door: another session's edit of them. */
|
|
76
|
-
export const rosterPositionsPatch = e3.mutation.patch(rosterPositions);
|
|
77
|
-
/** The suggestions' patch door: another session's edit of them. */
|
|
78
|
-
export const rosterSuggestionsPatch = e3.mutation.patch(rosterSuggestions);
|
|
79
123
|
/** The duties of a roster the warehouse has locked: the warehouse's own duties, which no Save changes. */
|
|
80
|
-
export const rosterLockedDuties = e3.record("roster_locked_duties", DictType(StringType, WarehouseDuty),
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
124
|
+
export const rosterLockedDuties = e3.record("roster_locked_duties", DictType(StringType, WarehouseDuty), {
|
|
125
|
+
initial: warehouseDuties,
|
|
126
|
+
indexes: (index) => ({
|
|
127
|
+
// The locked duties by their times: what a roster over them reads a week of them through.
|
|
128
|
+
roster_locked_duties_by_time: index.interval({ from: "start", to: "end" }),
|
|
129
|
+
}),
|
|
130
|
+
mutations: (mutation) => ({
|
|
131
|
+
// The locked roster's door, a checked one: it refuses every change, naming why — what a Save over it is answered.
|
|
132
|
+
patch: mutation.reduce(East.function([DictType(StringType, WarehouseDuty), PatchType(DictType(StringType, WarehouseDuty))], DictType(StringType, WarehouseDuty), ($, duties, _patch) => {
|
|
133
|
+
$.error("the roster is locked for the week");
|
|
134
|
+
return duties;
|
|
135
|
+
})),
|
|
136
|
+
}),
|
|
137
|
+
});
|
|
88
138
|
/**
|
|
89
139
|
* Another app's fit over the same staff: the warehouse's order — the most spare contract hours first, whatever
|
|
90
140
|
* their group — and a warning on whoever the slot's shift would take past their contract.
|
|
@@ -113,16 +163,16 @@ export const rosterWarehouse = example({
|
|
|
113
163
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Roster.shifts", "Roster.groups", "Roster.positions", "Roster.activities", "Roster.proposals", "pay", "check", "Slice", "Slice.bindRecords", "Data.bindPaged", "Func.bind", "e3.function", "fit", "Find", "BuilderFrame", "Save", "Publish", "FieldForm"],
|
|
114
164
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
115
165
|
// What the Roster writes: the duties, the weeks of the rota and the cover targets, each through its patch door.
|
|
116
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
166
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
117
167
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
118
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
119
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
120
|
-
const cover = $.let(Record.bind(rosterCover
|
|
168
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
169
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
170
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
121
171
|
// Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
|
|
122
172
|
const people = $.let(Data.bind(rosterStaff));
|
|
123
173
|
const acts = $.let(Data.bind(rosterActivities));
|
|
124
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
125
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
174
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
175
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
126
176
|
const slice = $.let(Slice.bindRecords("ex.rosterWarehouse", {
|
|
127
177
|
// The week's duties: the Roster's navigation writes the range; no chip picks the week.
|
|
128
178
|
duty: { source: byTime, range: "start" },
|
|
@@ -211,16 +261,16 @@ export const rosterMobile = example({
|
|
|
211
261
|
inputs: [], description: "The warehouse roster in a phone-width container: explicit Assign, Move, Edit, Remove, Restore, Request, Accept, Reject and target actions over the warehouse's own records. The same session survives resizing; mobile cards register no drag sources or targets.",
|
|
212
262
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "mobile", "Save", "Publish", "FieldForm"],
|
|
213
263
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
214
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
264
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
215
265
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
216
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
217
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
218
|
-
const cover = $.let(Record.bind(rosterCover
|
|
266
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
267
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
268
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
219
269
|
// Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
|
|
220
270
|
const people = $.let(Data.bind(rosterStaff));
|
|
221
271
|
const acts = $.let(Data.bind(rosterActivities));
|
|
222
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
223
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
272
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
273
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
224
274
|
const slice = $.let(Slice.bindRecords("ex.rosterMobile", {
|
|
225
275
|
duty: { source: byTime, range: "start" },
|
|
226
276
|
people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
|
|
@@ -253,16 +303,16 @@ export const rosterPeople = example({
|
|
|
253
303
|
inputs: [], description: "The People layout by week over the same records (#1406): a row per person under their group's band, a tile per duty in each day cell in the shift's colour token — its hours only where a duty's own times differ (tileTimes=\"different\") — the week's hours and a meter in the name cell, `+ Assign` on an off day opening a menu of the home group's shifts, and the warehouse's week patterns in a Patterns tab, each dropped on a person's week as one undo step; the agency's requests their own row.",
|
|
254
304
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Roster.shifts", "color", "ColorToken", "Roster.patterns", "Roster.library.patterns", "tileTimes", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "people", "week", "Save", "Publish", "FieldForm"],
|
|
255
305
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
256
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
306
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
257
307
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
258
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
259
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
260
|
-
const cover = $.let(Record.bind(rosterCover
|
|
308
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
309
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
310
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
261
311
|
// Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
|
|
262
312
|
const people = $.let(Data.bind(rosterStaff));
|
|
263
313
|
const acts = $.let(Data.bind(rosterActivities));
|
|
264
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
265
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
314
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
315
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
266
316
|
const slice = $.let(Slice.bindRecords("ex.rosterPeople", {
|
|
267
317
|
duty: { source: byTime, range: "start" },
|
|
268
318
|
people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
|
|
@@ -299,15 +349,15 @@ export const rosterPeopleMonth = example({
|
|
|
299
349
|
inputs: [], description: "The People layout by month (#1406): a column per week touching the month, four to six, each cell seven marks in the shifts' colours lettered where a day is wide enough; a column's header opens its week, a cell's click selects the person-week the inspector's Details then read, and a pattern dropped on a cell replaces that week as one undo step. Week · Month in the Period segment; ‹ › step a month.",
|
|
300
350
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.shifts", "color", "ColorToken", "Roster.patterns", "Roster.library.patterns", "letters", "month", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "people", "Save", "Publish"],
|
|
301
351
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
302
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
352
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
303
353
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
304
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
305
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
306
|
-
const cover = $.let(Record.bind(rosterCover
|
|
354
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
355
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
356
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
307
357
|
const people = $.let(Data.bind(rosterStaff));
|
|
308
358
|
const acts = $.let(Data.bind(rosterActivities));
|
|
309
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
310
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
359
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
360
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
311
361
|
const slice = $.let(Slice.bindRecords("ex.rosterPeopleMonth", {
|
|
312
362
|
duty: { source: byTime, range: "start" },
|
|
313
363
|
people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
|
|
@@ -338,16 +388,16 @@ export const rosterWeek = example({
|
|
|
338
388
|
inputs: [], description: "Seven days of group-by-shift coverage over the warehouse's own records, opening any day for detailed staffing.",
|
|
339
389
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "week", "Save", "Publish", "FieldForm"],
|
|
340
390
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
341
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
391
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
342
392
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
343
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
344
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
345
|
-
const cover = $.let(Record.bind(rosterCover
|
|
393
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
394
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
395
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
346
396
|
// Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
|
|
347
397
|
const people = $.let(Data.bind(rosterStaff));
|
|
348
398
|
const acts = $.let(Data.bind(rosterActivities));
|
|
349
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
350
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
399
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
400
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
351
401
|
const slice = $.let(Slice.bindRecords("ex.rosterWeek", {
|
|
352
402
|
duty: { source: byTime, range: "start" },
|
|
353
403
|
people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
|
|
@@ -378,15 +428,15 @@ export const rosterWeek = example({
|
|
|
378
428
|
});
|
|
379
429
|
export const rosterWindowed = example({
|
|
380
430
|
inputs: [], description: "The duties read a week at a time through the slice's duty source — an interval index over their times, its range the Roster's own navigation — and the rota's weeks by key: only the week, the week before it (Copy's source) and the open picker's month are requested, never a record whole.",
|
|
381
|
-
keywords: ["Roster", "Schedule.events", "Schedule.periods", "Slice.bindRecords", "Data.bindPaged", "
|
|
431
|
+
keywords: ["Roster", "Schedule.events", "Schedule.periods", "Slice.bindRecords", "Data.bindPaged", "indexes", "interval", "history", "BuilderFrame", "Save", "Publish"],
|
|
382
432
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
383
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
433
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
384
434
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
385
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
435
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
386
436
|
// The weeks of the rota read by key: the week, the week before it and the open picker's month.
|
|
387
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
437
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
388
438
|
const weekEntries = $.let(Data.bindPaged(rosterWeeks));
|
|
389
|
-
const cover = $.let(Record.bind(rosterCover
|
|
439
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
390
440
|
const people = $.let(Data.bind(rosterStaff));
|
|
391
441
|
const acts = $.let(Data.bind(rosterActivities));
|
|
392
442
|
// One source: the week's duties, its range the Roster's navigation.
|
|
@@ -421,28 +471,38 @@ export const MinimalWorker = StructType({ name: StringType, team: StringType });
|
|
|
421
471
|
export const MinimalShiftTime = StructType({ name: StringType, code: StringType, starts: Schedule.Types.Clock, hours: FloatType, order: IntegerType });
|
|
422
472
|
/** One of its teams: a name. */
|
|
423
473
|
export const MinimalTeam = StructType({ name: StringType });
|
|
424
|
-
export const minimalDuties = e3.record("rota_minimal_duties", DictType(StringType, MinimalDuty),
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
export const
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
]
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
474
|
+
export const minimalDuties = e3.record("rota_minimal_duties", DictType(StringType, MinimalDuty), {
|
|
475
|
+
initial: new Map([
|
|
476
|
+
["d-1", { person: "w-01", start: new Date("2028-03-06T06:00:00Z"), end: new Date("2028-03-06T14:00:00Z"), shift: "early", team: "inbound" }],
|
|
477
|
+
["d-2", { person: "w-02", start: new Date("2028-03-06T14:00:00Z"), end: new Date("2028-03-06T22:00:00Z"), shift: "late", team: "dispatch" }],
|
|
478
|
+
["d-3", { person: "w-01", start: new Date("2028-03-07T05:30:00Z"), end: new Date("2028-03-07T14:00:00Z"), shift: "early", team: "inbound" }],
|
|
479
|
+
]),
|
|
480
|
+
mutations: (mutation) => ({
|
|
481
|
+
patch: mutation.patch(),
|
|
482
|
+
}),
|
|
483
|
+
});
|
|
484
|
+
export const minimalWorkers = e3.record("rota_minimal_workers", DictType(StringType, MinimalWorker), {
|
|
485
|
+
initial: new Map([
|
|
486
|
+
["w-01", { name: "Ada Brook", team: "inbound" }],
|
|
487
|
+
["w-02", { name: "Tom Vale", team: "dispatch" }],
|
|
488
|
+
]),
|
|
489
|
+
});
|
|
490
|
+
export const minimalShiftTimes = e3.record("rota_minimal_shift_times", DictType(StringType, MinimalShiftTime), {
|
|
491
|
+
initial: new Map([
|
|
492
|
+
["early", { name: "Early", code: "E", starts: { hour: 6n, minute: 0n }, hours: 8.0, order: 1n }],
|
|
493
|
+
["late", { name: "Late", code: "L", starts: { hour: 14n, minute: 0n }, hours: 8.0, order: 2n }],
|
|
494
|
+
]),
|
|
495
|
+
});
|
|
496
|
+
export const minimalTeams = e3.record("rota_minimal_teams", DictType(StringType, MinimalTeam), {
|
|
497
|
+
initial: new Map([
|
|
498
|
+
["inbound", { name: "Inbound" }], ["dispatch", { name: "Dispatch" }],
|
|
499
|
+
]),
|
|
500
|
+
});
|
|
441
501
|
export const rosterMinimal = example({
|
|
442
502
|
inputs: [], description: "The smallest roster over the app's own records: duties with their times, shift and team; staff; shift times; teams. No library or inspector pane, and no Publish; explicit assignment actions still use the shared session.",
|
|
443
503
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Roster.shifts", "Roster.groups", "Record.bind", "minimal"],
|
|
444
504
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
445
|
-
const rota = $.let(Record.bind(minimalDuties
|
|
505
|
+
const rota = $.let(Record.bind(minimalDuties));
|
|
446
506
|
const staff = $.let(Data.bind(minimalWorkers));
|
|
447
507
|
const times = $.let(Data.bind(minimalShiftTimes));
|
|
448
508
|
const groups = $.let(Data.bind(minimalTeams));
|
|
@@ -457,16 +517,16 @@ export const rosterPublished = example({
|
|
|
457
517
|
inputs: [], description: "The week before, published, is read-only: navigation, staff filtering, coverage and inspection remain available.",
|
|
458
518
|
keywords: ["Roster", "Schedule.events", "Schedule.resources", "Schedule.periods", "Roster.targets", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "published", "read-only", "Publish"],
|
|
459
519
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
460
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
520
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
461
521
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
462
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
463
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
464
|
-
const cover = $.let(Record.bind(rosterCover
|
|
522
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
523
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
524
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
465
525
|
// Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
|
|
466
526
|
const people = $.let(Data.bind(rosterStaff));
|
|
467
527
|
const acts = $.let(Data.bind(rosterActivities));
|
|
468
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
469
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
528
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
529
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
470
530
|
const slice = $.let(Slice.bindRecords("ex.rosterPublished", {
|
|
471
531
|
duty: { source: byTime, range: "start" },
|
|
472
532
|
people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
|
|
@@ -499,16 +559,16 @@ export const rosterCustomInspector = example({
|
|
|
499
559
|
inputs: [], description: "The duty kind's own inspector and the targets' own form replace the built-in fields while preserving the shared headers, coverage, actions and undo history.",
|
|
500
560
|
keywords: ["Roster", "Schedule.events", "inspector", "Roster.targets", "Schedule.resources", "Schedule.periods", "Slice", "Slice.bindRecords", "Data.bindPaged", "BuilderFrame", "Save", "Publish", "FieldForm"],
|
|
501
561
|
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
502
|
-
const rota = $.let(Record.bind(rosterDuties
|
|
562
|
+
const rota = $.let(Record.bind(rosterDuties));
|
|
503
563
|
const entries = $.let(Data.bindPaged(rosterDuties));
|
|
504
|
-
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: [
|
|
505
|
-
const weeks = $.let(Record.bind(rosterWeeks
|
|
506
|
-
const cover = $.let(Record.bind(rosterCover
|
|
564
|
+
const byTime = $.let(Data.bindPaged(rosterDuties, { indexes: ["roster_duties_by_time"] }));
|
|
565
|
+
const weeks = $.let(Record.bind(rosterWeeks));
|
|
566
|
+
const cover = $.let(Record.bind(rosterCover));
|
|
507
567
|
// Every person and activity is the calculation scope; the narrowing only chooses which show (#1342).
|
|
508
568
|
const people = $.let(Data.bind(rosterStaff));
|
|
509
569
|
const acts = $.let(Data.bind(rosterActivities));
|
|
510
|
-
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: [
|
|
511
|
-
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: [
|
|
570
|
+
const staffIndex = $.let(Data.bindPaged(rosterStaff, { indexes: ["roster_staff_by_team_name", "roster_staff_by_position", "roster_staff_by_trainer", "roster_staff_by_agency", "roster_staff_by_skill", "roster_staff_by_name"] }));
|
|
571
|
+
const actIndex = $.let(Data.bindPaged(rosterActivities, { indexes: ["roster_activities_by_group"] }));
|
|
512
572
|
const slice = $.let(Slice.bindRecords("ex.rosterCustomInspector", {
|
|
513
573
|
duty: { source: byTime, range: "start" },
|
|
514
574
|
people: { source: staffIndex, icon: { prefix: "fas", name: "user" }, search: ["name", "skills"],
|
|
@@ -550,4 +610,43 @@ export const rosterCustomInspector = example({
|
|
|
550
610
|
})] }) });
|
|
551
611
|
} })),
|
|
552
612
|
});
|
|
613
|
+
/** The duties the conflicts example edits, in a record of their own, so no other example's edits meet them. */
|
|
614
|
+
export const rosterConflictDuties = e3.record("rota_conflict_duties", DictType(StringType, MinimalDuty), {
|
|
615
|
+
initial: new Map([
|
|
616
|
+
["d-1", { person: "w-01", start: new Date("2028-03-06T06:00:00Z"), end: new Date("2028-03-06T14:00:00Z"), shift: "early", team: "inbound" }],
|
|
617
|
+
["d-2", { person: "w-02", start: new Date("2028-03-06T14:00:00Z"), end: new Date("2028-03-06T22:00:00Z"), shift: "late", team: "dispatch" }],
|
|
618
|
+
["d-3", { person: "w-01", start: new Date("2028-03-07T06:00:00Z"), end: new Date("2028-03-07T14:00:00Z"), shift: "early", team: "inbound" }],
|
|
619
|
+
]),
|
|
620
|
+
mutations: (mutation) => ({
|
|
621
|
+
patch: mutation.patch(),
|
|
622
|
+
// Someone else's save: every duty half an hour later, its person, shift and team as they were.
|
|
623
|
+
elsewhere: mutation.reduce(East.function([DictType(StringType, MinimalDuty)], DictType(StringType, MinimalDuty), (_$, duties) => duties.map((_$2, duty) => ({
|
|
624
|
+
person: duty.person, start: duty.start.addMinutes(30n), end: duty.end.addMinutes(30n), shift: duty.shift, team: duty.team,
|
|
625
|
+
})))),
|
|
626
|
+
}),
|
|
627
|
+
});
|
|
628
|
+
/**
|
|
629
|
+
* Your edits meeting someone else's save, in one window: edit, then press
|
|
630
|
+
* Someone else saves, which saves another person's change to the same duties —
|
|
631
|
+
* every duty half an hour later. A duty you moved to another day or shift is a
|
|
632
|
+
* conflict, its times one card to choose; a duty you gave to another person
|
|
633
|
+
* combines with theirs. Each press saves their change again.
|
|
634
|
+
*/
|
|
635
|
+
export const rosterConflicts = example({
|
|
636
|
+
inputs: [], description: "Your edits meeting someone else's save, in one window — move a duty to another day or shift, then press Someone else saves, which saves another person's change to the same duties (every duty half an hour later), so yours conflict, its times one card to choose; a duty you give to another person combines with theirs",
|
|
637
|
+
keywords: ["Roster", "conflict", "conflicts", "combine", "someone else", "Choose", "dates", "Schedule.events", "Record.bind", "mutate", "Button", "Save"],
|
|
638
|
+
fn: East.function([], UIComponentType, _$ => _jsx(Reactive, { children: $ => {
|
|
639
|
+
const rota = $.let(Record.bind(rosterConflictDuties, ["patch"]));
|
|
640
|
+
const others = $.let(Record.bind(rosterConflictDuties, ["elsewhere"]));
|
|
641
|
+
const theirs = $.const(East.function([], NullType, ($) => { $(others.mutate.elsewhere()); }));
|
|
642
|
+
const staff = $.let(Data.bind(minimalWorkers));
|
|
643
|
+
const times = $.let(Data.bind(minimalShiftTimes));
|
|
644
|
+
const groups = $.let(Data.bind(minimalTeams));
|
|
645
|
+
return _jsxs(VStack, { gap: "3", align: "stretch", children: [_jsxs(HStack, { gap: "3", children: [_jsx(Button, { variant: "outline", onClick: theirs, loading: others.mutate.pending(), children: "Someone else saves" }), _jsx(Text, { color: "fg.muted", children: "Their change: every duty half an hour later" })] }), _jsx(Box, { width: "100%", height: "760px", children: _jsx(Roster, { id: "rosterConflicts", view: { date: new Date("2028-03-06T00:00:00Z") }, events: { duty: Schedule.events(rota, {
|
|
646
|
+
name: "Duty", icon: "user-clock",
|
|
647
|
+
start: "start", end: "end", resource: { field: "person", of: "people" },
|
|
648
|
+
shift: "shift", group: "team",
|
|
649
|
+
}) }, resources: { people: Schedule.resources(staff.read(), { name: "People", icon: "user", label: w => w.name, group: w => w.team }) }, shifts: Roster.shifts(times.read(), { label: s => s.name, code: s => s.code, start: s => s.starts, hours: s => s.hours, order: s => s.order }), groups: Roster.groups(groups.read(), { label: t => t.name }) }) })] });
|
|
650
|
+
} })),
|
|
651
|
+
});
|
|
553
652
|
//# sourceMappingURL=roster.examples.js.map
|