@elaraai/e3-ui 1.0.96 → 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.
Files changed (304) hide show
  1. package/dist/src/allocation/index.d.ts +258 -7
  2. package/dist/src/allocation/index.d.ts.map +1 -1
  3. package/dist/src/allocation/index.js +30 -1
  4. package/dist/src/allocation/index.js.map +1 -1
  5. package/dist/src/allocation/types.d.ts +41 -0
  6. package/dist/src/allocation/types.d.ts.map +1 -1
  7. package/dist/src/allocation/types.js +35 -0
  8. package/dist/src/allocation/types.js.map +1 -1
  9. package/dist/src/bind/data-indexed.d.ts +31 -4
  10. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  11. package/dist/src/bind/data-indexed.js +54 -10
  12. package/dist/src/bind/data-indexed.js.map +1 -1
  13. package/dist/src/calendar/index.d.ts +540 -14
  14. package/dist/src/calendar/index.d.ts.map +1 -1
  15. package/dist/src/calendar/index.js +43 -7
  16. package/dist/src/calendar/index.js.map +1 -1
  17. package/dist/src/calendar/paged.d.ts +89 -0
  18. package/dist/src/calendar/paged.d.ts.map +1 -0
  19. package/dist/src/calendar/paged.js +148 -0
  20. package/dist/src/calendar/paged.js.map +1 -0
  21. package/dist/src/flowchart/payload.d.ts +156 -0
  22. package/dist/src/flowchart/payload.d.ts.map +1 -1
  23. package/dist/src/flowchart/window.d.ts +12 -0
  24. package/dist/src/flowchart/window.d.ts.map +1 -1
  25. package/dist/src/index.d.ts +11 -2
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +19 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/internal.d.ts +11 -5
  30. package/dist/src/internal.d.ts.map +1 -1
  31. package/dist/src/internal.js +28 -7
  32. package/dist/src/internal.js.map +1 -1
  33. package/dist/src/plan/builders.d.ts +12 -8
  34. package/dist/src/plan/builders.d.ts.map +1 -1
  35. package/dist/src/plan/builders.js +12 -8
  36. package/dist/src/plan/builders.js.map +1 -1
  37. package/dist/src/plan/event-rows.d.ts +228 -156
  38. package/dist/src/plan/event-rows.d.ts.map +1 -1
  39. package/dist/src/plan/event-rows.js +239 -54
  40. package/dist/src/plan/event-rows.js.map +1 -1
  41. package/dist/src/plan/index.d.ts +5 -0
  42. package/dist/src/plan/index.d.ts.map +1 -1
  43. package/dist/src/plan/index.js +3 -0
  44. package/dist/src/plan/index.js.map +1 -1
  45. package/dist/src/plan/ir.d.ts +70 -0
  46. package/dist/src/plan/ir.d.ts.map +1 -1
  47. package/dist/src/plan/ordered-source.d.ts +2038 -1
  48. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  49. package/dist/src/plan/ordered-source.js +19 -11
  50. package/dist/src/plan/ordered-source.js.map +1 -1
  51. package/dist/src/plan/plan.d.ts +513 -32
  52. package/dist/src/plan/plan.d.ts.map +1 -1
  53. package/dist/src/plan/plan.js +119 -32
  54. package/dist/src/plan/plan.js.map +1 -1
  55. package/dist/src/plan/root.d.ts +4 -2
  56. package/dist/src/plan/root.d.ts.map +1 -1
  57. package/dist/src/plan/root.js +6 -4
  58. package/dist/src/plan/root.js.map +1 -1
  59. package/dist/src/plan/series.d.ts +13 -0
  60. package/dist/src/plan/series.d.ts.map +1 -1
  61. package/dist/src/plan/series.js +61 -7
  62. package/dist/src/plan/series.js.map +1 -1
  63. package/dist/src/plan/types.d.ts +14 -0
  64. package/dist/src/plan/types.d.ts.map +1 -1
  65. package/dist/src/plan/types.js +8 -0
  66. package/dist/src/plan/types.js.map +1 -1
  67. package/dist/src/roster/index.d.ts +608 -20
  68. package/dist/src/roster/index.d.ts.map +1 -1
  69. package/dist/src/roster/index.js +103 -29
  70. package/dist/src/roster/index.js.map +1 -1
  71. package/dist/src/roster/library.d.ts +12 -2
  72. package/dist/src/roster/library.d.ts.map +1 -1
  73. package/dist/src/roster/library.js +8 -0
  74. package/dist/src/roster/library.js.map +1 -1
  75. package/dist/src/roster/lists.d.ts +59 -12
  76. package/dist/src/roster/lists.d.ts.map +1 -1
  77. package/dist/src/roster/lists.js +51 -58
  78. package/dist/src/roster/lists.js.map +1 -1
  79. package/dist/src/roster/times.d.ts +402 -0
  80. package/dist/src/roster/times.d.ts.map +1 -1
  81. package/dist/src/roster/types.d.ts +913 -1
  82. package/dist/src/roster/types.d.ts.map +1 -1
  83. package/dist/src/roster/types.js +43 -3
  84. package/dist/src/roster/types.js.map +1 -1
  85. package/dist/src/schedule/cell-checks.d.ts +85 -0
  86. package/dist/src/schedule/cell-checks.d.ts.map +1 -0
  87. package/dist/src/schedule/cell-checks.js +211 -0
  88. package/dist/src/schedule/cell-checks.js.map +1 -0
  89. package/dist/src/schedule/events.d.ts +42 -10
  90. package/dist/src/schedule/events.d.ts.map +1 -1
  91. package/dist/src/schedule/events.js +349 -155
  92. package/dist/src/schedule/events.js.map +1 -1
  93. package/dist/src/schedule/fields.d.ts +134 -0
  94. package/dist/src/schedule/fields.d.ts.map +1 -0
  95. package/dist/src/schedule/fields.js +207 -0
  96. package/dist/src/schedule/fields.js.map +1 -0
  97. package/dist/src/schedule/library.d.ts +11 -3
  98. package/dist/src/schedule/library.d.ts.map +1 -1
  99. package/dist/src/schedule/library.js +9 -6
  100. package/dist/src/schedule/library.js.map +1 -1
  101. package/dist/src/schedule/optimise.d.ts +124 -0
  102. package/dist/src/schedule/optimise.d.ts.map +1 -0
  103. package/dist/src/schedule/optimise.js +140 -0
  104. package/dist/src/schedule/optimise.js.map +1 -0
  105. package/dist/src/schedule/pages.d.ts +76 -0
  106. package/dist/src/schedule/pages.d.ts.map +1 -0
  107. package/dist/src/schedule/pages.js +86 -0
  108. package/dist/src/schedule/pages.js.map +1 -0
  109. package/dist/src/schedule/record-window.d.ts +119 -6
  110. package/dist/src/schedule/record-window.d.ts.map +1 -1
  111. package/dist/src/schedule/record-window.js +139 -60
  112. package/dist/src/schedule/record-window.js.map +1 -1
  113. package/dist/src/schedule/resources.d.ts +8 -4
  114. package/dist/src/schedule/resources.d.ts.map +1 -1
  115. package/dist/src/schedule/resources.js +35 -15
  116. package/dist/src/schedule/resources.js.map +1 -1
  117. package/dist/src/schedule/session.d.ts +14 -0
  118. package/dist/src/schedule/session.d.ts.map +1 -1
  119. package/dist/src/schedule/session.js +29 -17
  120. package/dist/src/schedule/session.js.map +1 -1
  121. package/dist/src/schedule/types.d.ts +426 -36
  122. package/dist/src/schedule/types.d.ts.map +1 -1
  123. package/dist/src/schedule/types.js +63 -17
  124. package/dist/src/schedule/types.js.map +1 -1
  125. package/dist/src/schedule/window.d.ts +30 -9
  126. package/dist/src/schedule/window.d.ts.map +1 -1
  127. package/dist/src/schedule/window.js +101 -49
  128. package/dist/src/schedule/window.js.map +1 -1
  129. package/dist/src/schematic/index.d.ts +277 -0
  130. package/dist/src/schematic/index.d.ts.map +1 -0
  131. package/dist/src/schematic/index.js +206 -0
  132. package/dist/src/schematic/index.js.map +1 -0
  133. package/dist/src/schematic/kinds.d.ts +501 -0
  134. package/dist/src/schematic/kinds.d.ts.map +1 -0
  135. package/dist/src/schematic/kinds.js +1027 -0
  136. package/dist/src/schematic/kinds.js.map +1 -0
  137. package/dist/src/schematic/layers.d.ts +74 -0
  138. package/dist/src/schematic/layers.d.ts.map +1 -0
  139. package/dist/src/schematic/layers.js +99 -0
  140. package/dist/src/schematic/layers.js.map +1 -0
  141. package/dist/src/schematic/library.d.ts +202 -0
  142. package/dist/src/schematic/library.d.ts.map +1 -0
  143. package/dist/src/schematic/library.js +244 -0
  144. package/dist/src/schematic/library.js.map +1 -0
  145. package/dist/src/schematic/payload.d.ts +8360 -0
  146. package/dist/src/schematic/payload.d.ts.map +1 -0
  147. package/dist/src/schematic/payload.js +446 -0
  148. package/dist/src/schematic/payload.js.map +1 -0
  149. package/dist/src/schematic/schematic.d.ts +27 -0
  150. package/dist/src/schematic/schematic.d.ts.map +1 -0
  151. package/dist/src/schematic/schematic.js +17 -0
  152. package/dist/src/schematic/schematic.js.map +1 -0
  153. package/dist/src/schematic/shapes.d.ts +150 -0
  154. package/dist/src/schematic/shapes.d.ts.map +1 -0
  155. package/dist/src/schematic/shapes.js +171 -0
  156. package/dist/src/schematic/shapes.js.map +1 -0
  157. package/dist/src/schematic/templates.d.ts +96 -0
  158. package/dist/src/schematic/templates.d.ts.map +1 -0
  159. package/dist/src/schematic/templates.js +91 -0
  160. package/dist/src/schematic/templates.js.map +1 -0
  161. package/dist/src/schematic/types.d.ts +5766 -0
  162. package/dist/src/schematic/types.d.ts.map +1 -0
  163. package/dist/src/schematic/types.js +688 -0
  164. package/dist/src/schematic/types.js.map +1 -0
  165. package/dist/src/schematic/window.d.ts +212 -0
  166. package/dist/src/schematic/window.d.ts.map +1 -0
  167. package/dist/src/schematic/window.js +337 -0
  168. package/dist/src/schematic/window.js.map +1 -0
  169. package/dist/src/sheet/editing-bridge.d.ts +4 -2
  170. package/dist/src/sheet/editing-bridge.d.ts.map +1 -1
  171. package/dist/src/sheet/editing-bridge.js +8 -2
  172. package/dist/src/sheet/editing-bridge.js.map +1 -1
  173. package/dist/src/sheet/editing-types.d.ts +9 -5
  174. package/dist/src/sheet/editing-types.d.ts.map +1 -1
  175. package/dist/src/sheet/editing-types.js +9 -5
  176. package/dist/src/sheet/editing-types.js.map +1 -1
  177. package/dist/src/sheet/index.d.ts +18 -8
  178. package/dist/src/sheet/index.d.ts.map +1 -1
  179. package/dist/src/sheet/index.js +15 -7
  180. package/dist/src/sheet/index.js.map +1 -1
  181. package/dist/src/sheet/optimise.d.ts +69 -0
  182. package/dist/src/sheet/optimise.d.ts.map +1 -0
  183. package/dist/src/sheet/optimise.js +81 -0
  184. package/dist/src/sheet/optimise.js.map +1 -0
  185. package/dist/src/sheet/registers.d.ts +5 -5
  186. package/dist/src/sheet/registers.js +5 -5
  187. package/dist/src/sheet/root.d.ts +2 -0
  188. package/dist/src/sheet/root.d.ts.map +1 -1
  189. package/dist/src/sheet/root.js +2 -2
  190. package/dist/src/sheet/root.js.map +1 -1
  191. package/dist/src/sheet/sheet.d.ts +753 -573
  192. package/dist/src/sheet/sheet.d.ts.map +1 -1
  193. package/dist/src/sheet/sheet.js +45 -13
  194. package/dist/src/sheet/sheet.js.map +1 -1
  195. package/dist/src/sheet/types.d.ts +92 -12
  196. package/dist/src/sheet/types.d.ts.map +1 -1
  197. package/dist/src/sheet/types.js +4 -8
  198. package/dist/src/sheet/types.js.map +1 -1
  199. package/dist/src/utils/keyed-rows.d.ts +41 -0
  200. package/dist/src/utils/keyed-rows.d.ts.map +1 -0
  201. package/dist/src/utils/keyed-rows.js +64 -0
  202. package/dist/src/utils/keyed-rows.js.map +1 -0
  203. package/dist/src/utils/optimise.d.ts +79 -0
  204. package/dist/src/utils/optimise.d.ts.map +1 -0
  205. package/dist/src/utils/optimise.js +46 -0
  206. package/dist/src/utils/optimise.js.map +1 -0
  207. package/dist/test/allocation/allocation.examples.d.ts +6 -18
  208. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  209. package/dist/test/allocation/allocation.examples.js +3 -3
  210. package/dist/test/allocation/allocation.examples.js.map +1 -1
  211. package/dist/test/allocation/optimise.examples.d.ts +109 -0
  212. package/dist/test/allocation/optimise.examples.d.ts.map +1 -0
  213. package/dist/test/allocation/optimise.examples.js +223 -0
  214. package/dist/test/allocation/optimise.examples.js.map +1 -0
  215. package/dist/test/bind/data/data.examples.d.ts +540 -36
  216. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  217. package/dist/test/bind/data/data.examples.js +66 -2
  218. package/dist/test/bind/data/data.examples.js.map +1 -1
  219. package/dist/test/bind/record/record.examples.d.ts +1 -3
  220. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  221. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  222. package/dist/test/calendar/calendar-records.examples.js +3 -3
  223. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  224. package/dist/test/calendar/calendar-windows.examples.d.ts +9 -0
  225. package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -0
  226. package/dist/test/calendar/calendar-windows.examples.js +111 -0
  227. package/dist/test/calendar/calendar-windows.examples.js.map +1 -0
  228. package/dist/test/calendar/calendar.examples.d.ts +7 -21
  229. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  230. package/dist/test/calendar/calendar.examples.js +7 -7
  231. package/dist/test/calendar/calendar.examples.js.map +1 -1
  232. package/dist/test/calendar/optimise.examples.d.ts +132 -0
  233. package/dist/test/calendar/optimise.examples.d.ts.map +1 -0
  234. package/dist/test/calendar/optimise.examples.js +75 -0
  235. package/dist/test/calendar/optimise.examples.js.map +1 -0
  236. package/dist/test/examples-package.d.ts +46 -10
  237. package/dist/test/examples-package.d.ts.map +1 -1
  238. package/dist/test/examples-package.js +142 -32
  239. package/dist/test/examples-package.js.map +1 -1
  240. package/dist/test/flowchart/flowchart.examples.d.ts +10 -30
  241. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  242. package/dist/test/plan/optimise.examples.d.ts +207 -0
  243. package/dist/test/plan/optimise.examples.d.ts.map +1 -0
  244. package/dist/test/plan/optimise.examples.js +98 -0
  245. package/dist/test/plan/optimise.examples.js.map +1 -0
  246. package/dist/test/plan/plan-events.examples.d.ts +8 -24
  247. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  248. package/dist/test/plan/plan-events.examples.js +3 -3
  249. package/dist/test/plan/plan-events.examples.js.map +1 -1
  250. package/dist/test/plan/plan-records.examples.d.ts +200 -19
  251. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  252. package/dist/test/plan/plan-records.examples.js +125 -28
  253. package/dist/test/plan/plan-records.examples.js.map +1 -1
  254. package/dist/test/plan/plan-windows.examples.d.ts +853 -36
  255. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  256. package/dist/test/plan/plan-windows.examples.js +166 -29
  257. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  258. package/dist/test/plan/plan.examples.d.ts +7 -21
  259. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  260. package/dist/test/plan/plan.examples.js +11 -9
  261. package/dist/test/plan/plan.examples.js.map +1 -1
  262. package/dist/test/roster/domain.examples.d.ts +804 -0
  263. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  264. package/dist/test/roster/domain.examples.js +3 -3
  265. package/dist/test/roster/domain.examples.js.map +1 -1
  266. package/dist/test/roster/optimise.examples.d.ts +485 -0
  267. package/dist/test/roster/optimise.examples.d.ts.map +1 -0
  268. package/dist/test/roster/optimise.examples.js +155 -0
  269. package/dist/test/roster/optimise.examples.js.map +1 -0
  270. package/dist/test/roster/roster-records.examples.d.ts +6 -18
  271. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  272. package/dist/test/roster/roster-records.examples.js +1 -1
  273. package/dist/test/roster/roster-records.examples.js.map +1 -1
  274. package/dist/test/roster/roster.examples.d.ts +3391 -21
  275. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  276. package/dist/test/roster/roster.examples.js +54 -7
  277. package/dist/test/roster/roster.examples.js.map +1 -1
  278. package/dist/test/roster/warehouse.d.ts +150 -7
  279. package/dist/test/roster/warehouse.d.ts.map +1 -1
  280. package/dist/test/roster/warehouse.js +36 -11
  281. package/dist/test/roster/warehouse.js.map +1 -1
  282. package/dist/test/schedule/schedule.examples.d.ts +1 -3
  283. package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
  284. package/dist/test/schematic/schematic-records.examples.d.ts +444 -0
  285. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
  286. package/dist/test/schematic/schematic-records.examples.js +205 -0
  287. package/dist/test/schematic/schematic-records.examples.js.map +1 -0
  288. package/dist/test/schematic/schematic.examples.d.ts +2289 -0
  289. package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
  290. package/dist/test/schematic/schematic.examples.js +453 -0
  291. package/dist/test/schematic/schematic.examples.js.map +1 -0
  292. package/dist/test/sheet/optimise.examples.d.ts +177 -0
  293. package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
  294. package/dist/test/sheet/optimise.examples.js +75 -0
  295. package/dist/test/sheet/optimise.examples.js.map +1 -0
  296. package/dist/test/sheet/sheet-records.examples.d.ts +95 -204
  297. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  298. package/dist/test/sheet/sheet-records.examples.js +42 -17
  299. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  300. package/dist/test/sheet/sheet.examples.d.ts +17 -33
  301. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  302. package/dist/test/sheet/sheet.examples.js +18 -15
  303. package/dist/test/sheet/sheet.examples.js.map +1 -1
  304. 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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"}