@snaptrude/plugin-core 0.9.10 → 0.9.12
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/CHANGELOG.md +27 -0
- package/api-manifest.json +108 -409
- package/dist/api/design/create/grids.d.ts +132 -0
- package/dist/api/design/create/grids.d.ts.map +1 -0
- package/dist/api/design/create/index.d.ts +109 -1
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/family.d.ts +561 -0
- package/dist/api/design/family.d.ts.map +1 -0
- package/dist/api/design/grids.d.ts +237 -0
- package/dist/api/design/grids.d.ts.map +1 -0
- package/dist/api/design/index.d.ts +9 -0
- package/dist/api/design/index.d.ts.map +1 -1
- package/dist/api/design/query/grids.d.ts +287 -0
- package/dist/api/design/query/grids.d.ts.map +1 -0
- package/dist/api/design/query/index.d.ts +36 -0
- package/dist/api/design/query/index.d.ts.map +1 -1
- package/dist/api/design/update/index.d.ts +74 -0
- package/dist/api/design/update/index.d.ts.map +1 -1
- package/dist/index.cjs +2230 -1967
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2199 -1970
- package/dist/index.js.map +1 -1
- package/package.json +13 -13
- package/src/api/design/create/grids.ts +137 -0
- package/src/api/design/create/index.ts +131 -0
- package/src/api/design/family.ts +591 -0
- package/src/api/design/grids.ts +237 -0
- package/src/api/design/index.ts +10 -0
- package/src/api/design/query/grids.ts +197 -0
- package/src/api/design/query/index.ts +29 -0
- package/src/api/design/update/index.ts +53 -0
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../types";
|
|
3
|
+
import { ComponentHandle } from "../../handles";
|
|
4
|
+
/**
|
|
5
|
+
* Tag policy for structural line removal (mirrors the engine
|
|
6
|
+
* `GridLineTagPolicy` values verbatim): `"rewrite"` renumbers each affected
|
|
7
|
+
* wing's tag sequence after removal; `"preserve"` keeps the surviving lines'
|
|
8
|
+
* tags unchanged.
|
|
9
|
+
*/
|
|
10
|
+
export declare const PluginGridLineTagPolicy: z.ZodEnum<{
|
|
11
|
+
preserve: "preserve";
|
|
12
|
+
rewrite: "rewrite";
|
|
13
|
+
}>;
|
|
14
|
+
export type PluginGridLineTagPolicy = z.infer<typeof PluginGridLineTagPolicy>;
|
|
15
|
+
/** A positional grid-line address — indices into `design.query.grids.get`'s `wings` arrays. */
|
|
16
|
+
export declare const PluginGridLineAddress: z.ZodObject<{
|
|
17
|
+
wing: z.ZodNumber;
|
|
18
|
+
line: z.ZodNumber;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type PluginGridLineAddress = z.infer<typeof PluginGridLineAddress>;
|
|
21
|
+
/**
|
|
22
|
+
* One per-wing entry of {@linkcode PluginDesignGridsApi.updateWings} —
|
|
23
|
+
* addressed by wing index. `spanMin`/`spanMax` move the family's length
|
|
24
|
+
* handles (Snaptrude units).
|
|
25
|
+
*/
|
|
26
|
+
export declare const PluginGridWingEntry: z.ZodObject<{
|
|
27
|
+
wing: z.ZodNumber;
|
|
28
|
+
spacing: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
count: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
spanMin: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
spanMax: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type PluginGridWingEntry = z.infer<typeof PluginGridWingEntry>;
|
|
34
|
+
/** Arguments for {@linkcode PluginDesignGridsApi.updateWings}. */
|
|
35
|
+
export declare const PluginDesignGridsUpdateWingsArgs: z.ZodObject<{
|
|
36
|
+
grid: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
|
|
37
|
+
wings: z.ZodArray<z.ZodObject<{
|
|
38
|
+
wing: z.ZodNumber;
|
|
39
|
+
spacing: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
count: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
spanMin: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
spanMax: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
}, z.core.$strip>>;
|
|
44
|
+
}, z.core.$strip>;
|
|
45
|
+
export type PluginDesignGridsUpdateWingsArgs = z.infer<typeof PluginDesignGridsUpdateWingsArgs>;
|
|
46
|
+
/**
|
|
47
|
+
* One per-line entry of {@linkcode PluginDesignGridsApi.updateLines} —
|
|
48
|
+
* addressed positionally by `{ wing, line }` indices (invalidated by
|
|
49
|
+
* structural edits; re-query after mutating). `distanceToPrevious` /
|
|
50
|
+
* `distanceToNext` set the typed distance to the adjacent line on that side
|
|
51
|
+
* and are mutually exclusive.
|
|
52
|
+
*
|
|
53
|
+
* `visible` is **hide-only** (`false`), mirroring the product: per-line show
|
|
54
|
+
* does not exist — showing the GROUP (`design.visibility.show`) restores all
|
|
55
|
+
* of its lines, exactly like the native Show All.
|
|
56
|
+
*/
|
|
57
|
+
export declare const PluginGridLineEntry: z.ZodObject<{
|
|
58
|
+
wing: z.ZodNumber;
|
|
59
|
+
line: z.ZodNumber;
|
|
60
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
61
|
+
distanceToPrevious: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
distanceToNext: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
props: z.ZodOptional<z.ZodObject<{
|
|
64
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
65
|
+
SOLID: "SOLID";
|
|
66
|
+
DASHED: "DASHED";
|
|
67
|
+
DOT_DASH: "DOT_DASH";
|
|
68
|
+
}>>;
|
|
69
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
70
|
+
color: z.ZodOptional<z.ZodString>;
|
|
71
|
+
showStart: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
+
showEnd: z.ZodOptional<z.ZodBoolean>;
|
|
73
|
+
}, z.core.$strip>>;
|
|
74
|
+
visible: z.ZodOptional<z.ZodLiteral<false>>;
|
|
75
|
+
}, z.core.$strip>;
|
|
76
|
+
export type PluginGridLineEntry = z.infer<typeof PluginGridLineEntry>;
|
|
77
|
+
/** Arguments for {@linkcode PluginDesignGridsApi.updateLines}. */
|
|
78
|
+
export declare const PluginDesignGridsUpdateLinesArgs: z.ZodObject<{
|
|
79
|
+
grid: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
|
|
80
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
81
|
+
wing: z.ZodNumber;
|
|
82
|
+
line: z.ZodNumber;
|
|
83
|
+
tag: z.ZodOptional<z.ZodString>;
|
|
84
|
+
distanceToPrevious: z.ZodOptional<z.ZodNumber>;
|
|
85
|
+
distanceToNext: z.ZodOptional<z.ZodNumber>;
|
|
86
|
+
props: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
88
|
+
SOLID: "SOLID";
|
|
89
|
+
DASHED: "DASHED";
|
|
90
|
+
DOT_DASH: "DOT_DASH";
|
|
91
|
+
}>>;
|
|
92
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
color: z.ZodOptional<z.ZodString>;
|
|
94
|
+
showStart: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
showEnd: z.ZodOptional<z.ZodBoolean>;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
visible: z.ZodOptional<z.ZodLiteral<false>>;
|
|
98
|
+
}, z.core.$strip>>;
|
|
99
|
+
}, z.core.$strip>;
|
|
100
|
+
export type PluginDesignGridsUpdateLinesArgs = z.infer<typeof PluginDesignGridsUpdateLinesArgs>;
|
|
101
|
+
/** Arguments for {@linkcode PluginDesignGridsApi.addLine}. */
|
|
102
|
+
export declare const PluginDesignGridsAddLineArgs: z.ZodObject<{
|
|
103
|
+
grid: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
|
|
104
|
+
wing: z.ZodNumber;
|
|
105
|
+
position: z.ZodNumber;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
export type PluginDesignGridsAddLineArgs = z.infer<typeof PluginDesignGridsAddLineArgs>;
|
|
108
|
+
/** Arguments for {@linkcode PluginDesignGridsApi.removeLines}. */
|
|
109
|
+
export declare const PluginDesignGridsRemoveLinesArgs: z.ZodObject<{
|
|
110
|
+
grid: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
|
|
111
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
112
|
+
wing: z.ZodNumber;
|
|
113
|
+
line: z.ZodNumber;
|
|
114
|
+
}, z.core.$strip>>;
|
|
115
|
+
tagPolicy: z.ZodOptional<z.ZodEnum<{
|
|
116
|
+
preserve: "preserve";
|
|
117
|
+
rewrite: "rewrite";
|
|
118
|
+
}>>;
|
|
119
|
+
}, z.core.$strip>;
|
|
120
|
+
export type PluginDesignGridsRemoveLinesArgs = z.infer<typeof PluginDesignGridsRemoveLinesArgs>;
|
|
121
|
+
/**
|
|
122
|
+
* `design.grids.*` — structural edits on a grid's line structure (the
|
|
123
|
+
* entity-family home for grid-specific operations, like `design.doors`).
|
|
124
|
+
*
|
|
125
|
+
* Lines are addressed positionally as `{ wing, line }` index pairs into the
|
|
126
|
+
* `wings` arrays returned by `design.query.grids.get`. Adding, removing, or
|
|
127
|
+
* re-counting lines re-indexes the wing — re-query after every structural edit.
|
|
128
|
+
*
|
|
129
|
+
* Group-level edits (default styling, angle, storey visibility) live on
|
|
130
|
+
* `design.update.grid`; creation lives on `design.create.grid*`.
|
|
131
|
+
*
|
|
132
|
+
* Accessed via `snaptrude.design.grids`.
|
|
133
|
+
*/
|
|
134
|
+
export declare abstract class PluginDesignGridsApi {
|
|
135
|
+
constructor();
|
|
136
|
+
/**
|
|
137
|
+
* Update one or more **wings** of a grid with sparse per-wing entries —
|
|
138
|
+
* `spacing` (uniform re-space), `count` (grow/truncate + tag renumber),
|
|
139
|
+
* `spanMin`/`spanMax` (family length handles). Every change routes through
|
|
140
|
+
* the exact setters the native panel uses — each changed field commits its
|
|
141
|
+
* own undoable command, identical to editing that field in the panel.
|
|
142
|
+
*
|
|
143
|
+
* A `count` change re-indexes the wing's lines — positional `{ wing, line }`
|
|
144
|
+
* addresses held from before the call are stale afterwards; re-query.
|
|
145
|
+
*
|
|
146
|
+
* @param grid - The grid group
|
|
147
|
+
* @param wings - Sparse {@linkcode PluginGridWingEntry} entries (≥ 1)
|
|
148
|
+
* @returns `true` once applied
|
|
149
|
+
*
|
|
150
|
+
* @examplePrompt Change this grid's spacing to 8 metres
|
|
151
|
+
* @examplePrompt Make this grid 10 by 12 lines
|
|
152
|
+
*
|
|
153
|
+
* # Example
|
|
154
|
+
* ```ts
|
|
155
|
+
* await snaptrude.design.grids.updateWings(grid, [{ wing: 0, spacing: 8, count: 10 }])
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
abstract updateWings(grid: ComponentHandle, wings: PluginGridWingEntry[]): PluginApiReturn<boolean>;
|
|
159
|
+
/**
|
|
160
|
+
* Update one or more **lines** of a grid with sparse per-line entries —
|
|
161
|
+
* `tag`, `distanceToPrevious`/`distanceToNext` (typed distance to the
|
|
162
|
+
* neighbour on that side; mutually exclusive), `props` (per-line style
|
|
163
|
+
* overrides), and `visible: false` (hide). Every change routes through the
|
|
164
|
+
* exact setters the native panel uses — each changed field commits its own
|
|
165
|
+
* undoable command, identical to editing that field in the panel.
|
|
166
|
+
*
|
|
167
|
+
* Visibility mirrors the product exactly: `visible` accepts only `false` —
|
|
168
|
+
* per-line show does not exist. Hiding lines that would leave NO visible
|
|
169
|
+
* line hides the whole GROUP instead (the native last-line rule; those line
|
|
170
|
+
* flags stay untouched). To bring hidden lines back, show the group
|
|
171
|
+
* (`design.visibility.show([grid])`) — it restores ALL of its lines, like
|
|
172
|
+
* the native Show All.
|
|
173
|
+
*
|
|
174
|
+
* @param grid - The grid group
|
|
175
|
+
* @param lines - Sparse {@linkcode PluginGridLineEntry} entries (≥ 1)
|
|
176
|
+
* @returns `true` once applied
|
|
177
|
+
*
|
|
178
|
+
* @examplePrompt Rename grid line 2 to "B"
|
|
179
|
+
* @examplePrompt Move this grid line 4 metres from its neighbour
|
|
180
|
+
* @examplePrompt Hide grid line 3 on this grid
|
|
181
|
+
*
|
|
182
|
+
* # Example
|
|
183
|
+
* ```ts
|
|
184
|
+
* await snaptrude.design.grids.updateLines(grid, [
|
|
185
|
+
* { wing: 0, line: 1, tag: "B", distanceToPrevious: 4 },
|
|
186
|
+
* ])
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
abstract updateLines(grid: ComponentHandle, lines: PluginGridLineEntry[]): PluginApiReturn<boolean>;
|
|
190
|
+
/**
|
|
191
|
+
* Insert a parallel grid line into a wing at an explicit position along the
|
|
192
|
+
* wing's spacing axis (Snaptrude units, wing-local — line 0's position can
|
|
193
|
+
* be read from its curve). Sibling lines do not shift; the wing's tag
|
|
194
|
+
* sequence is renumbered. Undoable.
|
|
195
|
+
*
|
|
196
|
+
* @param grid - The grid group
|
|
197
|
+
* @param wing - Wing index
|
|
198
|
+
* @param position - Position along the wing's spacing axis (Snaptrude units)
|
|
199
|
+
* @returns `true` once inserted
|
|
200
|
+
* @throws `VALIDATION` on a bad wing index or non-finite position
|
|
201
|
+
*
|
|
202
|
+
* @examplePrompt Add a grid line between lines 2 and 3
|
|
203
|
+
* @examplePrompt Insert an extra grid line 4 metres from line A
|
|
204
|
+
*
|
|
205
|
+
* # Example
|
|
206
|
+
* ```ts
|
|
207
|
+
* await snaptrude.design.grids.addLine(grid, 0, 12.5)
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
abstract addLine(grid: ComponentHandle, wing: number, position: number): PluginApiReturn<boolean>;
|
|
211
|
+
/**
|
|
212
|
+
* Remove grid lines by positional address, as ONE undoable step. With
|
|
213
|
+
* `tagPolicy: "rewrite"` (default) each affected wing renumbers its tag
|
|
214
|
+
* sequence; `"preserve"` keeps surviving tags unchanged. A wing emptied of
|
|
215
|
+
* lines is dropped from the group.
|
|
216
|
+
*
|
|
217
|
+
* Removing EVERY line of the group is rejected — delete the group instead
|
|
218
|
+
* (`design.delete.entities`).
|
|
219
|
+
*
|
|
220
|
+
* @param grid - The grid group
|
|
221
|
+
* @param lines - Positional addresses to remove (see `design.query.grids.get`)
|
|
222
|
+
* @param tagPolicy - `"rewrite"` (default) or `"preserve"`
|
|
223
|
+
* @returns `true` once removed
|
|
224
|
+
* @throws `VALIDATION` on out-of-range addresses; `OPERATION_FAILED` when the
|
|
225
|
+
* removal would delete the group's last line
|
|
226
|
+
*
|
|
227
|
+
* @examplePrompt Delete grid line B
|
|
228
|
+
* @examplePrompt Remove the last two lines of this grid without renumbering
|
|
229
|
+
*
|
|
230
|
+
* # Example
|
|
231
|
+
* ```ts
|
|
232
|
+
* await snaptrude.design.grids.removeLines(grid, [{ wing: 0, line: 2 }], "preserve")
|
|
233
|
+
* ```
|
|
234
|
+
*/
|
|
235
|
+
abstract removeLines(grid: ComponentHandle, lines: PluginGridLineAddress[], tagPolicy?: PluginGridLineTagPolicy): PluginApiReturn<boolean>;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=grids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grids.d.ts","sourceRoot":"","sources":["../../../src/api/design/grids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAG/C;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;;;EAAkC,CAAA;AACtE,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;;iBAM9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE,kEAAkE;AAClE,eAAO,MAAM,gCAAgC;;;;;;;;;iBAG3C,CAAA;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,gCAAgC,CACxC,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;iBAkB5B,CAAA;AACJ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE,kEAAkE;AAClE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;iBAG3C,CAAA;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,gCAAgC,CACxC,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B;;;;iBAIvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF,kEAAkE;AAClE,eAAO,MAAM,gCAAgC;;;;;;;;;;iBAI3C,CAAA;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,gCAAgC,CACxC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,8BAAsB,oBAAoB;;IAGxC;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,mBAAmB,EAAE,GAC3B,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;aACa,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,mBAAmB,EAAE,GAC3B,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;OAmBG;aACa,OAAO,CACrB,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;aACa,WAAW,CACzB,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,qBAAqB,EAAE,EAC9B,SAAS,CAAC,EAAE,uBAAuB,GAClC,eAAe,CAAC,OAAO,CAAC;CAC5B"}
|
|
@@ -16,6 +16,8 @@ import { PluginDesignUpdateApi } from "./update";
|
|
|
16
16
|
import { PluginDesignVisibilityApi } from "./visibility";
|
|
17
17
|
import { PluginDesignDimensionsApi } from "./dimensions";
|
|
18
18
|
import { PluginDesignTypesApi } from "./types";
|
|
19
|
+
import { PluginDesignFamilyApi } from "./family";
|
|
20
|
+
import { PluginDesignGridsApi } from "./grids";
|
|
19
21
|
import { PluginDesignChangeResult } from "./lock";
|
|
20
22
|
/**
|
|
21
23
|
* `snaptrude.design.*` — author, query & edit BIM geometry.
|
|
@@ -32,6 +34,7 @@ import { PluginDesignChangeResult } from "./lock";
|
|
|
32
34
|
* - {@linkcode PluginDesignApi.visibility} — hide / isolate / reveal entities
|
|
33
35
|
* - {@linkcode PluginDesignApi.dimensions} — dimension lines (Measuring Tape): create / list / delete / hide
|
|
34
36
|
* - {@linkcode PluginDesignApi.types} — read-only building type / assembly reference
|
|
37
|
+
* - {@linkcode PluginDesignApi.family} — author parametric families from a JSON spec
|
|
35
38
|
* - {@linkcode PluginDesignApi.lock} / {@linkcode PluginDesignApi.unlock} / {@linkcode PluginDesignApi.isLocked} / {@linkcode PluginDesignApi.listLocked} — lock state (top-level design verbs, §2A.1)
|
|
36
39
|
* - {@linkcode PluginDesignApi.lockArea} / {@linkcode PluginDesignApi.unlockArea} / {@linkcode PluginDesignApi.isAreaLocked} / {@linkcode PluginDesignApi.listAreaLocked} — footprint-area lock for Room/Department spaces
|
|
37
40
|
*
|
|
@@ -70,6 +73,10 @@ export declare abstract class PluginDesignApi {
|
|
|
70
73
|
abstract dimensions: PluginDesignDimensionsApi;
|
|
71
74
|
/** Read-only building type / assembly reference. See {@linkcode PluginDesignTypesApi}. */
|
|
72
75
|
abstract types: PluginDesignTypesApi;
|
|
76
|
+
/** Author parametric families from a JSON spec. See {@linkcode PluginDesignFamilyApi}. */
|
|
77
|
+
abstract family: PluginDesignFamilyApi;
|
|
78
|
+
/** Structural edits on a grid's line structure. See {@linkcode PluginDesignGridsApi}. */
|
|
79
|
+
abstract grids: PluginDesignGridsApi;
|
|
73
80
|
/**
|
|
74
81
|
* Lock entities so they cannot be edited. Undoable. Cascades to void/door/window
|
|
75
82
|
* children, stacked-wall companions, and terrain neighborhood; skips
|
|
@@ -248,4 +255,6 @@ export * from "./update";
|
|
|
248
255
|
export * from "./visibility";
|
|
249
256
|
export * from "./dimensions";
|
|
250
257
|
export * from "./types";
|
|
258
|
+
export * from "./family";
|
|
259
|
+
export * from "./grids";
|
|
251
260
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/design/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAA;AAEjD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/design/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../../types";
|
|
3
|
+
/**
|
|
4
|
+
* Visual properties of grid lines — the group's defaults and any per-line
|
|
5
|
+
* overrides share this shape (values mirror the engine's `GridLineProps`).
|
|
6
|
+
*
|
|
7
|
+
* | Property | Type | Description |
|
|
8
|
+
* |---|---|---|
|
|
9
|
+
* | `style` | {@linkcode PluginReferenceLineStyle} | Line style (`"SOLID"` \| `"DASHED"` \| `"DOT_DASH"`) |
|
|
10
|
+
* | `weight` | `number` | Line weight |
|
|
11
|
+
* | `color` | `string` | Line color as a `#rrggbb` hex string |
|
|
12
|
+
* | `showStart` | `boolean` | Whether the start-end tag bubble is shown |
|
|
13
|
+
* | `showEnd` | `boolean` | Whether the end-end tag bubble is shown |
|
|
14
|
+
*/
|
|
15
|
+
export declare const PluginGridLineProps: z.ZodObject<{
|
|
16
|
+
style: z.ZodEnum<{
|
|
17
|
+
SOLID: "SOLID";
|
|
18
|
+
DASHED: "DASHED";
|
|
19
|
+
DOT_DASH: "DOT_DASH";
|
|
20
|
+
}>;
|
|
21
|
+
weight: z.ZodNumber;
|
|
22
|
+
color: z.ZodString;
|
|
23
|
+
showStart: z.ZodBoolean;
|
|
24
|
+
showEnd: z.ZodBoolean;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export type PluginGridLineProps = z.infer<typeof PluginGridLineProps>;
|
|
27
|
+
/**
|
|
28
|
+
* One grid line within a wing.
|
|
29
|
+
*
|
|
30
|
+
* | Property | Type | Description |
|
|
31
|
+
* |---|---|---|
|
|
32
|
+
* | `curve` | {@linkcode CurveHandle} | The line's geometry in **world space** (a line or arc; read coordinates via `core.geom.curve`) |
|
|
33
|
+
* | `tag` | `string` | The line's grid tag (e.g. `"A"`, `"3"`) |
|
|
34
|
+
* | `visible` | `boolean` | Persisted per-line visibility |
|
|
35
|
+
* | `props` | {@linkcode PluginGridLineProps} | **Effective** visual properties (group defaults merged with this line's overrides) |
|
|
36
|
+
* | `overrides` | `Partial<`{@linkcode PluginGridLineProps}`>`? | This line's raw overrides, when any exist |
|
|
37
|
+
*/
|
|
38
|
+
export declare const PluginGridLineRecord: z.ZodObject<{
|
|
39
|
+
curve: z.ZodUnion<readonly [z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"line">, string>>, z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"arc">, string>>]>;
|
|
40
|
+
tag: z.ZodString;
|
|
41
|
+
visible: z.ZodBoolean;
|
|
42
|
+
props: z.ZodObject<{
|
|
43
|
+
style: z.ZodEnum<{
|
|
44
|
+
SOLID: "SOLID";
|
|
45
|
+
DASHED: "DASHED";
|
|
46
|
+
DOT_DASH: "DOT_DASH";
|
|
47
|
+
}>;
|
|
48
|
+
weight: z.ZodNumber;
|
|
49
|
+
color: z.ZodString;
|
|
50
|
+
showStart: z.ZodBoolean;
|
|
51
|
+
showEnd: z.ZodBoolean;
|
|
52
|
+
}, z.core.$strip>;
|
|
53
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
54
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
55
|
+
SOLID: "SOLID";
|
|
56
|
+
DASHED: "DASHED";
|
|
57
|
+
DOT_DASH: "DOT_DASH";
|
|
58
|
+
}>>;
|
|
59
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
color: z.ZodOptional<z.ZodString>;
|
|
61
|
+
showStart: z.ZodOptional<z.ZodBoolean>;
|
|
62
|
+
showEnd: z.ZodOptional<z.ZodBoolean>;
|
|
63
|
+
}, z.core.$strip>>;
|
|
64
|
+
}, z.core.$strip>;
|
|
65
|
+
export type PluginGridLineRecord = z.infer<typeof PluginGridLineRecord>;
|
|
66
|
+
/**
|
|
67
|
+
* One wing of a grid — a family of parallel lines sharing a local frame.
|
|
68
|
+
* `spacing` and `span` are measured along the wing's local axes in
|
|
69
|
+
* Snaptrude units; line addresses used by mutating APIs are
|
|
70
|
+
* `{ wing, line }` index pairs into these arrays.
|
|
71
|
+
*
|
|
72
|
+
* | Property | Type | Description |
|
|
73
|
+
* |---|---|---|
|
|
74
|
+
* | `spacing` | `number` | Nominal spacing between adjacent lines (Snaptrude units) |
|
|
75
|
+
* | `tagStart` | `string` | First tag of the wing's deterministic tag sequence |
|
|
76
|
+
* | `span` | `{ min: number; max: number }`? | Explicit family length along the wing's line axis, when baked |
|
|
77
|
+
* | `lines` | {@linkcode PluginGridLineRecord}`[]` | The wing's lines, in wing order (index = the `line` address) |
|
|
78
|
+
*/
|
|
79
|
+
export declare const PluginGridWingRecord: z.ZodObject<{
|
|
80
|
+
spacing: z.ZodNumber;
|
|
81
|
+
tagStart: z.ZodString;
|
|
82
|
+
span: z.ZodOptional<z.ZodObject<{
|
|
83
|
+
min: z.ZodNumber;
|
|
84
|
+
max: z.ZodNumber;
|
|
85
|
+
}, z.core.$strip>>;
|
|
86
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
87
|
+
curve: z.ZodUnion<readonly [z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"line">, string>>, z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"arc">, string>>]>;
|
|
88
|
+
tag: z.ZodString;
|
|
89
|
+
visible: z.ZodBoolean;
|
|
90
|
+
props: z.ZodObject<{
|
|
91
|
+
style: z.ZodEnum<{
|
|
92
|
+
SOLID: "SOLID";
|
|
93
|
+
DASHED: "DASHED";
|
|
94
|
+
DOT_DASH: "DOT_DASH";
|
|
95
|
+
}>;
|
|
96
|
+
weight: z.ZodNumber;
|
|
97
|
+
color: z.ZodString;
|
|
98
|
+
showStart: z.ZodBoolean;
|
|
99
|
+
showEnd: z.ZodBoolean;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
102
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
103
|
+
SOLID: "SOLID";
|
|
104
|
+
DASHED: "DASHED";
|
|
105
|
+
DOT_DASH: "DOT_DASH";
|
|
106
|
+
}>>;
|
|
107
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
108
|
+
color: z.ZodOptional<z.ZodString>;
|
|
109
|
+
showStart: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
+
showEnd: z.ZodOptional<z.ZodBoolean>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
}, z.core.$strip>>;
|
|
113
|
+
}, z.core.$strip>;
|
|
114
|
+
export type PluginGridWingRecord = z.infer<typeof PluginGridWingRecord>;
|
|
115
|
+
/**
|
|
116
|
+
* Per-storey 2D-plan visibility of a grid.
|
|
117
|
+
*
|
|
118
|
+
* | Property | Type | Description |
|
|
119
|
+
* |---|---|---|
|
|
120
|
+
* | `activeStorey` | `number` | The storey the grid belongs to |
|
|
121
|
+
* | `disabledOnStoreys` | `number[]` | Storeys on whose 2D plan the grid is hidden |
|
|
122
|
+
*/
|
|
123
|
+
export declare const PluginGridStoreyVisibility: z.ZodObject<{
|
|
124
|
+
activeStorey: z.ZodNumber;
|
|
125
|
+
disabledOnStoreys: z.ZodArray<z.ZodNumber>;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
export type PluginGridStoreyVisibility = z.infer<typeof PluginGridStoreyVisibility>;
|
|
128
|
+
/**
|
|
129
|
+
* Property names readable via {@linkcode PluginDesignQueryGridsApi.get}.
|
|
130
|
+
*
|
|
131
|
+
* | Value | Description |
|
|
132
|
+
* |---|---|
|
|
133
|
+
* | `"angle"` | World rotation about +Y, in **degrees** |
|
|
134
|
+
* | `"props"` | Group-level default line properties |
|
|
135
|
+
* | `"storeyVisibility"` | Active storey + storeys where the grid is hidden in 2D |
|
|
136
|
+
* | `"wings"` | Full wing/line structure with world-space curve handles |
|
|
137
|
+
* | `"bounds"` | World-space axis-aligned bounding box of the grid geometry |
|
|
138
|
+
*/
|
|
139
|
+
export declare const PluginGridGetProperty: z.ZodEnum<{
|
|
140
|
+
angle: "angle";
|
|
141
|
+
props: "props";
|
|
142
|
+
storeyVisibility: "storeyVisibility";
|
|
143
|
+
wings: "wings";
|
|
144
|
+
bounds: "bounds";
|
|
145
|
+
}>;
|
|
146
|
+
export type PluginGridGetProperty = z.infer<typeof PluginGridGetProperty>;
|
|
147
|
+
/**
|
|
148
|
+
* Arguments for {@linkcode PluginDesignQueryGridsApi.get}.
|
|
149
|
+
*
|
|
150
|
+
* | Property | Type | Description |
|
|
151
|
+
* |---|---|---|
|
|
152
|
+
* | `gridId` | `string` | The grid group ID to query |
|
|
153
|
+
* | `properties` | {@linkcode PluginGridGetProperty}`[]` | Properties to retrieve |
|
|
154
|
+
*/
|
|
155
|
+
export declare const PluginGridGetArgs: z.ZodObject<{
|
|
156
|
+
gridId: z.ZodString;
|
|
157
|
+
properties: z.ZodArray<z.ZodEnum<{
|
|
158
|
+
angle: "angle";
|
|
159
|
+
props: "props";
|
|
160
|
+
storeyVisibility: "storeyVisibility";
|
|
161
|
+
wings: "wings";
|
|
162
|
+
bounds: "bounds";
|
|
163
|
+
}>>;
|
|
164
|
+
}, z.core.$strip>;
|
|
165
|
+
export type PluginGridGetArgs = z.infer<typeof PluginGridGetArgs>;
|
|
166
|
+
/**
|
|
167
|
+
* Result of {@linkcode PluginDesignQueryGridsApi.get} — only the requested
|
|
168
|
+
* properties are present.
|
|
169
|
+
*/
|
|
170
|
+
export declare const PluginGridGetResult: z.ZodObject<{
|
|
171
|
+
angle: z.ZodOptional<z.ZodNumber>;
|
|
172
|
+
props: z.ZodOptional<z.ZodObject<{
|
|
173
|
+
style: z.ZodEnum<{
|
|
174
|
+
SOLID: "SOLID";
|
|
175
|
+
DASHED: "DASHED";
|
|
176
|
+
DOT_DASH: "DOT_DASH";
|
|
177
|
+
}>;
|
|
178
|
+
weight: z.ZodNumber;
|
|
179
|
+
color: z.ZodString;
|
|
180
|
+
showStart: z.ZodBoolean;
|
|
181
|
+
showEnd: z.ZodBoolean;
|
|
182
|
+
}, z.core.$strip>>;
|
|
183
|
+
storeyVisibility: z.ZodOptional<z.ZodObject<{
|
|
184
|
+
activeStorey: z.ZodNumber;
|
|
185
|
+
disabledOnStoreys: z.ZodArray<z.ZodNumber>;
|
|
186
|
+
}, z.core.$strip>>;
|
|
187
|
+
wings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
188
|
+
spacing: z.ZodNumber;
|
|
189
|
+
tagStart: z.ZodString;
|
|
190
|
+
span: z.ZodOptional<z.ZodObject<{
|
|
191
|
+
min: z.ZodNumber;
|
|
192
|
+
max: z.ZodNumber;
|
|
193
|
+
}, z.core.$strip>>;
|
|
194
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
195
|
+
curve: z.ZodUnion<readonly [z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"line">, string>>, z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"arc">, string>>]>;
|
|
196
|
+
tag: z.ZodString;
|
|
197
|
+
visible: z.ZodBoolean;
|
|
198
|
+
props: z.ZodObject<{
|
|
199
|
+
style: z.ZodEnum<{
|
|
200
|
+
SOLID: "SOLID";
|
|
201
|
+
DASHED: "DASHED";
|
|
202
|
+
DOT_DASH: "DOT_DASH";
|
|
203
|
+
}>;
|
|
204
|
+
weight: z.ZodNumber;
|
|
205
|
+
color: z.ZodString;
|
|
206
|
+
showStart: z.ZodBoolean;
|
|
207
|
+
showEnd: z.ZodBoolean;
|
|
208
|
+
}, z.core.$strip>;
|
|
209
|
+
overrides: z.ZodOptional<z.ZodObject<{
|
|
210
|
+
style: z.ZodOptional<z.ZodEnum<{
|
|
211
|
+
SOLID: "SOLID";
|
|
212
|
+
DASHED: "DASHED";
|
|
213
|
+
DOT_DASH: "DOT_DASH";
|
|
214
|
+
}>>;
|
|
215
|
+
weight: z.ZodOptional<z.ZodNumber>;
|
|
216
|
+
color: z.ZodOptional<z.ZodString>;
|
|
217
|
+
showStart: z.ZodOptional<z.ZodBoolean>;
|
|
218
|
+
showEnd: z.ZodOptional<z.ZodBoolean>;
|
|
219
|
+
}, z.core.$strip>>;
|
|
220
|
+
}, z.core.$strip>>;
|
|
221
|
+
}, z.core.$strip>>>;
|
|
222
|
+
bounds: z.ZodOptional<z.ZodObject<{
|
|
223
|
+
min: z.ZodObject<{
|
|
224
|
+
x: z.ZodNumber;
|
|
225
|
+
y: z.ZodNumber;
|
|
226
|
+
z: z.ZodNumber;
|
|
227
|
+
}, z.core.$strip>;
|
|
228
|
+
max: z.ZodObject<{
|
|
229
|
+
x: z.ZodNumber;
|
|
230
|
+
y: z.ZodNumber;
|
|
231
|
+
z: z.ZodNumber;
|
|
232
|
+
}, z.core.$strip>;
|
|
233
|
+
}, z.core.$strip>>;
|
|
234
|
+
}, z.core.$strip>;
|
|
235
|
+
export type PluginGridGetResult = z.infer<typeof PluginGridGetResult>;
|
|
236
|
+
/**
|
|
237
|
+
* `design.query.grids.*` — structural-grid-specific reads.
|
|
238
|
+
*
|
|
239
|
+
* A **grid** (grid group) is a structural/documentation grid: one or more
|
|
240
|
+
* *wings* (families of parallel lines with a shared local frame), each holding
|
|
241
|
+
* tagged grid *lines* (straight lines, or a lone arc). Enumerate grids with
|
|
242
|
+
* `design.query.listGrids`; read an individual grid's structure here.
|
|
243
|
+
*
|
|
244
|
+
* Lines have no stable identity of their own — mutating APIs address them
|
|
245
|
+
* positionally as `{ wing, line }` index pairs into the `wings` arrays
|
|
246
|
+
* returned by {@linkcode get}. Structural edits (adding/removing lines,
|
|
247
|
+
* count changes) re-index lines; re-query after mutating.
|
|
248
|
+
*
|
|
249
|
+
* Accessed via `snaptrude.design.query.grids`.
|
|
250
|
+
*/
|
|
251
|
+
export declare abstract class PluginDesignQueryGridsApi {
|
|
252
|
+
constructor();
|
|
253
|
+
/**
|
|
254
|
+
* Get properties of a grid by its ID.
|
|
255
|
+
*
|
|
256
|
+
* Only the properties listed in `properties` are returned — unlisted
|
|
257
|
+
* properties will be `undefined` in the result. `wings` is the heavy
|
|
258
|
+
* read (it registers a world-space {@linkcode CurveHandle} per line);
|
|
259
|
+
* request it only when the geometry is needed.
|
|
260
|
+
*
|
|
261
|
+
* Units: `angle` is in **degrees** (positive = CCW about +Y); `spacing`,
|
|
262
|
+
* `span`, `bounds`, and curve coordinates are in **Snaptrude units**,
|
|
263
|
+
* world space.
|
|
264
|
+
*
|
|
265
|
+
* @param gridId - The unique grid group ID
|
|
266
|
+
* @param properties - Array of property names to retrieve. See
|
|
267
|
+
* {@linkcode PluginGridGetProperty}.
|
|
268
|
+
* @returns A partial {@linkcode PluginGridGetResult} containing only the
|
|
269
|
+
* requested properties
|
|
270
|
+
* @throws If the grid does not exist
|
|
271
|
+
*
|
|
272
|
+
* @examplePrompt What is the spacing of this grid?
|
|
273
|
+
* @examplePrompt Read the grid line tags on this structural grid
|
|
274
|
+
* @examplePrompt Get the geometry of every line in this grid
|
|
275
|
+
* @examplePrompt Which storeys is this grid hidden on?
|
|
276
|
+
*
|
|
277
|
+
* # Example
|
|
278
|
+
* ```ts
|
|
279
|
+
* const [grid] = await snaptrude.design.query.listGrids()
|
|
280
|
+
* const { wings } = await snaptrude.design.query.grids.get(grid, ["wings"])
|
|
281
|
+
* // wings[0].lines[0].curve is an opaque CurveHandle in world space;
|
|
282
|
+
* // read its coordinates via `snaptrude.core.geom.curve`.
|
|
283
|
+
* ```
|
|
284
|
+
*/
|
|
285
|
+
abstract get(gridId: string, properties: z.infer<typeof PluginGridGetProperty>[]): PluginApiReturn<PluginGridGetResult>;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=grids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grids.d.ts","sourceRoot":"","sources":["../../../../src/api/design/query/grids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAQhD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAM9B,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAErE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;iBAM/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK/B,CAAA;AACF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAA;AACF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAMnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;iBAG5B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQpB,CAAA;AACZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAMrE;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,yBAAyB;;IAG7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;aACa,GAAG,CACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,EAAE,GAClD,eAAe,CAAC,mBAAmB,CAAC;CACxC"}
|