@elaraai/e3-ui 1.0.97 → 1.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/allocation/index.d.ts +258 -7
- package/dist/src/allocation/index.d.ts.map +1 -1
- package/dist/src/allocation/index.js +30 -1
- 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 +31 -4
- package/dist/src/bind/data-indexed.d.ts.map +1 -1
- package/dist/src/bind/data-indexed.js +54 -10
- package/dist/src/bind/data-indexed.js.map +1 -1
- package/dist/src/calendar/index.d.ts +540 -14
- package/dist/src/calendar/index.d.ts.map +1 -1
- package/dist/src/calendar/index.js +43 -7
- 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/payload.d.ts +156 -0
- package/dist/src/flowchart/payload.d.ts.map +1 -1
- package/dist/src/flowchart/window.d.ts +12 -0
- package/dist/src/flowchart/window.d.ts.map +1 -1
- package/dist/src/index.d.ts +11 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +19 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +11 -5
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +28 -7
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/builders.d.ts +12 -8
- package/dist/src/plan/builders.d.ts.map +1 -1
- package/dist/src/plan/builders.js +12 -8
- package/dist/src/plan/builders.js.map +1 -1
- package/dist/src/plan/event-rows.d.ts +228 -156
- package/dist/src/plan/event-rows.d.ts.map +1 -1
- package/dist/src/plan/event-rows.js +239 -54
- package/dist/src/plan/event-rows.js.map +1 -1
- package/dist/src/plan/index.d.ts +5 -0
- package/dist/src/plan/index.d.ts.map +1 -1
- package/dist/src/plan/index.js +3 -0
- package/dist/src/plan/index.js.map +1 -1
- package/dist/src/plan/ir.d.ts +70 -0
- package/dist/src/plan/ir.d.ts.map +1 -1
- package/dist/src/plan/ordered-source.d.ts +2038 -1
- package/dist/src/plan/ordered-source.d.ts.map +1 -1
- package/dist/src/plan/ordered-source.js +19 -11
- package/dist/src/plan/ordered-source.js.map +1 -1
- package/dist/src/plan/plan.d.ts +513 -32
- package/dist/src/plan/plan.d.ts.map +1 -1
- package/dist/src/plan/plan.js +119 -32
- package/dist/src/plan/plan.js.map +1 -1
- package/dist/src/plan/root.d.ts +4 -2
- package/dist/src/plan/root.d.ts.map +1 -1
- package/dist/src/plan/root.js +6 -4
- package/dist/src/plan/root.js.map +1 -1
- package/dist/src/plan/series.d.ts +13 -0
- package/dist/src/plan/series.d.ts.map +1 -1
- package/dist/src/plan/series.js +61 -7
- package/dist/src/plan/series.js.map +1 -1
- package/dist/src/plan/types.d.ts +14 -0
- package/dist/src/plan/types.d.ts.map +1 -1
- package/dist/src/plan/types.js +8 -0
- package/dist/src/plan/types.js.map +1 -1
- package/dist/src/roster/index.d.ts +608 -20
- package/dist/src/roster/index.d.ts.map +1 -1
- package/dist/src/roster/index.js +103 -29
- 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/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/events.d.ts +42 -10
- package/dist/src/schedule/events.d.ts.map +1 -1
- package/dist/src/schedule/events.js +349 -155
- 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/record-window.d.ts +119 -6
- package/dist/src/schedule/record-window.d.ts.map +1 -1
- package/dist/src/schedule/record-window.js +139 -60
- package/dist/src/schedule/record-window.js.map +1 -1
- package/dist/src/schedule/resources.d.ts +8 -4
- 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 +14 -0
- package/dist/src/schedule/session.d.ts.map +1 -1
- package/dist/src/schedule/session.js +29 -17
- package/dist/src/schedule/session.js.map +1 -1
- package/dist/src/schedule/types.d.ts +426 -36
- package/dist/src/schedule/types.d.ts.map +1 -1
- package/dist/src/schedule/types.js +63 -17
- 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 +277 -0
- package/dist/src/schematic/index.d.ts.map +1 -0
- package/dist/src/schematic/index.js +206 -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 +8360 -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 +212 -0
- package/dist/src/schematic/window.d.ts.map +1 -0
- package/dist/src/schematic/window.js +337 -0
- package/dist/src/schematic/window.js.map +1 -0
- 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 +18 -8
- package/dist/src/sheet/index.d.ts.map +1 -1
- package/dist/src/sheet/index.js +15 -7
- package/dist/src/sheet/index.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/registers.d.ts +5 -5
- package/dist/src/sheet/registers.js +5 -5
- package/dist/src/sheet/root.d.ts +2 -0
- package/dist/src/sheet/root.d.ts.map +1 -1
- package/dist/src/sheet/root.js +2 -2
- package/dist/src/sheet/root.js.map +1 -1
- package/dist/src/sheet/sheet.d.ts +753 -573
- package/dist/src/sheet/sheet.d.ts.map +1 -1
- package/dist/src/sheet/sheet.js +45 -13
- package/dist/src/sheet/sheet.js.map +1 -1
- package/dist/src/sheet/types.d.ts +92 -12
- 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/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/test/allocation/allocation.examples.d.ts +6 -18
- package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
- package/dist/test/allocation/allocation.examples.js +3 -3
- 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 +540 -36
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +66 -2
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts +1 -3
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar-records.examples.js +3 -3
- 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 +7 -21
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
- package/dist/test/calendar/calendar.examples.js +7 -7
- 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 +46 -10
- package/dist/test/examples-package.d.ts.map +1 -1
- package/dist/test/examples-package.js +142 -32
- package/dist/test/examples-package.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +10 -30
- package/dist/test/flowchart/flowchart.examples.d.ts.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 +8 -24
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-events.examples.js +3 -3
- package/dist/test/plan/plan-events.examples.js.map +1 -1
- package/dist/test/plan/plan-records.examples.d.ts +200 -19
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-records.examples.js +125 -28
- package/dist/test/plan/plan-records.examples.js.map +1 -1
- package/dist/test/plan/plan-windows.examples.d.ts +853 -36
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
- package/dist/test/plan/plan-windows.examples.js +166 -29
- package/dist/test/plan/plan-windows.examples.js.map +1 -1
- package/dist/test/plan/plan.examples.d.ts +7 -21
- package/dist/test/plan/plan.examples.d.ts.map +1 -1
- package/dist/test/plan/plan.examples.js +11 -9
- package/dist/test/plan/plan.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 +6 -18
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
- package/dist/test/roster/roster-records.examples.js +1 -1
- package/dist/test/roster/roster-records.examples.js.map +1 -1
- package/dist/test/roster/roster.examples.d.ts +3391 -21
- package/dist/test/roster/roster.examples.d.ts.map +1 -1
- package/dist/test/roster/roster.examples.js +54 -7
- 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 +1 -3
- package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
- package/dist/test/schematic/schematic-records.examples.d.ts +444 -0
- package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
- package/dist/test/schematic/schematic-records.examples.js +205 -0
- package/dist/test/schematic/schematic-records.examples.js.map +1 -0
- package/dist/test/schematic/schematic.examples.d.ts +2289 -0
- package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
- package/dist/test/schematic/schematic.examples.js +453 -0
- package/dist/test/schematic/schematic.examples.js.map +1 -0
- package/dist/test/sheet/optimise.examples.d.ts +177 -0
- package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
- package/dist/test/sheet/optimise.examples.js +75 -0
- package/dist/test/sheet/optimise.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +95 -204
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet-records.examples.js +42 -17
- package/dist/test/sheet/sheet-records.examples.js.map +1 -1
- package/dist/test/sheet/sheet.examples.d.ts +17 -33
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
- package/dist/test/sheet/sheet.examples.js +18 -15
- package/dist/test/sheet/sheet.examples.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-rows.d.ts","sourceRoot":"","sources":["../../../src/plan/event-rows.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"event-rows.d.ts","sourceRoot":"","sources":["../../../src/plan/event-rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,13 +51,24 @@
|
|
|
51
51
|
* Unassigned row: whether the kind has its resource would take every window
|
|
52
52
|
* to know, so an event naming a resource it has not draws nowhere.
|
|
53
53
|
*
|
|
54
|
+
* A paged kind its Plan's slice names a source after takes its windows from
|
|
55
|
+
* that source's narrowed rows themselves (#1344): the narrowing's rows, paged
|
|
56
|
+
* in the source's index's order, as the `rows` source gives the canvas its
|
|
57
|
+
* rows — never a window of every resource filtered by the keys the source
|
|
58
|
+
* shows. Its count is the narrowing's, its keys come in the order its rows
|
|
59
|
+
* draw, so a reader reads the cells of the narrowed resources in view alone,
|
|
60
|
+
* and `query` names the narrowing its windows belong to. It has no key
|
|
61
|
+
* search: the narrowing's searches run in its index's order, which a key's
|
|
62
|
+
* does not follow.
|
|
63
|
+
*
|
|
54
64
|
* @packageDocumentation
|
|
55
65
|
*/
|
|
56
|
-
import { ArrayType, BooleanType, DateTimeType, DictType, East, FunctionType, IntegerType, NullType, OptionType, SetType, StringType, StructType, isTypeEqual, none, some, variant, } from "@elaraai/east";
|
|
66
|
+
import { ArrayType, BlobType, BooleanType, DateTimeType, DictType, East, FloatType, FunctionType, IntegerType, NullType, OptionType, SetType, StringType, StructType, isTypeEqual, none, some, variant, } from "@elaraai/east";
|
|
57
67
|
import { IconType, PickStateType, SeekQueryType, SeekRangeType, StatusValueType } from "@elaraai/east-ui";
|
|
58
|
-
import { buildPagedWindow, resolveRowSource } from "@elaraai/east-ui/internal";
|
|
59
68
|
import { PlanEventItemType, PlanEventKindType, ScheduleDraftsType, ScheduleEventRefType, ScheduleStatusType } from "../schedule/types.js";
|
|
60
|
-
import {
|
|
69
|
+
import { scheduleNarrowedWindows, scheduleOwnWindows } from "../schedule/pages.js";
|
|
70
|
+
import { planIndexOrder } from "./ordered-source.js";
|
|
71
|
+
import { PlanBlockType, PlanBlocksType, PlanBucketEventType, PlanChipType, PlanEventMarkKindType, PlanEventMarkType, PlanHeatCellType, PlanLaneType, PlanRollupType, PlanRowIdType, PlanRowKindType, PlanRowType, PlanRowsCollectionType, PlanRunType, PlanWeightCellType, } from "./types.js";
|
|
61
72
|
import { planGutter, planRow } from "./assemble.js";
|
|
62
73
|
import { bucketsKind, cardsKind, eventsKind, spanKind } from "./factories.js";
|
|
63
74
|
import { planHideId } from "./library.js";
|
|
@@ -75,18 +86,49 @@ export const PlanEventDraftsType = DictType(StringType, ScheduleDraftsType);
|
|
|
75
86
|
* the resources its source shows. A kind it does not name draws every resource.
|
|
76
87
|
*/
|
|
77
88
|
export const PlanEventShownType = DictType(StringType, SetType(StringType));
|
|
89
|
+
/**
|
|
90
|
+
* What a reader read of each event kind by its series index's cells (#1039),
|
|
91
|
+
* by the kind's slot: the entries, one beast2 of the kind's `cellsType`, that
|
|
92
|
+
* the kind draws its events from — a kind past the budget, which draws its
|
|
93
|
+
* summary's shading or the notice in their place, given none. A kind it does
|
|
94
|
+
* not name is read over the window, as ever.
|
|
95
|
+
*/
|
|
96
|
+
export const PlanEventReadsType = DictType(StringType, BlobType);
|
|
97
|
+
/**
|
|
98
|
+
* One bucket of a resource's shading (#1039): the bucket's start, and its
|
|
99
|
+
* value — the share of the bucket the resource's events book, `0` to `1`, for
|
|
100
|
+
* a way of drawing that draws bars or chips; how many of its events touch the
|
|
101
|
+
* bucket, for one that draws tiles or marks; `none` where nothing shows at
|
|
102
|
+
* this resolution, the notice's no-data hatch.
|
|
103
|
+
*/
|
|
104
|
+
export const PlanEventShadeType = StructType({ at: DateTimeType, value: OptionType(FloatType) });
|
|
105
|
+
/**
|
|
106
|
+
* The resources' shading (#1039): by the key of the rows it stands in for —
|
|
107
|
+
* a resource kind's slot and a way of drawing, `<slot>.<draw>`, as a
|
|
108
|
+
* resource's rows are keyed — then by the resource key's text, its buckets.
|
|
109
|
+
* Each resource's row of a key it names draws heat over those buckets in
|
|
110
|
+
* place of its events: a booked-vs-free bar a bucket for bars and chips, how
|
|
111
|
+
* many for tiles and marks — the counts on one scale across every resource
|
|
112
|
+
* the key shades — and a row with a bucket of no value the no-data hatch.
|
|
113
|
+
*/
|
|
114
|
+
export const PlanEventShadingType = DictType(StringType, DictType(StringType, ArrayType(PlanEventShadeType)));
|
|
78
115
|
/**
|
|
79
116
|
* The resources' rows over a window, every event kind's drafts in place
|
|
80
117
|
* (#1192): `(from, to, drafts by kind, then by entry id, the ids the viewer
|
|
81
|
-
* hides, the resources the rail shows
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* time.
|
|
118
|
+
* hides, the resources the rail shows, what a reader read of each kind by its
|
|
119
|
+
* cells, the resources' shading)` → the canvas's blocks, `none` while a kind's
|
|
120
|
+
* read is in flight. The hidden ids are the library's Series tab's (#1195):
|
|
121
|
+
* `resources.<slot>`, `events.<slot>` and `measures.<key>` stay out, and the
|
|
122
|
+
* rest are not this seam's. A resource kind the shown resources name draws
|
|
123
|
+
* those alone (#1344). A paged resource kind's place (#1199) is an empty block
|
|
124
|
+
* that is not fixed, which the payload's `paged` fills a window at a time. A
|
|
125
|
+
* kind a reader read by its cells (#1039) places the events of the entries it
|
|
126
|
+
* was given, every draft given in place — those on no resource here, on its
|
|
127
|
+
* Unassigned row; those on the paged kind's resources through `paged.placed`
|
|
128
|
+
* — and never reads the window. Each resource's row the shading names draws
|
|
129
|
+
* its heat in place of its events.
|
|
88
130
|
*/
|
|
89
|
-
export const PlanEventBlocksType = FunctionType([DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType, PlanEventShownType], OptionType(PlanBlocksType));
|
|
131
|
+
export const PlanEventBlocksType = FunctionType([DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType, PlanEventShownType, PlanEventReadsType, PlanEventShadingType], OptionType(PlanBlocksType));
|
|
90
132
|
/** The ways a kind draws, in the order a resource's rows take them (PB12). */
|
|
91
133
|
const DRAW_ORDER = ["span", "buckets", "cards", "marks"];
|
|
92
134
|
/**
|
|
@@ -233,6 +275,94 @@ const placedLanes = East.function([PlacedListType], ArrayType(PlanLaneType), ($,
|
|
|
233
275
|
});
|
|
234
276
|
return lanes.toArray(($2, lane) => East.value({ key: lane, label: some(lane) }, PlanLaneType));
|
|
235
277
|
});
|
|
278
|
+
/**
|
|
279
|
+
* A resource's row of a shaded way of drawing (#1039), `(its buckets, the
|
|
280
|
+
* largest count its kind's shading holds, whether it draws bars or chips)` →
|
|
281
|
+
* its heat: a booked-vs-free bar a bucket for one that draws bars or chips,
|
|
282
|
+
* each bucket's share; how many for one that draws tiles or marks, from none
|
|
283
|
+
* to the largest, printed compact in the viewer's locale; and the no-data
|
|
284
|
+
* hatch where a bucket holds no value, its row heat whatever it draws.
|
|
285
|
+
*/
|
|
286
|
+
const shadedKind = East.function([ArrayType(PlanEventShadeType), FloatType, BooleanType], PlanRowKindType, ($, shades, top, booked) => {
|
|
287
|
+
const valued = $.let(shades.every(($2, shade) => shade.value.hasTag("some")));
|
|
288
|
+
const most = $.let(none, OptionType(FloatType));
|
|
289
|
+
$.if(East.greater(top, 0), ($2) => { $2.assign(most, some(top)); });
|
|
290
|
+
const heat = $.let(East.value(variant("heat", {
|
|
291
|
+
cells: variant("heat", {
|
|
292
|
+
cells: shades.map(($2, shade) => East.value({ at: variant("time", shade.at), value: shade.value, label: none }, PlanHeatCellType)),
|
|
293
|
+
scale: { min: some(0), max: most, warnAt: none },
|
|
294
|
+
fold: variant("sum", null),
|
|
295
|
+
format: some(variant("compact", { display: none })),
|
|
296
|
+
}),
|
|
297
|
+
aggregate: none,
|
|
298
|
+
scale: none,
|
|
299
|
+
}), PlanRowKindType), PlanRowKindType);
|
|
300
|
+
$.if(booked.and(() => valued), ($2) => {
|
|
301
|
+
$2.assign(heat, East.value(variant("heat", {
|
|
302
|
+
cells: variant("weight", {
|
|
303
|
+
cells: shades.map(($3, shade) => East.value({ at: variant("time", shade.at), fraction: shade.value.unwrap("some"), planned: false }, PlanWeightCellType)),
|
|
304
|
+
fold: variant("mean", null),
|
|
305
|
+
format: none,
|
|
306
|
+
}),
|
|
307
|
+
aggregate: none,
|
|
308
|
+
scale: none,
|
|
309
|
+
}), PlanRowKindType));
|
|
310
|
+
});
|
|
311
|
+
return heat;
|
|
312
|
+
});
|
|
313
|
+
/**
|
|
314
|
+
* The resources' rows with their shading in place (#1039), `(blocks, shading,
|
|
315
|
+
* the keys of the rows that draw bars or chips)`: every resource's row of a
|
|
316
|
+
* way of drawing the shading names draws its heat in place of its events —
|
|
317
|
+
* one whose resource it holds no shading of yet draws none, at the height it
|
|
318
|
+
* will draw it at — the counts of one key on one scale, the largest it holds.
|
|
319
|
+
* Every other row stands.
|
|
320
|
+
*/
|
|
321
|
+
const shadedRows = East.function([PlanBlocksType, PlanEventShadingType, SetType(StringType)], PlanBlocksType, ($, blocks, shading, booked) => {
|
|
322
|
+
const kindOf = $.const(shadedKind);
|
|
323
|
+
const noShades = $.const([], ArrayType(PlanEventShadeType));
|
|
324
|
+
const tops = $.let(new Map(), DictType(StringType, FloatType));
|
|
325
|
+
$.for(shading, ($2, byKey, series) => {
|
|
326
|
+
const top = $2.let(0, FloatType);
|
|
327
|
+
$2.for(byKey, ($3, shades) => {
|
|
328
|
+
$3.for(shades, ($4, shade) => {
|
|
329
|
+
$4.match(shade.value, { some: ($5, v) => { $5.if(East.greater(v, top), ($6) => { $6.assign(top, v); }); } });
|
|
330
|
+
});
|
|
331
|
+
});
|
|
332
|
+
$2(tops.insert(series, top));
|
|
333
|
+
});
|
|
334
|
+
return blocks.map(($2, b) => East.value({
|
|
335
|
+
fixed: b.fixed,
|
|
336
|
+
parent: b.parent,
|
|
337
|
+
charts: b.charts,
|
|
338
|
+
rows: b.rows.map(($3, row) => row.id.match({
|
|
339
|
+
section: (_$4, _at) => row,
|
|
340
|
+
entry: (_$4, at) => shading.tryGet(at.series).match({
|
|
341
|
+
none: (_$5) => row,
|
|
342
|
+
some: ($5, byKey) => {
|
|
343
|
+
// A resource's row's path ends in its key.
|
|
344
|
+
const key = $5.let(at.path.get(at.path.size().subtract(1n)));
|
|
345
|
+
const heat = $5.let(kindOf(byKey.get(key, () => noShades), tops.get(at.series), booked.has(at.series)));
|
|
346
|
+
const fields = row;
|
|
347
|
+
return East.value(Object.fromEntries(Object.keys(PlanRowType.fields).map((f) => [f, f === "kind" ? heat : fields[f]])), PlanRowType);
|
|
348
|
+
},
|
|
349
|
+
}),
|
|
350
|
+
})),
|
|
351
|
+
}, PlanBlockType));
|
|
352
|
+
});
|
|
353
|
+
/**
|
|
354
|
+
* The keys of the resources' rows that draw bars or chips (#1039): shaded,
|
|
355
|
+
* they draw booked-vs-free bars.
|
|
356
|
+
*
|
|
357
|
+
* @param resources - The resource kinds, by slot
|
|
358
|
+
* @param events - The event kinds, by slot
|
|
359
|
+
* @returns Each `<slot>.span` and `<slot>.cards` the kinds draw
|
|
360
|
+
*/
|
|
361
|
+
function bookedKeys(resources, events) {
|
|
362
|
+
return new Set(resources.flatMap(([slot]) => eventDrawsOf(slot, events)
|
|
363
|
+
.filter((draw) => draw === "span" || draw === "cards")
|
|
364
|
+
.map((draw) => `${slot}.${draw}`)));
|
|
365
|
+
}
|
|
236
366
|
/**
|
|
237
367
|
* One resource kind's rows over the window: its resources as a views series
|
|
238
368
|
* — a member per way the kinds placed on it draw, then its measures — nested
|
|
@@ -401,6 +531,24 @@ function resourceBlocks($, slot, kind, all, placed, events, hidden, fixed = true
|
|
|
401
531
|
else {
|
|
402
532
|
blocks = applySeries([views], roots);
|
|
403
533
|
}
|
|
534
|
+
// ── What each resource makes of chart rows (#1398) ──
|
|
535
|
+
// A paged kind's window is its source's entries, a resource each, and a paged kind nests and groups none: each
|
|
536
|
+
// makes its measures' chart rows that the viewer shows — a chart measure's one, or as many as its own `match`
|
|
537
|
+
// takes, which no definition fixes. A kind read whole is fixed blocks, which no entry makes.
|
|
538
|
+
const charts = $.let(East.value(fixed ? none : some(0n), OptionType(IntegerType)), OptionType(IntegerType));
|
|
539
|
+
if (!fixed) {
|
|
540
|
+
for (const facts of kind.measures.map((m) => planSeriesFacts(m, collection, where))) {
|
|
541
|
+
const each = facts.charts;
|
|
542
|
+
if (each === 0)
|
|
543
|
+
continue;
|
|
544
|
+
$.if(hidden.has(planHideId.measures(facts.key)).not(), ($2) => {
|
|
545
|
+
if (each === undefined)
|
|
546
|
+
$2.assign(charts, none);
|
|
547
|
+
else
|
|
548
|
+
$2.match(charts, { some: ($3, n) => { $3.assign(charts, some(n.add(BigInt(each)))); } });
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
}
|
|
404
552
|
// ── What the viewer hides (PB29): rows by their series' key ──
|
|
405
553
|
// A measure's rows, and a way of drawing's after the first once all its
|
|
406
554
|
// kinds are hidden: each a leaf, since a resource's children nest under its
|
|
@@ -413,7 +561,7 @@ function resourceBlocks($, slot, kind, all, placed, events, hidden, fixed = true
|
|
|
413
561
|
}),
|
|
414
562
|
];
|
|
415
563
|
if (hiders.length === 0) {
|
|
416
|
-
return $.let(blocks.map(($2, b) => ({ fixed, parent: b.parent, rows: b.rows })), PlanBlocksType);
|
|
564
|
+
return $.let(blocks.map(($2, b) => ({ fixed, parent: b.parent, charts, rows: b.rows })), PlanBlocksType);
|
|
417
565
|
}
|
|
418
566
|
const dropped = $.let(new Set(), SetType(StringType));
|
|
419
567
|
for (const [series, ids] of hiders) {
|
|
@@ -423,6 +571,7 @@ function resourceBlocks($, slot, kind, all, placed, events, hidden, fixed = true
|
|
|
423
571
|
return $.let(blocks.map(($2, b) => ({
|
|
424
572
|
fixed,
|
|
425
573
|
parent: b.parent,
|
|
574
|
+
charts,
|
|
426
575
|
rows: b.rows.filter(($3, row) => dropped.has(row.id.match({
|
|
427
576
|
entry: (_$4, at) => at.series,
|
|
428
577
|
section: (_$4, at) => at.series,
|
|
@@ -457,13 +606,15 @@ function unassignedBlock($, events, lost) {
|
|
|
457
606
|
})));
|
|
458
607
|
});
|
|
459
608
|
});
|
|
460
|
-
return $.let({ fixed: true, parent: none, rows }, PlanBlockType);
|
|
609
|
+
return $.let({ fixed: true, parent: none, charts: none, rows }, PlanBlockType);
|
|
461
610
|
}
|
|
462
611
|
/**
|
|
463
|
-
* The `blocks` seam (see the module docs): `(from, to, drafts, hidden, shown
|
|
464
|
-
* → the resources' rows over `[from, to)`, every kind's
|
|
465
|
-
* the viewer hides left out,
|
|
466
|
-
* resources it shows
|
|
612
|
+
* The `blocks` seam (see the module docs): `(from, to, drafts, hidden, shown,
|
|
613
|
+
* reads, shading)` → the resources' rows over `[from, to)`, every kind's
|
|
614
|
+
* drafts in place, what the viewer hides left out, of a resource kind the
|
|
615
|
+
* rail narrows the resources it shows, each kind a reader read by its cells
|
|
616
|
+
* drawn from what it read, and each resource's row the shading names drawing
|
|
617
|
+
* its heat.
|
|
467
618
|
*
|
|
468
619
|
* @remarks
|
|
469
620
|
* Made inside the function that assembles the payload, so `built` is the
|
|
@@ -477,17 +628,23 @@ function unassignedBlock($, events, lost) {
|
|
|
477
628
|
* @internal
|
|
478
629
|
*/
|
|
479
630
|
export function createEventBlocks(resources, events, built) {
|
|
480
|
-
|
|
631
|
+
// The keys of the rows that draw bars or chips (#1039): a shaded one draws booked-vs-free bars.
|
|
632
|
+
const booked = bookedKeys(resources, events);
|
|
633
|
+
return East.function([
|
|
634
|
+
DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType, PlanEventShownType, PlanEventReadsType, PlanEventShadingType,
|
|
635
|
+
], OptionType(PlanBlocksType), ($, from, to, drafts, hiding, shown, given, shading) => {
|
|
481
636
|
const result = $.let(none, OptionType(PlanBlocksType));
|
|
482
637
|
const noDrafts = $.const(new Map(), ScheduleDraftsType);
|
|
483
638
|
const hidden = $.let(hiding.toSet(), SetType(StringType));
|
|
484
|
-
|
|
485
|
-
|
|
639
|
+
const shade = $.const(shadedRows);
|
|
640
|
+
const drawsBars = $.const(booked, SetType(StringType));
|
|
641
|
+
// Each kind's events over the window, its drafts in place (PB17) — a kind a reader read by its cells from
|
|
642
|
+
// what it read (#1039). A hidden kind is not read: it places nothing, so nothing waits on it.
|
|
486
643
|
const reads = events.map(([slot], i) => {
|
|
487
644
|
const kind = $.let(built.get(BigInt(i)));
|
|
488
645
|
const kindDrafts = $.let(drafts.get(slot, () => noDrafts));
|
|
489
646
|
const read = $.let(some([]), OptionType(ArrayType(PlanEventItemType)));
|
|
490
|
-
$.if(hidden.has(planHideId.events(slot)).not(), ($2) => { $2.assign(read, kind.planItems(from, to, kindDrafts)); });
|
|
647
|
+
$.if(hidden.has(planHideId.events(slot)).not(), ($2) => { $2.assign(read, kind.planItems(from, to, kindDrafts, given.tryGet(slot))); });
|
|
491
648
|
return read;
|
|
492
649
|
});
|
|
493
650
|
const ready = reads.reduce((all, read) => all.and(() => read.hasTag("some")), East.value(true, BooleanType));
|
|
@@ -543,8 +700,9 @@ export function createEventBlocks(resources, events, built) {
|
|
|
543
700
|
for (const [slot, kind] of resources) {
|
|
544
701
|
if (paged.has(slot)) {
|
|
545
702
|
// A paged kind's place (#1199): the one block that is not fixed, which the payload's
|
|
546
|
-
// `paged` fills a window at a time — there whether or not the viewer hides the kind.
|
|
547
|
-
|
|
703
|
+
// `paged` fills a window at a time — there whether or not the viewer hides the kind. What its
|
|
704
|
+
// resources make of chart rows is the window's block's to say (#1398).
|
|
705
|
+
$2(blocks.pushLast(East.value({ fixed: false, parent: none, charts: none, rows: [] }, PlanBlockType)));
|
|
548
706
|
continue;
|
|
549
707
|
}
|
|
550
708
|
// A hidden resource kind draws no rows; its events stay its own, off the Unassigned row.
|
|
@@ -561,7 +719,7 @@ export function createEventBlocks(resources, events, built) {
|
|
|
561
719
|
return keyed.filter((_$5, _row, key) => keys.has(key));
|
|
562
720
|
}, () => keyed));
|
|
563
721
|
}
|
|
564
|
-
$3(blocks.append(resourceBlocks($3, slot, kind, drawn, placed.get(slot), events, hidden)));
|
|
722
|
+
$3(blocks.append(shade(resourceBlocks($3, slot, kind, drawn, placed.get(slot), events, hidden), shading, drawsBars)));
|
|
565
723
|
});
|
|
566
724
|
}
|
|
567
725
|
$2(blocks.pushLast(unassignedBlock($2, events, lost)));
|
|
@@ -580,26 +738,32 @@ export function createEventBlocks(resources, events, built) {
|
|
|
580
738
|
* source whose every window is the event kinds' blocks with this kind's place
|
|
581
739
|
* filled by `rows` over that window of its resources — so its rows come as
|
|
582
740
|
* the canvas scrolls, its key search seeks a resource by its key, and its
|
|
583
|
-
* resources are never read whole.
|
|
741
|
+
* resources are never read whole. Narrowed by its source of the slice
|
|
742
|
+
* (#1344), its windows are the narrowing's rows, in the source's index's
|
|
743
|
+
* order, and it has no key search.
|
|
584
744
|
*
|
|
585
745
|
* @property kind - The paged resource kind's slot
|
|
586
|
-
* @property id - The identity of the kind's resources' window
|
|
587
|
-
* @property placed - `(from, to, drafts by kind, the ids the viewer hides)` → the events placed on the kind's resources over `[from, to)`, every kind's drafts in place, by way of drawing and by the resource key's text; `none` while a kind's read is in flight
|
|
588
|
-
* @property rows - `(offset, limit, placed, the ids the viewer hides)` → the kind's rows for its resources `[offset, offset + limit)` — a whole window of them — with the events given placed on them: one block, not fixed (an empty one while the viewer hides the kind); `none` while the window is in flight
|
|
589
|
-
* @property
|
|
590
|
-
* @property
|
|
746
|
+
* @property id - The identity of the kind's resources' window: the source's, the same under every narrowing, when its source of the slice narrows it
|
|
747
|
+
* @property placed - `(from, to, drafts by kind, the ids the viewer hides, what a reader read of each kind by its cells)` → the events placed on the kind's resources over `[from, to)`, every kind's drafts in place, by way of drawing and by the resource key's text; `none` while a kind's read is in flight. A kind a reader read by its cells (#1039) places the events of the entries it was given, and never reads the window
|
|
748
|
+
* @property rows - `(offset, limit, placed, shading, the ids the viewer hides)` → the kind's rows for its resources `[offset, offset + limit)` — a whole window of them, in the resources' key order, or the narrowing's in its index's order (#1344) — with the events given placed on them, and each resource's row whose key the shading names drawing its heat in their place (#1039): one block, not fixed (an empty one while the viewer hides the kind); `none` while the window is in flight
|
|
749
|
+
* @property keys - `(offset, limit)` → the texts of the keys of the kind's resources `[offset, offset + limit)`, in the order `rows` draws them (#1039): the resources a reader reads the cells of; `none` while the window is in flight
|
|
750
|
+
* @property total - How many resources the kind has — the narrowing holds, when its source narrows it — once known
|
|
751
|
+
* @property seek - Where a key search lands among the kind's resources: the window's own key search; `none` when its source narrows it, whose searches run in its index's order
|
|
591
752
|
* @property revision - The snapshot of the resources the windows are read at
|
|
592
753
|
* @property refresh - Moves the resources' window to a snapshot, or to the one it holds now
|
|
754
|
+
* @property query - The narrowing the windows, the total and the keys belong to, as text (#1344): it moves when a choice does, and the windows are read again under it; `none` when no source narrows the kind
|
|
593
755
|
*/
|
|
594
756
|
export const PlanEventPagedType = StructType({
|
|
595
757
|
kind: StringType,
|
|
596
758
|
id: StringType,
|
|
597
|
-
placed: FunctionType([DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType], OptionType(PlanEventPlacedType)),
|
|
598
|
-
rows: FunctionType([IntegerType, IntegerType, PlanEventPlacedType, PickStateType], OptionType(PlanBlocksType)),
|
|
759
|
+
placed: FunctionType([DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType, PlanEventReadsType], OptionType(PlanEventPlacedType)),
|
|
760
|
+
rows: FunctionType([IntegerType, IntegerType, PlanEventPlacedType, PlanEventShadingType, PickStateType], OptionType(PlanBlocksType)),
|
|
761
|
+
keys: FunctionType([IntegerType, IntegerType], OptionType(ArrayType(StringType))),
|
|
599
762
|
total: FunctionType([], OptionType(IntegerType)),
|
|
600
763
|
seek: OptionType(FunctionType([SeekQueryType], OptionType(SeekRangeType))),
|
|
601
764
|
revision: FunctionType([], OptionType(StringType)),
|
|
602
765
|
refresh: FunctionType([OptionType(StringType)], NullType),
|
|
766
|
+
query: OptionType(FunctionType([], StringType)),
|
|
603
767
|
});
|
|
604
768
|
/**
|
|
605
769
|
* The paged resource kind's rows (see {@link PlanEventPagedType}), when a
|
|
@@ -607,41 +771,40 @@ export const PlanEventPagedType = StructType({
|
|
|
607
771
|
*
|
|
608
772
|
* @remarks
|
|
609
773
|
* Made inside the function that assembles the payload, as the `blocks` seam
|
|
610
|
-
* is, so `built` is the payload's own array of event kinds
|
|
774
|
+
* is, so `built` is the payload's own array of event kinds — and `narrowed`
|
|
775
|
+
* is the kind's source of the slice as the payload's block bound it, so the
|
|
776
|
+
* kind's rows hold that source alone (#1356).
|
|
611
777
|
*
|
|
612
778
|
* @param resources - The resource kinds, by slot, in order — at most one of them paged (the Plan refuses more)
|
|
613
779
|
* @param events - The event kinds, by slot, in order
|
|
614
780
|
* @param built - The event kinds as the payload holds them, in the same order
|
|
781
|
+
* @param narrowed - The paged kind's source of the slice's narrowed data, when the slice names one after its slot (#1344): its windows are then the narrowing's rows
|
|
615
782
|
* @returns The paged rows, or `undefined` when no resource kind is paged
|
|
616
|
-
* @throws {Error} When the kind's paged read is not a paged source of its resources
|
|
783
|
+
* @throws {Error} When the kind's paged read is not a paged source of its resources, or its source's rows are not the kind's
|
|
617
784
|
* @internal
|
|
618
785
|
*/
|
|
619
|
-
export function createEventPaged(resources, events, built) {
|
|
786
|
+
export function createEventPaged(resources, events, built, narrowed) {
|
|
620
787
|
const at = resources.find(([, kind]) => kind.window !== undefined);
|
|
621
788
|
if (at === undefined)
|
|
622
789
|
return undefined;
|
|
623
790
|
const [slot, kind] = at;
|
|
624
791
|
const where = `Plan: resources.${slot}`;
|
|
625
|
-
|
|
626
|
-
const
|
|
627
|
-
if (resolved.kind === "inline") {
|
|
628
|
-
throw new Error(`${where}: a paged kind's resources are a paged read — Data.bindPaged(record) over the resources' record`);
|
|
629
|
-
}
|
|
630
|
-
const window = buildPagedWindow(resolved);
|
|
631
|
-
const handle = resolved.source;
|
|
792
|
+
const pages = narrowed === undefined ? scheduleOwnWindows(kind, where) : scheduleNarrowedWindows(kind, slot, narrowed, "Plan");
|
|
793
|
+
const handle = pages.handle;
|
|
632
794
|
const draws = eventDrawsOf(slot, events);
|
|
633
795
|
// The event kinds placed on it, with their place in `events` — the payload's array of them.
|
|
634
796
|
const takers = events.flatMap(([s, k], i) => (k.takes.includes(slot) ? [[s, k, i]] : []));
|
|
635
|
-
const placed = East.function([DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType], OptionType(PlanEventPlacedType), ($, from, to, drafts, hiding) => {
|
|
797
|
+
const placed = East.function([DateTimeType, DateTimeType, PlanEventDraftsType, PickStateType, PlanEventReadsType], OptionType(PlanEventPlacedType), ($, from, to, drafts, hiding, given) => {
|
|
636
798
|
const result = $.let(none, OptionType(PlanEventPlacedType));
|
|
637
799
|
const noDrafts = $.const(new Map(), ScheduleDraftsType);
|
|
638
800
|
const hidden = $.let(hiding.toSet(), SetType(StringType));
|
|
639
|
-
// Each kind's events over the window, its drafts in place
|
|
801
|
+
// Each kind's events over the window, its drafts in place — a kind a reader read by its cells from what it
|
|
802
|
+
// read (#1039); a hidden kind is not read.
|
|
640
803
|
const reads = takers.map(([s, , i]) => {
|
|
641
804
|
const k = $.let(built.get(BigInt(i)));
|
|
642
805
|
const kindDrafts = $.let(drafts.get(s, () => noDrafts));
|
|
643
806
|
const read = $.let(some([]), OptionType(ArrayType(PlanEventItemType)));
|
|
644
|
-
$.if(hidden.has(planHideId.events(s)).not(), ($2) => { $2.assign(read, k.planItems(from, to, kindDrafts)); });
|
|
807
|
+
$.if(hidden.has(planHideId.events(s)).not(), ($2) => { $2.assign(read, k.planItems(from, to, kindDrafts, given.tryGet(s))); });
|
|
645
808
|
return read;
|
|
646
809
|
});
|
|
647
810
|
const ready = reads.reduce((all, read) => all.and(() => read.hasTag("some")), East.value(true, BooleanType));
|
|
@@ -676,40 +839,62 @@ export function createEventPaged(resources, events, built) {
|
|
|
676
839
|
});
|
|
677
840
|
return result;
|
|
678
841
|
});
|
|
679
|
-
|
|
842
|
+
// The keys of its rows that draw bars or chips (#1039): a shaded one draws booked-vs-free bars.
|
|
843
|
+
const booked = bookedKeys([[slot, kind]], events);
|
|
844
|
+
const rows = East.function([IntegerType, IntegerType, PlanEventPlacedType, PlanEventShadingType, PickStateType], OptionType(PlanBlocksType), ($, offset, limit, given, shading, hiding) => {
|
|
680
845
|
const result = $.let(none, OptionType(PlanBlocksType));
|
|
681
846
|
const hidden = $.let(hiding.toSet(), SetType(StringType));
|
|
682
847
|
$.if(hidden.has(planHideId.resources(slot)), ($2) => {
|
|
683
|
-
// A hidden kind draws no rows: its place stands empty in every window.
|
|
684
|
-
$2.assign(result, some(East.value([{ fixed: false, parent: none, rows: [] }], PlanBlocksType)));
|
|
848
|
+
// A hidden kind draws no rows: its place stands empty in every window, and its resources make no chart row (#1398).
|
|
849
|
+
$2.assign(result, some(East.value([{ fixed: false, parent: none, charts: some(0n), rows: [] }], PlanBlocksType)));
|
|
685
850
|
}).else(($2) => {
|
|
686
|
-
const read = $2.const(
|
|
851
|
+
const read = $2.const(pages.read);
|
|
852
|
+
const shade = $2.const(shadedRows);
|
|
853
|
+
const drawsBars = $2.const(booked, SetType(StringType));
|
|
687
854
|
const got = $2.let(read(offset, limit));
|
|
688
855
|
$2.match(got, {
|
|
689
|
-
some: ($3,
|
|
856
|
+
some: ($3, page) => {
|
|
857
|
+
const all = $3.let(pages.rows(page));
|
|
690
858
|
const onIt = new Map(draws.map((draw) => [draw, $3.let(given.get(draw, () => East.value(new Map(), PlacedByKeyType)))]));
|
|
691
|
-
$3.
|
|
859
|
+
const blocks = $3.let(resourceBlocks($3, slot, kind, all, onIt, events, hidden, false));
|
|
860
|
+
// A narrowed window's rows in its index's order (#1344), each resource's rows together.
|
|
861
|
+
const drawn = pages.indexed ? $3.let(planIndexOrder(blocks, pages.keys($3, page))) : blocks;
|
|
862
|
+
$3.assign(result, some(shade(drawn, shading, drawsBars)));
|
|
692
863
|
},
|
|
693
864
|
});
|
|
694
865
|
});
|
|
695
866
|
return result;
|
|
696
867
|
});
|
|
868
|
+
// The keys of a window's resources as the rows name them, in the order they draw (#1039): what a reader reads the cells of.
|
|
869
|
+
const keys = East.function([IntegerType, IntegerType], OptionType(ArrayType(StringType)), ($, offset, limit) => {
|
|
870
|
+
const read = $.const(pages.read);
|
|
871
|
+
const result = $.let(none, OptionType(ArrayType(StringType)));
|
|
872
|
+
$.match(read(offset, limit), {
|
|
873
|
+
some: ($2, page) => { $2.assign(result, some(pages.keys($2, page))); },
|
|
874
|
+
});
|
|
875
|
+
return result;
|
|
876
|
+
});
|
|
697
877
|
// A source that names no snapshot is read at none, and moves nowhere.
|
|
698
|
-
const revision =
|
|
878
|
+
const revision = pages.pinned
|
|
699
879
|
? handle.revision
|
|
700
880
|
: East.function([], OptionType(StringType), (_$) => East.value(none, OptionType(StringType)));
|
|
701
|
-
const refresh =
|
|
881
|
+
const refresh = pages.pinned
|
|
702
882
|
? handle.refresh
|
|
703
883
|
: East.function([OptionType(StringType)], NullType, (_$, _target) => East.value(null, NullType));
|
|
884
|
+
const Seek = PlanEventPagedType.fields.seek;
|
|
885
|
+
const Query = PlanEventPagedType.fields.query;
|
|
704
886
|
return East.value({
|
|
705
887
|
kind: slot,
|
|
706
888
|
id: handle.id,
|
|
707
889
|
placed,
|
|
708
890
|
rows,
|
|
891
|
+
keys,
|
|
709
892
|
total: handle.total,
|
|
710
|
-
|
|
893
|
+
// A narrowing's searches run in its index's order, which a resource's key does not follow: no key search.
|
|
894
|
+
seek: pages.indexed ? East.value(none, Seek) : handle.seek,
|
|
711
895
|
revision,
|
|
712
896
|
refresh,
|
|
897
|
+
query: pages.query ? East.value(some(handle.query), Query) : East.value(none, Query),
|
|
713
898
|
}, PlanEventPagedType);
|
|
714
899
|
}
|
|
715
900
|
//# sourceMappingURL=event-rows.js.map
|