@snaptrude/plugin-core 0.8.0 → 0.9.1
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 +35 -1
- package/api-manifest.full.json +1350 -89
- package/api-manifest.json +1146 -48
- package/dist/api/analysis/daylight.d.ts +603 -0
- package/dist/api/analysis/daylight.d.ts.map +1 -0
- package/dist/api/analysis/heatmaps.d.ts +438 -14
- package/dist/api/analysis/heatmaps.d.ts.map +1 -1
- package/dist/api/analysis/index.d.ts +15 -0
- package/dist/api/analysis/index.d.ts.map +1 -1
- package/dist/api/analysis/solar.d.ts +249 -0
- package/dist/api/analysis/solar.d.ts.map +1 -0
- package/dist/api/analysis/weather.d.ts +193 -0
- package/dist/api/analysis/weather.d.ts.map +1 -0
- package/dist/api/core/camera/index.d.ts +37 -0
- package/dist/api/core/camera/index.d.ts.map +1 -1
- package/dist/api/core/geom/create/index.d.ts +318 -1
- package/dist/api/core/geom/create/index.d.ts.map +1 -1
- package/dist/api/core/index.d.ts +9 -0
- package/dist/api/core/index.d.ts.map +1 -1
- package/dist/api/core/io/export/index.d.ts +3 -1
- package/dist/api/core/io/export/index.d.ts.map +1 -1
- package/dist/api/core/io/import/index.d.ts +61 -0
- package/dist/api/core/io/import/index.d.ts.map +1 -1
- package/dist/api/core/io/terrain/index.d.ts +132 -0
- package/dist/api/core/io/terrain/index.d.ts.map +1 -1
- package/dist/api/core/mode/index.d.ts +99 -0
- package/dist/api/core/mode/index.d.ts.map +1 -0
- package/dist/api/core/storeys/index.d.ts +251 -0
- package/dist/api/core/storeys/index.d.ts.map +1 -0
- package/dist/api/core/tags.d.ts +24 -0
- package/dist/api/core/tags.d.ts.map +1 -1
- package/dist/api/core/zoom/index.d.ts +4 -0
- package/dist/api/core/zoom/index.d.ts.map +1 -1
- package/dist/api/design/create/index.d.ts +115 -4
- package/dist/api/design/create/index.d.ts.map +1 -1
- package/dist/api/design/delete/index.d.ts +3 -0
- package/dist/api/design/delete/index.d.ts.map +1 -1
- package/dist/api/design/query/geometry/index.d.ts +112 -0
- package/dist/api/design/query/geometry/index.d.ts.map +1 -1
- package/dist/api/design/query/index.d.ts +4 -0
- package/dist/api/design/query/index.d.ts.map +1 -1
- package/dist/api/design/query/referenceLines.d.ts +45 -0
- package/dist/api/design/query/referenceLines.d.ts.map +1 -0
- package/dist/api/design/query/spaces.d.ts +173 -0
- package/dist/api/design/query/spaces.d.ts.map +1 -1
- package/dist/api/design/transform/index.d.ts +12 -0
- package/dist/api/design/transform/index.d.ts.map +1 -1
- package/dist/api/design/update/index.d.ts +51 -1
- package/dist/api/design/update/index.d.ts.map +1 -1
- package/dist/api/entity/buildableEnvelope.d.ts +4 -0
- package/dist/api/entity/buildableEnvelope.d.ts.map +1 -1
- package/dist/api/entity/referenceLine.d.ts +8 -0
- package/dist/api/entity/referenceLine.d.ts.map +1 -1
- package/dist/api/entity/story.d.ts +20 -0
- package/dist/api/entity/story.d.ts.map +1 -1
- package/dist/api/index.d.ts +5 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/presentation/annotate.d.ts +23 -4
- package/dist/api/presentation/annotate.d.ts.map +1 -1
- package/dist/api/presentation/diagrams.d.ts +64 -2
- package/dist/api/presentation/diagrams.d.ts.map +1 -1
- package/dist/api/presentation/export.d.ts +4 -0
- package/dist/api/presentation/export.d.ts.map +1 -1
- package/dist/api/presentation/import.d.ts +6 -0
- package/dist/api/presentation/import.d.ts.map +1 -1
- package/dist/api/presentation/index.d.ts +20 -1
- package/dist/api/presentation/index.d.ts.map +1 -1
- package/dist/api/presentation/placedViews.d.ts +1139 -0
- package/dist/api/presentation/placedViews.d.ts.map +1 -0
- package/dist/api/presentation/shapes.d.ts +481 -0
- package/dist/api/presentation/shapes.d.ts.map +1 -0
- package/dist/api/presentation/sheets.d.ts +42 -0
- package/dist/api/presentation/sheets.d.ts.map +1 -1
- package/dist/api/presentation/slideshow.d.ts +125 -0
- package/dist/api/presentation/slideshow.d.ts.map +1 -0
- package/dist/api/presentation/tables.d.ts +81 -0
- package/dist/api/presentation/tables.d.ts.map +1 -0
- package/dist/api/program/site.d.ts +260 -2
- package/dist/api/program/site.d.ts.map +1 -1
- package/dist/api/program/spreadsheet.d.ts +260 -28
- package/dist/api/program/spreadsheet.d.ts.map +1 -1
- package/dist/api/workspace/index.d.ts +505 -0
- package/dist/api/workspace/index.d.ts.map +1 -0
- package/dist/index.cjs +2904 -1761
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2762 -1761
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/scripts/generate-manifest.mjs +45 -0
- package/src/api/analysis/daylight.ts +470 -0
- package/src/api/analysis/heatmaps.ts +444 -17
- package/src/api/analysis/index.ts +15 -0
- package/src/api/analysis/solar.ts +237 -0
- package/src/api/analysis/weather.ts +179 -0
- package/src/api/core/camera/index.ts +39 -0
- package/src/api/core/geom/create/index.ts +344 -1
- package/src/api/core/index.ts +9 -0
- package/src/api/core/io/export/index.ts +3 -1
- package/src/api/core/io/import/index.ts +64 -0
- package/src/api/core/io/terrain/index.ts +143 -0
- package/src/api/core/mode/index.ts +96 -0
- package/src/api/core/storeys/index.ts +279 -0
- package/src/api/core/tags.ts +27 -0
- package/src/api/core/zoom/index.ts +4 -0
- package/src/api/design/create/index.ts +138 -1
- package/src/api/design/delete/index.ts +3 -0
- package/src/api/design/query/geometry/index.ts +125 -3
- package/src/api/design/query/index.ts +4 -0
- package/src/api/design/query/referenceLines.ts +52 -0
- package/src/api/design/query/spaces.ts +143 -0
- package/src/api/design/transform/index.ts +12 -0
- package/src/api/design/update/index.ts +66 -1
- package/src/api/entity/buildableEnvelope.ts +4 -0
- package/src/api/entity/referenceLine.ts +8 -0
- package/src/api/entity/story.ts +20 -0
- package/src/api/index.ts +5 -0
- package/src/api/presentation/annotate.ts +27 -2
- package/src/api/presentation/diagrams.ts +67 -2
- package/src/api/presentation/export.ts +4 -0
- package/src/api/presentation/import.ts +6 -0
- package/src/api/presentation/index.ts +20 -1
- package/src/api/presentation/placedViews.ts +1120 -0
- package/src/api/presentation/shapes.ts +274 -0
- package/src/api/presentation/sheets.ts +54 -0
- package/src/api/presentation/slideshow.ts +134 -0
- package/src/api/presentation/tables.ts +84 -0
- package/src/api/program/site.ts +205 -2
- package/src/api/program/spreadsheet.ts +251 -6
- package/src/api/workspace/index.ts +563 -0
|
@@ -158,6 +158,68 @@ export declare abstract class PluginCoreIoTerrainApi {
|
|
|
158
158
|
* @examplePrompt Remove the satellite drape
|
|
159
159
|
*/
|
|
160
160
|
abstract disableSatellite(): PluginApiReturn<void>;
|
|
161
|
+
/**
|
|
162
|
+
* Replace the terrain surface with a caller-supplied triangle mesh. Undoable
|
|
163
|
+
* (one step), and the replacement persists with the project.
|
|
164
|
+
*
|
|
165
|
+
* `positions` is a flat `[x, y, z, …]` array in **world space** — the same
|
|
166
|
+
* frame `design.query.geometry.getTriangulatedMeshes` reads — so a
|
|
167
|
+
* read-modify-write round trip needs no conversion. `indices` is a flat
|
|
168
|
+
* triangle list into `positions` (three indices per triangle). A
|
|
169
|
+
* predominantly down-facing surface is flipped automatically (reported in
|
|
170
|
+
* `warnings`), and zero-area sliver triangles are tolerated and counted.
|
|
171
|
+
*
|
|
172
|
+
* **What survives the replacement:** the datum, geolocation, opacity, lock
|
|
173
|
+
* state, and the elevation/satellite toggles. The map/satellite texture is
|
|
174
|
+
* re-projected onto the new surface from above (best effort — alignment is
|
|
175
|
+
* approximate, reported in `warnings`). **What resets:** cut/fill history
|
|
176
|
+
* and the earthwork report — the replaced surface starts with a clean
|
|
177
|
+
* grading slate.
|
|
178
|
+
*
|
|
179
|
+
* Limits: at most 500,000 triangles and 500,000 vertices; every coordinate
|
|
180
|
+
* must be finite and within the scene bound.
|
|
181
|
+
*
|
|
182
|
+
* @param positions - Flat `[x, y, z, …]` world-space vertex positions.
|
|
183
|
+
* @param indices - Flat triangle list into `positions`.
|
|
184
|
+
* @param units - `"world"` (default): coordinates are raw internal units;
|
|
185
|
+
* `"meters"`: coordinates are metres and are converted on the way in.
|
|
186
|
+
* @param options - Optional {@linkcode PluginTerrainReplaceMeshOptions}:
|
|
187
|
+
* optimistic-concurrency expectations (`expectedTerrain`,
|
|
188
|
+
* `expectedModelRevision`), `preserve` opt-outs, idempotent replay via
|
|
189
|
+
* `clientMutationId`, and the `coordinateSpace`/`baseline` declarations.
|
|
190
|
+
* @throws if writes are disabled, there is no terrain (import one first),
|
|
191
|
+
* the terrain is **locked**, the mesh fails validation (non-finite or
|
|
192
|
+
* out-of-bound coordinates, bad indices, degenerate-only geometry, over
|
|
193
|
+
* the size caps), `expectedTerrain` does not match the live terrain, or
|
|
194
|
+
* `expectedModelRevision` is stale.
|
|
195
|
+
*
|
|
196
|
+
* @examplePrompt Replace the terrain with this surveyed mesh
|
|
197
|
+
* @examplePrompt Flatten a building pad into the site surface
|
|
198
|
+
* @examplePrompt Load a custom DEM surface onto the terrain
|
|
199
|
+
* @examplePrompt Regrade the terrain from these points
|
|
200
|
+
*
|
|
201
|
+
* # Example
|
|
202
|
+
* ```ts
|
|
203
|
+
* // Projects with no terrain yet: import first, then replace.
|
|
204
|
+
* if (!(await snaptrude.core.io.terrain.exists())) {
|
|
205
|
+
* await snaptrude.core.io.import.terrain(40.7128, -74.006, 300, 300)
|
|
206
|
+
* }
|
|
207
|
+
* const result = await snaptrude.core.io.terrain.replaceMesh(
|
|
208
|
+
* positions, // [x0, y0, z0, x1, y1, z1, …] — world space
|
|
209
|
+
* indices, // [a0, b0, c0, a1, b1, c1, …]
|
|
210
|
+
* "meters",
|
|
211
|
+
* {
|
|
212
|
+
* coordinateSpace: "world",
|
|
213
|
+
* expectedTerrain: await snaptrude.core.io.terrain.get(),
|
|
214
|
+
* baseline: "make-replacement-original",
|
|
215
|
+
* preserve: { datum: true, geolocation: true, satellite: true, material: true },
|
|
216
|
+
* clientMutationId: "survey-2026-08-05-r1",
|
|
217
|
+
* },
|
|
218
|
+
* )
|
|
219
|
+
* // result.modelRevision — pass back as expectedModelRevision on the next call
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
222
|
+
abstract replaceMesh(positions: number[], indices: number[], units?: "world" | "meters", options?: PluginTerrainReplaceMeshOptions): PluginApiReturn<PluginTerrainReplaceMeshResult>;
|
|
161
223
|
/** Read the terrain opacity, `0`..`1`, or `null` if no terrain. */
|
|
162
224
|
abstract getOpacity(): PluginApiReturn<number | null>;
|
|
163
225
|
/**
|
|
@@ -193,6 +255,76 @@ export declare const TerrainReport: z.ZodObject<{
|
|
|
193
255
|
netVolume: z.ZodNumber;
|
|
194
256
|
}, z.core.$strip>;
|
|
195
257
|
export type TerrainReport = z.infer<typeof TerrainReport>;
|
|
258
|
+
/**
|
|
259
|
+
* Result of {@link PluginCoreIoTerrainApi.replaceMesh}.
|
|
260
|
+
*
|
|
261
|
+
* | Property | Type | Description |
|
|
262
|
+
* |---|---|---|
|
|
263
|
+
* | `terrain` | `TerrainHandle` | The terrain (unchanged singleton handle) |
|
|
264
|
+
* | `modelRevision` | `number` | Session-scoped terrain-mesh revision after this replace — pass back as `expectedModelRevision` for compare-and-swap semantics |
|
|
265
|
+
* | `vertexCount` | `number` | Vertices in the applied mesh |
|
|
266
|
+
* | `triangleCount` | `number` | Triangles in the applied mesh |
|
|
267
|
+
* | `warnings` | `string[]` | Non-fatal notes: winding flipped, sliver triangles, approximate texture re-projection |
|
|
268
|
+
*/
|
|
269
|
+
export type PluginTerrainReplaceMeshResult = {
|
|
270
|
+
terrain: TerrainHandle;
|
|
271
|
+
modelRevision: number;
|
|
272
|
+
vertexCount: number;
|
|
273
|
+
triangleCount: number;
|
|
274
|
+
warnings: string[];
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Options for {@link PluginCoreIoTerrainApi.replaceMesh}.
|
|
278
|
+
*
|
|
279
|
+
* | Property | Type | Description |
|
|
280
|
+
* |---|---|---|
|
|
281
|
+
* | `coordinateSpace` | `"world"`? | Declares the input frame. `world` is the only supported space (the same frame `getTriangulatedMeshes` reads) |
|
|
282
|
+
* | `expectedTerrain` | `TerrainHandle`? | Optimistic check: throws `HANDLE_INVALID` if the live terrain is not this handle (session-scoped — handles do not survive reloads) |
|
|
283
|
+
* | `expectedModelRevision` | `number`? | Optimistic check against the session terrain-mesh revision (starts at `0`, increments per successful `replaceMesh`; the result returns the new value). Stale → `PRECONDITION_FAILED` with the current revision in `details` |
|
|
284
|
+
* | `baseline` | `"make-replacement-original"`? | Declares replacement semantics. This is the only (and default) behavior: the replacement becomes the persisted surface; the app's terrain Reset restores the original map heightmap as the escape hatch |
|
|
285
|
+
* | `preserve` | object? | Opt-outs, all defaulting `true`. `datum: false` resets the terrain transform (authored coordinates become the local frame). `satellite: false` switches the drape off after the replace. `material: false` skips texture re-projection — the whole surface takes the ground material. `geolocation: false` is rejected (`VALIDATION`): geolocation is always preserved in this version |
|
|
286
|
+
* | `clientMutationId` | `string`? | Session-scoped idempotency: a repeated call with the same id returns the original result without re-executing |
|
|
287
|
+
*/
|
|
288
|
+
export declare const PluginTerrainReplaceMeshOptions: z.ZodObject<{
|
|
289
|
+
coordinateSpace: z.ZodOptional<z.ZodLiteral<"world">>;
|
|
290
|
+
expectedTerrain: z.ZodOptional<z.ZodString>;
|
|
291
|
+
expectedModelRevision: z.ZodOptional<z.ZodNumber>;
|
|
292
|
+
baseline: z.ZodOptional<z.ZodLiteral<"make-replacement-original">>;
|
|
293
|
+
preserve: z.ZodOptional<z.ZodObject<{
|
|
294
|
+
datum: z.ZodOptional<z.ZodBoolean>;
|
|
295
|
+
geolocation: z.ZodOptional<z.ZodBoolean>;
|
|
296
|
+
satellite: z.ZodOptional<z.ZodBoolean>;
|
|
297
|
+
material: z.ZodOptional<z.ZodBoolean>;
|
|
298
|
+
}, z.core.$strict>>;
|
|
299
|
+
clientMutationId: z.ZodOptional<z.ZodString>;
|
|
300
|
+
}, z.core.$strict>;
|
|
301
|
+
export type PluginTerrainReplaceMeshOptions = z.infer<typeof PluginTerrainReplaceMeshOptions>;
|
|
302
|
+
/**
|
|
303
|
+
* Arguments for {@link PluginCoreIoTerrainApi.replaceMesh}. The caps are the
|
|
304
|
+
* plugin surface's explicit payload ceiling: 500k vertices / 500k triangles.
|
|
305
|
+
*/
|
|
306
|
+
export declare const PluginTerrainReplaceMeshArgs: z.ZodObject<{
|
|
307
|
+
positions: z.ZodArray<z.ZodNumber>;
|
|
308
|
+
indices: z.ZodArray<z.ZodNumber>;
|
|
309
|
+
units: z.ZodOptional<z.ZodEnum<{
|
|
310
|
+
meters: "meters";
|
|
311
|
+
world: "world";
|
|
312
|
+
}>>;
|
|
313
|
+
options: z.ZodOptional<z.ZodObject<{
|
|
314
|
+
coordinateSpace: z.ZodOptional<z.ZodLiteral<"world">>;
|
|
315
|
+
expectedTerrain: z.ZodOptional<z.ZodString>;
|
|
316
|
+
expectedModelRevision: z.ZodOptional<z.ZodNumber>;
|
|
317
|
+
baseline: z.ZodOptional<z.ZodLiteral<"make-replacement-original">>;
|
|
318
|
+
preserve: z.ZodOptional<z.ZodObject<{
|
|
319
|
+
datum: z.ZodOptional<z.ZodBoolean>;
|
|
320
|
+
geolocation: z.ZodOptional<z.ZodBoolean>;
|
|
321
|
+
satellite: z.ZodOptional<z.ZodBoolean>;
|
|
322
|
+
material: z.ZodOptional<z.ZodBoolean>;
|
|
323
|
+
}, z.core.$strict>>;
|
|
324
|
+
clientMutationId: z.ZodOptional<z.ZodString>;
|
|
325
|
+
}, z.core.$strict>>;
|
|
326
|
+
}, z.core.$strip>;
|
|
327
|
+
export type PluginTerrainReplaceMeshArgs = z.infer<typeof PluginTerrainReplaceMeshArgs>;
|
|
196
328
|
/** Arguments for {@link PluginCoreIoTerrainApi.setDatum}. */
|
|
197
329
|
export declare const PluginTerrainSetDatumArgs: z.ZodObject<{
|
|
198
330
|
offset: z.ZodNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/terrain/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;OAcG;aACa,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC;IAElD;;;;;;;;;OASG;aACa,GAAG,IAAI,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;IAE5D;;;;;;;;;;;OAWG;aACa,QAAQ,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;IAE/D;;;;;;;;;;OAUG;aACa,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC;IAE/C;;;;;;;;;;;;;;OAcG;aACa,SAAS,IAAI,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC;IAElE,0EAA0E;aAC1D,kBAAkB,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;IACrE;;;;;;;;OAQG;aACa,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IACxD;;;;;;;;OAQG;aACa,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzD,gFAAgF;aAChE,kBAAkB,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;IACrE;;;;;;;;OAQG;aACa,eAAe,IAAI,eAAe,CAAC,IAAI,CAAC;IACxD;;;;;;;;OAQG;aACa,gBAAgB,IAAI,eAAe,CAAC,IAAI,CAAC;IAEzD,mEAAmE;aACnD,UAAU,IAAI,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;IAC5D;;;;;;;;;;;;;;OAcG;aACa,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;CACnE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa;;;;iBAIxB,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB;;iBAA4C,CAAA;AAClF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAEjF,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B;;iBAAkD,CAAA;AAC1F,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/core/io/terrain/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../../types";
|
|
3
|
+
/**
|
|
4
|
+
* The editor's top-bar application modes — the tabs a user switches between
|
|
5
|
+
* while working on a project.
|
|
6
|
+
*/
|
|
7
|
+
export declare const PluginAppMode: z.ZodEnum<{
|
|
8
|
+
design: "design";
|
|
9
|
+
bim: "bim";
|
|
10
|
+
present: "present";
|
|
11
|
+
program: "program";
|
|
12
|
+
}>;
|
|
13
|
+
export type PluginAppMode = z.infer<typeof PluginAppMode>;
|
|
14
|
+
export declare const PluginCoreModeSetArgs: z.ZodObject<{
|
|
15
|
+
mode: z.ZodEnum<{
|
|
16
|
+
design: "design";
|
|
17
|
+
bim: "bim";
|
|
18
|
+
present: "present";
|
|
19
|
+
program: "program";
|
|
20
|
+
}>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
export type PluginCoreModeSetArgs = z.infer<typeof PluginCoreModeSetArgs>;
|
|
23
|
+
export interface PluginCoreModeListResult {
|
|
24
|
+
modes: PluginAppMode[];
|
|
25
|
+
}
|
|
26
|
+
export interface PluginCoreModeSetResult {
|
|
27
|
+
mode: PluginAppMode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Application-mode control — read and switch the editor's top-bar mode
|
|
31
|
+
* (Design, BIM, Present, Program), the same tabs a user clicks in the
|
|
32
|
+
* top menu bar. Accessed via `snaptrude.core.mode`.
|
|
33
|
+
*
|
|
34
|
+
* Not to be confused with the viewport's 2D/3D camera mode
|
|
35
|
+
* (`core.camera.setMode`) or saved presentation views (`presentation.views`).
|
|
36
|
+
*
|
|
37
|
+
* `set` covers `design`, `bim`, and `present` — in-page switches.
|
|
38
|
+
* `program` opens in its own browser tab in the product, which a plugin worker
|
|
39
|
+
* cannot do, so `set("program")` fails with `PRECONDITION_FAILED`; `get()`
|
|
40
|
+
* still reports `"program"` for code running in the Program tab.
|
|
41
|
+
*/
|
|
42
|
+
export declare abstract class PluginCoreModeApi {
|
|
43
|
+
constructor();
|
|
44
|
+
/**
|
|
45
|
+
* List every application mode the editor has.
|
|
46
|
+
*
|
|
47
|
+
* @returns The full set of mode tokens accepted by {@linkcode get} / {@linkcode set}.
|
|
48
|
+
*
|
|
49
|
+
* @examplePrompt What modes does Snaptrude have?
|
|
50
|
+
* @examplePrompt List the editor modes I can switch to
|
|
51
|
+
*
|
|
52
|
+
* # Example
|
|
53
|
+
* ```ts
|
|
54
|
+
* const { modes } = await snaptrude.core.mode.list()
|
|
55
|
+
* // ["design", "bim", "present", "program"]
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
abstract list(): PluginApiReturn<PluginCoreModeListResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Get the currently active application mode.
|
|
61
|
+
*
|
|
62
|
+
* @returns The active mode token (e.g. `"design"`).
|
|
63
|
+
*
|
|
64
|
+
* @examplePrompt Which mode am I in right now?
|
|
65
|
+
* @examplePrompt Am I in present mode?
|
|
66
|
+
* @examplePrompt Check whether the editor is in BIM mode
|
|
67
|
+
*
|
|
68
|
+
* # Example
|
|
69
|
+
* ```ts
|
|
70
|
+
* const mode = await snaptrude.core.mode.get()
|
|
71
|
+
* if (mode !== "present") await snaptrude.core.mode.set("present")
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
abstract get(): PluginApiReturn<PluginAppMode>;
|
|
75
|
+
/**
|
|
76
|
+
* Switch the editor to another application mode — the same action as
|
|
77
|
+
* clicking that tab in the top menu bar.
|
|
78
|
+
*
|
|
79
|
+
* Supported: `"design"`, `"bim"`, `"present"`. Switching to
|
|
80
|
+
* `"program"` is rejected with `PRECONDITION_FAILED` (the Program surface
|
|
81
|
+
* opens in its own browser tab in the product; a plugin cannot open one).
|
|
82
|
+
*
|
|
83
|
+
* @param mode - Target mode token from {@linkcode PluginAppMode}
|
|
84
|
+
* @returns The committed `{ mode }` after the switch.
|
|
85
|
+
*
|
|
86
|
+
* @examplePrompt Switch to present mode
|
|
87
|
+
* @examplePrompt Open BIM mode
|
|
88
|
+
* @examplePrompt Go back to design mode
|
|
89
|
+
*
|
|
90
|
+
* # Example
|
|
91
|
+
* ```ts
|
|
92
|
+
* await snaptrude.core.mode.set("present")
|
|
93
|
+
* // ... presentation work ...
|
|
94
|
+
* await snaptrude.core.mode.set("design")
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
abstract set(mode: PluginAppMode): PluginApiReturn<PluginCoreModeSetResult>;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/mode/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;EAAkD,CAAA;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA;AAEzD,eAAO,MAAM,qBAAqB;;;;;;;iBAEhC,CAAA;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,aAAa,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAA;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,8BAAsB,iBAAiB;;IAGrC;;;;;;;;;;;;;OAaG;aACa,IAAI,IAAI,eAAe,CAAC,wBAAwB,CAAC;IAEjE;;;;;;;;;;;;;;OAcG;aACa,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC;IAErD;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,GAAG,CAAC,IAAI,EAAE,aAAa,GAAG,eAAe,CAAC,uBAAuB,CAAC;CACnF"}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import * as z from "zod";
|
|
2
|
+
import { PluginApiReturn } from "../../../types";
|
|
3
|
+
import { ComponentHandle } from "../../../handles";
|
|
4
|
+
import { PluginStoryGetProperty, PluginStoryGetResult, PluginStoryCreateResult, PluginStoryUpdateResult, PluginStorySetActiveResult, PluginStoryDeleteResult, PluginStoryDuplicateResult } from "../../entity/story";
|
|
5
|
+
/**
|
|
6
|
+
* Storey (floor) management.
|
|
7
|
+
*
|
|
8
|
+
* A storey represents a building floor in the Snaptrude project. Storeys are
|
|
9
|
+
* identified by their integer **storey value** (e.g. `1` for the ground floor,
|
|
10
|
+
* `2` for the first floor, `-1` for a basement).
|
|
11
|
+
*
|
|
12
|
+
* This is the canonical home for storey operations; it shares its implementation
|
|
13
|
+
* and schemas with the deprecated `entity.story` surface. All methods are **host
|
|
14
|
+
* API calls** that return Promises and support undo/redo via Snaptrude's command
|
|
15
|
+
* system (except {@linkcode PluginCoreStoreysApi.setActive}, a view change).
|
|
16
|
+
*
|
|
17
|
+
* Accessed via `snaptrude.core.storeys`.
|
|
18
|
+
*/
|
|
19
|
+
export declare abstract class PluginCoreStoreysApi {
|
|
20
|
+
constructor();
|
|
21
|
+
/**
|
|
22
|
+
* Get properties of a storey by its storey number.
|
|
23
|
+
*
|
|
24
|
+
* Only the properties listed in `properties` are returned — unlisted
|
|
25
|
+
* properties will be `undefined` in the result.
|
|
26
|
+
*
|
|
27
|
+
* @param storyValue - Integer storey number
|
|
28
|
+
* (e.g. `1` for ground floor, `2` for first floor, `-1` for basement)
|
|
29
|
+
* @param properties - Array of property names to retrieve. See
|
|
30
|
+
* {@linkcode PluginStoryGetProperty} for available values.
|
|
31
|
+
* @returns A partial {@linkcode PluginStoryGetResult} containing only the requested properties
|
|
32
|
+
* @throws If the storey with the given value does not exist
|
|
33
|
+
*
|
|
34
|
+
* @examplePrompt What is the height of the ground floor?
|
|
35
|
+
* @examplePrompt How many rooms are on the second storey?
|
|
36
|
+
* @examplePrompt Get the total floor area of level 3
|
|
37
|
+
* @examplePrompt Is the first floor hidden in the viewport?
|
|
38
|
+
* @examplePrompt Show me the name and height of storey 2
|
|
39
|
+
*
|
|
40
|
+
* # Example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const info = await snaptrude.core.storeys.get(1, ["height", "name", "spacesCount"])
|
|
43
|
+
* console.log(info.name, info.height, info.spacesCount)
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
abstract get(storyValue: number, properties: PluginStoryGetProperty[]): PluginApiReturn<PluginStoryGetResult>;
|
|
47
|
+
/**
|
|
48
|
+
* List all storeys in the current project.
|
|
49
|
+
*
|
|
50
|
+
* Returns basic identification data for every storey. Storeys are sorted
|
|
51
|
+
* from **top to bottom** (highest storey value first).
|
|
52
|
+
*
|
|
53
|
+
* @returns A {@linkcode PluginCoreStoreysListResult} with a `storeys` array,
|
|
54
|
+
* each entry containing `value`, `id`, and `name`
|
|
55
|
+
*
|
|
56
|
+
* @examplePrompt How many floors does this building have?
|
|
57
|
+
* @examplePrompt List all the storeys in the project
|
|
58
|
+
* @examplePrompt Show me every level with its name
|
|
59
|
+
* @examplePrompt Which storeys exist in this model?
|
|
60
|
+
*
|
|
61
|
+
* # Example
|
|
62
|
+
* ```ts
|
|
63
|
+
* const { storeys } = await snaptrude.core.storeys.list()
|
|
64
|
+
* for (const s of storeys) {
|
|
65
|
+
* console.log(`Storey ${s.value}: ${s.name} (id: ${s.id})`)
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
abstract list(): PluginApiReturn<PluginCoreStoreysListResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Create a new storey (floor) in the project.
|
|
72
|
+
*
|
|
73
|
+
* The new storey is inserted at the position specified by `storyValue`. This
|
|
74
|
+
* operation is undoable.
|
|
75
|
+
*
|
|
76
|
+
* @param storyValue - Integer storey number
|
|
77
|
+
* to create (e.g. `3` to add a third floor)
|
|
78
|
+
* @param height - Optional height in Babylon
|
|
79
|
+
* units. If omitted, the project's default storey height is used.
|
|
80
|
+
* @returns A {@linkcode PluginStoryCreateResult} with `storyId` and `storyValue`
|
|
81
|
+
* @throws If a storey with the given value already exists or creation fails
|
|
82
|
+
*
|
|
83
|
+
* @examplePrompt Add a third floor to the building
|
|
84
|
+
* @examplePrompt Create a new storey above the second floor
|
|
85
|
+
* @examplePrompt Add a basement level to this project
|
|
86
|
+
* @examplePrompt Insert a new level with a custom floor height
|
|
87
|
+
*
|
|
88
|
+
* # Example
|
|
89
|
+
* ```ts
|
|
90
|
+
* // Create a new third floor with custom height
|
|
91
|
+
* const { storyId } = await snaptrude.core.storeys.create(3, 4.5)
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
abstract create(storyValue: number, height?: number): PluginApiReturn<PluginStoryCreateResult>;
|
|
95
|
+
/**
|
|
96
|
+
* Update a storey's floor-to-floor `height` and/or `name`.
|
|
97
|
+
*
|
|
98
|
+
* **Height** is the same operation as editing the height in the Storeys panel:
|
|
99
|
+
* the walls, columns, and masses on the storey are **stretched** to the new
|
|
100
|
+
* height, every storey **above shifts up/down** by the delta so the stack stays
|
|
101
|
+
* contiguous, and coupled elements (staircases, parametric curtain walls,
|
|
102
|
+
* furniture offsets) are re-fitted. The whole height cascade is committed as
|
|
103
|
+
* **one undo step**. Height-locked elements are left untouched.
|
|
104
|
+
*
|
|
105
|
+
* **Name** is the same as renaming the storey in the Storeys panel: it is
|
|
106
|
+
* persisted immediately but, mirroring the panel, is **not** part of the height
|
|
107
|
+
* undo step.
|
|
108
|
+
*
|
|
109
|
+
* At least one of `height` or `options.name` must be supplied. Omitting the
|
|
110
|
+
* `height` argument (e.g. for a rename-only update) leaves the height untouched.
|
|
111
|
+
*
|
|
112
|
+
* @param storyValue - Integer storey number identifying the storey to update
|
|
113
|
+
* @param height - New floor-to-floor height in
|
|
114
|
+
* Babylon units. Omit to leave the height unchanged.
|
|
115
|
+
* @param options - `name` (new display name for the storey)
|
|
116
|
+
* @returns A {@linkcode PluginStoryUpdateResult} with the storey's
|
|
117
|
+
* `storyValue`, `height`, and `name` after the update
|
|
118
|
+
* @throws `PRECONDITION_FAILED` if no storey has the given value;
|
|
119
|
+
* `VALIDATION` if neither `height` nor `options.name` is supplied;
|
|
120
|
+
* `STORY_HEIGHT_REJECTED` if the engine rejects the height;
|
|
121
|
+
* `STORY_UPDATE_FAILED` if the storey cannot be re-read after the update
|
|
122
|
+
*
|
|
123
|
+
* @examplePrompt Change the ground floor height to 3.5 metres
|
|
124
|
+
* @examplePrompt Make the second storey taller
|
|
125
|
+
* @examplePrompt Rename the ground floor to "Lobby"
|
|
126
|
+
* @examplePrompt Set the floor-to-floor height of level 1
|
|
127
|
+
*
|
|
128
|
+
* # Example
|
|
129
|
+
* ```ts
|
|
130
|
+
* // Set ground floor height to 5 Babylon units — walls stretch and the
|
|
131
|
+
* // floors above move up to match, all in a single undo step.
|
|
132
|
+
* const result = await snaptrude.core.storeys.update(1, 5)
|
|
133
|
+
* // Rename only, leaving the height untouched.
|
|
134
|
+
* await snaptrude.core.storeys.update(1, undefined, { name: "Lobby" })
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
abstract update(storyValue: number, height?: number, options?: {
|
|
138
|
+
name?: string;
|
|
139
|
+
}): PluginApiReturn<PluginStoryUpdateResult>;
|
|
140
|
+
/**
|
|
141
|
+
* Make a storey the active storey — the same as clicking it in the storey/layer
|
|
142
|
+
* panel. Subsequent draws and creates target this storey, and in 2D the
|
|
143
|
+
* viewport switches to it. This is a view/navigation change: it is **not**
|
|
144
|
+
* undoable and commits nothing to the model.
|
|
145
|
+
*
|
|
146
|
+
* @param storyValue - Integer storey number to activate
|
|
147
|
+
* @returns A {@linkcode PluginStorySetActiveResult} echoing the now-active `storyValue`
|
|
148
|
+
* @throws `PRECONDITION_FAILED` if no storey has the given value
|
|
149
|
+
*
|
|
150
|
+
* @examplePrompt Switch to the second floor
|
|
151
|
+
* @examplePrompt Make the ground storey active
|
|
152
|
+
* @examplePrompt Go to the basement level
|
|
153
|
+
* @examplePrompt Set level 3 as the current storey
|
|
154
|
+
*
|
|
155
|
+
* # Example
|
|
156
|
+
* ```ts
|
|
157
|
+
* // Activate storey 2, then draw a wall — it lands on storey 2.
|
|
158
|
+
* await snaptrude.core.storeys.setActive(2)
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
abstract setActive(storyValue: number): PluginApiReturn<PluginStorySetActiveResult>;
|
|
162
|
+
/**
|
|
163
|
+
* Delete a storey and everything on it — the same as removing it from the
|
|
164
|
+
* storey panel. Every element placed on the storey (walls, floors, masses, …)
|
|
165
|
+
* is deleted with it, the remaining storeys are re-stacked, and the active
|
|
166
|
+
* storey falls back to an adjacent one. Committed as a single undo step.
|
|
167
|
+
*
|
|
168
|
+
* @param storyValue - Integer storey number to delete
|
|
169
|
+
* @returns A {@linkcode PluginStoryDeleteResult} with the deleted `storyValue`
|
|
170
|
+
* and the `newActiveStory` the editor fell back to
|
|
171
|
+
* @throws `PRECONDITION_FAILED` if no storey has the given value; or if plugin
|
|
172
|
+
* writes are disabled
|
|
173
|
+
*
|
|
174
|
+
* @examplePrompt Delete the top floor
|
|
175
|
+
* @examplePrompt Remove the basement level
|
|
176
|
+
* @examplePrompt Get rid of storey 3
|
|
177
|
+
* @examplePrompt Delete the second floor and everything on it
|
|
178
|
+
*
|
|
179
|
+
* # Example
|
|
180
|
+
* ```ts
|
|
181
|
+
* const { newActiveStory } = await snaptrude.core.storeys.delete(3)
|
|
182
|
+
* console.log(`Deleted storey 3; now on storey ${newActiveStory}`)
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
abstract delete(storyValue: number): PluginApiReturn<PluginStoryDeleteResult>;
|
|
186
|
+
/**
|
|
187
|
+
* Copy a storey into the adjacent level, up or down.
|
|
188
|
+
*
|
|
189
|
+
* By default the **whole storey** is copied: every eligible element on the
|
|
190
|
+
* active storey (walls, floors, roofs, masses, columns, beams, staircases,
|
|
191
|
+
* ceilings, parametric curtain walls, and furniture) is copied into the storey
|
|
192
|
+
* one level `"up"` or `"down"`. Pass `options.components` to copy only a subset
|
|
193
|
+
* instead. The target storey is **created automatically** if it does not yet
|
|
194
|
+
* exist, inheriting the source storey's height.
|
|
195
|
+
*
|
|
196
|
+
* Copies are **instanced** by default (`unique: false`) — they share geometry
|
|
197
|
+
* with the source, so later edits propagate. Set `unique: true` for independent
|
|
198
|
+
* geometry. Doors and windows are never copied on their own; they ride along
|
|
199
|
+
* with their host wall. Locked, throw-away, and unsupported elements are skipped
|
|
200
|
+
* and counted in `skipped`. The whole operation is a single undo step.
|
|
201
|
+
*
|
|
202
|
+
* @param direction - `"up"` to copy into the storey above, `"down"` for below
|
|
203
|
+
* @param options - `components` (restrict to a subset of the storey's elements;
|
|
204
|
+
* omit for the whole storey) and `unique` (default `false` = instanced copies;
|
|
205
|
+
* `true` = independent geometry)
|
|
206
|
+
* @returns A {@linkcode PluginStoryDuplicateResult} with the `sourceStory`, the
|
|
207
|
+
* `targetStories` the copies landed on, the `created` component handles, the
|
|
208
|
+
* `createdStoryValues` for any storeys generated to receive them, and the
|
|
209
|
+
* `skipped` count of ineligible elements
|
|
210
|
+
* @throws `NO_ACTIVE_STRUCTURE` if there is no active structure to copy into;
|
|
211
|
+
* `NO_ELIGIBLE_ELEMENTS` if nothing on the source storey (or in
|
|
212
|
+
* `options.components`) is copyable; `HANDLE_INVALID` for a stale or foreign
|
|
213
|
+
* supplied handle; or if plugin writes are disabled
|
|
214
|
+
*
|
|
215
|
+
* @examplePrompt Copy this floor to the storey above
|
|
216
|
+
* @examplePrompt Copy the ground floor down into a new basement
|
|
217
|
+
* @examplePrompt Repeat this level upwards with its own independent geometry
|
|
218
|
+
* @examplePrompt Copy just the selected walls onto the next floor up
|
|
219
|
+
*
|
|
220
|
+
* # Example
|
|
221
|
+
* ```ts
|
|
222
|
+
* // Copy the whole active storey one level up (instanced copies).
|
|
223
|
+
* const { targetStories, created, skipped } =
|
|
224
|
+
* await snaptrude.core.storeys.copy("up")
|
|
225
|
+
* console.log(`Copied ${created.length} elements onto storey ${targetStories}`)
|
|
226
|
+
* if (skipped) console.log(`${skipped} elements were skipped`)
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
abstract copy(direction: "up" | "down", options?: {
|
|
230
|
+
components?: ComponentHandle[];
|
|
231
|
+
unique?: boolean;
|
|
232
|
+
}): PluginApiReturn<PluginStoryDuplicateResult>;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Result of {@linkcode PluginCoreStoreysApi.list} — the {@linkcode PluginStoryGetAllResult}
|
|
236
|
+
* shape with the array field renamed `stories` → `storeys`. Each entry shares the
|
|
237
|
+
* same element type: `{ value, id, name }`, sorted top to bottom.
|
|
238
|
+
*
|
|
239
|
+
* | Property | Type | Description |
|
|
240
|
+
* |---|---|---|
|
|
241
|
+
* | `storeys` | `Array<{ value, id, name }>` | All storeys, sorted top to bottom |
|
|
242
|
+
*/
|
|
243
|
+
export declare const PluginCoreStoreysListResult: z.ZodObject<{
|
|
244
|
+
storeys: z.ZodArray<z.ZodObject<{
|
|
245
|
+
value: z.ZodNumber;
|
|
246
|
+
id: z.ZodString;
|
|
247
|
+
name: z.ZodString;
|
|
248
|
+
}, z.core.$strip>>;
|
|
249
|
+
}, z.core.$strip>;
|
|
250
|
+
export type PluginCoreStoreysListResult = z.infer<typeof PluginCoreStoreysListResult>;
|
|
251
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/storeys/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EAEpB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAA;AAE3B;;;;;;;;;;;;;GAaG;AACH,8BAAsB,oBAAoB;;IAGxC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,GAAG,CACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,sBAAsB,EAAE,GACnC,eAAe,CAAC,oBAAoB,CAAC;IAExC;;;;;;;;;;;;;;;;;;;;;OAqBG;aACa,IAAI,IAAI,eAAe,CAAC,2BAA2B,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;aACa,MAAM,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAAC,uBAAuB,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;aACa,MAAM,CACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,eAAe,CAAC,uBAAuB,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,SAAS,CACvB,UAAU,EAAE,MAAM,GACjB,eAAe,CAAC,0BAA0B,CAAC;IAE9C;;;;;;;;;;;;;;;;;;;;;;OAsBG;aACa,MAAM,CACpB,UAAU,EAAE,MAAM,GACjB,eAAe,CAAC,uBAAuB,CAAC;IAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;aACa,IAAI,CAClB,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAC7D,eAAe,CAAC,0BAA0B,CAAC;CAC/C;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;iBAEtC,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,2BAA2B,CACnC,CAAA"}
|
package/dist/api/core/tags.d.ts
CHANGED
|
@@ -119,8 +119,32 @@ export declare abstract class PluginCoreTagsApi {
|
|
|
119
119
|
* const { tags } = await snaptrude.core.tags.getTagsForComponent("cmp_42")
|
|
120
120
|
* for (const t of tags) console.log(t.categoryName, t.tagName)
|
|
121
121
|
* ```
|
|
122
|
+
*
|
|
123
|
+
* @deprecated Use `core.tags.listForComponent`
|
|
122
124
|
*/
|
|
123
125
|
abstract getTagsForComponent(componentId: ComponentHandle): PluginApiReturn<PluginCoreTagsGetTagsForComponentResult>;
|
|
126
|
+
/**
|
|
127
|
+
* List the tags carried by a component.
|
|
128
|
+
*
|
|
129
|
+
* Returns one entry per category the component is tagged in, each carrying the
|
|
130
|
+
* category and tag names and the tag color. Canonical home of the read formerly
|
|
131
|
+
* at `getTagsForComponent` (now deprecated).
|
|
132
|
+
*
|
|
133
|
+
* @param componentId - The `Component.id` to read.
|
|
134
|
+
* @returns A {@linkcode PluginCoreTagsGetTagsForComponentResult} with a `tags`
|
|
135
|
+
* array (empty when the component has none or does not exist).
|
|
136
|
+
*
|
|
137
|
+
* @examplePrompt What tags does this space have?
|
|
138
|
+
* @examplePrompt List the tags on component cmp_42
|
|
139
|
+
* @examplePrompt Show the labels applied to this room
|
|
140
|
+
*
|
|
141
|
+
* # Example
|
|
142
|
+
* ```ts
|
|
143
|
+
* const { tags } = await snaptrude.core.tags.listForComponent("cmp_42")
|
|
144
|
+
* for (const t of tags) console.log(t.categoryName, t.tagName)
|
|
145
|
+
* ```
|
|
146
|
+
*/
|
|
147
|
+
abstract listForComponent(componentId: ComponentHandle): PluginApiReturn<PluginCoreTagsGetTagsForComponentResult>;
|
|
124
148
|
/**
|
|
125
149
|
* List the components carrying a given tag or category.
|
|
126
150
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/api/core/tags.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;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,8BAAsB,iBAAiB;;IAGrC;;;;;;;;;;;;;;;;OAgBG;aACa,cAAc,IAAI,eAAe,CAAC,kCAAkC,CAAC;IAErF;;;;;;;;;;;;;;;;OAgBG;aACa,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB,eAAe,CAAC,+BAA+B,CAAC;IAEnD;;;;;;;;;;;;;;;;OAgBG;aACa,IAAI,CAClB,UAAU,CAAC,EAAE,MAAM,GAClB,eAAe,CAAC,wBAAwB,CAAC;IAE5C;;;;;;;;;;;;;;;;OAgBG;aACa,GAAG,CACjB,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,uBAAuB,CAAC;IAE3C
|
|
1
|
+
{"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/api/core/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ export declare abstract class PluginZoomApi {
|
|
|
22
22
|
* ```ts
|
|
23
23
|
* await snaptrude.core.zoom.extents()
|
|
24
24
|
* ```
|
|
25
|
+
*
|
|
26
|
+
* @deprecated Use `core.camera.zoomExtents`
|
|
25
27
|
*/
|
|
26
28
|
abstract extents(): PluginApiReturn<boolean>;
|
|
27
29
|
/**
|
|
@@ -39,6 +41,8 @@ export declare abstract class PluginZoomApi {
|
|
|
39
41
|
* ```ts
|
|
40
42
|
* await snaptrude.core.zoom.selection()
|
|
41
43
|
* ```
|
|
44
|
+
*
|
|
45
|
+
* @deprecated Use `core.camera.zoomSelection`
|
|
42
46
|
*/
|
|
43
47
|
abstract selection(): PluginApiReturn<boolean>;
|
|
44
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/zoom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;;;GAKG;AACH,8BAAsB,aAAa;;IAGjC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/zoom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;;;GAKG;AACH,8BAAsB,aAAa;;IAGjC;;;;;;;;;;;;;;;;;OAiBG;aACa,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC;IAEnD;;;;;;;;;;;;;;;;;OAiBG;aACa,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC;CACtD"}
|