@babylonjs/gui-editor 5.0.0-beta.1 → 5.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,647 +24,80 @@ declare module "@babylonjs/gui-editor/tools" {
24
24
  import { Grid } from "@babylonjs/gui/2D/controls/grid";
25
25
  import { Vector2 } from "@babylonjs/core/Maths/math";
26
26
  export class Tools {
27
- static LookForItem(item: any, selectedEntity: any, firstIteration?: boolean): boolean;
27
+ static LookForItems(item: any, selectedEntities: any[], firstIteration?: boolean): boolean;
28
28
  private static _RecursiveRemoveHiddenMeshesAndHoistChildren;
29
29
  static SortAndFilter(parent: any, items: any[]): any[];
30
30
  static getCellInfo(grid: Grid, control: Control): Vector2;
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
+ clone(): Rect;
58
+ get center(): Vector2;
59
+ get width(): number;
60
+ get height(): number;
61
+ }
62
+ export class CoordinateHelper {
63
+ private static _matrixCache;
64
+ static globalState: GlobalState;
65
+ /**
66
+ * Get the scaling of a specific GUI control
67
+ * @param node the node for which we are getting the scaling
68
+ * @param relative should we return only the relative scaling (relative to the parent)
69
+ * @returns an X,Y vector of the scaling
70
+ */
71
+ static getScale(node: Control, relative?: boolean): Vector2;
72
+ static getRotation(node: Control, relative?: boolean): number;
73
+ /**
74
+ * This function calculates a local matrix for a node, including it's full transformation and pivot point
75
+ *
76
+ * @param node the node to calculate the matrix for
77
+ * @param useStoredValues should the stored (cached) values be used to calculate the matrix
78
+ * @returns a new matrix for the control
79
+ */
80
+ static getNodeMatrix(node: Control, storedValues?: Rect): Matrix2D;
81
+ /**
82
+ * Using the node's tree, calculate its world matrix and return it
83
+ * @param node the node to calculate the matrix for
84
+ * @param useStoredValuesIfPossible used stored valued (cached when pointer down is clicked)
85
+ * @returns the world matrix for this node
86
+ */
87
+ static nodeToRTTWorldMatrix(node: Control, storedValues?: Rect): Matrix2D;
88
+ static nodeToRTTSpace(node: Control, x: number, y: number, reference?: Vector2, storedValues?: Rect): Vector2;
89
+ static rttToLocalNodeSpace(node: Control, x: number, y: number, reference?: Vector2, storedValues?: Rect): Vector2;
90
+ static rttToCanvasSpace(x: number, y: number): Vector2;
91
+ static mousePointerToRTTSpace(node: Control, x?: number, y?: number): Vector2;
92
+ private static resetMatrixArray;
93
+ static computeLocalBounds(node: Control): Rect;
94
+ /**
95
+ * converts a node's dimensions to percentage, properties can be specified as a list, or can convert all
96
+ */
97
+ static convertToPercentage(guiControl: Control, properties?: DimensionProperties[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>): void;
98
+ static round(value: number): number;
99
+ static convertToPixels(guiControl: Control, properties?: DimensionProperties[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>): void;
100
+ }
668
101
  }
669
102
  declare module "@babylonjs/gui-editor/diagram/workbench" {
670
103
  import * as React from "react";
@@ -673,12 +106,9 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
673
106
  import { Control } from "@babylonjs/gui/2D/controls/control";
674
107
  import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
675
108
  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";
109
+ import { IWheelEvent } from "@babylonjs/core/Events/deviceInputEvents";
110
+ import { Container } from "@babylonjs/gui/2D/controls/container";
111
+ import { ISize } from "@babylonjs/core/Maths/math";
682
112
  export interface IWorkbenchComponentProps {
683
113
  globalState: GlobalState;
684
114
  }
@@ -688,12 +118,10 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
688
118
  Y = 3
689
119
  }
690
120
  export class WorkbenchComponent extends React.Component<IWorkbenchComponentProps> {
691
- artBoardBackground: Rectangle;
692
121
  private _rootContainer;
693
122
  private _setConstraintDirection;
694
123
  private _mouseStartPointX;
695
124
  private _mouseStartPointY;
696
- _textureMesh: Mesh;
697
125
  _scene: Scene;
698
126
  private _selectedGuiNodes;
699
127
  private _ctrlKeyIsPressed;
@@ -702,17 +130,10 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
702
130
  private _forcePanning;
703
131
  private _forceZooming;
704
132
  private _forceSelecting;
705
- private _outlines;
706
133
  private _panning;
707
134
  private _canvas;
708
135
  private _responsive;
709
136
  private _isOverGUINode;
710
- private _clipboard;
711
- private _selectAll;
712
- _camera: ArcRotateCamera;
713
- private _cameraRadias;
714
- private _cameraMaxRadiasFactor;
715
- private _pasted;
716
137
  private _engine;
717
138
  private _liveRenderObserver;
718
139
  private _guiRenderObserver;
@@ -721,6 +142,26 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
721
142
  private _doubleClick;
722
143
  private _lockMainSelection;
723
144
  _liveGuiTextureRerender: boolean;
145
+ private _anyControlClicked;
146
+ private _visibleRegionContainer;
147
+ get visibleRegionContainer(): Container;
148
+ private _panAndZoomContainer;
149
+ get panAndZoomContainer(): Container;
150
+ private _trueRootContainer;
151
+ set trueRootContainer(value: Container);
152
+ get trueRootContainer(): Container;
153
+ private _nextLiveGuiRender;
154
+ private _liveGuiRerenderDelay;
155
+ private _defaultGUISize;
156
+ private _initialPanningOffset;
157
+ private _panningOffset;
158
+ private _zoomFactor;
159
+ private _zoomModeIncrement;
160
+ private _guiSize;
161
+ get guiSize(): ISize;
162
+ set guiSize(value: ISize);
163
+ applyEditorTransformation(): void;
164
+ removeEditorTransformation(): void;
724
165
  get globalState(): GlobalState;
725
166
  get nodes(): Control[];
726
167
  get selectedGuiNodes(): Control[];
@@ -729,11 +170,10 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
729
170
  constructor(props: IWorkbenchComponentProps);
730
171
  determineMouseSelection(selection: Nullable<Control>): void;
731
172
  keyEvent: (evt: KeyboardEvent) => void;
732
- private updateHitTest;
733
- private updateHitTestForSelection;
734
- private setCameraRadius;
735
- copyToClipboard(): void;
736
- pasteFromClipboard(): void;
173
+ private _deleteSelectedNodes;
174
+ copyToClipboard(copyFn: (content: string) => void): void;
175
+ cutToClipboard(copyFn: (content: string) => void): void;
176
+ pasteFromClipboard(clipboardContents: string): boolean;
737
177
  CopyGUIControl(original: Control): void;
738
178
  private selectAllGUI;
739
179
  blurEvent: () => void;
@@ -741,8 +181,7 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
741
181
  loadFromJson(serializationObject: any): void;
742
182
  loadFromSnippet(snippetId: string): Promise<void>;
743
183
  loadToEditor(): void;
744
- changeSelectionHighlight(value: boolean): void;
745
- resizeGuiTexture(newvalue: Vector2): void;
184
+ updateNodeOutlines(): void;
746
185
  findNodeFromGuiElement(guiControl: Control): Control;
747
186
  appendBlock(guiElement: Control): Control;
748
187
  private _isMainSelectionParent;
@@ -755,32 +194,22 @@ declare module "@babylonjs/gui-editor/diagram/workbench" {
755
194
  isSelected(value: boolean, guiNode: Control): void;
756
195
  clicked: boolean;
757
196
  _onMove(guiControl: Control, evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
758
- convertToPercentage(guiControl: Control, includeScale: boolean): void;
759
197
  onMove(evt: React.PointerEvent): void;
760
- getGroundPosition(): Nullable<Vector3>;
198
+ private _screenToTexturePosition;
199
+ private getScaledPointerPosition;
761
200
  onDown(evt: React.PointerEvent<HTMLElement>): void;
762
201
  isUp: boolean;
763
202
  onUp(evt: React.PointerEvent): void;
764
203
  createGUICanvas(): void;
765
204
  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;
205
+ addControls(scene: Scene): void;
206
+ panning(): void;
207
+ zoomWheel(event: IWheelEvent): number;
208
+ zooming(delta: number): void;
771
209
  zeroIfClose(vec: Vector3): void;
772
210
  render(): JSX.Element;
773
211
  }
774
212
  }
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
213
  declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
785
214
  /**
786
215
  * Class used to provide lock mechanism
@@ -792,95 +221,18 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lock
792
221
  lock: boolean;
793
222
  }
794
223
  }
795
- declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
796
- import { Control } from "@babylonjs/gui/2D/controls/control";
797
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
798
- import * as React from "react";
799
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
800
- export interface IGuiGizmoProps {
801
- globalState: GlobalState;
802
- }
803
- export class GuiGizmoComponent extends React.Component<IGuiGizmoProps> {
804
- scalePoints: HTMLDivElement[];
805
- private _scalePointIndex;
806
- private _pointerData;
807
- private _htmlPoints;
808
- private _matrixCache;
809
- private _responsive;
810
- constructor(props: IGuiGizmoProps);
811
- componentDidMount(): void;
812
- /**
813
- * Update the gizmo's corners positions
814
- * @param force should the update be forced. otherwise it will be updated only when the pointer is down
815
- */
816
- updateGizmo(force?: boolean): void;
817
- private _resetMatrixArray;
818
- /**
819
- * This function calculates a local matrix for a node, including it's full transformation and pivot point
820
- *
821
- * @param node the node to calculate the matrix for
822
- * @param useStoredValues should the stored (cached) values be used to calculate the matrix
823
- * @returns a new matrix for the control
824
- */
825
- private _getNodeMatrix;
826
- /**
827
- * Using the node's tree, calculate its world matrix and return it
828
- * @param node the node to calculate the matrix for
829
- * @param useStoredValuesIfPossible used stored valued (cached when pointer down is clicked)
830
- * @returns the world matrix for this node
831
- */
832
- private _nodeToRTTWorldMatrix;
833
- private _nodeToRTTSpace;
834
- private _rttToLocalNodeSpace;
835
- private _rttToCanvasSpace;
836
- private _plane;
837
- private _mousePointerToRTTSpace;
838
- /**
839
- * Get the scaling of a specific GUI control
840
- * @param node the node for which we are getting the scaling
841
- * @param relative should we return only the relative scaling (relative to the parent)
842
- * @returns an X,Y vector of the scaling
843
- */
844
- getScale(node: Control, relative?: boolean): Vector2;
845
- getRotation(node: Control, relative?: boolean): number;
846
- createBaseGizmo(): void;
847
- onUp(evt?: React.PointerEvent): void;
848
- private _onUp;
849
- onMove(evt: React.PointerEvent): void;
850
- private _initH;
851
- private _initW;
852
- private _initX;
853
- private _initY;
854
- private _onMove;
855
- /**
856
- * Calculate the 4 corners in node space
857
- * @param node The node to use
858
- */
859
- private _nodeToCorners;
860
- /**
861
- * Computer the node's width, height, top and left, using the 4 corners
862
- * @param node the node we use
863
- */
864
- private _updateNodeFromCorners;
865
- private _rotate;
866
- private _setNodeCorner;
867
- private _setMousePosition;
868
- render(): null;
869
- }
870
- }
871
224
  declare module "@babylonjs/gui-editor/globalState" {
872
225
  import { Nullable } from "@babylonjs/core/types";
873
226
  import { Observable } from "@babylonjs/core/Misc/observable";
874
227
  import { LogEntry } from "@babylonjs/gui-editor/components/log/logComponent";
875
- import { Color4 } from "@babylonjs/core/Maths/math.color";
228
+ import { Color3 } from "@babylonjs/core/Maths/math.color";
876
229
  import { WorkbenchComponent } from "@babylonjs/gui-editor/diagram/workbench";
877
230
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
878
231
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
879
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
880
232
  import { Scene } from "@babylonjs/core/scene";
881
233
  import { Control } from "@babylonjs/gui/2D/controls/control";
882
234
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
883
- import { GuiGizmoComponent } from "@babylonjs/gui-editor/diagram/guiGizmo";
235
+ import { ISize } from "@babylonjs/core/Maths/math";
884
236
  export enum DragOverLocation {
885
237
  ABOVE = 0,
886
238
  BELOW = 1,
@@ -895,7 +247,7 @@ declare module "@babylonjs/gui-editor/globalState" {
895
247
  hostDocument: HTMLDocument;
896
248
  hostWindow: Window;
897
249
  onSelectionChangedObservable: Observable<Nullable<Control>>;
898
- onResizeObservable: Observable<Vector2>;
250
+ onResizeObservable: Observable<ISize>;
899
251
  onBuiltObservable: Observable<void>;
900
252
  onResetRequiredObservable: Observable<void>;
901
253
  onUpdateRequiredObservable: Observable<void>;
@@ -906,32 +258,39 @@ declare module "@babylonjs/gui-editor/globalState" {
906
258
  onNewSceneObservable: Observable<Nullable<Scene>>;
907
259
  onGuiNodeRemovalObservable: Observable<Control>;
908
260
  onPopupClosedObservable: Observable<void>;
909
- backgroundColor: Color4;
261
+ private _backgroundColor;
262
+ private _outlines;
263
+ onOutlineChangedObservable: Observable<void>;
910
264
  blockKeyboardEvents: boolean;
911
265
  controlCamera: boolean;
912
266
  selectionLock: boolean;
913
267
  workbench: WorkbenchComponent;
914
- guiGizmo: GuiGizmoComponent;
915
268
  onPropertyChangedObservable: Observable<PropertyChangedEvent>;
916
269
  onZoomObservable: Observable<void>;
917
270
  onFitToWindowObservable: Observable<void>;
918
271
  onPanObservable: Observable<void>;
919
272
  onSelectionButtonObservable: Observable<void>;
920
- onMoveObservable: Observable<void>;
921
273
  onLoadObservable: Observable<File>;
922
274
  onSaveObservable: Observable<void>;
923
275
  onSnippetLoadObservable: Observable<void>;
924
276
  onSnippetSaveObservable: Observable<void>;
925
- onOutlinesObservable: Observable<void>;
926
277
  onResponsiveChangeObservable: Observable<boolean>;
927
278
  onParentingChangeObservable: Observable<Nullable<Control>>;
279
+ onDropObservable: Observable<void>;
928
280
  onPropertyGridUpdateRequiredObservable: Observable<void>;
929
281
  onDraggingEndObservable: Observable<void>;
930
282
  onDraggingStartObservable: Observable<void>;
931
283
  onWindowResizeObservable: Observable<void>;
932
284
  onGizmoUpdateRequireObservable: Observable<void>;
285
+ onArtBoardUpdateRequiredObservable: Observable<void>;
286
+ onBackgroundColorChangeObservable: Observable<void>;
287
+ onPointerMoveObservable: Observable<import("react").PointerEvent<HTMLCanvasElement>>;
288
+ onPointerUpObservable: Observable<Nullable<PointerEvent | import("react").PointerEvent<HTMLCanvasElement>>>;
933
289
  draggedControl: Nullable<Control>;
934
290
  draggedControlDirection: DragOverLocation;
291
+ onCopyObservable: Observable<(content: string) => void>;
292
+ onCutObservable: Observable<(content: string) => void>;
293
+ onPasteObservable: Observable<string>;
935
294
  isSaving: boolean;
936
295
  lockObject: LockObject;
937
296
  storeEditorData: (serializationObject: any) => void;
@@ -944,6 +303,12 @@ declare module "@babylonjs/gui-editor/globalState" {
944
303
  action: (data: string) => Promise<string>;
945
304
  };
946
305
  constructor();
306
+ /** adds copy, cut and paste listeners to the host window */
307
+ registerEventListeners(): void;
308
+ get backgroundColor(): Color3;
309
+ set backgroundColor(value: Color3);
310
+ get outlines(): boolean;
311
+ set outlines(value: boolean);
947
312
  }
948
313
  }
949
314
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/buttonLineComponent" {
@@ -977,6 +342,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileButtonLineCom
977
342
  render(): JSX.Element;
978
343
  }
979
344
  }
345
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/targetsProxy" {
346
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
347
+ import { Observable } from "@babylonjs/core/Misc/observable";
348
+ export const conflictingValuesPlaceholder = "\u2014";
349
+ /**
350
+ *
351
+ * @param propertyName the property that the input changes
352
+ * @param targets a list of selected targets
353
+ * @param defaultValue the value that should be returned when two targets have conflicting values
354
+ * @param setter an optional setter function to override the default setter behavior
355
+ * @returns a proxy object that can be passed as a target into the input
356
+ */
357
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
358
+ }
980
359
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineComponent" {
981
360
  import * as React from "react";
982
361
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -998,6 +377,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
998
377
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
999
378
  isSelected: boolean;
1000
379
  isDisabled?: boolean;
380
+ isConflict: boolean;
1001
381
  }> {
1002
382
  private static _UniqueIdSeed;
1003
383
  private _uniqueId;
@@ -1006,6 +386,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
1006
386
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
1007
387
  isSelected: boolean;
1008
388
  isDisabled: boolean;
389
+ isConflict: boolean;
1009
390
  }): boolean;
1010
391
  onChange(): void;
1011
392
  render(): JSX.Element;
@@ -1068,6 +449,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
1068
449
  icon?: string;
1069
450
  iconLabel?: string;
1070
451
  defaultValue?: number;
452
+ unit?: string;
453
+ onUnitClicked?: () => void;
454
+ unitLocked?: boolean;
1071
455
  }
1072
456
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1073
457
  value: string;
@@ -1076,6 +460,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
1076
460
  private _store;
1077
461
  constructor(props: IFloatLineComponentProps);
1078
462
  componentWillUnmount(): void;
463
+ getValueString(value: any): string;
1079
464
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1080
465
  value: string;
1081
466
  }): boolean;
@@ -1141,6 +526,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
1141
526
  noUnderline?: boolean;
1142
527
  numbersOnly?: boolean;
1143
528
  delayInput?: boolean;
529
+ unit?: string;
530
+ onUnitClicked?: (unit: string) => void;
531
+ unitLocked?: boolean;
1144
532
  }
1145
533
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
1146
534
  value: string;
@@ -1297,52 +685,59 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerCompon
1297
685
  constructor(props: IColorPickerComponentProps);
1298
686
  syncPositions(): void;
1299
687
  shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
688
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
689
+ children?: React.ReactNode;
690
+ }>): string;
1300
691
  componentDidUpdate(): void;
1301
692
  componentDidMount(): void;
1302
693
  render(): JSX.Element;
1303
694
  }
1304
695
  }
1305
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineComponent" {
696
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorLineComponent" {
1306
697
  import * as React from "react";
1307
698
  import { Observable } from "@babylonjs/core/Misc/observable";
699
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
1308
700
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1309
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
1310
701
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1311
- export interface IColor3LineComponentProps {
702
+ export interface IColorLineComponentProps {
1312
703
  label: string;
1313
- target: any;
704
+ target?: any;
1314
705
  propertyName: string;
1315
706
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
707
+ onChange?: () => void;
1316
708
  isLinear?: boolean;
1317
709
  icon?: string;
1318
- lockObject?: LockObject;
1319
710
  iconLabel?: string;
1320
- onValueChange?: (value: string) => void;
711
+ lockObject?: LockObject;
712
+ disableAlpha?: boolean;
1321
713
  }
1322
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
714
+ interface IColorLineComponentState {
1323
715
  isExpanded: boolean;
1324
- color: Color3 | Color4;
1325
- colorText: string;
1326
- }> {
1327
- private _localChange;
1328
- constructor(props: IColor3LineComponentProps);
1329
- private convertToColor3;
1330
- shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
1331
- color: Color3 | Color4;
1332
- colorText: string;
1333
- }): boolean;
1334
- setPropertyValue(newColor: Color3 | Color4, newColorText: string): void;
1335
- onChange(newValue: string): void;
716
+ color: Color4;
717
+ colorString: string;
718
+ }
719
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
720
+ constructor(props: IColorLineComponentProps);
721
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
722
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
723
+ children?: React.ReactNode;
724
+ }>): Color4;
725
+ getValueAsString(props?: Readonly<IColorLineComponentProps> & Readonly<{
726
+ children?: React.ReactNode;
727
+ }>): string;
728
+ setColorFromString(colorString: string): void;
729
+ setColor(color: Color4): void;
730
+ updateColor(newColor: Color4): void;
1336
731
  switchExpandState(): void;
1337
- raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
1338
732
  updateStateR(value: number): void;
1339
733
  updateStateG(value: number): void;
1340
734
  updateStateB(value: number): void;
735
+ updateStateA(value: number): void;
1341
736
  copyToClipboard(): void;
1342
- convert(colorString: string): void;
1343
- private _colorStringSaved;
1344
- private _colorPickerOpen;
1345
- private _colorString;
737
+ get colorString(): string;
738
+ set colorString(_: string);
739
+ private convertToColor;
740
+ private toColor3;
1346
741
  render(): JSX.Element;
1347
742
  }
1348
743
  }
@@ -1353,13 +748,11 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1353
748
  import { Control } from "@babylonjs/gui/2D/controls/control";
1354
749
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1355
750
  interface ICommonControlPropertyGridComponentProps {
1356
- control: Control;
751
+ controls: Control[];
1357
752
  lockObject: LockObject;
1358
753
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1359
754
  }
1360
755
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
1361
- private _width;
1362
- private _height;
1363
756
  constructor(props: ICommonControlPropertyGridComponentProps);
1364
757
  private _updateAlignment;
1365
758
  private _checkAndUpdateValues;
@@ -1375,7 +768,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1375
768
  import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1376
769
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1377
770
  interface ISliderPropertyGridComponentProps {
1378
- slider: Slider | ImageBasedSlider;
771
+ sliders: (Slider | ImageBasedSlider)[];
1379
772
  lockObject: LockObject;
1380
773
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1381
774
  }
@@ -1391,7 +784,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1391
784
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1392
785
  import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1393
786
  interface ISliderGenericPropertyGridComponentProps {
1394
- slider: Slider;
787
+ sliders: Slider[];
1395
788
  lockObject: LockObject;
1396
789
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1397
790
  }
@@ -1407,7 +800,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/l
1407
800
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1408
801
  import { Line } from "@babylonjs/gui/2D/controls/line";
1409
802
  interface ILinePropertyGridComponentProps {
1410
- line: Line;
803
+ lines: Line[];
1411
804
  lockObject: LockObject;
1412
805
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1413
806
  }
@@ -1424,7 +817,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/r
1424
817
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1425
818
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1426
819
  interface IRadioButtonPropertyGridComponentProps {
1427
- radioButton: RadioButton;
820
+ radioButtons: RadioButton[];
1428
821
  lockObject: LockObject;
1429
822
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1430
823
  }
@@ -1474,7 +867,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/t
1474
867
  import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1475
868
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1476
869
  interface ITextBlockPropertyGridComponentProps {
1477
- textBlock: TextBlock;
870
+ textBlocks: TextBlock[];
1478
871
  lockObject: LockObject;
1479
872
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1480
873
  }
@@ -1490,7 +883,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1490
883
  import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1491
884
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1492
885
  interface IInputTextPropertyGridComponentProps {
1493
- inputText: InputText;
886
+ inputTexts: InputText[];
1494
887
  lockObject: LockObject;
1495
888
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1496
889
  }
@@ -1499,6 +892,26 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1499
892
  render(): JSX.Element;
1500
893
  }
1501
894
  }
895
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineComponent" {
896
+ import * as React from "react";
897
+ import { Observable } from "@babylonjs/core/Misc/observable";
898
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
899
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
900
+ export interface IColor3LineComponentProps {
901
+ label: string;
902
+ target: any;
903
+ propertyName: string;
904
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
905
+ isLinear?: boolean;
906
+ icon?: string;
907
+ lockObject?: LockObject;
908
+ iconLabel?: string;
909
+ onValueChange?: (value: string) => void;
910
+ }
911
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
912
+ render(): JSX.Element;
913
+ }
914
+ }
1502
915
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent" {
1503
916
  import * as React from "react";
1504
917
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -1506,7 +919,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1506
919
  import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1507
920
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1508
921
  interface IColorPickerPropertyGridComponentProps {
1509
- colorPicker: ColorPicker;
922
+ colorPickers: ColorPicker[];
1510
923
  lockObject: LockObject;
1511
924
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1512
925
  }
@@ -1522,12 +935,15 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1522
935
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1523
936
  import { Image } from "@babylonjs/gui/2D/controls/image";
1524
937
  interface IImagePropertyGridComponentProps {
1525
- image: Image;
938
+ images: Image[];
1526
939
  lockObject: LockObject;
1527
940
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1528
941
  }
1529
942
  export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
1530
943
  constructor(props: IImagePropertyGridComponentProps);
944
+ toggleAnimations(on: boolean): void;
945
+ getMaxCells(): number;
946
+ updateCellSize(): void;
1531
947
  render(): JSX.Element;
1532
948
  }
1533
949
  }
@@ -1538,7 +954,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/i
1538
954
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1539
955
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1540
956
  interface IImageBasedSliderPropertyGridComponentProps {
1541
- imageBasedSlider: ImageBasedSlider;
957
+ imageBasedSliders: ImageBasedSlider[];
1542
958
  lockObject: LockObject;
1543
959
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1544
960
  }
@@ -1554,7 +970,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/r
1554
970
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1555
971
  import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1556
972
  interface IRectanglePropertyGridComponentProps {
1557
- rectangle: Rectangle;
973
+ rectangles: Rectangle[];
1558
974
  lockObject: LockObject;
1559
975
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1560
976
  }
@@ -1570,7 +986,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1570
986
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1571
987
  import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1572
988
  interface IStackPanelPropertyGridComponentProps {
1573
- stackPanel: StackPanel;
989
+ stackPanels: StackPanel[];
1574
990
  lockObject: LockObject;
1575
991
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1576
992
  }
@@ -1586,7 +1002,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/g
1586
1002
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1587
1003
  import { Grid } from "@babylonjs/gui/2D/controls/grid";
1588
1004
  interface IGridPropertyGridComponentProps {
1589
- grid: Grid;
1005
+ grids: Grid[];
1590
1006
  lockObject: LockObject;
1591
1007
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1592
1008
  }
@@ -1622,7 +1038,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/s
1622
1038
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1623
1039
  import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
1624
1040
  interface IScrollViewerPropertyGridComponentProps {
1625
- scrollViewer: ScrollViewer;
1041
+ scrollViewers: ScrollViewer[];
1626
1042
  lockObject: LockObject;
1627
1043
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1628
1044
  }
@@ -1638,7 +1054,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/e
1638
1054
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1639
1055
  import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1640
1056
  interface IEllipsePropertyGridComponentProps {
1641
- ellipse: Ellipse;
1057
+ ellipses: Ellipse[];
1642
1058
  lockObject: LockObject;
1643
1059
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1644
1060
  }
@@ -1654,7 +1070,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1654
1070
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1655
1071
  import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1656
1072
  interface ICheckboxPropertyGridComponentProps {
1657
- checkbox: Checkbox;
1073
+ checkboxes: Checkbox[];
1658
1074
  lockObject: LockObject;
1659
1075
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1660
1076
  }
@@ -1670,7 +1086,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/c
1670
1086
  import { Control } from "@babylonjs/gui/2D/controls/control";
1671
1087
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1672
1088
  interface IControlPropertyGridComponentProps {
1673
- control: Control;
1089
+ controls: Control[];
1674
1090
  lockObject: LockObject;
1675
1091
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1676
1092
  }
@@ -1707,7 +1123,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/d
1707
1123
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1708
1124
  import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1709
1125
  interface IDisplayGridPropertyGridComponentProps {
1710
- displayGrid: DisplayGrid;
1126
+ displayGrids: DisplayGrid[];
1711
1127
  lockObject: LockObject;
1712
1128
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1713
1129
  }
@@ -1723,7 +1139,7 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/b
1723
1139
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1724
1140
  import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1725
1141
  interface IButtonPropertyGridComponentProps {
1726
- rectangle: Rectangle;
1142
+ rectangles: Rectangle[];
1727
1143
  lockObject: LockObject;
1728
1144
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1729
1145
  onAddComponent: (newComponent: string) => void;
@@ -1750,7 +1166,7 @@ declare module "@babylonjs/gui-editor/guiNodeTools" {
1750
1166
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1751
1167
  export class GUINodeTools {
1752
1168
  static ImageControlDefaultUrl: string;
1753
- static CreateControlFromString(data: string): Grid | Rectangle | Line | Image | TextBlock | Slider | ImageBasedSlider | RadioButton | InputText | ColorPicker | StackPanel | Ellipse | Checkbox | DisplayGrid;
1169
+ static CreateControlFromString(data: string): Grid | Rectangle | Line | TextBlock | Image | Slider | ImageBasedSlider | RadioButton | InputText | ColorPicker | StackPanel | Ellipse | Checkbox | DisplayGrid;
1754
1170
  }
1755
1171
  }
1756
1172
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponent" {
@@ -1779,8 +1195,13 @@ declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponen
1779
1195
  saveToSnippetServerHelper: (content: string, adt: AdvancedDynamicTexture) => Promise<string>;
1780
1196
  saveToSnippetServer: () => Promise<void>;
1781
1197
  loadFromSnippet(): void;
1782
- renderProperties(): JSX.Element | null;
1783
- renderControlIcon(): string;
1198
+ renderNode(nodes: Control[]): JSX.Element;
1199
+ /**
1200
+ * returns the class name of a list of controls if they share a class, or an empty string if not
1201
+ */
1202
+ getControlsCommonClassName(nodes: Control[]): string;
1203
+ renderProperties(nodes: Control[]): JSX.Element | undefined;
1204
+ renderControlIcon(nodes: Control[]): string;
1784
1205
  render(): JSX.Element | null;
1785
1206
  }
1786
1207
  }
@@ -1811,13 +1232,20 @@ declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
1811
1232
  declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemLabelComponent" {
1812
1233
  import * as React from "react";
1813
1234
  interface ITreeItemLabelComponentProps {
1814
- label: string;
1235
+ label?: string;
1815
1236
  onClick?: () => void;
1816
- color: string;
1237
+ onChange: (newValue: string) => void;
1238
+ bracket: string;
1239
+ renaming: boolean;
1240
+ setRenaming: (renaming: boolean) => void;
1817
1241
  }
1818
- export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps> {
1242
+ interface ITreeItemLabelState {
1243
+ value: string;
1244
+ }
1245
+ export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps, ITreeItemLabelState> {
1819
1246
  constructor(props: ITreeItemLabelComponentProps);
1820
1247
  onClick(): void;
1248
+ onBlur(): void;
1821
1249
  render(): JSX.Element;
1822
1250
  }
1823
1251
  }
@@ -1851,16 +1279,18 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/entities/gui/cont
1851
1279
  onClick: () => void;
1852
1280
  globalState: GlobalState;
1853
1281
  isHovered: boolean;
1854
- dragOverHover: boolean;
1282
+ isDragOver: boolean;
1855
1283
  dragOverLocation: DragOverLocation;
1856
1284
  }
1857
1285
  export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
1858
1286
  isActive: boolean;
1859
1287
  isVisible: boolean;
1288
+ isRenaming: boolean;
1860
1289
  }> {
1861
1290
  constructor(props: IControlTreeItemComponentProps);
1862
1291
  highlight(): void;
1863
1292
  switchVisibility(): void;
1293
+ onRename(name: string): void;
1864
1294
  render(): JSX.Element;
1865
1295
  }
1866
1296
  }
@@ -1871,22 +1301,29 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemSelectabl
1871
1301
  import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1872
1302
  export interface ITreeItemSelectableComponentProps {
1873
1303
  entity: any;
1874
- selectedEntity?: any;
1304
+ selectedEntities: any[];
1875
1305
  mustExpand?: boolean;
1876
1306
  offset: number;
1877
1307
  globalState: GlobalState;
1878
1308
  extensibilityGroups?: IExplorerExtensibilityGroup[];
1879
1309
  filter: Nullable<string>;
1880
1310
  }
1881
- export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, {
1311
+ export interface ITreeItemSelectableComponentState {
1312
+ dragOver: boolean;
1882
1313
  isSelected: boolean;
1883
1314
  isHovered: boolean;
1884
1315
  dragOverLocation: DragOverLocation;
1885
- }> {
1886
- dragOverHover: boolean;
1316
+ }
1317
+ export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, ITreeItemSelectableComponentState> {
1887
1318
  private _onSelectionChangedObservable;
1888
1319
  private _onDraggingEndObservable;
1889
1320
  private _onDraggingStartObservable;
1321
+ /** flag flipped onDragEnter if dragOver is already true
1322
+ * prevents dragLeave from immediately setting dragOver to false
1323
+ * required to make dragging work as expected
1324
+ * see: see: https://github.com/transformation-dev/matrx/tree/master/packages/dragster
1325
+ */
1326
+ private _secondDragEnter;
1890
1327
  constructor(props: ITreeItemSelectableComponentProps);
1891
1328
  switchExpandedState(): void;
1892
1329
  shouldComponentUpdate(nextProps: ITreeItemSelectableComponentProps, nextState: {
@@ -1895,9 +1332,10 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemSelectabl
1895
1332
  scrollIntoView(): void;
1896
1333
  componentWillUnmount(): void;
1897
1334
  onSelect(): void;
1898
- renderChildren(isExpanded: boolean): (JSX.Element | null)[] | null;
1899
- render(): JSX.Element | null;
1335
+ renderChildren(isExpanded: boolean, offset?: boolean): (JSX.Element | null)[] | null;
1336
+ render(): JSX.Element | (JSX.Element | null)[] | null;
1900
1337
  dragOver(event: React.DragEvent<HTMLDivElement>): void;
1338
+ updateDragOverLocation(event: React.DragEvent<HTMLDivElement>): void;
1901
1339
  drop(): void;
1902
1340
  }
1903
1341
  }
@@ -1914,7 +1352,7 @@ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemComponent
1914
1352
  forceSubitems?: boolean;
1915
1353
  globalState: GlobalState;
1916
1354
  entity?: any;
1917
- selectedEntity: any;
1355
+ selectedEntities: any[];
1918
1356
  extensibilityGroups?: IExplorerExtensibilityGroup[];
1919
1357
  contextMenuItems?: {
1920
1358
  label: string;
@@ -2024,15 +1462,101 @@ declare module "@babylonjs/gui-editor/components/commandBarComponent" {
2024
1462
  private _panning;
2025
1463
  private _zooming;
2026
1464
  private _selecting;
2027
- private _outlines;
2028
1465
  constructor(props: ICommandBarComponentProps);
2029
- private updateNodeOutline;
1466
+ render(): JSX.Element;
1467
+ }
1468
+ }
1469
+ declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
1470
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1471
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
1472
+ import * as React from "react";
1473
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1474
+ import { Rect } from "@babylonjs/gui-editor/diagram/coordinateHelper";
1475
+ export interface IGuiGizmoProps {
1476
+ globalState: GlobalState;
1477
+ control: Control;
1478
+ }
1479
+ enum ScalePointPosition {
1480
+ Top = -1,
1481
+ Left = -1,
1482
+ Center = 0,
1483
+ Right = 1,
1484
+ Bottom = 1
1485
+ }
1486
+ interface IScalePoint {
1487
+ position: Vector2;
1488
+ horizontalPosition: ScalePointPosition;
1489
+ verticalPosition: ScalePointPosition;
1490
+ rotation: number;
1491
+ isPivot: boolean;
1492
+ }
1493
+ interface IGuiGizmoState {
1494
+ canvasBounds: Rect;
1495
+ scalePoints: IScalePoint[];
1496
+ scalePointDragging: number;
1497
+ isRotating: boolean;
1498
+ }
1499
+ export class GuiGizmoComponent extends React.Component<IGuiGizmoProps, IGuiGizmoState> {
1500
+ private _storedValues;
1501
+ private _localBounds;
1502
+ private _rotation;
1503
+ private _gizmoUpdateObserver;
1504
+ private _pointerUpObserver;
1505
+ private _pointerMoveObserver;
1506
+ constructor(props: IGuiGizmoProps);
1507
+ componentWillUnmount(): void;
1508
+ /**
1509
+ * Update the gizmo's positions
1510
+ * @param force should the update be forced. otherwise it will be updated only when the pointer is down
1511
+ */
1512
+ updateGizmo(force?: boolean): void;
1513
+ private _onUp;
1514
+ private _onMove;
1515
+ private _rotate;
1516
+ private _modulo;
1517
+ private _dragLocalBounds;
1518
+ private _updateNodeFromLocalBounds;
1519
+ private _beginDraggingScalePoint;
1520
+ private _beginRotate;
1521
+ render(): JSX.Element;
1522
+ }
1523
+ }
1524
+ declare module "@babylonjs/gui-editor/diagram/guiGizmoWrapper" {
1525
+ import { Nullable } from "@babylonjs/core/types";
1526
+ import { Observer } from "@babylonjs/core/Misc/observable";
1527
+ import * as React from "react";
1528
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1529
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1530
+ export interface IGizmoWrapperProps {
1531
+ globalState: GlobalState;
1532
+ }
1533
+ export class GizmoWrapper extends React.Component<IGizmoWrapperProps> {
1534
+ observer: Nullable<Observer<Nullable<Control>>>;
1535
+ componentWillMount(): void;
1536
+ componentWillUnmount(): void;
1537
+ render(): JSX.Element;
1538
+ }
1539
+ }
1540
+ declare module "@babylonjs/gui-editor/diagram/artBoard" {
1541
+ import * as React from "react";
1542
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1543
+ import { Rect } from "@babylonjs/gui-editor/diagram/coordinateHelper";
1544
+ interface IArtBoardProps {
1545
+ globalState: GlobalState;
1546
+ }
1547
+ interface IArtBoardState {
1548
+ bounds: Rect;
1549
+ }
1550
+ export class ArtBoardComponent extends React.Component<IArtBoardProps, IArtBoardState> {
1551
+ constructor(props: IArtBoardProps);
1552
+ update(): void;
2030
1553
  render(): JSX.Element;
2031
1554
  }
2032
1555
  }
2033
1556
  declare module "@babylonjs/gui-editor/workbenchEditor" {
2034
1557
  import * as React from "react";
2035
1558
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
1559
+ import { Control } from "@babylonjs/gui/2D/controls/control";
2036
1560
  interface IGraphEditorProps {
2037
1561
  globalState: GlobalState;
2038
1562
  }
@@ -2072,7 +1596,7 @@ declare module "@babylonjs/gui-editor/workbenchEditor" {
2072
1596
  subItems?: string[];
2073
1597
  }[];
2074
1598
  createItems(): void;
2075
- onCreate(value: string): void;
1599
+ onCreate(value: string): Control;
2076
1600
  createToolbar(): JSX.Element;
2077
1601
  }
2078
1602
  }
@@ -2372,36 +1896,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/booleanLineCompon
2372
1896
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color4LineComponent" {
2373
1897
  import * as React from "react";
2374
1898
  import { Observable } from "@babylonjs/core/Misc/observable";
2375
- import { Color4 } from "@babylonjs/core/Maths/math.color";
2376
1899
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1900
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2377
1901
  export interface IColor4LineComponentProps {
2378
1902
  label: string;
2379
- target: any;
1903
+ target?: any;
2380
1904
  propertyName: string;
2381
1905
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2382
1906
  onChange?: () => void;
2383
1907
  isLinear?: boolean;
2384
1908
  icon?: string;
2385
1909
  iconLabel?: string;
1910
+ lockObject?: LockObject;
2386
1911
  }
2387
- export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
2388
- isExpanded: boolean;
2389
- color: Color4;
2390
- }> {
2391
- private _localChange;
2392
- constructor(props: IColor4LineComponentProps);
2393
- shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
2394
- color: Color4;
2395
- }): boolean;
2396
- setPropertyValue(newColor: Color4): void;
2397
- onChange(newValue: string): void;
2398
- switchExpandState(): void;
2399
- raiseOnPropertyChanged(previousValue: Color4): void;
2400
- updateStateR(value: number): void;
2401
- updateStateG(value: number): void;
2402
- updateStateB(value: number): void;
2403
- updateStateA(value: number): void;
2404
- copyToClipboard(): void;
1912
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
2405
1913
  render(): JSX.Element;
2406
1914
  }
2407
1915
  }
@@ -2680,14 +2188,15 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
2680
2188
  import { Control } from "@babylonjs/gui/2D/controls/control";
2681
2189
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2682
2190
  interface ICommonControlPropertyGridComponentProps {
2683
- control: Control;
2191
+ controls?: Control[];
2192
+ control?: Control;
2684
2193
  lockObject: LockObject;
2685
2194
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2686
2195
  }
2687
2196
  export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2688
2197
  constructor(props: ICommonControlPropertyGridComponentProps);
2689
- renderGridInformation(): JSX.Element | null;
2690
- render(): JSX.Element;
2198
+ renderGridInformation(control: Control): JSX.Element | null;
2199
+ render(): JSX.Element | undefined;
2691
2200
  }
2692
2201
  }
2693
2202
  declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
@@ -2844,7 +2353,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
2844
2353
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2845
2354
  import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2846
2355
  interface IRadioButtonPropertyGridComponentProps {
2847
- radioButton: RadioButton;
2356
+ radioButtons: RadioButton[];
2848
2357
  lockObject: LockObject;
2849
2358
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2850
2359
  }