@elaraai/e3-ui 1.0.85 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bind/data-indexed.d.ts +159 -0
- package/dist/src/bind/data-indexed.d.ts.map +1 -0
- package/dist/src/bind/data-indexed.js +105 -0
- package/dist/src/bind/data-indexed.js.map +1 -0
- package/dist/src/bind/data.d.ts +5 -3
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +6 -0
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/record.d.ts +34 -23
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +46 -19
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +2923 -0
- package/dist/src/calendar/index.d.ts.map +1 -0
- package/dist/src/calendar/index.js +135 -0
- package/dist/src/calendar/index.js.map +1 -0
- package/dist/src/decision/queue.d.ts +3 -3
- package/dist/src/decision/queue.d.ts.map +1 -1
- package/dist/src/decision/queue.js +2 -2
- package/dist/src/decision/queue.js.map +1 -1
- package/dist/src/decision/types.d.ts +4 -0
- package/dist/src/decision/types.d.ts.map +1 -1
- package/dist/src/decision/types.js +4 -0
- package/dist/src/decision/types.js.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +114 -0
- package/dist/src/flowchart/canvas.d.ts.map +1 -0
- package/dist/src/flowchart/canvas.js +84 -0
- package/dist/src/flowchart/canvas.js.map +1 -0
- package/dist/src/flowchart/flowchart.d.ts +79 -0
- package/dist/src/flowchart/flowchart.d.ts.map +1 -0
- package/dist/src/flowchart/flowchart.js +9 -0
- package/dist/src/flowchart/flowchart.js.map +1 -0
- package/dist/src/flowchart/index.d.ts +305 -0
- package/dist/src/flowchart/index.d.ts.map +1 -0
- package/dist/src/flowchart/index.js +267 -0
- package/dist/src/flowchart/index.js.map +1 -0
- package/dist/src/flowchart/library.d.ts +720 -0
- package/dist/src/flowchart/library.d.ts.map +1 -0
- package/dist/src/flowchart/library.js +611 -0
- package/dist/src/flowchart/library.js.map +1 -0
- package/dist/src/flowchart/over.d.ts +234 -0
- package/dist/src/flowchart/over.d.ts.map +1 -0
- package/dist/src/flowchart/over.js +220 -0
- package/dist/src/flowchart/over.js.map +1 -0
- package/dist/src/flowchart/patch.d.ts +64 -0
- package/dist/src/flowchart/patch.d.ts.map +1 -0
- package/dist/src/flowchart/patch.js +67 -0
- package/dist/src/flowchart/patch.js.map +1 -0
- package/dist/src/flowchart/payload.d.ts +8220 -0
- package/dist/src/flowchart/payload.d.ts.map +1 -0
- package/dist/src/flowchart/payload.js +521 -0
- package/dist/src/flowchart/payload.js.map +1 -0
- package/dist/src/flowchart/types.d.ts +393 -0
- package/dist/src/flowchart/types.d.ts.map +1 -0
- package/dist/src/flowchart/types.js +216 -0
- package/dist/src/flowchart/types.js.map +1 -0
- package/dist/src/flowchart/values.d.ts +267 -0
- package/dist/src/flowchart/values.d.ts.map +1 -0
- package/dist/src/flowchart/values.js +216 -0
- package/dist/src/flowchart/values.js.map +1 -0
- package/dist/src/flowchart/window.d.ts +521 -0
- package/dist/src/flowchart/window.d.ts.map +1 -0
- package/dist/src/flowchart/window.js +69 -0
- package/dist/src/flowchart/window.js.map +1 -0
- package/dist/src/index.d.ts +25 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +48 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +35 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +72 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/assemble.d.ts +2224 -0
- package/dist/src/plan/assemble.d.ts.map +1 -0
- package/dist/src/plan/assemble.js +210 -0
- package/dist/src/plan/assemble.js.map +1 -0
- package/dist/src/plan/builders.d.ts +790 -0
- package/dist/src/plan/builders.d.ts.map +1 -0
- package/dist/src/plan/builders.js +749 -0
- package/dist/src/plan/builders.js.map +1 -0
- package/dist/src/plan/event-rows.d.ts +2565 -0
- package/dist/src/plan/event-rows.d.ts.map +1 -0
- package/dist/src/plan/event-rows.js +689 -0
- package/dist/src/plan/event-rows.js.map +1 -0
- package/dist/src/plan/factories.d.ts +458 -0
- package/dist/src/plan/factories.d.ts.map +1 -0
- package/dist/src/plan/factories.js +484 -0
- package/dist/src/plan/factories.js.map +1 -0
- package/dist/src/plan/index.d.ts +672 -0
- package/dist/src/plan/index.d.ts.map +1 -0
- package/dist/src/plan/index.js +532 -0
- package/dist/src/plan/index.js.map +1 -0
- package/dist/src/plan/ir.d.ts +2594 -0
- package/dist/src/plan/ir.d.ts.map +1 -0
- package/dist/src/plan/ir.js +78 -0
- package/dist/src/plan/ir.js.map +1 -0
- package/dist/src/plan/library.d.ts +772 -0
- package/dist/src/plan/library.d.ts.map +1 -0
- package/dist/src/plan/library.js +424 -0
- package/dist/src/plan/library.js.map +1 -0
- package/dist/src/plan/ordered-source.d.ts +27 -0
- package/dist/src/plan/ordered-source.d.ts.map +1 -0
- package/dist/src/plan/ordered-source.js +48 -0
- package/dist/src/plan/ordered-source.js.map +1 -0
- package/dist/src/plan/over.d.ts +247 -0
- package/dist/src/plan/over.d.ts.map +1 -0
- package/dist/src/plan/over.js +266 -0
- package/dist/src/plan/over.js.map +1 -0
- package/dist/src/plan/pick.d.ts +78 -0
- package/dist/src/plan/pick.d.ts.map +1 -0
- package/dist/src/plan/pick.js +146 -0
- package/dist/src/plan/pick.js.map +1 -0
- package/dist/src/plan/plan.d.ts +11611 -0
- package/dist/src/plan/plan.d.ts.map +1 -0
- package/dist/src/plan/plan.js +428 -0
- package/dist/src/plan/plan.js.map +1 -0
- package/dist/src/plan/refs.d.ts +218 -0
- package/dist/src/plan/refs.d.ts.map +1 -0
- package/dist/src/plan/refs.js +226 -0
- package/dist/src/plan/refs.js.map +1 -0
- package/dist/src/plan/root.d.ts +290 -0
- package/dist/src/plan/root.d.ts.map +1 -0
- package/dist/src/plan/root.js +463 -0
- package/dist/src/plan/root.js.map +1 -0
- package/dist/src/plan/series.d.ts +13554 -0
- package/dist/src/plan/series.d.ts.map +1 -0
- package/dist/src/plan/series.js +1921 -0
- package/dist/src/plan/series.js.map +1 -0
- package/dist/src/plan/types.d.ts +12400 -0
- package/dist/src/plan/types.d.ts.map +1 -0
- package/dist/src/plan/types.js +1335 -0
- package/dist/src/plan/types.js.map +1 -0
- package/dist/src/roster/coverage.d.ts +240 -0
- package/dist/src/roster/coverage.d.ts.map +1 -0
- package/dist/src/roster/coverage.js +109 -0
- package/dist/src/roster/coverage.js.map +1 -0
- package/dist/src/roster/index.d.ts +4028 -0
- package/dist/src/roster/index.d.ts.map +1 -0
- package/dist/src/roster/index.js +115 -0
- package/dist/src/roster/index.js.map +1 -0
- package/dist/src/roster/library.d.ts +106 -0
- package/dist/src/roster/library.d.ts.map +1 -0
- package/dist/src/roster/library.js +78 -0
- package/dist/src/roster/library.js.map +1 -0
- package/dist/src/roster/people.d.ts +50 -0
- package/dist/src/roster/people.d.ts.map +1 -0
- package/dist/src/roster/people.js +32 -0
- package/dist/src/roster/people.js.map +1 -0
- package/dist/src/roster/rules.d.ts +275 -0
- package/dist/src/roster/rules.d.ts.map +1 -0
- package/dist/src/roster/rules.js +162 -0
- package/dist/src/roster/rules.js.map +1 -0
- package/dist/src/roster/types.d.ts +672 -0
- package/dist/src/roster/types.d.ts.map +1 -0
- package/dist/src/roster/types.js +248 -0
- package/dist/src/roster/types.js.map +1 -0
- package/dist/src/roster/visibility.d.ts +66 -0
- package/dist/src/roster/visibility.d.ts.map +1 -0
- package/dist/src/roster/visibility.js +25 -0
- package/dist/src/roster/visibility.js.map +1 -0
- package/dist/src/schedule/days.d.ts +54 -0
- package/dist/src/schedule/days.d.ts.map +1 -0
- package/dist/src/schedule/days.js +68 -0
- package/dist/src/schedule/days.js.map +1 -0
- package/dist/src/schedule/events.d.ts +433 -0
- package/dist/src/schedule/events.d.ts.map +1 -0
- package/dist/src/schedule/events.js +851 -0
- package/dist/src/schedule/events.js.map +1 -0
- package/dist/src/schedule/index.d.ts +150 -0
- package/dist/src/schedule/index.d.ts.map +1 -0
- package/dist/src/schedule/index.js +132 -0
- package/dist/src/schedule/index.js.map +1 -0
- package/dist/src/schedule/library.d.ts +70 -0
- package/dist/src/schedule/library.d.ts.map +1 -0
- package/dist/src/schedule/library.js +102 -0
- package/dist/src/schedule/library.js.map +1 -0
- package/dist/src/schedule/patch.d.ts +74 -0
- package/dist/src/schedule/patch.d.ts.map +1 -0
- package/dist/src/schedule/patch.js +68 -0
- package/dist/src/schedule/patch.js.map +1 -0
- package/dist/src/schedule/record-window.d.ts +189 -0
- package/dist/src/schedule/record-window.d.ts.map +1 -0
- package/dist/src/schedule/record-window.js +95 -0
- package/dist/src/schedule/record-window.js.map +1 -0
- package/dist/src/schedule/resources.d.ts +165 -0
- package/dist/src/schedule/resources.d.ts.map +1 -0
- package/dist/src/schedule/resources.js +234 -0
- package/dist/src/schedule/resources.js.map +1 -0
- package/dist/src/schedule/templates.d.ts +47 -0
- package/dist/src/schedule/templates.d.ts.map +1 -0
- package/dist/src/schedule/templates.js +61 -0
- package/dist/src/schedule/templates.js.map +1 -0
- package/dist/src/schedule/types.d.ts +1677 -0
- package/dist/src/schedule/types.d.ts.map +1 -0
- package/dist/src/schedule/types.js +374 -0
- package/dist/src/schedule/types.js.map +1 -0
- package/dist/src/schedule/window.d.ts +154 -0
- package/dist/src/schedule/window.d.ts.map +1 -0
- package/dist/src/schedule/window.js +363 -0
- package/dist/src/schedule/window.js.map +1 -0
- package/dist/src/sheet/bridge.d.ts +385 -0
- package/dist/src/sheet/bridge.d.ts.map +1 -0
- package/dist/src/sheet/bridge.js +809 -0
- package/dist/src/sheet/bridge.js.map +1 -0
- package/dist/src/sheet/columns.d.ts +410 -0
- package/dist/src/sheet/columns.d.ts.map +1 -0
- package/dist/src/sheet/columns.js +99 -0
- package/dist/src/sheet/columns.js.map +1 -0
- package/dist/src/sheet/context-bridge.d.ts +48 -0
- package/dist/src/sheet/context-bridge.d.ts.map +1 -0
- package/dist/src/sheet/context-bridge.js +216 -0
- package/dist/src/sheet/context-bridge.js.map +1 -0
- package/dist/src/sheet/draft-bridge.d.ts +37 -0
- package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
- package/dist/src/sheet/draft-bridge.js +153 -0
- package/dist/src/sheet/draft-bridge.js.map +1 -0
- package/dist/src/sheet/drafts.d.ts +14 -0
- package/dist/src/sheet/drafts.d.ts.map +1 -0
- package/dist/src/sheet/drafts.js +14 -0
- package/dist/src/sheet/drafts.js.map +1 -0
- package/dist/src/sheet/editing-bridge.d.ts +40 -0
- package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
- package/dist/src/sheet/editing-bridge.js +231 -0
- package/dist/src/sheet/editing-bridge.js.map +1 -0
- package/dist/src/sheet/editing-types.d.ts +268 -0
- package/dist/src/sheet/editing-types.d.ts.map +1 -0
- package/dist/src/sheet/editing-types.js +34 -0
- package/dist/src/sheet/editing-types.js.map +1 -0
- package/dist/src/sheet/edits.d.ts +37 -0
- package/dist/src/sheet/edits.d.ts.map +1 -0
- package/dist/src/sheet/edits.js +31 -0
- package/dist/src/sheet/edits.js.map +1 -0
- package/dist/src/sheet/fields.d.ts +693 -0
- package/dist/src/sheet/fields.d.ts.map +1 -0
- package/dist/src/sheet/fields.js +280 -0
- package/dist/src/sheet/fields.js.map +1 -0
- package/dist/src/sheet/group.d.ts +165 -0
- package/dist/src/sheet/group.d.ts.map +1 -0
- package/dist/src/sheet/group.js +52 -0
- package/dist/src/sheet/group.js.map +1 -0
- package/dist/src/sheet/index.d.ts +542 -0
- package/dist/src/sheet/index.d.ts.map +1 -0
- package/dist/src/sheet/index.js +387 -0
- package/dist/src/sheet/index.js.map +1 -0
- package/dist/src/sheet/library.d.ts +284 -0
- package/dist/src/sheet/library.d.ts.map +1 -0
- package/dist/src/sheet/library.js +259 -0
- package/dist/src/sheet/library.js.map +1 -0
- package/dist/src/sheet/link.d.ts +398 -0
- package/dist/src/sheet/link.d.ts.map +1 -0
- package/dist/src/sheet/link.js +228 -0
- package/dist/src/sheet/link.js.map +1 -0
- package/dist/src/sheet/record.d.ts +75 -0
- package/dist/src/sheet/record.d.ts.map +1 -0
- package/dist/src/sheet/record.js +128 -0
- package/dist/src/sheet/record.js.map +1 -0
- package/dist/src/sheet/registers.d.ts +681 -0
- package/dist/src/sheet/registers.d.ts.map +1 -0
- package/dist/src/sheet/registers.js +671 -0
- package/dist/src/sheet/registers.js.map +1 -0
- package/dist/src/sheet/root.d.ts +329 -0
- package/dist/src/sheet/root.d.ts.map +1 -0
- package/dist/src/sheet/root.js +511 -0
- package/dist/src/sheet/root.js.map +1 -0
- package/dist/src/sheet/seed-bridge.d.ts +14 -0
- package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
- package/dist/src/sheet/seed-bridge.js +51 -0
- package/dist/src/sheet/seed-bridge.js.map +1 -0
- package/dist/src/sheet/sheet.d.ts +11819 -0
- package/dist/src/sheet/sheet.d.ts.map +1 -0
- package/dist/src/sheet/sheet.js +236 -0
- package/dist/src/sheet/sheet.js.map +1 -0
- package/dist/src/sheet/sub-rows.d.ts +299 -0
- package/dist/src/sheet/sub-rows.d.ts.map +1 -0
- package/dist/src/sheet/sub-rows.js +272 -0
- package/dist/src/sheet/sub-rows.js.map +1 -0
- package/dist/src/sheet/templates.d.ts +161 -0
- package/dist/src/sheet/templates.d.ts.map +1 -0
- package/dist/src/sheet/templates.js +122 -0
- package/dist/src/sheet/templates.js.map +1 -0
- package/dist/src/sheet/transactions.d.ts +76 -0
- package/dist/src/sheet/transactions.d.ts.map +1 -0
- package/dist/src/sheet/transactions.js +40 -0
- package/dist/src/sheet/transactions.js.map +1 -0
- package/dist/src/sheet/types.d.ts +15226 -0
- package/dist/src/sheet/types.d.ts.map +1 -0
- package/dist/src/sheet/types.js +1070 -0
- package/dist/src/sheet/types.js.map +1 -0
- package/dist/src/sheet/views.d.ts +29 -0
- package/dist/src/sheet/views.d.ts.map +1 -0
- package/dist/src/sheet/views.js +43 -0
- package/dist/src/sheet/views.js.map +1 -0
- package/dist/src/studio/component.d.ts.map +1 -1
- package/dist/src/studio/component.js +11 -8
- package/dist/src/studio/component.js.map +1 -1
- package/dist/src/utils/derive.d.ts +134 -8
- package/dist/src/utils/derive.d.ts.map +1 -1
- package/dist/src/utils/derive.js +409 -7
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/ordered-source.d.ts +38 -0
- package/dist/src/utils/ordered-source.d.ts.map +1 -0
- package/dist/src/utils/ordered-source.js +45 -0
- package/dist/src/utils/ordered-source.js.map +1 -0
- package/dist/src/utils/row-inspector.d.ts +36 -0
- package/dist/src/utils/row-inspector.d.ts.map +1 -0
- package/dist/src/utils/row-inspector.js +49 -0
- package/dist/src/utils/row-inspector.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +21 -19
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +122 -122
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +9 -9
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar-records.examples.js +91 -0
- package/dist/test/calendar/calendar-records.examples.js.map +1 -0
- package/dist/test/calendar/calendar.examples.d.ts +776 -0
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar.examples.js +336 -0
- package/dist/test/calendar/calendar.examples.js.map +1 -0
- package/dist/test/decision/journal.examples.d.ts +28 -28
- package/dist/test/decision/journal.examples.d.ts.map +1 -1
- package/dist/test/decision/journal.examples.js +4 -4
- package/dist/test/decision/journal.examples.js.map +1 -1
- package/dist/test/decision/queue.examples.d.ts.map +1 -1
- package/dist/test/decision/queue.examples.js +5 -7
- package/dist/test/decision/queue.examples.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
- package/dist/test/flowchart/flowchart.examples.js +465 -0
- package/dist/test/flowchart/flowchart.examples.js.map +1 -0
- package/dist/test/plan/plan-events.examples.d.ts +3666 -0
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-events.examples.js +773 -0
- package/dist/test/plan/plan-events.examples.js.map +1 -0
- package/dist/test/plan/plan-records.examples.d.ts +3 -0
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-records.examples.js +45 -0
- package/dist/test/plan/plan-records.examples.js.map +1 -0
- package/dist/test/plan/plan-windows.examples.d.ts +588 -0
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-windows.examples.js +170 -0
- package/dist/test/plan/plan-windows.examples.js.map +1 -0
- package/dist/test/plan/plan.examples.d.ts +8095 -0
- package/dist/test/plan/plan.examples.d.ts.map +1 -0
- package/dist/test/plan/plan.examples.js +2500 -0
- package/dist/test/plan/plan.examples.js.map +1 -0
- package/dist/test/roster/domain.examples.d.ts +367 -0
- package/dist/test/roster/domain.examples.d.ts.map +1 -0
- package/dist/test/roster/domain.examples.js +72 -0
- package/dist/test/roster/domain.examples.js.map +1 -0
- package/dist/test/roster/roster-records.examples.d.ts +729 -0
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
- package/dist/test/roster/roster-records.examples.js +86 -0
- package/dist/test/roster/roster-records.examples.js.map +1 -0
- package/dist/test/roster/roster.examples.d.ts +750 -0
- package/dist/test/roster/roster.examples.d.ts.map +1 -0
- package/dist/test/roster/roster.examples.js +198 -0
- package/dist/test/roster/roster.examples.js.map +1 -0
- package/dist/test/roster/warehouse.d.ts +87 -0
- package/dist/test/roster/warehouse.d.ts.map +1 -0
- package/dist/test/roster/warehouse.js +883 -0
- package/dist/test/roster/warehouse.js.map +1 -0
- package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-link.examples.js +41 -0
- package/dist/test/sheet/sheet-link.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-records.examples.js +79 -0
- package/dist/test/sheet/sheet-records.examples.js.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.js +58 -0
- package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
- package/dist/test/sheet/sheet.examples.d.ts +5562 -0
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet.examples.js +1178 -0
- package/dist/test/sheet/sheet.examples.js.map +1 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +11 -11
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +12 -9
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
* A record's rows, for `<Sheet record>` (#1182, `Sheet Builder Spec.md` §3.4,
|
|
7
|
+
* SB13–SB17): the two ways an e3 record's rows reach a sheet, and Apply back
|
|
8
|
+
* to it through the record's patch mutation (`Record.onApply`).
|
|
9
|
+
*
|
|
10
|
+
* - **The record's entries are the rows**, in key order, each row's id its
|
|
11
|
+
* key's text: read whole (a keyed inline source), or a window at a time
|
|
12
|
+
* (`Data.bindPaged`, a keyed paged source). Apply hands the session's keyed
|
|
13
|
+
* batches to `Record.onApply(record, { keyed: true })` as they are.
|
|
14
|
+
* - **One entry's rows** (`entry`): the entry's Array field, in its own
|
|
15
|
+
* order, identified by a String field. Apply is one diff of that entry,
|
|
16
|
+
* reaching its rows and nothing else.
|
|
17
|
+
*
|
|
18
|
+
* Each form names its session's source: the record, and with `entry` the
|
|
19
|
+
* entry's key, so each entry keeps its own drafts.
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import { OptionType, StringType, type BooleanType, type EastType, type ExprType, type SubtypeExprOrValue } from "@elaraai/east";
|
|
24
|
+
import type { SheetInternalOptions } from "./root.js";
|
|
25
|
+
/**
|
|
26
|
+
* One entry's rows: the entry, its Array field holding the rows, and their
|
|
27
|
+
* identity field.
|
|
28
|
+
*
|
|
29
|
+
* @typeParam K - The record's key type
|
|
30
|
+
*/
|
|
31
|
+
export interface SheetRecordEntry<K extends EastType> {
|
|
32
|
+
/** The entry's key — a value, or an expression such as the entry the viewer picked. */
|
|
33
|
+
key: SubtypeExprOrValue<K>;
|
|
34
|
+
/** The entry's Array field holding the rows. */
|
|
35
|
+
rows: string;
|
|
36
|
+
/** The rows' String identity field. */
|
|
37
|
+
id: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* How a record's rows are read.
|
|
41
|
+
*
|
|
42
|
+
* @typeParam K - The record's key type
|
|
43
|
+
*/
|
|
44
|
+
export interface SheetRecordRowsOptions<K extends EastType> {
|
|
45
|
+
/** One entry's rows; omitted, the record's entries are the rows. */
|
|
46
|
+
entry?: SheetRecordEntry<K> | undefined;
|
|
47
|
+
/** The record's entries a window at a time — `Data.bindPaged(record)`. */
|
|
48
|
+
window?: unknown;
|
|
49
|
+
}
|
|
50
|
+
/** What a record's rows hand the sheet's root. */
|
|
51
|
+
export interface SheetRecordRows {
|
|
52
|
+
/** The rows: the record handle, read whole; the window; or one entry's rows. */
|
|
53
|
+
data: unknown;
|
|
54
|
+
/** The options the form fixes: one entry's identity field and its Apply, and read-only while the record does not hold the entry. */
|
|
55
|
+
options: {
|
|
56
|
+
id?: string;
|
|
57
|
+
onApply?: unknown;
|
|
58
|
+
readOnly?: ExprType<BooleanType>;
|
|
59
|
+
};
|
|
60
|
+
/** The root's own options: the keyed Apply, key order, and the session's source. */
|
|
61
|
+
internal: SheetInternalOptions;
|
|
62
|
+
/** The entry's key, as text, while the record does not hold it: what the frame's banner names (#1184). `none` otherwise. */
|
|
63
|
+
missing: ExprType<OptionType<StringType>>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Builds the rows a record hands a sheet, and the Apply back to it (#1182).
|
|
67
|
+
*
|
|
68
|
+
* @param record - The record, `Record.bind(record, [e3.mutation.patch(record)])`; a `Dict`
|
|
69
|
+
* @param options - `entry` for one entry's rows, or `window` to page the entries
|
|
70
|
+
* @returns The rows, the options the form fixes, the root's own options, and the missing entry's key
|
|
71
|
+
* @throws Error naming the prop and the remedy: a record that is not a Dict or is not bound with its patch mutation, `window` with `entry`, a window over another collection, or an `entry` whose rows or id field the entry type does not have
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
export declare function recordRows(record: unknown, options?: SheetRecordRowsOptions<EastType>): SheetRecordRows;
|
|
75
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/sheet/record.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAIH,UAAU,EACV,UAAU,EAMV,KAAK,WAAW,EAEhB,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,kBAAkB,EAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,QAAQ;IAChD,uFAAuF;IACvF,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,QAAQ;IACtD,oEAAoE;IACpE,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACxC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC5B,gFAAgF;IAChF,IAAI,EAAE,OAAO,CAAC;IACd,oIAAoI;IACpI,OAAO,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC;IAC9E,oFAAoF;IACpF,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,4HAA4H;IAC5H,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;CAC7C;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAE,sBAAsB,CAAC,QAAQ,CAAM,GAAG,eAAe,CAsF3G"}
|
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
* A record's rows, for `<Sheet record>` (#1182, `Sheet Builder Spec.md` §3.4,
|
|
7
|
+
* SB13–SB17): the two ways an e3 record's rows reach a sheet, and Apply back
|
|
8
|
+
* to it through the record's patch mutation (`Record.onApply`).
|
|
9
|
+
*
|
|
10
|
+
* - **The record's entries are the rows**, in key order, each row's id its
|
|
11
|
+
* key's text: read whole (a keyed inline source), or a window at a time
|
|
12
|
+
* (`Data.bindPaged`, a keyed paged source). Apply hands the session's keyed
|
|
13
|
+
* batches to `Record.onApply(record, { keyed: true })` as they are.
|
|
14
|
+
* - **One entry's rows** (`entry`): the entry's Array field, in its own
|
|
15
|
+
* order, identified by a String field. Apply is one diff of that entry,
|
|
16
|
+
* reaching its rows and nothing else.
|
|
17
|
+
*
|
|
18
|
+
* Each form names its session's source: the record, and with `entry` the
|
|
19
|
+
* entry's key, so each entry keeps its own drafts.
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
import { East, Expr, ArrayType, OptionType, StringType, StructType, isTypeEqual, none, printType, some, } from "@elaraai/east";
|
|
24
|
+
import { resolveRowSource } from "@elaraai/east-ui/internal";
|
|
25
|
+
import { Record } from "../bind/record.js";
|
|
26
|
+
/** A row type's identity field, checked: a String field of a row struct, or of every arm of an entry of groups and loose rows. */
|
|
27
|
+
function checkIdField(element, id, rows) {
|
|
28
|
+
const arms = element.type === "Struct" ? [element] : element.type === "Variant" ? Object.values(element.cases) : [];
|
|
29
|
+
const named = arms.length > 0 && arms.every((arm) => arm.type === "Struct" && arm.fields[id]?.type === "String");
|
|
30
|
+
if (!named) {
|
|
31
|
+
throw new Error(`Sheet: \`entry.id\` must name a String field of the rows \`${rows}\` holds — "${id}" is not one of ${printType(element)}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Builds the rows a record hands a sheet, and the Apply back to it (#1182).
|
|
36
|
+
*
|
|
37
|
+
* @param record - The record, `Record.bind(record, [e3.mutation.patch(record)])`; a `Dict`
|
|
38
|
+
* @param options - `entry` for one entry's rows, or `window` to page the entries
|
|
39
|
+
* @returns The rows, the options the form fixes, the root's own options, and the missing entry's key
|
|
40
|
+
* @throws Error naming the prop and the remedy: a record that is not a Dict or is not bound with its patch mutation, `window` with `entry`, a window over another collection, or an `entry` whose rows or id field the entry type does not have
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
export function recordRows(record, options = {}) {
|
|
44
|
+
const handle = record;
|
|
45
|
+
const type = Expr.type(handle);
|
|
46
|
+
const read = type.type === "Struct" ? type.fields["read"] : undefined;
|
|
47
|
+
if (type.type !== "Struct" || read === undefined || read.type !== "Function" || type.fields["binding"] === undefined) {
|
|
48
|
+
throw new Error("Sheet: `record` must be a record bound with its patch mutation — Record.bind(record, [e3.mutation.patch(record)])");
|
|
49
|
+
}
|
|
50
|
+
const recordType = read.output;
|
|
51
|
+
if (recordType.type !== "Dict") {
|
|
52
|
+
throw new Error(`Sheet: \`record\` must be a Dict — its entries, or one entry's rows, are the sheet's rows — and this record holds ${printType(recordType)}`);
|
|
53
|
+
}
|
|
54
|
+
const keyType = recordType.key;
|
|
55
|
+
const entryType = recordType.value;
|
|
56
|
+
const name = handle.binding.name;
|
|
57
|
+
if (options.entry === undefined) {
|
|
58
|
+
// The record's entries are the rows (SB13), committed by key (SB16).
|
|
59
|
+
const applyKeyed = Record.onApply(handle, { keyed: true });
|
|
60
|
+
if (options.window === undefined) {
|
|
61
|
+
return {
|
|
62
|
+
data: handle,
|
|
63
|
+
options: {},
|
|
64
|
+
internal: { keyOrdered: true, applyKeyed, sourceId: name },
|
|
65
|
+
missing: East.value(none, OptionType(StringType)),
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
const window = East.value(options.window);
|
|
69
|
+
const windowType = Expr.type(window);
|
|
70
|
+
const page = windowType.type === "Struct" ? windowType.fields["page"] : undefined;
|
|
71
|
+
const served = page !== undefined && page.type === "Function" && page.output.type === "Variant"
|
|
72
|
+
? page.output.cases["some"] : undefined;
|
|
73
|
+
const resolved = resolveRowSource(window, "Sheet");
|
|
74
|
+
const ordered = resolved.kind === "ordered" ? resolved : undefined;
|
|
75
|
+
const joined = ordered?.elementType.type === "Struct" ? ordered.elementType.fields.row : undefined;
|
|
76
|
+
const matchesIndex = ordered !== undefined && isTypeEqual(ordered.keyType, keyType)
|
|
77
|
+
&& joined?.type === "Variant" && joined.cases.some !== undefined && isTypeEqual(joined.cases.some, entryType);
|
|
78
|
+
if (served === undefined || (!isTypeEqual(served, recordType) && !matchesIndex)) {
|
|
79
|
+
throw new Error(`Sheet: \`window\` must page the record's entries — Data.bindPaged(record) over the same record — and this one serves ${served === undefined ? "no collection" : printType(served)}`);
|
|
80
|
+
}
|
|
81
|
+
// A paged keyed source is keyed already; its session is the window's.
|
|
82
|
+
return {
|
|
83
|
+
data: window,
|
|
84
|
+
options: {},
|
|
85
|
+
internal: { applyKeyed },
|
|
86
|
+
missing: East.value(none, OptionType(StringType)),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
if (options.window !== undefined) {
|
|
90
|
+
throw new Error("Sheet: `window` pages the record's entries, and with `entry` the rows are one entry's field, read whole — pass one or the other");
|
|
91
|
+
}
|
|
92
|
+
// One entry's rows (SB15): its Array field, in its own order.
|
|
93
|
+
const { rows, id } = options.entry;
|
|
94
|
+
if (entryType.type !== "Struct") {
|
|
95
|
+
throw new Error(`Sheet: \`entry\` reads a field of one entry, so the record's entries must be structs — this record holds ${printType(entryType)}`);
|
|
96
|
+
}
|
|
97
|
+
const fields = entryType.fields;
|
|
98
|
+
const field = fields[rows];
|
|
99
|
+
if (field === undefined || field.type !== "Array") {
|
|
100
|
+
throw new Error(`Sheet: \`entry.rows\` must name an Array field of the record's entries — "${rows}" is ${field === undefined ? "not a field" : `a ${field.type} field`} of ${printType(entryType)}`);
|
|
101
|
+
}
|
|
102
|
+
const element = field.value;
|
|
103
|
+
checkIdField(element, id, rows);
|
|
104
|
+
const rowsType = ArrayType(element);
|
|
105
|
+
const key = East.value(options.entry.key, keyType);
|
|
106
|
+
const get = East.function([entryType], rowsType, (_$, entry) => entry[rows]);
|
|
107
|
+
const set = East.function([entryType, rowsType], entryType, (_$, entry, next) => {
|
|
108
|
+
const held = entry;
|
|
109
|
+
return Object.fromEntries(Object.keys(fields).map((f) => [f, f === rows ? next : held[f]]));
|
|
110
|
+
});
|
|
111
|
+
const onApply = Record.onApply(handle, { entry: key, get, set, idField: id });
|
|
112
|
+
const held = handle.read().tryGet(key);
|
|
113
|
+
// A String key is its own text; any other key its `.east` printing.
|
|
114
|
+
const keyText = keyType.type === "String" ? key : East.print(key);
|
|
115
|
+
return {
|
|
116
|
+
data: held.match({
|
|
117
|
+
some: (_$, entry) => entry[rows],
|
|
118
|
+
none: (_$) => East.value([], rowsType),
|
|
119
|
+
}),
|
|
120
|
+
options: { id, onApply, readOnly: held.hasTag("none") },
|
|
121
|
+
internal: { sourceId: East.str `${name}#${keyText}` },
|
|
122
|
+
missing: held.match({
|
|
123
|
+
some: (_$) => East.value(none, OptionType(StringType)),
|
|
124
|
+
none: (_$) => East.value(some(keyText), OptionType(StringType)),
|
|
125
|
+
}),
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=record.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/sheet/record.ts"],"names":[],"mappings":"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"}
|