@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,49 @@
|
|
|
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
|
+
* An author's own UI for one row in an inspector, on the wire: the Sheet's
|
|
7
|
+
* own Details (SB58, #1188) and a Plan event kind's own inspector (PB60,
|
|
8
|
+
* #1197). The author writes a typed East function over the row and a writer
|
|
9
|
+
* of the edited row; it crosses to the renderer wrapped over bytes, so a
|
|
10
|
+
* payload is one type whatever the rows hold.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import { BlobType, East, Expr, FunctionType, NullType, isTypeEqual, } from "@elaraai/east";
|
|
15
|
+
import { UIComponentType } from "@elaraai/east-ui";
|
|
16
|
+
/**
|
|
17
|
+
* An author's own UI for one row, on the wire: the row as bytes, and the
|
|
18
|
+
* writer that takes the edited row back as bytes, to what the inspector shows
|
|
19
|
+
* in place of its form.
|
|
20
|
+
*/
|
|
21
|
+
export const RowInspectorType = FunctionType([BlobType, FunctionType([BlobType], NullType)], UIComponentType);
|
|
22
|
+
/**
|
|
23
|
+
* Checks an author's `(row, update) => UIComponentType` against the row type,
|
|
24
|
+
* then wraps it so the row and the edited row cross as bytes. The author's
|
|
25
|
+
* function is captured as it is and called only where the renderer draws it,
|
|
26
|
+
* never here.
|
|
27
|
+
*
|
|
28
|
+
* @param fn - The author's function
|
|
29
|
+
* @param rowType - The row type
|
|
30
|
+
* @param refusal - What a function of another type is refused with, naming the option
|
|
31
|
+
* @returns The wrapped function
|
|
32
|
+
* @throws {Error} With `refusal` when the function is not `(Row, (Row) => Null) => UIComponentType`
|
|
33
|
+
*/
|
|
34
|
+
export function rowInspector(fn, rowType, refusal) {
|
|
35
|
+
const update = FunctionType([rowType], NullType);
|
|
36
|
+
const author = East.value(fn);
|
|
37
|
+
const t = Expr.type(author);
|
|
38
|
+
const fits = t.type === "Function" && t.inputs?.length === 2 && isTypeEqual(t.inputs[0], rowType) && isTypeEqual(t.inputs[1], update)
|
|
39
|
+
&& t.output !== undefined && isTypeEqual(t.output, UIComponentType);
|
|
40
|
+
if (!fits)
|
|
41
|
+
throw new Error(refusal);
|
|
42
|
+
return East.function([BlobType, FunctionType([BlobType], NullType)], UIComponentType, ($, bytes, write) => {
|
|
43
|
+
const draw = $.const(author);
|
|
44
|
+
const row = $.const(bytes.decodeBeast(rowType, "v2"));
|
|
45
|
+
const typed = $.const(East.function([rowType], NullType, ($2, edited) => { $2(write(East.Blob.encodeBeast(edited, "v2"))); }));
|
|
46
|
+
return draw(row, typed);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=row-inspector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-inspector.js","sourceRoot":"","sources":["../../../src/utils/row-inspector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EACH,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,GAE5D,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAK9G;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,EAAW,EAAE,OAAmB,EAAE,OAAe;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAsC,CAA2B,CAAC;IAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAyB,CAA6D,CAAC;IAC3G,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC;WAChI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACtG,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAgH,CAAC,CAAC;QACvI,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -16,8 +16,8 @@ export declare const thresholdPatchInput: e3.DatasetDef<import("@elaraai/east").
|
|
|
16
16
|
export declare const countInput: e3.DatasetDef<IntegerType, [variant<"field", "inputs">, variant<"field", "count">]>;
|
|
17
17
|
export declare const nameInput: e3.DatasetDef<StringType, [variant<"field", "inputs">, variant<"field", "name">]>;
|
|
18
18
|
/**
|
|
19
|
-
* The RAW ops row — deliberately FLAT and scalar: a
|
|
20
|
-
* window as a start week + a duration, its
|
|
19
|
+
* The RAW ops row — deliberately FLAT and scalar: a job ticket, the job's
|
|
20
|
+
* window as a start week + a duration, its sheets, a utilisation reading, and
|
|
21
21
|
* the lifecycle state. No dates, no display strings.
|
|
22
22
|
*
|
|
23
23
|
* Everything the canvas shows — the run bars, their labels, quantities, the
|
|
@@ -27,12 +27,12 @@ export declare const nameInput: e3.DatasetDef<StringType, [variant<"field", "inp
|
|
|
27
27
|
* the series.
|
|
28
28
|
*/
|
|
29
29
|
export declare const OpsRow: StructType<{
|
|
30
|
-
readonly
|
|
30
|
+
readonly ticket: StringType;
|
|
31
31
|
/** ISO week the job starts (2026); the series turns it into an instant. */
|
|
32
32
|
readonly startWeek: IntegerType;
|
|
33
33
|
/** Duration in weeks. */
|
|
34
34
|
readonly weeks: IntegerType;
|
|
35
|
-
readonly
|
|
35
|
+
readonly sheets: FloatType;
|
|
36
36
|
/** % utilisation, which the load series expands into a weekly strip. */
|
|
37
37
|
readonly load: FloatType;
|
|
38
38
|
readonly state: import("@elaraai/east").VariantType<{
|
|
@@ -48,14 +48,14 @@ export declare const OpsRow: StructType<{
|
|
|
48
48
|
readonly rejected: NullType;
|
|
49
49
|
}>;
|
|
50
50
|
}>;
|
|
51
|
-
/** One
|
|
52
|
-
export declare const
|
|
53
|
-
readonly
|
|
51
|
+
/** One hall's presses (or the delivery vans), keyed by id. */
|
|
52
|
+
export declare const OpsHall: DictType<StringType, StructType<{
|
|
53
|
+
readonly ticket: StringType;
|
|
54
54
|
/** ISO week the job starts (2026); the series turns it into an instant. */
|
|
55
55
|
readonly startWeek: IntegerType;
|
|
56
56
|
/** Duration in weeks. */
|
|
57
57
|
readonly weeks: IntegerType;
|
|
58
|
-
readonly
|
|
58
|
+
readonly sheets: FloatType;
|
|
59
59
|
/** % utilisation, which the load series expands into a weekly strip. */
|
|
60
60
|
readonly load: FloatType;
|
|
61
61
|
readonly state: import("@elaraai/east").VariantType<{
|
|
@@ -74,10 +74,10 @@ export declare const OpsLine: DictType<StringType, StructType<{
|
|
|
74
74
|
/**
|
|
75
75
|
* The seeded ops schedule — an `e3.input`'s default IS the dataset's initial
|
|
76
76
|
* value, so this is what a freshly-deployed workspace (and the offline
|
|
77
|
-
* snapshot harness) serves windows out of. Fifty
|
|
78
|
-
*
|
|
77
|
+
* snapshot harness) serves windows out of. Fifty presses across five
|
|
78
|
+
* halls plus ten delivery vans.
|
|
79
79
|
*
|
|
80
|
-
* GROUPED by
|
|
80
|
+
* GROUPED by hall, as the dataflow that produces it would store it: a canvas
|
|
81
81
|
* nests what its data nests, and a paged source is grouped where it is made —
|
|
82
82
|
* in an e3 task — never on the canvas one window at a time (#822).
|
|
83
83
|
*
|
|
@@ -86,12 +86,12 @@ export declare const OpsLine: DictType<StringType, StructType<{
|
|
|
86
86
|
* estimated ahead of it.
|
|
87
87
|
*/
|
|
88
88
|
export declare const opsInput: e3.DatasetDef<DictType<StringType, DictType<StringType, StructType<{
|
|
89
|
-
readonly
|
|
89
|
+
readonly ticket: StringType;
|
|
90
90
|
/** ISO week the job starts (2026); the series turns it into an instant. */
|
|
91
91
|
readonly startWeek: IntegerType;
|
|
92
92
|
/** Duration in weeks. */
|
|
93
93
|
readonly weeks: IntegerType;
|
|
94
|
-
readonly
|
|
94
|
+
readonly sheets: FloatType;
|
|
95
95
|
/** % utilisation, which the load series expands into a weekly strip. */
|
|
96
96
|
readonly load: FloatType;
|
|
97
97
|
readonly state: import("@elaraai/east").VariantType<{
|
|
@@ -156,7 +156,9 @@ export declare const workQueue: e3.RecordIndexDef<"by_status", DictType<StringTy
|
|
|
156
156
|
}>>, StructType<{
|
|
157
157
|
readonly status: StringType;
|
|
158
158
|
readonly due: DateTimeType;
|
|
159
|
-
}>, StringType
|
|
159
|
+
}>, StringType, undefined> & {
|
|
160
|
+
interval: undefined;
|
|
161
|
+
};
|
|
160
162
|
export declare const dataBindFloat: import("@elaraai/east").ExampleDef<[], any>;
|
|
161
163
|
export declare const dataBindVariants: import("@elaraai/east").ExampleDef<[], any>;
|
|
162
164
|
export declare const dataBindStagedFloat: import("@elaraai/east").ExampleDef<[], any>;
|
|
@@ -171,27 +173,27 @@ export declare const dataBindPagedIndex: import("@elaraai/east").ExampleDef<[],
|
|
|
171
173
|
* into the package.
|
|
172
174
|
*/
|
|
173
175
|
export declare const unitCountInput: e3.DatasetDef<IntegerType, [variant<"field", "inputs">, variant<"field", "unit_count">]>;
|
|
174
|
-
/** A generated unit: the weeks it runs, and
|
|
176
|
+
/** A generated unit: the weeks it runs, and how many sheets it prints. */
|
|
175
177
|
export declare const UnitRow: StructType<{
|
|
176
178
|
readonly start: DateTimeType;
|
|
177
179
|
readonly end: DateTimeType;
|
|
178
|
-
readonly
|
|
180
|
+
readonly sheets: FloatType;
|
|
179
181
|
}>;
|
|
180
182
|
/**
|
|
181
183
|
* The units, generated from their count — keyed `U10000`, `U10001`, …: fixed
|
|
182
184
|
* width, so key order is build order. Each runs two weeks, from one of ten
|
|
183
|
-
* consecutive weeks starting at W27, and
|
|
185
|
+
* consecutive weeks starting at W27, and prints 40 to 119 k sheets.
|
|
184
186
|
*/
|
|
185
187
|
export declare const generateUnits: import("@elaraai/east").CallableFunctionExpr<[IntegerType], DictType<StringType, StructType<{
|
|
186
188
|
readonly start: DateTimeType;
|
|
187
189
|
readonly end: DateTimeType;
|
|
188
|
-
readonly
|
|
190
|
+
readonly sheets: FloatType;
|
|
189
191
|
}>>>;
|
|
190
192
|
/** The task that generates the units — its output is the dataset the canvas pages. */
|
|
191
193
|
export declare const unitsTask: e3.TaskDef<DictType<StringType, StructType<{
|
|
192
194
|
readonly start: DateTimeType;
|
|
193
195
|
readonly end: DateTimeType;
|
|
194
|
-
readonly
|
|
196
|
+
readonly sheets: FloatType;
|
|
195
197
|
}>>, [variant<"field", "tasks">, variant<"field", "units">, variant<"field", "output">]>;
|
|
196
198
|
export declare const dataBindPagedBlocks: import("@elaraai/east").ExampleDef<[], any>;
|
|
197
199
|
/** A bill-of-materials part — an assembly holds its parts (#954). `cost` is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.examples.d.ts","sourceRoot":"","sources":["../../../../test/bind/data/data.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAa,UAAU,EAAc,OAAO,EAAW,MAAM,eAAe,CAAC;AAGpN,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,eAAO,MAAM,cAAc,uFAAsE,CAAC;AAClG,eAAO,MAAM,mBAAmB;;;;;;sEAAkG,CAAC;AACnI,eAAO,MAAM,UAAU,qFAAgE,CAAC;AACxF,eAAO,MAAM,SAAS,mFAAiE,CAAC;AAWxF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;IAEf,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;EAG1E,CAAC;AACH
|
|
1
|
+
{"version":3,"file":"data.examples.d.ts","sourceRoot":"","sources":["../../../../test/bind/data/data.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAa,UAAU,EAAc,OAAO,EAAW,MAAM,eAAe,CAAC;AAGpN,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,eAAO,MAAM,cAAc,uFAAsE,CAAC;AAClG,eAAO,MAAM,mBAAmB;;;;;;sEAAkG,CAAC;AACnI,eAAO,MAAM,UAAU,qFAAgE,CAAC;AACxF,eAAO,MAAM,SAAS,mFAAiE,CAAC;AAWxF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;IAEf,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;EAG1E,CAAC;AACH,8DAA8D;AAC9D,eAAO,MAAM,OAAO;;IAVhB,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;GAKzB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ;;IA1BjB,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;4DAgGxE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;IAIrB;6DACyD;;;EAG3D,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,YAAY;;;EAAwD,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;IAdnB;6DACyD;;;oEAgC1D,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;IAxClB;6DACyD;;;;;;;;CA0C3D,CAAC;AAEH,eAAO,MAAM,aAAa,6CAWxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,6CAoD3B,CAAC;AAEH,eAAO,MAAM,mBAAmB,6CAW9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,6CA2CjC,CAAC;AAEH,eAAO,MAAM,iBAAiB,6CAiG5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,6CAyBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,6CAmB7B,CAAC;AAOH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,0FAAgE,CAAC;AAE5F,0EAA0E;AAC1E,eAAO,MAAM,OAAO;;;;EAA4E,CAAC;AAEjG;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;IAWxB,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,SAAS;;;;wFAAoD,CAAC;AAE3E,eAAO,MAAM,mBAAmB,6CA+C9B,CAAC;AAIH;;uBAEuB;AACvB,eAAO,MAAM,OAAO;;;;;;GAMjB,CAAC;AAEJ;+CAC+C;AAC/C,eAAO,MAAM,QAAQ;;;;;;iEA4BlB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,6CA0B7B,CAAC;AAIH,4GAA4G;AAC5G,eAAO,MAAM,aAAa,yFAA6D,CAAC;AAExF,iEAAiE;AACjE,eAAO,MAAM,MAAM;;;;EAAgG,CAAC;AAEpH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;IAWvB,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,QAAQ;;;;uFAAiD,CAAC;AAEvE,eAAO,MAAM,kBAAkB,6CA6B7B,CAAC"}
|
|
@@ -5,8 +5,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
|
|
|
5
5
|
*/
|
|
6
6
|
/** @jsxImportSource @elaraai/e3-ui */
|
|
7
7
|
import { ArrayType, DateTimeType, DictType, East, FloatType, FunctionType, IntegerType, NullType, OptionType, RecursiveType, StringType, PatchType, StructType, none, some, variant, example } from "@elaraai/east";
|
|
8
|
-
import { Button, EventStateType, Format, Input,
|
|
9
|
-
import { Data } from "@elaraai/e3-ui";
|
|
8
|
+
import { Box, Button, EventStateType, Format, Input, Reactive, Separator, Slider, Stat, Table, Text, UIComponentType, VStack } from "@elaraai/east-ui";
|
|
9
|
+
import { Data, Plan, Sheet } from "@elaraai/e3-ui";
|
|
10
10
|
import * as e3 from "@elaraai/e3";
|
|
11
11
|
export const thresholdInput = e3.input('threshold', FloatType, variant('value', 50.0));
|
|
12
12
|
export const thresholdPatchInput = e3.input('threshold_patch', PatchType(FloatType), variant('value', variant("unchanged", null)));
|
|
@@ -21,8 +21,8 @@ const CONFIRMED = variant("confirmed", null);
|
|
|
21
21
|
const PROPOSED = variant("proposed", variant("recommended", null));
|
|
22
22
|
const ESTIMATED = variant("estimated", null);
|
|
23
23
|
/**
|
|
24
|
-
* The RAW ops row — deliberately FLAT and scalar: a
|
|
25
|
-
* window as a start week + a duration, its
|
|
24
|
+
* The RAW ops row — deliberately FLAT and scalar: a job ticket, the job's
|
|
25
|
+
* window as a start week + a duration, its sheets, a utilisation reading, and
|
|
26
26
|
* the lifecycle state. No dates, no display strings.
|
|
27
27
|
*
|
|
28
28
|
* Everything the canvas shows — the run bars, their labels, quantities, the
|
|
@@ -32,25 +32,25 @@ const ESTIMATED = variant("estimated", null);
|
|
|
32
32
|
* the series.
|
|
33
33
|
*/
|
|
34
34
|
export const OpsRow = StructType({
|
|
35
|
-
|
|
35
|
+
ticket: StringType,
|
|
36
36
|
/** ISO week the job starts (2026); the series turns it into an instant. */
|
|
37
37
|
startWeek: IntegerType,
|
|
38
38
|
/** Duration in weeks. */
|
|
39
39
|
weeks: IntegerType,
|
|
40
|
-
|
|
40
|
+
sheets: FloatType,
|
|
41
41
|
/** % utilisation, which the load series expands into a weekly strip. */
|
|
42
42
|
load: FloatType,
|
|
43
43
|
state: EventStateType,
|
|
44
44
|
});
|
|
45
|
-
/** One
|
|
46
|
-
export const
|
|
45
|
+
/** One hall's presses (or the delivery vans), keyed by id. */
|
|
46
|
+
export const OpsHall = DictType(StringType, OpsRow);
|
|
47
47
|
/**
|
|
48
48
|
* The seeded ops schedule — an `e3.input`'s default IS the dataset's initial
|
|
49
49
|
* value, so this is what a freshly-deployed workspace (and the offline
|
|
50
|
-
* snapshot harness) serves windows out of. Fifty
|
|
51
|
-
*
|
|
50
|
+
* snapshot harness) serves windows out of. Fifty presses across five
|
|
51
|
+
* halls plus ten delivery vans.
|
|
52
52
|
*
|
|
53
|
-
* GROUPED by
|
|
53
|
+
* GROUPED by hall, as the dataflow that produces it would store it: a canvas
|
|
54
54
|
* nests what its data nests, and a paged source is grouped where it is made —
|
|
55
55
|
* in an e3 task — never on the canvas one window at a time (#822).
|
|
56
56
|
*
|
|
@@ -58,80 +58,80 @@ export const OpsLine = DictType(StringType, OpsRow);
|
|
|
58
58
|
* observed at the back, in-progress across it, confirmed then proposed then
|
|
59
59
|
* estimated ahead of it.
|
|
60
60
|
*/
|
|
61
|
-
export const opsInput = e3.input('ops', DictType(StringType,
|
|
62
|
-
["
|
|
63
|
-
["
|
|
64
|
-
["
|
|
65
|
-
["
|
|
66
|
-
["
|
|
67
|
-
["
|
|
68
|
-
["
|
|
69
|
-
["
|
|
70
|
-
["
|
|
71
|
-
["
|
|
72
|
-
["
|
|
61
|
+
export const opsInput = e3.input('ops', DictType(StringType, OpsHall), variant('value', new Map([
|
|
62
|
+
["Hall 1", new Map([
|
|
63
|
+
["H1-P01", { ticket: "J-4603", startWeek: 25n, weeks: 3n, sheets: 96.0, load: 78.0, state: ACTUAL }],
|
|
64
|
+
["H1-P02", { ticket: "J-4612", startWeek: 26n, weeks: 2n, sheets: 64.0, load: 71.0, state: ACTUAL }],
|
|
65
|
+
["H1-P03", { ticket: "J-4642", startWeek: 28n, weeks: 3n, sheets: 112.0, load: 88.0, state: RUNNING }],
|
|
66
|
+
["H1-P04", { ticket: "J-4624", startWeek: 27n, weeks: 4n, sheets: 104.0, load: 84.0, state: RUNNING }],
|
|
67
|
+
["H1-P05", { ticket: "J-4657", startWeek: 31n, weeks: 3n, sheets: 88.0, load: 66.0, state: CONFIRMED }],
|
|
68
|
+
["H1-P06", { ticket: "J-4669", startWeek: 32n, weeks: 2n, sheets: 72.0, load: 59.0, state: CONFIRMED }],
|
|
69
|
+
["H1-P07", { ticket: "J-4693", startWeek: 33n, weeks: 4n, sheets: 120.0, load: 92.0, state: PROPOSED }],
|
|
70
|
+
["H1-P08", { ticket: "J-4708", startWeek: 35n, weeks: 3n, sheets: 96.0, load: 74.0, state: PROPOSED }],
|
|
71
|
+
["H1-P09", { ticket: "J-4726", startWeek: 36n, weeks: 3n, sheets: 80.0, load: 63.0, state: ESTIMATED }],
|
|
72
|
+
["H1-P10", { ticket: "J-4741", startWeek: 37n, weeks: 2n, sheets: 56.0, load: 48.0, state: ESTIMATED }],
|
|
73
73
|
])],
|
|
74
|
-
["
|
|
75
|
-
["
|
|
76
|
-
["
|
|
77
|
-
["
|
|
78
|
-
["
|
|
79
|
-
["
|
|
80
|
-
["
|
|
81
|
-
["
|
|
82
|
-
["
|
|
83
|
-
["
|
|
84
|
-
["
|
|
74
|
+
["Hall 2", new Map([
|
|
75
|
+
["H2-P01", { ticket: "J-4906", startWeek: 25n, weeks: 4n, sheets: 118.0, load: 91.0, state: ACTUAL }],
|
|
76
|
+
["H2-P02", { ticket: "J-4921", startWeek: 27n, weeks: 2n, sheets: 52.0, load: 55.0, state: ACTUAL }],
|
|
77
|
+
["H2-P03", { ticket: "J-4933", startWeek: 29n, weeks: 3n, sheets: 92.0, load: 80.0, state: RUNNING }],
|
|
78
|
+
["H2-P04", { ticket: "J-4948", startWeek: 30n, weeks: 2n, sheets: 68.0, load: 61.0, state: CONFIRMED }],
|
|
79
|
+
["H2-P05", { ticket: "J-4960", startWeek: 31n, weeks: 4n, sheets: 128.0, load: 96.0, state: CONFIRMED }],
|
|
80
|
+
["H2-P06", { ticket: "J-4975", startWeek: 33n, weeks: 3n, sheets: 84.0, load: 69.0, state: PROPOSED }],
|
|
81
|
+
["H2-P07", { ticket: "J-4987", startWeek: 34n, weeks: 2n, sheets: 60.0, load: 52.0, state: PROPOSED }],
|
|
82
|
+
["H2-P08", { ticket: "J-5002", startWeek: 35n, weeks: 4n, sheets: 112.0, load: 87.0, state: PROPOSED }],
|
|
83
|
+
["H2-P09", { ticket: "J-5014", startWeek: 37n, weeks: 3n, sheets: 76.0, load: 64.0, state: ESTIMATED }],
|
|
84
|
+
["H2-P10", { ticket: "J-5029", startWeek: 38n, weeks: 2n, sheets: 48.0, load: 44.0, state: ESTIMATED }],
|
|
85
85
|
])],
|
|
86
|
-
["
|
|
87
|
-
["
|
|
88
|
-
["
|
|
89
|
-
["
|
|
90
|
-
["
|
|
91
|
-
["
|
|
92
|
-
["
|
|
93
|
-
["
|
|
94
|
-
["
|
|
95
|
-
["
|
|
96
|
-
["
|
|
86
|
+
["Hall 3", new Map([
|
|
87
|
+
["H3-P01", { ticket: "J-5203", startWeek: 24n, weeks: 3n, sheets: 88.0, load: 73.0, state: ACTUAL }],
|
|
88
|
+
["H3-P02", { ticket: "J-5215", startWeek: 26n, weeks: 4n, sheets: 124.0, load: 94.0, state: ACTUAL }],
|
|
89
|
+
["H3-P03", { ticket: "J-5230", startWeek: 29n, weeks: 2n, sheets: 56.0, load: 51.0, state: RUNNING }],
|
|
90
|
+
["H3-P04", { ticket: "J-5242", startWeek: 30n, weeks: 3n, sheets: 100.0, load: 82.0, state: RUNNING }],
|
|
91
|
+
["H3-P05", { ticket: "J-5257", startWeek: 32n, weeks: 2n, sheets: 72.0, load: 62.0, state: CONFIRMED }],
|
|
92
|
+
["H3-P06", { ticket: "J-5272", startWeek: 33n, weeks: 4n, sheets: 116.0, load: 90.0, state: CONFIRMED }],
|
|
93
|
+
["H3-P07", { ticket: "J-5284", startWeek: 35n, weeks: 3n, sheets: 92.0, load: 76.0, state: PROPOSED }],
|
|
94
|
+
["H3-P08", { ticket: "J-5299", startWeek: 36n, weeks: 2n, sheets: 64.0, load: 57.0, state: PROPOSED }],
|
|
95
|
+
["H3-P09", { ticket: "J-5311", startWeek: 37n, weeks: 4n, sheets: 108.0, load: 85.0, state: ESTIMATED }],
|
|
96
|
+
["H3-P10", { ticket: "J-5323", startWeek: 39n, weeks: 2n, sheets: 44.0, load: 41.0, state: ESTIMATED }],
|
|
97
97
|
])],
|
|
98
|
-
["
|
|
99
|
-
["
|
|
100
|
-
["
|
|
101
|
-
["
|
|
102
|
-
["
|
|
103
|
-
["
|
|
104
|
-
["
|
|
105
|
-
["
|
|
106
|
-
["
|
|
107
|
-
["
|
|
108
|
-
["
|
|
98
|
+
["Hall 4", new Map([
|
|
99
|
+
["H4-P01", { ticket: "J-5506", startWeek: 25n, weeks: 2n, sheets: 60.0, load: 54.0, state: ACTUAL }],
|
|
100
|
+
["H4-P02", { ticket: "J-5518", startWeek: 27n, weeks: 3n, sheets: 96.0, load: 79.0, state: ACTUAL }],
|
|
101
|
+
["H4-P03", { ticket: "J-5533", startWeek: 28n, weeks: 4n, sheets: 132.0, load: 98.0, state: RUNNING }],
|
|
102
|
+
["H4-P04", { ticket: "J-5545", startWeek: 31n, weeks: 2n, sheets: 68.0, load: 60.0, state: CONFIRMED }],
|
|
103
|
+
["H4-P05", { ticket: "J-5560", startWeek: 32n, weeks: 3n, sheets: 104.0, load: 83.0, state: CONFIRMED }],
|
|
104
|
+
["H4-P06", { ticket: "J-5572", startWeek: 34n, weeks: 2n, sheets: 76.0, load: 67.0, state: PROPOSED }],
|
|
105
|
+
["H4-P07", { ticket: "J-5587", startWeek: 35n, weeks: 4n, sheets: 120.0, load: 93.0, state: PROPOSED }],
|
|
106
|
+
["H4-P08", { ticket: "J-5599", startWeek: 37n, weeks: 3n, sheets: 84.0, load: 70.0, state: ESTIMATED }],
|
|
107
|
+
["H4-P09", { ticket: "J-5614", startWeek: 38n, weeks: 2n, sheets: 52.0, load: 47.0, state: ESTIMATED }],
|
|
108
|
+
["H4-P10", { ticket: "J-5626", startWeek: 39n, weeks: 3n, sheets: 88.0, load: 72.0, state: ESTIMATED }],
|
|
109
109
|
])],
|
|
110
|
-
["
|
|
111
|
-
["
|
|
112
|
-
["
|
|
113
|
-
["
|
|
114
|
-
["
|
|
115
|
-
["
|
|
116
|
-
["
|
|
117
|
-
["
|
|
118
|
-
["
|
|
119
|
-
["
|
|
120
|
-
["
|
|
110
|
+
["Hall 5", new Map([
|
|
111
|
+
["H5-P01", { ticket: "J-5803", startWeek: 24n, weeks: 4n, sheets: 110.0, load: 86.0, state: ACTUAL }],
|
|
112
|
+
["H5-P02", { ticket: "J-5815", startWeek: 26n, weeks: 2n, sheets: 58.0, load: 53.0, state: ACTUAL }],
|
|
113
|
+
["H5-P03", { ticket: "J-5827", startWeek: 28n, weeks: 3n, sheets: 94.0, load: 77.0, state: RUNNING }],
|
|
114
|
+
["H5-P04", { ticket: "J-5839", startWeek: 30n, weeks: 4n, sheets: 126.0, load: 95.0, state: RUNNING }],
|
|
115
|
+
["H5-P05", { ticket: "J-5854", startWeek: 32n, weeks: 2n, sheets: 70.0, load: 61.0, state: CONFIRMED }],
|
|
116
|
+
["H5-P06", { ticket: "J-5866", startWeek: 33n, weeks: 3n, sheets: 98.0, load: 81.0, state: CONFIRMED }],
|
|
117
|
+
["H5-P07", { ticket: "J-5881", startWeek: 35n, weeks: 2n, sheets: 66.0, load: 58.0, state: PROPOSED }],
|
|
118
|
+
["H5-P08", { ticket: "J-5893", startWeek: 36n, weeks: 4n, sheets: 114.0, load: 89.0, state: PROPOSED }],
|
|
119
|
+
["H5-P09", { ticket: "J-5908", startWeek: 38n, weeks: 3n, sheets: 82.0, load: 68.0, state: ESTIMATED }],
|
|
120
|
+
["H5-P10", { ticket: "J-5920", startWeek: 39n, weeks: 2n, sheets: 50.0, load: 45.0, state: ESTIMATED }],
|
|
121
121
|
])],
|
|
122
|
-
// The
|
|
123
|
-
// rather than run bars (see the `
|
|
124
|
-
["
|
|
125
|
-
["
|
|
126
|
-
["
|
|
127
|
-
["
|
|
128
|
-
["
|
|
129
|
-
["
|
|
130
|
-
["
|
|
131
|
-
["
|
|
132
|
-
["
|
|
133
|
-
["
|
|
134
|
-
["
|
|
122
|
+
// The delivery vans — the same flat row, read as weekly load strips
|
|
123
|
+
// rather than run bars (see the `vans` series below).
|
|
124
|
+
["Vans", new Map([
|
|
125
|
+
["V-01", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 46.0, state: CONFIRMED }],
|
|
126
|
+
["V-02", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 58.0, state: CONFIRMED }],
|
|
127
|
+
["V-03", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 67.0, state: CONFIRMED }],
|
|
128
|
+
["V-04", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 74.0, state: CONFIRMED }],
|
|
129
|
+
["V-05", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 81.0, state: CONFIRMED }],
|
|
130
|
+
["V-06", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 88.0, state: CONFIRMED }],
|
|
131
|
+
["V-07", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 93.0, state: CONFIRMED }],
|
|
132
|
+
["V-08", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 97.0, state: CONFIRMED }],
|
|
133
|
+
["V-09", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 64.0, state: CONFIRMED }],
|
|
134
|
+
["V-10", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 52.0, state: CONFIRMED }],
|
|
135
135
|
])],
|
|
136
136
|
])));
|
|
137
137
|
/**
|
|
@@ -263,10 +263,10 @@ export const dataBindPagedPlan = example({
|
|
|
263
263
|
"canvas", "series", "collection", "large", "dataset", "Reactive", "stream",
|
|
264
264
|
"grouped", "children", "rollup", "group",
|
|
265
265
|
],
|
|
266
|
-
description: "Bind a collection dataset BY WINDOW and hand it straight to a Plan — `Data.bindPaged(ops)` returns the paged handle, the row-source contract the canvas recognises by its East type, and the factory wraps `page` with the series' row-building functions so each window's rows become canvas rows client-side. The dataset is GROUPED by
|
|
266
|
+
description: "Bind a collection dataset BY WINDOW and hand it straight to a Plan — `Data.bindPaged(ops)` returns the paged handle, the row-source contract the canvas recognises by its East type, and the factory wraps `page` with the series' row-building functions so each window's rows become canvas rows client-side. The dataset is GROUPED by hall where it is made (an e3 task), so the canvas nests what the data nests: a hall's span row rolls up the union of its presses' runs, stepped down into with `Plan.children`, and the vans are one collapsed group strip. The stored rows are FLAT scalars (a start week, a duration, a sheet count, a load reading); the series expressions do the reading — week arithmetic turns indices into instants, one job becomes a make-ready bar plus its run, and `East.Array.generate` expands a single load figure into a twelve-week heat strip. The dataset is never fetched whole and nothing here touches bytes, offsets or beast2",
|
|
267
267
|
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
268
268
|
// The paged handle — the dataset's element type comes from the def,
|
|
269
|
-
// so `page(offset, limit)` is typed Option<Dict<String,
|
|
269
|
+
// so `page(offset, limit)` is typed Option<Dict<String, OpsHall>>
|
|
270
270
|
// with no decode step to write.
|
|
271
271
|
const paged = $.let(Data.bindPaged(opsInput));
|
|
272
272
|
// Monday of ISO week n, 2026 (W1 Monday = 2025-12-29). The stored
|
|
@@ -276,56 +276,56 @@ export const dataBindPagedPlan = example({
|
|
|
276
276
|
return w1.addWeeks(n.subtract(1n));
|
|
277
277
|
}));
|
|
278
278
|
const series = $.const([
|
|
279
|
-
//
|
|
279
|
+
// Halls — one span row per hall whose own runs are none: it
|
|
280
280
|
// DECLARES a union rollup, so its ×k concurrency bands are the
|
|
281
|
-
// renderer's, over the
|
|
282
|
-
//
|
|
283
|
-
// arrives with all of its
|
|
284
|
-
Plan.series.span(
|
|
285
|
-
key: "
|
|
286
|
-
match: (
|
|
287
|
-
label: (
|
|
281
|
+
// renderer's, over the presses stepped down into from the
|
|
282
|
+
// hall's own entry — exact in every window, since a hall
|
|
283
|
+
// arrives with all of its presses.
|
|
284
|
+
Plan.series.span(OpsHall, {
|
|
285
|
+
key: "halls", title: "Halls",
|
|
286
|
+
match: (_h, hall) => hall.equal("Vans").not(),
|
|
287
|
+
label: (_h, hall) => hall,
|
|
288
288
|
runs: _l => [],
|
|
289
289
|
rollup: "union",
|
|
290
290
|
children: Plan.children((l) => l, [
|
|
291
|
-
//
|
|
292
|
-
//
|
|
293
|
-
// label and quantity built from the
|
|
294
|
-
// (a quantity carries its unit — the
|
|
291
|
+
// Presses — each flat row becomes TWO bars: a one-week
|
|
292
|
+
// make-ready ahead of the job, then the run itself, with its
|
|
293
|
+
// label and quantity built from the job ticket and sheets
|
|
294
|
+
// (a quantity carries its unit — the hall's bands sum by it).
|
|
295
295
|
Plan.series.span(OpsRow, {
|
|
296
|
-
key: "
|
|
296
|
+
key: "presses", title: "Presses",
|
|
297
297
|
label: (_r, k) => k, id: true,
|
|
298
|
-
value: r => some(East.str `${East.Float.printFixed(r.
|
|
298
|
+
value: r => some(East.str `${East.Float.printFixed(r.sheets, 0n)} k sheets`),
|
|
299
299
|
runs: r => [
|
|
300
300
|
Plan.run({
|
|
301
|
-
key: East.str `${r.
|
|
301
|
+
key: East.str `${r.ticket}-mr`,
|
|
302
302
|
start: week(r.startWeek.subtract(1n)), end: week(r.startWeek),
|
|
303
|
-
label: "
|
|
303
|
+
label: "MAKEREADY", state: r.state,
|
|
304
304
|
}),
|
|
305
305
|
Plan.run({
|
|
306
|
-
key: r.
|
|
306
|
+
key: r.ticket,
|
|
307
307
|
start: week(r.startWeek), end: week(r.startWeek.add(r.weeks)),
|
|
308
|
-
label: East.str `RUN · ${r.
|
|
309
|
-
quantity: Plan.quantity(r.
|
|
308
|
+
label: East.str `RUN · ${r.ticket}`,
|
|
309
|
+
quantity: Plan.quantity(r.sheets, { unit: "k sheets", format: Format.Number({ maximumFractionDigits: 0n }) }),
|
|
310
310
|
state: r.state,
|
|
311
311
|
}),
|
|
312
312
|
],
|
|
313
313
|
}),
|
|
314
314
|
]),
|
|
315
315
|
}),
|
|
316
|
-
//
|
|
317
|
-
//
|
|
316
|
+
// Vans — one collapsed group strip, its mean derived from the
|
|
317
|
+
// vans it nests: the SAME flat row read as a load strip, one
|
|
318
318
|
// scalar `load` expanded by `East.Array.generate` into a cell
|
|
319
|
-
// per week, drifting with a per-
|
|
319
|
+
// per week, drifting with a per-van phase so the strip reads
|
|
320
320
|
// as a real profile rather than a flat band.
|
|
321
|
-
Plan.series.group(
|
|
322
|
-
key: "
|
|
323
|
-
match: (
|
|
324
|
-
label: (
|
|
321
|
+
Plan.series.group(OpsHall, {
|
|
322
|
+
key: "vans", title: "Vans",
|
|
323
|
+
match: (_h, hall) => hall.equal("Vans"),
|
|
324
|
+
label: (_h, hall) => hall,
|
|
325
325
|
collapsed: true, summaryAggregate: "mean",
|
|
326
326
|
children: Plan.children((l) => l, [
|
|
327
327
|
Plan.series.heat(OpsRow, {
|
|
328
|
-
key: "
|
|
328
|
+
key: "van-load", title: "Van load",
|
|
329
329
|
label: (_r, k) => k, id: true,
|
|
330
330
|
cells: r => Plan.heatCells(East.Array.generate(12n, Plan.Types.HeatCell, ($, i) => {
|
|
331
331
|
const drift = $.let(i.toFloat().multiply(2.5).subtract(6.0), FloatType);
|
|
@@ -341,7 +341,7 @@ export const dataBindPagedPlan = example({
|
|
|
341
341
|
}),
|
|
342
342
|
]),
|
|
343
343
|
}),
|
|
344
|
-
], ArrayType(Plan.Types.Series(
|
|
344
|
+
], ArrayType(Plan.Types.Series(OpsHall)));
|
|
345
345
|
const axis = $.const(Plan.axis({
|
|
346
346
|
window: { min: week(24n), max: week(42n) },
|
|
347
347
|
resolution: "week", resolutions: ["month", "week", "day"], now: week(31n),
|
|
@@ -398,12 +398,12 @@ export const dataBindPagedIndex = example({
|
|
|
398
398
|
* into the package.
|
|
399
399
|
*/
|
|
400
400
|
export const unitCountInput = e3.input('unit_count', IntegerType, variant('value', 3000n));
|
|
401
|
-
/** A generated unit: the weeks it runs, and
|
|
402
|
-
export const UnitRow = StructType({ start: DateTimeType, end: DateTimeType,
|
|
401
|
+
/** A generated unit: the weeks it runs, and how many sheets it prints. */
|
|
402
|
+
export const UnitRow = StructType({ start: DateTimeType, end: DateTimeType, sheets: FloatType });
|
|
403
403
|
/**
|
|
404
404
|
* The units, generated from their count — keyed `U10000`, `U10001`, …: fixed
|
|
405
405
|
* width, so key order is build order. Each runs two weeks, from one of ten
|
|
406
|
-
* consecutive weeks starting at W27, and
|
|
406
|
+
* consecutive weeks starting at W27, and prints 40 to 119 k sheets.
|
|
407
407
|
*/
|
|
408
408
|
export const generateUnits = East.function([IntegerType], DictType(StringType, UnitRow), ($, count) => {
|
|
409
409
|
// Monday of ISO week 1, 2026.
|
|
@@ -411,7 +411,7 @@ export const generateUnits = East.function([IntegerType], DictType(StringType, U
|
|
|
411
411
|
return East.Array.range(0n, count).toDict((_$, i) => East.str `U${i.add(10000n)}`, ($2, i) => $2.const({
|
|
412
412
|
start: w1.addWeeks(i.remainder(10n).add(26n)),
|
|
413
413
|
end: w1.addWeeks(i.remainder(10n).add(28n)),
|
|
414
|
-
|
|
414
|
+
sheets: i.remainder(80n).add(40n).toFloat(),
|
|
415
415
|
}, UnitRow));
|
|
416
416
|
});
|
|
417
417
|
/** The task that generates the units — its output is the dataset the canvas pages. */
|
|
@@ -437,10 +437,10 @@ export const dataBindPagedBlocks = example({
|
|
|
437
437
|
Plan.series.span(UnitRow, {
|
|
438
438
|
key: "jobs", title: "Jobs",
|
|
439
439
|
label: (_r, k) => k, id: true,
|
|
440
|
-
value: r => some(East.str `${East.Float.printFixed(r.
|
|
440
|
+
value: r => some(East.str `${East.Float.printFixed(r.sheets, 0n)} k sheets`),
|
|
441
441
|
runs: (r, k) => [Plan.run({
|
|
442
442
|
key: "run", start: r.start, end: r.end, label: East.str `RUN · ${k}`,
|
|
443
|
-
quantity: Plan.quantity(r.
|
|
443
|
+
quantity: Plan.quantity(r.sheets, { unit: "k sheets", format: Format.Number({ maximumFractionDigits: 0n }) }),
|
|
444
444
|
state: "actual",
|
|
445
445
|
})],
|
|
446
446
|
}),
|
|
@@ -534,7 +534,7 @@ export const JobRow = StructType({ start: OptionType(DateTimeType), task: String
|
|
|
534
534
|
*/
|
|
535
535
|
export const generateJobs = East.function([IntegerType], DictType(StringType, JobRow), ($, count) => {
|
|
536
536
|
const day0 = $.const(new Date("2026-01-05T00:00:00Z"), DateTimeType);
|
|
537
|
-
const tasks = $.const(["
|
|
537
|
+
const tasks = $.const(["Routing", "Spraying", "Wrapping"], ArrayType(StringType));
|
|
538
538
|
return East.Array.range(0n, count).toDict((_$, i) => East.str `J${i.add(1000n)}`, ($2, i) => $2.const({
|
|
539
539
|
start: some(day0.addDays(i)),
|
|
540
540
|
task: tasks.get(i.remainder(3n)),
|
|
@@ -552,11 +552,11 @@ export const dataBindPagedSheet = example({
|
|
|
552
552
|
description: "A paged sheet over a BOUND keyed dataset — `Data.bindPaged(jobsTask)` over the jobs an `e3.task` generates: windows land as the planner scrolls, the footer counts elements, the blank tail appears once the source is exhausted, and key search seeks the dataset's own keys. A keyed source needs no `id` — its key is the row id. Read-only: a sheet edits a paged source only through an authoritative `onApply`, which this one declares none of",
|
|
553
553
|
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
554
554
|
const jobs = $.let(Data.bindPaged(jobsTask));
|
|
555
|
-
return (_jsxs(VStack, { gap: "3", align: "stretch", children: [_jsx(Sheet, { data: jobs, columns: {
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
555
|
+
return (_jsxs(VStack, { gap: "3", align: "stretch", children: [_jsx(Box, { height: "420px", children: _jsx(Sheet, { data: jobs, columns: {
|
|
556
|
+
start: Sheet.column.date(JobRow, { header: "Start", width: "96px" }),
|
|
557
|
+
task: Sheet.column.text(JobRow, { header: "Task", width: "180px" }),
|
|
558
|
+
qty: Sheet.column.quantity(JobRow, { header: "Qty", width: "112px", format: Format.Number({ maximumFractionDigits: 0n }) }),
|
|
559
|
+
}, readOnly: true }) }), _jsx(Text.MonoLabel, { children: "Bound dataset \u00B7 key search and paging" })] }));
|
|
560
560
|
} }))),
|
|
561
561
|
inputs: [],
|
|
562
562
|
});
|