@nice2dev/spatial-core 1.0.10
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/README.md +160 -0
- package/dist/bim/index.d.ts +366 -0
- package/dist/bim/index.d.ts.map +1 -0
- package/dist/bim/index.js +60 -0
- package/dist/bim/index.js.map +1 -0
- package/dist/cad/index.d.ts +329 -0
- package/dist/cad/index.d.ts.map +1 -0
- package/dist/cad/index.js +124 -0
- package/dist/cad/index.js.map +1 -0
- package/dist/ecad/index.d.ts +316 -0
- package/dist/ecad/index.d.ts.map +1 -0
- package/dist/ecad/index.js +11 -0
- package/dist/ecad/index.js.map +1 -0
- package/dist/export/index.d.ts +93 -0
- package/dist/export/index.d.ts.map +1 -0
- package/dist/export/index.js +522 -0
- package/dist/export/index.js.map +1 -0
- package/dist/floor-plan/index.d.ts +248 -0
- package/dist/floor-plan/index.d.ts.map +1 -0
- package/dist/floor-plan/index.js +228 -0
- package/dist/floor-plan/index.js.map +1 -0
- package/dist/grid/index.d.ts +160 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/index.js +319 -0
- package/dist/grid/index.js.map +1 -0
- package/dist/import/import.worker.d.ts +28 -0
- package/dist/import/import.worker.d.ts.map +1 -0
- package/dist/import/import.worker.js +52 -0
- package/dist/import/import.worker.js.map +1 -0
- package/dist/import/index.d.ts +111 -0
- package/dist/import/index.d.ts.map +1 -0
- package/dist/import/index.js +1092 -0
- package/dist/import/index.js.map +1 -0
- package/dist/import/workerImport.d.ts +56 -0
- package/dist/import/workerImport.d.ts.map +1 -0
- package/dist/import/workerImport.js +207 -0
- package/dist/import/workerImport.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/interior/index.d.ts +241 -0
- package/dist/interior/index.d.ts.map +1 -0
- package/dist/interior/index.js +101 -0
- package/dist/interior/index.js.map +1 -0
- package/dist/measurement/index.d.ts +186 -0
- package/dist/measurement/index.d.ts.map +1 -0
- package/dist/measurement/index.js +400 -0
- package/dist/measurement/index.js.map +1 -0
- package/dist/objects/index.d.ts +288 -0
- package/dist/objects/index.d.ts.map +1 -0
- package/dist/objects/index.js +463 -0
- package/dist/objects/index.js.map +1 -0
- package/dist/serialization/index.d.ts +421 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/serialization/index.js +412 -0
- package/dist/serialization/index.js.map +1 -0
- package/dist/topology/index.d.ts +252 -0
- package/dist/topology/index.d.ts.map +1 -0
- package/dist/topology/index.js +525 -0
- package/dist/topology/index.js.map +1 -0
- package/dist/transitions/index.d.ts +141 -0
- package/dist/transitions/index.d.ts.map +1 -0
- package/dist/transitions/index.js +160 -0
- package/dist/transitions/index.js.map +1 -0
- package/dist/unified/index.d.ts +225 -0
- package/dist/unified/index.d.ts.map +1 -0
- package/dist/unified/index.js +474 -0
- package/dist/unified/index.js.map +1 -0
- package/dist/virtualization/QuadTree.d.ts +68 -0
- package/dist/virtualization/QuadTree.d.ts.map +1 -0
- package/dist/virtualization/QuadTree.js +228 -0
- package/dist/virtualization/QuadTree.js.map +1 -0
- package/dist/virtualization/ViewportCulling.d.ts +92 -0
- package/dist/virtualization/ViewportCulling.d.ts.map +1 -0
- package/dist/virtualization/ViewportCulling.js +123 -0
- package/dist/virtualization/ViewportCulling.js.map +1 -0
- package/dist/virtualization/index.d.ts +9 -0
- package/dist/virtualization/index.d.ts.map +1 -0
- package/dist/virtualization/index.js +9 -0
- package/dist/virtualization/index.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Electrical & Electronics CAD — Schematic capture, PCB layout,
|
|
3
|
+
* component library, DRC, Gerber/BOM export, SPICE simulation,
|
|
4
|
+
* wire harness, panel layout, single-line diagrams.
|
|
5
|
+
*
|
|
6
|
+
* PRO-2.6 — 11 items
|
|
7
|
+
*
|
|
8
|
+
* @module @nice2dev/spatial-core/ecad
|
|
9
|
+
*/
|
|
10
|
+
export type SchematicPinDirection = 'input' | 'output' | 'bidirectional' | 'passive' | 'power';
|
|
11
|
+
export interface SchematicPin {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
number: string;
|
|
15
|
+
direction: SchematicPinDirection;
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
}
|
|
19
|
+
export interface SchematicSymbol {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
library: string;
|
|
23
|
+
pins: SchematicPin[];
|
|
24
|
+
/** SVG path data for the symbol body */
|
|
25
|
+
bodyPath: string;
|
|
26
|
+
/** Reference designator prefix (R, C, U, J, …) */
|
|
27
|
+
refDesPrefix: string;
|
|
28
|
+
}
|
|
29
|
+
export interface SchematicNet {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
pinRefs: Array<{
|
|
33
|
+
componentId: string;
|
|
34
|
+
pinId: string;
|
|
35
|
+
}>;
|
|
36
|
+
/** Route waypoints for visual net */
|
|
37
|
+
waypoints: Array<{
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
export interface SchematicSheet {
|
|
43
|
+
id: string;
|
|
44
|
+
name: string;
|
|
45
|
+
components: Array<{
|
|
46
|
+
id: string;
|
|
47
|
+
symbolId: string;
|
|
48
|
+
refDes: string;
|
|
49
|
+
value: string;
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
rotation: number;
|
|
53
|
+
mirrored: boolean;
|
|
54
|
+
}>;
|
|
55
|
+
nets: SchematicNet[];
|
|
56
|
+
/** Title block */
|
|
57
|
+
title: string;
|
|
58
|
+
revision: string;
|
|
59
|
+
}
|
|
60
|
+
export type PcbLayer = 'F.Cu' | 'B.Cu' | 'In1.Cu' | 'In2.Cu' | 'In3.Cu' | 'In4.Cu' | 'F.SilkS' | 'B.SilkS' | 'F.Mask' | 'B.Mask' | 'F.Paste' | 'B.Paste' | 'Edge.Cuts' | 'Dwgs.User' | 'Cmts.User';
|
|
61
|
+
export interface PcbFootprint {
|
|
62
|
+
id: string;
|
|
63
|
+
name: string;
|
|
64
|
+
pads: PcbPad[];
|
|
65
|
+
/** Courtyard bounding box (mm) */
|
|
66
|
+
courtyard: {
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
width: number;
|
|
70
|
+
height: number;
|
|
71
|
+
};
|
|
72
|
+
/** 3D model ref */
|
|
73
|
+
model3dUrl?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface PcbPad {
|
|
76
|
+
id: string;
|
|
77
|
+
number: string;
|
|
78
|
+
type: 'smd' | 'thru_hole' | 'np_thru_hole';
|
|
79
|
+
shape: 'circle' | 'rect' | 'oval' | 'roundrect' | 'custom';
|
|
80
|
+
x: number;
|
|
81
|
+
y: number;
|
|
82
|
+
width: number;
|
|
83
|
+
height: number;
|
|
84
|
+
/** Drill diameter (mm) for thru-hole */
|
|
85
|
+
drill?: number;
|
|
86
|
+
layers: PcbLayer[];
|
|
87
|
+
netId?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface PcbTrace {
|
|
90
|
+
id: string;
|
|
91
|
+
netId: string;
|
|
92
|
+
layer: PcbLayer;
|
|
93
|
+
width: number;
|
|
94
|
+
points: Array<{
|
|
95
|
+
x: number;
|
|
96
|
+
y: number;
|
|
97
|
+
}>;
|
|
98
|
+
}
|
|
99
|
+
export interface PcbVia {
|
|
100
|
+
id: string;
|
|
101
|
+
netId: string;
|
|
102
|
+
x: number;
|
|
103
|
+
y: number;
|
|
104
|
+
drill: number;
|
|
105
|
+
outerDiameter: number;
|
|
106
|
+
startLayer: PcbLayer;
|
|
107
|
+
endLayer: PcbLayer;
|
|
108
|
+
}
|
|
109
|
+
export interface PcbBoard {
|
|
110
|
+
id: string;
|
|
111
|
+
name: string;
|
|
112
|
+
/** Board outline in mm */
|
|
113
|
+
outline: Array<{
|
|
114
|
+
x: number;
|
|
115
|
+
y: number;
|
|
116
|
+
}>;
|
|
117
|
+
layers: PcbLayer[];
|
|
118
|
+
footprints: Array<{
|
|
119
|
+
footprintId: string;
|
|
120
|
+
refDes: string;
|
|
121
|
+
x: number;
|
|
122
|
+
y: number;
|
|
123
|
+
rotation: number;
|
|
124
|
+
side: 'front' | 'back';
|
|
125
|
+
}>;
|
|
126
|
+
traces: PcbTrace[];
|
|
127
|
+
vias: PcbVia[];
|
|
128
|
+
/** Board thickness (mm) */
|
|
129
|
+
thickness: number;
|
|
130
|
+
}
|
|
131
|
+
export type ComponentCategory = 'resistor' | 'capacitor' | 'inductor' | 'diode' | 'transistor' | 'ic' | 'connector' | 'relay' | 'switch' | 'led' | 'crystal' | 'fuse' | 'transformer' | 'sensor' | 'display' | 'power' | 'mcu' | 'fpga' | 'memory' | 'opamp' | 'regulator';
|
|
132
|
+
export interface ElectronicComponent {
|
|
133
|
+
id: string;
|
|
134
|
+
partNumber: string;
|
|
135
|
+
manufacturer: string;
|
|
136
|
+
category: ComponentCategory;
|
|
137
|
+
description: string;
|
|
138
|
+
/** Datasheet URL */
|
|
139
|
+
datasheetUrl?: string;
|
|
140
|
+
/** Package type (0805, SOIC-8, QFP-48, …) */
|
|
141
|
+
footprintName: string;
|
|
142
|
+
symbolId: string;
|
|
143
|
+
footprintId: string;
|
|
144
|
+
/** Key parameters (resistance, capacitance, voltage, …) */
|
|
145
|
+
parameters: Record<string, string | number>;
|
|
146
|
+
/** Typical unit price */
|
|
147
|
+
price?: number;
|
|
148
|
+
/** Stock availability (from live API) */
|
|
149
|
+
inStock?: boolean;
|
|
150
|
+
}
|
|
151
|
+
export type DrcSeverity = 'error' | 'warning' | 'info';
|
|
152
|
+
export interface DrcRule {
|
|
153
|
+
id: string;
|
|
154
|
+
name: string;
|
|
155
|
+
description: string;
|
|
156
|
+
/** Minimum clearance / value in mm or units */
|
|
157
|
+
value: number;
|
|
158
|
+
layer?: PcbLayer;
|
|
159
|
+
}
|
|
160
|
+
export interface DrcViolation {
|
|
161
|
+
ruleId: string;
|
|
162
|
+
severity: DrcSeverity;
|
|
163
|
+
message: string;
|
|
164
|
+
x: number;
|
|
165
|
+
y: number;
|
|
166
|
+
layer: PcbLayer;
|
|
167
|
+
affectedIds: string[];
|
|
168
|
+
}
|
|
169
|
+
export interface DrcReport {
|
|
170
|
+
rules: DrcRule[];
|
|
171
|
+
violations: DrcViolation[];
|
|
172
|
+
passCount: number;
|
|
173
|
+
errorCount: number;
|
|
174
|
+
warningCount: number;
|
|
175
|
+
}
|
|
176
|
+
export interface GerberExportOptions {
|
|
177
|
+
/** Layers to export */
|
|
178
|
+
layers: PcbLayer[];
|
|
179
|
+
/** Gerber format version */
|
|
180
|
+
format: 'RS-274X' | 'X2';
|
|
181
|
+
/** Units */
|
|
182
|
+
units: 'mm' | 'inch';
|
|
183
|
+
/** Coordinate format */
|
|
184
|
+
precision: {
|
|
185
|
+
integer: number;
|
|
186
|
+
decimal: number;
|
|
187
|
+
};
|
|
188
|
+
/** Include drill file */
|
|
189
|
+
includeDrill: boolean;
|
|
190
|
+
/** Include pick-and-place file */
|
|
191
|
+
includePickAndPlace: boolean;
|
|
192
|
+
}
|
|
193
|
+
export interface EcadBomEntry {
|
|
194
|
+
refDes: string[];
|
|
195
|
+
partNumber: string;
|
|
196
|
+
manufacturer: string;
|
|
197
|
+
description: string;
|
|
198
|
+
footprint: string;
|
|
199
|
+
quantity: number;
|
|
200
|
+
unitPrice?: number;
|
|
201
|
+
totalPrice?: number;
|
|
202
|
+
supplierUrl?: string;
|
|
203
|
+
}
|
|
204
|
+
export interface BomReport {
|
|
205
|
+
projectName: string;
|
|
206
|
+
revision: string;
|
|
207
|
+
entries: EcadBomEntry[];
|
|
208
|
+
totalParts: number;
|
|
209
|
+
uniqueParts: number;
|
|
210
|
+
estimatedCost: number;
|
|
211
|
+
currency: string;
|
|
212
|
+
}
|
|
213
|
+
export type SpiceAnalysis = 'dc' | 'ac' | 'transient' | 'dc-sweep' | 'ac-sweep' | 'noise' | 'monte-carlo';
|
|
214
|
+
export interface SpiceSimulation {
|
|
215
|
+
id: string;
|
|
216
|
+
name: string;
|
|
217
|
+
analysis: SpiceAnalysis;
|
|
218
|
+
/** Netlist in SPICE format */
|
|
219
|
+
netlist: string;
|
|
220
|
+
/** Simulation parameters */
|
|
221
|
+
params: Record<string, number>;
|
|
222
|
+
/** Result data points */
|
|
223
|
+
results?: Array<{
|
|
224
|
+
time?: number;
|
|
225
|
+
frequency?: number;
|
|
226
|
+
values: Record<string, number>;
|
|
227
|
+
}>;
|
|
228
|
+
}
|
|
229
|
+
export interface Pcb3DPreviewConfig {
|
|
230
|
+
boardId: string;
|
|
231
|
+
/** Show solder mask? */
|
|
232
|
+
showMask: boolean;
|
|
233
|
+
/** Show silkscreen? */
|
|
234
|
+
showSilkscreen: boolean;
|
|
235
|
+
/** Show component 3D models? */
|
|
236
|
+
showComponents: boolean;
|
|
237
|
+
/** Board color */
|
|
238
|
+
boardColor: string;
|
|
239
|
+
/** Solder mask color */
|
|
240
|
+
maskColor: string;
|
|
241
|
+
/** Copper color */
|
|
242
|
+
copperColor: string;
|
|
243
|
+
/** Enable ray-tracing */
|
|
244
|
+
rayTracing: boolean;
|
|
245
|
+
}
|
|
246
|
+
export interface HarnessWire {
|
|
247
|
+
id: string;
|
|
248
|
+
gauge: string;
|
|
249
|
+
color: string;
|
|
250
|
+
length: number;
|
|
251
|
+
fromConnector: string;
|
|
252
|
+
fromPin: string;
|
|
253
|
+
toConnector: string;
|
|
254
|
+
toPin: string;
|
|
255
|
+
netName: string;
|
|
256
|
+
}
|
|
257
|
+
export interface HarnessBundle {
|
|
258
|
+
id: string;
|
|
259
|
+
name: string;
|
|
260
|
+
wires: HarnessWire[];
|
|
261
|
+
/** Sleeve/sheath type */
|
|
262
|
+
sleeve?: 'braided' | 'heatshrink' | 'loom' | 'tape' | 'none';
|
|
263
|
+
/** Overall diameter in mm */
|
|
264
|
+
diameter: number;
|
|
265
|
+
routePath: Array<{
|
|
266
|
+
x: number;
|
|
267
|
+
y: number;
|
|
268
|
+
z: number;
|
|
269
|
+
}>;
|
|
270
|
+
}
|
|
271
|
+
export type PanelComponentType = 'breaker' | 'contactor' | 'relay' | 'terminal-block' | 'din-rail' | 'cable-duct' | 'plc' | 'hmi' | 'power-supply' | 'meter' | 'transformer';
|
|
272
|
+
export interface PanelComponent {
|
|
273
|
+
id: string;
|
|
274
|
+
type: PanelComponentType;
|
|
275
|
+
name: string;
|
|
276
|
+
/** Width in DIN-rail modules (17.5 mm each) */
|
|
277
|
+
modules: number;
|
|
278
|
+
rating?: string;
|
|
279
|
+
x: number;
|
|
280
|
+
y: number;
|
|
281
|
+
}
|
|
282
|
+
export interface ElectricalPanel {
|
|
283
|
+
id: string;
|
|
284
|
+
name: string;
|
|
285
|
+
/** Panel dimensions in mm */
|
|
286
|
+
width: number;
|
|
287
|
+
height: number;
|
|
288
|
+
depth: number;
|
|
289
|
+
/** DIN-rail rows */
|
|
290
|
+
rows: number;
|
|
291
|
+
modulesPerRow: number;
|
|
292
|
+
components: PanelComponent[];
|
|
293
|
+
}
|
|
294
|
+
export type SldElementType = 'transformer' | 'generator' | 'busbar' | 'breaker' | 'switch' | 'fuse' | 'motor' | 'load' | 'capacitor-bank' | 'utility';
|
|
295
|
+
export interface SldElement {
|
|
296
|
+
id: string;
|
|
297
|
+
type: SldElementType;
|
|
298
|
+
name: string;
|
|
299
|
+
rating?: string;
|
|
300
|
+
x: number;
|
|
301
|
+
y: number;
|
|
302
|
+
}
|
|
303
|
+
export interface SldConnection {
|
|
304
|
+
id: string;
|
|
305
|
+
fromId: string;
|
|
306
|
+
toId: string;
|
|
307
|
+
voltage: string;
|
|
308
|
+
phases: 1 | 3;
|
|
309
|
+
}
|
|
310
|
+
export interface SingleLineDiagram {
|
|
311
|
+
id: string;
|
|
312
|
+
name: string;
|
|
313
|
+
elements: SldElement[];
|
|
314
|
+
connections: SldConnection[];
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ecad/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Electrical & Electronics CAD — Schematic capture, PCB layout,
|
|
3
|
+
* component library, DRC, Gerber/BOM export, SPICE simulation,
|
|
4
|
+
* wire harness, panel layout, single-line diagrams.
|
|
5
|
+
*
|
|
6
|
+
* PRO-2.6 — 11 items
|
|
7
|
+
*
|
|
8
|
+
* @module @nice2dev/spatial-core/ecad
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ecad/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Module — Export spatial documents to various formats.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - .nsp.json (NiceToDev Spatial Plan) — native format
|
|
6
|
+
* - SVG — Scalable Vector Graphics
|
|
7
|
+
* - DXF — AutoCAD Drawing Exchange Format (basic)
|
|
8
|
+
* - PNG/PDF — requires rendering context (provided by React component)
|
|
9
|
+
*
|
|
10
|
+
* @module @nice2dev/spatial-core/export
|
|
11
|
+
*/
|
|
12
|
+
import type { FloorPlanDocument } from '../floor-plan';
|
|
13
|
+
/** Output format for document export. */
|
|
14
|
+
export type DocumentExportFormat = 'nsp' | 'svg' | 'dxf' | 'png' | 'pdf';
|
|
15
|
+
/** Export options. */
|
|
16
|
+
export interface ExportOptions {
|
|
17
|
+
/** Which floors to export (default: all). */
|
|
18
|
+
floorIds?: string[];
|
|
19
|
+
/** Which layers to include (default: all visible). */
|
|
20
|
+
layerNames?: string[];
|
|
21
|
+
/** Include grid in export. */
|
|
22
|
+
includeGrid?: boolean;
|
|
23
|
+
/** Include dimensions/annotations. */
|
|
24
|
+
includeDimensions?: boolean;
|
|
25
|
+
/** Scale factor (1 = 1:1). */
|
|
26
|
+
scale?: number;
|
|
27
|
+
/** Paper size for PDF (A4, A3, Letter, etc). */
|
|
28
|
+
paperSize?: 'A4' | 'A3' | 'A2' | 'A1' | 'A0' | 'Letter' | 'Legal' | 'Tabloid' | 'custom';
|
|
29
|
+
/** Custom paper dimensions (mm). */
|
|
30
|
+
customPaperSize?: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
/** Orientation for PDF. */
|
|
35
|
+
orientation?: 'portrait' | 'landscape';
|
|
36
|
+
/** Background color (default: white for export, transparent for SVG). */
|
|
37
|
+
backgroundColor?: string;
|
|
38
|
+
/** Image resolution for PNG (DPI). */
|
|
39
|
+
dpi?: number;
|
|
40
|
+
/** Margin in mm (for PDF). */
|
|
41
|
+
margin?: number;
|
|
42
|
+
/** Title block / header. */
|
|
43
|
+
titleBlock?: TitleBlock;
|
|
44
|
+
}
|
|
45
|
+
/** Title block for technical drawings. */
|
|
46
|
+
export interface TitleBlock {
|
|
47
|
+
projectName?: string;
|
|
48
|
+
sheetTitle?: string;
|
|
49
|
+
drawnBy?: string;
|
|
50
|
+
checkedBy?: string;
|
|
51
|
+
date?: string;
|
|
52
|
+
revision?: string;
|
|
53
|
+
scale?: string;
|
|
54
|
+
sheetNumber?: string;
|
|
55
|
+
}
|
|
56
|
+
/** Export result. */
|
|
57
|
+
export interface ExportResult {
|
|
58
|
+
format: DocumentExportFormat;
|
|
59
|
+
filename: string;
|
|
60
|
+
mimeType: string;
|
|
61
|
+
data: string | Blob;
|
|
62
|
+
/** Size in bytes (if applicable). */
|
|
63
|
+
size?: number;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Export document to .nsp.json format.
|
|
67
|
+
*/
|
|
68
|
+
export declare function exportToNSP(document: FloorPlanDocument, options?: ExportOptions): ExportResult;
|
|
69
|
+
/**
|
|
70
|
+
* Export document to SVG format.
|
|
71
|
+
*/
|
|
72
|
+
export declare function exportToSVG(document: FloorPlanDocument, options?: ExportOptions): ExportResult;
|
|
73
|
+
/**
|
|
74
|
+
* Export document to DXF format (basic AutoCAD compatibility).
|
|
75
|
+
*/
|
|
76
|
+
export declare function exportToDXF(document: FloorPlanDocument, options?: ExportOptions): ExportResult;
|
|
77
|
+
/**
|
|
78
|
+
* Trigger download of export result in browser.
|
|
79
|
+
*/
|
|
80
|
+
export declare function downloadExport(result: ExportResult): void;
|
|
81
|
+
/**
|
|
82
|
+
* Export document to specified format and trigger download.
|
|
83
|
+
*/
|
|
84
|
+
export declare function exportAndDownload(doc: FloorPlanDocument, format: DocumentExportFormat, options?: ExportOptions): ExportResult;
|
|
85
|
+
/**
|
|
86
|
+
* Export SVG element to PNG using canvas.
|
|
87
|
+
* Call this from React component with access to DOM.
|
|
88
|
+
*/
|
|
89
|
+
export declare function exportSVGToPNG(svgElement: SVGSVGElement, filename: string, options?: {
|
|
90
|
+
dpi?: number;
|
|
91
|
+
backgroundColor?: string;
|
|
92
|
+
}): Promise<ExportResult>;
|
|
93
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/export/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAS,MAAM,eAAe,CAAC;AAQ9D,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEzE,sBAAsB;AACtB,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzF,oCAAoC;IACpC,eAAe,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,2BAA2B;IAC3B,WAAW,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACvC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,0CAA0C;AAC1C,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAqB;AACrB,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAMD;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,aAAkB,GAC1B,YAAY,CAad;AAWD;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,aAAkB,GAC1B,YAAY,CAoFd;AAkED;;GAEG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,aAAkB,GAC1B,YAAY,CA0Gd;AAgOD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAYzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,aAAkB,GAC1B,YAAY,CAwBd;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,aAAa,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,OAAO,CAAC,YAAY,CAAC,CAsDvB"}
|