@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 @@
|
|
|
1
|
+
{"version":3,"file":"schematic.examples.d.ts","sourceRoot":"","sources":["../../../test/schematic/schematic.examples.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } 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, BooleanType, DictType, East, FloatType, FunctionType, IntegerType, NullType, OptionType, PatchType, StringType, StructType, VariantType, example, none, some, variant, } from "@elaraai/east";
|
|
8
|
+
import { Box, Button, Reactive, Slice, State, Text, UIComponentType, VStack } from "@elaraai/east-ui";
|
|
9
|
+
import { Data, Record, Schematic } from "@elaraai/e3-ui";
|
|
10
|
+
import e3 from "@elaraai/e3";
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// A data centre floor (`Schematic Builder Spec.md` §13, D8): racks with power
|
|
13
|
+
// meters, halls and cages, hot and cold aisles, fibre runs, power distribution
|
|
14
|
+
// units feeding the racks, and power, cooling, network and structure layers —
|
|
15
|
+
// each the app's own record, its fields mapped to the Schematic's roles, and
|
|
16
|
+
// its own types: a shape, a pattern or a style is built by an accessor from
|
|
17
|
+
// the row's own fields (D35), and the layers are a record of the app's (D36).
|
|
18
|
+
/** A system the floor's equipment and areas belong to: a layer of the drawing, its colour a theme token. */
|
|
19
|
+
export const DcSystem = StructType({ label: StringType, colour: StringType, order: IntegerType, fixed: BooleanType, dim: FloatType });
|
|
20
|
+
export const schematicSystems = e3.record("schematic_systems", DictType(StringType, DcSystem), new Map([
|
|
21
|
+
["structure", { label: "Structure", colour: "fg.muted", order: 1n, fixed: true, dim: 0.6 }],
|
|
22
|
+
["power", { label: "Power", colour: "status.warn", order: 2n, fixed: false, dim: 1.0 }],
|
|
23
|
+
["cooling", { label: "Cooling", colour: "brand.solid", order: 3n, fixed: false, dim: 1.0 }],
|
|
24
|
+
["network", { label: "Network", colour: "status.pos", order: 4n, fixed: false, dim: 1.0 }],
|
|
25
|
+
]));
|
|
26
|
+
/** The systems' patch door: another session's change of a layer — its colour, say — which the floor redraws. */
|
|
27
|
+
export const schematicSystemsPatch = e3.mutation.patch(schematicSystems);
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// ----------------------------------------------------------------------------
|
|
30
|
+
// The smallest: one hall's racks, read only
|
|
31
|
+
// ----------------------------------------------------------------------------
|
|
32
|
+
export const FloorRack = StructType({ name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType, model: StringType, kw: FloatType, capacity: FloatType });
|
|
33
|
+
export const schematicFloorRacks = e3.record("schematic_floor_racks", DictType(StringType, FloorRack), new Map([
|
|
34
|
+
["A01", { name: "A01", x: 2.4, y: 2.9, w: 3.2, h: 1.2, model: "42U · 8 kW", kw: 5.2, capacity: 8.0 }],
|
|
35
|
+
["A02", { name: "A02", x: 6.0, y: 2.9, w: 3.2, h: 1.2, model: "42U · 8 kW", kw: 7.4, capacity: 8.0 }],
|
|
36
|
+
["A03", { name: "A03", x: 9.6, y: 2.9, w: 3.2, h: 1.2, model: "42U · 8 kW", kw: 3.9, capacity: 8.0 }],
|
|
37
|
+
["A04", { name: "A04", x: 13.2, y: 2.9, w: 3.2, h: 1.2, model: "48U · 12 kW", kw: 9.6, capacity: 12.0 }],
|
|
38
|
+
["B01", { name: "B01", x: 2.4, y: 8.6, w: 3.2, h: 1.2, model: "42U · 8 kW", kw: 6.1, capacity: 8.0 }],
|
|
39
|
+
["B02", { name: "B02", x: 6.0, y: 8.6, w: 3.2, h: 1.2, model: "42U · 8 kW", kw: 2.8, capacity: 8.0 }],
|
|
40
|
+
]));
|
|
41
|
+
/** The floor's racks' patch door: the handover's Save, and another session's moves of a rack, which the floor redraws. */
|
|
42
|
+
export const schematicFloorRacksPatch = e3.mutation.patch(schematicFloorRacks);
|
|
43
|
+
export const schematicFloor = example({
|
|
44
|
+
keywords: ["Schematic", "Schematic.items", "Data.bind", "records", "racks", "meter", "read only", "canvas", "id"],
|
|
45
|
+
description: "One hall's racks, read only, with no panes: a record of racks bound with Data.bind, each rack's fields mapped to the Schematic's roles — its centre, its box, its name, its model and its power as a meter",
|
|
46
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
47
|
+
const racks = $.let(Data.bind(schematicFloorRacks));
|
|
48
|
+
return (_jsx(Box, { height: "440px", children: _jsx(Schematic, { id: "floor", extent: { width: 18, height: 12 }, scaleUnit: "m", items: {
|
|
49
|
+
racks: Schematic.items(racks, {
|
|
50
|
+
name: "Rack", icon: "server", x: "x", y: "y", width: "w", height: "h", label: "name",
|
|
51
|
+
sublabel: (r) => r.model,
|
|
52
|
+
meter: (r) => ({ value: r.kw, max: r.capacity }),
|
|
53
|
+
}),
|
|
54
|
+
} }) }));
|
|
55
|
+
} }))),
|
|
56
|
+
inputs: [],
|
|
57
|
+
});
|
|
58
|
+
// ----------------------------------------------------------------------------
|
|
59
|
+
// The handover: the same hall edited, with no pane
|
|
60
|
+
// ----------------------------------------------------------------------------
|
|
61
|
+
/**
|
|
62
|
+
* The same hall handed over to its install crew, who move its racks into
|
|
63
|
+
* place: the racks bound with their patch door, so Move moves them and Del
|
|
64
|
+
* deletes them, each a step of the history Save writes through it. It is
|
|
65
|
+
* given no pane — no library and no inspector — so its frame is its toolbar,
|
|
66
|
+
* its canvas and its footer.
|
|
67
|
+
*/
|
|
68
|
+
export const schematicHandover = example({
|
|
69
|
+
keywords: [
|
|
70
|
+
"Schematic", "Schematic.items", "Record.bind", "records", "editing", "Move", "Delete", "Save", "undo", "history", "no pane", "toolbar", "footer", "id",
|
|
71
|
+
],
|
|
72
|
+
description: "The same hall handed over to its install crew, who move its racks into place: the racks bound with their patch door, so Move moves them and Del deletes them, each a step of the history Save writes through it; with no pane — no library and no inspector — its frame is its toolbar, its canvas and its footer",
|
|
73
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
74
|
+
const racks = $.let(Record.bind(schematicFloorRacks, [schematicFloorRacksPatch]));
|
|
75
|
+
return (_jsx(Box, { height: "440px", children: _jsx(Schematic, { id: "handover", extent: { width: 18, height: 12 }, scaleUnit: "m", items: {
|
|
76
|
+
racks: Schematic.items(racks, {
|
|
77
|
+
name: "Rack", icon: "server", x: "x", y: "y", width: "w", height: "h", label: "name",
|
|
78
|
+
sublabel: (r) => r.model,
|
|
79
|
+
meter: (r) => ({ value: r.kw, max: r.capacity }),
|
|
80
|
+
}),
|
|
81
|
+
} }) }));
|
|
82
|
+
} }))),
|
|
83
|
+
inputs: [],
|
|
84
|
+
});
|
|
85
|
+
// ----------------------------------------------------------------------------
|
|
86
|
+
// Shapes: footprints and zone geometry about their anchors, tones, layers
|
|
87
|
+
// ----------------------------------------------------------------------------
|
|
88
|
+
/** A corner of a unit's outline, about its centre, in metres. */
|
|
89
|
+
export const ShapePoint = StructType({ x: FloatType, y: FloatType });
|
|
90
|
+
/** A unit, measured as the site measures it: a cooling tower by its radius, a cooling unit by its outline's corners, or by neither. */
|
|
91
|
+
export const ShapeUnit = StructType({
|
|
92
|
+
name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType, kind: StringType,
|
|
93
|
+
radius: OptionType(FloatType), outline: ArrayType(ShapePoint), system: StringType, tint: OptionType(StringType),
|
|
94
|
+
});
|
|
95
|
+
/** A corner of an area's edge, about its box's centre; its bulge curves the edge to the next corner (0 is straight). */
|
|
96
|
+
export const ShapeCorner = StructType({ x: FloatType, y: FloatType, bulge: FloatType });
|
|
97
|
+
/** What an area is: a hall, outlined, or a duct bank, a hatched band of its width. */
|
|
98
|
+
export const ShapeAreaKind = VariantType({ hall: NullType, duct: StructType({ width: FloatType }) });
|
|
99
|
+
/** An area: its box, what it is, and its edge's corners. */
|
|
100
|
+
export const ShapeArea = StructType({
|
|
101
|
+
name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType, kind: ShapeAreaKind, corners: ArrayType(ShapeCorner), system: StringType,
|
|
102
|
+
});
|
|
103
|
+
export const schematicShapeUnits = e3.record("schematic_shape_units", DictType(StringType, ShapeUnit), new Map([
|
|
104
|
+
["CRAH-1", { name: "CRAH-1", x: 6.2, y: 4.6, w: 5.0, h: 3.4, kind: "cooling unit", system: "cooling", tint: some("status.info"), radius: none,
|
|
105
|
+
outline: [{ x: -2.2, y: -1.6 }, { x: 2.4, y: -1.1 }, { x: 2.1, y: 1.6 }, { x: -2.5, y: 1.1 }] }],
|
|
106
|
+
["CT-2", { name: "CT-2", x: 16.4, y: 4.8, w: 4.6, h: 4.6, kind: "cooling tower", system: "cooling", tint: some("heat.3"), radius: some(2.3), outline: [] }],
|
|
107
|
+
["PDU-3", { name: "PDU-3", x: 22.0, y: 4.6, w: 1.2, h: 0.8, kind: "power distribution unit", system: "power", tint: none, radius: none, outline: [] }],
|
|
108
|
+
]));
|
|
109
|
+
export const schematicShapeAreas = e3.record("schematic_shape_areas", DictType(StringType, ShapeArea), new Map([
|
|
110
|
+
["hall-3", { name: "Hall 3", x: 1.6, y: 1.4, w: 9.3, h: 6.6, system: "structure", kind: variant("hall", null),
|
|
111
|
+
corners: [{ x: -4.65, y: -2.5, bulge: 0.0 }, { x: 4.15, y: -3.3, bulge: 0.0 }, { x: 4.65, y: 2.7, bulge: 0.0 }, { x: -4.25, y: 3.3, bulge: 0.0 }] }],
|
|
112
|
+
["duct", { name: "Duct bank", x: 1.0, y: 9.1, w: 23.8, h: 3.4, system: "power", kind: variant("duct", { width: 1.4 }),
|
|
113
|
+
corners: [
|
|
114
|
+
{ x: -11.7, y: 1.0, bulge: 0.0 }, { x: -6.3, y: -0.8, bulge: 0.45 }, { x: -0.1, y: 0.8, bulge: -0.45 }, { x: 5.7, y: -1.0, bulge: 0.35 }, { x: 11.5, y: 0.2, bulge: 0.0 },
|
|
115
|
+
] }],
|
|
116
|
+
]));
|
|
117
|
+
export const schematicShapes = example({
|
|
118
|
+
keywords: [
|
|
119
|
+
"Schematic", "Schematic.items", "Schematic.zones", "Schematic.layers", "footprint", "geometry", "accessor", "Schematic.circle", "Schematic.polygon",
|
|
120
|
+
"Schematic.polyline", "Schematic.hatch", "arc", "bulge", "anchor", "tone", "color", "theme token", "layers", "read only",
|
|
121
|
+
],
|
|
122
|
+
description: "Footprints and zone shapes built by accessors from the rows' own fields and drawn about their anchors — a cooling unit's outline and a tower's radius about each unit's centre, a hall's corners and a duct bank's arcing band about each area's box centre — with theme colour tokens, tones and layers from a systems record, read only",
|
|
123
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
124
|
+
const units = $.let(Data.bind(schematicShapeUnits));
|
|
125
|
+
const areas = $.let(Data.bind(schematicShapeAreas));
|
|
126
|
+
const systems = $.let(Data.bind(schematicSystems));
|
|
127
|
+
return (_jsx(Box, { height: "440px", children: _jsx(Schematic, { id: "shapes", extent: { width: 26.5, height: 14 }, scaleUnit: "m", items: {
|
|
128
|
+
units: Schematic.items(units, {
|
|
129
|
+
name: "Equipment", icon: "gear", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system",
|
|
130
|
+
// A tower by its radius, a unit by its outline's corners, about its centre.
|
|
131
|
+
footprint: (u) => u.radius.match({
|
|
132
|
+
some: (_$2, r) => some(Schematic.circle(r)),
|
|
133
|
+
none: (_$2) => u.outline.size().greater(0n).ifElse((_$3) => some(Schematic.polygon(u.outline)), (_$3) => none),
|
|
134
|
+
}),
|
|
135
|
+
sublabel: (u) => u.kind,
|
|
136
|
+
color: (u) => u.tint,
|
|
137
|
+
fillOpacity: (_u) => some(0.18),
|
|
138
|
+
}),
|
|
139
|
+
}, zones: {
|
|
140
|
+
areas: Schematic.zones(areas, {
|
|
141
|
+
name: "Area", icon: "vector-square", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system",
|
|
142
|
+
// A hall outlined by its corners; a duct bank hatched, a band of its width along them.
|
|
143
|
+
pattern: (a) => a.kind.match({
|
|
144
|
+
hall: (_$2) => Schematic.outline(),
|
|
145
|
+
duct: (_$2) => Schematic.hatch({ tone: "warning" }),
|
|
146
|
+
}),
|
|
147
|
+
geometry: (a) => some(a.kind.match({
|
|
148
|
+
hall: (_$2) => Schematic.polygon(a.corners),
|
|
149
|
+
duct: (_$2, duct) => Schematic.polyline(a.corners, { width: duct.width }),
|
|
150
|
+
})),
|
|
151
|
+
}),
|
|
152
|
+
}, layers: Schematic.layers(systems.read(), {
|
|
153
|
+
label: (s) => s.label, color: (s) => some(s.colour), order: (s) => s.order, locked: (s) => s.fixed, opacity: (s) => s.dim,
|
|
154
|
+
}) }) }));
|
|
155
|
+
} }))),
|
|
156
|
+
inputs: [],
|
|
157
|
+
});
|
|
158
|
+
// ----------------------------------------------------------------------------
|
|
159
|
+
// The builder: racks, network frames, cooling units and power distribution
|
|
160
|
+
// units; halls, cages and aisles; fibre runs; power feeds; the racks' loads
|
|
161
|
+
// ----------------------------------------------------------------------------
|
|
162
|
+
/** A rack: placed by its centre, or unplaced until a drop places it. */
|
|
163
|
+
export const DcRack = StructType({
|
|
164
|
+
name: StringType, x: OptionType(FloatType), y: OptionType(FloatType), w: FloatType, h: FloatType,
|
|
165
|
+
model: StringType, hall: StringType, system: StringType, owner: StringType,
|
|
166
|
+
});
|
|
167
|
+
/** A rack's load: what its card's bar, figure and dot draw. */
|
|
168
|
+
export const DcLoad = StructType({ kw: FloatType, capacity: FloatType, alarm: VariantType({ ok: NullType, warm: NullType, hot: NullType }) });
|
|
169
|
+
/** A network frame or a power distribution unit. */
|
|
170
|
+
export const DcUnit = StructType({ name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType, kind: StringType, system: StringType });
|
|
171
|
+
/** A cooling unit: round, drawn by its radius. */
|
|
172
|
+
export const DcCooling = StructType({
|
|
173
|
+
name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType, radius: FloatType, setpoint: FloatType, system: StringType,
|
|
174
|
+
});
|
|
175
|
+
/** What an area is: a room or a cage, outlined, or a cold or a hot aisle, hatched. */
|
|
176
|
+
export const DcAreaKind = VariantType({ room: NullType, cold: NullType, hot: NullType });
|
|
177
|
+
/** A hall, a cage or an aisle. */
|
|
178
|
+
export const DcArea = StructType({ name: StringType, x: FloatType, y: FloatType, w: FloatType, h: FloatType, kind: DcAreaKind, system: StringType });
|
|
179
|
+
/** A fibre run's end: a rack, or a network frame. */
|
|
180
|
+
export const DcEnd = VariantType({ rack: StringType, frame: StringType });
|
|
181
|
+
/** A bend of a fibre run's path, in metres. */
|
|
182
|
+
export const DcPoint = StructType({ x: FloatType, y: FloatType });
|
|
183
|
+
/** What a run carries: fibre, drawn solid, or a logical link — management, a cross-connect — drawn dashed. */
|
|
184
|
+
export const DcCable = VariantType({ fibre: NullType, logical: NullType });
|
|
185
|
+
/** A fibre run between two ends. */
|
|
186
|
+
export const DcFibre = StructType({
|
|
187
|
+
from: DcEnd, to: DcEnd, path: ArrayType(DcPoint), label: OptionType(StringType), speed: OptionType(StringType), cable: DcCable, system: StringType,
|
|
188
|
+
});
|
|
189
|
+
/** A power feed: power distribution units feeding racks. */
|
|
190
|
+
export const DcFeed = StructType({ supply: ArrayType(StringType), racks: ArrayType(StringType), label: StringType, load: StringType, system: StringType });
|
|
191
|
+
/** A fibre trunk: one cable gathering several racks' runs into a frame. */
|
|
192
|
+
export const DcTrunk = StructType({ racks: ArrayType(StringType), frames: ArrayType(StringType), label: OptionType(StringType), system: StringType });
|
|
193
|
+
/** What a rack template gives a new rack: every field of a rack but its centre, which the drop places. */
|
|
194
|
+
export const DcRackValues = StructType({ name: StringType, w: FloatType, h: FloatType, model: StringType, hall: StringType, system: StringType, owner: StringType });
|
|
195
|
+
/** A rack template: its card's name and group, and the rack it creates. */
|
|
196
|
+
export const DcRackTemplate = StructType({ name: StringType, group: StringType, values: DcRackValues });
|
|
197
|
+
/** What a fibre template gives a run: every field of a run but its ends. */
|
|
198
|
+
export const DcFibreValues = StructType({
|
|
199
|
+
path: ArrayType(DcPoint), label: OptionType(StringType), speed: OptionType(StringType), cable: DcCable, system: StringType,
|
|
200
|
+
});
|
|
201
|
+
/** A fibre template: its card's name and system, and what it gives a run. */
|
|
202
|
+
export const DcFibreTemplate = StructType({ name: StringType, system: StringType, values: DcFibreValues });
|
|
203
|
+
/** A tenant of the floor: the owner a rack is let to, and who looks after its racks. */
|
|
204
|
+
export const DcOwner = StructType({ name: StringType, contact: StringType });
|
|
205
|
+
export const schematicRacks = e3.record("schematic_racks", DictType(StringType, DcRack), new Map([
|
|
206
|
+
["A01", { name: "A01", x: some(2.4), y: some(2.9), w: 3.2, h: 1.2, model: "42U · 8 kW", hall: "Cage A", system: "power", owner: "Harbour Labs" }],
|
|
207
|
+
["A02", { name: "A02", x: some(6.0), y: some(2.9), w: 3.2, h: 1.2, model: "42U · 8 kW", hall: "Cage A", system: "power", owner: "Harbour Labs" }],
|
|
208
|
+
["A03", { name: "A03", x: some(9.6), y: some(2.9), w: 3.2, h: 1.2, model: "42U · 8 kW", hall: "Cage A", system: "power", owner: "Northwind Media" }],
|
|
209
|
+
["A04", { name: "A04", x: some(13.2), y: some(2.9), w: 3.2, h: 1.2, model: "48U · 12 kW", hall: "Cage A", system: "power", owner: "Northwind Media" }],
|
|
210
|
+
["A05", { name: "A05", x: some(16.8), y: some(2.9), w: 3.2, h: 1.2, model: "48U · 12 kW", hall: "Cage A", system: "power", owner: "Elmway College" }],
|
|
211
|
+
["A06", { name: "A06", x: none, y: none, w: 3.2, h: 1.2, model: "48U · 12 kW", hall: "Cage A", system: "power", owner: "Elmway College" }],
|
|
212
|
+
["A07", { name: "A07", x: none, y: none, w: 3.2, h: 1.2, model: "42U · 8 kW", hall: "Cage A", system: "power", owner: "" }],
|
|
213
|
+
]));
|
|
214
|
+
export const schematicRacksPatch = e3.mutation.patch(schematicRacks);
|
|
215
|
+
export const schematicRacksByName = e3.recordIndex("schematic_racks_by_name", schematicRacks, { on: ["name"] });
|
|
216
|
+
export const schematicRacksByHall = e3.recordIndex("schematic_racks_by_hall", schematicRacks, { on: ["hall"] });
|
|
217
|
+
export const schematicRacksByOwner = e3.recordIndex("schematic_racks_by_owner", schematicRacks, { on: ["owner"] });
|
|
218
|
+
/**
|
|
219
|
+
* The racks filed by their boxes at a 1 cm cell, for a floor read a window at a time (#1393): what a window reads whatever
|
|
220
|
+
* the rail chooses, and the racks with no position, under its unplaced clause, which the Backlog pages.
|
|
221
|
+
*/
|
|
222
|
+
export const schematicRacksByArea = e3.recordIndex.area("schematic_racks_by_area", schematicRacks, {
|
|
223
|
+
x: "x", y: "y", width: "w", height: "h", at: "centre", cell: 0.01,
|
|
224
|
+
});
|
|
225
|
+
/** Beside it, a choice of owners and the window — or the racks with no position — in one read. */
|
|
226
|
+
export const schematicRacksByOwnerArea = e3.recordIndex.area("schematic_racks_by_owner_area", schematicRacks, {
|
|
227
|
+
on: ["owner"], x: "x", y: "y", width: "w", height: "h", at: "centre", cell: 0.01,
|
|
228
|
+
});
|
|
229
|
+
export const schematicRackLoads = e3.record("schematic_rack_loads", DictType(StringType, DcLoad), new Map([
|
|
230
|
+
["A01", { kw: 5.2, capacity: 8.0, alarm: variant("ok", null) }],
|
|
231
|
+
["A02", { kw: 7.4, capacity: 8.0, alarm: variant("warm", null) }],
|
|
232
|
+
["A03", { kw: 3.9, capacity: 8.0, alarm: variant("ok", null) }],
|
|
233
|
+
["A04", { kw: 11.6, capacity: 12.0, alarm: variant("hot", null) }],
|
|
234
|
+
["A05", { kw: 0.0, capacity: 12.0, alarm: variant("ok", null) }],
|
|
235
|
+
]));
|
|
236
|
+
/** The racks' loads' patch door: a rack's capacity edited in the inspector's details. */
|
|
237
|
+
export const schematicRackLoadsPatch = e3.mutation.patch(schematicRackLoads);
|
|
238
|
+
export const schematicFrames = e3.record("schematic_frames", DictType(StringType, DcUnit), new Map([
|
|
239
|
+
["MMR-1", { name: "MMR-1", x: 24.2, y: 2.9, w: 4.0, h: 1.2, kind: "demarc · 48 ports", system: "network" }],
|
|
240
|
+
["ODF-1", { name: "ODF-1", x: 8.4, y: 9.6, w: 12.8, h: 1.0, kind: "fibre frame · 288 F", system: "network" }],
|
|
241
|
+
["CORE-1", { name: "CORE-1", x: 23.2, y: 9.7, w: 4.0, h: 1.2, kind: "core · 64 ports", system: "network" }],
|
|
242
|
+
]));
|
|
243
|
+
export const schematicPdus = e3.record("schematic_pdus", DictType(StringType, DcUnit), new Map([
|
|
244
|
+
["PDU-A", { name: "PDU-A", x: 1.6, y: 4.2, w: 1.2, h: 0.6, kind: "PDU · 32 A", system: "power" }],
|
|
245
|
+
["PDU-B", { name: "PDU-B", x: 18.6, y: 4.2, w: 1.2, h: 0.6, kind: "PDU · 32 A", system: "power" }],
|
|
246
|
+
]));
|
|
247
|
+
export const schematicCooling = e3.record("schematic_cooling", DictType(StringType, DcCooling), new Map([
|
|
248
|
+
["CRAH-1", { name: "CRAH-1", x: 3.0, y: 11.9, w: 1.4, h: 1.4, radius: 0.7, setpoint: 22.0, system: "cooling" }],
|
|
249
|
+
["CRAH-2", { name: "CRAH-2", x: 9.0, y: 11.9, w: 1.4, h: 1.4, radius: 0.7, setpoint: 22.0, system: "cooling" }],
|
|
250
|
+
["CRAH-3", { name: "CRAH-3", x: 15.0, y: 11.9, w: 1.4, h: 1.4, radius: 0.7, setpoint: 23.0, system: "cooling" }],
|
|
251
|
+
]));
|
|
252
|
+
export const schematicCoolingPatch = e3.mutation.patch(schematicCooling);
|
|
253
|
+
export const schematicAreas = e3.record("schematic_areas", DictType(StringType, DcArea), new Map([
|
|
254
|
+
["cage-a", { name: "Cage A", x: 0.6, y: 0.6, w: 19.6, h: 4.6, kind: variant("room", null), system: "structure" }],
|
|
255
|
+
["mmr", { name: "Meet-me room", x: 21.0, y: 0.6, w: 6.4, h: 4.6, kind: variant("room", null), system: "structure" }],
|
|
256
|
+
["cold-a", { name: "Cold aisle A · 1.2 m", x: 0.6, y: 6.0, w: 26.8, h: 1.2, kind: variant("cold", null), system: "cooling" }],
|
|
257
|
+
["net-room", { name: "Network room", x: 19.0, y: 7.8, w: 8.4, h: 3.8, kind: variant("room", null), system: "structure" }],
|
|
258
|
+
["hot-a", { name: "Hot aisle A · 1.0 m", x: 0.6, y: 12.9, w: 18.0, h: 0.9, kind: variant("hot", null), system: "cooling" }],
|
|
259
|
+
]));
|
|
260
|
+
/** The floor's fibre runs, as its record and the frozen floor's hold them. */
|
|
261
|
+
const dcFibreRuns = new Map([
|
|
262
|
+
["u1", { from: variant("rack", "A01"), to: variant("frame", "ODF-1"), path: [], label: some("uplink"), speed: some("100G"), cable: variant("fibre", null), system: "network" }],
|
|
263
|
+
["u2", { from: variant("rack", "A02"), to: variant("frame", "ODF-1"), path: [], label: some("uplink"), speed: some("100G"), cable: variant("fibre", null), system: "network" }],
|
|
264
|
+
["u2m", { from: variant("rack", "A02"), to: variant("frame", "ODF-1"), path: [], label: some("OOB mgmt"), speed: none, cable: variant("logical", null), system: "network" }],
|
|
265
|
+
["u3", { from: variant("rack", "A03"), to: variant("frame", "ODF-1"), path: [], label: none, speed: none, cable: variant("fibre", null), system: "network" }],
|
|
266
|
+
["u4", { from: variant("rack", "A04"), to: variant("frame", "ODF-1"), path: [], label: none, speed: some("2 × 100G"), cable: variant("fibre", null), system: "network" }],
|
|
267
|
+
["x1", { from: variant("frame", "MMR-1"), to: variant("frame", "CORE-1"), path: [{ x: 26.0, y: 6.6 }], label: none, speed: some("2 × 10G"), cable: variant("logical", null), system: "network" }],
|
|
268
|
+
]);
|
|
269
|
+
export const schematicFibre = e3.record("schematic_fibre", DictType(StringType, DcFibre), dcFibreRuns);
|
|
270
|
+
export const schematicFibrePatch = e3.mutation.patch(schematicFibre);
|
|
271
|
+
/**
|
|
272
|
+
* The fibre runs by system, for a floor whose rail narrows its runs through a source of their own: a run read complete
|
|
273
|
+
* through its narrowing, a run a draft changed that a choice leaves out waiting in its session (#1391).
|
|
274
|
+
*/
|
|
275
|
+
export const schematicFibreBySystem = e3.recordIndex("schematic_fibre_by_system", schematicFibre, { on: ["system"] });
|
|
276
|
+
/** The fibre runs of a floor whose cabling is frozen: the same runs, which no Save changes. */
|
|
277
|
+
export const schematicFrozenFibre = e3.record("schematic_frozen_fibre", DictType(StringType, DcFibre), dcFibreRuns);
|
|
278
|
+
/** The frozen floor's door, a checked one: it refuses every change, naming why — what a Save over it is answered. */
|
|
279
|
+
export const schematicFrozenFibrePatch = e3.mutation.reduce("patch", schematicFrozenFibre, East.function([DictType(StringType, DcFibre), PatchType(DictType(StringType, DcFibre))], DictType(StringType, DcFibre), ($, runs, _patch) => {
|
|
280
|
+
$.error("the fibre runs are frozen");
|
|
281
|
+
return runs;
|
|
282
|
+
}));
|
|
283
|
+
export const schematicFeeds = e3.record("schematic_feeds", DictType(StringType, DcFeed), new Map([
|
|
284
|
+
["feed-a", { supply: ["PDU-A"], racks: ["A01", "A02", "A03"], label: "PDU-A · A side", load: "16.5 kW", system: "power" }],
|
|
285
|
+
["feed-b", { supply: ["PDU-B"], racks: ["A04", "A05"], label: "PDU-B · A side", load: "11.6 kW", system: "power" }],
|
|
286
|
+
]));
|
|
287
|
+
export const schematicFeedsPatch = e3.mutation.patch(schematicFeeds);
|
|
288
|
+
/** The floor's fibre trunks: none yet — a Shift-connect from racks to a frame gathers their runs into one. */
|
|
289
|
+
export const schematicTrunks = e3.record("schematic_trunks", DictType(StringType, DcTrunk), new Map());
|
|
290
|
+
export const schematicTrunksPatch = e3.mutation.patch(schematicTrunks);
|
|
291
|
+
export const schematicRackTemplates = e3.record("schematic_rack_templates", DictType(StringType, DcRackTemplate), new Map([
|
|
292
|
+
["r42", { name: "42U rack · 8 kW", group: "Racks", values: { name: "New 42U rack", w: 3.2, h: 1.2, model: "42U · 8 kW", hall: "Cage A", system: "power", owner: "" } }],
|
|
293
|
+
["r48", { name: "48U rack · 12 kW", group: "Racks", values: { name: "New 48U rack", w: 3.2, h: 1.2, model: "48U · 12 kW", hall: "Cage A", system: "power", owner: "" } }],
|
|
294
|
+
["half", { name: "Half rack · 4 kW", group: "Half racks", values: { name: "New half rack", w: 1.6, h: 1.2, model: "24U · 4 kW", hall: "Cage A", system: "power", owner: "" } }],
|
|
295
|
+
]));
|
|
296
|
+
export const schematicRackTemplatesByGroup = e3.recordIndex("schematic_rack_templates_by_group", schematicRackTemplates, { on: ["group"] });
|
|
297
|
+
export const schematicFibreTemplates = e3.record("schematic_fibre_templates", DictType(StringType, DcFibreTemplate), new Map([
|
|
298
|
+
["uplink", { name: "Uplink · 100G", system: "network",
|
|
299
|
+
values: { path: [], label: some("uplink"), speed: some("100G"), cable: variant("fibre", null), system: "network" } }],
|
|
300
|
+
["oob", { name: "Out-of-band management", system: "network",
|
|
301
|
+
values: { path: [], label: some("OOB mgmt"), speed: none, cable: variant("logical", null), system: "network" } }],
|
|
302
|
+
]));
|
|
303
|
+
export const schematicFibreTemplatesBySystem = e3.recordIndex("schematic_fibre_templates_by_system", schematicFibreTemplates, { on: ["system"] });
|
|
304
|
+
export const schematicOwners = e3.record("schematic_owners", DictType(StringType, DcOwner), new Map([
|
|
305
|
+
["elmway", { name: "Elmway College", contact: "IT services" }],
|
|
306
|
+
["harbour", { name: "Harbour Labs", contact: "Network desk" }],
|
|
307
|
+
["northwind", { name: "Northwind Media", contact: "Facilities" }],
|
|
308
|
+
]));
|
|
309
|
+
export const schematicDataCentre = example({
|
|
310
|
+
keywords: [
|
|
311
|
+
"Schematic", "Schematic.items", "Schematic.zones", "Schematic.links", "Schematic.nets", "Schematic.details", "Schematic.templates",
|
|
312
|
+
"Schematic.layers", "Schematic.library", "Schematic.library.tab", "Schematic.patch", "Record.bind", "Data.bindPaged", "Slice.bindRecords", "records",
|
|
313
|
+
"details", "templates", "backlog", "layers", "narrowed", "inspector", "accessor", "id", "onSelect", "canConnect", "Schematic.Types.Ref",
|
|
314
|
+
"Schematic.Types.Candidate", "veto", "editing", "Save", "undo", "Move", "Connect", "nets", "drag and drop", "drop",
|
|
315
|
+
],
|
|
316
|
+
description: "A data centre floor over the app's records, each holding its own fields: racks read through their source of the slice, editable with their patch door, their loads as details on each card, editable in the inspector; network frames, round cooling units with their own Details and power distribution units; halls, cages and aisles, outlined or hatched by what they are; fibre runs between racks and frames, solid or dashed by their cable, a run between two frames refused in the veto's words; power feeds, and fibre trunks a Shift-connect gathers runs into, none onto the core; every gesture a step of one history, Save writing each record through its patch door; the inspector; the whole selection kept by the host; and in the library every kind's templates, dropped on the canvas or on a fibre run, the racks with no position, a drop placing one, the zones' index, the layers, a systems record, and the floor's owners, an owner's card dropped on a rack making it the rack's owner",
|
|
317
|
+
fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
|
|
318
|
+
const racks = $.let(Record.bind(schematicRacks, [schematicRacksPatch]));
|
|
319
|
+
const rackEntries = $.let(Data.bindPaged(schematicRacks));
|
|
320
|
+
// The racks' loads, edited in the inspector: their patch door, read by key beside the racks' source.
|
|
321
|
+
const loads = $.let(Record.bind(schematicRackLoads, [schematicRackLoadsPatch]));
|
|
322
|
+
const loadEntries = $.let(Data.bindPaged(schematicRackLoads));
|
|
323
|
+
const frames = $.let(Data.bind(schematicFrames));
|
|
324
|
+
const pdus = $.let(Data.bind(schematicPdus));
|
|
325
|
+
const cooling = $.let(Record.bind(schematicCooling, [schematicCoolingPatch]));
|
|
326
|
+
const areas = $.let(Data.bind(schematicAreas));
|
|
327
|
+
const fibre = $.let(Record.bind(schematicFibre, [schematicFibrePatch]));
|
|
328
|
+
const feeds = $.let(Record.bind(schematicFeeds, [schematicFeedsPatch]));
|
|
329
|
+
const trunks = $.let(Record.bind(schematicTrunks, [schematicTrunksPatch]));
|
|
330
|
+
const systems = $.let(Data.bind(schematicSystems));
|
|
331
|
+
const rackTemplates = $.let(Data.bind(schematicRackTemplates));
|
|
332
|
+
const fibreTemplates = $.let(Data.bind(schematicFibreTemplates));
|
|
333
|
+
const owners = $.let(Data.bind(schematicOwners));
|
|
334
|
+
// A cooling unit's own Details: its setpoint, and a button that lowers it — the edited unit goes back through `update`.
|
|
335
|
+
const coolingDetails = $.const(East.function([DcCooling, FunctionType([DcCooling], NullType)], UIComponentType, ($2, unit, update) => {
|
|
336
|
+
const lower = $2.const(East.function([], NullType, ($3) => {
|
|
337
|
+
// East has no struct spread: the unit, rebuilt with its new setpoint.
|
|
338
|
+
const edited = $3.const({
|
|
339
|
+
name: unit.name, x: unit.x, y: unit.y, w: unit.w, h: unit.h, radius: unit.radius, setpoint: unit.setpoint.subtract(1.0), system: unit.system,
|
|
340
|
+
}, DcCooling);
|
|
341
|
+
$3(update(edited));
|
|
342
|
+
}));
|
|
343
|
+
return (_jsxs(VStack, { gap: "2", align: "stretch", children: [_jsx(Text, { children: East.str `${unit.name} holds ${East.Float.printFixed(unit.setpoint, 1n)} °C` }), _jsx(Button, { variant: "outline", onClick: lower, children: "Lower the setpoint by 1 \u00B0C" })] }));
|
|
344
|
+
}));
|
|
345
|
+
// The whole selection, after each change — items, zones, links and nets alike, each by its kind's slot and
|
|
346
|
+
// key — kept where the rest of the app reads it.
|
|
347
|
+
const selected = $.let(State.bind([ArrayType(Schematic.Types.Ref)], "ex.schematicDataCentre.selected", []));
|
|
348
|
+
const onSelect = $.const(East.function([ArrayType(Schematic.Types.Ref)], NullType, ($2, refs) => {
|
|
349
|
+
$2(selected.write(refs));
|
|
350
|
+
}));
|
|
351
|
+
// Two frames are joined by a cross-connect, never a fibre run, and the racks' trunks land on a fibre frame,
|
|
352
|
+
// never on the core: the veto's words refuse the pair — a drag's draft shows them, and the footer says them of
|
|
353
|
+
// the inspector's ends, sides and Connect to….
|
|
354
|
+
const canConnect = $.const(East.function([Schematic.Types.Candidate], OptionType(StringType), ($2, candidate) => {
|
|
355
|
+
const reason = $2.let(none, OptionType(StringType));
|
|
356
|
+
$2.if(candidate.from.kind.equal("network").and(() => candidate.to.kind.equal("network")), ($3) => {
|
|
357
|
+
$3.assign(reason, some("Two frames are joined by a cross-connect"));
|
|
358
|
+
});
|
|
359
|
+
$2.if(candidate.kind.equal("trunks").and(() => candidate.to.key.equal("CORE-1")), ($3) => {
|
|
360
|
+
$3.assign(reason, some("A trunk lands on a fibre frame, never the core"));
|
|
361
|
+
});
|
|
362
|
+
return reason;
|
|
363
|
+
}));
|
|
364
|
+
// One rail: the racks by name, hall and owner, and each templates list by its group or system.
|
|
365
|
+
const slice = $.let(Slice.bindRecords("ex.schematicDataCentre", {
|
|
366
|
+
racks: { source: Data.bindPaged(schematicRacks, { indexes: [schematicRacksByName, schematicRacksByHall, schematicRacksByOwner] }), icon: { prefix: "fas", name: "server" },
|
|
367
|
+
search: ["name", "owner"], fields: {
|
|
368
|
+
name: { label: "Rack" }, hall: { label: "Hall", hints: ["Cage A"] }, owner: { label: "Owner", hints: ["Harbour Labs", "Northwind Media", "Elmway College"] },
|
|
369
|
+
} },
|
|
370
|
+
rackTemplates: { source: Data.bindPaged(schematicRackTemplates, { indexes: [schematicRackTemplatesByGroup] }), fields: { group: { label: "Group", hints: ["Racks", "Half racks"] } } },
|
|
371
|
+
fibreTemplates: { source: Data.bindPaged(schematicFibreTemplates, { indexes: [schematicFibreTemplatesBySystem] }), fields: { system: { label: "System", hints: ["network"] } } },
|
|
372
|
+
}));
|
|
373
|
+
return (_jsx(Box, { height: "640px", children: _jsx(Schematic, { id: "dataCentre", inspector: true, extent: { width: 28, height: 14 }, scaleUnit: "m", slice: { slice }, narrowed: "dim", onSelect: onSelect, canConnect: canConnect, items: {
|
|
374
|
+
racks: Schematic.items(racks, {
|
|
375
|
+
name: "Rack", icon: "server", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system", entries: rackEntries,
|
|
376
|
+
sublabel: (r) => r.model,
|
|
377
|
+
details: Schematic.details(loads, {
|
|
378
|
+
entries: loadEntries,
|
|
379
|
+
meter: (l) => ({ value: l.kw, max: l.capacity }),
|
|
380
|
+
metric: (l) => some(East.str `${East.Float.printFixed(l.kw, 1n)} kW`),
|
|
381
|
+
status: { field: "alarm", cases: {
|
|
382
|
+
ok: { label: "OK", tone: variant("success", null), ring: false },
|
|
383
|
+
warm: { label: "Warm", tone: variant("warning", null), ring: false },
|
|
384
|
+
hot: { label: "Hot", tone: variant("danger", null), ring: false },
|
|
385
|
+
} },
|
|
386
|
+
}),
|
|
387
|
+
templates: Schematic.templates(rackTemplates.read(), {
|
|
388
|
+
name: (t) => t.name, group: (t) => some(t.group), values: (t) => t.values, source: "rackTemplates",
|
|
389
|
+
}),
|
|
390
|
+
}),
|
|
391
|
+
network: Schematic.items(frames, {
|
|
392
|
+
name: "Network frame", icon: "network-wired", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system",
|
|
393
|
+
sublabel: (f) => f.kind,
|
|
394
|
+
}),
|
|
395
|
+
cooling: Schematic.items(cooling, {
|
|
396
|
+
name: "Cooling unit", icon: "fan", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system",
|
|
397
|
+
footprint: (c) => some(Schematic.circle(c.radius)),
|
|
398
|
+
sublabel: (c) => East.str `set ${East.Float.printFixed(c.setpoint, 1n)} °C`,
|
|
399
|
+
inspector: coolingDetails,
|
|
400
|
+
}),
|
|
401
|
+
pdus: Schematic.items(pdus, {
|
|
402
|
+
name: "Power distribution unit", icon: "plug", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system",
|
|
403
|
+
sublabel: (p) => p.kind,
|
|
404
|
+
}),
|
|
405
|
+
}, zones: {
|
|
406
|
+
areas: Schematic.zones(areas, {
|
|
407
|
+
name: "Area", icon: "vector-square", x: "x", y: "y", width: "w", height: "h", label: "name", layer: "system",
|
|
408
|
+
pattern: (a) => a.kind.match({
|
|
409
|
+
room: (_$2) => Schematic.outline(),
|
|
410
|
+
cold: (_$2) => Schematic.hatch({ tone: "brand" }),
|
|
411
|
+
hot: (_$2) => Schematic.hatch({ tone: "warning" }),
|
|
412
|
+
}),
|
|
413
|
+
}),
|
|
414
|
+
}, links: {
|
|
415
|
+
fibre: Schematic.links(fibre, {
|
|
416
|
+
name: "Fibre run", icon: "bolt", layer: "system", via: "path",
|
|
417
|
+
from: { field: "from", of: { rack: "racks", frame: "network" } },
|
|
418
|
+
to: { field: "to", of: { rack: "racks", frame: "network" } },
|
|
419
|
+
label: (f) => f.label, metric: (f) => f.speed,
|
|
420
|
+
style: (f) => f.cable.match({ fibre: (_$2) => Schematic.solid(), logical: (_$2) => Schematic.dashed() }),
|
|
421
|
+
templates: Schematic.templates(fibreTemplates.read(), {
|
|
422
|
+
name: (t) => t.name, group: (t) => some(t.system), values: (t) => t.values, source: "fibreTemplates",
|
|
423
|
+
}),
|
|
424
|
+
}),
|
|
425
|
+
}, nets: {
|
|
426
|
+
feeds: Schematic.nets(feeds, {
|
|
427
|
+
name: "Power feed", icon: "plug-circle-bolt", layer: "system",
|
|
428
|
+
sources: { field: "supply", of: "pdus" }, destinations: { field: "racks", of: "racks" },
|
|
429
|
+
label: (f) => some(f.label), metric: (f) => some(f.load),
|
|
430
|
+
}),
|
|
431
|
+
// A Shift-connect from racks to a frame grows its first run into a trunk of them.
|
|
432
|
+
trunks: Schematic.nets(trunks, {
|
|
433
|
+
name: "Fibre trunk", icon: "diagram-project", layer: "system",
|
|
434
|
+
sources: { field: "racks", of: "racks" }, destinations: { field: "frames", of: "network" },
|
|
435
|
+
label: (t) => t.label,
|
|
436
|
+
}),
|
|
437
|
+
}, layers: Schematic.layers(systems.read(), {
|
|
438
|
+
label: (s) => s.label, color: (s) => some(s.colour), order: (s) => s.order, locked: (s) => s.fixed, opacity: (s) => s.dim,
|
|
439
|
+
}), library: [
|
|
440
|
+
Schematic.library.templates(),
|
|
441
|
+
Schematic.library.backlog(),
|
|
442
|
+
Schematic.library.index(),
|
|
443
|
+
Schematic.library.layers(),
|
|
444
|
+
// The floor's owners: a card dropped on a rack — its patch is over a rack's row — makes it the rack's owner.
|
|
445
|
+
Schematic.library.tab(owners.read(), {
|
|
446
|
+
name: "Owners", icon: "building", label: (o) => o.name, meta: (o) => some(o.contact),
|
|
447
|
+
drop: (o) => Schematic.patch(DcRack, { owner: o.name }),
|
|
448
|
+
}),
|
|
449
|
+
] }) }));
|
|
450
|
+
} }))),
|
|
451
|
+
inputs: [],
|
|
452
|
+
});
|
|
453
|
+
//# sourceMappingURL=schematic.examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schematic.examples.js","sourceRoot":"","sources":["../../../test/schematic/schematic.examples.tsx"],"names":[],"mappings":"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"}
|