@elaraai/e3-ui 1.0.98 → 1.0.99
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/README.md +0 -2
- package/dist/src/allocation/adapters.d.ts +1 -1
- package/dist/src/allocation/adapters.js +1 -1
- package/dist/src/allocation/index.d.ts +46 -90
- package/dist/src/allocation/index.d.ts.map +1 -1
- package/dist/src/allocation/index.js +5 -5
- package/dist/src/allocation/index.js.map +1 -1
- package/dist/src/bind/data-indexed.d.ts +273 -51
- package/dist/src/bind/data-indexed.d.ts.map +1 -1
- package/dist/src/bind/data-indexed.js +233 -56
- package/dist/src/bind/data-indexed.js.map +1 -1
- package/dist/src/bind/data.d.ts +48 -9
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +48 -3
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/record.d.ts +61 -24
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +17 -57
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +55 -95
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +10 -6
- package/dist/src/calendar/index.js.map +1 -1
- package/dist/src/flowchart/index.d.ts +35 -31
- package/dist/src/flowchart/index.d.ts.map +1 -1
- package/dist/src/flowchart/index.js +35 -31
- package/dist/src/flowchart/index.js.map +1 -1
- package/dist/src/flowchart/library.d.ts +108 -84
- package/dist/src/flowchart/library.d.ts.map +1 -1
- package/dist/src/flowchart/library.js +108 -84
- package/dist/src/flowchart/library.js.map +1 -1
- package/dist/src/flowchart/payload.d.ts +39 -107
- package/dist/src/flowchart/payload.d.ts.map +1 -1
- package/dist/src/flowchart/payload.js +3 -3
- package/dist/src/flowchart/payload.js.map +1 -1
- package/dist/src/flowchart/values.d.ts +35 -31
- package/dist/src/flowchart/values.d.ts.map +1 -1
- package/dist/src/flowchart/values.js +35 -31
- package/dist/src/flowchart/values.js.map +1 -1
- package/dist/src/flowchart/window.d.ts +0 -12
- package/dist/src/flowchart/window.d.ts.map +1 -1
- package/dist/src/flowchart/window.js +3 -2
- package/dist/src/flowchart/window.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +7 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +12 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/assemble.d.ts +8 -0
- package/dist/src/plan/assemble.d.ts.map +1 -1
- package/dist/src/plan/assemble.js +1 -1
- package/dist/src/plan/assemble.js.map +1 -1
- package/dist/src/plan/builders.d.ts +1518 -2
- package/dist/src/plan/builders.d.ts.map +1 -1
- package/dist/src/plan/builders.js +248 -114
- package/dist/src/plan/builders.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +9 -14
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +6 -46
- package/dist/src/plan/event-rows.js.map +1 -1
- package/dist/src/plan/factories.d.ts +72 -4
- package/dist/src/plan/factories.d.ts.map +1 -1
- package/dist/src/plan/factories.js +147 -1
- package/dist/src/plan/factories.js.map +1 -1
- package/dist/src/plan/index.d.ts +147 -125
- package/dist/src/plan/index.d.ts.map +1 -1
- package/dist/src/plan/index.js +135 -122
- package/dist/src/plan/index.js.map +1 -1
- package/dist/src/plan/ir.d.ts +1105 -44
- package/dist/src/plan/ir.d.ts.map +1 -1
- package/dist/src/plan/ir.js +5 -0
- package/dist/src/plan/ir.js.map +1 -1
- package/dist/src/plan/library.d.ts +65 -42
- package/dist/src/plan/library.d.ts.map +1 -1
- package/dist/src/plan/library.js +65 -42
- package/dist/src/plan/library.js.map +1 -1
- package/dist/src/plan/nested-checks.d.ts +146 -0
- package/dist/src/plan/nested-checks.d.ts.map +1 -0
- package/dist/src/plan/nested-checks.js +468 -0
- package/dist/src/plan/nested-checks.js.map +1 -0
- package/dist/src/plan/nested-patch.d.ts +35 -0
- package/dist/src/plan/nested-patch.d.ts.map +1 -0
- package/dist/src/plan/nested-patch.js +143 -0
- package/dist/src/plan/nested-patch.js.map +1 -0
- package/dist/src/plan/nested-read.d.ts +3250 -0
- package/dist/src/plan/nested-read.d.ts.map +1 -0
- package/dist/src/plan/nested-read.js +163 -0
- package/dist/src/plan/nested-read.js.map +1 -0
- package/dist/src/plan/nested.d.ts +280 -0
- package/dist/src/plan/nested.d.ts.map +1 -0
- package/dist/src/plan/nested.js +6 -0
- package/dist/src/plan/nested.js.map +1 -0
- package/dist/src/plan/ordered-source.d.ts +1030 -1
- package/dist/src/plan/ordered-source.d.ts.map +1 -1
- package/dist/src/plan/ordered-source.js +48 -6
- package/dist/src/plan/ordered-source.js.map +1 -1
- package/dist/src/plan/over.d.ts +111 -75
- package/dist/src/plan/over.d.ts.map +1 -1
- package/dist/src/plan/over.js +111 -75
- package/dist/src/plan/over.js.map +1 -1
- package/dist/src/plan/pick.d.ts +15 -3
- package/dist/src/plan/pick.d.ts.map +1 -1
- package/dist/src/plan/pick.js +75 -36
- package/dist/src/plan/pick.js.map +1 -1
- package/dist/src/plan/plan.d.ts +2719 -558
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +14 -2
- package/dist/src/plan/plan.js.map +1 -1
- package/dist/src/plan/reads.d.ts +421 -0
- package/dist/src/plan/reads.d.ts.map +1 -0
- package/dist/src/plan/reads.js +143 -0
- package/dist/src/plan/reads.js.map +1 -0
- package/dist/src/plan/refs.d.ts +111 -75
- package/dist/src/plan/refs.d.ts.map +1 -1
- package/dist/src/plan/refs.js +111 -75
- package/dist/src/plan/refs.js.map +1 -1
- package/dist/src/plan/root.d.ts +10 -5
- package/dist/src/plan/root.d.ts.map +1 -1
- package/dist/src/plan/root.js +76 -13
- package/dist/src/plan/root.js.map +1 -1
- package/dist/src/plan/series.d.ts +5140 -4331
- package/dist/src/plan/series.d.ts.map +1 -1
- package/dist/src/plan/series.js +1026 -264
- package/dist/src/plan/series.js.map +1 -1
- package/dist/src/plan/shade.d.ts +981 -0
- package/dist/src/plan/shade.d.ts.map +1 -0
- package/dist/src/plan/shade.js +60 -0
- package/dist/src/plan/shade.js.map +1 -0
- package/dist/src/plan/types.d.ts +178 -18
- package/dist/src/plan/types.d.ts.map +1 -1
- package/dist/src/plan/types.js +69 -19
- package/dist/src/plan/types.js.map +1 -1
- package/dist/src/query/builder.d.ts +3 -3
- package/dist/src/query/builder.d.ts.map +1 -1
- package/dist/src/query/builder.js +1 -1
- package/dist/src/query/library.d.ts +3 -3
- package/dist/src/query/library.d.ts.map +1 -1
- package/dist/src/query/library.js +1 -1
- package/dist/src/query/queries.d.ts +2 -2
- package/dist/src/query/queries.js +1 -1
- package/dist/src/query/saved.d.ts +8 -4
- package/dist/src/query/saved.d.ts.map +1 -1
- package/dist/src/query/saved.js +8 -4
- package/dist/src/query/saved.js.map +1 -1
- package/dist/src/query/types.d.ts +8 -3
- package/dist/src/query/types.d.ts.map +1 -1
- package/dist/src/query/types.js +8 -3
- package/dist/src/query/types.js.map +1 -1
- package/dist/src/roster/index.d.ts +47 -91
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +6 -6
- package/dist/src/roster/index.js.map +1 -1
- package/dist/src/roster/targets.d.ts +8 -4
- package/dist/src/roster/targets.d.ts.map +1 -1
- package/dist/src/roster/targets.js +9 -5
- package/dist/src/roster/targets.js.map +1 -1
- package/dist/src/schedule/cell-checks.js +3 -3
- package/dist/src/schedule/cell-checks.js.map +1 -1
- package/dist/src/schedule/days.d.ts +1 -1
- package/dist/src/schedule/days.js +1 -1
- package/dist/src/schedule/events.d.ts +10 -6
- package/dist/src/schedule/events.d.ts.map +1 -1
- package/dist/src/schedule/events.js +252 -228
- package/dist/src/schedule/events.js.map +1 -1
- package/dist/src/schedule/patch.d.ts +1 -1
- package/dist/src/schedule/patch.js +1 -1
- package/dist/src/schedule/periods.d.ts +8 -4
- package/dist/src/schedule/periods.d.ts.map +1 -1
- package/dist/src/schedule/periods.js +1 -1
- package/dist/src/schedule/periods.js.map +1 -1
- package/dist/src/schedule/record-window.d.ts +38 -58
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/record-window.js +15 -16
- package/dist/src/schedule/record-window.js.map +1 -1
- package/dist/src/schedule/resources.d.ts +1 -1
- package/dist/src/schedule/session.d.ts +1 -1
- package/dist/src/schedule/session.js +1 -1
- package/dist/src/schedule/types.d.ts +29 -1
- package/dist/src/schedule/types.d.ts.map +1 -1
- package/dist/src/schedule/types.js +16 -1
- package/dist/src/schedule/types.js.map +1 -1
- package/dist/src/schematic/index.d.ts +19 -9
- package/dist/src/schematic/index.d.ts.map +1 -1
- package/dist/src/schematic/index.js +19 -9
- package/dist/src/schematic/index.js.map +1 -1
- package/dist/src/schematic/kinds.d.ts +4 -4
- package/dist/src/schematic/kinds.js +9 -9
- package/dist/src/schematic/kinds.js.map +1 -1
- package/dist/src/schematic/payload.d.ts +38 -88
- package/dist/src/schematic/payload.d.ts.map +1 -1
- package/dist/src/schematic/payload.js +4 -4
- package/dist/src/schematic/payload.js.map +1 -1
- package/dist/src/schematic/window.d.ts +8 -7
- package/dist/src/schematic/window.d.ts.map +1 -1
- package/dist/src/schematic/window.js +22 -19
- package/dist/src/schematic/window.js.map +1 -1
- package/dist/src/sheet/bridge.d.ts +19 -0
- package/dist/src/sheet/bridge.d.ts.map +1 -1
- package/dist/src/sheet/bridge.js +28 -21
- package/dist/src/sheet/bridge.js.map +1 -1
- package/dist/src/sheet/index.d.ts +66 -46
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +66 -46
- package/dist/src/sheet/index.js.map +1 -1
- package/dist/src/sheet/library.d.ts +13 -8
- package/dist/src/sheet/library.d.ts.map +1 -1
- package/dist/src/sheet/library.js +13 -8
- package/dist/src/sheet/library.js.map +1 -1
- package/dist/src/sheet/record.d.ts +1 -1
- package/dist/src/sheet/record.js +2 -2
- package/dist/src/sheet/record.js.map +1 -1
- package/dist/src/sheet/registers.d.ts +152 -128
- package/dist/src/sheet/registers.d.ts.map +1 -1
- package/dist/src/sheet/registers.js +152 -128
- package/dist/src/sheet/registers.js.map +1 -1
- package/dist/src/sheet/root.d.ts +4 -1
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +15 -3
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +39 -113
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +7 -5
- package/dist/src/sheet/sheet.js.map +1 -1
- package/dist/src/sheet/sub-rows.d.ts +106 -76
- package/dist/src/sheet/sub-rows.d.ts.map +1 -1
- package/dist/src/sheet/sub-rows.js +106 -76
- package/dist/src/sheet/sub-rows.js.map +1 -1
- package/dist/src/sheet/types.d.ts +19 -62
- package/dist/src/sheet/types.d.ts.map +1 -1
- package/dist/src/studio/builder.d.ts +3 -153
- package/dist/src/studio/builder.d.ts.map +1 -1
- package/dist/src/studio/builder.js +1 -1
- package/dist/src/studio/canvas.d.ts +5 -4
- package/dist/src/studio/canvas.d.ts.map +1 -1
- package/dist/src/studio/canvas.js +8 -7
- package/dist/src/studio/canvas.js.map +1 -1
- package/dist/src/studio/component.d.ts +30 -20
- package/dist/src/studio/component.d.ts.map +1 -1
- package/dist/src/studio/component.js +26 -61
- package/dist/src/studio/component.js.map +1 -1
- package/dist/src/studio/index.d.ts +2 -2
- package/dist/src/studio/index.d.ts.map +1 -1
- package/dist/src/studio/index.js +1 -1
- package/dist/src/studio/index.js.map +1 -1
- package/dist/src/studio/inspector.d.ts +10 -39
- package/dist/src/studio/inspector.d.ts.map +1 -1
- package/dist/src/studio/inspector.js +11 -31
- package/dist/src/studio/inspector.js.map +1 -1
- package/dist/src/studio/library.d.ts +3 -169
- package/dist/src/studio/library.d.ts.map +1 -1
- package/dist/src/studio/library.js +1 -1
- package/dist/src/studio/page.d.ts +0 -8
- package/dist/src/studio/page.d.ts.map +1 -1
- package/dist/src/studio/pages.d.ts +17 -591
- package/dist/src/studio/pages.d.ts.map +1 -1
- package/dist/src/studio/pages.js +17 -44
- package/dist/src/studio/pages.js.map +1 -1
- package/dist/src/studio/palette.d.ts +2 -7
- package/dist/src/studio/palette.d.ts.map +1 -1
- package/dist/src/studio/palette.js +4 -5
- package/dist/src/studio/palette.js.map +1 -1
- package/dist/src/studio/publish.d.ts +8 -18
- package/dist/src/studio/publish.d.ts.map +1 -1
- package/dist/src/studio/publish.js +10 -36
- package/dist/src/studio/publish.js.map +1 -1
- package/dist/src/utils/derive.d.ts +12 -12
- package/dist/src/utils/derive.d.ts.map +1 -1
- package/dist/src/utils/derive.js +5 -2
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/ordered-source.d.ts.map +1 -1
- package/dist/src/utils/ordered-source.js +14 -5
- package/dist/src/utils/ordered-source.js.map +1 -1
- package/dist/test/allocation/allocation.examples.d.ts +1900 -1598
- package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
- package/dist/test/allocation/allocation.examples.js +179 -89
- package/dist/test/allocation/allocation.examples.js.map +1 -1
- package/dist/test/allocation/optimise.examples.d.ts.map +1 -1
- package/dist/test/allocation/optimise.examples.js +7 -7
- package/dist/test/allocation/optimise.examples.js.map +1 -1
- package/dist/test/bind/data/data.examples.d.ts +1057 -903
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +260 -204
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts +457 -426
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +41 -21
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts +162 -170
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-records.examples.js +20 -12
- package/dist/test/calendar/calendar-records.examples.js.map +1 -1
- package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-windows.examples.js +12 -12
- package/dist/test/calendar/calendar-windows.examples.js.map +1 -1
- package/dist/test/calendar/calendar.examples.d.ts +1172 -901
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar.examples.js +211 -124
- package/dist/test/calendar/calendar.examples.js.map +1 -1
- package/dist/test/calendar/optimise.examples.js +2 -2
- package/dist/test/calendar/optimise.examples.js.map +1 -1
- package/dist/test/examples-package.d.ts +6 -9
- package/dist/test/examples-package.d.ts.map +1 -1
- package/dist/test/examples-package.js +11 -32
- package/dist/test/examples-package.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2820
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
- package/dist/test/flowchart/flowchart.examples.js +211 -121
- package/dist/test/flowchart/flowchart.examples.js.map +1 -1
- package/dist/test/plan/optimise.examples.js +2 -2
- package/dist/test/plan/optimise.examples.js.map +1 -1
- package/dist/test/plan/plan-events.examples.d.ts +4055 -3263
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-events.examples.js +492 -319
- package/dist/test/plan/plan-events.examples.js.map +1 -1
- package/dist/test/plan/plan-nested.examples.d.ts +1829 -0
- package/dist/test/plan/plan-nested.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-nested.examples.js +321 -0
- package/dist/test/plan/plan-nested.examples.js.map +1 -0
- package/dist/test/plan/plan-records.examples.d.ts +328 -362
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +81 -57
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan-windows.examples.d.ts +1756 -1398
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-windows.examples.js +161 -128
- package/dist/test/plan/plan-windows.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.d.ts +2238 -5712
- package/dist/test/plan/plan.examples.d.ts.map +1 -1
- package/dist/test/plan/plan.examples.js +839 -968
- package/dist/test/plan/plan.examples.js.map +1 -1
- package/dist/test/query/query.examples.d.ts +5221 -3005
- package/dist/test/query/query.examples.d.ts.map +1 -1
- package/dist/test/query/query.examples.js +169 -118
- package/dist/test/query/query.examples.js.map +1 -1
- package/dist/test/roster/optimise.examples.d.ts.map +1 -1
- package/dist/test/roster/optimise.examples.js +7 -7
- package/dist/test/roster/optimise.examples.js.map +1 -1
- package/dist/test/roster/roster-records.examples.d.ts +364 -392
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
- package/dist/test/roster/roster-records.examples.js +40 -26
- package/dist/test/roster/roster-records.examples.js.map +1 -1
- package/dist/test/roster/roster.examples.d.ts +4605 -4308
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +212 -113
- package/dist/test/roster/roster.examples.js.map +1 -1
- package/dist/test/schedule/schedule.examples.d.ts +2646 -2471
- package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
- package/dist/test/schedule/schedule.examples.js +144 -88
- package/dist/test/schedule/schedule.examples.js.map +1 -1
- package/dist/test/schematic/schematic-records.examples.d.ts +286 -276
- package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic-records.examples.js +52 -38
- package/dist/test/schematic/schematic-records.examples.js.map +1 -1
- package/dist/test/schematic/schematic.examples.d.ts +1842 -1491
- package/dist/test/schematic/schematic.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic.examples.js +240 -134
- package/dist/test/schematic/schematic.examples.js.map +1 -1
- package/dist/test/sheet/optimise.examples.d.ts +102 -95
- package/dist/test/sheet/optimise.examples.d.ts.map +1 -1
- package/dist/test/sheet/optimise.examples.js +7 -3
- package/dist/test/sheet/optimise.examples.js.map +1 -1
- package/dist/test/sheet/sheet-records.examples.d.ts +175 -214
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet-records.examples.js +29 -17
- package/dist/test/sheet/sheet-records.examples.js.map +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +3642 -3353
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +389 -282
- package/dist/test/sheet/sheet.examples.js.map +1 -1
- package/dist/test/studio/component.examples.js +2 -2
- package/dist/test/studio/component.examples.js.map +1 -1
- package/dist/test/studio/page.examples.js +6 -6
- package/dist/test/studio/page.examples.js.map +1 -1
- package/dist/test/studio/studio.examples.d.ts +2329 -873
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +155 -107
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +15 -11
|
@@ -3,18 +3,47 @@
|
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
/** Field-indexed record bindings for Slice; all reads use the paged runtime. */
|
|
6
|
-
import { BooleanType, East, StructType, VariantType, NullType, StringType, IntegerType, ArrayType, OptionType, FunctionType, DictType, SetType, isSubtype, isTypeEqual, printType, } from "@elaraai/east";
|
|
6
|
+
import { BlobType, BooleanType, East, Expr, StructType, VariantType, NullType, StringType, IntegerType, ArrayType, OptionType, FunctionType, DictType, SetType, isSubtype, isTypeEqual, none, printType, some, variant, } from "@elaraai/east";
|
|
7
|
+
// The browser-safe entry: the components' runtime imports this module (#99).
|
|
8
|
+
import { builtIndex, indexMaintenance } from "@elaraai/e3/browser";
|
|
7
9
|
import { TreePathType } from "@elaraai/e3-types";
|
|
8
10
|
import { SeekQueryType, SeekRangeType } from "@elaraai/east-ui";
|
|
9
|
-
import {
|
|
11
|
+
import { IndexedEntryType, IndexedSourceType, areaMarkerFields, intervalMarkerFields, tileMarkerFields, } from "@elaraai/east-ui/internal";
|
|
12
|
+
/**
|
|
13
|
+
* A binding's nested part's type (#1434, #1435): its nested series index's
|
|
14
|
+
* name, its tile and its summary tile, each a struct whose one field is it,
|
|
15
|
+
* and how each collection the index files is declared, as structure
|
|
16
|
+
* ({@link NestedMarker}); none where the binding lists none, its parts then the
|
|
17
|
+
* empty struct, as a summary tile is where the index keeps no totals.
|
|
18
|
+
*
|
|
19
|
+
* @typeParam C - The collections' marker type
|
|
20
|
+
* @typeParam I - The index's name, as a struct of one field
|
|
21
|
+
* @typeParam T - Its tile, as a struct of one field
|
|
22
|
+
* @typeParam U - Its summary tile, as a struct of one field, or the empty struct
|
|
23
|
+
* @param collections - The collections' marker type
|
|
24
|
+
* @param index - The index's name
|
|
25
|
+
* @param tile - Its tile
|
|
26
|
+
* @param summary - Its summary tile
|
|
27
|
+
* @returns The part's type
|
|
28
|
+
*/
|
|
29
|
+
export function NestedPartType(collections, index, tile, summary) {
|
|
30
|
+
return OptionType(StructType({ index, tile, summary, collections }));
|
|
31
|
+
}
|
|
10
32
|
/**
|
|
11
33
|
* New platform contract for indexed record bindings. The previously released
|
|
12
|
-
* paged calls and their return types remain unchanged.
|
|
34
|
+
* paged calls and their return types remain unchanged. `NestedValue` is what
|
|
35
|
+
* the listed nested series index's entries carry, as its definition declares
|
|
36
|
+
* it (#1435), or Null where none is listed: the runtime reads its cells by it,
|
|
37
|
+
* and the handle's type never names it. `Maintenance` is each listed nested
|
|
38
|
+
* series and summary index's maintenance for one row (#1437), which the
|
|
39
|
+
* handle carries, as it does the listed nested series index's fill of a page
|
|
40
|
+
* (#1438), the last argument.
|
|
13
41
|
* @internal
|
|
14
42
|
*/
|
|
15
|
-
export const bindIndexedPagedPlatformFn = East.genericPlatform("data_bind_indexed", ["K", "R", "P", "Indexes", "IK"], [TreePathType, "Indexes", BooleanType, FunctionType([StringType, "K", "R"], ArrayType(StringType)), StringType
|
|
16
|
-
|
|
17
|
-
const
|
|
43
|
+
export const bindIndexedPagedPlatformFn = East.genericPlatform("data_bind_indexed", ["K", "R", "P", "Indexes", "IK", "N", "NestedValue", "Maintenance"], [TreePathType, "Indexes", "N", BooleanType, FunctionType([StringType, "K", "R"], ArrayType(StringType)), StringType, "Maintenance",
|
|
44
|
+
OptionType(FunctionType([DictType("K", "R"), BlobType], DictType("K", "R")))], IndexedSourceType("K", "R", "P", "Indexes", "IK", "N", "Maintenance"), { optional: true });
|
|
45
|
+
const descriptor = [TreePathType, "Indexes", "N", BooleanType];
|
|
46
|
+
const arguments_ = ["K", "R", "P", "Indexes", "IK", "N", "NestedValue"];
|
|
18
47
|
/** Serializable primitives backing the indexed handle; all reuse paged reads. @internal */
|
|
19
48
|
export const DataIndexedPrimitives = {
|
|
20
49
|
page: East.genericPlatform("data_indexed_page", arguments_, [...descriptor, StringType, IntegerType, IntegerType], OptionType(ArrayType(IndexedEntryType("K", "R", "P", "IK"))), { optional: true }),
|
|
@@ -64,16 +93,21 @@ export function bindDataIndexed(record, options) {
|
|
|
64
93
|
}
|
|
65
94
|
if (options.indexes.length === 0)
|
|
66
95
|
throw new Error("Data.bindPaged: indexes must list at least one field index");
|
|
96
|
+
for (const index of options.indexes) {
|
|
97
|
+
if (index.record.name !== record.name || !isSubtype(index.record.type, type) || !isSubtype(type, index.record.type)) {
|
|
98
|
+
throw new Error(`Data.bindPaged: index '${index.name}' belongs to a different record`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Beside a record's nested series index, its other indexes carry each row without its collections (#1434, #1435).
|
|
102
|
+
const nested = listedNested(record, options);
|
|
103
|
+
const rail = options.indexes.filter((index) => index.nested === undefined);
|
|
67
104
|
const names = new Set();
|
|
68
105
|
const fields = {};
|
|
69
106
|
const metadata = {};
|
|
70
107
|
const keyTypes = { primary: type.key };
|
|
71
|
-
const projection = bindingProjection(options.indexes);
|
|
108
|
+
const projection = nested === undefined ? bindingProjection(options.indexes) : type.value;
|
|
72
109
|
let singleEntryIndex = false;
|
|
73
|
-
for (const index of
|
|
74
|
-
if (index.record.name !== record.name || !isSubtype(index.record.type, type) || !isSubtype(type, index.record.type)) {
|
|
75
|
-
throw new Error(`Data.bindPaged: index '${index.name}' belongs to a different record`);
|
|
76
|
-
}
|
|
110
|
+
for (const index of rail) {
|
|
77
111
|
const computed = index.on === undefined;
|
|
78
112
|
if (computed && index.keyType.type === "Struct" && Object.keys(index.keyType.fields).length === 0) {
|
|
79
113
|
throw new Error(`Data.bindPaged: computed index '${index.name}' needs at least one key field for Slice`);
|
|
@@ -81,69 +115,212 @@ export function bindDataIndexed(record, options) {
|
|
|
81
115
|
if (computed && index.multi && index.keyType.type === "Struct" && Object.keys(index.keyType.fields).length !== 1) {
|
|
82
116
|
throw new Error(`Data.bindPaged: computed keys index '${index.name}' needs one named field for Slice so exact membership cannot duplicate records; use { index } for an arbitrary compound fan-out`);
|
|
83
117
|
}
|
|
84
|
-
|
|
118
|
+
// A generated index may be led by no field: its key's `on` is then empty (#1432).
|
|
119
|
+
const generated = index.interval !== undefined || index.area !== undefined || index.series !== undefined || index.summary !== undefined;
|
|
120
|
+
if (!generated && index.on?.length === 0)
|
|
85
121
|
throw new Error(`Data.bindPaged: index '${index.name}' needs at least one field`);
|
|
86
122
|
if (names.has(index.name))
|
|
87
123
|
throw new Error(`Data.bindPaged: repeated index '${index.name}'`);
|
|
88
124
|
names.add(index.name);
|
|
125
|
+
// An index's metadata (#1432): the row fields it is led by, and its
|
|
126
|
+
// kind's one case — `plain`, or a generated index's, a struct naming
|
|
127
|
+
// the kind's own parts by role: an interval's start and end, an area
|
|
128
|
+
// index's box and its cell, a series or a summary index's key, times
|
|
129
|
+
// and tile (#1039). Slice.bindRecord reads them back; e3's parts are
|
|
130
|
+
// never a field's name.
|
|
131
|
+
const tiling = index.series ?? index.summary;
|
|
132
|
+
const [kind, parts] = index.interval !== undefined
|
|
133
|
+
? ["interval", intervalMarkerFields({ from: index.interval.from, to: index.interval.to })]
|
|
134
|
+
: index.area !== undefined
|
|
135
|
+
? ["area", areaMarkerFields({ x: index.area.x, y: index.area.y,
|
|
136
|
+
...(index.area.width !== undefined && index.area.height !== undefined && { width: index.area.width, height: index.area.height }),
|
|
137
|
+
centre: index.area.at === "centre", cell: index.area.cell })]
|
|
138
|
+
: tiling !== undefined
|
|
139
|
+
? [index.summary !== undefined ? "summary" : "series",
|
|
140
|
+
tileMarkerFields({ key: tiling.key, from: tiling.from, to: tiling.to, tile: tiling.tile, summary: index.summary !== undefined })]
|
|
141
|
+
: ["plain", undefined];
|
|
142
|
+
const kindType = VariantType({ [kind]: parts === undefined ? NullType : StructType(Object.fromEntries(parts.map(name => [name, NullType]))) });
|
|
143
|
+
const kindValue = variant(kind, parts === undefined ? null : Object.fromEntries(parts.map(name => [name, null])));
|
|
89
144
|
if (computed) {
|
|
90
145
|
const entries = index.keyType.type === "Struct"
|
|
91
146
|
? Object.entries(index.keyType.fields) : [[index.name, index.keyType]];
|
|
92
|
-
fields[index.name] = StructType(Object.fromEntries(entries.map(([field, type]) => [field, index.multi ? SetType(type) : ArrayType(type)])));
|
|
93
|
-
metadata[index.name] = Object.fromEntries(entries.map(([field]) => [field, index.multi ? new Set() : []]));
|
|
147
|
+
fields[index.name] = StructType({ fields: StructType(Object.fromEntries(entries.map(([field, type]) => [field, index.multi ? SetType(type) : ArrayType(type)]))), kind: kindType });
|
|
148
|
+
metadata[index.name] = { fields: Object.fromEntries(entries.map(([field]) => [field, index.multi ? new Set() : []])), kind: kindValue };
|
|
94
149
|
}
|
|
95
150
|
else {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
// fields and its cell, and a series or a summary index's `__tile`
|
|
99
|
-
// with one naming its key, its times and its tile (#1039), which
|
|
100
|
-
// Slice.bindRecord reads back.
|
|
101
|
-
const tiling = index.series ?? index.summary;
|
|
102
|
-
const marked = index.on.map(field => {
|
|
103
|
-
const names = index.area !== undefined && field === AREA_FIELD
|
|
104
|
-
? areaMarkerFields({ x: index.area.x, y: index.area.y,
|
|
105
|
-
...(index.area.width !== undefined && index.area.height !== undefined && { width: index.area.width, height: index.area.height }),
|
|
106
|
-
centre: index.area.at === "centre", cell: index.area.cell })
|
|
107
|
-
: tiling !== undefined && field === TILE_FIELD
|
|
108
|
-
? tileMarkerFields({ key: tiling.key, from: tiling.from, to: tiling.to, tile: tiling.tile, summary: index.summary !== undefined })
|
|
109
|
-
: index.interval?.from === field ? [index.interval.to] : undefined;
|
|
110
|
-
return [field, names];
|
|
111
|
-
});
|
|
112
|
-
fields[index.name] = StructType(Object.fromEntries(marked.map(([field, names]) => [field,
|
|
113
|
-
names === undefined ? NullType : StructType(Object.fromEntries(names.map(name => [name, NullType])))])));
|
|
114
|
-
metadata[index.name] = Object.fromEntries(marked.map(([field, names]) => [field,
|
|
115
|
-
names === undefined ? null : Object.fromEntries(names.map(name => [name, null]))]));
|
|
151
|
+
fields[index.name] = StructType({ fields: StructType(Object.fromEntries(index.on.map(field => [field, NullType]))), kind: kindType });
|
|
152
|
+
metadata[index.name] = { fields: Object.fromEntries(index.on.map(field => [field, null])), kind: kindValue };
|
|
116
153
|
}
|
|
117
154
|
keyTypes[index.name] = index.keyType;
|
|
118
155
|
singleEntryIndex ||= !index.multi;
|
|
119
156
|
}
|
|
120
|
-
if (
|
|
157
|
+
if (nested !== undefined)
|
|
158
|
+
keyTypes[nested.name] = nested.keyType;
|
|
159
|
+
const joined = nested === undefined && options.join !== false;
|
|
160
|
+
if (!joined && !singleEntryIndex) {
|
|
161
|
+
if (nested !== undefined) {
|
|
162
|
+
throw new Error(`Data.bindPaged: '${nested.name}' is listed, and no index listed beside it pages the rows of '${record.name}' — a page reads each ` +
|
|
163
|
+
`row through an index carrying it without its collections: list one, index.on([field, …]) among the record's indexes`);
|
|
164
|
+
}
|
|
121
165
|
throw new Error("Data.bindPaged with join: false needs an index without Set fields for its unfiltered view; add a one-entry-per-row field index or use join: true");
|
|
122
166
|
}
|
|
123
167
|
const indexFields = StructType(fields);
|
|
124
|
-
//
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
168
|
+
// The nested index's part (#1435): its declaration as structure, its tile and its summary tile.
|
|
169
|
+
const declared = nested?.nested;
|
|
170
|
+
const marker = declared === undefined ? { type: StructType({}), value: {} } : nestedMarker(declared.declaration);
|
|
171
|
+
const one = (name) => markerStruct(name === undefined ? [] : [[name, LEAF]]);
|
|
172
|
+
const index = one(nested?.name);
|
|
173
|
+
const tile = one(declared?.tile);
|
|
174
|
+
const summary = one(declared?.summary);
|
|
175
|
+
const nestedType = NestedPartType(marker.type, index.type, tile.type, summary.type);
|
|
176
|
+
const nestedValue = declared === undefined ? none
|
|
177
|
+
: some({ index: index.value, tile: tile.value, summary: summary.value, collections: marker.value });
|
|
178
|
+
// Each listed nested series and summary index's maintenance for one row (#1437): e3's own, the function its commit
|
|
179
|
+
// runs, so a page previews a drafted row's Save with it. A reader of the record's other indexes reads them as saved.
|
|
180
|
+
const maintained = options.indexes
|
|
181
|
+
.filter((index) => index.nested !== undefined || index.summary !== undefined)
|
|
182
|
+
.map((index) => [index.name, indexMaintenance(record, builtIndex(record, index))]);
|
|
183
|
+
const maintenanceType = OptionType(StructType(Object.fromEntries(maintained.map(([name, maintain]) => [name, Expr.type(maintain)]))));
|
|
184
|
+
// The listed nested series index's fill of a page (#1438): its lean rows filled with the entries read of it, by e3's own program.
|
|
185
|
+
const fillType = OptionType(FunctionType([DictType(type.key, type.value), BlobType], DictType(type.key, type.value)));
|
|
186
|
+
const rowPatchType = East.patchesFor(type.value).patchType;
|
|
142
187
|
const keyFunctionsType = DictType(StringType, FunctionType([type.key, type.value], ArrayType(StringType)));
|
|
143
|
-
|
|
188
|
+
// Built in a block of its own, which holds each index's maintenance once: a Save reads the keys a nested series or a
|
|
189
|
+
// summary index files a row under through it, rather than through the index's own key function written out again.
|
|
190
|
+
return Expr.block(($) => {
|
|
191
|
+
const held = new Map(maintained.map(([name, maintain]) => [name, $.const(maintain)]));
|
|
192
|
+
// Reuse the SDK's exact maintained-key functions. A Save checks individual
|
|
193
|
+
// primary identities with indexed seeks; it never scans a narrowed run.
|
|
194
|
+
const keyFunctions = new Map(options.indexes.map(index => {
|
|
195
|
+
const maintain = held.get(index.name);
|
|
196
|
+
const keys = East.function([type.key, type.value], ArrayType(StringType), ($2, key, row) => {
|
|
197
|
+
if (maintain !== undefined) {
|
|
198
|
+
// A summary's maintenance moves a row's contributions (#1039), a nested series index's its entries (#1434):
|
|
199
|
+
// a row come gives an `add` or an `insert` under each key it files under.
|
|
200
|
+
const ops = $2.const(maintain(key, East.value(none, OptionType(type.value)), East.value(some(row), OptionType(type.value)), East.value(none, OptionType(rowPatchType))));
|
|
201
|
+
return ops.keys().toArray((_$3, entry) => East.print(entry.ik));
|
|
202
|
+
}
|
|
203
|
+
if (index.multi) {
|
|
204
|
+
const fn = $2.const(index.keyFn);
|
|
205
|
+
return fn(key, row).toArray((_$3, ik) => East.print(ik));
|
|
206
|
+
}
|
|
207
|
+
const fn = $2.const(index.keyFn);
|
|
208
|
+
return East.value([East.print(fn(key, row))], ArrayType(StringType));
|
|
209
|
+
});
|
|
210
|
+
return [index.name, keys];
|
|
211
|
+
}));
|
|
144
212
|
const keys = $.const(keyFunctions, keyFunctionsType);
|
|
145
|
-
|
|
213
|
+
const entryKeys = East.function([StringType, type.key, type.value], ArrayType(StringType), (_$2, name, key, row) => keys.get(name)(key, row));
|
|
214
|
+
return bindIndexedPagedPlatformFn([type.key, type.value, projection, indexFields, VariantType(keyTypes), nestedType, nested?.valueType ?? NullType, maintenanceType], East.value(record.path, TreePathType), East.value(metadata, indexFields), East.value(nestedValue, nestedType), joined, entryKeys, record.name, East.value(held.size === 0 ? none : some(Object.fromEntries(held)), maintenanceType), East.value(nested === undefined ? none : some(nestedPageFill(type.key, type.value, nested)), fillType));
|
|
146
215
|
});
|
|
147
|
-
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The nested series index a binding lists (#1435), where its record has one.
|
|
219
|
+
* Beside it, each of the record's other indexes carries the row without its
|
|
220
|
+
* collections (e3's `builtIndex`), but one with a value of its own, which
|
|
221
|
+
* carries its own and may be bound apart. Refused, in its words: an index
|
|
222
|
+
* carrying the lean row listed without it, and beside it `join: true` or an
|
|
223
|
+
* index carrying a value of its own.
|
|
224
|
+
*
|
|
225
|
+
* @param record - The record bound
|
|
226
|
+
* @param options - The binding's indexes and join
|
|
227
|
+
* @returns The nested series index listed; `undefined` where none is, the record declaring none, or every index listed carrying its own
|
|
228
|
+
* @throws {Error} Naming the index, the record and what to write
|
|
229
|
+
*/
|
|
230
|
+
function listedNested(record, options) {
|
|
231
|
+
const declared = Object.values(record.indexes).find((index) => index.nested !== undefined);
|
|
232
|
+
if (declared === undefined)
|
|
233
|
+
return undefined;
|
|
234
|
+
// e3 builds an index as declared where it carries its own — a value of its own, a summary's totals, the nested
|
|
235
|
+
// index's entries — and otherwise to carry the lean row.
|
|
236
|
+
const lean = (index) => builtIndex(record, index) !== index;
|
|
237
|
+
const nestedListed = options.indexes.filter((index) => index.nested !== undefined);
|
|
238
|
+
if (nestedListed.length > 1)
|
|
239
|
+
throw new Error(`Data.bindPaged: repeated index '${nestedListed[1].name}'`);
|
|
240
|
+
const listed = nestedListed[0];
|
|
241
|
+
if (listed === undefined) {
|
|
242
|
+
const carrying = options.indexes.find(lean);
|
|
243
|
+
if (carrying === undefined)
|
|
244
|
+
return undefined;
|
|
245
|
+
throw new Error(`Data.bindPaged: record '${record.name}' has a nested series index, '${declared.name}', and '${carrying.name}' carries ` +
|
|
246
|
+
`each row without the collections it declares — list '${declared.name}' beside it`);
|
|
247
|
+
}
|
|
248
|
+
if (options.join === true) {
|
|
249
|
+
throw new Error(`Data.bindPaged: '${listed.name}' is listed, so the other indexes carry each row without its collections and a page joins ` +
|
|
250
|
+
"none — leave join out: a join would read each row whole");
|
|
251
|
+
}
|
|
252
|
+
const valued = options.indexes.find((index) => index.nested === undefined && index.summary === undefined && !lean(index));
|
|
253
|
+
if (valued !== undefined) {
|
|
254
|
+
throw new Error(`Data.bindPaged: '${valued.name}' carries a value of its own beside '${listed.name}', whose record's other indexes carry each ` +
|
|
255
|
+
"row without its collections — leave its value out, or bind it apart");
|
|
256
|
+
}
|
|
257
|
+
return listed;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* A nested series index's fill of a page (#1438): `(Dict<K, R>, Blob) → Dict<K,
|
|
261
|
+
* R>`, the Blob a beast2 Array of the index's entries, `{ ik, value }`; each
|
|
262
|
+
* lean row filled with the items read of it, by e3's own program
|
|
263
|
+
* (`nested.fill`).
|
|
264
|
+
*
|
|
265
|
+
* @param keyType - The record's key type
|
|
266
|
+
* @param rowType - The record's row type
|
|
267
|
+
* @param index - Its nested series index
|
|
268
|
+
* @returns The fill
|
|
269
|
+
*/
|
|
270
|
+
function nestedPageFill(keyType, rowType, index) {
|
|
271
|
+
const entry = StructType({ ik: index.keyType, value: index.valueType });
|
|
272
|
+
const rows = DictType(keyType, rowType);
|
|
273
|
+
const fillRow = index.nested.fill;
|
|
274
|
+
return East.function([rows, BlobType], rows, ($, page, items) => {
|
|
275
|
+
const fill = $.const(fillRow);
|
|
276
|
+
const read = $.let(items.decodeBeast(ArrayType(entry), "v2"));
|
|
277
|
+
const byRow = $.let(read.groupToArrays((_$, filed) => East.field(East.field(filed, "ik"), "row", keyType)));
|
|
278
|
+
return page.map((_$, row, key) => fill(key, row, byRow.get(key, () => East.value([], ArrayType(entry)))));
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
/** A marker of no value: a leaf of the structure. */
|
|
282
|
+
const LEAF = { type: NullType, value: null };
|
|
283
|
+
/** A struct of markers, each by its name. */
|
|
284
|
+
function markerStruct(parts) {
|
|
285
|
+
return { type: StructType(Object.fromEntries(parts.map(([name, part]) => [name, part.type]))), value: Object.fromEntries(parts.map(([name, part]) => [name, part.value])) };
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* A nested series index's collections as a binding carries them
|
|
289
|
+
* ({@link NestedMarker}), from the declaration the definition holds: each
|
|
290
|
+
* collection by its field, what it holds, its times and its rollups as
|
|
291
|
+
* structure.
|
|
292
|
+
*
|
|
293
|
+
* @param declaration - The definition's declaration (e3-types' `RecordNestedDeclType`)
|
|
294
|
+
* @returns The marker's type and value
|
|
295
|
+
*/
|
|
296
|
+
function nestedMarker(declaration) {
|
|
297
|
+
return markerStruct([...declaration].map(([field, declared]) => [field, collectionMarker(declared)]));
|
|
298
|
+
}
|
|
299
|
+
/** One collection's declaration as a binding carries it ({@link CollectionMarker}). */
|
|
300
|
+
function collectionMarker(declared) {
|
|
301
|
+
const named = (field) => markerStruct([[field, LEAF]]);
|
|
302
|
+
switch (declared.type) {
|
|
303
|
+
case "items": {
|
|
304
|
+
const { times, rollup } = declared.value;
|
|
305
|
+
const parts = times.type === "span"
|
|
306
|
+
? [["from", named(times.value.from)], ["to", named(times.value.to)]]
|
|
307
|
+
: [["at", named(times.value)]];
|
|
308
|
+
if (rollup)
|
|
309
|
+
parts.push(["rollup", LEAF]);
|
|
310
|
+
return markerStruct([["items", markerStruct(parts)]]);
|
|
311
|
+
}
|
|
312
|
+
case "values": {
|
|
313
|
+
// Each fold a struct of its aggregates, in the order declared.
|
|
314
|
+
const folds = new Map();
|
|
315
|
+
for (const { fold, aggregate } of declared.value.rollups)
|
|
316
|
+
folds.set(fold.type, [...(folds.get(fold.type) ?? []), aggregate.type]);
|
|
317
|
+
return markerStruct([["values", folds.size === 0 ? LEAF : markerStruct([["rollup",
|
|
318
|
+
markerStruct([...folds].map(([fold, aggregates]) => [fold, markerStruct(aggregates.map((aggregate) => [aggregate, LEAF]))]))]])]]);
|
|
319
|
+
}
|
|
320
|
+
case "rows":
|
|
321
|
+
return markerStruct([["rows", nestedMarker(declared.value)]]);
|
|
322
|
+
case "recursive":
|
|
323
|
+
return markerStruct([["recursive", LEAF]]);
|
|
324
|
+
}
|
|
148
325
|
}
|
|
149
326
|
//# sourceMappingURL=data-indexed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-indexed.js","sourceRoot":"","sources":["../../../src/bind/data-indexed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-indexed.js","sourceRoot":"","sources":["../../../src/bind/data-indexed.ts"],"names":[],"mappings":"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"}
|
package/dist/src/bind/data.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
10
|
import { ArrayType, NullType, BooleanType, FunctionType, IntegerType, StringType, StructType, VariantType, OptionType, type DictType, type EastType, type ExprType } from '@elaraai/east';
|
|
11
|
+
import { type TreePath } from '@elaraai/e3-types';
|
|
11
12
|
import type { DatasetDef, RecordDef, RecordIndexDef, TaskDef } from '@elaraai/e3';
|
|
12
13
|
import { type BindPagedIndexesOptions, type FieldIndexes, type IndexedPagedValue } from './data-indexed.js';
|
|
13
14
|
/**
|
|
@@ -429,18 +430,43 @@ export type IndexWindowType<T extends EastType, IK extends EastType, P extends E
|
|
|
429
430
|
value: P;
|
|
430
431
|
row: OptionType<V>;
|
|
431
432
|
}>> : never;
|
|
433
|
+
/**
|
|
434
|
+
* A record's index names, as its declaration carries them.
|
|
435
|
+
*
|
|
436
|
+
* @typeParam R - The record
|
|
437
|
+
*/
|
|
438
|
+
export type IndexNameOf<R> = R extends {
|
|
439
|
+
readonly indexes: infer I;
|
|
440
|
+
} ? keyof I & string : never;
|
|
441
|
+
/**
|
|
442
|
+
* The indexes a list of a record's index names names, in its order: each the
|
|
443
|
+
* declaration the record holds under the name.
|
|
444
|
+
*
|
|
445
|
+
* @typeParam R - The record
|
|
446
|
+
* @typeParam N - The names
|
|
447
|
+
*/
|
|
448
|
+
export type IndexesNamed<R, N extends readonly string[]> = R extends {
|
|
449
|
+
readonly indexes: infer I;
|
|
450
|
+
} ? {
|
|
451
|
+
readonly [K in keyof N]: N[K] extends keyof I ? I[N[K]] : never;
|
|
452
|
+
} : never;
|
|
453
|
+
/** The window a record's index serves, by the index's name: its key and what its entries carry, from its declaration. */
|
|
454
|
+
type IndexWindowOf<R extends {
|
|
455
|
+
readonly type: EastType;
|
|
456
|
+
readonly indexes: object;
|
|
457
|
+
}, N> = R['indexes'] extends infer I ? N extends keyof I ? I[N] extends RecordIndexDef<string, EastType, infer IK, infer P> ? IndexWindowType<R['type'], IK, P> : never : never : never;
|
|
432
458
|
/** Reading a record through one of its secondary indexes. */
|
|
433
|
-
export interface BindPagedIndexOptions<
|
|
459
|
+
export interface BindPagedIndexOptions<N extends string> {
|
|
434
460
|
/**
|
|
435
|
-
* The index to read through,
|
|
461
|
+
* The index to read through, by the name the record declares it under.
|
|
436
462
|
*
|
|
437
463
|
* @remarks
|
|
438
|
-
* The
|
|
439
|
-
*
|
|
440
|
-
* index gets the row shape it will actually render, checked at
|
|
441
|
-
* time. Only the
|
|
464
|
+
* The window's type — the index key and the covering projection — comes
|
|
465
|
+
* from the declaration the record holds under the name, so a component
|
|
466
|
+
* binding an index gets the row shape it will actually render, checked at
|
|
467
|
+
* compile time. Only the name travels in the IR.
|
|
442
468
|
*/
|
|
443
|
-
index:
|
|
469
|
+
index: N;
|
|
444
470
|
/**
|
|
445
471
|
* Read each entry's row from the record too.
|
|
446
472
|
*
|
|
@@ -617,6 +643,19 @@ export declare const DataPagedPrimitives: {
|
|
|
617
643
|
* whole: it is declared in the UI task's manifest under `pages`, and follows
|
|
618
644
|
* its dataset by content hash alone, which is the point of binding it paged.
|
|
619
645
|
*
|
|
646
|
+
* A record bound with its indexes, by the names it declares them under —
|
|
647
|
+
* `Data.bindPaged(record, { indexes: ["by_status", "by_due"] })` — pages its
|
|
648
|
+
* rows in each index's order (#1378, #1432). Beside a record's nested series
|
|
649
|
+
* index (`index.nested({ collections, tile, summary })` among its indexes,
|
|
650
|
+
* #1434), e3 builds each of its other indexes to carry the
|
|
651
|
+
* row without the collections the nested index declares, and a binding lists
|
|
652
|
+
* the nested index with them (#1435): it pages those lean rows, never joining
|
|
653
|
+
* a row whole (`join: true` is refused, and so is an index carrying a value of
|
|
654
|
+
* its own, which is bound apart), reads a row whole by its key, and carries
|
|
655
|
+
* how each collection is declared — what it holds, its times and its rollups
|
|
656
|
+
* — in its type, for a Plan's series to be held to. The nested index's own
|
|
657
|
+
* entries are items, totals and subtotals, read a cell at a time, never paged.
|
|
658
|
+
*
|
|
620
659
|
* @example
|
|
621
660
|
* ```ts
|
|
622
661
|
* import { ArrayType, DictType, East, StringType, variant } from "@elaraai/east";
|
|
@@ -643,9 +682,9 @@ export declare const DataPagedPrimitives: {
|
|
|
643
682
|
* });
|
|
644
683
|
* ```
|
|
645
684
|
*/
|
|
646
|
-
declare function bindDataPaged<
|
|
685
|
+
declare function bindDataPaged<R extends RecordDef<EastType, TreePath, object, object>, const N extends readonly IndexNameOf<R>[]>(record: R, options: BindPagedIndexesOptions<N>): IndexedPagedValue<R['type'], Extract<IndexesNamed<R, N>, FieldIndexes<R['type']>>>;
|
|
647
686
|
declare function bindDataPaged<T extends EastType>(dataset: DatasetDef<T> | TaskDef<T>): PagedValue<T>;
|
|
648
|
-
declare function bindDataPaged<
|
|
687
|
+
declare function bindDataPaged<R extends RecordDef<EastType, TreePath, object, object>, const N extends IndexNameOf<R>>(record: R, options: BindPagedIndexOptions<N>): PagedValue<IndexWindowOf<R, N>>;
|
|
649
688
|
/**
|
|
650
689
|
* The Data namespace — reactive dataset binding for e3 UI tasks.
|
|
651
690
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EAEH,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EAIV,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,QAAQ,EAChB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/bind/data.ts"],"names":[],"mappings":"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"}
|
package/dist/src/bind/data.js
CHANGED
|
@@ -14,6 +14,8 @@ import { TreePathType, DatasetStatusType, indexWindowType } from '@elaraai/e3-ty
|
|
|
14
14
|
// so Plan / Table / Sheet recognise it by its East type without either package
|
|
15
15
|
// importing the other's data layer. Paged data is bound: this is its producer.
|
|
16
16
|
import { SeekQueryType, SeekRangeType } from '@elaraai/east-ui';
|
|
17
|
+
// The browser-safe entry: the components' runtime imports this module (#99).
|
|
18
|
+
import { builtIndex } from '@elaraai/e3/browser';
|
|
17
19
|
import { bindDataIndexed } from './data-indexed.js';
|
|
18
20
|
// ============================================================================
|
|
19
21
|
// Mode + binding descriptor types — shared with the Diff component.
|
|
@@ -375,7 +377,13 @@ function bindDataPaged(dataset, options) {
|
|
|
375
377
|
if (options !== undefined && "indexes" in options) {
|
|
376
378
|
if (!("recordKind" in dataset) || dataset.recordKind !== "record")
|
|
377
379
|
throw new Error("Data.bindPaged with indexes requires an e3.record");
|
|
378
|
-
|
|
380
|
+
const rec = dataset;
|
|
381
|
+
if (!Array.isArray(options.indexes))
|
|
382
|
+
throw new Error(`Data.bindPaged: indexes lists the names of record '${rec.name}''s indexes — ${indexNames(rec)}`);
|
|
383
|
+
return bindDataIndexed(rec, {
|
|
384
|
+
indexes: options.indexes.map((name) => indexNamed(rec, name)),
|
|
385
|
+
...(options.join !== undefined && { join: options.join }),
|
|
386
|
+
});
|
|
379
387
|
}
|
|
380
388
|
// A TaskDef binds its output dataset; a DatasetDef binds itself.
|
|
381
389
|
const def = dataset.kind === 'task' ? dataset.output : dataset;
|
|
@@ -383,8 +391,8 @@ function bindDataPaged(dataset, options) {
|
|
|
383
391
|
// construction — `deriveManifest` reads it back as a single literal
|
|
384
392
|
// `Value` IR node, which `East.value(...)` forces.
|
|
385
393
|
const sourceValue = East.value(def.path, TreePathType);
|
|
386
|
-
const
|
|
387
|
-
if (
|
|
394
|
+
const indexName = options?.index;
|
|
395
|
+
if (indexName === undefined) {
|
|
388
396
|
return bindPagedPinnedPlatformFn([def.type], sourceValue, East.value(none, OptionType(StringType)), East.value(false, BooleanType));
|
|
389
397
|
}
|
|
390
398
|
// An index window is the index's OWN order: ORDERED rows, each carrying
|
|
@@ -397,8 +405,45 @@ function bindDataPaged(dataset, options) {
|
|
|
397
405
|
if (record.type !== 'Dict') {
|
|
398
406
|
throw new Error(`Data.bindPaged: an index reads a Dict record; this one holds ${record.type}`);
|
|
399
407
|
}
|
|
408
|
+
if (!("recordKind" in dataset) || dataset.recordKind !== "record")
|
|
409
|
+
throw new Error("Data.bindPaged with an index requires an e3.record");
|
|
410
|
+
const rec = dataset;
|
|
411
|
+
const index = indexNamed(rec, indexName);
|
|
412
|
+
// Beside a record's nested series index, e3 builds its other indexes to carry each row without its collections
|
|
413
|
+
// (#1434): a window of one is read through a binding listing the nested index too, and the nested index's own
|
|
414
|
+
// entries a cell at a time (#1435).
|
|
415
|
+
const nested = Object.values(rec.indexes).find((declared) => declared.nested !== undefined);
|
|
416
|
+
if (nested !== undefined && index.nested !== undefined) {
|
|
417
|
+
throw new Error(`Data.bindPaged: '${index.name}' is a nested series index, whose entries are items, totals and subtotals: a reader reads its ` +
|
|
418
|
+
`cells — list it in Data.bindPaged(${rec.name}, { indexes })`);
|
|
419
|
+
}
|
|
420
|
+
if (nested !== undefined && builtIndex(rec, index) !== index) {
|
|
421
|
+
throw new Error(`Data.bindPaged: record '${rec.name}' has a nested series index, '${nested.name}', and '${index.name}' carries each row ` +
|
|
422
|
+
`without the collections it declares — bind them together: Data.bindPaged(${rec.name}, { indexes: ["${index.name}", "${nested.name}"] })`);
|
|
423
|
+
}
|
|
400
424
|
return bindPagedPinnedPlatformFn([indexWindowType(record.key, index.keyType, index.valueType, record.value)], sourceValue, East.value(some(index.name), OptionType(StringType)), East.value(options?.join === true, BooleanType));
|
|
401
425
|
}
|
|
426
|
+
/** A record's index names, for a refusal: each quoted, or none. */
|
|
427
|
+
function indexNames(rec) {
|
|
428
|
+
const names = Object.keys(rec.indexes);
|
|
429
|
+
return names.length === 0 ? "it declares none" : `it declares ${names.map((name) => `'${name}'`).join(", ")}`;
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* A record's index by the name it declares it under.
|
|
433
|
+
*
|
|
434
|
+
* @param rec - The record
|
|
435
|
+
* @param name - The index's name
|
|
436
|
+
* @returns The record's declaration of it
|
|
437
|
+
* @throws {Error} Naming the record and its indexes, for a name it does not declare, or an index given as other than a name
|
|
438
|
+
*/
|
|
439
|
+
function indexNamed(rec, name) {
|
|
440
|
+
if (typeof name !== "string")
|
|
441
|
+
throw new Error(`Data.bindPaged: an index is given by its name, as record '${rec.name}' declares it — ${indexNames(rec)}`);
|
|
442
|
+
const index = rec.indexes[name];
|
|
443
|
+
if (index === undefined)
|
|
444
|
+
throw new Error(`Data.bindPaged: record '${rec.name}' declares no index '${name}' — ${indexNames(rec)}`);
|
|
445
|
+
return index;
|
|
446
|
+
}
|
|
402
447
|
/**
|
|
403
448
|
* The Data namespace — reactive dataset binding for e3 UI tasks.
|
|
404
449
|
*
|