@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
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@elaraai/e3-ui/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
4
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
5
|
+
*/
|
|
6
|
+
/** @jsxImportSource @elaraai/e3-ui */
|
|
7
|
+
import { ArrayType, DictType, East, FloatType, IntegerType, NullType, StringType, StructType, VariantType, example, some, variant } from "@elaraai/east";
|
|
8
|
+
import { Box, Reactive, Slice, UIComponentType } from "@elaraai/east-ui";
|
|
9
|
+
import { Data, Record, Schematic } from "@elaraai/e3-ui";
|
|
10
|
+
import e3 from "@elaraai/e3";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// A floor of ten halls read a window at a time (`Schematic Builder Spec.md`
|
|
13
|
+
// §10.4, §11, §13): its racks each placed by its centre and filed once in an
|
|
14
|
+
// area index at a 1 cm cell, so the canvas reads the window it shows from the
|
|
15
|
+
// index alone; past 5,000 racks in view, the density of the index's cells.
|
|
16
|
+
// The same pure generator seeds the record and runs as an e3 task, as the
|
|
17
|
+
// Sheet's indexed work orders' does. It seeds 20,000 racks, the first 20 rows
|
|
18
|
+
// of each hall, so neither the showcase nor a test deploys the 50,000 a full
|
|
19
|
+
// floor holds (ruled 23 Oct 2026): the budget run (`E3_UI_PERF=1`) fills the
|
|
20
|
+
// floor through the racks' and the loads' patch doors, as the lens benchmark
|
|
21
|
+
// fills its million rows. The racks are bound with their patch door: a move
|
|
22
|
+
// is a draft that waits in its session wherever the window goes, and Save
|
|
23
|
+
// writes it through the door.
|
|
24
|
+
/** A rack of the floor: its hall and model, placed by its centre, its box 0.6 m by 1.2 m. */
|
|
25
|
+
export const StressRack = StructType({ name: StringType, hall: StringType, model: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType });
|
|
26
|
+
/** How hot a rack runs. */
|
|
27
|
+
export const StressAlarm = VariantType({ ok: NullType, warm: NullType, hot: NullType });
|
|
28
|
+
/** A rack's load: what its card's bar, figure and dot draw. */
|
|
29
|
+
export const StressLoad = StructType({ kw: FloatType, capacity: FloatType, alarm: StressAlarm });
|
|
30
|
+
/** A hall of the floor: its box and its name. */
|
|
31
|
+
export const StressHall = StructType({ name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType });
|
|
32
|
+
const StressRacks = DictType(StringType, StressRack);
|
|
33
|
+
const StressLoads = DictType(StringType, StressLoad);
|
|
34
|
+
/**
|
|
35
|
+
* The floor's racks, a row of 100 in each of the ten halls in turn — five
|
|
36
|
+
* halls to a row of the floor, each holding 50 rows, 0.7 m apart along a row
|
|
37
|
+
* and 2.4 m from row to row — so any count fills every hall's rows from the
|
|
38
|
+
* front: 20,000 racks fill each hall's first 20, and 50,000 the floor. The
|
|
39
|
+
* budget run makes the floor's 50,000 with it, and patches in what the seed's
|
|
40
|
+
* 20,000 lack.
|
|
41
|
+
*/
|
|
42
|
+
export const generateRacks = East.function([IntegerType], StressRacks, ($, count) => {
|
|
43
|
+
const racks = $.let(new Map(), StressRacks);
|
|
44
|
+
const models = $.const(["42U · 8 kW", "48U · 12 kW", "24U · 4 kW"], ArrayType(StringType));
|
|
45
|
+
const i = $.let(0n);
|
|
46
|
+
$.while(i.less(count), ($2) => {
|
|
47
|
+
const hall = $2.const(i.divide(100n).remainder(10n));
|
|
48
|
+
const row = $2.const(i.divide(1000n));
|
|
49
|
+
const key = $2.const(East.str `R${i.add(100000n)}`);
|
|
50
|
+
$2(racks.insert(key, {
|
|
51
|
+
name: key,
|
|
52
|
+
hall: East.str `Hall ${hall.add(1n)}`,
|
|
53
|
+
model: models.get(i.remainder(3n)),
|
|
54
|
+
x: hall.remainder(5n).toFloat().multiply(76.0).add(i.remainder(100n).toFloat().multiply(0.7)).add(3.3),
|
|
55
|
+
y: hall.divide(5n).toFloat().multiply(126.0).add(row.toFloat().multiply(2.4)).add(3.6),
|
|
56
|
+
w: 0.6,
|
|
57
|
+
h: 1.2,
|
|
58
|
+
}));
|
|
59
|
+
$2.assign(i, i.add(1n));
|
|
60
|
+
});
|
|
61
|
+
return racks;
|
|
62
|
+
});
|
|
63
|
+
/** The racks' loads, keyed as the racks are: up to 12 kW of a 12 kW rack, warm past 9.6 and hot past 10.8. The budget run makes the floor's with it. */
|
|
64
|
+
export const generateLoads = East.function([IntegerType], StressLoads, ($, count) => {
|
|
65
|
+
const loads = $.let(new Map(), StressLoads);
|
|
66
|
+
const i = $.let(0n);
|
|
67
|
+
$.while(i.less(count), ($2) => {
|
|
68
|
+
const kw = $2.const(i.multiply(37n).remainder(120n).toFloat().divide(10.0));
|
|
69
|
+
const alarm = $2.let(variant("ok", null), StressAlarm);
|
|
70
|
+
$2.if(kw.greater(9.6), ($3) => { $3.assign(alarm, variant("warm", null)); });
|
|
71
|
+
$2.if(kw.greater(10.8), ($3) => { $3.assign(alarm, variant("hot", null)); });
|
|
72
|
+
$2(loads.insert(East.str `R${i.add(100000n)}`, { kw, capacity: 12.0, alarm }));
|
|
73
|
+
$2.assign(i, i.add(1n));
|
|
74
|
+
});
|
|
75
|
+
return loads;
|
|
76
|
+
});
|
|
77
|
+
export const schematicStressRackCount = e3.input("schematic_stress_rack_count", IntegerType, variant("value", 20000n));
|
|
78
|
+
export const schematicStressRacksGenerated = e3.task("schematic_stress_racks_generated", [schematicStressRackCount], generateRacks);
|
|
79
|
+
export const schematicStressRacks = e3.record("schematic_stress_racks", StressRacks, East.compile(generateRacks, [])(20000n));
|
|
80
|
+
/** The racks' patch door: each Save of the floor writes through it, and the budget run fills the floor through it. */
|
|
81
|
+
export const schematicStressRacksPatch = e3.mutation.patch(schematicStressRacks);
|
|
82
|
+
/** The window, whatever the rail chooses: every rack filed once by its box, at a 1 cm cell. */
|
|
83
|
+
export const schematicStressRacksByArea = e3.recordIndex.area("schematic_stress_racks_by_area", schematicStressRacks, {
|
|
84
|
+
x: "x", y: "y", width: "w", height: "h", at: "centre", cell: 0.01,
|
|
85
|
+
});
|
|
86
|
+
/** Beside it, a choice of halls and the window in one read. */
|
|
87
|
+
export const schematicStressRacksByHallArea = e3.recordIndex.area("schematic_stress_racks_by_hall_area", schematicStressRacks, {
|
|
88
|
+
on: ["hall"], x: "x", y: "y", width: "w", height: "h", at: "centre", cell: 0.01,
|
|
89
|
+
});
|
|
90
|
+
/** A choice no area index leads: a window under it asks which of its racks the choice holds. */
|
|
91
|
+
export const schematicStressRacksByModel = e3.recordIndex("schematic_stress_racks_by_model", schematicStressRacks, { on: ["model"] });
|
|
92
|
+
export const schematicStressRackLoads = e3.record("schematic_stress_rack_loads", StressLoads, East.compile(generateLoads, [])(20000n));
|
|
93
|
+
/** The loads' patch door: the budget run fills them through it, keyed as the racks it fills. */
|
|
94
|
+
export const schematicStressRackLoadsPatch = e3.mutation.patch(schematicStressRackLoads);
|
|
95
|
+
/** A rack joined to another across the floor. */
|
|
96
|
+
export const StressUplink = StructType({ from: StringType, to: StringType });
|
|
97
|
+
/**
|
|
98
|
+
* Uplinks from the front of Hall 1 to the front of Hall 5, 300 m across the floor: links whose far end a window over
|
|
99
|
+
* either hall doesn't hold, which it reads by key (#1393, SC22).
|
|
100
|
+
*/
|
|
101
|
+
export const schematicStressUplinks = e3.record("schematic_stress_uplinks", DictType(StringType, StressUplink), new Map([
|
|
102
|
+
["u1", { from: "R100000", to: "R100400" }],
|
|
103
|
+
["u2", { from: "R100001", to: "R100401" }],
|
|
104
|
+
["u3", { from: "R100002", to: "R100402" }],
|
|
105
|
+
["u4", { from: "R100003", to: "R100403" }],
|
|
106
|
+
]));
|
|
107
|
+
export const schematicStressHalls = e3.record("schematic_stress_halls", DictType(StringType, StressHall), new Map([
|
|
108
|
+
["hall-1", { name: "Hall 1", x: 2.0, y: 2.0, w: 72.0, h: 122.0 }],
|
|
109
|
+
["hall-2", { name: "Hall 2", x: 78.0, y: 2.0, w: 72.0, h: 122.0 }],
|
|
110
|
+
["hall-3", { name: "Hall 3", x: 154.0, y: 2.0, w: 72.0, h: 122.0 }],
|
|
111
|
+
["hall-4", { name: "Hall 4", x: 230.0, y: 2.0, w: 72.0, h: 122.0 }],
|
|
112
|
+
["hall-5", { name: "Hall 5", x: 306.0, y: 2.0, w: 72.0, h: 122.0 }],
|
|
113
|
+
["hall-6", { name: "Hall 6", x: 2.0, y: 128.0, w: 72.0, h: 122.0 }],
|
|
114
|
+
["hall-7", { name: "Hall 7", x: 78.0, y: 128.0, w: 72.0, h: 122.0 }],
|
|
115
|
+
["hall-8", { name: "Hall 8", x: 154.0, y: 128.0, w: 72.0, h: 122.0 }],
|
|
116
|
+
["hall-9", { name: "Hall 9", x: 230.0, y: 128.0, w: 72.0, h: 122.0 }],
|
|
117
|
+
["hall-10", { name: "Hall 10", x: 306.0, y: 128.0, w: 72.0, h: 122.0 }],
|
|
118
|
+
]));
|
|
119
|
+
export const schematicRecordIndexes = example({
|
|
120
|
+
keywords: [
|
|
121
|
+
"Schematic", "Schematic.items", "Schematic.zones", "Schematic.details", "Record.bind", "Data.bindPaged", "Slice.bindRecords", "e3.recordIndex.area", "area index",
|
|
122
|
+
"window", "paging", "density", "records", "details", "editing", "drafts", "Save", "20,000",
|
|
123
|
+
],
|
|
124
|
+
description: "A floor of 20,000 racks in ten halls, read a window at a time: the racks bound with their patch door and read through their source of the slice, whose indexes include an area index at a 1 cm cell, so the canvas reads only the racks its view shows, from the index alone, and draws their density from the index's counts while the view holds more than 5,000; a choice of halls reads through the area index the hall leads, and a choice of models through the one led by nothing, asking which of the window's racks the choice holds; each rack's load read by the runs its window's cells are of the area index — e3 reads their keys from the index, so none is sent — every cell not yet read in one request, so a dot draws its rack's alarm as a card does; a rack moved is a draft that waits in its session wherever the window goes, and Save writes it through the door",
|
|
125
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
126
|
+
// The racks bound with their patch door, read by key through their own entries beside their source of the slice.
|
|
127
|
+
const racks = $.let(Record.bind(schematicStressRacks, [schematicStressRacksPatch]));
|
|
128
|
+
const rackEntries = $.let(Data.bindPaged(schematicStressRacks));
|
|
129
|
+
const loads = $.let(Data.bindPaged(schematicStressRackLoads));
|
|
130
|
+
const halls = $.let(Data.bind(schematicStressHalls));
|
|
131
|
+
// One rail: the racks by hall, through the area index the hall leads, and by model, through the one led by nothing.
|
|
132
|
+
const slice = $.let(Slice.bindRecords("ex.schematicRecordIndexes", {
|
|
133
|
+
racks: {
|
|
134
|
+
source: Data.bindPaged(schematicStressRacks, { indexes: [schematicStressRacksByArea, schematicStressRacksByHallArea, schematicStressRacksByModel] }),
|
|
135
|
+
icon: { prefix: "fas", name: "server" },
|
|
136
|
+
fields: {
|
|
137
|
+
hall: { label: "Hall", hints: ["Hall 1", "Hall 2", "Hall 3", "Hall 4", "Hall 5", "Hall 6", "Hall 7", "Hall 8", "Hall 9", "Hall 10"] },
|
|
138
|
+
model: { label: "Model", hints: ["42U · 8 kW", "48U · 12 kW", "24U · 4 kW"] },
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
}));
|
|
142
|
+
return (_jsx(Box, { height: "640px", children: _jsx(Schematic, { id: "recordIndexes", extent: { width: 382, height: 254 }, scaleUnit: "m", slice: { slice }, items: {
|
|
143
|
+
racks: Schematic.items(racks, {
|
|
144
|
+
name: "Rack", icon: "server", x: "x", y: "y", width: "w", height: "h", label: "name", entries: rackEntries,
|
|
145
|
+
sublabel: (r) => r.model,
|
|
146
|
+
details: Schematic.details(loads, {
|
|
147
|
+
meter: (l) => ({ value: l.kw, max: l.capacity }),
|
|
148
|
+
metric: (l) => some(East.str `${East.Float.printFixed(l.kw, 1n)} kW`),
|
|
149
|
+
status: { field: "alarm", cases: {
|
|
150
|
+
ok: { label: "OK", tone: variant("success", null), ring: false },
|
|
151
|
+
warm: { label: "Warm", tone: variant("warning", null), ring: false },
|
|
152
|
+
hot: { label: "Hot", tone: variant("danger", null), ring: false },
|
|
153
|
+
} },
|
|
154
|
+
}),
|
|
155
|
+
}),
|
|
156
|
+
}, zones: {
|
|
157
|
+
halls: Schematic.zones(halls, { name: "Hall", icon: "warehouse", x: "x", y: "y", width: "w", height: "h", label: "name" }),
|
|
158
|
+
} }) }));
|
|
159
|
+
} }))),
|
|
160
|
+
inputs: [],
|
|
161
|
+
});
|
|
162
|
+
export const schematicRecordIndexesMobile = example({
|
|
163
|
+
keywords: [
|
|
164
|
+
"Schematic", "Schematic.items", "Schematic.zones", "Schematic.details", "Record.bind", "Data.bindPaged", "Slice.bindRecords", "e3.recordIndex.area", "area index",
|
|
165
|
+
"window", "density", "inspector", "mobile", "phone", "touch", "pinch", "20,000",
|
|
166
|
+
],
|
|
167
|
+
description: "The same floor of 20,000 racks in a phone-width frame, with the inspector: one finger pans it and two pinch it, and the toolbar's one row holds the rail's icon, the View — the tools, the zoom and Fit over Find's box — and the history; nothing drags, so a rack tapped shows in the inspector, opened from its rail, with its load, its x and y to move it and its Delete, each a step Save writes through the racks' patch door; the canvas reads only the racks its view shows, from the area index alone, and their density while the view holds more than 5,000",
|
|
168
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
169
|
+
// The racks bound with their patch door, read by key through their own entries beside their source of the slice.
|
|
170
|
+
const racks = $.let(Record.bind(schematicStressRacks, [schematicStressRacksPatch]));
|
|
171
|
+
const rackEntries = $.let(Data.bindPaged(schematicStressRacks));
|
|
172
|
+
const loads = $.let(Data.bindPaged(schematicStressRackLoads));
|
|
173
|
+
const halls = $.let(Data.bind(schematicStressHalls));
|
|
174
|
+
// One rail: the racks by hall, through the area index the hall leads, and by model, through the one led by nothing.
|
|
175
|
+
const slice = $.let(Slice.bindRecords("ex.schematicRecordIndexesMobile", {
|
|
176
|
+
racks: {
|
|
177
|
+
source: Data.bindPaged(schematicStressRacks, { indexes: [schematicStressRacksByArea, schematicStressRacksByHallArea, schematicStressRacksByModel] }),
|
|
178
|
+
icon: { prefix: "fas", name: "server" },
|
|
179
|
+
fields: {
|
|
180
|
+
hall: { label: "Hall", hints: ["Hall 1", "Hall 2", "Hall 3", "Hall 4", "Hall 5", "Hall 6", "Hall 7", "Hall 8", "Hall 9", "Hall 10"] },
|
|
181
|
+
model: { label: "Model", hints: ["42U · 8 kW", "48U · 12 kW", "24U · 4 kW"] },
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
}));
|
|
185
|
+
return (_jsx(Box, { width: "390px", maxWidth: "100%", height: "640px", children: _jsx(Schematic, { id: "recordIndexesMobile", inspector: true, extent: { width: 382, height: 254 }, scaleUnit: "m", slice: { slice }, items: {
|
|
186
|
+
racks: Schematic.items(racks, {
|
|
187
|
+
name: "Rack", icon: "server", x: "x", y: "y", width: "w", height: "h", label: "name", entries: rackEntries,
|
|
188
|
+
sublabel: (r) => r.model,
|
|
189
|
+
details: Schematic.details(loads, {
|
|
190
|
+
meter: (l) => ({ value: l.kw, max: l.capacity }),
|
|
191
|
+
metric: (l) => some(East.str `${East.Float.printFixed(l.kw, 1n)} kW`),
|
|
192
|
+
status: { field: "alarm", cases: {
|
|
193
|
+
ok: { label: "OK", tone: variant("success", null), ring: false },
|
|
194
|
+
warm: { label: "Warm", tone: variant("warning", null), ring: false },
|
|
195
|
+
hot: { label: "Hot", tone: variant("danger", null), ring: false },
|
|
196
|
+
} },
|
|
197
|
+
}),
|
|
198
|
+
}),
|
|
199
|
+
}, zones: {
|
|
200
|
+
halls: Schematic.zones(halls, { name: "Hall", icon: "warehouse", x: "x", y: "y", width: "w", height: "h", label: "name" }),
|
|
201
|
+
} }) }));
|
|
202
|
+
} }))),
|
|
203
|
+
inputs: [],
|
|
204
|
+
});
|
|
205
|
+
//# sourceMappingURL=schematic-records.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schematic-records.examples.js","sourceRoot":"","sources":["../../../test/schematic/schematic-records.examples.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACzJ,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,0EAA0E;AAC1E,8BAA8B;AAE9B,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AACxJ,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;AACjG,iDAAiD;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAEnH,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAChF,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACnD,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE;YACjB,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,IAAI,CAAC,GAAG,CAAA,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACpC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACtG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACtF,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,GAAG;SACT,CAAC,CAAC,CAAC;QACJ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,wJAAwJ;AACxJ,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAChF,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QACvD,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAA,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACvH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,wBAAwB,CAAC,EAAE,aAAa,CAAC,CAAC;AACpI,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9H,sHAAsH;AACtH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACjF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,gCAAgC,EAAE,oBAAoB,EAAE;IAClH,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;CACpE,CAAC,CAAC;AACH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,qCAAqC,EAAE,oBAAoB,EAAE;IAC3H,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI;CAClF,CAAC,CAAC;AACH,gGAAgG;AAChG,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC,WAAW,CAAC,iCAAiC,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACtI,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACvI,gGAAgG;AAChG,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACzF,iDAAiD;AACjD,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC,MAAM,CAAC,0BAA0B,EAAE,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,CAAC;IACpH,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC1C,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;CAC7C,CAAC,CAAC,CAAC;AACJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,CAAC;IAC9G,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAClE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACrE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IACrE,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;CAC1E,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAO,CAAC;IAC1C,QAAQ,EAAE;QACN,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAAY;QACjK,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;KAC7F;IACD,WAAW,EAAE,21BAA21B;IACx2B,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAC3C,KAAC,QAAQ,cAAE,CAAC,CAAC,EAAE;YACX,iHAAiH;YACjH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrD,oHAAoH;YACpH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE;gBAC/D,KAAK,EAAE;oBACH,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,0BAA0B,EAAE,8BAA8B,EAAE,2BAA2B,CAAC,EAAE,CAAC;oBACpJ,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvC,MAAM,EAAE;wBACJ,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;wBACrI,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE;qBAChF;iBACJ;aACJ,CAAC,CAAC,CAAC;YACJ,OAAO,CACH,KAAC,GAAG,IAAC,MAAM,EAAC,OAAO,YACf,KAAC,SAAS,IACN,EAAE,EAAC,eAAe,EAClB,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EACnC,SAAS,EAAC,GAAG,EACb,KAAK,EAAE,EAAE,KAAK,EAAE,EAChB,KAAK,EAAE;wBACH,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE;4BAC1B,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;4BAC1G,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;4BACxB,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;gCAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gCAChD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;gCACpE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;wCAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;wCAChE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;wCACpE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;qCACpE,EAAE;6BACN,CAAC;yBACL,CAAC;qBACL,EACD,KAAK,EAAE;wBACH,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;qBAC7H,GACH,GACA,CACT,CAAC;QACN,CAAC,GAAY,CAChB,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;IAChD,QAAQ,EAAE;QACN,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAAY;QACjK,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;KAClF;IACD,WAAW,EAAE,yiBAAyiB;IACtjB,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAC3C,KAAC,QAAQ,cAAE,CAAC,CAAC,EAAE;YACX,iHAAiH;YACjH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACrD,oHAAoH;YACpH,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE;gBACrE,KAAK,EAAE;oBACH,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,0BAA0B,EAAE,8BAA8B,EAAE,2BAA2B,CAAC,EAAE,CAAC;oBACpJ,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACvC,MAAM,EAAE;wBACJ,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;wBACrI,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE;qBAChF;iBACJ;aACJ,CAAC,CAAC,CAAC;YACJ,OAAO,CACH,KAAC,GAAG,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,YAC7C,KAAC,SAAS,IACN,EAAE,EAAC,qBAAqB,EACxB,SAAS,QACT,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EACnC,SAAS,EAAC,GAAG,EACb,KAAK,EAAE,EAAE,KAAK,EAAE,EAChB,KAAK,EAAE;wBACH,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE;4BAC1B,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW;4BAC1G,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;4BACxB,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;gCAC9B,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gCAChD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;gCACpE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;wCAC7B,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;wCAChE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;wCACpE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;qCACpE,EAAE;6BACN,CAAC;yBACL,CAAC;qBACL,EACD,KAAK,EAAE;wBACH,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;qBAC7H,GACH,GACA,CACT,CAAC;QACN,CAAC,GAAY,CAChB,CAAC;IACF,MAAM,EAAE,EAAE;CACb,CAAC,CAAC"}
|