@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 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../src/sheet/fields.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACH,SAAS,EACT,QAAQ,EAGR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EAMV,KAAK,QAAQ,EAEhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAmC,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAOtG;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC;AAEnD;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMxB,CAAC;AAEH,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGzB,CAAC;AAEH,gDAAgD;AAChD,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC;AAuKnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CACtB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EACpD,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EACzD,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,SAAS,MAAM,EAAE,GAC7B,QAAQ,CAAC,cAAc,CAAC,CAwB1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,qDAAS,CAAC"}
|
|
@@ -0,0 +1,280 @@
|
|
|
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 Sheet's inspector forms (#1188, `Sheet Builder Spec.md` §5.3,
|
|
7
|
+
* SB10): every field of a row — a grouped sheet's line — and of a group,
|
|
8
|
+
* resolved through `Fields`, each column's kind its field's default hint and
|
|
9
|
+
* an explicit hint (`fields`, `groupFields`) winning.
|
|
10
|
+
*
|
|
11
|
+
* | The field's column | Its editor |
|
|
12
|
+
* |---|---|
|
|
13
|
+
* | `text` | Text |
|
|
14
|
+
* | `custom` | Text — the column's own `print` shows it, its `parse` reads it |
|
|
15
|
+
* | `date` | The date field, at the row's date level (the renderer sets its precision) |
|
|
16
|
+
* | `quantity`, `integer` | The number field — a quantity in the driver's unit |
|
|
17
|
+
* | `lookup`, `reference`, `enum` | A select over the register's members (`reference` of the register) |
|
|
18
|
+
* | `set`, `link` | Read only here: the renderer draws the members, and edits them in the grid |
|
|
19
|
+
* | `stamped`, a `value` projection, `editable: false` | Read only |
|
|
20
|
+
* | No column | By its type, as `Fields.specs` resolves it |
|
|
21
|
+
*
|
|
22
|
+
* A field with a column is read and written through it: its spec names the
|
|
23
|
+
* column (or the band cell, on a group), and an edit in the inspector is the
|
|
24
|
+
* cell's write, as typing in it is (SB52). A field with none is the draft's
|
|
25
|
+
* own. A hint may label a column's field, give it a help line, make it read
|
|
26
|
+
* only or hide it; an editor hint must fit the field's type, and a read-only
|
|
27
|
+
* column takes none. Each form carries the cells a patch of its struct sets
|
|
28
|
+
* (`encode`) — the projection the copilot's proposals and the templates go
|
|
29
|
+
* through — so a whole-row write (a custom inspector's `update`, SB58) lands
|
|
30
|
+
* on the cells as the grid would write them.
|
|
31
|
+
*
|
|
32
|
+
* @packageDocumentation
|
|
33
|
+
*/
|
|
34
|
+
import { ArrayType, BlobType, East, EastTypeType, FunctionType, OptionType, StringType, StructType, none, some, toEastTypeValue, variant, } from "@elaraai/east";
|
|
35
|
+
import { FIELD_HINT, FieldSpecType, Fields, fieldSpecs, spellOut } from "@elaraai/east-ui/internal";
|
|
36
|
+
import { SheetCellsType, buildPatchCells } from "./bridge.js";
|
|
37
|
+
import { SheetPatchTypeFor } from "./types.js";
|
|
38
|
+
// ============================================================================
|
|
39
|
+
// The wire
|
|
40
|
+
// ============================================================================
|
|
41
|
+
/**
|
|
42
|
+
* One field of an inspector form on the wire.
|
|
43
|
+
*
|
|
44
|
+
* @property spec - What the form draws — `Fields`' spec
|
|
45
|
+
* @property column - The column it is read and written through, by key (on a group, the band cell's key); `none` for a field the draft holds alone
|
|
46
|
+
*/
|
|
47
|
+
export const SheetFieldType = StructType({
|
|
48
|
+
spec: FieldSpecType,
|
|
49
|
+
column: OptionType(StringType),
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* One inspector form on the wire: the struct it edits, its fields in the
|
|
53
|
+
* form's order, and the cells a patch of the struct sets.
|
|
54
|
+
*
|
|
55
|
+
* @property type - The struct the form edits — the row (a grouped sheet's line), or the group
|
|
56
|
+
* @property fields - Its fields: the hinted first, in hint order, then the rest in declared order
|
|
57
|
+
* @property columns - The struct's fields its editable columns write — a column's own, a link's other half — whatever the form shows: a whole-row write sets these through `encode`
|
|
58
|
+
* @property readonly - The struct's fields its read-only columns show — a stamped code, a `value` projection, a column `editable: false` — which a whole-row write leaves as they are, as the grid does; every other field a whole-row write sets on the draft
|
|
59
|
+
* @property encode - A `Sheet.Types.Patch` of the struct, encoded (beast2) → the cells it sets through the sheet's editable columns (or the band's cells)
|
|
60
|
+
*/
|
|
61
|
+
export const SheetFormType = StructType({
|
|
62
|
+
type: EastTypeType,
|
|
63
|
+
fields: ArrayType(SheetFieldType),
|
|
64
|
+
columns: ArrayType(StringType),
|
|
65
|
+
readonly: ArrayType(StringType),
|
|
66
|
+
encode: FunctionType([BlobType], SheetCellsType),
|
|
67
|
+
});
|
|
68
|
+
/**
|
|
69
|
+
* The inspector's forms on the wire.
|
|
70
|
+
*
|
|
71
|
+
* @property row - A row's — a grouped sheet's line's
|
|
72
|
+
* @property group - A group's own fields, on a grouped sheet
|
|
73
|
+
*/
|
|
74
|
+
export const SheetFormsType = StructType({
|
|
75
|
+
row: SheetFormType,
|
|
76
|
+
group: OptionType(SheetFormType),
|
|
77
|
+
});
|
|
78
|
+
/** Whether a value is a hint rather than a nested struct's hints. */
|
|
79
|
+
function isHint(value) {
|
|
80
|
+
return value !== null && typeof value === "object" && FIELD_HINT in value;
|
|
81
|
+
}
|
|
82
|
+
/** Why a column's field takes no editor hint, or `undefined` when it does. */
|
|
83
|
+
function readOnlyReason(meta) {
|
|
84
|
+
if (meta.derived !== undefined)
|
|
85
|
+
return "is a `value` projection, a derived read";
|
|
86
|
+
if (meta.kind === "stamped")
|
|
87
|
+
return "is stamped — a code an upstream system owns";
|
|
88
|
+
if (meta.kind === "set" || meta.kind === "link")
|
|
89
|
+
return `is a ${meta.kind} column, whose members are edited in the sheet`;
|
|
90
|
+
if (meta.kind === "custom")
|
|
91
|
+
return "is a custom column, read through its own `parse`";
|
|
92
|
+
if (!meta.editable)
|
|
93
|
+
return "is read only (`editable: false`)";
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
/** A hint's `reference` editor, checked against the sheet's registers: the keyed set a select lists is one of them. */
|
|
97
|
+
function checkReference(editor, field, registers) {
|
|
98
|
+
if (editor.type !== "reference" || registers.has(editor.value.of))
|
|
99
|
+
return;
|
|
100
|
+
throw new Error(`Sheet: \`${field}\` is a reference to "${editor.value.of}", which is not one of the sheet's registers (${[...registers].join(", ") || "none declared"}) — declare it in \`registers\`, or name one of them`);
|
|
101
|
+
}
|
|
102
|
+
/** A column's field's editor with no hint: its kind's. */
|
|
103
|
+
function kindEditor(meta) {
|
|
104
|
+
if (meta.derived !== undefined || !meta.editable)
|
|
105
|
+
return variant("readonly", null);
|
|
106
|
+
switch (meta.kind) {
|
|
107
|
+
case "text":
|
|
108
|
+
case "custom": return variant("text", { placeholder: none });
|
|
109
|
+
case "date": return variant("datetime", { precision: none });
|
|
110
|
+
case "quantity":
|
|
111
|
+
case "integer": return variant("number", { unit: none, step: none, min: none, max: none });
|
|
112
|
+
case "lookup":
|
|
113
|
+
case "reference":
|
|
114
|
+
case "enum": return variant("reference", { of: meta.register });
|
|
115
|
+
default: return variant("readonly", null);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The spec of a field read and written through a column — its kind's editor,
|
|
120
|
+
* or its hint's; the column's header (else the field's name spelled out) and
|
|
121
|
+
* its second line its label and help, unless the hint names its own.
|
|
122
|
+
*/
|
|
123
|
+
function columnField(name, meta, hint, where, registers) {
|
|
124
|
+
const kind = hint?.[FIELD_HINT];
|
|
125
|
+
let editor;
|
|
126
|
+
let type;
|
|
127
|
+
if (meta.derived !== undefined) {
|
|
128
|
+
// A projection's value is the cell's, never the field's.
|
|
129
|
+
type = meta.derivedOptional === true ? OptionType(meta.payloadType) : meta.payloadType;
|
|
130
|
+
}
|
|
131
|
+
else if (meta.kind === "custom") {
|
|
132
|
+
// A custom column's text: shown by its print, read by its parse.
|
|
133
|
+
type = meta.optional ? OptionType(StringType) : StringType;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
type = meta.fieldType;
|
|
137
|
+
}
|
|
138
|
+
if (kind === undefined || kind === "readonly") {
|
|
139
|
+
editor = kind === "readonly" ? variant("readonly", null) : kindEditor(meta);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const reason = readOnlyReason(meta);
|
|
143
|
+
if (reason !== undefined) {
|
|
144
|
+
throw new Error(`Sheet: \`${where}.${name}\` gives its field an editor, but its column ${reason} — hint it Sheet.field.readonly() or Sheet.field.hidden(), or give it a label or help alone`);
|
|
145
|
+
}
|
|
146
|
+
// The hint's editor, checked against the field's type as Fields checks it, and a select's set against the registers.
|
|
147
|
+
editor = fieldSpecs(StructType({ [name]: meta.fieldType }), { [name]: hint })[0].editor;
|
|
148
|
+
checkReference(editor, `${where}.${name}`, registers);
|
|
149
|
+
}
|
|
150
|
+
return East.value({
|
|
151
|
+
spec: {
|
|
152
|
+
path: [name],
|
|
153
|
+
// The hint's label, else the column's header, else the field's name spelled out.
|
|
154
|
+
label: hint?.label ?? meta.config.header ?? spellOut(name),
|
|
155
|
+
help: hint?.help !== undefined ? some(hint.help) : meta.config.sub !== undefined ? some(meta.config.sub) : none,
|
|
156
|
+
group: none,
|
|
157
|
+
type: toEastTypeValue(type),
|
|
158
|
+
optional: type.type === "Variant" && Object.keys(type.cases).length === 2 && "some" in type.cases && "none" in type.cases,
|
|
159
|
+
editor,
|
|
160
|
+
},
|
|
161
|
+
column: some(meta.key),
|
|
162
|
+
}, SheetFieldType);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* One inspector form: the struct's fields, each through its column or by its
|
|
166
|
+
* type, in the form's order.
|
|
167
|
+
*
|
|
168
|
+
* @param struct - The struct the form edits
|
|
169
|
+
* @param metas - The columns its fields are read through, by field
|
|
170
|
+
* @param hints - The author's hints, by field
|
|
171
|
+
* @param leave - The fields the form leaves out: an identity field, a group's lines field
|
|
172
|
+
* @param where - The prop the hints came from, for a refusal (`fields`, `groupFields`)
|
|
173
|
+
* @param registers - The sheet's registers, by name: what a `reference` hint may name
|
|
174
|
+
* @returns The form's fields
|
|
175
|
+
* @throws Error naming the field: a hint for a field the struct does not have, one that does not fit it, or a reference to a register the sheet does not declare
|
|
176
|
+
*/
|
|
177
|
+
function formFields(struct, metas, hints, leave, where, registers) {
|
|
178
|
+
const fields = struct.fields;
|
|
179
|
+
// A link column's other half is written through that column, never on its own.
|
|
180
|
+
const halves = new Set([...metas.values()].flatMap((m) => (m.otherField !== undefined ? [m.otherField] : [])));
|
|
181
|
+
for (const name of Object.keys(hints)) {
|
|
182
|
+
if (!(name in fields)) {
|
|
183
|
+
throw new Error(`Sheet: \`${where}\` names "${name}", which is not a field of ${where === "groupFields" ? "the group type" : "the row type"} (${Object.keys(fields).join(", ")})`);
|
|
184
|
+
}
|
|
185
|
+
if (leave.has(name) || halves.has(name)) {
|
|
186
|
+
throw new Error(`Sheet: \`${where}\` names "${name}", which the inspector does not show as a field of its own — ${halves.has(name) ? "it is a link column's other half, shown with that column" : "it is the row's identity, or the group's rows"}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const order = [...Object.keys(hints), ...Object.keys(fields).filter((name) => !(name in hints))];
|
|
190
|
+
const out = [];
|
|
191
|
+
for (const name of order) {
|
|
192
|
+
if (leave.has(name) || halves.has(name))
|
|
193
|
+
continue;
|
|
194
|
+
const hint = hints[name];
|
|
195
|
+
if (isHint(hint) && hint[FIELD_HINT] === "hidden")
|
|
196
|
+
continue;
|
|
197
|
+
const meta = metas.get(name);
|
|
198
|
+
if (meta !== undefined) {
|
|
199
|
+
if (hint !== undefined && !isHint(hint)) {
|
|
200
|
+
throw new Error(`Sheet: \`${where}.${name}\` is shown through its column — its hint is one of Sheet.field's, never a hint per nested field`);
|
|
201
|
+
}
|
|
202
|
+
out.push(columnField(name, meta, hint, where, registers));
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
// No column: the field by its type, as Fields resolves it — a nested struct's fields under its name.
|
|
206
|
+
const others = Object.keys(fields).filter((f) => f !== name);
|
|
207
|
+
for (const spec of fieldSpecs(struct, (hint === undefined ? {} : { [name]: hint }), others)) {
|
|
208
|
+
checkReference(spec.editor, `${where}.${spec.path.join(".")}`, registers);
|
|
209
|
+
out.push(East.value({ spec, column: none }, SheetFieldType));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return out;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The fields a whole-row write sets through the columns — the fields `encode`
|
|
216
|
+
* writes: an editable column's own and a link's other half — and the fields
|
|
217
|
+
* it leaves, under the read-only columns.
|
|
218
|
+
*/
|
|
219
|
+
function columnFields(metas) {
|
|
220
|
+
const writes = (m) => m.editable && m.derived === undefined;
|
|
221
|
+
const columns = new Set(metas.filter(writes).flatMap((m) => (m.otherField !== undefined ? [m.field, m.otherField] : [m.field])));
|
|
222
|
+
const readonly = new Set(metas.filter((m) => !writes(m) && !columns.has(m.field)).map((m) => m.field));
|
|
223
|
+
return { columns: [...columns], readonly: [...readonly] };
|
|
224
|
+
}
|
|
225
|
+
/** A form's `encode`: a patch of the struct, as bytes, through the cells it sets. */
|
|
226
|
+
function encodeOf(patchType, cells) {
|
|
227
|
+
return East.function([BlobType], SheetCellsType, ($, bytes) => {
|
|
228
|
+
const encode = $.const(cells);
|
|
229
|
+
const patch = $.const(bytes.decodeBeast(patchType, "v2"));
|
|
230
|
+
return encode(patch);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Builds the inspector's forms (SB10): a row's (a grouped sheet's line's) and,
|
|
235
|
+
* on a grouped sheet, a group's.
|
|
236
|
+
*
|
|
237
|
+
* @param bridge - The sheet's bridge, as its root compiled it
|
|
238
|
+
* @param metas - The declared columns, described against the row (or line) type
|
|
239
|
+
* @param hints - `fields`: the author's hints for the row's fields
|
|
240
|
+
* @param groupHints - `groupFields`: the author's hints for the group's own fields
|
|
241
|
+
* @param idField - The rows' identity field, which the form leaves to the header
|
|
242
|
+
* @param registers - The sheet's registers' names, the driver's among them: what a `reference` hint may name
|
|
243
|
+
* @returns The forms on the wire
|
|
244
|
+
* @throws Error naming the prop: `groupFields` on a flat sheet, and each refusal of a hint
|
|
245
|
+
* @internal
|
|
246
|
+
*/
|
|
247
|
+
export function buildForms(bridge, metas, hints, groupHints, idField, registers) {
|
|
248
|
+
const named = new Set(registers);
|
|
249
|
+
const groupHalf = bridge.group;
|
|
250
|
+
if (groupHalf === undefined && groupHints !== undefined) {
|
|
251
|
+
throw new Error("Sheet: `groupFields` hints a group's fields, and this sheet declares no group — pass `group={Sheet.group(…)}`, or hint the rows with `fields`");
|
|
252
|
+
}
|
|
253
|
+
// A row's identity is its header's, never a field to edit: a flat row's, and a loose row's line beside the groups (#846).
|
|
254
|
+
const lineLeave = new Set(idField !== undefined && idField in bridge.lineType.fields ? [idField] : []);
|
|
255
|
+
const row = East.value({
|
|
256
|
+
type: toEastTypeValue(bridge.lineType),
|
|
257
|
+
fields: formFields(bridge.lineType, new Map(metas.map((m) => [m.field, m])), hints ?? {}, lineLeave, "fields", named),
|
|
258
|
+
...columnFields(metas),
|
|
259
|
+
encode: encodeOf(bridge.patchType, bridge.encodePatch),
|
|
260
|
+
}, SheetFormType);
|
|
261
|
+
if (groupHalf === undefined)
|
|
262
|
+
return East.value({ row, group: none }, SheetFormsType);
|
|
263
|
+
const groupType = groupHalf.groupType;
|
|
264
|
+
const groupLeave = new Set([groupHalf.linesField, ...(idField !== undefined && idField in groupType.fields ? [idField] : [])]);
|
|
265
|
+
const group = East.value({
|
|
266
|
+
type: toEastTypeValue(groupType),
|
|
267
|
+
fields: formFields(groupType, new Map(groupHalf.cellMetas.map((m) => [m.field, m])), groupHints ?? {}, groupLeave, "groupFields", named),
|
|
268
|
+
...columnFields(groupHalf.cellMetas),
|
|
269
|
+
encode: encodeOf(SheetPatchTypeFor(groupType), buildPatchCells(groupType, groupHalf.cellMetas, {})),
|
|
270
|
+
}, SheetFormType);
|
|
271
|
+
return East.value({ row, group: some(group) }, SheetFormsType);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* `Sheet.field` — the inspector's hints, `Fields`' own (#1147): a label, a
|
|
275
|
+
* help line, an editor for a field the inspector shows by its type, a field
|
|
276
|
+
* read only or hidden. A column's field takes a label, a help line, read only
|
|
277
|
+
* or hidden, and an editor that fits its type when its column is written.
|
|
278
|
+
*/
|
|
279
|
+
export const SheetField = Fields;
|
|
280
|
+
//# sourceMappingURL=fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../src/sheet/fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
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
|
+
* `Sheet.group` and `Sheet.group.cell.*` — grouped rows (#740): the group is
|
|
7
|
+
* the row, its lines live in one `Array<L>` field of its own type, and the
|
|
8
|
+
* band a group draws above its lines shows the group's own fields under the
|
|
9
|
+
* line columns.
|
|
10
|
+
*
|
|
11
|
+
* `Sheet.group(P, "lines", { title, sub?, cells?, folded?, noun? })` names
|
|
12
|
+
* the lines field and the band; each `cells` entry is a group field declared
|
|
13
|
+
* over the group's row with `Sheet.group.cell.<kind>(P, "field", cfg)` — the
|
|
14
|
+
* same builders as `Sheet.column.<kind>` minus the header, keyed in `cells`
|
|
15
|
+
* by the LINE column it sits under. A band cell edits like any cell: the
|
|
16
|
+
* edit joins the sheet's batch and reaches the host through `onUpdate` or
|
|
17
|
+
* `onApply`. `editable: false` and a `value:` projection are read-only.
|
|
18
|
+
*
|
|
19
|
+
* The builders only CAPTURE; the root describes each cell against the group's
|
|
20
|
+
* row type and reifies the accessors (`root.ts`, `bridge.ts`).
|
|
21
|
+
*
|
|
22
|
+
* @packageDocumentation
|
|
23
|
+
*/
|
|
24
|
+
import type { EastType, ExprType, SubtypeExprOrValue, BooleanType, DateTimeType, FloatType, IntegerType, OptionType, StringType, StructType } from "@elaraai/east";
|
|
25
|
+
import type { TickFormatType } from "@elaraai/east-ui/internal";
|
|
26
|
+
import type { SheetColumnKindLiteral, SheetLinesField, SheetLineOf } from "./types.js";
|
|
27
|
+
import type { SheetAnyColumnConfig, SheetFieldKey } from "./columns.js";
|
|
28
|
+
/**
|
|
29
|
+
* A built band cell — what a `Sheet.group.cell.*` builder returns and the
|
|
30
|
+
* `cells` map holds.
|
|
31
|
+
*
|
|
32
|
+
* @typeParam P - The group's row type
|
|
33
|
+
*/
|
|
34
|
+
export interface SheetGroupCell<P extends StructType> {
|
|
35
|
+
/** The cell's kind. */
|
|
36
|
+
readonly kind: SheetColumnKindLiteral;
|
|
37
|
+
/** The group field the cell reads and writes. */
|
|
38
|
+
readonly field: SheetFieldKey<P>;
|
|
39
|
+
/** The author's config, as given. @internal */
|
|
40
|
+
readonly config: SheetAnyColumnConfig;
|
|
41
|
+
/** The register the cell resolves against. @internal */
|
|
42
|
+
readonly register?: string;
|
|
43
|
+
/** Phantom — the row type. @internal */
|
|
44
|
+
readonly __row?: (r: P) => void;
|
|
45
|
+
}
|
|
46
|
+
/** The keys of a group row whose field is `A` or its `Option`. */
|
|
47
|
+
export type SheetFieldOf<P extends StructType, A extends EastType> = {
|
|
48
|
+
[K in SheetFieldKey<P>]: P["fields"][K] extends A | OptionType<A> ? K : never;
|
|
49
|
+
}[SheetFieldKey<P>];
|
|
50
|
+
/**
|
|
51
|
+
* What every band cell takes.
|
|
52
|
+
*
|
|
53
|
+
* @property editable - `false` makes the cell read-only
|
|
54
|
+
*/
|
|
55
|
+
export interface SheetGroupCellBaseConfig {
|
|
56
|
+
/** `false` makes the cell read-only. */
|
|
57
|
+
editable?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A derived read — the cell displays the projection over the group row and
|
|
61
|
+
* is read-only; it may reach into the group's lines.
|
|
62
|
+
*
|
|
63
|
+
* @typeParam P - The group's row type
|
|
64
|
+
* @typeParam T - The kind's payload type
|
|
65
|
+
*/
|
|
66
|
+
export interface SheetGroupValueConfig<P extends StructType, T extends EastType> {
|
|
67
|
+
/** The projection over the group row. */
|
|
68
|
+
value: (row: ExprType<P>) => SubtypeExprOrValue<T | OptionType<T>>;
|
|
69
|
+
}
|
|
70
|
+
/** Config for `Sheet.group.cell.date`. */
|
|
71
|
+
export interface SheetGroupDateConfig extends SheetGroupCellBaseConfig {
|
|
72
|
+
/** A display pattern (East date tokens). */
|
|
73
|
+
format?: SubtypeExprOrValue<StringType>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Config for `Sheet.group.cell.quantity`. A band has no driver member, so a
|
|
77
|
+
* band quantity carries no unit; the line column's unit is the driver's.
|
|
78
|
+
*/
|
|
79
|
+
export interface SheetGroupQuantityConfig extends SheetGroupCellBaseConfig {
|
|
80
|
+
/** A display format. */
|
|
81
|
+
format?: SubtypeExprOrValue<TickFormatType>;
|
|
82
|
+
}
|
|
83
|
+
/** Config for `Sheet.group.cell.stamped`. */
|
|
84
|
+
export interface SheetGroupStampedConfig {
|
|
85
|
+
/** The owning system. */
|
|
86
|
+
owner?: SubtypeExprOrValue<StringType>;
|
|
87
|
+
}
|
|
88
|
+
/** A text band cell — `Sheet.group.cell.text(P, "field", cfg)` on a `String` / `Option<String>` field, or a `value:` projection on any field. */
|
|
89
|
+
export declare function text<P extends StructType>(groupType: P, field: SheetFieldKey<P>, config: SheetGroupCellBaseConfig & SheetGroupValueConfig<P, StringType>): SheetGroupCell<P>;
|
|
90
|
+
export declare function text<P extends StructType>(groupType: P, field: SheetFieldOf<P, StringType>, config?: SheetGroupCellBaseConfig): SheetGroupCell<P>;
|
|
91
|
+
/** A date band cell — `Sheet.group.cell.date(P, "field", cfg)` on a `DateTime` / `Option<DateTime>` field. */
|
|
92
|
+
export declare function date<P extends StructType>(groupType: P, field: SheetFieldKey<P>, config: SheetGroupDateConfig & SheetGroupValueConfig<P, DateTimeType>): SheetGroupCell<P>;
|
|
93
|
+
export declare function date<P extends StructType>(groupType: P, field: SheetFieldOf<P, DateTimeType>, config?: SheetGroupDateConfig): SheetGroupCell<P>;
|
|
94
|
+
/** A quantity band cell — `Sheet.group.cell.quantity(P, "field", cfg)` on a `Float` / `Option<Float>` field, or a `value:` projection (a total over the lines, say). */
|
|
95
|
+
export declare function quantity<P extends StructType>(groupType: P, field: SheetFieldKey<P>, config: SheetGroupQuantityConfig & SheetGroupValueConfig<P, FloatType>): SheetGroupCell<P>;
|
|
96
|
+
export declare function quantity<P extends StructType>(groupType: P, field: SheetFieldOf<P, FloatType>, config?: SheetGroupQuantityConfig): SheetGroupCell<P>;
|
|
97
|
+
/** An integer band cell — `Sheet.group.cell.integer(P, "field", cfg)` on an `Integer` / `Option<Integer>` field. */
|
|
98
|
+
export declare function integer<P extends StructType>(groupType: P, field: SheetFieldKey<P>, config: SheetGroupCellBaseConfig & SheetGroupValueConfig<P, IntegerType>): SheetGroupCell<P>;
|
|
99
|
+
export declare function integer<P extends StructType>(groupType: P, field: SheetFieldOf<P, IntegerType>, config?: SheetGroupCellBaseConfig): SheetGroupCell<P>;
|
|
100
|
+
/** A reference band cell — `Sheet.group.cell.reference(P, register, "field", cfg)`: a lookup over a flat member list, on a `String` / `Option<String>` field. */
|
|
101
|
+
export declare function reference<P extends StructType>(_groupType: P, register: string, field: SheetFieldOf<P, StringType>, config?: SheetGroupCellBaseConfig): SheetGroupCell<P>;
|
|
102
|
+
/** An enum band cell — `Sheet.group.cell.enum(P, register, "field", cfg)`: an upper-cased register word with its valence dot, on a `String` / `Option<String>` field. */
|
|
103
|
+
export declare function enumCell<P extends StructType>(_groupType: P, register: string, field: SheetFieldOf<P, StringType>, config?: SheetGroupCellBaseConfig): SheetGroupCell<P>;
|
|
104
|
+
/** A stamped band cell — `Sheet.group.cell.stamped(P, "field", cfg)`: a read-only code an upstream system owns, on a `String` / `Option<String>` field. */
|
|
105
|
+
export declare function stamped<P extends StructType>(_groupType: P, field: SheetFieldOf<P, StringType>, config?: SheetGroupStampedConfig): SheetGroupCell<P>;
|
|
106
|
+
/**
|
|
107
|
+
* What `Sheet.group(P, "lines", …)` takes.
|
|
108
|
+
*
|
|
109
|
+
* @typeParam P - The group's row type
|
|
110
|
+
* @typeParam L - The line type the lines field holds
|
|
111
|
+
* @property title - The band's title — a `String` field of the group row; ⏎ / F2 on the band renames it
|
|
112
|
+
* @property sub - The band's eyebrow — an accessor over the group row, display only
|
|
113
|
+
* @property cells - Band cells keyed by the LINE column they sit under
|
|
114
|
+
* @property folded - Whether a group opens folded — an accessor over the group row
|
|
115
|
+
* @property noun - The word the renderer prints for a group — fold-all, the footer count, hints, the new-group button (#844); omitted, the renderer's own word in the viewer's language (`"group"` / `"groups"` in English, #861)
|
|
116
|
+
*/
|
|
117
|
+
export interface SheetGroupConfig<P extends StructType, L extends StructType = StructType> {
|
|
118
|
+
/** The band's title — a `String` field of the group row. */
|
|
119
|
+
title: SheetFieldOf<P, StringType>;
|
|
120
|
+
/** The band's eyebrow — display only. */
|
|
121
|
+
sub?: (row: ExprType<P>) => SubtypeExprOrValue<StringType>;
|
|
122
|
+
/** Band cells keyed by the line column they sit under. */
|
|
123
|
+
cells?: {
|
|
124
|
+
[K in SheetFieldKey<L>]?: SheetGroupCell<P>;
|
|
125
|
+
};
|
|
126
|
+
/** Whether a group opens folded. */
|
|
127
|
+
folded?: (row: ExprType<P>) => SubtypeExprOrValue<BooleanType>;
|
|
128
|
+
/** The word the renderer prints for a group. */
|
|
129
|
+
noun?: {
|
|
130
|
+
/** One group (`"order"`). */
|
|
131
|
+
singular: SubtypeExprOrValue<StringType>;
|
|
132
|
+
/** Several (`"orders"`). */
|
|
133
|
+
plural: SubtypeExprOrValue<StringType>;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A built group declaration — what `Sheet.group(…)` returns and the `group`
|
|
138
|
+
* prop takes.
|
|
139
|
+
*
|
|
140
|
+
* @typeParam P - The group's row type
|
|
141
|
+
* @typeParam F - The lines field
|
|
142
|
+
*/
|
|
143
|
+
export interface SheetGroupValue<P extends StructType, F extends string> {
|
|
144
|
+
/** The group's row type. */
|
|
145
|
+
readonly rowType: P;
|
|
146
|
+
/** The field holding the lines. */
|
|
147
|
+
readonly lines: F;
|
|
148
|
+
/** The author's config, as given. @internal */
|
|
149
|
+
readonly config: SheetGroupConfig<P, StructType>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Declares grouped rows — `Sheet.group(P, "lines", { title, sub?, cells?, folded?, noun? })`
|
|
153
|
+
* (#740): the group is the row, `lines` names the `Array<Line>` field
|
|
154
|
+
* holding its lines, and the band draws the title, the eyebrow and the
|
|
155
|
+
* `cells` under their line columns.
|
|
156
|
+
*
|
|
157
|
+
* @typeParam P - The group's row type
|
|
158
|
+
* @typeParam F - The lines field — an `Array<Line>` field of `P`
|
|
159
|
+
* @param rowType - The group's row type value
|
|
160
|
+
* @param lines - The lines field
|
|
161
|
+
* @param config - The band ({@link SheetGroupConfig})
|
|
162
|
+
* @returns The declaration the `group` prop takes
|
|
163
|
+
*/
|
|
164
|
+
export declare function createGroup<P extends StructType, F extends SheetLinesField<P>>(rowType: P, lines: F, config: SheetGroupConfig<P, SheetLineOf<P, F>>): SheetGroupValue<P, F>;
|
|
165
|
+
//# sourceMappingURL=group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../../src/sheet/group.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
// Builders
|
|
7
|
+
// ============================================================================
|
|
8
|
+
/** Build one band cell value. */
|
|
9
|
+
function cell(kind, field, config, extra = {}) {
|
|
10
|
+
return { kind, field, config: config, ...extra };
|
|
11
|
+
}
|
|
12
|
+
export function text(_groupType, field, config = {}) {
|
|
13
|
+
return cell("text", field, config);
|
|
14
|
+
}
|
|
15
|
+
export function date(_groupType, field, config = {}) {
|
|
16
|
+
return cell("date", field, config);
|
|
17
|
+
}
|
|
18
|
+
export function quantity(_groupType, field, config = {}) {
|
|
19
|
+
return cell("quantity", field, config);
|
|
20
|
+
}
|
|
21
|
+
export function integer(_groupType, field, config = {}) {
|
|
22
|
+
return cell("integer", field, config);
|
|
23
|
+
}
|
|
24
|
+
/** A reference band cell — `Sheet.group.cell.reference(P, register, "field", cfg)`: a lookup over a flat member list, on a `String` / `Option<String>` field. */
|
|
25
|
+
export function reference(_groupType, register, field, config = {}) {
|
|
26
|
+
return cell("reference", field, config, { register });
|
|
27
|
+
}
|
|
28
|
+
/** An enum band cell — `Sheet.group.cell.enum(P, register, "field", cfg)`: an upper-cased register word with its valence dot, on a `String` / `Option<String>` field. */
|
|
29
|
+
export function enumCell(_groupType, register, field, config = {}) {
|
|
30
|
+
return cell("enum", field, config, { register });
|
|
31
|
+
}
|
|
32
|
+
/** A stamped band cell — `Sheet.group.cell.stamped(P, "field", cfg)`: a read-only code an upstream system owns, on a `String` / `Option<String>` field. */
|
|
33
|
+
export function stamped(_groupType, field, config = {}) {
|
|
34
|
+
return cell("stamped", field, config);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Declares grouped rows — `Sheet.group(P, "lines", { title, sub?, cells?, folded?, noun? })`
|
|
38
|
+
* (#740): the group is the row, `lines` names the `Array<Line>` field
|
|
39
|
+
* holding its lines, and the band draws the title, the eyebrow and the
|
|
40
|
+
* `cells` under their line columns.
|
|
41
|
+
*
|
|
42
|
+
* @typeParam P - The group's row type
|
|
43
|
+
* @typeParam F - The lines field — an `Array<Line>` field of `P`
|
|
44
|
+
* @param rowType - The group's row type value
|
|
45
|
+
* @param lines - The lines field
|
|
46
|
+
* @param config - The band ({@link SheetGroupConfig})
|
|
47
|
+
* @returns The declaration the `group` prop takes
|
|
48
|
+
*/
|
|
49
|
+
export function createGroup(rowType, lines, config) {
|
|
50
|
+
return { rowType, lines, config: config };
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/sheet/group.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkHH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,iCAAiC;AACjC,SAAS,IAAI,CACT,IAA4B,EAC5B,KAAuB,EACvB,MAAc,EACd,QAA+B,EAAE;IAEjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAA8B,EAAE,GAAG,KAAK,EAAE,CAAC;AAC7E,CAAC;AAKD,MAAM,UAAU,IAAI,CAAuB,UAAa,EAAE,KAAa,EAAE,SAAiB,EAAE;IACxF,OAAO,IAAI,CAAC,MAAM,EAAE,KAAyB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAKD,MAAM,UAAU,IAAI,CAAuB,UAAa,EAAE,KAAa,EAAE,SAAiB,EAAE;IACxF,OAAO,IAAI,CAAC,MAAM,EAAE,KAAyB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAKD,MAAM,UAAU,QAAQ,CAAuB,UAAa,EAAE,KAAa,EAAE,SAAiB,EAAE;IAC5F,OAAO,IAAI,CAAC,UAAU,EAAE,KAAyB,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC;AAKD,MAAM,UAAU,OAAO,CAAuB,UAAa,EAAE,KAAa,EAAE,SAAiB,EAAE;IAC3F,OAAO,IAAI,CAAC,SAAS,EAAE,KAAyB,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,iKAAiK;AACjK,MAAM,UAAU,SAAS,CAAuB,UAAa,EAAE,QAAgB,EAAE,KAAkC,EAAE,SAAmC,EAAE;IACtJ,OAAO,IAAI,CAAC,WAAW,EAAE,KAAyB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,yKAAyK;AACzK,MAAM,UAAU,QAAQ,CAAuB,UAAa,EAAE,QAAgB,EAAE,KAAkC,EAAE,SAAmC,EAAE;IACrJ,OAAO,IAAI,CAAC,MAAM,EAAE,KAAyB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,2JAA2J;AAC3J,MAAM,UAAU,OAAO,CAAuB,UAAa,EAAE,KAAkC,EAAE,SAAkC,EAAE;IACjI,OAAO,IAAI,CAAC,SAAS,EAAE,KAAyB,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAmDD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAqD,OAAU,EAAE,KAAQ,EAAE,MAA8C;IAChJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAyC,EAAE,CAAC;AACjF,CAAC"}
|