@elaraai/e3-ui 1.0.97 → 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 +232 -25
- package/dist/src/allocation/index.d.ts.map +1 -1
- package/dist/src/allocation/index.js +35 -6
- package/dist/src/allocation/index.js.map +1 -1
- package/dist/src/allocation/types.d.ts +41 -0
- package/dist/src/allocation/types.d.ts.map +1 -1
- package/dist/src/allocation/types.js +35 -0
- package/dist/src/allocation/types.js.map +1 -1
- package/dist/src/bind/data-indexed.d.ts +286 -37
- package/dist/src/bind/data-indexed.d.ts.map +1 -1
- package/dist/src/bind/data-indexed.js +259 -38
- 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 +522 -36
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +53 -13
- package/dist/src/calendar/index.js.map +1 -1
- package/dist/src/calendar/paged.d.ts +89 -0
- package/dist/src/calendar/paged.d.ts.map +1 -0
- package/dist/src/calendar/paged.js +148 -0
- package/dist/src/calendar/paged.js.map +1 -0
- 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 +105 -17
- 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.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 +13 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +20 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +18 -8
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +40 -10
- 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 +1530 -10
- package/dist/src/plan/builders.d.ts.map +1 -1
- package/dist/src/plan/builders.js +260 -122
- package/dist/src/plan/builders.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +224 -157
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +201 -56
- 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 +152 -125
- package/dist/src/plan/index.d.ts.map +1 -1
- package/dist/src/plan/index.js +138 -122
- package/dist/src/plan/index.js.map +1 -1
- package/dist/src/plan/ir.d.ts +1139 -8
- 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 +3067 -1
- package/dist/src/plan/ordered-source.d.ts.map +1 -1
- package/dist/src/plan/ordered-source.js +67 -17
- 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 +3143 -501
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +133 -34
- 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 +14 -7
- package/dist/src/plan/root.d.ts.map +1 -1
- package/dist/src/plan/root.js +82 -17
- package/dist/src/plan/root.js.map +1 -1
- package/dist/src/plan/series.d.ts +5153 -4331
- package/dist/src/plan/series.d.ts.map +1 -1
- package/dist/src/plan/series.js +1082 -266
- 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 +192 -18
- package/dist/src/plan/types.d.ts.map +1 -1
- package/dist/src/plan/types.js +77 -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 +583 -39
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +109 -35
- package/dist/src/roster/index.js.map +1 -1
- package/dist/src/roster/library.d.ts +12 -2
- package/dist/src/roster/library.d.ts.map +1 -1
- package/dist/src/roster/library.js +8 -0
- package/dist/src/roster/library.js.map +1 -1
- package/dist/src/roster/lists.d.ts +59 -12
- package/dist/src/roster/lists.d.ts.map +1 -1
- package/dist/src/roster/lists.js +51 -58
- package/dist/src/roster/lists.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/roster/times.d.ts +402 -0
- package/dist/src/roster/times.d.ts.map +1 -1
- package/dist/src/roster/types.d.ts +913 -1
- package/dist/src/roster/types.d.ts.map +1 -1
- package/dist/src/roster/types.js +43 -3
- package/dist/src/roster/types.js.map +1 -1
- package/dist/src/schedule/cell-checks.d.ts +85 -0
- package/dist/src/schedule/cell-checks.d.ts.map +1 -0
- package/dist/src/schedule/cell-checks.js +211 -0
- package/dist/src/schedule/cell-checks.js.map +1 -0
- package/dist/src/schedule/days.d.ts +1 -1
- package/dist/src/schedule/days.js +1 -1
- package/dist/src/schedule/events.d.ts +52 -16
- package/dist/src/schedule/events.d.ts.map +1 -1
- package/dist/src/schedule/events.js +574 -356
- package/dist/src/schedule/events.js.map +1 -1
- package/dist/src/schedule/fields.d.ts +134 -0
- package/dist/src/schedule/fields.d.ts.map +1 -0
- package/dist/src/schedule/fields.js +207 -0
- package/dist/src/schedule/fields.js.map +1 -0
- package/dist/src/schedule/library.d.ts +11 -3
- package/dist/src/schedule/library.d.ts.map +1 -1
- package/dist/src/schedule/library.js +9 -6
- package/dist/src/schedule/library.js.map +1 -1
- package/dist/src/schedule/optimise.d.ts +124 -0
- package/dist/src/schedule/optimise.d.ts.map +1 -0
- package/dist/src/schedule/optimise.js +140 -0
- package/dist/src/schedule/optimise.js.map +1 -0
- package/dist/src/schedule/pages.d.ts +76 -0
- package/dist/src/schedule/pages.d.ts.map +1 -0
- package/dist/src/schedule/pages.js +86 -0
- package/dist/src/schedule/pages.js.map +1 -0
- 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 +115 -22
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/record-window.js +140 -62
- package/dist/src/schedule/record-window.js.map +1 -1
- package/dist/src/schedule/resources.d.ts +9 -5
- package/dist/src/schedule/resources.d.ts.map +1 -1
- package/dist/src/schedule/resources.js +35 -15
- package/dist/src/schedule/resources.js.map +1 -1
- package/dist/src/schedule/session.d.ts +15 -1
- package/dist/src/schedule/session.d.ts.map +1 -1
- package/dist/src/schedule/session.js +30 -18
- package/dist/src/schedule/session.js.map +1 -1
- package/dist/src/schedule/types.d.ts +455 -37
- package/dist/src/schedule/types.d.ts.map +1 -1
- package/dist/src/schedule/types.js +79 -18
- package/dist/src/schedule/types.js.map +1 -1
- package/dist/src/schedule/window.d.ts +30 -9
- package/dist/src/schedule/window.d.ts.map +1 -1
- package/dist/src/schedule/window.js +101 -49
- package/dist/src/schedule/window.js.map +1 -1
- package/dist/src/schematic/index.d.ts +287 -0
- package/dist/src/schematic/index.d.ts.map +1 -0
- package/dist/src/schematic/index.js +216 -0
- package/dist/src/schematic/index.js.map +1 -0
- package/dist/src/schematic/kinds.d.ts +501 -0
- package/dist/src/schematic/kinds.d.ts.map +1 -0
- package/dist/src/schematic/kinds.js +1027 -0
- package/dist/src/schematic/kinds.js.map +1 -0
- package/dist/src/schematic/layers.d.ts +74 -0
- package/dist/src/schematic/layers.d.ts.map +1 -0
- package/dist/src/schematic/layers.js +99 -0
- package/dist/src/schematic/layers.js.map +1 -0
- package/dist/src/schematic/library.d.ts +202 -0
- package/dist/src/schematic/library.d.ts.map +1 -0
- package/dist/src/schematic/library.js +244 -0
- package/dist/src/schematic/library.js.map +1 -0
- package/dist/src/schematic/payload.d.ts +8310 -0
- package/dist/src/schematic/payload.d.ts.map +1 -0
- package/dist/src/schematic/payload.js +446 -0
- package/dist/src/schematic/payload.js.map +1 -0
- package/dist/src/schematic/schematic.d.ts +27 -0
- package/dist/src/schematic/schematic.d.ts.map +1 -0
- package/dist/src/schematic/schematic.js +17 -0
- package/dist/src/schematic/schematic.js.map +1 -0
- package/dist/src/schematic/shapes.d.ts +150 -0
- package/dist/src/schematic/shapes.d.ts.map +1 -0
- package/dist/src/schematic/shapes.js +171 -0
- package/dist/src/schematic/shapes.js.map +1 -0
- package/dist/src/schematic/templates.d.ts +96 -0
- package/dist/src/schematic/templates.d.ts.map +1 -0
- package/dist/src/schematic/templates.js +91 -0
- package/dist/src/schematic/templates.js.map +1 -0
- package/dist/src/schematic/types.d.ts +5766 -0
- package/dist/src/schematic/types.d.ts.map +1 -0
- package/dist/src/schematic/types.js +688 -0
- package/dist/src/schematic/types.js.map +1 -0
- package/dist/src/schematic/window.d.ts +213 -0
- package/dist/src/schematic/window.d.ts.map +1 -0
- package/dist/src/schematic/window.js +340 -0
- package/dist/src/schematic/window.js.map +1 -0
- 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/editing-bridge.d.ts +4 -2
- package/dist/src/sheet/editing-bridge.d.ts.map +1 -1
- package/dist/src/sheet/editing-bridge.js +8 -2
- package/dist/src/sheet/editing-bridge.js.map +1 -1
- package/dist/src/sheet/editing-types.d.ts +9 -5
- package/dist/src/sheet/editing-types.d.ts.map +1 -1
- package/dist/src/sheet/editing-types.js +9 -5
- package/dist/src/sheet/editing-types.js.map +1 -1
- package/dist/src/sheet/index.d.ts +84 -54
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +81 -53
- 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/optimise.d.ts +69 -0
- package/dist/src/sheet/optimise.d.ts.map +1 -0
- package/dist/src/sheet/optimise.js +81 -0
- package/dist/src/sheet/optimise.js.map +1 -0
- 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 +157 -133
- package/dist/src/sheet/registers.d.ts.map +1 -1
- package/dist/src/sheet/registers.js +157 -133
- package/dist/src/sheet/registers.js.map +1 -1
- package/dist/src/sheet/root.d.ts +6 -1
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +17 -5
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +696 -590
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +49 -15
- 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 +57 -20
- package/dist/src/sheet/types.d.ts.map +1 -1
- package/dist/src/sheet/types.js +4 -8
- package/dist/src/sheet/types.js.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/keyed-rows.d.ts +41 -0
- package/dist/src/utils/keyed-rows.d.ts.map +1 -0
- package/dist/src/utils/keyed-rows.js +64 -0
- package/dist/src/utils/keyed-rows.js.map +1 -0
- package/dist/src/utils/optimise.d.ts +79 -0
- package/dist/src/utils/optimise.d.ts.map +1 -0
- package/dist/src/utils/optimise.js +46 -0
- package/dist/src/utils/optimise.js.map +1 -0
- 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 -1610
- 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 +109 -0
- package/dist/test/allocation/optimise.examples.d.ts.map +1 -0
- package/dist/test/allocation/optimise.examples.js +223 -0
- package/dist/test/allocation/optimise.examples.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +1172 -514
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +284 -164
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts +457 -428
- 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 +9 -0
- package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar-windows.examples.js +111 -0
- package/dist/test/calendar/calendar-windows.examples.js.map +1 -0
- package/dist/test/calendar/calendar.examples.d.ts +1172 -915
- 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.d.ts +132 -0
- package/dist/test/calendar/optimise.examples.d.ts.map +1 -0
- package/dist/test/calendar/optimise.examples.js +75 -0
- package/dist/test/calendar/optimise.examples.js.map +1 -0
- package/dist/test/examples-package.d.ts +49 -16
- package/dist/test/examples-package.d.ts.map +1 -1
- package/dist/test/examples-package.js +138 -49
- package/dist/test/examples-package.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2840
- 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.d.ts +207 -0
- package/dist/test/plan/optimise.examples.d.ts.map +1 -0
- package/dist/test/plan/optimise.examples.js +98 -0
- package/dist/test/plan/optimise.examples.js.map +1 -0
- package/dist/test/plan/plan-events.examples.d.ts +4055 -3279
- 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 +391 -244
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +186 -65
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan-windows.examples.d.ts +1978 -803
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-windows.examples.js +269 -99
- package/dist/test/plan/plan-windows.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.d.ts +2238 -5726
- package/dist/test/plan/plan.examples.d.ts.map +1 -1
- package/dist/test/plan/plan.examples.js +846 -973
- 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/domain.examples.d.ts +804 -0
- package/dist/test/roster/domain.examples.d.ts.map +1 -1
- package/dist/test/roster/domain.examples.js +3 -3
- package/dist/test/roster/domain.examples.js.map +1 -1
- package/dist/test/roster/optimise.examples.d.ts +485 -0
- package/dist/test/roster/optimise.examples.d.ts.map +1 -0
- package/dist/test/roster/optimise.examples.js +155 -0
- package/dist/test/roster/optimise.examples.js.map +1 -0
- package/dist/test/roster/roster-records.examples.d.ts +364 -404
- 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 +5091 -1424
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +255 -109
- package/dist/test/roster/roster.examples.js.map +1 -1
- package/dist/test/roster/warehouse.d.ts +150 -7
- package/dist/test/roster/warehouse.d.ts.map +1 -1
- package/dist/test/roster/warehouse.js +36 -11
- package/dist/test/roster/warehouse.js.map +1 -1
- package/dist/test/schedule/schedule.examples.d.ts +2646 -2473
- 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 +454 -0
- package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
- package/dist/test/schematic/schematic-records.examples.js +219 -0
- package/dist/test/schematic/schematic-records.examples.js.map +1 -0
- package/dist/test/schematic/schematic.examples.d.ts +2640 -0
- package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
- package/dist/test/schematic/schematic.examples.js +559 -0
- package/dist/test/schematic/schematic.examples.js.map +1 -0
- package/dist/test/sheet/optimise.examples.d.ts +184 -0
- package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
- package/dist/test/sheet/optimise.examples.js +79 -0
- package/dist/test/sheet/optimise.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +208 -356
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet-records.examples.js +66 -29
- package/dist/test/sheet/sheet-records.examples.js.map +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +3650 -3377
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +406 -296
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/schematic/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* A Schematic kind's reads (#1386, `Schematic Builder Spec.md` §10.4): its
|
|
7
|
+
* record read whole, or its narrowing read complete through its source of the
|
|
8
|
+
* Schematic's `Slice.bindRecords` — the record slice's `PagedScan`, over
|
|
9
|
+
* `recordSliceReadPlatform` — each answering `none` while a read is in flight.
|
|
10
|
+
* Reading by area — a viewport's window from an area index alone, and the
|
|
11
|
+
* density at overview (§10.4, #1393) — is the renderer's reader's, which reads
|
|
12
|
+
* a window by its cells as the Plan's events are read (D41): what this module
|
|
13
|
+
* gives it is which index and which searches a window reads
|
|
14
|
+
* ({@link schematicAreaIndexes}, {@link schematicWindowPlan}), the agreement
|
|
15
|
+
* of an area index's box with the kind's roles (SC34), and the density's
|
|
16
|
+
* raster ({@link schematicRaster}); the kind's `rowsOf` makes the rows it
|
|
17
|
+
* reads its stored rows.
|
|
18
|
+
*
|
|
19
|
+
* Through its source a kind reads what its narrowing holds and nothing else:
|
|
20
|
+
* the source's choices, each as the rail holds it. Under `narrowed="dim"` it
|
|
21
|
+
* reads every row through its source instead, and never the narrowing, so a
|
|
22
|
+
* choice reads none of its rows again: the renderer draws the rows the
|
|
23
|
+
* narrowing leaves out as context, from the source's shown keys (§10.3,
|
|
24
|
+
* #1392). An entry's row is its `row` — the source joins it — or its `value`,
|
|
25
|
+
* for an index that carries the whole row (D29).
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import { DictType, OptionType, StringType, StructType, type EastType, type ExprType, type FunctionType, type ValueTypeOf } from "@elaraai/east";
|
|
30
|
+
import { RecordSliceReadType, type AreaCell, type AreaWindow, type RecordOnPrinter, type RecordSliceChoiceType, type RecordSliceIndexType } from "@elaraai/east-ui/internal";
|
|
31
|
+
import type { SchematicBoxFieldsType } from "./types.js";
|
|
32
|
+
/**
|
|
33
|
+
* A kind's source of the Schematic's slice, as the payload hands it to the
|
|
34
|
+
* kind: the source's typed record Slice handle, `Slice.bindRecords`' part
|
|
35
|
+
* named after the kind's slot, bound once in the payload's block
|
|
36
|
+
* (`recordSources(…).bind($)`, #1356). A kind's read reads its members inside
|
|
37
|
+
* its function, so it holds this one source, never the whole slice.
|
|
38
|
+
*/
|
|
39
|
+
export type SchematicKindPart = ExprType<StructType>;
|
|
40
|
+
/** A kind's rows, by key: what a read of it gives; `none` while it is in flight. */
|
|
41
|
+
type RowsRead = ExprType<FunctionType<[], OptionType<DictType<StringType, EastType>>>>;
|
|
42
|
+
/**
|
|
43
|
+
* A kind's record read whole: its binding's `read()` — `Record.bind`'s or
|
|
44
|
+
* `Data.bind`'s — by key.
|
|
45
|
+
*
|
|
46
|
+
* @param handle - The record's binding
|
|
47
|
+
* @param rowType - Its row type
|
|
48
|
+
* @returns `()` → the record's rows, by key
|
|
49
|
+
*/
|
|
50
|
+
export declare function schematicWholeRows(handle: ExprType<EastType>, rowType: StructType): RowsRead;
|
|
51
|
+
/**
|
|
52
|
+
* A kind's narrowing read complete through its source of the slice (see the
|
|
53
|
+
* module docs).
|
|
54
|
+
*
|
|
55
|
+
* @param part - The kind's source of the slice, bound in the payload
|
|
56
|
+
* @param slot - The kind's slot, which names the source
|
|
57
|
+
* @param rowType - The kind's record's row type
|
|
58
|
+
* @param where - The kind, as a refusal names it
|
|
59
|
+
* @param every - Whether it reads every row, the narrowing read nowhere: under `narrowed="dim"`, what the narrowing
|
|
60
|
+
* leaves out draws as context
|
|
61
|
+
* @returns `()` → the rows the narrowing holds — or every row — by key; `none` while a search or a page is in flight
|
|
62
|
+
* @throws {Error} When the source narrows another record, or reads neither its rows nor an index carrying them
|
|
63
|
+
*/
|
|
64
|
+
export declare function schematicSourceRows(part: SchematicKindPart, slot: string, rowType: StructType, where: string, every?: boolean): RowsRead;
|
|
65
|
+
/** One index a record Slice's binding lists, decoded. */
|
|
66
|
+
type Index = ValueTypeOf<typeof RecordSliceIndexType>;
|
|
67
|
+
/** A record Slice's narrowing, decoded. */
|
|
68
|
+
type Where = ReadonlyMap<string, ValueTypeOf<typeof RecordSliceChoiceType>>;
|
|
69
|
+
/** The fields a kind's box is, decoded. */
|
|
70
|
+
type BoxFields = ValueTypeOf<typeof SchematicBoxFieldsType>;
|
|
71
|
+
/**
|
|
72
|
+
* Past this many rows in view, the canvas draws the density in place of items
|
|
73
|
+
* (D25): by the counts its window's searches answer — each cell's rows held
|
|
74
|
+
* evenly over it, the view's share of them — and, past those, by the
|
|
75
|
+
* density's own count of the view, which its footer says.
|
|
76
|
+
*/
|
|
77
|
+
export declare const SCHEMATIC_WINDOW_ROWS = 5000;
|
|
78
|
+
/**
|
|
79
|
+
* The most rows a window's searches hold for its rows to be read (D25): its
|
|
80
|
+
* view's, its margin's and its cells' reach past them, which hold some twice a
|
|
81
|
+
* view's rows over an even floor — four views' worth. Past this, the window
|
|
82
|
+
* draws its density whatever its view holds, and a zoom in plans one that
|
|
83
|
+
* holds fewer.
|
|
84
|
+
*/
|
|
85
|
+
export declare const SCHEMATIC_WINDOW_READ_ROWS = 20000;
|
|
86
|
+
/** A kind's area indexes (§10.4, D20): the one led by no field, and those led by fields beside it. */
|
|
87
|
+
export interface SchematicAreaIndexes {
|
|
88
|
+
/** The area index led by no field: what reads the window whatever the rail chooses. */
|
|
89
|
+
readonly unled: Index;
|
|
90
|
+
/** The area indexes led by fields, in the order the source lists them: each reads a choice of its fields and the window in one. */
|
|
91
|
+
readonly led: readonly Index[];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The area indexes a kind is read by (§10.4, §11.4, SC34): those its source of
|
|
95
|
+
* the slice lists, each held to the kind's roles — the same `x`, `y`, `width`
|
|
96
|
+
* and `height` fields, at the centre for an item kind and the corner for a
|
|
97
|
+
* zone kind — one led by no field among them.
|
|
98
|
+
*
|
|
99
|
+
* @param indexes - The indexes the kind's source lists (its config's)
|
|
100
|
+
* @param box - The fields the kind's box is (its kind's `box`)
|
|
101
|
+
* @param sort - The kind's sort: items are placed by their centre, zones by their corner
|
|
102
|
+
* @param where - The kind, as a refusal names it
|
|
103
|
+
* @returns Its area indexes; `undefined` for a source that lists none, through which the kind reads its narrowing complete
|
|
104
|
+
* @throws {Error} When an area index's box isn't the kind's roles, naming both; when none is led by no field, naming the
|
|
105
|
+
* index to declare
|
|
106
|
+
*/
|
|
107
|
+
export declare function schematicAreaIndexes(indexes: readonly Index[], box: BoxFields, sort: "items" | "zones", where: string): SchematicAreaIndexes | undefined;
|
|
108
|
+
/** Which area index a window reads, and how (§10.4, SC34). */
|
|
109
|
+
export interface SchematicWindowPlan {
|
|
110
|
+
/** The index read. */
|
|
111
|
+
readonly index: Index;
|
|
112
|
+
/** Its finest cell's side, a power of two. */
|
|
113
|
+
readonly cell: number;
|
|
114
|
+
/** The `.east` literals of its leading values, a combination each, a window's searches asked of each: `[[]]` for the unled index. */
|
|
115
|
+
readonly prefixes: readonly (readonly string[])[];
|
|
116
|
+
/** The narrowing's fields the index doesn't lead, which `within` asks of the window's rows; none where it serves the narrowing whole. */
|
|
117
|
+
readonly residual: readonly string[];
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Which area index a window reads (§10.4, SC34): one whose `on` the rail's
|
|
121
|
+
* exact choices fill — each leading field a choice of values, one value for a
|
|
122
|
+
* Set field — while its searches across those choices stay within the record
|
|
123
|
+
* slice's bound on landed searches, the one leaving the fewest fields of the
|
|
124
|
+
* narrowing to `within` first; otherwise the one led by no field, the
|
|
125
|
+
* narrowing asked of the window's rows. The window is a read, never the
|
|
126
|
+
* rail's: it is never a choice, and never counted.
|
|
127
|
+
*
|
|
128
|
+
* @param areas - The kind's area indexes ({@link schematicAreaIndexes})
|
|
129
|
+
* @param where - The narrowing the window reads: the rail's, or none, to read every row
|
|
130
|
+
* @param box - The window's box, in world units: its searches grow it by the margin (`areaQueries`)
|
|
131
|
+
* @returns The index, its leading values and the fields left to `within`
|
|
132
|
+
*/
|
|
133
|
+
export declare function schematicWindowPlan(areas: SchematicAreaIndexes, where: Where, box: AreaWindow): SchematicWindowPlan;
|
|
134
|
+
/** How a kind read by area reads its rows with no position: the read it asks, and the fields it leaves to `within`. */
|
|
135
|
+
export interface SchematicUnplacedPlan {
|
|
136
|
+
/** The index read. */
|
|
137
|
+
readonly index: Index;
|
|
138
|
+
/**
|
|
139
|
+
* The read it asks (`pageWhere`, `countWhere`): the narrowing's choices of the fields the index leads, and beside them
|
|
140
|
+
* the unplaced clause (#1432).
|
|
141
|
+
*/
|
|
142
|
+
readonly read: ValueTypeOf<typeof RecordSliceReadType>;
|
|
143
|
+
/** The narrowing's fields the index doesn't lead, which `within` asks of the rows read; none where it serves the narrowing whole. */
|
|
144
|
+
readonly residual: readonly string[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* How a kind read by area reads its rows with no position — its Backlog's
|
|
148
|
+
* (§8, §11.4, #1393): through the area index the window would read through
|
|
149
|
+
* ({@link schematicWindowPlan}'s rule, one search a combination of its leading
|
|
150
|
+
* values), the narrowing's choices of the fields it leads beside the unplaced
|
|
151
|
+
* clause; the narrowing's other fields left to `within`, asked of the rows
|
|
152
|
+
* read. The unplaced clause is offered only by an index whose `x` and `y` are
|
|
153
|
+
* Options, as a kind with a backlog boxes its rows.
|
|
154
|
+
*
|
|
155
|
+
* @param areas - The kind's area indexes ({@link schematicAreaIndexes})
|
|
156
|
+
* @param where - The narrowing: the rail's
|
|
157
|
+
* @returns The index, the narrowing a read takes and the fields left to `within`
|
|
158
|
+
*/
|
|
159
|
+
export declare function schematicUnplacedPlan(areas: SchematicAreaIndexes, where: Where): SchematicUnplacedPlan;
|
|
160
|
+
/** A window's density raster (§10.4, D25): one level's cells, counted, a combination of the index's leading values at a time. */
|
|
161
|
+
export interface SchematicRaster {
|
|
162
|
+
/** Its level. */
|
|
163
|
+
readonly level: number;
|
|
164
|
+
/** Its cells' side, in world units. */
|
|
165
|
+
readonly side: number;
|
|
166
|
+
/** Each combination's cells, in the plan's order of its prefixes: through a led index, a raster per value. */
|
|
167
|
+
readonly cells: readonly (readonly AreaCell[])[];
|
|
168
|
+
/**
|
|
169
|
+
* The coarser levels' cells, every combination's: their rows are boxes larger than half a raster cell, counted by their
|
|
170
|
+
* keys, and read as rows while they are few.
|
|
171
|
+
*/
|
|
172
|
+
readonly coarse: readonly AreaCell[];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* A window's density raster (§10.4, D25): the counts of its area index's cells
|
|
176
|
+
* at the level whose cells are about a sixty-fourth of the box, each
|
|
177
|
+
* combination of its leading values a raster of its own, all of them in at
|
|
178
|
+
* most {@link MAX_AREA_RASTER} counted ranges, and the coarser levels' cells by
|
|
179
|
+
* exact key.
|
|
180
|
+
*
|
|
181
|
+
* @param plan - The window's plan ({@link schematicWindowPlan})
|
|
182
|
+
* @param box - The box the raster covers, in world units
|
|
183
|
+
* @param printOn - The plan's index's `on` printer: the coarser cells' searches name its leading values as one (#1432)
|
|
184
|
+
* @returns The raster
|
|
185
|
+
*/
|
|
186
|
+
export declare function schematicRaster(plan: SchematicWindowPlan, box: AreaWindow, printOn: RecordOnPrinter): SchematicRaster;
|
|
187
|
+
/** One cell of a window's density raster that holds rows (D25): its corner, in world units, and how many rows it holds. */
|
|
188
|
+
export interface SchematicDensityCell {
|
|
189
|
+
/** Its left edge. */
|
|
190
|
+
readonly minX: number;
|
|
191
|
+
/** Its top edge. */
|
|
192
|
+
readonly minY: number;
|
|
193
|
+
/** How many rows' centres it holds — some of them a coarser cell's rows' share, spread over it. */
|
|
194
|
+
readonly count: number;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* A window's density raster's cells that hold rows (§10.4, D25): each cell's
|
|
198
|
+
* count, every combination's raster added up cell by cell — they are all at one
|
|
199
|
+
* level, over one box — and, given the coarser levels' counts where their rows
|
|
200
|
+
* are too many to read, each coarser cell's rows spread evenly over the raster
|
|
201
|
+
* cells it covers: a row's centre lies anywhere in the cell it is filed in. A
|
|
202
|
+
* cell holds rows while it holds at least half of one.
|
|
203
|
+
*
|
|
204
|
+
* @param raster - The raster ({@link schematicRaster})
|
|
205
|
+
* @param counts - Each of its cells' count, every combination's cells in turn, as `raster.cells` lists them
|
|
206
|
+
* @param spread - Each of its coarser cells' count, as `raster.coarse` lists them, to spread over it; `undefined` while
|
|
207
|
+
* their rows are read as rows
|
|
208
|
+
* @returns The cells that hold rows, row by row
|
|
209
|
+
* @throws {Error} When the counts are not one a cell
|
|
210
|
+
*/
|
|
211
|
+
export declare function schematicDensityCells(raster: SchematicRaster, counts: readonly bigint[], spread?: readonly bigint[]): SchematicDensityCell[];
|
|
212
|
+
export {};
|
|
213
|
+
//# sourceMappingURL=window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../../src/schematic/window.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* A Schematic kind's reads (#1386, `Schematic Builder Spec.md` §10.4): its
|
|
7
|
+
* record read whole, or its narrowing read complete through its source of the
|
|
8
|
+
* Schematic's `Slice.bindRecords` — the record slice's `PagedScan`, over
|
|
9
|
+
* `recordSliceReadPlatform` — each answering `none` while a read is in flight.
|
|
10
|
+
* Reading by area — a viewport's window from an area index alone, and the
|
|
11
|
+
* density at overview (§10.4, #1393) — is the renderer's reader's, which reads
|
|
12
|
+
* a window by its cells as the Plan's events are read (D41): what this module
|
|
13
|
+
* gives it is which index and which searches a window reads
|
|
14
|
+
* ({@link schematicAreaIndexes}, {@link schematicWindowPlan}), the agreement
|
|
15
|
+
* of an area index's box with the kind's roles (SC34), and the density's
|
|
16
|
+
* raster ({@link schematicRaster}); the kind's `rowsOf` makes the rows it
|
|
17
|
+
* reads its stored rows.
|
|
18
|
+
*
|
|
19
|
+
* Through its source a kind reads what its narrowing holds and nothing else:
|
|
20
|
+
* the source's choices, each as the rail holds it. Under `narrowed="dim"` it
|
|
21
|
+
* reads every row through its source instead, and never the narrowing, so a
|
|
22
|
+
* choice reads none of its rows again: the renderer draws the rows the
|
|
23
|
+
* narrowing leaves out as context, from the source's shown keys (§10.3,
|
|
24
|
+
* #1392). An entry's row is its `row` — the source joins it — or its `value`,
|
|
25
|
+
* for an index that carries the whole row (D29).
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import { BooleanType, DictType, East, Expr, IntegerType, OptionType, SortedMap, StringType, StructType, compareFor, equalFor, isSubtype, isTypeEqual, none, some, variant, } from "@elaraai/east";
|
|
30
|
+
import { MAX_AREA_RASTER, MAX_LANDED_SEARCHES, MAX_RECORD_SLICE_RUNS, RecordSliceBindType, RecordSliceConfigType, RecordSliceReadType, RecordSliceStateType, areaQueries, areaRaster, recordOnPrinter, recordSliceReadPlatform, } from "@elaraai/east-ui/internal";
|
|
31
|
+
import { optionOf } from "../schedule/window.js";
|
|
32
|
+
/**
|
|
33
|
+
* A kind's record read whole: its binding's `read()` — `Record.bind`'s or
|
|
34
|
+
* `Data.bind`'s — by key.
|
|
35
|
+
*
|
|
36
|
+
* @param handle - The record's binding
|
|
37
|
+
* @param rowType - Its row type
|
|
38
|
+
* @returns `()` → the record's rows, by key
|
|
39
|
+
*/
|
|
40
|
+
export function schematicWholeRows(handle, rowType) {
|
|
41
|
+
const Held = DictType(StringType, rowType);
|
|
42
|
+
const read = handle.read;
|
|
43
|
+
return East.function([], OptionType(Held), (_$) => East.value(some(read()), OptionType(Held)));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A kind's narrowing read complete through its source of the slice (see the
|
|
47
|
+
* module docs).
|
|
48
|
+
*
|
|
49
|
+
* @param part - The kind's source of the slice, bound in the payload
|
|
50
|
+
* @param slot - The kind's slot, which names the source
|
|
51
|
+
* @param rowType - The kind's record's row type
|
|
52
|
+
* @param where - The kind, as a refusal names it
|
|
53
|
+
* @param every - Whether it reads every row, the narrowing read nowhere: under `narrowed="dim"`, what the narrowing
|
|
54
|
+
* leaves out draws as context
|
|
55
|
+
* @returns `()` → the rows the narrowing holds — or every row — by key; `none` while a search or a page is in flight
|
|
56
|
+
* @throws {Error} When the source narrows another record, or reads neither its rows nor an index carrying them
|
|
57
|
+
*/
|
|
58
|
+
export function schematicSourceRows(part, slot, rowType, where, every = false) {
|
|
59
|
+
const type = Expr.type(part);
|
|
60
|
+
const fields = type.type === "Struct" ? type.fields : {};
|
|
61
|
+
const data = fields["data"];
|
|
62
|
+
const page = fields["pageWhere"];
|
|
63
|
+
const output = page?.type === "Function" ? page.output : undefined;
|
|
64
|
+
const collection = output === undefined ? undefined : optionOf(output);
|
|
65
|
+
const entry = collection?.type === "Array" ? collection.value : undefined;
|
|
66
|
+
const entryFields = entry?.type === "Struct" ? entry.fields : undefined;
|
|
67
|
+
const keyed = entryFields?.["key"] !== undefined && isTypeEqual(entryFields["key"], StringType);
|
|
68
|
+
// An entry's row: its `row`, which a joined read fills, or its `value`, when the index carries the whole row (D29).
|
|
69
|
+
const joined = entryFields?.["row"] !== undefined && isTypeEqual(entryFields["row"], OptionType(rowType));
|
|
70
|
+
const carried = entryFields?.["value"] !== undefined && isTypeEqual(entryFields["value"], rowType);
|
|
71
|
+
const pages = page?.type === "Function" && page.inputs.length === 3 && isTypeEqual(page.inputs[0], RecordSliceReadType)
|
|
72
|
+
&& isTypeEqual(page.inputs[1], IntegerType) && isTypeEqual(page.inputs[2], IntegerType);
|
|
73
|
+
const identified = data?.type === "Struct" && data.fields["id"] !== undefined && isTypeEqual(data.fields["id"], StringType)
|
|
74
|
+
&& data.fields["revision"] !== undefined && data.fields["revision"].type === "Function";
|
|
75
|
+
const sliced = Object.entries(RecordSliceBindType.fields).every(([name, expected]) => fields[name] !== undefined && isSubtype(fields[name], expected));
|
|
76
|
+
if (!pages || !keyed || !(joined || carried) || !identified || !sliced) {
|
|
77
|
+
throw new Error(`${where}: the slice's source "${slot}" narrows another record — name it after this kind's slot, over the kind's own record: ` +
|
|
78
|
+
`Data.bindPaged(record, { indexes }), its rows joined or carried by its indexes`);
|
|
79
|
+
}
|
|
80
|
+
const Held = DictType(StringType, rowType);
|
|
81
|
+
const Entries = collection;
|
|
82
|
+
const noRows = `${where}: the slice's source "${slot}" reads no rows — bind it with Data.bindPaged(record, { indexes, join: true })`;
|
|
83
|
+
return East.function([], OptionType(Held), ($) => {
|
|
84
|
+
// The source as the payload bound it, its members read here: the read captures the source alone.
|
|
85
|
+
const source = $.const(part);
|
|
86
|
+
const countWhere = $.const(source.countWhere);
|
|
87
|
+
const pageWhere = $.const(source.pageWhere);
|
|
88
|
+
const id = $.const(source.data.id);
|
|
89
|
+
const revision = $.const(source.data.revision);
|
|
90
|
+
// The read: no narrowing under `dim` — every row, the source's state read nowhere, so a choice reads nothing
|
|
91
|
+
// again and the renderer dims what it leaves out (§10.3) — else the rail's, each of the source's choices. Never
|
|
92
|
+
// a read by area (#1432).
|
|
93
|
+
let taken;
|
|
94
|
+
if (every) {
|
|
95
|
+
taken = $.const({ where: new Map(), area: none }, RecordSliceReadType);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
const read = $.const(source.read);
|
|
99
|
+
const state = $.const(read());
|
|
100
|
+
taken = $.let({ where: state.where, area: none }, RecordSliceReadType);
|
|
101
|
+
}
|
|
102
|
+
const result = $.let(none, OptionType(Held));
|
|
103
|
+
$.match(recordSliceReadPlatform([Entries], id, revision, countWhere, pageWhere, taken), {
|
|
104
|
+
some: ($2, entries) => {
|
|
105
|
+
const held = $2.let(new Map(), Held);
|
|
106
|
+
$2.for(entries, ($3, e) => {
|
|
107
|
+
if (joined) {
|
|
108
|
+
$3.match(e.row, {
|
|
109
|
+
some: ($4, row) => { $4(held.insert(e.key, row)); },
|
|
110
|
+
none: ($4) => {
|
|
111
|
+
if (carried)
|
|
112
|
+
$4(held.insert(e.key, e.value));
|
|
113
|
+
else
|
|
114
|
+
$4.error(noRows);
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
$3(held.insert(e.key, e.value));
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
$2.assign(result, some(held));
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
return result;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Past this many rows in view, the canvas draws the density in place of items
|
|
130
|
+
* (D25): by the counts its window's searches answer — each cell's rows held
|
|
131
|
+
* evenly over it, the view's share of them — and, past those, by the
|
|
132
|
+
* density's own count of the view, which its footer says.
|
|
133
|
+
*/
|
|
134
|
+
export const SCHEMATIC_WINDOW_ROWS = 5_000;
|
|
135
|
+
/**
|
|
136
|
+
* The most rows a window's searches hold for its rows to be read (D25): its
|
|
137
|
+
* view's, its margin's and its cells' reach past them, which hold some twice a
|
|
138
|
+
* view's rows over an even floor — four views' worth. Past this, the window
|
|
139
|
+
* draws its density whatever its view holds, and a zoom in plans one that
|
|
140
|
+
* holds fewer.
|
|
141
|
+
*/
|
|
142
|
+
export const SCHEMATIC_WINDOW_READ_ROWS = 20_000;
|
|
143
|
+
const stringEqual = equalFor(StringType);
|
|
144
|
+
const compareString = compareFor(StringType);
|
|
145
|
+
const sideEqual = equalFor(OptionType(StringType));
|
|
146
|
+
const booleanEqual = equalFor(BooleanType);
|
|
147
|
+
/** A box's fields and where it is placed, as a refusal names them. */
|
|
148
|
+
function boxText(box, centre) {
|
|
149
|
+
const sides = box.width.type === "some" && box.height.type === "some" ? `, width: "${box.width.value}", height: "${box.height.value}"` : "";
|
|
150
|
+
return `x: "${box.x}", y: "${box.y}"${sides}, at: "${centre ? "centre" : "corner"}"`;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* The area indexes a kind is read by (§10.4, §11.4, SC34): those its source of
|
|
154
|
+
* the slice lists, each held to the kind's roles — the same `x`, `y`, `width`
|
|
155
|
+
* and `height` fields, at the centre for an item kind and the corner for a
|
|
156
|
+
* zone kind — one led by no field among them.
|
|
157
|
+
*
|
|
158
|
+
* @param indexes - The indexes the kind's source lists (its config's)
|
|
159
|
+
* @param box - The fields the kind's box is (its kind's `box`)
|
|
160
|
+
* @param sort - The kind's sort: items are placed by their centre, zones by their corner
|
|
161
|
+
* @param where - The kind, as a refusal names it
|
|
162
|
+
* @returns Its area indexes; `undefined` for a source that lists none, through which the kind reads its narrowing complete
|
|
163
|
+
* @throws {Error} When an area index's box isn't the kind's roles, naming both; when none is led by no field, naming the
|
|
164
|
+
* index to declare
|
|
165
|
+
*/
|
|
166
|
+
export function schematicAreaIndexes(indexes, box, sort, where) {
|
|
167
|
+
const areas = indexes.filter((index) => index.area.type === "some");
|
|
168
|
+
if (areas.length === 0)
|
|
169
|
+
return undefined;
|
|
170
|
+
const centre = sort === "items";
|
|
171
|
+
for (const index of areas) {
|
|
172
|
+
if (index.area.type !== "some")
|
|
173
|
+
continue;
|
|
174
|
+
const area = index.area.value;
|
|
175
|
+
if (!stringEqual(area.x, box.x) || !stringEqual(area.y, box.y) || !sideEqual(area.width, box.width) || !sideEqual(area.height, box.height)
|
|
176
|
+
|| !booleanEqual(area.centre, centre)) {
|
|
177
|
+
throw new Error(`${where}: the area index '${index.name}' boxes each row by { ${boxText(area, area.centre)} }, and the kind's roles place it by ` +
|
|
178
|
+
`{ ${boxText(box, centre)} } — an area index the kind is read by boxes each row as its roles place it: declare it ` +
|
|
179
|
+
`index.area({ ${boxText(box, centre)}, cell })`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
// An area index's fields are its leading fields alone, its key's `on` (#1432).
|
|
183
|
+
const unled = areas.find((index) => index.fields.length === 0);
|
|
184
|
+
if (unled === undefined) {
|
|
185
|
+
const named = areas.map((index) => `'${index.name}'`).join(", ");
|
|
186
|
+
throw new Error(`${where}: a kind read by area reads its window through an area index led by no field, whatever the rail chooses, and ` +
|
|
187
|
+
`${named} ${areas.length === 1 ? "is" : "are"} led by fields — declare index.area({ ${boxText(box, centre)}, cell }) ` +
|
|
188
|
+
"beside it, and list it in Data.bindPaged's indexes");
|
|
189
|
+
}
|
|
190
|
+
return { unled, led: areas.filter((index) => index.fields.length > 0) };
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Which area index a window reads (§10.4, SC34): one whose `on` the rail's
|
|
194
|
+
* exact choices fill — each leading field a choice of values, one value for a
|
|
195
|
+
* Set field — while its searches across those choices stay within the record
|
|
196
|
+
* slice's bound on landed searches, the one leaving the fewest fields of the
|
|
197
|
+
* narrowing to `within` first; otherwise the one led by no field, the
|
|
198
|
+
* narrowing asked of the window's rows. The window is a read, never the
|
|
199
|
+
* rail's: it is never a choice, and never counted.
|
|
200
|
+
*
|
|
201
|
+
* @param areas - The kind's area indexes ({@link schematicAreaIndexes})
|
|
202
|
+
* @param where - The narrowing the window reads: the rail's, or none, to read every row
|
|
203
|
+
* @param box - The window's box, in world units: its searches grow it by the margin (`areaQueries`)
|
|
204
|
+
* @returns The index, its leading values and the fields left to `within`
|
|
205
|
+
*/
|
|
206
|
+
export function schematicWindowPlan(areas, where, box) {
|
|
207
|
+
return areaPlan(areas, where, (index) => areaQueries([], box, cellOf(index), NO_LEADING).length);
|
|
208
|
+
}
|
|
209
|
+
/** The `on` of no leading field: a window asks the same cells whatever an index's leading values, so they are counted under none. */
|
|
210
|
+
const NO_LEADING = recordOnPrinter(StructType({}));
|
|
211
|
+
/** An area index's finest cell's side. */
|
|
212
|
+
function cellOf(index) {
|
|
213
|
+
return index.area.type === "some" ? index.area.value.cell : 1;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Which area index a read by area reads through (§10.4, SC34): one whose `on`
|
|
217
|
+
* the narrowing's exact choices fill — each leading field a choice of values,
|
|
218
|
+
* one value for a Set field — while the read's searches across those choices
|
|
219
|
+
* stay within the record slice's bound on landed searches, the one leaving the
|
|
220
|
+
* fewest fields of the narrowing to `within` first; otherwise the one led by
|
|
221
|
+
* no field.
|
|
222
|
+
*
|
|
223
|
+
* @param areas - The kind's area indexes
|
|
224
|
+
* @param where - The narrowing the read takes
|
|
225
|
+
* @param searches - How many searches the read asks of each combination of an index's leading values
|
|
226
|
+
* @returns The index, its leading values and the fields left to `within`
|
|
227
|
+
*/
|
|
228
|
+
function areaPlan(areas, where, searches) {
|
|
229
|
+
let best;
|
|
230
|
+
for (const index of areas.led) {
|
|
231
|
+
const leading = index.fields;
|
|
232
|
+
let prefixes = [[]];
|
|
233
|
+
let fills = true;
|
|
234
|
+
for (const field of leading) {
|
|
235
|
+
const choice = where.get(field);
|
|
236
|
+
const values = choice?.type === "values" ? [...new Set(choice.value)] : [];
|
|
237
|
+
if (values.length === 0 || (index.sets.has(field) && values.length !== 1) || prefixes.length * values.length > MAX_RECORD_SLICE_RUNS) {
|
|
238
|
+
fills = false;
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
prefixes = prefixes.flatMap((prefix) => values.map((value) => [...prefix, value]));
|
|
242
|
+
}
|
|
243
|
+
if (!fills || prefixes.length * searches(index) > MAX_LANDED_SEARCHES)
|
|
244
|
+
continue;
|
|
245
|
+
const residual = [...where.keys()].filter((field) => !leading.some((led) => stringEqual(led, field)));
|
|
246
|
+
if (best === undefined || residual.length < best.residual.length)
|
|
247
|
+
best = { index, cell: cellOf(index), prefixes, residual };
|
|
248
|
+
}
|
|
249
|
+
return best ?? { index: areas.unled, cell: cellOf(areas.unled), prefixes: [[]], residual: [...where.keys()] };
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* How a kind read by area reads its rows with no position — its Backlog's
|
|
253
|
+
* (§8, §11.4, #1393): through the area index the window would read through
|
|
254
|
+
* ({@link schematicWindowPlan}'s rule, one search a combination of its leading
|
|
255
|
+
* values), the narrowing's choices of the fields it leads beside the unplaced
|
|
256
|
+
* clause; the narrowing's other fields left to `within`, asked of the rows
|
|
257
|
+
* read. The unplaced clause is offered only by an index whose `x` and `y` are
|
|
258
|
+
* Options, as a kind with a backlog boxes its rows.
|
|
259
|
+
*
|
|
260
|
+
* @param areas - The kind's area indexes ({@link schematicAreaIndexes})
|
|
261
|
+
* @param where - The narrowing: the rail's
|
|
262
|
+
* @returns The index, the narrowing a read takes and the fields left to `within`
|
|
263
|
+
*/
|
|
264
|
+
export function schematicUnplacedPlan(areas, where) {
|
|
265
|
+
const plan = areaPlan(areas, where, () => 1);
|
|
266
|
+
const taken = new SortedMap([], compareString);
|
|
267
|
+
for (const [field, choice] of where)
|
|
268
|
+
if (plan.index.fields.some((name) => stringEqual(name, field)))
|
|
269
|
+
taken.set(field, choice);
|
|
270
|
+
return { index: plan.index, read: { where: taken, area: some(variant("unplaced", null)) }, residual: plan.residual };
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* A window's density raster (§10.4, D25): the counts of its area index's cells
|
|
274
|
+
* at the level whose cells are about a sixty-fourth of the box, each
|
|
275
|
+
* combination of its leading values a raster of its own, all of them in at
|
|
276
|
+
* most {@link MAX_AREA_RASTER} counted ranges, and the coarser levels' cells by
|
|
277
|
+
* exact key.
|
|
278
|
+
*
|
|
279
|
+
* @param plan - The window's plan ({@link schematicWindowPlan})
|
|
280
|
+
* @param box - The box the raster covers, in world units
|
|
281
|
+
* @param printOn - The plan's index's `on` printer: the coarser cells' searches name its leading values as one (#1432)
|
|
282
|
+
* @returns The raster
|
|
283
|
+
*/
|
|
284
|
+
export function schematicRaster(plan, box, printOn) {
|
|
285
|
+
const budget = Math.max(1, Math.floor(MAX_AREA_RASTER / plan.prefixes.length));
|
|
286
|
+
const rasters = plan.prefixes.map((prefix) => areaRaster(prefix, box, plan.cell, printOn, budget));
|
|
287
|
+
// The same box, cell and budget: every combination's raster is at one level.
|
|
288
|
+
const first = rasters[0];
|
|
289
|
+
return { level: first.level, side: first.side, cells: rasters.map((raster) => raster.cells), coarse: rasters.flatMap((raster) => raster.coarse) };
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* A window's density raster's cells that hold rows (§10.4, D25): each cell's
|
|
293
|
+
* count, every combination's raster added up cell by cell — they are all at one
|
|
294
|
+
* level, over one box — and, given the coarser levels' counts where their rows
|
|
295
|
+
* are too many to read, each coarser cell's rows spread evenly over the raster
|
|
296
|
+
* cells it covers: a row's centre lies anywhere in the cell it is filed in. A
|
|
297
|
+
* cell holds rows while it holds at least half of one.
|
|
298
|
+
*
|
|
299
|
+
* @param raster - The raster ({@link schematicRaster})
|
|
300
|
+
* @param counts - Each of its cells' count, every combination's cells in turn, as `raster.cells` lists them
|
|
301
|
+
* @param spread - Each of its coarser cells' count, as `raster.coarse` lists them, to spread over it; `undefined` while
|
|
302
|
+
* their rows are read as rows
|
|
303
|
+
* @returns The cells that hold rows, row by row
|
|
304
|
+
* @throws {Error} When the counts are not one a cell
|
|
305
|
+
*/
|
|
306
|
+
export function schematicDensityCells(raster, counts, spread) {
|
|
307
|
+
const grid = raster.cells[0] ?? [];
|
|
308
|
+
const total = raster.cells.reduce((sum, cells) => sum + cells.length, 0);
|
|
309
|
+
if (counts.length !== total || (spread !== undefined && spread.length !== raster.coarse.length)) {
|
|
310
|
+
throw new Error(`A density raster of ${total} cells and ${raster.coarse.length} coarser ones was counted ${counts.length} and ${spread?.length ?? 0}`);
|
|
311
|
+
}
|
|
312
|
+
if (grid.length === 0)
|
|
313
|
+
return [];
|
|
314
|
+
// Every combination's raster is the same grid, row by row: a cell's place in it is its place in each.
|
|
315
|
+
const x0 = grid[0].ix, y0 = grid[0].iy, x1 = grid[grid.length - 1].ix, y1 = grid[grid.length - 1].iy;
|
|
316
|
+
const across = x1 - x0 + 1;
|
|
317
|
+
const held = new Float64Array(grid.length);
|
|
318
|
+
let at = 0;
|
|
319
|
+
for (const cells of raster.cells)
|
|
320
|
+
for (let i = 0; i < cells.length; i++)
|
|
321
|
+
held[i] = held[i] + Number(counts[at++]);
|
|
322
|
+
raster.coarse.forEach((cell, i) => {
|
|
323
|
+
const count = spread === undefined ? 0 : Number(spread[i]);
|
|
324
|
+
if (count === 0)
|
|
325
|
+
return;
|
|
326
|
+
// A cell `d` levels coarser covers 2^d raster cells a side: each holds its share of the cell's rows.
|
|
327
|
+
const span = 2 ** (raster.level - cell.level);
|
|
328
|
+
const share = count / (span * span);
|
|
329
|
+
const fromX = Math.max(x0, cell.ix * span), toX = Math.min(x1, (cell.ix + 1) * span - 1);
|
|
330
|
+
const fromY = Math.max(y0, cell.iy * span), toY = Math.min(y1, (cell.iy + 1) * span - 1);
|
|
331
|
+
for (let iy = fromY; iy <= toY; iy++) {
|
|
332
|
+
for (let ix = fromX; ix <= toX; ix++) {
|
|
333
|
+
const k = (iy - y0) * across + (ix - x0);
|
|
334
|
+
held[k] = held[k] + share;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
return grid.flatMap((cell, i) => (held[i] >= 0.5 ? [{ minX: cell.minX, minY: cell.minY, count: held[i] }] : []));
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../../src/schematic/window.ts"],"names":[],"mappings":"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"}
|