@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,501 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The Schematic's kinds (#1386, #1401, `Schematic Builder Spec.md` §1, §4.1–§4.5):
|
|
7
|
+
* `Schematic.items`, `zones`, `links`, `nets` and `details`. Each takes the
|
|
8
|
+
* app's own record and maps its fields to the Schematic's roles, as Schedule's
|
|
9
|
+
* kinds do (#1365): the Schematic stores nothing in a shape of its own.
|
|
10
|
+
*
|
|
11
|
+
* - **A role is a field of the app's row, named** (SC1). Its type is checked
|
|
12
|
+
* against the role when the code compiles, and again at build: a field the
|
|
13
|
+
* row lacks, or one of another type, is refused, naming the role, the field
|
|
14
|
+
* and the field's type. A role the app computes — a sub-label, a meter, a
|
|
15
|
+
* tone — is an accessor `(row, key) => …`, reified once and called per row.
|
|
16
|
+
* So is a role whose value is one of the Schematic's own types — a
|
|
17
|
+
* footprint, a zone's shape, a pattern, a style: the accessor builds it with
|
|
18
|
+
* the shape helpers from the row's own fields, so the app's record holds
|
|
19
|
+
* only its own types (D35).
|
|
20
|
+
* - **A gesture writes only the fields its roles map** (SC2): a move writes
|
|
21
|
+
* an item's `x` and `y`, a Connect a link's `from` and `to`, a net's Shift
|
|
22
|
+
* session its `sources` and `destinations`, and every other field of the row
|
|
23
|
+
* reads back as it was.
|
|
24
|
+
* - **Geometry is drawn about its entity's anchor** (D22, SC35): a footprint
|
|
25
|
+
* needs the item's box, `width` and `height`, or it is refused.
|
|
26
|
+
* - **How a kind is bound follows how it is read** (§1, rule 4; SC33):
|
|
27
|
+
* editable bound `Record.bind(record, [e3.mutation.patch(record)])` — read
|
|
28
|
+
* whole, or through its source of the slice with `entries:
|
|
29
|
+
* Data.bindPaged(record)` beside it — and read only bound `Data.bind(record)`,
|
|
30
|
+
* read whole, or `Data.bindPaged(record)`, read through its source. Every
|
|
31
|
+
* other form is refused, naming the one to use. A kind's details are bound
|
|
32
|
+
* as their kind is read.
|
|
33
|
+
*
|
|
34
|
+
* A kind closes the record behind East functions over beast2 bytes (§4.8): its
|
|
35
|
+
* stored rows a read holds, each one's roles beside its bytes; a drafted row's
|
|
36
|
+
* roles; a gesture's write and a new row; the fields an author's card sets,
|
|
37
|
+
* any field at any depth (#1390); the shared editing session over the
|
|
38
|
+
* record with its patch door; the record read by key; its history, its form,
|
|
39
|
+
* its own inspector and the app's check. So the payload is one type whatever
|
|
40
|
+
* the rows hold, and the renderer needs no row type. A kind's record is keyed
|
|
41
|
+
* by String: its entities are named by their keys, and a link's ends hold
|
|
42
|
+
* them.
|
|
43
|
+
*
|
|
44
|
+
* @packageDocumentation
|
|
45
|
+
*/
|
|
46
|
+
import { ArrayType, DictType, FloatType, OptionType, SetType, StringType, StructType, type EastType, type ExprType, type FunctionType, type NullType, type SubtypeExprOrValue, type VariantType } from "@elaraai/east";
|
|
47
|
+
import type { UIComponentType } from "@elaraai/east-ui";
|
|
48
|
+
import { EditingReadinessType, type FieldHints } from "@elaraai/east-ui/internal";
|
|
49
|
+
import type { ScheduleResourceOf, ScheduleStatusCasesOf, ScheduleStatusField } from "../schedule/events.js";
|
|
50
|
+
import { type FieldName, type FieldsOf } from "../schedule/fields.js";
|
|
51
|
+
import { type SchematicTemplates } from "./templates.js";
|
|
52
|
+
import { SchematicKindDetailsType, SchematicGeometryType, SchematicItemKindType, SchematicLinkKindType, SchematicLinkStyleType, SchematicMeterType, SchematicNetKindType, SchematicPointType, SchematicRouteType, SchematicToneType, SchematicZoneKindType, SchematicZonePatternType } from "./types.js";
|
|
53
|
+
import { type SchematicKindPart } from "./window.js";
|
|
54
|
+
/** A String field of the row: a label, a layer. */
|
|
55
|
+
export type SchematicStringField<R extends StructType> = FieldsOf<R, StringType>;
|
|
56
|
+
/** A Float field of the row: a box's side, a zone's corner. */
|
|
57
|
+
export type SchematicFloatField<R extends StructType> = FieldsOf<R, FloatType>;
|
|
58
|
+
/** A Float field, or an Option of one: an item's `x` and `y`, whose Options give its kind a backlog. */
|
|
59
|
+
export type SchematicPlaceField<R extends StructType> = FieldsOf<R, FloatType | OptionType<FloatType>>;
|
|
60
|
+
/** An `Array` of `{ x, y }` Floats field (`Schematic.Types.Point`): a link's or a net's waypoints, the app's own points. */
|
|
61
|
+
export type SchematicViaField<R extends StructType> = FieldsOf<R, ArrayType<SchematicPointType>>;
|
|
62
|
+
/** A `Set<String>` or `Array<String>` field: a net's side, its items' keys. */
|
|
63
|
+
export type SchematicMembersField<R extends StructType> = FieldsOf<R, SetType<StringType> | ArrayType<StringType>>;
|
|
64
|
+
/** Whether a variant's cases are an Option's. */
|
|
65
|
+
type IsOption<C> = "none" extends keyof C ? ("some" extends keyof C ? true : false) : false;
|
|
66
|
+
/** Whether every case of a variant holds a String. */
|
|
67
|
+
type StringCases<C> = [C[keyof C]] extends [StringType] ? true : false;
|
|
68
|
+
/**
|
|
69
|
+
* A field naming a link's end: a String holding a key of one item slot, or a
|
|
70
|
+
* variant of String cases holding a key of the item slot its case names —
|
|
71
|
+
* never an Option: a link has both its ends.
|
|
72
|
+
*/
|
|
73
|
+
export type SchematicEndField<R extends StructType> = {
|
|
74
|
+
[F in FieldName<R>]: R["fields"][F] extends StringType ? F : R["fields"][F] extends VariantType<infer C> ? (IsOption<C> extends true ? never : StringCases<C> extends true ? F : never) : never;
|
|
75
|
+
}[FieldName<R>];
|
|
76
|
+
/** An accessor of a row and its key: what a computed role is. */
|
|
77
|
+
type Accessor<R extends EastType, T extends EastType> = (row: ExprType<R>, key: ExprType<StringType>) => SubtypeExprOrValue<T>;
|
|
78
|
+
/** A kind's own Details: an East function over the row and its writer, as the Sheet's and the Flowchart's are. */
|
|
79
|
+
type RowInspector<R extends StructType> = SubtypeExprOrValue<FunctionType<[R, FunctionType<[R], NullType>], UIComponentType>>;
|
|
80
|
+
/** The status a variant field shows: the field, and a Status per case. */
|
|
81
|
+
export interface SchematicStatusConfig<R extends StructType, SF extends string> {
|
|
82
|
+
/** The status field: a variant, not an Option. */
|
|
83
|
+
field: SF;
|
|
84
|
+
/** One Status per case: its words, its tone and whether it is an open ring. */
|
|
85
|
+
cases: SubtypeExprOrValue<ScheduleStatusCasesOf<R["fields"][SF]>>;
|
|
86
|
+
}
|
|
87
|
+
/** A template's values: the row's fields less those a drop places. */
|
|
88
|
+
export type SchematicValuesOf<R extends StructType, Placed extends string> = StructType<{
|
|
89
|
+
[F in Exclude<FieldName<R>, Placed>]: R["fields"][F];
|
|
90
|
+
}>;
|
|
91
|
+
/**
|
|
92
|
+
* What a kind's record is, bound (§1, rule 4): `Record.bind`'s or
|
|
93
|
+
* `Data.bind`'s handle, read whole, or `Data.bindPaged`'s, read by key — each
|
|
94
|
+
* over a `Dict<String, R>`, its row type `R` inferred from the handle.
|
|
95
|
+
*
|
|
96
|
+
* @typeParam R - The record's row type
|
|
97
|
+
*/
|
|
98
|
+
export type SchematicRecord<R extends StructType> = {
|
|
99
|
+
readonly read: (...args: never[]) => ExprType<DictType<StringType, R>>;
|
|
100
|
+
readonly binding: unknown;
|
|
101
|
+
} | {
|
|
102
|
+
readonly page: (...args: never[]) => ExprType<OptionType<DictType<StringType, R>>>;
|
|
103
|
+
readonly revision: unknown;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* What every kind and every details record declare beside their roles, each
|
|
107
|
+
* typed over the record's row, as Schedule's kinds' are (#1391).
|
|
108
|
+
*
|
|
109
|
+
* @typeParam R - The record's row type
|
|
110
|
+
*/
|
|
111
|
+
interface RecordSide<R extends StructType = StructType> {
|
|
112
|
+
/** A paged read of the record's own entries, for an editable record read through its source. */
|
|
113
|
+
entries?: unknown;
|
|
114
|
+
/** Hints for the inspector's form over the fields no role writes (`Fields`). */
|
|
115
|
+
fields?: FieldHints<R["fields"]>;
|
|
116
|
+
/** The app's check on a drafted row, over the row and its key: a refusal holds Save, naming the row and its field. */
|
|
117
|
+
ready?: (row: ExprType<R>, key: ExprType<StringType>) => SubtypeExprOrValue<typeof EditingReadinessType>;
|
|
118
|
+
/** The kind's own Details, in place of its form: an East function over the row and its writer. */
|
|
119
|
+
inspector?: RowInspector<R>;
|
|
120
|
+
}
|
|
121
|
+
/** The key a Schematic's declarations carry their sort under. */
|
|
122
|
+
export declare const SCHEMATIC_DEF: unique symbol;
|
|
123
|
+
/**
|
|
124
|
+
* A kind's details (§4.5): a record of the app's keyed as its kind is, which
|
|
125
|
+
* the inspector shows beside the row and the cards on screen draw.
|
|
126
|
+
*
|
|
127
|
+
* @typeParam R - The details record's row type
|
|
128
|
+
* @typeParam SF - Its status field, when it gives one
|
|
129
|
+
*/
|
|
130
|
+
export interface SchematicDetailsConfig<R extends StructType, SF extends string = never> {
|
|
131
|
+
/** A variant field shown as the card's status, a Status per case. */
|
|
132
|
+
status?: SchematicStatusConfig<R, SF>;
|
|
133
|
+
/** The card's bar. */
|
|
134
|
+
meter?: Accessor<R, typeof SchematicMeterType>;
|
|
135
|
+
/** The card's figure. */
|
|
136
|
+
metric?: Accessor<R, OptionType<StringType>>;
|
|
137
|
+
/** The card's second line. */
|
|
138
|
+
sublabel?: Accessor<R, StringType>;
|
|
139
|
+
/** Hints for the inspector's form over the details row (`Fields`). */
|
|
140
|
+
fields?: FieldHints<R["fields"]>;
|
|
141
|
+
/** The details' own Details in the inspector, in place of their form. */
|
|
142
|
+
inspector?: RowInspector<R>;
|
|
143
|
+
/** A paged read of the details record's own entries, when they are editable and their kind is read through its source. */
|
|
144
|
+
entries?: unknown;
|
|
145
|
+
}
|
|
146
|
+
/** A kind's details, declared: what a kind's `details` takes. */
|
|
147
|
+
export interface SchematicDetails {
|
|
148
|
+
/** What it is. */
|
|
149
|
+
readonly [SCHEMATIC_DEF]: "details";
|
|
150
|
+
/** The card roles it gives: refused when its kind gives them too. */
|
|
151
|
+
readonly roles: readonly string[];
|
|
152
|
+
/**
|
|
153
|
+
* The details on the wire, beside their kind.
|
|
154
|
+
*
|
|
155
|
+
* @param kind - The kind, as a refusal names it
|
|
156
|
+
* @param throughSource - Whether the kind is read through its source of the slice
|
|
157
|
+
* @returns The details, closed
|
|
158
|
+
* @throws {Error} When they are bound in a form their kind's read does not take (SC33), naming the form to use
|
|
159
|
+
*/
|
|
160
|
+
build(kind: string, throughSource: boolean): ExprType<typeof SchematicKindDetailsType>;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Declares a kind's details (§4.5): a record of the app's keyed as its kind
|
|
164
|
+
* is — a rack's power, a cooling unit's alarm — which the inspector shows
|
|
165
|
+
* beside the row and the cards on screen draw: its status, its bar, its figure
|
|
166
|
+
* and its second line. A kind's row with no details row shows none, and its
|
|
167
|
+
* card draws no bar.
|
|
168
|
+
*
|
|
169
|
+
* @typeParam R - The details record's row type
|
|
170
|
+
* @typeParam SF - Its status field
|
|
171
|
+
* @param record - The details record, bound as its kind is read: read whole beside a kind read whole —
|
|
172
|
+
* `Data.bind(record)`, or `Record.bind(record, [patch])`; by key beside a kind read through its source —
|
|
173
|
+
* `Data.bindPaged(record)`, or `Record.bind(record, [patch])` with `entries`
|
|
174
|
+
* @param config - Its card roles, its form, its own Details and its `entries`
|
|
175
|
+
* @returns The details, for a kind's `details`
|
|
176
|
+
* @throws {Error} Naming the role or the binding: a role naming a field the row lacks or of another type, an accessor
|
|
177
|
+
* returning another type, and a record that is no binding of a record of structs keyed by String
|
|
178
|
+
*/
|
|
179
|
+
export declare function schematicDetails<R extends StructType, SF extends ScheduleStatusField<R> = never>(record: SchematicRecord<R>, config: SchematicDetailsConfig<R, SF>): SchematicDetails;
|
|
180
|
+
/**
|
|
181
|
+
* One kind of placed item (§4.1): racks, cooling units, power distribution
|
|
182
|
+
* units.
|
|
183
|
+
*
|
|
184
|
+
* @typeParam R - The record's row type
|
|
185
|
+
* @typeParam X - The `x` field
|
|
186
|
+
* @typeParam Y - The `y` field
|
|
187
|
+
* @typeParam SF - The status field, when it has one
|
|
188
|
+
*/
|
|
189
|
+
export interface SchematicItemsConfig<R extends StructType, X extends string, Y extends string, SF extends string = never> extends RecordSide<R> {
|
|
190
|
+
/** The kind's name: in the library, the inspector and the rail. */
|
|
191
|
+
name: string;
|
|
192
|
+
/** Its Font Awesome solid icon, and its cards' — or an accessor giving each card's. */
|
|
193
|
+
icon: string | Accessor<R, StringType>;
|
|
194
|
+
/** The Float field an item's centre's x is — or an Option of one, with `y` too, giving the kind a backlog. */
|
|
195
|
+
x: X;
|
|
196
|
+
/** The field its centre's y is: of `x`'s type. */
|
|
197
|
+
y: Y;
|
|
198
|
+
/** The String field, or an accessor, its card's name is. */
|
|
199
|
+
label: SchematicStringField<R> | Accessor<R, StringType>;
|
|
200
|
+
/** The Float field its box's width is, about its centre: its card's width, and the bounds its footprint lies in. */
|
|
201
|
+
width?: SchematicFloatField<R>;
|
|
202
|
+
/** The Float field its box's height is. */
|
|
203
|
+
height?: SchematicFloatField<R>;
|
|
204
|
+
/**
|
|
205
|
+
* Its footprint, drawn about its centre: an accessor building it from the row's own fields with `Schematic.circle`,
|
|
206
|
+
* `polygon`, `polyline` or `rect` — `(unit) => some(Schematic.circle(unit.radius))`. Needs `width` and `height`.
|
|
207
|
+
*/
|
|
208
|
+
footprint?: Accessor<R, OptionType<typeof SchematicGeometryType>>;
|
|
209
|
+
/** The String field naming the layer it is on. */
|
|
210
|
+
layer?: SchematicStringField<R>;
|
|
211
|
+
/** Its card's second line. */
|
|
212
|
+
sublabel?: Accessor<R, StringType>;
|
|
213
|
+
/** Its card's figure. */
|
|
214
|
+
metric?: Accessor<R, OptionType<StringType>>;
|
|
215
|
+
/** Its card's bar. */
|
|
216
|
+
meter?: Accessor<R, typeof SchematicMeterType>;
|
|
217
|
+
/** A variant field shown as its status, a Status per case. */
|
|
218
|
+
status?: SchematicStatusConfig<R, SF>;
|
|
219
|
+
/** An override of its status colour. */
|
|
220
|
+
tone?: Accessor<R, OptionType<typeof SchematicToneType>>;
|
|
221
|
+
/** An override of its status colour: a theme colour token (`status.warn`, `heat.3`). */
|
|
222
|
+
color?: Accessor<R, OptionType<StringType>>;
|
|
223
|
+
/** Its footprint's stroke. */
|
|
224
|
+
weight?: Accessor<R, OptionType<FloatType>>;
|
|
225
|
+
/** Its footprint's fill. */
|
|
226
|
+
fillOpacity?: Accessor<R, OptionType<FloatType>>;
|
|
227
|
+
/** Its details: a record keyed as this one is. */
|
|
228
|
+
details?: SchematicDetails;
|
|
229
|
+
/** Its templates: `Schematic.templates(rows, { name, values, source })`, each giving every field but `x` and `y`. */
|
|
230
|
+
templates?: SchematicTemplates<SchematicValuesOf<R, X | Y>>;
|
|
231
|
+
/** Hints for the inspector's form over the fields no role writes (`Fields`). */
|
|
232
|
+
fields?: FieldHints<R["fields"]>;
|
|
233
|
+
/** Its own Details in the inspector, in place of its form. */
|
|
234
|
+
inspector?: RowInspector<R>;
|
|
235
|
+
}
|
|
236
|
+
/** A kind, declared: what the Schematic's `items`, `zones`, `links` or `nets` take, by slot. */
|
|
237
|
+
interface KindDeclaration<D extends string, W extends EastType> {
|
|
238
|
+
/** What it is. */
|
|
239
|
+
readonly [SCHEMATIC_DEF]: D;
|
|
240
|
+
/** Its record's row type. */
|
|
241
|
+
readonly rowType: StructType;
|
|
242
|
+
/** Its name. */
|
|
243
|
+
readonly name: string;
|
|
244
|
+
/** Whether it has templates. */
|
|
245
|
+
readonly hasTemplates: boolean;
|
|
246
|
+
/** The slice's source its templates list names; `undefined` for none, or for a list naming none, which the Schematic refuses. */
|
|
247
|
+
readonly templatesSource: string | undefined;
|
|
248
|
+
/**
|
|
249
|
+
* The kind on the wire, under its slot.
|
|
250
|
+
*
|
|
251
|
+
* @param slot - The Schematic's slot name for it
|
|
252
|
+
* @param part - Its source of the slice, the one named after its slot, when the slice has one
|
|
253
|
+
* @param every - Whether, read through its source, it reads every row — under `narrowed="dim"`, which draws what the
|
|
254
|
+
* narrowing leaves out as context (§10.3) — rather than what its narrowing holds
|
|
255
|
+
* @returns The kind, closed
|
|
256
|
+
* @throws {Error} When it is bound in a form its read does not take (SC33), naming the form to use, or its own
|
|
257
|
+
* Details are of another type than its row's
|
|
258
|
+
*/
|
|
259
|
+
build(slot: string, part?: SchematicKindPart, every?: boolean): ExprType<W>;
|
|
260
|
+
}
|
|
261
|
+
/** An item kind, declared. */
|
|
262
|
+
export interface SchematicItems extends KindDeclaration<"items", typeof SchematicItemKindType> {
|
|
263
|
+
/** Whether its `x` and `y` are Options: its rows with no position are its backlog. */
|
|
264
|
+
readonly backlog: boolean;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Declares an item kind (see the module docs and §4.1).
|
|
268
|
+
*
|
|
269
|
+
* @typeParam R - The record's row type
|
|
270
|
+
* @typeParam X - The `x` field
|
|
271
|
+
* @typeParam Y - The `y` field
|
|
272
|
+
* @typeParam SF - The status field, when it has one
|
|
273
|
+
* @param record - The app's record of items: `Record.bind(record, [e3.mutation.patch(record)])` to edit it, or `Data.bind(record)`
|
|
274
|
+
* or `Data.bindPaged(record)` to read it only (§1, rule 4)
|
|
275
|
+
* @param config - Its name and icon, the fields its roles are, its accessors, and its details, templates, form, Details and check
|
|
276
|
+
* @returns The kind, for the Schematic's `items`, by slot
|
|
277
|
+
* @throws {Error} Naming the role or the binding (SC1, SC33, SC35): a role naming a field the row lacks, or one of another
|
|
278
|
+
* type; `x` and `y` of different types; an accessor returning another type; a `footprint` naming a field rather than
|
|
279
|
+
* an accessor building the shape (D35), or without `width` and `height`; a status, a meter, a metric or a second line given both here and by its details; templates written in
|
|
280
|
+
* the code, or giving other fields than every field but `x` and `y`; and a record that is no binding of a record of
|
|
281
|
+
* structs keyed by String, a `Record.bind` without its patch door, or `entries` beside a read-only binding
|
|
282
|
+
*/
|
|
283
|
+
export declare function schematicItems<R extends StructType, X extends SchematicPlaceField<R>, Y extends SchematicPlaceField<R>, SF extends ScheduleStatusField<R> = never>(record: SchematicRecord<R>, config: SchematicItemsConfig<R, X, Y, SF>): SchematicItems;
|
|
284
|
+
/**
|
|
285
|
+
* One kind of zone (§4.2): halls, cages, aisles — drawn under the items,
|
|
286
|
+
* outlined or hatched. Zones take no gesture on the canvas: their fields are
|
|
287
|
+
* edited through the inspector, when the kind is bound with its patch door.
|
|
288
|
+
*
|
|
289
|
+
* @typeParam R - The record's row type
|
|
290
|
+
*/
|
|
291
|
+
export interface SchematicZonesConfig<R extends StructType> extends RecordSide<R> {
|
|
292
|
+
/** The kind's name. */
|
|
293
|
+
name: string;
|
|
294
|
+
/** Its Font Awesome solid icon. */
|
|
295
|
+
icon: string;
|
|
296
|
+
/** The Float field its box's left edge is. */
|
|
297
|
+
x: SchematicFloatField<R>;
|
|
298
|
+
/** The Float field its box's top edge is. */
|
|
299
|
+
y: SchematicFloatField<R>;
|
|
300
|
+
/** The Float field its box's width is. */
|
|
301
|
+
width: SchematicFloatField<R>;
|
|
302
|
+
/** The Float field its box's height is. */
|
|
303
|
+
height: SchematicFloatField<R>;
|
|
304
|
+
/** The String field, or an accessor, the eyebrow on its boundary is. */
|
|
305
|
+
label: SchematicStringField<R> | Accessor<R, StringType>;
|
|
306
|
+
/** Outline (the default) or hatch: a hatched zone is an annotation, holding no items and taking no tap. */
|
|
307
|
+
pattern?: Accessor<R, typeof SchematicZonePatternType>;
|
|
308
|
+
/**
|
|
309
|
+
* Its drawn shape, about its box's centre: an accessor building it from the row's own fields with `Schematic.circle`,
|
|
310
|
+
* `polygon`, `polyline` or `rect` — `(area) => some(Schematic.polygon(area.corners))`.
|
|
311
|
+
*/
|
|
312
|
+
geometry?: Accessor<R, OptionType<typeof SchematicGeometryType>>;
|
|
313
|
+
/** The String field naming the layer it is on. */
|
|
314
|
+
layer?: SchematicStringField<R>;
|
|
315
|
+
/** An override of its pattern's tone. */
|
|
316
|
+
tone?: Accessor<R, OptionType<typeof SchematicToneType>>;
|
|
317
|
+
/** An override of its pattern's tone: a theme colour token. */
|
|
318
|
+
color?: Accessor<R, OptionType<StringType>>;
|
|
319
|
+
/** Its fill. */
|
|
320
|
+
fillOpacity?: Accessor<R, OptionType<FloatType>>;
|
|
321
|
+
/** Its stroke. */
|
|
322
|
+
weight?: Accessor<R, OptionType<FloatType>>;
|
|
323
|
+
/** Its details: a record keyed as this one is. */
|
|
324
|
+
details?: SchematicDetails;
|
|
325
|
+
/** Hints for the inspector's form over the fields no role writes. */
|
|
326
|
+
fields?: FieldHints<R["fields"]>;
|
|
327
|
+
/** Its own Details in the inspector, in place of its form. */
|
|
328
|
+
inspector?: RowInspector<R>;
|
|
329
|
+
}
|
|
330
|
+
/** A zone kind, declared. */
|
|
331
|
+
export type SchematicZones = KindDeclaration<"zones", typeof SchematicZoneKindType>;
|
|
332
|
+
/**
|
|
333
|
+
* Declares a zone kind (§4.2).
|
|
334
|
+
*
|
|
335
|
+
* @typeParam R - The record's row type
|
|
336
|
+
* @param record - The app's record of zones, bound as §1, rule 4 says
|
|
337
|
+
* @param config - Its name and icon, the fields its box and label are, its pattern and shape, and its details, form, Details and check
|
|
338
|
+
* @returns The kind, for the Schematic's `zones`, by slot
|
|
339
|
+
* @throws {Error} Naming the role or the binding, as `Schematic.items` does, and a `geometry` naming a field rather than an
|
|
340
|
+
* accessor building the shape (D35)
|
|
341
|
+
*/
|
|
342
|
+
export declare function schematicZones<R extends StructType>(record: SchematicRecord<R>, config: SchematicZonesConfig<R>): SchematicZones;
|
|
343
|
+
/**
|
|
344
|
+
* A link's end: the field holding the key of the item it joins, and the item
|
|
345
|
+
* slot those keys are of — or, for a variant field, a slot per case.
|
|
346
|
+
*
|
|
347
|
+
* @typeParam R - The record's row type
|
|
348
|
+
* @typeParam F - The field
|
|
349
|
+
*/
|
|
350
|
+
export interface SchematicEnd<R extends StructType, F extends string> {
|
|
351
|
+
/** The field: a String, or a variant of String cases. */
|
|
352
|
+
field: F;
|
|
353
|
+
/** The item slot its keys are of: one for a String field, or one per case. */
|
|
354
|
+
of: ScheduleResourceOf<R["fields"][F]>;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* One kind of link (§4.3): fibre runs, power feeds, each between two items.
|
|
358
|
+
*
|
|
359
|
+
* @typeParam R - The record's row type
|
|
360
|
+
* @typeParam FF - The `from` field
|
|
361
|
+
* @typeParam TF - The `to` field
|
|
362
|
+
*/
|
|
363
|
+
export interface SchematicLinksConfig<R extends StructType, FF extends string, TF extends string> extends RecordSide<R> {
|
|
364
|
+
/** The kind's name: in the Connect tool's menu, the library and the inspector. */
|
|
365
|
+
name: string;
|
|
366
|
+
/** Its Font Awesome solid icon. */
|
|
367
|
+
icon: string;
|
|
368
|
+
/** The item it runs from. */
|
|
369
|
+
from: SchematicEnd<R, FF>;
|
|
370
|
+
/** The item it runs to. */
|
|
371
|
+
to: SchematicEnd<R, TF>;
|
|
372
|
+
/** The field its waypoints are: an `Array` of `{ x, y }` Floats, the app's own points. */
|
|
373
|
+
via?: SchematicViaField<R>;
|
|
374
|
+
/** Its caption, on a knockout at its path's middle (#1403). */
|
|
375
|
+
label?: Accessor<R, OptionType<StringType>>;
|
|
376
|
+
/** The figure after its label. */
|
|
377
|
+
metric?: Accessor<R, OptionType<StringType>>;
|
|
378
|
+
/** Solid (the default) or dashed, its tone and its weight. */
|
|
379
|
+
style?: Accessor<R, typeof SchematicLinkStyleType>;
|
|
380
|
+
/** Orthogonal (the default) or direct. */
|
|
381
|
+
route?: Accessor<R, typeof SchematicRouteType>;
|
|
382
|
+
/** The String field naming the layer it is on. */
|
|
383
|
+
layer?: SchematicStringField<R>;
|
|
384
|
+
/** Its details: a record keyed as this one is. */
|
|
385
|
+
details?: SchematicDetails;
|
|
386
|
+
/** Its templates, each giving every field but `from` and `to`: dropped on a link, one retypes it. */
|
|
387
|
+
templates?: SchematicTemplates<SchematicValuesOf<R, FF | TF>>;
|
|
388
|
+
/** Hints for the inspector's form over the fields no role writes. */
|
|
389
|
+
fields?: FieldHints<R["fields"]>;
|
|
390
|
+
/** Its own Details in the inspector, in place of its form. */
|
|
391
|
+
inspector?: RowInspector<R>;
|
|
392
|
+
}
|
|
393
|
+
/** A link kind, declared. */
|
|
394
|
+
export interface SchematicLinks extends KindDeclaration<"links", typeof SchematicLinkKindType> {
|
|
395
|
+
/** The item slots each end holds keys of. */
|
|
396
|
+
readonly ends: {
|
|
397
|
+
readonly from: readonly string[];
|
|
398
|
+
readonly to: readonly string[];
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Declares a link kind (§4.3).
|
|
403
|
+
*
|
|
404
|
+
* @typeParam R - The record's row type
|
|
405
|
+
* @typeParam FF - The `from` field
|
|
406
|
+
* @typeParam TF - The `to` field
|
|
407
|
+
* @param record - The app's record of links, bound as §1, rule 4 says
|
|
408
|
+
* @param config - Its name and icon, its ends, its drawing roles, and its details, templates, form, Details and check
|
|
409
|
+
* @returns The kind, for the Schematic's `links`, by slot
|
|
410
|
+
* @throws {Error} Naming the role or the binding, as `Schematic.items` does: an end of neither a String field nor a
|
|
411
|
+
* variant of String cases — an Option among them, a link having both its ends — or whose `of` names no item slot,
|
|
412
|
+
* and `from` and `to` naming one field
|
|
413
|
+
*/
|
|
414
|
+
export declare function schematicLinks<R extends StructType, FF extends SchematicEndField<R>, TF extends SchematicEndField<R>>(record: SchematicRecord<R>, config: SchematicLinksConfig<R, FF, TF>): SchematicLinks;
|
|
415
|
+
/**
|
|
416
|
+
* A net's side: the `Set<String>` or `Array<String>` field holding its items'
|
|
417
|
+
* keys, and the item slot those keys are of.
|
|
418
|
+
*
|
|
419
|
+
* @typeParam R - The record's row type
|
|
420
|
+
*/
|
|
421
|
+
export interface SchematicSide<R extends StructType> {
|
|
422
|
+
/** The field: a Set or an Array of String keys. */
|
|
423
|
+
field: SchematicMembersField<R>;
|
|
424
|
+
/** The item slot its keys are of. */
|
|
425
|
+
of: string;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* One kind of net (§4.4): a trunk joining many items to many, as a power
|
|
429
|
+
* distribution unit feeds a row of racks.
|
|
430
|
+
*
|
|
431
|
+
* @typeParam R - The record's row type
|
|
432
|
+
* @typeParam SRC - The `sources` field
|
|
433
|
+
* @typeParam DST - The `destinations` field
|
|
434
|
+
*/
|
|
435
|
+
export interface SchematicNetsConfig<R extends StructType, SRC extends string, DST extends string> extends RecordSide<R> {
|
|
436
|
+
/** The kind's name. */
|
|
437
|
+
name: string;
|
|
438
|
+
/** Its Font Awesome solid icon. */
|
|
439
|
+
icon: string;
|
|
440
|
+
/** Its feeding side. */
|
|
441
|
+
sources: {
|
|
442
|
+
field: SRC;
|
|
443
|
+
of: string;
|
|
444
|
+
};
|
|
445
|
+
/** Its fed side. */
|
|
446
|
+
destinations: {
|
|
447
|
+
field: DST;
|
|
448
|
+
of: string;
|
|
449
|
+
};
|
|
450
|
+
/** The field its trunk's waypoints are: an `Array` of `{ x, y }` Floats, the app's own points. */
|
|
451
|
+
via?: SchematicViaField<R>;
|
|
452
|
+
/** Its caption, on a knockout at its trunk's middle (#1403). */
|
|
453
|
+
label?: Accessor<R, OptionType<StringType>>;
|
|
454
|
+
/** The figure after its label. */
|
|
455
|
+
metric?: Accessor<R, OptionType<StringType>>;
|
|
456
|
+
/** Solid (the default) or dashed, its tone and its weight. */
|
|
457
|
+
style?: Accessor<R, typeof SchematicLinkStyleType>;
|
|
458
|
+
/** Its trunk: orthogonal (the default) or direct. */
|
|
459
|
+
route?: Accessor<R, typeof SchematicRouteType>;
|
|
460
|
+
/** The String field naming the layer it is on. */
|
|
461
|
+
layer?: SchematicStringField<R>;
|
|
462
|
+
/** Its details: a record keyed as this one is. */
|
|
463
|
+
details?: SchematicDetails;
|
|
464
|
+
/** Its templates, each giving every field but its sides. */
|
|
465
|
+
templates?: SchematicTemplates<SchematicValuesOf<R, SRC | DST>>;
|
|
466
|
+
/** Hints for the inspector's form over the fields no role writes. */
|
|
467
|
+
fields?: FieldHints<R["fields"]>;
|
|
468
|
+
/** Its own Details in the inspector, in place of its form. */
|
|
469
|
+
inspector?: RowInspector<R>;
|
|
470
|
+
}
|
|
471
|
+
/** A net kind, declared. */
|
|
472
|
+
export interface SchematicNets extends KindDeclaration<"nets", typeof SchematicNetKindType> {
|
|
473
|
+
/** The item slot each side holds keys of. */
|
|
474
|
+
readonly sides: {
|
|
475
|
+
readonly sources: string;
|
|
476
|
+
readonly destinations: string;
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Declares a net kind (§4.4).
|
|
481
|
+
*
|
|
482
|
+
* @typeParam R - The record's row type
|
|
483
|
+
* @typeParam SRC - The `sources` field
|
|
484
|
+
* @typeParam DST - The `destinations` field
|
|
485
|
+
* @param record - The app's record of nets, bound as §1, rule 4 says
|
|
486
|
+
* @param config - Its name and icon, its sides, its drawing roles, and its details, templates, form, Details and check
|
|
487
|
+
* @returns The kind, for the Schematic's `nets`, by slot
|
|
488
|
+
* @throws {Error} Naming the role or the binding, as `Schematic.items` does: a side of neither a Set nor an Array of
|
|
489
|
+
* String, whose `of` names no item slot, and both sides naming one field
|
|
490
|
+
*/
|
|
491
|
+
export declare function schematicNets<R extends StructType, SRC extends SchematicMembersField<R>, DST extends SchematicMembersField<R>>(record: SchematicRecord<R>, config: SchematicNetsConfig<R, SRC, DST>): SchematicNets;
|
|
492
|
+
/**
|
|
493
|
+
* Whether something is a Schematic kind of the sort given.
|
|
494
|
+
*
|
|
495
|
+
* @param value - What a slot holds
|
|
496
|
+
* @param sort - The sort the slot takes
|
|
497
|
+
* @returns Whether it is one
|
|
498
|
+
*/
|
|
499
|
+
export declare function isSchematicKind(value: unknown, sort: "items" | "zones" | "links" | "nets"): boolean;
|
|
500
|
+
export {};
|
|
501
|
+
//# sourceMappingURL=kinds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../../../src/schematic/kinds.ts"],"names":[],"mappings":"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"}
|