@hatiolab/things-scene 10.0.0-beta.80 → 10.0.0-beta.81

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.
@@ -0,0 +1,525 @@
1
+ import type { ComponentNature } from '../../interfaces/types.js';
2
+ import type { IRealObject } from '../../interfaces/real-object.js';
3
+ import Shape from '../../components/shape.js';
4
+ import { RealObjectGroup } from '../real-object-group.js';
5
+ export declare class Backdrop3D extends RealObjectGroup {
6
+ /**
7
+ * Pin the envelope's PLAN position (x, z) to world origin when
8
+ * fitToBoard is active, regardless of state.left/top — this puts the
9
+ * box's center at the board's center horizontally. The Y axis is
10
+ * preserved from `super.position` so the scene-level placement
11
+ * (`floor` → +depth/2, `space` → 0, `inverted` → -depth/2 via the
12
+ * base class's `geometricOffsetY`) decides whether the envelope
13
+ * sits ON the floor (bottom at zPos), CENTERED in space, or HANGS
14
+ * from the ceiling (top at zPos).
15
+ *
16
+ * Forcing y=0 here would collapse all three placement modes into
17
+ * "centered" — that's wrong for `floor` and `inverted`.
18
+ */
19
+ get position(): {
20
+ x: number;
21
+ y: number;
22
+ z: number;
23
+ };
24
+ build(): void;
25
+ private _resolveFace;
26
+ updateDimension(): void;
27
+ onchange(after: Record<string, unknown>, before: Record<string, unknown>): void;
28
+ updateAlpha(): void;
29
+ }
30
+ declare const Backdrop_base: {
31
+ new (...args: any[]): {
32
+ is3dish(): boolean;
33
+ get hasTextProperty(): boolean;
34
+ get capturable(): boolean;
35
+ render(_ctx: CanvasRenderingContext2D): void;
36
+ _app: any;
37
+ _model: any;
38
+ _state: any;
39
+ _delta: any;
40
+ _animation: any;
41
+ _animate: any;
42
+ _parent: any;
43
+ _disposed: any;
44
+ _textHidden: any;
45
+ _text_substitutor: any;
46
+ _value_substitutor: any;
47
+ _mappings: any;
48
+ _realObject: IRealObject | undefined;
49
+ _cachedState: any;
50
+ updatedAt: any;
51
+ fontSize: any;
52
+ __cache__: any;
53
+ created(): void;
54
+ added(parent: any): void;
55
+ removed(parent: any): void;
56
+ ready(): Promise<void>;
57
+ touch(): void;
58
+ clearCache(...attrs: any[]): void;
59
+ removeSelf(completely: any): void;
60
+ resetAnimation(): void;
61
+ dispose(): void;
62
+ get nature(): ComponentNature;
63
+ get disposed(): boolean;
64
+ isLayer(): boolean;
65
+ isGroup(): boolean;
66
+ isContainer(): this is import("../../types/component.js").Container;
67
+ isLine(): boolean;
68
+ isRoot(): boolean;
69
+ isRootModel(): boolean;
70
+ get is3dMode(): boolean;
71
+ isIn3DSpace(): boolean;
72
+ isTemplate(): boolean;
73
+ isHTMLElement(): boolean;
74
+ isConnectable(): boolean;
75
+ isIdentifiable(): boolean;
76
+ isPositionable(): boolean;
77
+ replaceRefids(replaceMap: any): void;
78
+ get(property: any): any;
79
+ set(props: any, propval?: any): any;
80
+ getState(property: any): any;
81
+ setState(props: any, propval?: any): any;
82
+ get model(): any;
83
+ get state(): any;
84
+ get hierarchy(): any;
85
+ get volatile(): never[];
86
+ _applyProps(target: any, props: any, options: any): /*elided*/ any;
87
+ contains(x: number, y: number): boolean;
88
+ move(offset: {
89
+ x: number;
90
+ y: number;
91
+ }, ...args: boolean[]): void;
92
+ symmetryX(x?: number): void;
93
+ symmetryY(y: number): void;
94
+ adjustResize(bounds: import("../../index.js").BOUNDS, origin_bounds: import("../../index.js").BOUNDS, diagonal: boolean): {
95
+ left: any;
96
+ top: any;
97
+ width: any;
98
+ height: any;
99
+ };
100
+ adjustRotation(rotation: number, step: boolean): number;
101
+ outline(progress: number): any;
102
+ get bounds(): import("../../index.js").BOUNDS;
103
+ set bounds(b: import("../../index.js").BOUNDS);
104
+ get center(): import("../../index.js").POINT;
105
+ set center(p: import("../../index.js").POINT);
106
+ get location(): import("../../index.js").POINT;
107
+ set location(l: import("../../index.js").POINT);
108
+ get rotate(): import("../../index.js").POINT;
109
+ set rotate(r: import("../../index.js").POINT);
110
+ get dimension(): import("../../index.js").DIMENSION;
111
+ set dimension(d: import("../../index.js").DIMENSION);
112
+ get path(): import("../../index.js").POINT[];
113
+ set path(p: import("../../index.js").POINT[]);
114
+ get drawPath(): import("../../index.js").POINT[];
115
+ get rotatePoint(): import("../../index.js").POINT;
116
+ get mutable(): boolean;
117
+ get resizable(): boolean;
118
+ get rotatable(): boolean;
119
+ buildRealObject(): IRealObject | undefined;
120
+ get realObject(): IRealObject | undefined;
121
+ draw(context?: import("../../index.js").SceneRenderContext): void;
122
+ prerender(context: import("../../index.js").SceneRenderContext): void;
123
+ postrender(context: import("../../index.js").SceneRenderContext): void;
124
+ prepare(resolve: (component: import("../../index.js").Component) => void, reject: (reason: any) => void): void;
125
+ prepareIf(condition: boolean): void;
126
+ drawText(context: import("../../index.js").SceneRenderContext): void;
127
+ drawStroke(context: import("../../index.js").SceneRenderContext, override?: Record<string, unknown>): void;
128
+ drawFill(context: import("../../index.js").SceneRenderContext, override?: Record<string, unknown>): void;
129
+ get strokeStyle(): any;
130
+ set strokeStyle(v: any);
131
+ get fillStyle(): any;
132
+ set fillStyle(v: any);
133
+ get fontColor(): string;
134
+ set fontColor(v: string);
135
+ get rotation(): number;
136
+ set rotation(v: number);
137
+ get decorators(): string[];
138
+ get decotag(): string;
139
+ get hidden(): boolean;
140
+ set hidden(v: boolean);
141
+ get tag(): string;
142
+ set tag(v: string);
143
+ get appendum(): any;
144
+ set appendum(v: any);
145
+ defaultTextSubstitutor(): string;
146
+ textLines(context?: import("../../index.js").SceneRenderContext): any[][];
147
+ get font(): string;
148
+ get lineHeight(): number;
149
+ get textSubstitutor(): () => string;
150
+ get text(): string;
151
+ set text(v: string);
152
+ get textBounds(): import("../../index.js").BOUNDS;
153
+ get textRotation(): number;
154
+ get textHidden(): boolean;
155
+ set textHidden(v: boolean);
156
+ animate(opts: import("../../index.js").AnimationConfig): any;
157
+ effect(context: import("../../index.js").SceneRenderContext, model: any): void;
158
+ serialize(...others: any[]): string;
159
+ trim(): void;
160
+ closeScene(data: any): void;
161
+ delta(attr?: string | object, value?: any): any;
162
+ invalidate(): void;
163
+ get value(): any;
164
+ set value(v: any);
165
+ get data(): any;
166
+ set data(v: any);
167
+ set tap(v: any);
168
+ get mappings(): any[];
169
+ get retention(): number;
170
+ get animation(): import("../../index.js").AnimationController | undefined;
171
+ get started(): boolean;
172
+ set started(v: boolean);
173
+ get controls(): import("../../index.js").Control[] | undefined;
174
+ findFirst(finder: string | ((c: import("../../index.js").Component) => boolean), ...others: any[]): import("../../index.js").Component | undefined;
175
+ findAll(s: string | ((c: import("../../index.js").Component) => boolean), ...others: any[]): any[] | undefined;
176
+ capture(x: number, y: number, except?: (c: import("../../index.js").Component) => boolean): any;
177
+ findAnchor(name: string): any;
178
+ isDescendible(container: import("../../index.js").Component): boolean;
179
+ getContext(component?: unknown): any;
180
+ get root(): import("../../index.js").Component;
181
+ get rootModel(): import("../../index.js").Component;
182
+ get parent(): import("../../index.js").Component;
183
+ set parent(v: import("../../index.js").Component);
184
+ get anchors(): import("../../index.js").Anchor[];
185
+ get scalable(): boolean;
186
+ get stuck(): boolean;
187
+ get position(): string;
188
+ get origin(): string;
189
+ get offset(): import("../../index.js").POINT;
190
+ get app(): import("../../index.js").ApplicationContext;
191
+ drawEffect(context: import("../../index.js").SceneRenderContext): void;
192
+ prepareFill(resolve: Function, reject: Function): void;
193
+ prepareFillIf(condition: boolean): void;
194
+ onchangeFill(after: Record<string, any>, before: Record<string, any>): void;
195
+ drawImage(context: import("../../index.js").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void;
196
+ mutateBounds(logic: ((bounds: import("../../index.js").BOUNDS) => import("../../index.js").BOUNDS | void) | null, context?: any): void;
197
+ mutatePath(beforeLogic: ((path: import("../../index.js").POINT[]) => import("../../index.js").POINT[] | void) | null, afterLogic: ((path: import("../../index.js").POINT[]) => import("../../index.js").POINT[] | void) | null, context?: any): void;
198
+ access(accessor: string): any;
199
+ substitute(template: string, data: any): string | undefined;
200
+ onchangeMappings(after: Record<string, any>, before: Record<string, any>): void;
201
+ onchangeData(after: Record<string, any>, before: Record<string, any>): void;
202
+ buildMappings(): void;
203
+ executeMappings(force?: boolean): void;
204
+ disposeMappings(): void;
205
+ ondropfile(transfered: FileList, files: string[]): void;
206
+ transcoordS2P(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
207
+ transcoordP2S(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
208
+ transcoordS2T(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
209
+ transcoordT2P(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
210
+ transcoordT2S(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
211
+ transcoordS2TR(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
212
+ transcoordS2O(x: number, y: number, target: import("../../index.js").Component): import("../../index.js").POINT;
213
+ transcoordC2S(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
214
+ transcoordS2C(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
215
+ toParent(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
216
+ fromParent(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
217
+ toScene(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
218
+ fromScene(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
219
+ toLocal(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
220
+ toGlobal(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
221
+ toOther(x: number, y: number, target: import("../../index.js").Component): import("../../index.js").POINT;
222
+ on(name: string | object, callback: Function, context?: any): /*elided*/ any;
223
+ off(name?: string | object, callback?: Function, context?: any): /*elided*/ any;
224
+ once(name: string | object, callback: Function, context?: any): /*elided*/ any;
225
+ trigger(name: string, ...args: any[]): /*elided*/ any;
226
+ delegate_on(delegator: any): /*elided*/ any;
227
+ delegate_off(delegator: any): /*elided*/ any;
228
+ onchange(after: Record<string, any>, before: Record<string, any>): void;
229
+ calculateBounds?(): void;
230
+ oncreate_element?(element: HTMLElement): void;
231
+ removeComponent(component: import("../../index.js").Component, ghost?: boolean): void;
232
+ addComponent(component: import("../../index.js").Component, ghost?: boolean): void;
233
+ insertComponentAt(component: import("../../index.js").Component, index: number, ghost?: boolean): void;
234
+ getOverlay(component: import("../../index.js").Component): HTMLElement | undefined;
235
+ findById(id: string): import("../../index.js").Component | undefined;
236
+ findByRefid(ref: string | number): import("../../index.js").Component | undefined;
237
+ findAllById(id: string): import("../../index.js").Component[];
238
+ resize(): void;
239
+ fit(type?: string): void;
240
+ get components(): import("../../index.js").Component[] | undefined;
241
+ get layout(): any;
242
+ get auxOverlay(): HTMLElement | undefined;
243
+ get isReady(): boolean;
244
+ get unitScale(): number;
245
+ get selected(): import("../../index.js").Component[];
246
+ set selected(_v: import("../../index.js").Component[]);
247
+ get focused(): import("../../index.js").Component | null;
248
+ set focused(_v: import("../../index.js").Component | null);
249
+ get hasSameParentForAllSelected(): boolean;
250
+ set hasSameParentForAllSelected(_v: boolean);
251
+ get fitMode(): string | undefined;
252
+ set fitMode(_v: string | undefined);
253
+ get element(): HTMLElement | null;
254
+ set element(_v: HTMLElement | null);
255
+ };
256
+ raycastTargetDefault: boolean;
257
+ } & {
258
+ new (...args: any[]): {
259
+ contains(x: number, y: number): boolean;
260
+ get path(): {
261
+ x: any;
262
+ y: any;
263
+ }[];
264
+ set path(path: {
265
+ x: any;
266
+ y: any;
267
+ }[]);
268
+ get anchors(): {
269
+ name: string;
270
+ position: {
271
+ x: any;
272
+ y: any;
273
+ };
274
+ }[];
275
+ get bounds(): any;
276
+ set bounds(bounds: any);
277
+ render(ctx: CanvasRenderingContext2D): void;
278
+ _app: any;
279
+ _model: any;
280
+ _state: any;
281
+ _delta: any;
282
+ _animation: any;
283
+ _animate: any;
284
+ _parent: any;
285
+ _disposed: any;
286
+ _textHidden: any;
287
+ _text_substitutor: any;
288
+ _value_substitutor: any;
289
+ _mappings: any;
290
+ _realObject: IRealObject | undefined;
291
+ _cachedState: any;
292
+ updatedAt: any;
293
+ fontSize: any;
294
+ __cache__: any;
295
+ created(): void;
296
+ added(parent: any): void;
297
+ removed(parent: any): void;
298
+ ready(): Promise<void>;
299
+ touch(): void;
300
+ clearCache(...attrs: any[]): void;
301
+ removeSelf(completely: any): void;
302
+ resetAnimation(): void;
303
+ dispose(): void;
304
+ get nature(): ComponentNature;
305
+ get disposed(): boolean;
306
+ isLayer(): boolean;
307
+ isGroup(): boolean;
308
+ isContainer(): this is import("../../types/component.js").Container;
309
+ isLine(): boolean;
310
+ isRoot(): boolean;
311
+ isRootModel(): boolean;
312
+ is3dish(): boolean;
313
+ get is3dMode(): boolean;
314
+ isIn3DSpace(): boolean;
315
+ isTemplate(): boolean;
316
+ isHTMLElement(): boolean;
317
+ isConnectable(): boolean;
318
+ isIdentifiable(): boolean;
319
+ isPositionable(): boolean;
320
+ replaceRefids(replaceMap: any): void;
321
+ get(property: any): any;
322
+ set(props: any, propval?: any): any;
323
+ getState(property: any): any;
324
+ setState(props: any, propval?: any): any;
325
+ get model(): any;
326
+ get state(): any;
327
+ get hierarchy(): any;
328
+ get volatile(): never[];
329
+ _applyProps(target: any, props: any, options: any): /*elided*/ any;
330
+ move(offset: {
331
+ x: number;
332
+ y: number;
333
+ }, ...args: boolean[]): void;
334
+ symmetryX(x?: number): void;
335
+ symmetryY(y: number): void;
336
+ adjustResize(bounds: import("../../index.js").BOUNDS, origin_bounds: import("../../index.js").BOUNDS, diagonal: boolean): {
337
+ left: any;
338
+ top: any;
339
+ width: any;
340
+ height: any;
341
+ };
342
+ adjustRotation(rotation: number, step: boolean): number;
343
+ outline(progress: number): any;
344
+ get center(): import("../../index.js").POINT;
345
+ set center(p: import("../../index.js").POINT);
346
+ get location(): import("../../index.js").POINT;
347
+ set location(l: import("../../index.js").POINT);
348
+ get rotate(): import("../../index.js").POINT;
349
+ set rotate(r: import("../../index.js").POINT);
350
+ get dimension(): import("../../index.js").DIMENSION;
351
+ set dimension(d: import("../../index.js").DIMENSION);
352
+ get drawPath(): import("../../index.js").POINT[];
353
+ get rotatePoint(): import("../../index.js").POINT;
354
+ get mutable(): boolean;
355
+ get resizable(): boolean;
356
+ get rotatable(): boolean;
357
+ buildRealObject(): IRealObject | undefined;
358
+ get realObject(): IRealObject | undefined;
359
+ draw(context?: import("../../index.js").SceneRenderContext): void;
360
+ prerender(context: import("../../index.js").SceneRenderContext): void;
361
+ postrender(context: import("../../index.js").SceneRenderContext): void;
362
+ prepare(resolve: (component: import("../../index.js").Component) => void, reject: (reason: any) => void): void;
363
+ prepareIf(condition: boolean): void;
364
+ drawText(context: import("../../index.js").SceneRenderContext): void;
365
+ drawStroke(context: import("../../index.js").SceneRenderContext, override?: Record<string, unknown>): void;
366
+ drawFill(context: import("../../index.js").SceneRenderContext, override?: Record<string, unknown>): void;
367
+ get strokeStyle(): any;
368
+ set strokeStyle(v: any);
369
+ get fillStyle(): any;
370
+ set fillStyle(v: any);
371
+ get fontColor(): string;
372
+ set fontColor(v: string);
373
+ get rotation(): number;
374
+ set rotation(v: number);
375
+ get decorators(): string[];
376
+ get decotag(): string;
377
+ get hidden(): boolean;
378
+ set hidden(v: boolean);
379
+ get tag(): string;
380
+ set tag(v: string);
381
+ get appendum(): any;
382
+ set appendum(v: any);
383
+ defaultTextSubstitutor(): string;
384
+ textLines(context?: import("../../index.js").SceneRenderContext): any[][];
385
+ get font(): string;
386
+ get lineHeight(): number;
387
+ get textSubstitutor(): () => string;
388
+ get text(): string;
389
+ set text(v: string);
390
+ get textBounds(): import("../../index.js").BOUNDS;
391
+ get textRotation(): number;
392
+ get textHidden(): boolean;
393
+ set textHidden(v: boolean);
394
+ get hasTextProperty(): boolean;
395
+ animate(opts: import("../../index.js").AnimationConfig): any;
396
+ effect(context: import("../../index.js").SceneRenderContext, model: any): void;
397
+ serialize(...others: any[]): string;
398
+ trim(): void;
399
+ closeScene(data: any): void;
400
+ delta(attr?: string | object, value?: any): any;
401
+ invalidate(): void;
402
+ get value(): any;
403
+ set value(v: any);
404
+ get data(): any;
405
+ set data(v: any);
406
+ set tap(v: any);
407
+ get mappings(): any[];
408
+ get retention(): number;
409
+ get animation(): import("../../index.js").AnimationController | undefined;
410
+ get started(): boolean;
411
+ set started(v: boolean);
412
+ get controls(): import("../../index.js").Control[] | undefined;
413
+ findFirst(finder: string | ((c: import("../../index.js").Component) => boolean), ...others: any[]): import("../../index.js").Component | undefined;
414
+ findAll(s: string | ((c: import("../../index.js").Component) => boolean), ...others: any[]): any[] | undefined;
415
+ capture(x: number, y: number, except?: (c: import("../../index.js").Component) => boolean): any;
416
+ findAnchor(name: string): any;
417
+ isDescendible(container: import("../../index.js").Component): boolean;
418
+ getContext(component?: unknown): any;
419
+ get root(): import("../../index.js").Component;
420
+ get rootModel(): import("../../index.js").Component;
421
+ get parent(): import("../../index.js").Component;
422
+ set parent(v: import("../../index.js").Component);
423
+ get scalable(): boolean;
424
+ get stuck(): boolean;
425
+ get capturable(): boolean;
426
+ get position(): string;
427
+ get origin(): string;
428
+ get offset(): import("../../index.js").POINT;
429
+ get app(): import("../../index.js").ApplicationContext;
430
+ drawEffect(context: import("../../index.js").SceneRenderContext): void;
431
+ prepareFill(resolve: Function, reject: Function): void;
432
+ prepareFillIf(condition: boolean): void;
433
+ onchangeFill(after: Record<string, any>, before: Record<string, any>): void;
434
+ drawImage(context: import("../../index.js").SceneRenderContext, image: HTMLImageElement, left: number, top: number, width: number, height: number): void;
435
+ mutateBounds(logic: ((bounds: import("../../index.js").BOUNDS) => import("../../index.js").BOUNDS | void) | null, context?: any): void;
436
+ mutatePath(beforeLogic: ((path: import("../../index.js").POINT[]) => import("../../index.js").POINT[] | void) | null, afterLogic: ((path: import("../../index.js").POINT[]) => import("../../index.js").POINT[] | void) | null, context?: any): void;
437
+ access(accessor: string): any;
438
+ substitute(template: string, data: any): string | undefined;
439
+ onchangeMappings(after: Record<string, any>, before: Record<string, any>): void;
440
+ onchangeData(after: Record<string, any>, before: Record<string, any>): void;
441
+ buildMappings(): void;
442
+ executeMappings(force?: boolean): void;
443
+ disposeMappings(): void;
444
+ ondropfile(transfered: FileList, files: string[]): void;
445
+ transcoordS2P(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
446
+ transcoordP2S(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
447
+ transcoordS2T(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
448
+ transcoordT2P(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
449
+ transcoordT2S(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
450
+ transcoordS2TR(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
451
+ transcoordS2O(x: number, y: number, target: import("../../index.js").Component): import("../../index.js").POINT;
452
+ transcoordC2S(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
453
+ transcoordS2C(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
454
+ toParent(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
455
+ fromParent(x: number, y: number, rp?: import("../../index.js").POINT): import("../../index.js").POINT;
456
+ toScene(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
457
+ fromScene(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
458
+ toLocal(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
459
+ toGlobal(x: number, y: number, top?: import("../../index.js").Component): import("../../index.js").POINT;
460
+ toOther(x: number, y: number, target: import("../../index.js").Component): import("../../index.js").POINT;
461
+ on(name: string | object, callback: Function, context?: any): /*elided*/ any;
462
+ off(name?: string | object, callback?: Function, context?: any): /*elided*/ any;
463
+ once(name: string | object, callback: Function, context?: any): /*elided*/ any;
464
+ trigger(name: string, ...args: any[]): /*elided*/ any;
465
+ delegate_on(delegator: any): /*elided*/ any;
466
+ delegate_off(delegator: any): /*elided*/ any;
467
+ onchange(after: Record<string, any>, before: Record<string, any>): void;
468
+ calculateBounds?(): void;
469
+ oncreate_element?(element: HTMLElement): void;
470
+ removeComponent(component: import("../../index.js").Component, ghost?: boolean): void;
471
+ addComponent(component: import("../../index.js").Component, ghost?: boolean): void;
472
+ insertComponentAt(component: import("../../index.js").Component, index: number, ghost?: boolean): void;
473
+ getOverlay(component: import("../../index.js").Component): HTMLElement | undefined;
474
+ findById(id: string): import("../../index.js").Component | undefined;
475
+ findByRefid(ref: string | number): import("../../index.js").Component | undefined;
476
+ findAllById(id: string): import("../../index.js").Component[];
477
+ resize(): void;
478
+ fit(type?: string): void;
479
+ get components(): import("../../index.js").Component[] | undefined;
480
+ get layout(): any;
481
+ get auxOverlay(): HTMLElement | undefined;
482
+ get isReady(): boolean;
483
+ get unitScale(): number;
484
+ get selected(): import("../../index.js").Component[];
485
+ set selected(_v: import("../../index.js").Component[]);
486
+ get focused(): import("../../index.js").Component | null;
487
+ set focused(_v: import("../../index.js").Component | null);
488
+ get hasSameParentForAllSelected(): boolean;
489
+ set hasSameParentForAllSelected(_v: boolean);
490
+ get fitMode(): string | undefined;
491
+ set fitMode(_v: string | undefined);
492
+ get element(): HTMLElement | null;
493
+ set element(_v: HTMLElement | null);
494
+ };
495
+ } & typeof Shape;
496
+ export declare class Backdrop extends Backdrop_base {
497
+ /** Bound listener for root model state changes (only attached when
498
+ * state.fitToBoard is true). Rebuilds the 3D mesh on board resize. */
499
+ private _onRootChange?;
500
+ buildRealObject(): IRealObject | undefined;
501
+ get nature(): ComponentNature;
502
+ added(parent: any): void;
503
+ ready(): Promise<void>;
504
+ removed(parent: any): void;
505
+ dispose(): void;
506
+ onchange(after: Record<string, unknown>, before: Record<string, unknown>): void;
507
+ /**
508
+ * Copy the root model's plan geometry (left, top, width, height) onto
509
+ * this backdrop.
510
+ *
511
+ * `seedDepth`:
512
+ * - `true` (creation / fitToBoard OFF→ON) — also set depth =
513
+ * min(width, height) as a sensible initial vertical extent.
514
+ * - `false` (board resize) — leave depth alone. The user's manual
515
+ * depth edits via the property panel must stick; routine resize
516
+ * syncs shouldn't trample them.
517
+ *
518
+ * Skips fields that already match to avoid empty onchange round-trips.
519
+ */
520
+ private _syncFromRoot;
521
+ private _attachRootListener;
522
+ private _detachRootListener;
523
+ }
524
+ export {};
525
+ //# sourceMappingURL=backdrop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backdrop.d.ts","sourceRoot":"","sources":["../../../src/threed/factories/backdrop.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,MAAM,2BAA2B,CAAA;AAK7C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAgHzD,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;;;;;;;;;;;OAYG;IACH,IAAa,QAAQ;;;;MAMpB;IAQD,KAAK;IAoFL,OAAO,CAAC,YAAY;IAqBpB,eAAe;IAEf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASxE,WAAW;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcD,qBACa,QAAS,SAAQ,aAA2B;IACvD;2EACuE;IACvE,OAAO,CAAC,aAAa,CAAC,CAAsC;IAE5D,eAAe,IAAI,WAAW,GAAG,SAAS;IAI1C,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,KAAK,CAAC,MAAM,EAAE,GAAG;IAgBX,KAAK;IAOX,OAAO,CAAC,MAAM,EAAE,GAAG;IAKnB,OAAO;IAKP,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAYxE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,mBAAmB;CAM5B"}
@@ -17,6 +17,7 @@ import './factories/light.js';
17
17
  import './factories/wall.js';
18
18
  import './factories/floor-plate.js';
19
19
  import './factories/decal.js';
20
+ import './factories/backdrop.js';
20
21
  import './factories/line.js';
21
22
  import './factories/polyline.js';
22
23
  import './factories/ortholine.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/threed/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/threed/index.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export declare abstract class RealObject<T extends THREE.Object3D = THREE.Object
11
11
  private _lastText?;
12
12
  object3d: T;
13
13
  private _onchangeWrapper;
14
- static buildFillStyleTexture(component: Component): THREE.Texture<unknown> | undefined;
14
+ static buildFillStyleTexture(component: Component, fillStyleOverride?: unknown): THREE.Texture<unknown> | undefined;
15
15
  constructor(component: Component);
16
16
  update(): void;
17
17
  protected getObject3dInstance(): T;
@@ -1 +1 @@
1
- {"version":3,"file":"real-object.d.ts","sourceRoot":"","sources":["../../src/threed/real-object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"real-object.d.ts","sourceRoot":"","sources":["../../src/threed/real-object.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,wBAAwB,CAAA;AAK/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAU5E,8BAAsB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAE,YAAW,WAAW;IAChG,SAAS,CAAC,UAAU,EAAE,SAAS,CAAA;IAC/B,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAQ;IACnC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,iBAAiB,UAAQ;IACnC,OAAO,CAAC,SAAS,CAAC,CAAQ;IAEnB,QAAQ,EAAE,CAAC,CAAA;IAUlB,OAAO,CAAC,gBAAgB,CAIvB;IAED,MAAM,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO;gBAIlE,SAAS,EAAE,SAAS;IAOhC,MAAM;IAaN,SAAS,CAAC,mBAAmB,IAAI,CAAC;IAIlC,KAAK;IAOL,gBAAgB;IAMhB,OAAO,CAAC,YAAY;IAWpB,4DAA4D;IAC5D,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,oCAAoC;IACpC,IAAI,iBAAiB,IAAI,MAAM,EAAE,GAAG,IAAI,CAEvC;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,cAAc,IAAI,yBAAyB,GAAG,SAAS,CAS1D;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAK3B;IAED,OAAO;IAMP,KAAK;IAqBL,iBAAiB,UAAQ;IAEzB;;OAEG;IACH,eAAe;IAqBf,IAAI,QAAQ;;;;MAOX;IAED,IAAI,QAAQ;;;;MAQX;IAED,IAAI,KAAK;;;;MAUR;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,WAML;IAED,IAAI,EAAE,WAYL;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,aAAa,IAAI,MAAM,CAU1B;IAED;;;;;;;;;;;OAWG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAQ7B;IAED;;;;;;OAMG;IACH,SAAS,KAAK,cAAc,IAAI,OAAO,GAAG,OAAO,GAAG,UAAU,CAI7D;IAED,OAAO,CAAC,aAAa,CAAC,CAAa;IAEnC;;;;;;;;;;OAUG;IACH,IAAI,YAAY,IAAI,KAAK,CAAC,KAAK,CAO9B;IAED,IAAI,MAAM;;;;MAWT;IAED,eAAe;IAIf,iBAAiB;IAIjB,gBAAgB,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAEnE,IAAI,SAAS;eAFe,MAAM;gBAAU,MAAM;eAAS,MAAM;MAWhE;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,cAAc,IAAI,MAAM,CAU3B;IAGD,cAAc;IAKd,YAAY;IAKZ,WAAW;IAKX;;;;OAIG;IACH,kBAAkB;IA6ClB,eAAe;IAKf,WAAW;IAoBX,YAAY;IAIZ,iBAAiB;IACjB,eAAe;IACf,UAAU;IAEV;;;;;;;;;;;;;;;;;;;OAmBG;IACH,SAAS,CAAC,mBAAmB;IA8B7B;;;OAGG;IACH;;;;;;;;;;;OAWG;IACH,SAAS,KAAK,cAAc,IAAI,MAAM,CAQrC;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED;;;OAGG;IACH,gBAAgB;IAiChB;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAInC;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMrD,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;CAwE/C"}
@@ -37,6 +37,10 @@ export declare function buildGradientTexture(fillStyle: {
37
37
  }): THREE.CanvasTexture | undefined;
38
38
  /**
39
39
  * fillStyle 객체(pattern 또는 gradient)에 따라 적절한 텍스처를 생성한다.
40
+ *
41
+ * `fillStyleOverride`를 넘기면 component.state.fillStyle 대신 사용한다.
42
+ * Backdrop 처럼 한 컴포넌트가 여러 면에 서로 다른 fillStyle 을 적용하는
43
+ * 경우, frozen state 를 mutate 하지 않고 override 만 전달하면 된다.
40
44
  */
41
- export declare function buildFillStyleTexture(component: Component): THREE.Texture | undefined;
45
+ export declare function buildFillStyleTexture(component: Component, fillStyleOverride?: unknown): THREE.Texture | undefined;
42
46
  //# sourceMappingURL=fillstyle-texture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fillstyle-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/fillstyle-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAG1D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IACT,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACtD,EACD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,iBAAiB,GAAG,IAAI,CAyC1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAqGvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC1H,KAAK,CAAC,aAAa,GAAG,SAAS,CASjC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,SAAS,CAiBrF"}
1
+ {"version":3,"file":"fillstyle-texture.d.ts","sourceRoot":"","sources":["../../../src/threed/texture/fillstyle-texture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,SAAS,MAAM,+BAA+B,CAAA;AAG1D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IACT,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAClD,uDAAuD;IACvD,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACtD,EACD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,iBAAiB,GAAG,IAAI,CAyC1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAqGvF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GAC1H,KAAK,CAAC,aAAa,GAAG,SAAS,CASjC;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,EACpB,iBAAiB,CAAC,EAAE,OAAO,GAC1B,KAAK,CAAC,OAAO,GAAG,SAAS,CAkB3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.0.0-beta.80",
3
+ "version": "10.0.0-beta.81",
4
4
  "description": "A high-performance 2D/3D scene graph library for building interactive visual editors, combining HTML5 Canvas and Three.js to enable facility visualization, data-driven animations, and real-time monitoring dashboards",
5
5
  "main": "things-scene-min.js",
6
6
  "module": "things-scene.mjs",