@elaraai/e3-ui 1.0.86 → 1.0.88
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,484 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The Plan kind factories — `span` / `buckets` / `chart` / `heat` / `table` /
|
|
7
|
+
* `cards` / `events` / `group` — the vocabulary for rows no dataset holds,
|
|
8
|
+
* placed on a canvas by a `Plan.series.rows` entry. Each returns its row's
|
|
9
|
+
* STREAM (`PlanRowsValue` — the row, then its nested rows), so factories
|
|
10
|
+
* compose: a nested `rows:` input is other factories' results, placed under
|
|
11
|
+
* the parent in order (#822). A nesting parent DECLARES its rollup / aggregate
|
|
12
|
+
* / subtotal; the renderer derives the values from the subtree.
|
|
13
|
+
*
|
|
14
|
+
* The per-kind constructors ({@link spanKind} … {@link groupKind}) are shared
|
|
15
|
+
* with the data-driven series, so a hand-built row and a row made from a
|
|
16
|
+
* source entry carry the same kind for the same input.
|
|
17
|
+
*
|
|
18
|
+
* @packageDocumentation
|
|
19
|
+
*/
|
|
20
|
+
import { East, Expr, ArrayType, BooleanType, FloatType, OptionType, StringType, variant, some, none, } from "@elaraai/east";
|
|
21
|
+
import { ChartXType, TableAggregateType, TickFormatType, resolveTag, } from "@elaraai/east-ui/internal";
|
|
22
|
+
import { PlanAggregateType, PlanTableEmphasisType, PlanTableSeriesType, PlanTableSplitType, PlanChartAxisType, PlanChartHeightType, PlanHeatCellsType, PlanTableCellType, PlanPortType, PlanCellMarkerType, PlanChartPointType, PlanChartBandPointType, PlanChartLayerType, PlanAxisSideType, PlanBreachType, PlanRollupType, PlanRunType, PlanDecisionMarkType, PlanBucketEventType, PlanChipType, PlanEventMarkType, PlanLaneType, PlanRowKindType, PlanInstantType, PlanHeatScaleType, PlanGroupSummaryType, } from "./types.js";
|
|
23
|
+
import { createHeatCells, createHeatScale, resolveFold, resolveInstant, } from "./builders.js";
|
|
24
|
+
import { makeRow, assembleNested, } from "./assemble.js";
|
|
25
|
+
/**
|
|
26
|
+
* Wraps a Chart layer builder result with the Plan-only channels (axis side,
|
|
27
|
+
* breach threshold, stack series, and how a coarser bucket folds its points).
|
|
28
|
+
*
|
|
29
|
+
* @param layer - The `Chart.Line` / `Column` / `Area` / `Scatter` / `Band` / `ref*` builder result
|
|
30
|
+
* @param channels - The Plan-only channels ({@link PlanLayerChannels})
|
|
31
|
+
* @returns The wrapped layer for `Plan.chart`'s `layers`
|
|
32
|
+
*/
|
|
33
|
+
export function createLayer(layer, channels) {
|
|
34
|
+
return { plan: true, layer, channels };
|
|
35
|
+
}
|
|
36
|
+
/** Resolve an axis side literal into a `PlanAxisSideType` value. */
|
|
37
|
+
function axisSide(side) {
|
|
38
|
+
return East.value(variant(side ?? "left", null), PlanAxisSideType);
|
|
39
|
+
}
|
|
40
|
+
/** Envelope the optional breach channel. */
|
|
41
|
+
function breachOpt(breach) {
|
|
42
|
+
if (breach === undefined)
|
|
43
|
+
return East.value(none, OptionType(PlanBreachType));
|
|
44
|
+
const arm = "above" in breach
|
|
45
|
+
? variant("above", breach.above)
|
|
46
|
+
: variant("below", breach.below);
|
|
47
|
+
return East.value(some(arm), OptionType(PlanBreachType));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A consumed layer point's x coordinate as a canvas instant (#631). The
|
|
51
|
+
* Chart builder already typed the coordinate by the accessor's STATIC type
|
|
52
|
+
* (`ChartXType`: `time` / `number` / `category` — `scaleFor`), so the arm
|
|
53
|
+
* is known here without an East match: a `DateTimeType` x is a `time`
|
|
54
|
+
* instant, a numeric x a `number` instant, a `StringType` x an `ordinal`
|
|
55
|
+
* one. Which arm the canvas accepts is the root axis's; the renderer holds
|
|
56
|
+
* every row against it.
|
|
57
|
+
*/
|
|
58
|
+
function pointInstant(x, xScale) {
|
|
59
|
+
switch (xScale) {
|
|
60
|
+
case "time": return East.value(variant("time", x.unwrap("time")), PlanInstantType);
|
|
61
|
+
case "linear": return East.value(variant("number", x.unwrap("number")), PlanInstantType);
|
|
62
|
+
default: return East.value(variant("ordinal", x.unwrap("category")), PlanInstantType);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Consumes one chart-row layer input into `ArrayType(PlanChartLayerType)`
|
|
67
|
+
* arms (one per series for multi-series layers).
|
|
68
|
+
*/
|
|
69
|
+
function consumeLayer(input) {
|
|
70
|
+
const wrapped = input.plan === true;
|
|
71
|
+
const layer = wrapped ? input.layer : input;
|
|
72
|
+
const channels = wrapped ? input.channels : {};
|
|
73
|
+
if (layer.kind === "ref") {
|
|
74
|
+
const side = axisSide(channels.axis);
|
|
75
|
+
if (layer.refKind === "line") {
|
|
76
|
+
const o = layer.refOptions;
|
|
77
|
+
if (o.y === undefined) {
|
|
78
|
+
throw new Error("Plan.chart: vertical (x) refLines are not supported — instants are event marks (Plan.events) or the axis now-line");
|
|
79
|
+
}
|
|
80
|
+
return East.value([East.value(variant("refLine", {
|
|
81
|
+
y: o.y, axis: side,
|
|
82
|
+
label: o.label !== undefined ? some(o.label) : none,
|
|
83
|
+
}), PlanChartLayerType)], ArrayType(PlanChartLayerType));
|
|
84
|
+
}
|
|
85
|
+
if (layer.refKind === "band") {
|
|
86
|
+
const o = layer.refOptions;
|
|
87
|
+
if (o.x === undefined) {
|
|
88
|
+
throw new Error("Plan.chart: refBand needs x bounds (two instants) — y-range refBands are not supported on chart rows");
|
|
89
|
+
}
|
|
90
|
+
return East.value([East.value(variant("refBand", {
|
|
91
|
+
from: resolveInstant(o.x[0], "refBand x bounds"),
|
|
92
|
+
to: resolveInstant(o.x[1], "refBand x bounds"),
|
|
93
|
+
label: o.label !== undefined ? some(o.label) : none,
|
|
94
|
+
}), PlanChartLayerType)], ArrayType(PlanChartLayerType));
|
|
95
|
+
}
|
|
96
|
+
if (layer.refKind === "dot") {
|
|
97
|
+
const o = layer.refOptions;
|
|
98
|
+
return East.value([East.value(variant("refDot", {
|
|
99
|
+
t: resolveInstant(o.x, "refDot x"), y: o.y, axis: side,
|
|
100
|
+
label: o.label !== undefined ? some(o.label) : none,
|
|
101
|
+
}), PlanChartLayerType)], ArrayType(PlanChartLayerType));
|
|
102
|
+
}
|
|
103
|
+
throw new Error("Plan.chart: unsupported annotation layer");
|
|
104
|
+
}
|
|
105
|
+
if (layer.kind === "band") {
|
|
106
|
+
const xScale = layer.xScale;
|
|
107
|
+
const side = axisSide(channels.axis ?? layer.style.axis);
|
|
108
|
+
return layer.data.map((_$, s) => East.value(variant("band", {
|
|
109
|
+
points: s.points.map((_$2, p) => East.value({
|
|
110
|
+
t: pointInstant(p.x, xScale), lo: p.low, hi: p.high,
|
|
111
|
+
}, PlanChartBandPointType)),
|
|
112
|
+
axis: side,
|
|
113
|
+
}), PlanChartLayerType));
|
|
114
|
+
}
|
|
115
|
+
// Series layer — line / column / area / scatter. The shared channels are
|
|
116
|
+
// built fresh per use so no East expression is spliced twice.
|
|
117
|
+
if (layer.orientation === "horizontal") {
|
|
118
|
+
throw new Error("Plan.chart: Chart.Bar (horizontal) flips the frame the shared axis owns — use Chart.Column (vertical)");
|
|
119
|
+
}
|
|
120
|
+
const xScale = layer.xScale;
|
|
121
|
+
const stacked = layer.style.stack !== undefined;
|
|
122
|
+
if (layer.mark === "line") {
|
|
123
|
+
return layer.data.map((_$, s) => East.value(variant("line", {
|
|
124
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
125
|
+
axis: axisSide(channels.axis ?? layer.style.axis), breach: breachOpt(channels.breach),
|
|
126
|
+
// A line is a level: a bucket folds its points to their mean (#824).
|
|
127
|
+
fold: resolveFold(channels.fold, "mean"),
|
|
128
|
+
}), PlanChartLayerType));
|
|
129
|
+
}
|
|
130
|
+
if (layer.mark === "area") {
|
|
131
|
+
return layer.data.map((_$, s) => East.value(variant("area", {
|
|
132
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
133
|
+
axis: axisSide(channels.axis ?? layer.style.axis),
|
|
134
|
+
fold: resolveFold(channels.fold, "mean"),
|
|
135
|
+
}), PlanChartLayerType));
|
|
136
|
+
}
|
|
137
|
+
if (layer.mark === "scatter") {
|
|
138
|
+
return layer.data.map((_$, s) => East.value(variant("scatter", {
|
|
139
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
140
|
+
axis: axisSide(channels.axis ?? layer.style.axis),
|
|
141
|
+
}), PlanChartLayerType));
|
|
142
|
+
}
|
|
143
|
+
return layer.data.map((_$, s) => East.value(variant("column", {
|
|
144
|
+
points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
|
|
145
|
+
axis: axisSide(channels.axis ?? layer.style.axis),
|
|
146
|
+
series: channels.series !== undefined
|
|
147
|
+
? East.value(some(channels.series), OptionType(StringType))
|
|
148
|
+
: (stacked
|
|
149
|
+
? East.value(some(s.key), OptionType(StringType))
|
|
150
|
+
: East.value(none, OptionType(StringType))),
|
|
151
|
+
breach: breachOpt(channels.breach),
|
|
152
|
+
// A column is an amount: a bucket folds its points to their sum (#824).
|
|
153
|
+
fold: resolveFold(channels.fold, "sum"),
|
|
154
|
+
}), PlanChartLayerType));
|
|
155
|
+
}
|
|
156
|
+
/** Concatenate the consumed layers of a chart row. */
|
|
157
|
+
export function consumeLayers(inputs) {
|
|
158
|
+
const list = Array.isArray(inputs) ? inputs : [inputs];
|
|
159
|
+
return list.reduce((acc, l) => acc.concat(consumeLayer(l)), East.value([], ArrayType(PlanChartLayerType)));
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Pins a chart row to an explicit height (composed charts — §4·K3's 120px
|
|
163
|
+
* OUT + DEFECTS row), a CSS px size like every component height.
|
|
164
|
+
*
|
|
165
|
+
* @param size - The CSS px size (`"120px"`)
|
|
166
|
+
* @returns A `PlanChartHeightType` expression with the `fixed` arm
|
|
167
|
+
*/
|
|
168
|
+
export function createFixedHeight(size) {
|
|
169
|
+
return East.value(variant("fixed", size), PlanChartHeightType);
|
|
170
|
+
}
|
|
171
|
+
/** Whether a domain bound is temporal — mirrors `Chart.Root`'s `isTemporalBound`. */
|
|
172
|
+
function isTemporalBound(bound) {
|
|
173
|
+
if (bound instanceof Date)
|
|
174
|
+
return true;
|
|
175
|
+
if (typeof bound === "number")
|
|
176
|
+
return false;
|
|
177
|
+
return Expr.type(bound).type === "DateTime";
|
|
178
|
+
}
|
|
179
|
+
/** Whether explicit tick positions are temporal — mirrors `Chart.Root`'s `isTemporalTickValues`. */
|
|
180
|
+
function isTemporalTickValues(tv) {
|
|
181
|
+
if (tv === undefined)
|
|
182
|
+
return false;
|
|
183
|
+
const expr = East.value(tv);
|
|
184
|
+
return Expr.type(expr).value.type === "DateTime";
|
|
185
|
+
}
|
|
186
|
+
/** Envelope a chart-row y-axis input (`Chart.Root`'s y-axis rules — value axes are numeric). */
|
|
187
|
+
function buildChartAxis(a, side) {
|
|
188
|
+
if (a.domain !== undefined && isTemporalBound(a.domain[0])) {
|
|
189
|
+
throw new Error(`Plan.chart: the ${side} axis is a numeric value axis — a temporal extent belongs to the shared time axis (Plan.axis window)`);
|
|
190
|
+
}
|
|
191
|
+
if (isTemporalTickValues(a.tickValues)) {
|
|
192
|
+
throw new Error(`Plan.chart: Date tickValues are only valid on a time axis — the ${side} axis is numeric; pass float tick positions`);
|
|
193
|
+
}
|
|
194
|
+
return East.value({
|
|
195
|
+
domain: a.domain !== undefined
|
|
196
|
+
? some(variant("number", { min: a.domain[0], max: a.domain[1] }))
|
|
197
|
+
: none,
|
|
198
|
+
tickValues: a.tickValues !== undefined
|
|
199
|
+
? some(variant("number", a.tickValues))
|
|
200
|
+
: none,
|
|
201
|
+
format: a.format !== undefined ? some(a.format) : none,
|
|
202
|
+
}, PlanChartAxisType);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* A span row's kind.
|
|
206
|
+
*
|
|
207
|
+
* @param parts - The row's runs, decisions and ports
|
|
208
|
+
* @param rollup - The declared rollup — `some` on a row whose subtree rolls up into its bands
|
|
209
|
+
* @returns The kind
|
|
210
|
+
*/
|
|
211
|
+
export function spanKind(parts, rollup) {
|
|
212
|
+
return East.value(variant("span", {
|
|
213
|
+
runs: East.value((parts.runs ?? []), ArrayType(PlanRunType)),
|
|
214
|
+
decisions: East.value((parts.decisions ?? []), ArrayType(PlanDecisionMarkType)),
|
|
215
|
+
ports: East.value((parts.ports ?? []), ArrayType(PlanPortType)),
|
|
216
|
+
rollup,
|
|
217
|
+
}), PlanRowKindType);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* A bucket row's kind.
|
|
221
|
+
*
|
|
222
|
+
* @param parts - The row's lanes, tiles and markers
|
|
223
|
+
* @returns The kind
|
|
224
|
+
*/
|
|
225
|
+
export function bucketsKind(parts) {
|
|
226
|
+
return East.value(variant("buckets", {
|
|
227
|
+
lanes: East.value(parts.lanes ?? [], ArrayType(PlanLaneType)),
|
|
228
|
+
events: East.value((parts.events ?? []), ArrayType(PlanBucketEventType)),
|
|
229
|
+
markers: East.value((parts.markers ?? []), ArrayType(PlanCellMarkerType)),
|
|
230
|
+
}), PlanRowKindType);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* A chart row's kind — Chart layers consumed AS DATA.
|
|
234
|
+
*
|
|
235
|
+
* @param parts - The row's layers and axes ({@link PlanChartParts})
|
|
236
|
+
* @returns The kind
|
|
237
|
+
*/
|
|
238
|
+
export function chartKind(parts) {
|
|
239
|
+
const heightMode = parts.height === undefined
|
|
240
|
+
? East.value(variant("spark", null), PlanChartHeightType)
|
|
241
|
+
: (typeof parts.height === "string"
|
|
242
|
+
? East.value(variant(parts.height, null), PlanChartHeightType)
|
|
243
|
+
: East.value(parts.height, PlanChartHeightType));
|
|
244
|
+
return East.value(variant("chart", {
|
|
245
|
+
layers: consumeLayers(parts.layers),
|
|
246
|
+
left: parts.left !== undefined ? some(buildChartAxis(parts.left, "left")) : none,
|
|
247
|
+
right: parts.right !== undefined ? some(buildChartAxis(parts.right, "right")) : none,
|
|
248
|
+
height: heightMode,
|
|
249
|
+
expandedHeight: parts.expandedHeight !== undefined ? some(parts.expandedHeight) : none,
|
|
250
|
+
expandable: parts.expandable ?? false,
|
|
251
|
+
}), PlanRowKindType);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* A heat row's kind.
|
|
255
|
+
*
|
|
256
|
+
* @param parts - The row's cells and the scale its derived cells paint on
|
|
257
|
+
* @param aggregate - The declared aggregate — how a parent with no cells of its own derives them from its children
|
|
258
|
+
* @returns The kind
|
|
259
|
+
*/
|
|
260
|
+
export function heatKind(parts, aggregate) {
|
|
261
|
+
const cells = parts.cells;
|
|
262
|
+
return East.value(variant("heat", {
|
|
263
|
+
cells: cells !== undefined ? East.value(cells, PlanHeatCellsType) : createHeatCells([]),
|
|
264
|
+
aggregate,
|
|
265
|
+
scale: parts.scale !== undefined
|
|
266
|
+
? East.value(some(createHeatScale(parts.scale)), OptionType(PlanHeatScaleType))
|
|
267
|
+
: East.value(none, OptionType(PlanHeatScaleType)),
|
|
268
|
+
}), PlanRowKindType);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* A table row's kind — its value series (`cells` wraps into one unstyled
|
|
272
|
+
* series, so the renderer has a single representation).
|
|
273
|
+
*
|
|
274
|
+
* @param parts - The row's cells or series, split, format, emphasis and the cells' fold
|
|
275
|
+
* @param aggregate - The declared subtotal mode — how a parent with no values of its own derives them from its children
|
|
276
|
+
* @returns The kind
|
|
277
|
+
* @throws {Error} When both `cells` and `series` are given, or `fold` with `series` (each series declares its own)
|
|
278
|
+
*/
|
|
279
|
+
export function tableKind(parts, aggregate) {
|
|
280
|
+
if (parts.cells !== undefined && parts.series !== undefined) {
|
|
281
|
+
throw new Error("Plan.table: pass `cells` (sugar for one plain series) OR `series` — not both");
|
|
282
|
+
}
|
|
283
|
+
if (parts.fold !== undefined && parts.series !== undefined) {
|
|
284
|
+
throw new Error("Plan.table: `fold` goes with `cells` — each `Plan.tableSeries` declares its own fold");
|
|
285
|
+
}
|
|
286
|
+
const series = parts.series !== undefined
|
|
287
|
+
? East.value(parts.series, ArrayType(PlanTableSeriesType))
|
|
288
|
+
: (parts.cells !== undefined
|
|
289
|
+
? East.value([East.value({
|
|
290
|
+
cells: East.value(parts.cells, ArrayType(PlanTableCellType)),
|
|
291
|
+
format: none, tone: none, strong: false, rollup: false,
|
|
292
|
+
fold: resolveFold(parts.fold, "sum"),
|
|
293
|
+
}, PlanTableSeriesType)], ArrayType(PlanTableSeriesType))
|
|
294
|
+
: East.value([], ArrayType(PlanTableSeriesType)));
|
|
295
|
+
return East.value(variant("table", {
|
|
296
|
+
series,
|
|
297
|
+
split: resolveTag(parts.split ?? "horizontal", PlanTableSplitType),
|
|
298
|
+
aggregate,
|
|
299
|
+
format: parts.format !== undefined ? some(East.value(parts.format, TickFormatType)) : none,
|
|
300
|
+
emphasis: resolveTag(parts.emphasis ?? "body", PlanTableEmphasisType),
|
|
301
|
+
}), PlanRowKindType);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* A cards row's kind.
|
|
305
|
+
*
|
|
306
|
+
* @param chips - The row's shift chips
|
|
307
|
+
* @returns The kind
|
|
308
|
+
*/
|
|
309
|
+
export function cardsKind(chips) {
|
|
310
|
+
return East.value(variant("cards", {
|
|
311
|
+
chips: East.value((chips ?? []), ArrayType(PlanChipType)),
|
|
312
|
+
}), PlanRowKindType);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* An event row's kind.
|
|
316
|
+
*
|
|
317
|
+
* @param marks - The row's marks
|
|
318
|
+
* @returns The kind
|
|
319
|
+
*/
|
|
320
|
+
export function eventsKind(marks) {
|
|
321
|
+
return East.value(variant("events", {
|
|
322
|
+
marks: East.value((marks ?? []), ArrayType(PlanEventMarkType)),
|
|
323
|
+
}), PlanRowKindType);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* A group strip's ONE summary declaration (#824) — explicit cells, a declared
|
|
327
|
+
* aggregate, or a plain band — from the two inputs an author writes it with.
|
|
328
|
+
*
|
|
329
|
+
* @param cells - Explicit collapsed-strip cells, if given
|
|
330
|
+
* @param aggregate - The declared strip aggregation over the members' heat cells, if given
|
|
331
|
+
* @param where - Who is asking, for the message
|
|
332
|
+
* @returns The summary
|
|
333
|
+
* @throws {Error} When both are given — a strip shows one or the other
|
|
334
|
+
*/
|
|
335
|
+
export function groupSummary(cells, aggregate, where) {
|
|
336
|
+
if (cells !== undefined && aggregate !== undefined) {
|
|
337
|
+
throw new Error(`${where}: give \`summary\` (explicit strip cells) OR \`summaryAggregate\` (cells derived from the ` +
|
|
338
|
+
"members) — a collapsed strip shows one or the other");
|
|
339
|
+
}
|
|
340
|
+
if (cells !== undefined)
|
|
341
|
+
return East.value(variant("cells", East.value(cells, PlanHeatCellsType)), PlanGroupSummaryType);
|
|
342
|
+
if (aggregate !== undefined)
|
|
343
|
+
return East.value(variant("aggregate", resolveTag(aggregate, PlanAggregateType)), PlanGroupSummaryType);
|
|
344
|
+
return East.value(variant("none", null), PlanGroupSummaryType);
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* A group strip's kind.
|
|
348
|
+
*
|
|
349
|
+
* @param summary - What the collapsed strip shows ({@link groupSummary})
|
|
350
|
+
* @returns The kind
|
|
351
|
+
*/
|
|
352
|
+
export function groupKind(summary) {
|
|
353
|
+
return East.value(variant("group", { summary }), PlanRowKindType);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Creates a span row (the Gantt surface) — continuous state-run bars. With
|
|
357
|
+
* nested `rows` it DECLARES a rollup (default `"union"`), and the renderer
|
|
358
|
+
* derives the parent's union / byStatus bands from the subtree's runs (`×k`
|
|
359
|
+
* peak concurrency, quantities summed unit by unit, pessimistic certainty).
|
|
360
|
+
*
|
|
361
|
+
* The data flagship, `planTargetState`, places a planned shutdown this way:
|
|
362
|
+
* a `Plan.series.rows` entry holding one `Plan.span` whose two nested trades
|
|
363
|
+
* roll up into its band.
|
|
364
|
+
*
|
|
365
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
366
|
+
* @param input - The span configuration ({@link PlanSpanInput})
|
|
367
|
+
* @returns The row stream — the span row, then every nested row under it — branded with its kind
|
|
368
|
+
*/
|
|
369
|
+
export function createSpan(input) {
|
|
370
|
+
if (input.rows === undefined) {
|
|
371
|
+
const rollup = input.rollup !== undefined ? some(resolveTag(input.rollup, PlanRollupType)) : none;
|
|
372
|
+
return makeRow(input, spanKind(input, rollup));
|
|
373
|
+
}
|
|
374
|
+
// Nesting declares the rollup (default union); the RENDERER derives the
|
|
375
|
+
// bands from the subtree's runs — never precomputed expressions.
|
|
376
|
+
return assembleNested(input, input.rows, spanKind(input, some(resolveTag(input.rollup ?? "union", PlanRollupType))));
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Creates a bucket row (the Planner surface, verbatim) — allocation tiles in
|
|
380
|
+
* discrete slots, optionally sub-divided into lanes (AM/PM). WEEK resolution
|
|
381
|
+
* folds lanes into week cells; DAY re-splits — same data, slice-driven.
|
|
382
|
+
*
|
|
383
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
384
|
+
* @param input - The buckets configuration ({@link PlanBucketsInput})
|
|
385
|
+
* @returns A one-row stream, branded with its kind
|
|
386
|
+
*/
|
|
387
|
+
export function createBuckets(input) {
|
|
388
|
+
return makeRow(input, bucketsKind(input));
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Creates a chart row — Chart layers consumed AS DATA (reified `{t, y}`
|
|
392
|
+
* points on the axis arm the x accessor's type implies), drawn by the canvas
|
|
393
|
+
* itself on the shared scale. Never an embedded `<Chart>`; `Chart.Bar` is a
|
|
394
|
+
* build-time error.
|
|
395
|
+
*
|
|
396
|
+
* @param input - The chart configuration ({@link PlanChartInput})
|
|
397
|
+
* @returns A one-row stream
|
|
398
|
+
*/
|
|
399
|
+
export function createChart(input) {
|
|
400
|
+
// Base-input `height` is the row-height override; the chart's own height
|
|
401
|
+
// mode is the `height` field here — spelled apart deliberately.
|
|
402
|
+
const kind = chartKind(input);
|
|
403
|
+
const { height: _rowHeight, ...base } = input;
|
|
404
|
+
return makeRow(base, kind);
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Creates a heat row (the Matrix cell recipes on the shared axis) — colour
|
|
408
|
+
* depth, weight bars or segment compositions. With `rows` and no explicit
|
|
409
|
+
* `cells`, the renderer derives the parent's cells — the per-bucket
|
|
410
|
+
* `aggregate` of its direct children's heat cells; the warn ring stays on
|
|
411
|
+
* the breaching child.
|
|
412
|
+
*
|
|
413
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
414
|
+
* @param input - The heat configuration ({@link PlanHeatInput})
|
|
415
|
+
* @returns The row stream — the heat row, then every nested row under it — branded with its kind
|
|
416
|
+
*/
|
|
417
|
+
export function createHeat(input) {
|
|
418
|
+
if (input.rows === undefined) {
|
|
419
|
+
const aggregate = input.aggregate !== undefined ? some(resolveTag(input.aggregate, PlanAggregateType)) : none;
|
|
420
|
+
return makeRow(input, heatKind({ ...(input.cells !== undefined ? { cells: input.cells } : {}) }, aggregate));
|
|
421
|
+
}
|
|
422
|
+
// A nesting parent DECLARES its aggregation (default mean) and the scale
|
|
423
|
+
// its derived cells paint on (#824); its cells stay empty and the
|
|
424
|
+
// renderer derives the per-bucket values from the children.
|
|
425
|
+
return assembleNested(input, input.rows, heatKind(input, some(resolveTag(input.aggregate ?? "mean", PlanAggregateType))));
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Creates a table row (bucketed numerals under the shared time-bucket columns).
|
|
429
|
+
* With `rows` and no explicit `cells`, the parent prints per-bucket
|
|
430
|
+
* subtotals via `aggregate` — a collapsed parent reads as its subtotal line.
|
|
431
|
+
*
|
|
432
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
433
|
+
* @param input - The table configuration ({@link PlanTableInput})
|
|
434
|
+
* @returns The row stream — the table row, then every nested row under it — branded with its kind
|
|
435
|
+
*/
|
|
436
|
+
export function createTable(input) {
|
|
437
|
+
if (input.rows === undefined) {
|
|
438
|
+
const aggregate = input.aggregate !== undefined ? some(resolveTag(input.aggregate, TableAggregateType)) : none;
|
|
439
|
+
return makeRow(input, tableKind(input, aggregate));
|
|
440
|
+
}
|
|
441
|
+
// A nesting parent DECLARES its subtotal mode + format; the renderer
|
|
442
|
+
// derives the per-bucket cells from the children.
|
|
443
|
+
return assembleNested(input, input.rows, tableKind(input, some(resolveTag(input.aggregate ?? "sum", TableAggregateType))));
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* Creates a cards row (the Roster surface on the shared axis) — shift chips
|
|
447
|
+
* spanning whole buckets.
|
|
448
|
+
*
|
|
449
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
450
|
+
* @param input - The cards configuration ({@link PlanCardsInput})
|
|
451
|
+
* @returns A one-row stream, branded with its kind
|
|
452
|
+
*/
|
|
453
|
+
export function createCards(input) {
|
|
454
|
+
return makeRow(input, cardsKind(input.chips));
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Creates an event row — ● milestone / ◇◆ decision / ▲ exception marks at
|
|
458
|
+
* their instants on the shared scale (Gantt milestones live here).
|
|
459
|
+
*
|
|
460
|
+
* @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
|
|
461
|
+
* @param input - The events configuration ({@link PlanEventsInput})
|
|
462
|
+
* @returns A one-row stream, branded with its kind
|
|
463
|
+
*/
|
|
464
|
+
export function createEvents(input) {
|
|
465
|
+
return makeRow(input, eventsKind(input.marks));
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Creates a group strip — the canvas-level heterogeneous container. Collapsed
|
|
469
|
+
* it rests as its summary heat strip — explicit `summary` cells, or the
|
|
470
|
+
* renderer-derived `summaryAggregate` declaration (neither ⇒ a plain band);
|
|
471
|
+
* expanding swaps the strip for the member rows in place.
|
|
472
|
+
*
|
|
473
|
+
* @typeParam K - The axis kind the group's instants ride (inferred; `never` when erased)
|
|
474
|
+
* @param input - The group configuration ({@link PlanGroupInput})
|
|
475
|
+
* @returns The row stream — the group strip, then every member under it — branded with its kind
|
|
476
|
+
* @throws {Error} When both `summary` and `summaryAggregate` are given
|
|
477
|
+
*/
|
|
478
|
+
export function createGroup(input) {
|
|
479
|
+
const kind = groupKind(groupSummary(input.summary, input.summaryAggregate, "Plan.group"));
|
|
480
|
+
if (input.rows === undefined)
|
|
481
|
+
return makeRow(input, kind);
|
|
482
|
+
return assembleNested(input, input.rows, kind);
|
|
483
|
+
}
|
|
484
|
+
//# sourceMappingURL=factories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../src/plan/factories.ts"],"names":[],"mappings":"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"}
|