@elaraai/e3-ui 1.0.85 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bind/data-indexed.d.ts +159 -0
- package/dist/src/bind/data-indexed.d.ts.map +1 -0
- package/dist/src/bind/data-indexed.js +105 -0
- package/dist/src/bind/data-indexed.js.map +1 -0
- package/dist/src/bind/data.d.ts +5 -3
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +6 -0
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/record.d.ts +34 -23
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +46 -19
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +2923 -0
- package/dist/src/calendar/index.d.ts.map +1 -0
- package/dist/src/calendar/index.js +135 -0
- package/dist/src/calendar/index.js.map +1 -0
- package/dist/src/decision/queue.d.ts +3 -3
- package/dist/src/decision/queue.d.ts.map +1 -1
- package/dist/src/decision/queue.js +2 -2
- package/dist/src/decision/queue.js.map +1 -1
- package/dist/src/decision/types.d.ts +4 -0
- package/dist/src/decision/types.d.ts.map +1 -1
- package/dist/src/decision/types.js +4 -0
- package/dist/src/decision/types.js.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +114 -0
- package/dist/src/flowchart/canvas.d.ts.map +1 -0
- package/dist/src/flowchart/canvas.js +84 -0
- package/dist/src/flowchart/canvas.js.map +1 -0
- package/dist/src/flowchart/flowchart.d.ts +79 -0
- package/dist/src/flowchart/flowchart.d.ts.map +1 -0
- package/dist/src/flowchart/flowchart.js +9 -0
- package/dist/src/flowchart/flowchart.js.map +1 -0
- package/dist/src/flowchart/index.d.ts +305 -0
- package/dist/src/flowchart/index.d.ts.map +1 -0
- package/dist/src/flowchart/index.js +267 -0
- package/dist/src/flowchart/index.js.map +1 -0
- package/dist/src/flowchart/library.d.ts +720 -0
- package/dist/src/flowchart/library.d.ts.map +1 -0
- package/dist/src/flowchart/library.js +611 -0
- package/dist/src/flowchart/library.js.map +1 -0
- package/dist/src/flowchart/over.d.ts +234 -0
- package/dist/src/flowchart/over.d.ts.map +1 -0
- package/dist/src/flowchart/over.js +220 -0
- package/dist/src/flowchart/over.js.map +1 -0
- package/dist/src/flowchart/patch.d.ts +64 -0
- package/dist/src/flowchart/patch.d.ts.map +1 -0
- package/dist/src/flowchart/patch.js +67 -0
- package/dist/src/flowchart/patch.js.map +1 -0
- package/dist/src/flowchart/payload.d.ts +8220 -0
- package/dist/src/flowchart/payload.d.ts.map +1 -0
- package/dist/src/flowchart/payload.js +521 -0
- package/dist/src/flowchart/payload.js.map +1 -0
- package/dist/src/flowchart/types.d.ts +393 -0
- package/dist/src/flowchart/types.d.ts.map +1 -0
- package/dist/src/flowchart/types.js +216 -0
- package/dist/src/flowchart/types.js.map +1 -0
- package/dist/src/flowchart/values.d.ts +267 -0
- package/dist/src/flowchart/values.d.ts.map +1 -0
- package/dist/src/flowchart/values.js +216 -0
- package/dist/src/flowchart/values.js.map +1 -0
- package/dist/src/flowchart/window.d.ts +521 -0
- package/dist/src/flowchart/window.d.ts.map +1 -0
- package/dist/src/flowchart/window.js +69 -0
- package/dist/src/flowchart/window.js.map +1 -0
- package/dist/src/index.d.ts +25 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +48 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +35 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +72 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/assemble.d.ts +2224 -0
- package/dist/src/plan/assemble.d.ts.map +1 -0
- package/dist/src/plan/assemble.js +210 -0
- package/dist/src/plan/assemble.js.map +1 -0
- package/dist/src/plan/builders.d.ts +790 -0
- package/dist/src/plan/builders.d.ts.map +1 -0
- package/dist/src/plan/builders.js +749 -0
- package/dist/src/plan/builders.js.map +1 -0
- package/dist/src/plan/event-rows.d.ts +2565 -0
- package/dist/src/plan/event-rows.d.ts.map +1 -0
- package/dist/src/plan/event-rows.js +689 -0
- package/dist/src/plan/event-rows.js.map +1 -0
- package/dist/src/plan/factories.d.ts +458 -0
- package/dist/src/plan/factories.d.ts.map +1 -0
- package/dist/src/plan/factories.js +484 -0
- package/dist/src/plan/factories.js.map +1 -0
- package/dist/src/plan/index.d.ts +672 -0
- package/dist/src/plan/index.d.ts.map +1 -0
- package/dist/src/plan/index.js +532 -0
- package/dist/src/plan/index.js.map +1 -0
- package/dist/src/plan/ir.d.ts +2594 -0
- package/dist/src/plan/ir.d.ts.map +1 -0
- package/dist/src/plan/ir.js +78 -0
- package/dist/src/plan/ir.js.map +1 -0
- package/dist/src/plan/library.d.ts +772 -0
- package/dist/src/plan/library.d.ts.map +1 -0
- package/dist/src/plan/library.js +424 -0
- package/dist/src/plan/library.js.map +1 -0
- package/dist/src/plan/ordered-source.d.ts +27 -0
- package/dist/src/plan/ordered-source.d.ts.map +1 -0
- package/dist/src/plan/ordered-source.js +48 -0
- package/dist/src/plan/ordered-source.js.map +1 -0
- package/dist/src/plan/over.d.ts +247 -0
- package/dist/src/plan/over.d.ts.map +1 -0
- package/dist/src/plan/over.js +266 -0
- package/dist/src/plan/over.js.map +1 -0
- package/dist/src/plan/pick.d.ts +78 -0
- package/dist/src/plan/pick.d.ts.map +1 -0
- package/dist/src/plan/pick.js +146 -0
- package/dist/src/plan/pick.js.map +1 -0
- package/dist/src/plan/plan.d.ts +11611 -0
- package/dist/src/plan/plan.d.ts.map +1 -0
- package/dist/src/plan/plan.js +428 -0
- package/dist/src/plan/plan.js.map +1 -0
- package/dist/src/plan/refs.d.ts +218 -0
- package/dist/src/plan/refs.d.ts.map +1 -0
- package/dist/src/plan/refs.js +226 -0
- package/dist/src/plan/refs.js.map +1 -0
- package/dist/src/plan/root.d.ts +290 -0
- package/dist/src/plan/root.d.ts.map +1 -0
- package/dist/src/plan/root.js +463 -0
- package/dist/src/plan/root.js.map +1 -0
- package/dist/src/plan/series.d.ts +13554 -0
- package/dist/src/plan/series.d.ts.map +1 -0
- package/dist/src/plan/series.js +1921 -0
- package/dist/src/plan/series.js.map +1 -0
- package/dist/src/plan/types.d.ts +12400 -0
- package/dist/src/plan/types.d.ts.map +1 -0
- package/dist/src/plan/types.js +1335 -0
- package/dist/src/plan/types.js.map +1 -0
- package/dist/src/roster/coverage.d.ts +240 -0
- package/dist/src/roster/coverage.d.ts.map +1 -0
- package/dist/src/roster/coverage.js +109 -0
- package/dist/src/roster/coverage.js.map +1 -0
- package/dist/src/roster/index.d.ts +4028 -0
- package/dist/src/roster/index.d.ts.map +1 -0
- package/dist/src/roster/index.js +115 -0
- package/dist/src/roster/index.js.map +1 -0
- package/dist/src/roster/library.d.ts +106 -0
- package/dist/src/roster/library.d.ts.map +1 -0
- package/dist/src/roster/library.js +78 -0
- package/dist/src/roster/library.js.map +1 -0
- package/dist/src/roster/people.d.ts +50 -0
- package/dist/src/roster/people.d.ts.map +1 -0
- package/dist/src/roster/people.js +32 -0
- package/dist/src/roster/people.js.map +1 -0
- package/dist/src/roster/rules.d.ts +275 -0
- package/dist/src/roster/rules.d.ts.map +1 -0
- package/dist/src/roster/rules.js +162 -0
- package/dist/src/roster/rules.js.map +1 -0
- package/dist/src/roster/types.d.ts +672 -0
- package/dist/src/roster/types.d.ts.map +1 -0
- package/dist/src/roster/types.js +248 -0
- package/dist/src/roster/types.js.map +1 -0
- package/dist/src/roster/visibility.d.ts +66 -0
- package/dist/src/roster/visibility.d.ts.map +1 -0
- package/dist/src/roster/visibility.js +25 -0
- package/dist/src/roster/visibility.js.map +1 -0
- package/dist/src/schedule/days.d.ts +54 -0
- package/dist/src/schedule/days.d.ts.map +1 -0
- package/dist/src/schedule/days.js +68 -0
- package/dist/src/schedule/days.js.map +1 -0
- package/dist/src/schedule/events.d.ts +433 -0
- package/dist/src/schedule/events.d.ts.map +1 -0
- package/dist/src/schedule/events.js +851 -0
- package/dist/src/schedule/events.js.map +1 -0
- package/dist/src/schedule/index.d.ts +150 -0
- package/dist/src/schedule/index.d.ts.map +1 -0
- package/dist/src/schedule/index.js +132 -0
- package/dist/src/schedule/index.js.map +1 -0
- package/dist/src/schedule/library.d.ts +70 -0
- package/dist/src/schedule/library.d.ts.map +1 -0
- package/dist/src/schedule/library.js +102 -0
- package/dist/src/schedule/library.js.map +1 -0
- package/dist/src/schedule/patch.d.ts +74 -0
- package/dist/src/schedule/patch.d.ts.map +1 -0
- package/dist/src/schedule/patch.js +68 -0
- package/dist/src/schedule/patch.js.map +1 -0
- package/dist/src/schedule/record-window.d.ts +189 -0
- package/dist/src/schedule/record-window.d.ts.map +1 -0
- package/dist/src/schedule/record-window.js +95 -0
- package/dist/src/schedule/record-window.js.map +1 -0
- package/dist/src/schedule/resources.d.ts +165 -0
- package/dist/src/schedule/resources.d.ts.map +1 -0
- package/dist/src/schedule/resources.js +234 -0
- package/dist/src/schedule/resources.js.map +1 -0
- package/dist/src/schedule/templates.d.ts +47 -0
- package/dist/src/schedule/templates.d.ts.map +1 -0
- package/dist/src/schedule/templates.js +61 -0
- package/dist/src/schedule/templates.js.map +1 -0
- package/dist/src/schedule/types.d.ts +1677 -0
- package/dist/src/schedule/types.d.ts.map +1 -0
- package/dist/src/schedule/types.js +374 -0
- package/dist/src/schedule/types.js.map +1 -0
- package/dist/src/schedule/window.d.ts +154 -0
- package/dist/src/schedule/window.d.ts.map +1 -0
- package/dist/src/schedule/window.js +363 -0
- package/dist/src/schedule/window.js.map +1 -0
- package/dist/src/sheet/bridge.d.ts +385 -0
- package/dist/src/sheet/bridge.d.ts.map +1 -0
- package/dist/src/sheet/bridge.js +809 -0
- package/dist/src/sheet/bridge.js.map +1 -0
- package/dist/src/sheet/columns.d.ts +410 -0
- package/dist/src/sheet/columns.d.ts.map +1 -0
- package/dist/src/sheet/columns.js +99 -0
- package/dist/src/sheet/columns.js.map +1 -0
- package/dist/src/sheet/context-bridge.d.ts +48 -0
- package/dist/src/sheet/context-bridge.d.ts.map +1 -0
- package/dist/src/sheet/context-bridge.js +216 -0
- package/dist/src/sheet/context-bridge.js.map +1 -0
- package/dist/src/sheet/draft-bridge.d.ts +37 -0
- package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
- package/dist/src/sheet/draft-bridge.js +153 -0
- package/dist/src/sheet/draft-bridge.js.map +1 -0
- package/dist/src/sheet/drafts.d.ts +14 -0
- package/dist/src/sheet/drafts.d.ts.map +1 -0
- package/dist/src/sheet/drafts.js +14 -0
- package/dist/src/sheet/drafts.js.map +1 -0
- package/dist/src/sheet/editing-bridge.d.ts +40 -0
- package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
- package/dist/src/sheet/editing-bridge.js +231 -0
- package/dist/src/sheet/editing-bridge.js.map +1 -0
- package/dist/src/sheet/editing-types.d.ts +268 -0
- package/dist/src/sheet/editing-types.d.ts.map +1 -0
- package/dist/src/sheet/editing-types.js +34 -0
- package/dist/src/sheet/editing-types.js.map +1 -0
- package/dist/src/sheet/edits.d.ts +37 -0
- package/dist/src/sheet/edits.d.ts.map +1 -0
- package/dist/src/sheet/edits.js +31 -0
- package/dist/src/sheet/edits.js.map +1 -0
- package/dist/src/sheet/fields.d.ts +693 -0
- package/dist/src/sheet/fields.d.ts.map +1 -0
- package/dist/src/sheet/fields.js +280 -0
- package/dist/src/sheet/fields.js.map +1 -0
- package/dist/src/sheet/group.d.ts +165 -0
- package/dist/src/sheet/group.d.ts.map +1 -0
- package/dist/src/sheet/group.js +52 -0
- package/dist/src/sheet/group.js.map +1 -0
- package/dist/src/sheet/index.d.ts +542 -0
- package/dist/src/sheet/index.d.ts.map +1 -0
- package/dist/src/sheet/index.js +387 -0
- package/dist/src/sheet/index.js.map +1 -0
- package/dist/src/sheet/library.d.ts +284 -0
- package/dist/src/sheet/library.d.ts.map +1 -0
- package/dist/src/sheet/library.js +259 -0
- package/dist/src/sheet/library.js.map +1 -0
- package/dist/src/sheet/link.d.ts +398 -0
- package/dist/src/sheet/link.d.ts.map +1 -0
- package/dist/src/sheet/link.js +228 -0
- package/dist/src/sheet/link.js.map +1 -0
- package/dist/src/sheet/record.d.ts +75 -0
- package/dist/src/sheet/record.d.ts.map +1 -0
- package/dist/src/sheet/record.js +128 -0
- package/dist/src/sheet/record.js.map +1 -0
- package/dist/src/sheet/registers.d.ts +681 -0
- package/dist/src/sheet/registers.d.ts.map +1 -0
- package/dist/src/sheet/registers.js +671 -0
- package/dist/src/sheet/registers.js.map +1 -0
- package/dist/src/sheet/root.d.ts +329 -0
- package/dist/src/sheet/root.d.ts.map +1 -0
- package/dist/src/sheet/root.js +511 -0
- package/dist/src/sheet/root.js.map +1 -0
- package/dist/src/sheet/seed-bridge.d.ts +14 -0
- package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
- package/dist/src/sheet/seed-bridge.js +51 -0
- package/dist/src/sheet/seed-bridge.js.map +1 -0
- package/dist/src/sheet/sheet.d.ts +11819 -0
- package/dist/src/sheet/sheet.d.ts.map +1 -0
- package/dist/src/sheet/sheet.js +236 -0
- package/dist/src/sheet/sheet.js.map +1 -0
- package/dist/src/sheet/sub-rows.d.ts +299 -0
- package/dist/src/sheet/sub-rows.d.ts.map +1 -0
- package/dist/src/sheet/sub-rows.js +272 -0
- package/dist/src/sheet/sub-rows.js.map +1 -0
- package/dist/src/sheet/templates.d.ts +161 -0
- package/dist/src/sheet/templates.d.ts.map +1 -0
- package/dist/src/sheet/templates.js +122 -0
- package/dist/src/sheet/templates.js.map +1 -0
- package/dist/src/sheet/transactions.d.ts +76 -0
- package/dist/src/sheet/transactions.d.ts.map +1 -0
- package/dist/src/sheet/transactions.js +40 -0
- package/dist/src/sheet/transactions.js.map +1 -0
- package/dist/src/sheet/types.d.ts +15226 -0
- package/dist/src/sheet/types.d.ts.map +1 -0
- package/dist/src/sheet/types.js +1070 -0
- package/dist/src/sheet/types.js.map +1 -0
- package/dist/src/sheet/views.d.ts +29 -0
- package/dist/src/sheet/views.d.ts.map +1 -0
- package/dist/src/sheet/views.js +43 -0
- package/dist/src/sheet/views.js.map +1 -0
- package/dist/src/studio/component.d.ts.map +1 -1
- package/dist/src/studio/component.js +11 -8
- package/dist/src/studio/component.js.map +1 -1
- package/dist/src/utils/derive.d.ts +134 -8
- package/dist/src/utils/derive.d.ts.map +1 -1
- package/dist/src/utils/derive.js +409 -7
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/ordered-source.d.ts +38 -0
- package/dist/src/utils/ordered-source.d.ts.map +1 -0
- package/dist/src/utils/ordered-source.js +45 -0
- package/dist/src/utils/ordered-source.js.map +1 -0
- package/dist/src/utils/row-inspector.d.ts +36 -0
- package/dist/src/utils/row-inspector.d.ts.map +1 -0
- package/dist/src/utils/row-inspector.js +49 -0
- package/dist/src/utils/row-inspector.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +21 -19
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +122 -122
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +9 -9
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar-records.examples.js +91 -0
- package/dist/test/calendar/calendar-records.examples.js.map +1 -0
- package/dist/test/calendar/calendar.examples.d.ts +776 -0
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar.examples.js +336 -0
- package/dist/test/calendar/calendar.examples.js.map +1 -0
- package/dist/test/decision/journal.examples.d.ts +28 -28
- package/dist/test/decision/journal.examples.d.ts.map +1 -1
- package/dist/test/decision/journal.examples.js +4 -4
- package/dist/test/decision/journal.examples.js.map +1 -1
- package/dist/test/decision/queue.examples.d.ts.map +1 -1
- package/dist/test/decision/queue.examples.js +5 -7
- package/dist/test/decision/queue.examples.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
- package/dist/test/flowchart/flowchart.examples.js +465 -0
- package/dist/test/flowchart/flowchart.examples.js.map +1 -0
- package/dist/test/plan/plan-events.examples.d.ts +3666 -0
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-events.examples.js +773 -0
- package/dist/test/plan/plan-events.examples.js.map +1 -0
- package/dist/test/plan/plan-records.examples.d.ts +3 -0
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-records.examples.js +45 -0
- package/dist/test/plan/plan-records.examples.js.map +1 -0
- package/dist/test/plan/plan-windows.examples.d.ts +588 -0
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-windows.examples.js +170 -0
- package/dist/test/plan/plan-windows.examples.js.map +1 -0
- package/dist/test/plan/plan.examples.d.ts +8095 -0
- package/dist/test/plan/plan.examples.d.ts.map +1 -0
- package/dist/test/plan/plan.examples.js +2500 -0
- package/dist/test/plan/plan.examples.js.map +1 -0
- package/dist/test/roster/domain.examples.d.ts +367 -0
- package/dist/test/roster/domain.examples.d.ts.map +1 -0
- package/dist/test/roster/domain.examples.js +72 -0
- package/dist/test/roster/domain.examples.js.map +1 -0
- package/dist/test/roster/roster-records.examples.d.ts +729 -0
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
- package/dist/test/roster/roster-records.examples.js +86 -0
- package/dist/test/roster/roster-records.examples.js.map +1 -0
- package/dist/test/roster/roster.examples.d.ts +750 -0
- package/dist/test/roster/roster.examples.d.ts.map +1 -0
- package/dist/test/roster/roster.examples.js +198 -0
- package/dist/test/roster/roster.examples.js.map +1 -0
- package/dist/test/roster/warehouse.d.ts +87 -0
- package/dist/test/roster/warehouse.d.ts.map +1 -0
- package/dist/test/roster/warehouse.js +883 -0
- package/dist/test/roster/warehouse.js.map +1 -0
- package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-link.examples.js +41 -0
- package/dist/test/sheet/sheet-link.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-records.examples.js +79 -0
- package/dist/test/sheet/sheet-records.examples.js.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.js +58 -0
- package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
- package/dist/test/sheet/sheet.examples.d.ts +5562 -0
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet.examples.js +1178 -0
- package/dist/test/sheet/sheet.examples.js.map +1 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +11 -11
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +12 -9
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* `Schedule.resources(source, config)` (#1218, `Calendar Spec.md` §4.2): one
|
|
7
|
+
* resource kind — people, presses, sites — read from any `Dict<K, R>`, usually
|
|
8
|
+
* a record's `read()`, or a window at a time from a paged read of one. A
|
|
9
|
+
* schedule never writes them: their keys are what an event's resource field
|
|
10
|
+
* holds.
|
|
11
|
+
*
|
|
12
|
+
* Plan's options sit beside the Calendar's (#1190, `Plan Builder Spec.md`
|
|
13
|
+
* §4.2): the group strip a resource sits under, the resource of its kind it
|
|
14
|
+
* nests under, its gutter (sub line, value slot and status dot), how a
|
|
15
|
+
* parent's bands roll up and whether it starts folded, and the read-only
|
|
16
|
+
* series under each resource (`measures`). The Calendar takes no notice of
|
|
17
|
+
* them: `build(slot)` is its kind, and `buildPlan(slot)` Plan's.
|
|
18
|
+
*
|
|
19
|
+
* A kind given its resources as a paged read — `Data.bindPaged(record)`, told
|
|
20
|
+
* from a `Dict` by its East type, as the Plan's `data` is (#1199, PB55) — is
|
|
21
|
+
* paged on a Plan as a paged canvas pages its blocks: its rows come a window
|
|
22
|
+
* of resources at a time as the canvas scrolls, the key search seeks a
|
|
23
|
+
* resource by its key, and one resource is read by its key — its name where an
|
|
24
|
+
* event names it — so its resources are never read whole, and the kind on the
|
|
25
|
+
* wire lists none. A window comes in the resources' key order, so a group
|
|
26
|
+
* strip or a parent, which gather resources from anywhere in it, are refused
|
|
27
|
+
* beside one, and the keys are Strings, as the canvas seeks them. The Calendar
|
|
28
|
+
* reads a kind's resources whole, and refuses a paged one.
|
|
29
|
+
*
|
|
30
|
+
* @packageDocumentation
|
|
31
|
+
*/
|
|
32
|
+
import { ArrayType, BooleanType, DictType, East, FunctionType, OptionType, StringType, isTypeEqual, none, printType, some, } from "@elaraai/east";
|
|
33
|
+
import { StatusValueType } from "@elaraai/east-ui";
|
|
34
|
+
import { resolveRowSource, resolveTag } from "@elaraai/east-ui/internal";
|
|
35
|
+
import { planSeriesFacts } from "../plan/series.js";
|
|
36
|
+
import { PlanRollupType } from "../plan/types.js";
|
|
37
|
+
import { PlanResourceRowType, PlanResourcesType, ScheduleResourceRowType, ScheduleResourcesType } from "./types.js";
|
|
38
|
+
import { scheduleEntryByKey } from "./window.js";
|
|
39
|
+
/** The key a schedule's definitions carry their sort under. */
|
|
40
|
+
export const SCHEDULE_DEF = Symbol("Schedule.def");
|
|
41
|
+
/** The ways a parent rolls up. */
|
|
42
|
+
const ROLLUPS = ["union", "byStatus", "sum"];
|
|
43
|
+
/** The kinds of series a measure may be. */
|
|
44
|
+
const MEASURES = ["heat", "table", "chart"];
|
|
45
|
+
/** One of a paged kind's resources read by its key's text, as the kind on the wire carries it (#1199). */
|
|
46
|
+
const ByKeyType = OptionType(OptionType(PlanResourceRowType));
|
|
47
|
+
/** The read of one of a paged kind's resources by its key's text. */
|
|
48
|
+
const ByKeyFunctionType = FunctionType([StringType], ByKeyType);
|
|
49
|
+
export function scheduleResources(rows, input) {
|
|
50
|
+
const config = input;
|
|
51
|
+
const where = `Schedule.resources: "${config.name}"`;
|
|
52
|
+
// Removed before anything was released with it (#1199): the kind pages when its resources are a paged read.
|
|
53
|
+
if ("window" in config) {
|
|
54
|
+
throw new Error(`${where}: \`window\` is gone — a kind pages when its resources are a paged read: ` +
|
|
55
|
+
"Schedule.resources(Data.bindPaged(record), { … }) in place of Schedule.resources(rows, { window: Data.bindPaged(record) })");
|
|
56
|
+
}
|
|
57
|
+
// A Dict, or a paged read of one, told apart by its East type — as the Plan's `data` is.
|
|
58
|
+
const resolved = resolveRowSource(rows, where);
|
|
59
|
+
const type = resolved.collectionType;
|
|
60
|
+
let source;
|
|
61
|
+
let window;
|
|
62
|
+
if (resolved.kind === "inline") {
|
|
63
|
+
if (type.type !== "Dict") {
|
|
64
|
+
throw new Error(`${where}'s rows are keyed — a Dict, usually a record's read() — and these are a ${type.type}`);
|
|
65
|
+
}
|
|
66
|
+
source = resolved.rows;
|
|
67
|
+
}
|
|
68
|
+
else if (resolved.kind === "paged" && type.type === "Dict") {
|
|
69
|
+
window = resolved.source;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
throw new Error(`${where}: a paged kind reads its resources' own entries a window at a time — Data.bindPaged(record) over ` +
|
|
73
|
+
`the resources' record, a Dict — and this read serves ${resolved.kind === "ordered" ? "an index's window, " : ""}${printType(type)}`);
|
|
74
|
+
}
|
|
75
|
+
const keyType = type.key;
|
|
76
|
+
const rowType = type.value;
|
|
77
|
+
const optString = OptionType(StringType);
|
|
78
|
+
// Each accessor, one East function, called per row (`shared/reify.ts`'s rule).
|
|
79
|
+
const label = East.function([rowType, keyType], StringType, (_$, row, key) => config.label(row, key));
|
|
80
|
+
const author = config.meta;
|
|
81
|
+
const meta = East.function([rowType, keyType], optString, (_$, row, key) => author === undefined ? East.value(none, optString) : author(row, key));
|
|
82
|
+
// A String key is its own text; any other key as East prints it.
|
|
83
|
+
const text = keyType.type === "String"
|
|
84
|
+
? East.function([StringType], StringType, (_$, key) => key)
|
|
85
|
+
: East.function([keyType], StringType, (_$, key) => East.print(key));
|
|
86
|
+
// Plan's: how a parent rolls up, its measures, and the paged read.
|
|
87
|
+
if (typeof config.rollup === "string" && !ROLLUPS.includes(config.rollup)) {
|
|
88
|
+
throw new Error(`${where}: \`rollup\` is "union", "byStatus" or "sum" — and it is "${config.rollup}"`);
|
|
89
|
+
}
|
|
90
|
+
const rollup = resolveTag(config.rollup ?? "union", PlanRollupType);
|
|
91
|
+
const measures = config.measures ?? [];
|
|
92
|
+
const collection = DictType(keyType, rowType);
|
|
93
|
+
const keys = new Set();
|
|
94
|
+
// The measures' keys, in the order the kind lists them.
|
|
95
|
+
const measureKeys = [];
|
|
96
|
+
measures.forEach((series, i) => {
|
|
97
|
+
const at = `${where}: measures[${i}]`;
|
|
98
|
+
let facts;
|
|
99
|
+
try {
|
|
100
|
+
facts = planSeriesFacts(series, collection, `${where} › measures[${i}]`);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
throw new Error(`${at} is a series over the resources' rows — ${err instanceof Error ? err.message : String(err)}`);
|
|
104
|
+
}
|
|
105
|
+
if (facts === undefined) {
|
|
106
|
+
throw new Error(`${at} is a Plan.series.heat, table or chart written in place — a series bound or stored elsewhere cannot be laid out under each resource`);
|
|
107
|
+
}
|
|
108
|
+
const named = `${facts.arm} "${facts.title}"`;
|
|
109
|
+
if (!MEASURES.includes(facts.arm)) {
|
|
110
|
+
throw new Error(`${at} is a ${named} series — a measure is a heat, table or chart series over the resources' rows`);
|
|
111
|
+
}
|
|
112
|
+
if (facts.nests) {
|
|
113
|
+
throw new Error(`${at}, ${named}, declares \`children\` — a measure is one row under each resource`);
|
|
114
|
+
}
|
|
115
|
+
if (keys.has(facts.key)) {
|
|
116
|
+
throw new Error(`${at}, ${named}, repeats the key "${facts.key}" — a measure row's id is its series' key and its resource's path, so each measure has a key of its own`);
|
|
117
|
+
}
|
|
118
|
+
keys.add(facts.key);
|
|
119
|
+
measureKeys.push(facts.key);
|
|
120
|
+
});
|
|
121
|
+
if (window !== undefined) {
|
|
122
|
+
// A window comes in the resources' key order (#1199): the canvas seeks a resource by its key as text,
|
|
123
|
+
// and a group strip or a parent gathers resources from anywhere in the record.
|
|
124
|
+
if (!isTypeEqual(keyType, StringType)) {
|
|
125
|
+
throw new Error(`${where}: a paged kind's key search seeks a resource by its key, as text — key the resources by String, and these are keyed by ${printType(keyType)}`);
|
|
126
|
+
}
|
|
127
|
+
for (const prop of ["group", "parent"]) {
|
|
128
|
+
if (config[prop] !== undefined) {
|
|
129
|
+
throw new Error(`${where}: a paged kind reads its resources a window at a time in their key order, and \`${prop}\` ` +
|
|
130
|
+
`gathers resources from anywhere in the record, which a window holds only its share of — read the resources whole, or leave \`${prop}\` out`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Plan's accessors, each one East function, called per row.
|
|
135
|
+
const accessor = (out, fn) => fn === undefined ? undefined : East.function([rowType, keyType], out, (_$, row, key) => fn(row, key));
|
|
136
|
+
const groupOf = accessor(StringType, config.group);
|
|
137
|
+
const parentOf = accessor(optString, config.parent);
|
|
138
|
+
const subOf = accessor(optString, config.sub);
|
|
139
|
+
const valueOf = accessor(optString, config.value);
|
|
140
|
+
const statusOf = accessor(OptionType(StatusValueType), config.status);
|
|
141
|
+
const collapsed = config.collapsed;
|
|
142
|
+
const collapsedOf = typeof collapsed === "function" ? accessor(BooleanType, collapsed) : undefined;
|
|
143
|
+
// One resource as Plan's builder takes it.
|
|
144
|
+
const planRow = East.function([rowType, keyType], PlanResourceRowType, ($, row, key) => {
|
|
145
|
+
const keyText = $.const(text);
|
|
146
|
+
const labelOf = $.const(label);
|
|
147
|
+
const metaOf = $.const(meta);
|
|
148
|
+
// An accessor's value for this row, or `otherwise` when the kind has no such accessor.
|
|
149
|
+
const call = (fn, otherwise, wrap) => {
|
|
150
|
+
if (fn === undefined)
|
|
151
|
+
return otherwise;
|
|
152
|
+
const bound = $.const(fn);
|
|
153
|
+
const value = bound(row, key);
|
|
154
|
+
return wrap === undefined ? value : wrap(value);
|
|
155
|
+
};
|
|
156
|
+
return East.value({
|
|
157
|
+
key: keyText(key),
|
|
158
|
+
label: labelOf(row, key),
|
|
159
|
+
meta: metaOf(row, key),
|
|
160
|
+
group: call(groupOf, none, (g) => some(g)),
|
|
161
|
+
parent: call(parentOf, none),
|
|
162
|
+
sub: call(subOf, none),
|
|
163
|
+
value: call(valueOf, none),
|
|
164
|
+
status: call(statusOf, none),
|
|
165
|
+
collapsed: collapsedOf !== undefined ? call(collapsedOf, false) : collapsed === true,
|
|
166
|
+
}, PlanResourceRowType);
|
|
167
|
+
});
|
|
168
|
+
// A paged kind's resource by its key's text (#1199): its window's key search, then a one-row page.
|
|
169
|
+
const byKey = window === undefined ? undefined : (() => {
|
|
170
|
+
const find = scheduleEntryByKey(window, keyType, rowType);
|
|
171
|
+
return East.function([StringType], ByKeyType, ($, key) => {
|
|
172
|
+
const read = $.const(find);
|
|
173
|
+
const resolve = $.const(planRow);
|
|
174
|
+
const result = $.let(none, ByKeyType);
|
|
175
|
+
$.match(read(key), {
|
|
176
|
+
held: ($2, row) => { $2.assign(result, some(some(resolve(row, key)))); },
|
|
177
|
+
absent: ($2) => { $2.assign(result, some(none)); },
|
|
178
|
+
});
|
|
179
|
+
return result;
|
|
180
|
+
});
|
|
181
|
+
})();
|
|
182
|
+
return {
|
|
183
|
+
[SCHEDULE_DEF]: "resources",
|
|
184
|
+
keyType,
|
|
185
|
+
rowType,
|
|
186
|
+
name: config.name,
|
|
187
|
+
icon: config.icon,
|
|
188
|
+
measures,
|
|
189
|
+
window,
|
|
190
|
+
source: source,
|
|
191
|
+
planRow: planRow,
|
|
192
|
+
grouped: config.group !== undefined,
|
|
193
|
+
nested: config.parent !== undefined,
|
|
194
|
+
rollup,
|
|
195
|
+
build(slot) {
|
|
196
|
+
// The Calendar reads a kind's resources whole, and pages none.
|
|
197
|
+
if (source === undefined) {
|
|
198
|
+
throw new Error(`${where}: the Calendar reads a resource kind's resources whole, and this one's are a paged read — ` +
|
|
199
|
+
"give it the resources as a Dict, usually a record's read()");
|
|
200
|
+
}
|
|
201
|
+
const all = source;
|
|
202
|
+
return East.value({
|
|
203
|
+
key: slot,
|
|
204
|
+
name: config.name,
|
|
205
|
+
icon: config.icon,
|
|
206
|
+
rows: all.toArray(($, row, key) => {
|
|
207
|
+
const labelOf = $.const(label);
|
|
208
|
+
const metaOf = $.const(meta);
|
|
209
|
+
const keyText = $.const(text);
|
|
210
|
+
return East.value({ key: keyText(key), label: labelOf(row, key), meta: metaOf(row, key) }, ScheduleResourceRowType);
|
|
211
|
+
}),
|
|
212
|
+
}, ScheduleResourcesType);
|
|
213
|
+
},
|
|
214
|
+
buildPlan(slot) {
|
|
215
|
+
return East.value({
|
|
216
|
+
key: slot,
|
|
217
|
+
name: config.name,
|
|
218
|
+
icon: config.icon,
|
|
219
|
+
rollup,
|
|
220
|
+
measures: measureKeys,
|
|
221
|
+
// A paged kind's rows come a window at a time where the Plan draws them (#1199): none here, so
|
|
222
|
+
// the kind on the wire never reads them whole; one is read by its key where it is named.
|
|
223
|
+
rows: source === undefined
|
|
224
|
+
? East.value([], ArrayType(PlanResourceRowType))
|
|
225
|
+
: source.toArray(($, row, key) => {
|
|
226
|
+
const resolve = $.const(planRow);
|
|
227
|
+
return resolve(row, key);
|
|
228
|
+
}),
|
|
229
|
+
byKey: byKey === undefined ? East.value(none, OptionType(ByKeyFunctionType)) : East.value(some(byKey), OptionType(ByKeyFunctionType)),
|
|
230
|
+
}, PlanResourcesType);
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../../src/schedule/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, DictType, OptionType, StringType, type EastType, type ExprType, type StructType, type SubtypeExprOrValue } from "@elaraai/east";
|
|
6
|
+
import { ScheduleClockType, ScheduleDurationType, ScheduleTemplateType } from "./types.js";
|
|
7
|
+
/** Identifies a declaration of templates read from keyed data. */
|
|
8
|
+
export declare const SCHEDULE_TEMPLATES: unique symbol;
|
|
9
|
+
/** Templates over live keyed data, with their initial event values typed. */
|
|
10
|
+
export interface ScheduleTemplates<V extends StructType> {
|
|
11
|
+
/** Identifies the declaration. */
|
|
12
|
+
readonly [SCHEDULE_TEMPLATES]: true;
|
|
13
|
+
/** The type of the initial values, excluding the fields a drop places. */
|
|
14
|
+
readonly valuesType: V;
|
|
15
|
+
/** The templates, with each initial value encoded at its own type. */
|
|
16
|
+
readonly items: ExprType<ArrayType<ScheduleTemplateType>>;
|
|
17
|
+
}
|
|
18
|
+
/** Accessors describing one template record row. Each receives the row and its key. */
|
|
19
|
+
export interface ScheduleTemplatesConfig<K extends EastType, R extends EastType, V extends StructType> {
|
|
20
|
+
/** The template's name in the library. */
|
|
21
|
+
name: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<StringType>;
|
|
22
|
+
/** Its optional library group. */
|
|
23
|
+
group?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<StringType>>;
|
|
24
|
+
/** Its optional start time for a drop onto a whole day. */
|
|
25
|
+
at?: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<OptionType<ScheduleClockType>>;
|
|
26
|
+
/** The length of an event made from this template. */
|
|
27
|
+
duration: (row: ExprType<R>, key: ExprType<K>) => SubtypeExprOrValue<ScheduleDurationType>;
|
|
28
|
+
/** Every initial event field except its start, end and resource. */
|
|
29
|
+
values: (row: ExprType<R>, key: ExprType<K>) => ExprType<V>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Reads templates from keyed data, usually a bound record's read(). Each
|
|
33
|
+
* accessor is reified once; the source's key identifies the template. Plan
|
|
34
|
+
* and Calendar share this declaration and observe changes to its source.
|
|
35
|
+
*
|
|
36
|
+
* @typeParam K - The template record's key type
|
|
37
|
+
* @typeParam R - Its row type
|
|
38
|
+
* @typeParam V - The initial event values' struct type
|
|
39
|
+
* @param rows - The keyed template rows
|
|
40
|
+
* @param config - The row accessors
|
|
41
|
+
* @returns Templates whose values are checked against their event kind
|
|
42
|
+
* @throws {Error} When the source is not a Dict or the values are not a struct
|
|
43
|
+
*/
|
|
44
|
+
export declare function scheduleTemplates<K extends EastType, R extends EastType, V extends StructType>(rows: SubtypeExprOrValue<DictType<K, R>>, config: ScheduleTemplatesConfig<K, R, V>): ScheduleTemplates<V>;
|
|
45
|
+
/** Checks a bound template's initial values against the fields its kind requires. */
|
|
46
|
+
export declare function checkedTemplates(templates: ScheduleTemplates<StructType>, expected: StructType, where: string): ExprType<ArrayType<ScheduleTemplateType>>;
|
|
47
|
+
//# sourceMappingURL=templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/schedule/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,SAAS,EAAE,QAAQ,EAAc,UAAU,EAAE,UAAU,EACvD,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAqB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAC5F,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE3F,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,EAAE,OAAO,MAAqC,CAAC;AAE9E,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,UAAU;IACnD,kCAAkC;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;CAC7D;AAED,uFAAuF;AACvF,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU;IACjG,0CAA0C;IAC1C,IAAI,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC7E,kCAAkC;IAClC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,2DAA2D;IAC3D,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/F,sDAAsD;IACtD,QAAQ,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAC3F,oEAAoE;IACpE,MAAM,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,UAAU,EAC1F,IAAI,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACnF,iBAAiB,CAAC,CAAC,CAAC,CA4BtB;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAMzJ"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
import { ArrayType, DictType, East, Expr, OptionType, StringType, isTypeEqual, none, printType, } from "@elaraai/east";
|
|
6
|
+
import { ScheduleClockType, ScheduleDurationType, ScheduleTemplateType } from "./types.js";
|
|
7
|
+
/** Identifies a declaration of templates read from keyed data. */
|
|
8
|
+
export const SCHEDULE_TEMPLATES = Symbol("Schedule.templates");
|
|
9
|
+
/**
|
|
10
|
+
* Reads templates from keyed data, usually a bound record's read(). Each
|
|
11
|
+
* accessor is reified once; the source's key identifies the template. Plan
|
|
12
|
+
* and Calendar share this declaration and observe changes to its source.
|
|
13
|
+
*
|
|
14
|
+
* @typeParam K - The template record's key type
|
|
15
|
+
* @typeParam R - Its row type
|
|
16
|
+
* @typeParam V - The initial event values' struct type
|
|
17
|
+
* @param rows - The keyed template rows
|
|
18
|
+
* @param config - The row accessors
|
|
19
|
+
* @returns Templates whose values are checked against their event kind
|
|
20
|
+
* @throws {Error} When the source is not a Dict or the values are not a struct
|
|
21
|
+
*/
|
|
22
|
+
export function scheduleTemplates(rows, config) {
|
|
23
|
+
const source = East.value(rows);
|
|
24
|
+
const type = Expr.type(source);
|
|
25
|
+
if (type.type !== "Dict")
|
|
26
|
+
throw new Error("Schedule.templates: rows must be a Dict, usually a bound record's read()");
|
|
27
|
+
const keyType = type.key;
|
|
28
|
+
const rowType = type.value;
|
|
29
|
+
const values = East.function([rowType, keyType], undefined, (_$, row, key) => config.values(row, key));
|
|
30
|
+
const valuesType = Expr.type(values).output;
|
|
31
|
+
if (valuesType.type !== "Struct")
|
|
32
|
+
throw new Error("Schedule.templates: values must return a struct of initial event fields");
|
|
33
|
+
const keyText = keyType.type === "String"
|
|
34
|
+
? East.function([StringType], StringType, (_$, key) => key)
|
|
35
|
+
: East.function([keyType], StringType, (_$, key) => East.print(key));
|
|
36
|
+
const describe = East.function([rowType, keyType], ScheduleTemplateType, ($, row, key) => {
|
|
37
|
+
const text = $.const(keyText);
|
|
38
|
+
const initial = $.const(values);
|
|
39
|
+
return {
|
|
40
|
+
key: text(key), name: config.name(row, key),
|
|
41
|
+
group: config.group === undefined ? none : config.group(row, key),
|
|
42
|
+
at: config.at === undefined ? none : config.at(row, key),
|
|
43
|
+
duration: config.duration(row, key),
|
|
44
|
+
values: East.Blob.encodeBeast(initial(row, key), "v2"),
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
const items = source.toArray(($, row, key) => {
|
|
48
|
+
const describeRow = $.const(describe);
|
|
49
|
+
return describeRow(row, key);
|
|
50
|
+
});
|
|
51
|
+
return { [SCHEDULE_TEMPLATES]: true, valuesType, items };
|
|
52
|
+
}
|
|
53
|
+
/** Checks a bound template's initial values against the fields its kind requires. */
|
|
54
|
+
export function checkedTemplates(templates, expected, where) {
|
|
55
|
+
if (!isTypeEqual(templates.valuesType, expected)) {
|
|
56
|
+
throw new Error(where + ": templates.values must supply the event's fields except start, end and resource; expected "
|
|
57
|
+
+ printType(expected) + ", received " + printType(templates.valuesType));
|
|
58
|
+
}
|
|
59
|
+
return templates.items;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/schedule/templates.ts"],"names":[],"mappings":"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"}
|