@babylonjs/gui-editor 5.0.0-beta.5 → 5.0.0-beta.9

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.
@@ -31,640 +31,72 @@ declare module "@babylonjs/gui-editor/tools" {
31
31
  static reorderGrid(grid: Grid, index: number, control: Control, cell: Vector2): void;
32
32
  }
33
33
  }
34
- declare module "@babylonjs/gui-editor/diagram/GUIEditorNodeMaterial" {
35
- export const GUIEditorNodeMaterial: {
36
- tags: null;
37
- ignoreAlpha: boolean;
38
- maxSimultaneousLights: number;
39
- mode: number;
40
- id: string;
41
- name: string;
42
- checkReadyOnEveryCall: boolean;
43
- checkReadyOnlyOnce: boolean;
44
- state: string;
45
- alpha: number;
46
- backFaceCulling: boolean;
47
- cullBackFaces: boolean;
48
- sideOrientation: number;
49
- alphaMode: number;
50
- _needDepthPrePass: boolean;
51
- disableDepthWrite: boolean;
52
- disableColorWrite: boolean;
53
- forceDepthWrite: boolean;
54
- depthFunction: number;
55
- separateCullingPass: boolean;
56
- fogEnabled: boolean;
57
- pointSize: number;
58
- zOffset: number;
59
- zOffsetUnits: number;
60
- pointsCloud: boolean;
61
- fillMode: number;
62
- editorData: {
63
- locations: {
64
- blockId: number;
65
- x: number;
66
- y: number;
67
- }[];
68
- frames: {
69
- x: number;
70
- y: number;
71
- width: number;
72
- height: number;
73
- color: number[];
74
- name: string;
75
- isCollapsed: boolean;
76
- blocks: number[];
77
- }[];
78
- x: number;
79
- y: number;
80
- zoom: number;
81
- };
82
- customType: string;
83
- outputNodes: number[];
84
- blocks: ({
85
- customType: string;
86
- id: number;
87
- name: string;
88
- comments: string;
89
- visibleInInspector: boolean;
90
- visibleOnFrame: boolean;
91
- target: number;
92
- inputs: {
93
- name: string;
94
- inputName: string;
95
- targetBlockId: number;
96
- targetConnectionName: string;
97
- isExposedOnFrame: boolean;
98
- exposedPortPosition: number;
99
- }[];
100
- outputs: {
101
- name: string;
102
- }[];
103
- complementZ: number;
104
- complementW: number;
105
- type?: undefined;
106
- mode?: undefined;
107
- animationType?: undefined;
108
- min?: undefined;
109
- max?: undefined;
110
- isBoolean?: undefined;
111
- matrixMode?: undefined;
112
- isConstant?: undefined;
113
- groupInInspector?: undefined;
114
- convertToGammaSpace?: undefined;
115
- convertToLinearSpace?: undefined;
116
- systemValue?: undefined;
117
- rSwizzle?: undefined;
118
- gSwizzle?: undefined;
119
- bSwizzle?: undefined;
120
- aSwizzle?: undefined;
121
- operation?: undefined;
122
- xSwizzle?: undefined;
123
- ySwizzle?: undefined;
124
- zSwizzle?: undefined;
125
- wSwizzle?: undefined;
126
- valueType?: undefined;
127
- value?: undefined;
128
- fragmentOnly?: undefined;
129
- disableLevelMultiplication?: undefined;
130
- } | {
131
- customType: string;
132
- id: number;
133
- name: string;
134
- comments: string;
135
- visibleInInspector: boolean;
136
- visibleOnFrame: boolean;
137
- target: number;
138
- inputs: never[];
139
- outputs: {
140
- name: string;
141
- }[];
142
- type: number;
143
- mode: number;
144
- animationType: number;
145
- min: number;
146
- max: number;
147
- isBoolean: boolean;
148
- matrixMode: number;
149
- isConstant: boolean;
150
- groupInInspector: string;
151
- convertToGammaSpace: boolean;
152
- convertToLinearSpace: boolean;
153
- complementZ?: undefined;
154
- complementW?: undefined;
155
- systemValue?: undefined;
156
- rSwizzle?: undefined;
157
- gSwizzle?: undefined;
158
- bSwizzle?: undefined;
159
- aSwizzle?: undefined;
160
- operation?: undefined;
161
- xSwizzle?: undefined;
162
- ySwizzle?: undefined;
163
- zSwizzle?: undefined;
164
- wSwizzle?: undefined;
165
- valueType?: undefined;
166
- value?: undefined;
167
- fragmentOnly?: undefined;
168
- disableLevelMultiplication?: undefined;
169
- } | {
170
- customType: string;
171
- id: number;
172
- name: string;
173
- comments: string;
174
- visibleInInspector: boolean;
175
- visibleOnFrame: boolean;
176
- target: number;
177
- inputs: never[];
178
- outputs: {
179
- name: string;
180
- }[];
181
- type: number;
182
- mode: number;
183
- systemValue: number;
184
- animationType: number;
185
- min: number;
186
- max: number;
187
- isBoolean: boolean;
188
- matrixMode: number;
189
- isConstant: boolean;
190
- groupInInspector: string;
191
- convertToGammaSpace: boolean;
192
- convertToLinearSpace: boolean;
193
- complementZ?: undefined;
194
- complementW?: undefined;
195
- rSwizzle?: undefined;
196
- gSwizzle?: undefined;
197
- bSwizzle?: undefined;
198
- aSwizzle?: undefined;
199
- operation?: undefined;
200
- xSwizzle?: undefined;
201
- ySwizzle?: undefined;
202
- zSwizzle?: undefined;
203
- wSwizzle?: undefined;
204
- valueType?: undefined;
205
- value?: undefined;
206
- fragmentOnly?: undefined;
207
- disableLevelMultiplication?: undefined;
208
- } | {
209
- customType: string;
210
- id: number;
211
- name: string;
212
- comments: string;
213
- visibleInInspector: boolean;
214
- visibleOnFrame: boolean;
215
- target: number;
216
- inputs: ({
217
- name: string;
218
- displayName: string;
219
- inputName?: undefined;
220
- targetBlockId?: undefined;
221
- targetConnectionName?: undefined;
222
- isExposedOnFrame?: undefined;
223
- exposedPortPosition?: undefined;
224
- } | {
225
- name: string;
226
- displayName: string;
227
- inputName: string;
228
- targetBlockId: number;
229
- targetConnectionName: string;
230
- isExposedOnFrame: boolean;
231
- exposedPortPosition: number;
232
- })[];
233
- outputs: never[];
234
- convertToGammaSpace: boolean;
235
- convertToLinearSpace: boolean;
236
- complementZ?: undefined;
237
- complementW?: undefined;
238
- type?: undefined;
239
- mode?: undefined;
240
- animationType?: undefined;
241
- min?: undefined;
242
- max?: undefined;
243
- isBoolean?: undefined;
244
- matrixMode?: undefined;
245
- isConstant?: undefined;
246
- groupInInspector?: undefined;
247
- systemValue?: undefined;
248
- rSwizzle?: undefined;
249
- gSwizzle?: undefined;
250
- bSwizzle?: undefined;
251
- aSwizzle?: undefined;
252
- operation?: undefined;
253
- xSwizzle?: undefined;
254
- ySwizzle?: undefined;
255
- zSwizzle?: undefined;
256
- wSwizzle?: undefined;
257
- valueType?: undefined;
258
- value?: undefined;
259
- fragmentOnly?: undefined;
260
- disableLevelMultiplication?: undefined;
261
- } | {
262
- customType: string;
263
- id: number;
264
- name: string;
265
- comments: string;
266
- visibleInInspector: boolean;
267
- visibleOnFrame: boolean;
268
- target: number;
269
- inputs: ({
270
- name: string;
271
- displayName: string;
272
- inputName: string;
273
- targetBlockId: number;
274
- targetConnectionName: string;
275
- isExposedOnFrame: boolean;
276
- exposedPortPosition: number;
277
- } | {
278
- name: string;
279
- displayName: string;
280
- isExposedOnFrame: boolean;
281
- exposedPortPosition: number;
282
- inputName?: undefined;
283
- targetBlockId?: undefined;
284
- targetConnectionName?: undefined;
285
- })[];
286
- outputs: {
287
- name: string;
288
- displayName: string;
289
- }[];
290
- complementZ?: undefined;
291
- complementW?: undefined;
292
- type?: undefined;
293
- mode?: undefined;
294
- animationType?: undefined;
295
- min?: undefined;
296
- max?: undefined;
297
- isBoolean?: undefined;
298
- matrixMode?: undefined;
299
- isConstant?: undefined;
300
- groupInInspector?: undefined;
301
- convertToGammaSpace?: undefined;
302
- convertToLinearSpace?: undefined;
303
- systemValue?: undefined;
304
- rSwizzle?: undefined;
305
- gSwizzle?: undefined;
306
- bSwizzle?: undefined;
307
- aSwizzle?: undefined;
308
- operation?: undefined;
309
- xSwizzle?: undefined;
310
- ySwizzle?: undefined;
311
- zSwizzle?: undefined;
312
- wSwizzle?: undefined;
313
- valueType?: undefined;
314
- value?: undefined;
315
- fragmentOnly?: undefined;
316
- disableLevelMultiplication?: undefined;
317
- } | {
318
- customType: string;
319
- id: number;
320
- name: string;
321
- comments: string;
322
- visibleInInspector: boolean;
323
- visibleOnFrame: boolean;
324
- target: number;
325
- inputs: ({
326
- name: string;
327
- displayName: string;
328
- inputName?: undefined;
329
- targetBlockId?: undefined;
330
- targetConnectionName?: undefined;
331
- isExposedOnFrame?: undefined;
332
- exposedPortPosition?: undefined;
333
- } | {
334
- name: string;
335
- displayName: string;
336
- inputName: string;
337
- targetBlockId: number;
338
- targetConnectionName: string;
339
- isExposedOnFrame: boolean;
340
- exposedPortPosition: number;
341
- })[];
342
- outputs: {
343
- name: string;
344
- displayName: string;
345
- }[];
346
- rSwizzle: string;
347
- gSwizzle: string;
348
- bSwizzle: string;
349
- aSwizzle: string;
350
- complementZ?: undefined;
351
- complementW?: undefined;
352
- type?: undefined;
353
- mode?: undefined;
354
- animationType?: undefined;
355
- min?: undefined;
356
- max?: undefined;
357
- isBoolean?: undefined;
358
- matrixMode?: undefined;
359
- isConstant?: undefined;
360
- groupInInspector?: undefined;
361
- convertToGammaSpace?: undefined;
362
- convertToLinearSpace?: undefined;
363
- systemValue?: undefined;
364
- operation?: undefined;
365
- xSwizzle?: undefined;
366
- ySwizzle?: undefined;
367
- zSwizzle?: undefined;
368
- wSwizzle?: undefined;
369
- valueType?: undefined;
370
- value?: undefined;
371
- fragmentOnly?: undefined;
372
- disableLevelMultiplication?: undefined;
373
- } | {
374
- customType: string;
375
- id: number;
376
- name: string;
377
- comments: string;
378
- visibleInInspector: boolean;
379
- visibleOnFrame: boolean;
380
- target: number;
381
- inputs: {
382
- name: string;
383
- inputName: string;
384
- targetBlockId: number;
385
- targetConnectionName: string;
386
- isExposedOnFrame: boolean;
387
- exposedPortPosition: number;
388
- }[];
389
- outputs: {
390
- name: string;
391
- }[];
392
- operation: number;
393
- complementZ?: undefined;
394
- complementW?: undefined;
395
- type?: undefined;
396
- mode?: undefined;
397
- animationType?: undefined;
398
- min?: undefined;
399
- max?: undefined;
400
- isBoolean?: undefined;
401
- matrixMode?: undefined;
402
- isConstant?: undefined;
403
- groupInInspector?: undefined;
404
- convertToGammaSpace?: undefined;
405
- convertToLinearSpace?: undefined;
406
- systemValue?: undefined;
407
- rSwizzle?: undefined;
408
- gSwizzle?: undefined;
409
- bSwizzle?: undefined;
410
- aSwizzle?: undefined;
411
- xSwizzle?: undefined;
412
- ySwizzle?: undefined;
413
- zSwizzle?: undefined;
414
- wSwizzle?: undefined;
415
- valueType?: undefined;
416
- value?: undefined;
417
- fragmentOnly?: undefined;
418
- disableLevelMultiplication?: undefined;
419
- } | {
420
- customType: string;
421
- id: number;
422
- name: string;
423
- comments: string;
424
- visibleInInspector: boolean;
425
- visibleOnFrame: boolean;
426
- target: number;
427
- inputs: ({
428
- name: string;
429
- inputName?: undefined;
430
- targetBlockId?: undefined;
431
- targetConnectionName?: undefined;
432
- isExposedOnFrame?: undefined;
433
- exposedPortPosition?: undefined;
434
- } | {
435
- name: string;
436
- inputName: string;
437
- targetBlockId: number;
438
- targetConnectionName: string;
439
- isExposedOnFrame: boolean;
440
- exposedPortPosition: number;
441
- })[];
442
- outputs: {
443
- name: string;
444
- }[];
445
- xSwizzle: string;
446
- ySwizzle: string;
447
- zSwizzle: string;
448
- wSwizzle: string;
449
- complementZ?: undefined;
450
- complementW?: undefined;
451
- type?: undefined;
452
- mode?: undefined;
453
- animationType?: undefined;
454
- min?: undefined;
455
- max?: undefined;
456
- isBoolean?: undefined;
457
- matrixMode?: undefined;
458
- isConstant?: undefined;
459
- groupInInspector?: undefined;
460
- convertToGammaSpace?: undefined;
461
- convertToLinearSpace?: undefined;
462
- systemValue?: undefined;
463
- rSwizzle?: undefined;
464
- gSwizzle?: undefined;
465
- bSwizzle?: undefined;
466
- aSwizzle?: undefined;
467
- operation?: undefined;
468
- valueType?: undefined;
469
- value?: undefined;
470
- fragmentOnly?: undefined;
471
- disableLevelMultiplication?: undefined;
472
- } | {
473
- customType: string;
474
- id: number;
475
- name: string;
476
- comments: string;
477
- visibleInInspector: boolean;
478
- visibleOnFrame: boolean;
479
- target: number;
480
- inputs: ({
481
- name: string;
482
- inputName: string;
483
- targetBlockId: number;
484
- targetConnectionName: string;
485
- isExposedOnFrame: boolean;
486
- exposedPortPosition: number;
487
- } | {
488
- name: string;
489
- isExposedOnFrame: boolean;
490
- exposedPortPosition: number;
491
- inputName?: undefined;
492
- targetBlockId?: undefined;
493
- targetConnectionName?: undefined;
494
- } | {
495
- name: string;
496
- inputName?: undefined;
497
- targetBlockId?: undefined;
498
- targetConnectionName?: undefined;
499
- isExposedOnFrame?: undefined;
500
- exposedPortPosition?: undefined;
501
- })[];
502
- outputs: {
503
- name: string;
504
- }[];
505
- complementZ?: undefined;
506
- complementW?: undefined;
507
- type?: undefined;
508
- mode?: undefined;
509
- animationType?: undefined;
510
- min?: undefined;
511
- max?: undefined;
512
- isBoolean?: undefined;
513
- matrixMode?: undefined;
514
- isConstant?: undefined;
515
- groupInInspector?: undefined;
516
- convertToGammaSpace?: undefined;
517
- convertToLinearSpace?: undefined;
518
- systemValue?: undefined;
519
- rSwizzle?: undefined;
520
- gSwizzle?: undefined;
521
- bSwizzle?: undefined;
522
- aSwizzle?: undefined;
523
- operation?: undefined;
524
- xSwizzle?: undefined;
525
- ySwizzle?: undefined;
526
- zSwizzle?: undefined;
527
- wSwizzle?: undefined;
528
- valueType?: undefined;
529
- value?: undefined;
530
- fragmentOnly?: undefined;
531
- disableLevelMultiplication?: undefined;
532
- } | {
533
- customType: string;
534
- id: number;
535
- name: string;
536
- comments: string;
537
- visibleInInspector: boolean;
538
- visibleOnFrame: boolean;
539
- target: number;
540
- inputs: never[];
541
- outputs: {
542
- name: string;
543
- }[];
544
- type: number;
545
- mode: number;
546
- animationType: number;
547
- min: number;
548
- max: number;
549
- isBoolean: boolean;
550
- matrixMode: number;
551
- isConstant: boolean;
552
- groupInInspector: string;
553
- convertToGammaSpace: boolean;
554
- convertToLinearSpace: boolean;
555
- valueType: string;
556
- value: number[];
557
- complementZ?: undefined;
558
- complementW?: undefined;
559
- systemValue?: undefined;
560
- rSwizzle?: undefined;
561
- gSwizzle?: undefined;
562
- bSwizzle?: undefined;
563
- aSwizzle?: undefined;
564
- operation?: undefined;
565
- xSwizzle?: undefined;
566
- ySwizzle?: undefined;
567
- zSwizzle?: undefined;
568
- wSwizzle?: undefined;
569
- fragmentOnly?: undefined;
570
- disableLevelMultiplication?: undefined;
571
- } | {
572
- customType: string;
573
- id: number;
574
- name: string;
575
- comments: string;
576
- visibleInInspector: boolean;
577
- visibleOnFrame: boolean;
578
- target: number;
579
- inputs: never[];
580
- outputs: {
581
- name: string;
582
- }[];
583
- type: number;
584
- mode: number;
585
- animationType: number;
586
- min: number;
587
- max: number;
588
- isBoolean: boolean;
589
- matrixMode: number;
590
- isConstant: boolean;
591
- groupInInspector: string;
592
- convertToGammaSpace: boolean;
593
- convertToLinearSpace: boolean;
594
- valueType: string;
595
- value: number;
596
- complementZ?: undefined;
597
- complementW?: undefined;
598
- systemValue?: undefined;
599
- rSwizzle?: undefined;
600
- gSwizzle?: undefined;
601
- bSwizzle?: undefined;
602
- aSwizzle?: undefined;
603
- operation?: undefined;
604
- xSwizzle?: undefined;
605
- ySwizzle?: undefined;
606
- zSwizzle?: undefined;
607
- wSwizzle?: undefined;
608
- fragmentOnly?: undefined;
609
- disableLevelMultiplication?: undefined;
610
- } | {
611
- customType: string;
612
- id: number;
613
- name: string;
614
- comments: string;
615
- visibleInInspector: boolean;
616
- visibleOnFrame: boolean;
617
- target: number;
618
- inputs: ({
619
- name: string;
620
- displayName: string;
621
- inputName: string;
622
- targetBlockId: number;
623
- targetConnectionName: string;
624
- isExposedOnFrame: boolean;
625
- exposedPortPosition: number;
626
- } | {
627
- name: string;
628
- displayName: string;
629
- inputName?: undefined;
630
- targetBlockId?: undefined;
631
- targetConnectionName?: undefined;
632
- isExposedOnFrame?: undefined;
633
- exposedPortPosition?: undefined;
634
- })[];
635
- outputs: {
636
- name: string;
637
- displayName: string;
638
- }[];
639
- convertToGammaSpace: boolean;
640
- convertToLinearSpace: boolean;
641
- fragmentOnly: boolean;
642
- disableLevelMultiplication: boolean;
643
- complementZ?: undefined;
644
- complementW?: undefined;
645
- type?: undefined;
646
- mode?: undefined;
647
- animationType?: undefined;
648
- min?: undefined;
649
- max?: undefined;
650
- isBoolean?: undefined;
651
- matrixMode?: undefined;
652
- isConstant?: undefined;
653
- groupInInspector?: undefined;
654
- systemValue?: undefined;
655
- rSwizzle?: undefined;
656
- gSwizzle?: undefined;
657
- bSwizzle?: undefined;
658
- aSwizzle?: undefined;
659
- operation?: undefined;
660
- xSwizzle?: undefined;
661
- ySwizzle?: undefined;
662
- zSwizzle?: undefined;
663
- wSwizzle?: undefined;
664
- valueType?: undefined;
665
- value?: undefined;
666
- })[];
667
- };
34
+ declare module "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent" {
35
+ export class PropertyChangedEvent {
36
+ object: any;
37
+ property: string;
38
+ value: any;
39
+ initialValue: any;
40
+ allowNullValue?: boolean;
41
+ }
42
+ }
43
+ declare module "@babylonjs/gui-editor/diagram/coordinateHelper" {
44
+ import { Control } from "@babylonjs/gui/2D/controls/control";
45
+ import { Matrix2D } from "@babylonjs/gui/2D/math2D";
46
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
47
+ import { Observable } from "@babylonjs/core/Misc/observable";
48
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
49
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
50
+ export type DimensionProperties = "width" | "left" | "height" | "top" | "paddingLeft" | "paddingRight" | "paddingTop" | "paddingBottom";
51
+ export class Rect {
52
+ top: number;
53
+ left: number;
54
+ right: number;
55
+ bottom: number;
56
+ constructor(left: number, top: number, right: number, bottom: number);
57
+ get center(): Vector2;
58
+ get width(): number;
59
+ get height(): number;
60
+ }
61
+ export class CoordinateHelper {
62
+ private static _matrixCache;
63
+ static globalState: GlobalState;
64
+ /**
65
+ * Get the scaling of a specific GUI control
66
+ * @param node the node for which we are getting the scaling
67
+ * @param relative should we return only the relative scaling (relative to the parent)
68
+ * @returns an X,Y vector of the scaling
69
+ */
70
+ static getScale(node: Control, relative?: boolean): Vector2;
71
+ static getRotation(node: Control, relative?: boolean): number;
72
+ /**
73
+ * This function calculates a local matrix for a node, including it's full transformation and pivot point
74
+ *
75
+ * @param node the node to calculate the matrix for
76
+ * @param useStoredValues should the stored (cached) values be used to calculate the matrix
77
+ * @returns a new matrix for the control
78
+ */
79
+ static getNodeMatrix(node: Control, storedValues?: Rect): Matrix2D;
80
+ /**
81
+ * Using the node's tree, calculate its world matrix and return it
82
+ * @param node the node to calculate the matrix for
83
+ * @param useStoredValuesIfPossible used stored valued (cached when pointer down is clicked)
84
+ * @returns the world matrix for this node
85
+ */
86
+ static nodeToRTTWorldMatrix(node: Control, storedValues?: Rect): Matrix2D;
87
+ static nodeToRTTSpace(node: Control, x: number, y: number, reference?: Vector2, storedValues?: Rect): Vector2;
88
+ static rttToLocalNodeSpace(node: Control, x: number, y: number, reference?: Vector2, storedValues?: Rect): Vector2;
89
+ static rttToCanvasSpace(x: number, y: number): Vector2;
90
+ static mousePointerToRTTSpace(node: Control, x?: number, y?: number): Vector2;
91
+ private static resetMatrixArray;
92
+ static computeLocalBounds(node: Control): Rect;
93
+ /**
94
+ * converts a node's dimensions to percentage, properties can be specified as a list, or can convert all
95
+ */
96
+ static convertToPercentage(guiControl: Control, properties?: DimensionProperties[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>): void;
97
+ static round(value: number): number;
98
+ static convertToPixels(guiControl: Control, properties?: DimensionProperties[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>): void;
99
+ }
668
100
  }
669
101
  declare module "@babylonjs/gui-editor/diagram/workbench" {
670
102
  import * as React from "react";
@@ -673,12 +105,9 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
673
105
  import { Control } from "@babylonjs/gui/2D/controls/control";
674
106
  import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
675
107
  import { Scene } from "@babylonjs/core/scene";
676
- import { ArcRotateCamera } from "@babylonjs/core/Cameras/arcRotateCamera";
677
- import { Mesh } from "@babylonjs/core/Meshes/mesh";
678
- import { Plane } from "@babylonjs/core/Maths/math.plane";
679
- import { PointerInfo } from "@babylonjs/core/Events/pointerEvents";
680
- import { EventState } from "@babylonjs/core/Misc/observable";
681
- import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
108
+ import { IWheelEvent } from "@babylonjs/core/Events/deviceInputEvents";
109
+ import { Container } from "@babylonjs/gui/2D/controls/container";
110
+ import { ISize } from "@babylonjs/core/Maths/math";
682
111
  export interface IWorkbenchComponentProps {
683
112
  globalState: GlobalState;
684
113
  }
@@ -688,12 +117,10 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
688
117
  Y = 3
689
118
  }
690
119
  export class WorkbenchComponent extends React.Component<IWorkbenchComponentProps> {
691
- artBoardBackground: Rectangle;
692
120
  private _rootContainer;
693
121
  private _setConstraintDirection;
694
122
  private _mouseStartPointX;
695
123
  private _mouseStartPointY;
696
- _textureMesh: Mesh;
697
124
  _scene: Scene;
698
125
  private _selectedGuiNodes;
699
126
  private _ctrlKeyIsPressed;
@@ -709,9 +136,6 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
709
136
  private _isOverGUINode;
710
137
  private _clipboard;
711
138
  private _selectAll;
712
- _camera: ArcRotateCamera;
713
- private _cameraRadias;
714
- private _cameraMaxRadiasFactor;
715
139
  private _pasted;
716
140
  private _engine;
717
141
  private _liveRenderObserver;
@@ -721,6 +145,26 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
721
145
  private _doubleClick;
722
146
  private _lockMainSelection;
723
147
  _liveGuiTextureRerender: boolean;
148
+ private _anyControlClicked;
149
+ private _visibleRegionContainer;
150
+ get visibleRegionContainer(): Container;
151
+ private _panAndZoomContainer;
152
+ get panAndZoomContainer(): Container;
153
+ private _trueRootContainer;
154
+ set trueRootContainer(value: Container);
155
+ get trueRootContainer(): Container;
156
+ private _nextLiveGuiRender;
157
+ private _liveGuiRerenderDelay;
158
+ private _defaultGUISize;
159
+ private _initialPanningOffset;
160
+ private _panningOffset;
161
+ private _zoomFactor;
162
+ private _zoomModeIncrement;
163
+ private _guiSize;
164
+ get guiSize(): ISize;
165
+ set guiSize(value: ISize);
166
+ applyEditorTransformation(): void;
167
+ removeEditorTransformation(): void;
724
168
  get globalState(): GlobalState;
725
169
  get nodes(): Control[];
726
170
  get selectedGuiNodes(): Control[];
@@ -731,7 +175,6 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
731
175
  keyEvent: (evt: KeyboardEvent) => void;
732
176
  private updateHitTest;
733
177
  private updateHitTestForSelection;
734
- private setCameraRadius;
735
178
  copyToClipboard(): void;
736
179
  pasteFromClipboard(): void;
737
180
  CopyGUIControl(original: Control): void;
@@ -742,7 +185,6 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
742
185
  loadFromSnippet(snippetId: string): Promise<void>;
743
186
  loadToEditor(): void;
744
187
  changeSelectionHighlight(value: boolean): void;
745
- resizeGuiTexture(newvalue: Vector2): void;
746
188
  findNodeFromGuiElement(guiControl: Control): Control;
747
189
  appendBlock(guiElement: Control): Control;
748
190
  private _isMainSelectionParent;
@@ -755,32 +197,22 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
755
197
  isSelected(value: boolean, guiNode: Control): void;
756
198
  clicked: boolean;
757
199
  _onMove(guiControl: Control, evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
758
- convertToPercentage(guiControl: Control, includeScale: boolean): void;
759
200
  onMove(evt: React.PointerEvent): void;
760
- getGroundPosition(): Nullable<Vector3>;
201
+ private _screenToTexturePosition;
202
+ private getScaledPointerPosition;
761
203
  onDown(evt: React.PointerEvent<HTMLElement>): void;
762
204
  isUp: boolean;
763
205
  onUp(evt: React.PointerEvent): void;
764
206
  createGUICanvas(): void;
765
207
  synchronizeLiveGUI(): void;
766
- addControls(scene: Scene, camera: ArcRotateCamera): void;
767
- getPosition(scene: Scene, camera: ArcRotateCamera, plane: Plane, x?: number, y?: number): Vector3;
768
- panning(newPos: Vector3, initialPos: Vector3, inertia: number, ref: Vector3): Vector3;
769
- zoomWheel(p: PointerInfo, e: EventState, camera: ArcRotateCamera): number;
770
- zooming(delta: number, scene: Scene, camera: ArcRotateCamera, plane: Plane, ref: Vector3): void;
208
+ addControls(scene: Scene): void;
209
+ panning(): void;
210
+ zoomWheel(event: IWheelEvent): number;
211
+ zooming(delta: number): void;
771
212
  zeroIfClose(vec: Vector3): void;
772
213
  render(): JSX.Element;
773
214
  }
774
215
  }
775
- declare module "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent" {
776
- export class PropertyChangedEvent {
777
- object: any;
778
- property: string;
779
- value: any;
780
- initialValue: any;
781
- allowNullValue?: boolean;
782
- }
783
- }
784
216
  declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
785
217
  /**
786
218
  * Class used to provide lock mechanism
@@ -793,10 +225,10 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lock
793
225
  }
794
226
  }
795
227
  declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
796
- import { Control } from "@babylonjs/gui/2D/controls/control";
797
228
  import { Vector2 } from "@babylonjs/core/Maths/math.vector";
798
229
  import * as React from "react";
799
230
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
231
+ import { Rect } from "@babylonjs/gui-editor/diagram/coordinateHelper";
800
232
  export interface IGuiGizmoProps {
801
233
  globalState: GlobalState;
802
234
  }
@@ -814,16 +246,6 @@ declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
814
246
  rotation: number;
815
247
  isPivot: boolean;
816
248
  }
817
- class Rect {
818
- top: number;
819
- left: number;
820
- right: number;
821
- bottom: number;
822
- constructor(left: number, top: number, right: number, bottom: number);
823
- get center(): Vector2;
824
- get width(): number;
825
- get height(): number;
826
- }
827
249
  interface IGuiGizmoState {
828
250
  canvasBounds: Rect;
829
251
  scalePoints: IScalePoint[];
@@ -831,12 +253,8 @@ declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
831
253
  isRotating: boolean;
832
254
  }
833
255
  export class GuiGizmoComponent extends React.Component<IGuiGizmoProps, IGuiGizmoState> {
834
- private _matrixCache;
835
256
  private _responsive;
836
- private _initH;
837
- private _initW;
838
- private _initX;
839
- private _initY;
257
+ private _storedValues;
840
258
  private _localBounds;
841
259
  private _rotation;
842
260
  constructor(props: IGuiGizmoProps);
@@ -846,41 +264,11 @@ declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
846
264
  * @param force should the update be forced. otherwise it will be updated only when the pointer is down
847
265
  */
848
266
  updateGizmo(force?: boolean): void;
849
- private _resetMatrixArray;
850
- /**
851
- * This function calculates a local matrix for a node, including it's full transformation and pivot point
852
- *
853
- * @param node the node to calculate the matrix for
854
- * @param useStoredValues should the stored (cached) values be used to calculate the matrix
855
- * @returns a new matrix for the control
856
- */
857
- private _getNodeMatrix;
858
- /**
859
- * Using the node's tree, calculate its world matrix and return it
860
- * @param node the node to calculate the matrix for
861
- * @param useStoredValuesIfPossible used stored valued (cached when pointer down is clicked)
862
- * @returns the world matrix for this node
863
- */
864
- private _nodeToRTTWorldMatrix;
865
- private _nodeToRTTSpace;
866
- private _rttToLocalNodeSpace;
867
- private _rttToCanvasSpace;
868
- private _plane;
869
- private _mousePointerToRTTSpace;
870
- /**
871
- * Get the scaling of a specific GUI control
872
- * @param node the node for which we are getting the scaling
873
- * @param relative should we return only the relative scaling (relative to the parent)
874
- * @returns an X,Y vector of the scaling
875
- */
876
- getScale(node: Control, relative?: boolean): Vector2;
877
- getRotation(node: Control, relative?: boolean): number;
878
267
  onUp(evt?: React.PointerEvent): void;
879
268
  private _onUp;
880
269
  onMove(evt: React.PointerEvent): void;
881
270
  private _onMove;
882
271
  private _rotate;
883
- private _computeLocalBounds;
884
272
  private _dragLocalBounds;
885
273
  private _updateNodeFromLocalBounds;
886
274
  private _beginDraggingScalePoint;
@@ -892,15 +280,15 @@ declare module "@babylonjs/gui-editor/globalState" {
892
280
  import { Nullable } from "@babylonjs/core/types";
893
281
  import { Observable } from "@babylonjs/core/Misc/observable";
894
282
  import { LogEntry } from "@babylonjs/gui-editor/components/log/logComponent";
895
- import { Color4 } from "@babylonjs/core/Maths/math.color";
283
+ import { Color3 } from "@babylonjs/core/Maths/math.color";
896
284
  import { WorkbenchComponent } from "@babylonjs/gui-editor/diagram/workbench";
897
285
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
898
286
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
899
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
900
287
  import { Scene } from "@babylonjs/core/scene";
901
288
  import { Control } from "@babylonjs/gui/2D/controls/control";
902
289
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
903
290
  import { GuiGizmoComponent } from "@babylonjs/gui-editor/diagram/guiGizmo";
291
+ import { ISize } from "@babylonjs/core/Maths/math";
904
292
  export enum DragOverLocation {
905
293
  ABOVE = 0,
906
294
  BELOW = 1,
@@ -915,7 +303,7 @@ declare module "@babylonjs/gui-editor/globalState" {
915
303
  hostDocument: HTMLDocument;
916
304
  hostWindow: Window;
917
305
  onSelectionChangedObservable: Observable<Nullable<Control>>;
918
- onResizeObservable: Observable<Vector2>;
306
+ onResizeObservable: Observable<ISize>;
919
307
  onBuiltObservable: Observable<void>;
920
308
  onResetRequiredObservable: Observable<void>;
921
309
  onUpdateRequiredObservable: Observable<void>;
@@ -926,7 +314,7 @@ declare module "@babylonjs/gui-editor/globalState" {
926
314
  onNewSceneObservable: Observable<Nullable<Scene>>;
927
315
  onGuiNodeRemovalObservable: Observable<Control>;
928
316
  onPopupClosedObservable: Observable<void>;
929
- backgroundColor: Color4;
317
+ _backgroundColor: Color3;
930
318
  blockKeyboardEvents: boolean;
931
319
  controlCamera: boolean;
932
320
  selectionLock: boolean;
@@ -950,6 +338,8 @@ declare module "@babylonjs/gui-editor/globalState" {
950
338
  onDraggingStartObservable: Observable<void>;
951
339
  onWindowResizeObservable: Observable<void>;
952
340
  onGizmoUpdateRequireObservable: Observable<void>;
341
+ onArtBoardUpdateRequiredObservable: Observable<void>;
342
+ onBackgroundColorChangeObservable: Observable<void>;
953
343
  draggedControl: Nullable<Control>;
954
344
  draggedControlDirection: DragOverLocation;
955
345
  isSaving: boolean;
@@ -964,6 +354,8 @@ declare module "@babylonjs/gui-editor/globalState" {
964
354
  action: (data: string) => Promise<string>;
965
355
  };
966
356
  constructor();
357
+ get backgroundColor(): Color3;
358
+ set backgroundColor(value: Color3);
967
359
  }
968
360
  }
969
361
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/buttonLineComponent" {
@@ -997,6 +389,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileButtonLineCom
997
389
  render(): JSX.Element;
998
390
  }
999
391
  }
392
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/targetsProxy" {
393
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
394
+ import { Observable } from "@babylonjs/core/Misc/observable";
395
+ export const conflictingValuesPlaceholder = "\u2014";
396
+ /**
397
+ *
398
+ * @param propertyName the property that the input changes
399
+ * @param targets a list of selected targets
400
+ * @param defaultValue the value that should be returned when two targets have conflicting values
401
+ * @param setter an optional setter function to override the default setter behavior
402
+ * @returns a proxy object that can be passed as a target into the input
403
+ */
404
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
405
+ }
1000
406
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineComponent" {
1001
407
  import * as React from "react";
1002
408
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -1018,6 +424,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
1018
424
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
1019
425
  isSelected: boolean;
1020
426
  isDisabled?: boolean;
427
+ isConflict: boolean;
1021
428
  }> {
1022
429
  private static _UniqueIdSeed;
1023
430
  private _uniqueId;
@@ -1026,6 +433,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
1026
433
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
1027
434
  isSelected: boolean;
1028
435
  isDisabled: boolean;
436
+ isConflict: boolean;
1029
437
  }): boolean;
1030
438
  onChange(): void;
1031
439
  render(): JSX.Element;
@@ -1088,6 +496,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
1088
496
  icon?: string;
1089
497
  iconLabel?: string;
1090
498
  defaultValue?: number;
499
+ unit?: string;
500
+ onUnitClicked?: () => void;
501
+ unitLocked?: boolean;
1091
502
  }
1092
503
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1093
504
  value: string;
@@ -1096,6 +507,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
1096
507
  private _store;
1097
508
  constructor(props: IFloatLineComponentProps);
1098
509
  componentWillUnmount(): void;
510
+ getValueString(value: any): string;
1099
511
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1100
512
  value: string;
1101
513
  }): boolean;
@@ -1161,6 +573,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
1161
573
  noUnderline?: boolean;
1162
574
  numbersOnly?: boolean;
1163
575
  delayInput?: boolean;
576
+ unit?: string;
577
+ onUnitClicked?: (unit: string) => void;
578
+ unitLocked?: boolean;
1164
579
  }
1165
580
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
1166
581
  value: string;
@@ -1317,52 +732,59 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerCompon
1317
732
  constructor(props: IColorPickerComponentProps);
1318
733
  syncPositions(): void;
1319
734
  shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
735
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
736
+ children?: React.ReactNode;
737
+ }>): string;
1320
738
  componentDidUpdate(): void;
1321
739
  componentDidMount(): void;
1322
740
  render(): JSX.Element;
1323
741
  }
1324
742
  }
1325
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineComponent" {
743
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorLineComponent" {
1326
744
  import * as React from "react";
1327
745
  import { Observable } from "@babylonjs/core/Misc/observable";
746
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
1328
747
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1329
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
1330
748
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1331
- export interface IColor3LineComponentProps {
749
+ export interface IColorLineComponentProps {
1332
750
  label: string;
1333
- target: any;
751
+ target?: any;
1334
752
  propertyName: string;
1335
753
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
754
+ onChange?: () => void;
1336
755
  isLinear?: boolean;
1337
756
  icon?: string;
1338
- lockObject?: LockObject;
1339
757
  iconLabel?: string;
1340
- onValueChange?: (value: string) => void;
758
+ lockObject?: LockObject;
759
+ disableAlpha?: boolean;
1341
760
  }
1342
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
761
+ interface IColorLineComponentState {
1343
762
  isExpanded: boolean;
1344
- color: Color3 | Color4;
1345
- colorText: string;
1346
- }> {
1347
- private _localChange;
1348
- constructor(props: IColor3LineComponentProps);
1349
- private convertToColor3;
1350
- shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
1351
- color: Color3 | Color4;
1352
- colorText: string;
1353
- }): boolean;
1354
- setPropertyValue(newColor: Color3 | Color4, newColorText: string): void;
1355
- onChange(newValue: string): void;
763
+ color: Color4;
764
+ colorString: string;
765
+ }
766
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
767
+ constructor(props: IColorLineComponentProps);
768
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
769
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
770
+ children?: React.ReactNode;
771
+ }>): Color4;
772
+ getValueAsString(props?: Readonly<IColorLineComponentProps> & Readonly<{
773
+ children?: React.ReactNode;
774
+ }>): string;
775
+ setColorFromString(colorString: string): void;
776
+ setColor(color: Color4): void;
777
+ updateColor(newColor: Color4): void;
1356
778
  switchExpandState(): void;
1357
- raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
1358
779
  updateStateR(value: number): void;
1359
780
  updateStateG(value: number): void;
1360
781
  updateStateB(value: number): void;
782
+ updateStateA(value: number): void;
1361
783
  copyToClipboard(): void;
1362
- convert(colorString: string): void;
1363
- private _colorStringSaved;
1364
- private _colorPickerOpen;
1365
- private _colorString;
784
+ get colorString(): string;
785
+ set colorString(_: string);
786
+ private convertToColor;
787
+ private toColor3;
1366
788
  render(): JSX.Element;
1367
789
  }
1368
790
  }
@@ -1373,13 +795,11 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1373
795
  import { Control } from "@babylonjs/gui/2D/controls/control";
1374
796
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1375
797
  interface ICommonControlPropertyGridComponentProps {
1376
- control: Control;
798
+ controls: Control[];
1377
799
  lockObject: LockObject;
1378
800
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1379
801
  }
1380
802
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
1381
- private _width;
1382
- private _height;
1383
803
  constructor(props: ICommonControlPropertyGridComponentProps);
1384
804
  private _updateAlignment;
1385
805
  private _checkAndUpdateValues;
@@ -1395,7 +815,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1395
815
  import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1396
816
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1397
817
  interface ISliderPropertyGridComponentProps {
1398
- slider: Slider | ImageBasedSlider;
818
+ sliders: (Slider | ImageBasedSlider)[];
1399
819
  lockObject: LockObject;
1400
820
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1401
821
  }
@@ -1411,7 +831,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1411
831
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1412
832
  import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1413
833
  interface ISliderGenericPropertyGridComponentProps {
1414
- slider: Slider;
834
+ sliders: Slider[];
1415
835
  lockObject: LockObject;
1416
836
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1417
837
  }
@@ -1427,7 +847,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/l
1427
847
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1428
848
  import { Line } from "@babylonjs/gui/2D/controls/line";
1429
849
  interface ILinePropertyGridComponentProps {
1430
- line: Line;
850
+ lines: Line[];
1431
851
  lockObject: LockObject;
1432
852
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1433
853
  }
@@ -1444,7 +864,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/r
1444
864
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1445
865
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1446
866
  interface IRadioButtonPropertyGridComponentProps {
1447
- radioButton: RadioButton;
867
+ radioButtons: RadioButton[];
1448
868
  lockObject: LockObject;
1449
869
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1450
870
  }
@@ -1494,7 +914,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/t
1494
914
  import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1495
915
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1496
916
  interface ITextBlockPropertyGridComponentProps {
1497
- textBlock: TextBlock;
917
+ textBlocks: TextBlock[];
1498
918
  lockObject: LockObject;
1499
919
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1500
920
  }
@@ -1510,7 +930,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1510
930
  import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1511
931
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1512
932
  interface IInputTextPropertyGridComponentProps {
1513
- inputText: InputText;
933
+ inputTexts: InputText[];
1514
934
  lockObject: LockObject;
1515
935
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1516
936
  }
@@ -1519,6 +939,26 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1519
939
  render(): JSX.Element;
1520
940
  }
1521
941
  }
942
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineComponent" {
943
+ import * as React from "react";
944
+ import { Observable } from "@babylonjs/core/Misc/observable";
945
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
946
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
947
+ export interface IColor3LineComponentProps {
948
+ label: string;
949
+ target: any;
950
+ propertyName: string;
951
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
952
+ isLinear?: boolean;
953
+ icon?: string;
954
+ lockObject?: LockObject;
955
+ iconLabel?: string;
956
+ onValueChange?: (value: string) => void;
957
+ }
958
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
959
+ render(): JSX.Element;
960
+ }
961
+ }
1522
962
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent" {
1523
963
  import * as React from "react";
1524
964
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -1526,7 +966,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1526
966
  import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1527
967
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1528
968
  interface IColorPickerPropertyGridComponentProps {
1529
- colorPicker: ColorPicker;
969
+ colorPickers: ColorPicker[];
1530
970
  lockObject: LockObject;
1531
971
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1532
972
  }
@@ -1542,12 +982,15 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1542
982
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1543
983
  import { Image } from "@babylonjs/gui/2D/controls/image";
1544
984
  interface IImagePropertyGridComponentProps {
1545
- image: Image;
985
+ images: Image[];
1546
986
  lockObject: LockObject;
1547
987
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1548
988
  }
1549
989
  export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
1550
990
  constructor(props: IImagePropertyGridComponentProps);
991
+ toggleAnimations(on: boolean): void;
992
+ getMaxCells(): number;
993
+ updateCellSize(): void;
1551
994
  render(): JSX.Element;
1552
995
  }
1553
996
  }
@@ -1558,7 +1001,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1558
1001
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1559
1002
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1560
1003
  interface IImageBasedSliderPropertyGridComponentProps {
1561
- imageBasedSlider: ImageBasedSlider;
1004
+ imageBasedSliders: ImageBasedSlider[];
1562
1005
  lockObject: LockObject;
1563
1006
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1564
1007
  }
@@ -1574,7 +1017,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/r
1574
1017
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1575
1018
  import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1576
1019
  interface IRectanglePropertyGridComponentProps {
1577
- rectangle: Rectangle;
1020
+ rectangles: Rectangle[];
1578
1021
  lockObject: LockObject;
1579
1022
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1580
1023
  }
@@ -1590,7 +1033,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1590
1033
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1591
1034
  import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1592
1035
  interface IStackPanelPropertyGridComponentProps {
1593
- stackPanel: StackPanel;
1036
+ stackPanels: StackPanel[];
1594
1037
  lockObject: LockObject;
1595
1038
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1596
1039
  }
@@ -1606,7 +1049,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/g
1606
1049
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1607
1050
  import { Grid } from "@babylonjs/gui/2D/controls/grid";
1608
1051
  interface IGridPropertyGridComponentProps {
1609
- grid: Grid;
1052
+ grids: Grid[];
1610
1053
  lockObject: LockObject;
1611
1054
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1612
1055
  }
@@ -1642,7 +1085,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1642
1085
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1643
1086
  import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
1644
1087
  interface IScrollViewerPropertyGridComponentProps {
1645
- scrollViewer: ScrollViewer;
1088
+ scrollViewers: ScrollViewer[];
1646
1089
  lockObject: LockObject;
1647
1090
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1648
1091
  }
@@ -1658,7 +1101,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/e
1658
1101
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1659
1102
  import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1660
1103
  interface IEllipsePropertyGridComponentProps {
1661
- ellipse: Ellipse;
1104
+ ellipses: Ellipse[];
1662
1105
  lockObject: LockObject;
1663
1106
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1664
1107
  }
@@ -1674,7 +1117,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1674
1117
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1675
1118
  import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1676
1119
  interface ICheckboxPropertyGridComponentProps {
1677
- checkbox: Checkbox;
1120
+ checkboxes: Checkbox[];
1678
1121
  lockObject: LockObject;
1679
1122
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1680
1123
  }
@@ -1690,7 +1133,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1690
1133
  import { Control } from "@babylonjs/gui/2D/controls/control";
1691
1134
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1692
1135
  interface IControlPropertyGridComponentProps {
1693
- control: Control;
1136
+ controls: Control[];
1694
1137
  lockObject: LockObject;
1695
1138
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1696
1139
  }
@@ -1727,7 +1170,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/d
1727
1170
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1728
1171
  import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1729
1172
  interface IDisplayGridPropertyGridComponentProps {
1730
- displayGrid: DisplayGrid;
1173
+ displayGrids: DisplayGrid[];
1731
1174
  lockObject: LockObject;
1732
1175
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1733
1176
  }
@@ -1743,7 +1186,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/b
1743
1186
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1744
1187
  import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1745
1188
  interface IButtonPropertyGridComponentProps {
1746
- rectangle: Rectangle;
1189
+ rectangles: Rectangle[];
1747
1190
  lockObject: LockObject;
1748
1191
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1749
1192
  onAddComponent: (newComponent: string) => void;
@@ -1799,8 +1242,13 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponen
1799
1242
  saveToSnippetServerHelper: (content: string, adt: AdvancedDynamicTexture) => Promise<string>;
1800
1243
  saveToSnippetServer: () => Promise<void>;
1801
1244
  loadFromSnippet(): void;
1802
- renderProperties(): JSX.Element | null;
1803
- renderControlIcon(): string;
1245
+ renderNode(nodes: Control[]): JSX.Element;
1246
+ /**
1247
+ * returns the class name of a list of controls if they share a class, or an empty string if not
1248
+ */
1249
+ getControlsCommonClassName(nodes: Control[]): string;
1250
+ renderProperties(nodes: Control[]): JSX.Element | undefined;
1251
+ renderControlIcon(nodes: Control[]): string;
1804
1252
  render(): JSX.Element | null;
1805
1253
  }
1806
1254
  }
@@ -1831,13 +1279,20 @@ declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
1831
1279
  declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemLabelComponent" {
1832
1280
  import * as React from "react";
1833
1281
  interface ITreeItemLabelComponentProps {
1834
- label: string;
1282
+ label?: string;
1835
1283
  onClick?: () => void;
1836
- color: string;
1284
+ onChange: (newValue: string) => void;
1285
+ bracket: string;
1286
+ renaming: boolean;
1287
+ setRenaming: (renaming: boolean) => void;
1837
1288
  }
1838
- export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps> {
1289
+ interface ITreeItemLabelState {
1290
+ value: string;
1291
+ }
1292
+ export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps, ITreeItemLabelState> {
1839
1293
  constructor(props: ITreeItemLabelComponentProps);
1840
1294
  onClick(): void;
1295
+ onBlur(): void;
1841
1296
  render(): JSX.Element;
1842
1297
  }
1843
1298
  }
@@ -1877,10 +1332,12 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/entities/gui/cont
1877
1332
  export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
1878
1333
  isActive: boolean;
1879
1334
  isVisible: boolean;
1335
+ isRenaming: boolean;
1880
1336
  }> {
1881
1337
  constructor(props: IControlTreeItemComponentProps);
1882
1338
  highlight(): void;
1883
1339
  switchVisibility(): void;
1340
+ onRename(name: string): void;
1884
1341
  render(): JSX.Element;
1885
1342
  }
1886
1343
  }
@@ -1915,8 +1372,8 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemSelectabl
1915
1372
  scrollIntoView(): void;
1916
1373
  componentWillUnmount(): void;
1917
1374
  onSelect(): void;
1918
- renderChildren(isExpanded: boolean): (JSX.Element | null)[] | null;
1919
- render(): JSX.Element | null;
1375
+ renderChildren(isExpanded: boolean, offset?: boolean): (JSX.Element | null)[] | null;
1376
+ render(): JSX.Element | (JSX.Element | null)[] | null;
1920
1377
  dragOver(event: React.DragEvent<HTMLDivElement>): void;
1921
1378
  drop(): void;
1922
1379
  }
@@ -2050,6 +1507,22 @@ declare module "@babylonjs/gui-editor/components/commandBarComponent" {
2050
1507
  render(): JSX.Element;
2051
1508
  }
2052
1509
  }
1510
+ declare module "@babylonjs/gui-editor/diagram/artBoard" {
1511
+ import * as React from "react";
1512
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1513
+ import { Rect } from "@babylonjs/gui-editor/diagram/coordinateHelper";
1514
+ interface IArtBoardProps {
1515
+ globalState: GlobalState;
1516
+ }
1517
+ interface IArtBoardState {
1518
+ bounds: Rect;
1519
+ }
1520
+ export class ArtBoardComponent extends React.Component<IArtBoardProps, IArtBoardState> {
1521
+ constructor(props: IArtBoardProps);
1522
+ update(): void;
1523
+ render(): JSX.Element;
1524
+ }
1525
+ }
2053
1526
  declare module "@babylonjs/gui-editor/workbenchEditor" {
2054
1527
  import * as React from "react";
2055
1528
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
@@ -2392,36 +1865,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/booleanLineCompon
2392
1865
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color4LineComponent" {
2393
1866
  import * as React from "react";
2394
1867
  import { Observable } from "@babylonjs/core/Misc/observable";
2395
- import { Color4 } from "@babylonjs/core/Maths/math.color";
2396
1868
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1869
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2397
1870
  export interface IColor4LineComponentProps {
2398
1871
  label: string;
2399
- target: any;
1872
+ target?: any;
2400
1873
  propertyName: string;
2401
1874
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2402
1875
  onChange?: () => void;
2403
1876
  isLinear?: boolean;
2404
1877
  icon?: string;
2405
1878
  iconLabel?: string;
1879
+ lockObject?: LockObject;
2406
1880
  }
2407
- export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
2408
- isExpanded: boolean;
2409
- color: Color4;
2410
- }> {
2411
- private _localChange;
2412
- constructor(props: IColor4LineComponentProps);
2413
- shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
2414
- color: Color4;
2415
- }): boolean;
2416
- setPropertyValue(newColor: Color4): void;
2417
- onChange(newValue: string): void;
2418
- switchExpandState(): void;
2419
- raiseOnPropertyChanged(previousValue: Color4): void;
2420
- updateStateR(value: number): void;
2421
- updateStateG(value: number): void;
2422
- updateStateB(value: number): void;
2423
- updateStateA(value: number): void;
2424
- copyToClipboard(): void;
1881
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
2425
1882
  render(): JSX.Element;
2426
1883
  }
2427
1884
  }
@@ -2700,14 +2157,15 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
2700
2157
  import { Control } from "@babylonjs/gui/2D/controls/control";
2701
2158
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2702
2159
  interface ICommonControlPropertyGridComponentProps {
2703
- control: Control;
2160
+ controls?: Control[];
2161
+ control?: Control;
2704
2162
  lockObject: LockObject;
2705
2163
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2706
2164
  }
2707
2165
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2708
2166
  constructor(props: ICommonControlPropertyGridComponentProps);
2709
- renderGridInformation(): JSX.Element | null;
2710
- render(): JSX.Element;
2167
+ renderGridInformation(control: Control): JSX.Element | null;
2168
+ render(): JSX.Element | undefined;
2711
2169
  }
2712
2170
  }
2713
2171
  declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
@@ -2864,7 +2322,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
2864
2322
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2865
2323
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2866
2324
  interface IRadioButtonPropertyGridComponentProps {
2867
- radioButton: RadioButton;
2325
+ radioButtons: RadioButton[];
2868
2326
  lockObject: LockObject;
2869
2327
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2870
2328
  }