@babylonjs/gui-editor 5.0.0-alpha.7 → 5.0.0-beta.2

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.
@@ -19,128 +19,759 @@ declare module "@babylonjs/gui-editor/components/log/logComponent" {
19
19
  render(): JSX.Element;
20
20
  }
21
21
  }
22
+ declare module "@babylonjs/gui-editor/tools" {
23
+ import { Control } from "@babylonjs/gui/2D/controls/control";
24
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
25
+ import { Vector2 } from "@babylonjs/core/Maths/math";
26
+ export class Tools {
27
+ static LookForItem(item: any, selectedEntity: any, firstIteration?: boolean): boolean;
28
+ private static _RecursiveRemoveHiddenMeshesAndHoistChildren;
29
+ static SortAndFilter(parent: any, items: any[]): any[];
30
+ static getCellInfo(grid: Grid, control: Control): Vector2;
31
+ static reorderGrid(grid: Grid, index: number, control: Control, cell: Vector2): void;
32
+ }
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
+ };
668
+ }
22
669
  declare module "@babylonjs/gui-editor/diagram/workbench" {
23
670
  import * as React from "react";
24
671
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
25
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
26
- import { Control } from '@babylonjs/gui/2D/controls/control';
672
+ import { Nullable } from "@babylonjs/core/types";
673
+ import { Control } from "@babylonjs/gui/2D/controls/control";
674
+ import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
675
+ 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";
27
682
  export interface IWorkbenchComponentProps {
28
683
  globalState: GlobalState;
29
684
  }
30
- export type FramePortData = {};
31
- export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
685
+ export enum ConstraintDirection {
686
+ NONE = 0,
687
+ X = 2,
688
+ Y = 3
689
+ }
32
690
  export class WorkbenchComponent extends React.Component<IWorkbenchComponentProps> {
33
- private readonly MinZoom;
34
- private readonly MaxZoom;
35
- private _hostCanvas;
36
- private _gridCanvas;
37
- private _selectionContainer;
38
- private _frameContainer;
39
- private _svgCanvas;
691
+ artBoardBackground: Rectangle;
40
692
  private _rootContainer;
41
- private _guiNodes;
693
+ private _setConstraintDirection;
42
694
  private _mouseStartPointX;
43
695
  private _mouseStartPointY;
44
- private _selectionStartX;
45
- private _selectionStartY;
46
- private _x;
47
- private _y;
48
- private _zoom;
696
+ _textureMesh: Mesh;
697
+ _scene: Scene;
49
698
  private _selectedGuiNodes;
50
- private _gridSize;
51
- private _selectionBox;
52
- private _frameCandidate;
53
- private _altKeyIsPressed;
54
699
  private _ctrlKeyIsPressed;
55
- private _oldY;
56
- _frameIsMoving: boolean;
57
- _isLoading: boolean;
58
- isOverGUINode: boolean;
59
- get gridSize(): number;
60
- set gridSize(value: number);
700
+ private _altKeyIsPressed;
701
+ private _constraintDirection;
702
+ private _forcePanning;
703
+ private _forceZooming;
704
+ private _forceSelecting;
705
+ private _outlines;
706
+ private _panning;
707
+ private _canvas;
708
+ private _responsive;
709
+ private _isOverGUINode;
710
+ private _clipboard;
711
+ private _selectAll;
712
+ _camera: ArcRotateCamera;
713
+ private _cameraRadias;
714
+ private _cameraMaxRadiasFactor;
715
+ private _pasted;
716
+ private _engine;
717
+ private _liveRenderObserver;
718
+ private _guiRenderObserver;
719
+ private _mainSelection;
720
+ private _selectionDepth;
721
+ private _doubleClick;
722
+ private _lockMainSelection;
723
+ _liveGuiTextureRerender: boolean;
61
724
  get globalState(): GlobalState;
62
- get nodes(): GUINode[];
63
- get zoom(): number;
64
- set zoom(value: number);
65
- get x(): number;
66
- set x(value: number);
67
- get y(): number;
68
- set y(value: number);
69
- get selectedGuiNodes(): GUINode[];
70
- get canvasContainer(): HTMLDivElement;
71
- get hostCanvas(): HTMLDivElement;
72
- get svgCanvas(): HTMLElement;
73
- get selectionContainer(): HTMLDivElement;
74
- get frameContainer(): HTMLDivElement;
725
+ get nodes(): Control[];
726
+ get selectedGuiNodes(): Control[];
727
+ private _getParentWithDepth;
728
+ private _getMaxParent;
75
729
  constructor(props: IWorkbenchComponentProps);
76
- getGridPosition(position: number, useCeil?: boolean): number;
77
- getGridPositionCeil(position: number): number;
730
+ determineMouseSelection(selection: Nullable<Control>): void;
731
+ keyEvent: (evt: KeyboardEvent) => void;
732
+ private updateHitTest;
733
+ private updateHitTestForSelection;
734
+ private setCameraRadius;
735
+ copyToClipboard(): void;
736
+ pasteFromClipboard(): void;
737
+ CopyGUIControl(original: Control): void;
738
+ private selectAllGUI;
739
+ blurEvent: () => void;
740
+ componentWillUnmount(): void;
78
741
  loadFromJson(serializationObject: any): void;
79
- loadFromSnippet(snippedID: string): Promise<void>;
80
- loadFromGuiTexture(): void;
81
- updateTransform(): void;
82
- onKeyUp(): void;
83
- findNodeFromGuiElement(guiControl: Control): GUINode;
84
- reset(): void;
85
- appendBlock(guiElement: Control): GUINode;
86
- distributeGraph(): void;
87
- componentDidMount(): void;
742
+ loadFromSnippet(snippetId: string): Promise<void>;
743
+ loadToEditor(): void;
744
+ changeSelectionHighlight(value: boolean): void;
745
+ resizeGuiTexture(newvalue: Vector2): void;
746
+ findNodeFromGuiElement(guiControl: Control): Control;
747
+ appendBlock(guiElement: Control): Control;
748
+ private _isMainSelectionParent;
749
+ createNewGuiNode(guiControl: Control): Control;
750
+ private parent;
751
+ private _convertToPixels;
752
+ private _reorderGrid;
753
+ private _isNotChildInsert;
754
+ private _adjustParentingIndex;
755
+ isSelected(value: boolean, guiNode: Control): void;
756
+ clicked: boolean;
757
+ _onMove(guiControl: Control, evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
758
+ convertToPercentage(guiControl: Control, includeScale: boolean): void;
88
759
  onMove(evt: React.PointerEvent): void;
760
+ getGroundPosition(): Nullable<Vector3>;
89
761
  onDown(evt: React.PointerEvent<HTMLElement>): void;
90
762
  isUp: boolean;
91
763
  onUp(evt: React.PointerEvent): void;
92
- onWheel(evt: React.WheelEvent): void;
93
- zoomToFit(): void;
94
764
  createGUICanvas(): void;
95
- updateGUIs(): void;
765
+ 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;
771
+ zeroIfClose(vec: Vector3): void;
96
772
  render(): JSX.Element;
97
773
  }
98
774
  }
99
- declare module "@babylonjs/gui-editor/diagram/guiNode" {
100
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
101
- import { Control } from "@babylonjs/gui/2D/controls/control";
102
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
103
- export class GUINode {
104
- guiControl: Control;
105
- private _x;
106
- private _y;
107
- private _gridAlignedX;
108
- private _gridAlignedY;
109
- private _globalState;
110
- private _onSelectionChangedObserver;
111
- private _onSelectionBoxMovedObserver;
112
- private _onUpdateRequiredObserver;
113
- private _ownerCanvas;
114
- private _isSelected;
115
- private _isVisible;
116
- private _enclosingFrameId;
117
- children: GUINode[];
118
- get isVisible(): boolean;
119
- set isVisible(value: boolean);
120
- get gridAlignedX(): number;
121
- get gridAlignedY(): number;
122
- get x(): number;
123
- set x(value: number);
124
- get y(): number;
125
- set y(value: number);
126
- get width(): number;
127
- get height(): number;
128
- get id(): number;
129
- get name(): string | undefined;
130
- get isSelected(): boolean;
131
- get enclosingFrameId(): number;
132
- set enclosingFrameId(value: number);
133
- set isSelected(value: boolean);
134
- constructor(globalState: GlobalState, guiControl: Control);
135
- cleanAccumulation(useCeil?: boolean): void;
136
- clicked: boolean;
137
- _onMove(evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
138
- updateVisual(): void;
139
- private _isContainer;
140
- addGui(childNode: GUINode): void;
141
- dispose(): void;
142
- }
143
- }
144
775
  declare module "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent" {
145
776
  export class PropertyChangedEvent {
146
777
  object: any;
@@ -150,93 +781,178 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent" {
150
781
  allowNullValue?: boolean;
151
782
  }
152
783
  }
784
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
785
+ /**
786
+ * Class used to provide lock mechanism
787
+ */
788
+ export class LockObject {
789
+ /**
790
+ * Gets or set if the lock is engaged
791
+ */
792
+ lock: boolean;
793
+ }
794
+ }
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
+ }
153
871
  declare module "@babylonjs/gui-editor/globalState" {
154
872
  import { Nullable } from "@babylonjs/core/types";
155
873
  import { Observable } from "@babylonjs/core/Misc/observable";
156
874
  import { LogEntry } from "@babylonjs/gui-editor/components/log/logComponent";
157
875
  import { Color4 } from "@babylonjs/core/Maths/math.color";
158
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
159
876
  import { WorkbenchComponent } from "@babylonjs/gui-editor/diagram/workbench";
160
877
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
161
878
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
879
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
880
+ import { Scene } from "@babylonjs/core/scene";
881
+ import { Control } from "@babylonjs/gui/2D/controls/control";
882
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
883
+ import { GuiGizmoComponent } from "@babylonjs/gui-editor/diagram/guiGizmo";
884
+ export enum DragOverLocation {
885
+ ABOVE = 0,
886
+ BELOW = 1,
887
+ CENTER = 2,
888
+ NONE = 3
889
+ }
162
890
  export class GlobalState {
891
+ [x: string]: any;
892
+ liveGuiTexture: Nullable<AdvancedDynamicTexture>;
163
893
  guiTexture: AdvancedDynamicTexture;
164
894
  hostElement: HTMLElement;
165
895
  hostDocument: HTMLDocument;
166
896
  hostWindow: Window;
167
- onSelectionChangedObservable: Observable<Nullable<GUINode>>;
168
- onRebuildRequiredObservable: Observable<void>;
897
+ onSelectionChangedObservable: Observable<Nullable<Control>>;
898
+ onResizeObservable: Observable<Vector2>;
169
899
  onBuiltObservable: Observable<void>;
170
900
  onResetRequiredObservable: Observable<void>;
171
901
  onUpdateRequiredObservable: Observable<void>;
172
- onReOrganizedRequiredObservable: Observable<void>;
173
902
  onLogRequiredObservable: Observable<LogEntry>;
174
903
  onErrorMessageDialogRequiredObservable: Observable<string>;
175
904
  onIsLoadingChanged: Observable<boolean>;
176
- onSelectionBoxMoved: Observable<DOMRect | ClientRect>;
177
- onGuiNodeRemovalObservable: Observable<GUINode>;
905
+ onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
906
+ onNewSceneObservable: Observable<Nullable<Scene>>;
907
+ onGuiNodeRemovalObservable: Observable<Control>;
908
+ onPopupClosedObservable: Observable<void>;
178
909
  backgroundColor: Color4;
179
910
  blockKeyboardEvents: boolean;
180
911
  controlCamera: boolean;
912
+ selectionLock: boolean;
181
913
  workbench: WorkbenchComponent;
914
+ guiGizmo: GuiGizmoComponent;
182
915
  onPropertyChangedObservable: Observable<PropertyChangedEvent>;
916
+ onZoomObservable: Observable<void>;
917
+ onFitToWindowObservable: Observable<void>;
918
+ onPanObservable: Observable<void>;
919
+ onSelectionButtonObservable: Observable<void>;
920
+ onMoveObservable: Observable<void>;
921
+ onLoadObservable: Observable<File>;
922
+ onSaveObservable: Observable<void>;
923
+ onSnippetLoadObservable: Observable<void>;
924
+ onSnippetSaveObservable: Observable<void>;
925
+ onOutlinesObservable: Observable<void>;
926
+ onResponsiveChangeObservable: Observable<boolean>;
927
+ onParentingChangeObservable: Observable<Nullable<Control>>;
928
+ onPropertyGridUpdateRequiredObservable: Observable<void>;
929
+ onDraggingEndObservable: Observable<void>;
930
+ onDraggingStartObservable: Observable<void>;
931
+ onWindowResizeObservable: Observable<void>;
932
+ onGizmoUpdateRequireObservable: Observable<void>;
933
+ draggedControl: Nullable<Control>;
934
+ draggedControlDirection: DragOverLocation;
935
+ isSaving: boolean;
936
+ lockObject: LockObject;
183
937
  storeEditorData: (serializationObject: any) => void;
184
938
  customSave?: {
185
939
  label: string;
186
- action: (data: string) => Promise<void>;
940
+ action: (data: string) => Promise<string>;
941
+ };
942
+ customLoad?: {
943
+ label: string;
944
+ action: (data: string) => Promise<string>;
187
945
  };
188
946
  constructor();
189
947
  }
190
948
  }
191
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/lineContainerComponent" {
192
- import * as React from "react";
193
- interface ILineContainerComponentProps {
194
- title: string;
195
- children: any[] | any;
196
- closed?: boolean;
197
- }
198
- export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
199
- isExpanded: boolean;
200
- }> {
201
- constructor(props: ILineContainerComponentProps);
202
- switchExpandedState(): void;
203
- renderHeader(): JSX.Element;
204
- render(): JSX.Element;
205
- }
206
- }
207
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/draggableLineComponent" {
208
- import * as React from "react";
209
- export interface IButtonLineComponentProps {
210
- data: string;
211
- tooltip: string;
212
- }
213
- export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
214
- constructor(props: IButtonLineComponentProps);
215
- render(): JSX.Element;
216
- }
217
- }
218
- declare module "@babylonjs/gui-editor/components/guiList/guiListComponent" {
219
- import * as React from "react";
220
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
221
- interface IGuiListComponentProps {
222
- globalState: GlobalState;
223
- }
224
- export class GuiListComponent extends React.Component<IGuiListComponentProps, {
225
- filter: string;
226
- }> {
227
- private _onResetRequiredObserver;
228
- private static _Tooltips;
229
- constructor(props: IGuiListComponentProps);
230
- componentWillUnmount(): void;
231
- filterContent(filter: string): void;
232
- render(): JSX.Element;
233
- }
234
- }
235
949
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/buttonLineComponent" {
236
950
  import * as React from "react";
237
951
  export interface IButtonLineComponentProps {
238
952
  label: string;
239
953
  onClick: () => void;
954
+ icon?: string;
955
+ iconLabel?: string;
240
956
  }
241
957
  export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
242
958
  constructor(props: IButtonLineComponentProps);
@@ -249,6 +965,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileButtonLineCom
249
965
  label: string;
250
966
  onClick: (file: File) => void;
251
967
  accept: string;
968
+ icon?: string;
969
+ iconLabel?: string;
252
970
  }
253
971
  export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
254
972
  private static _IDGenerator;
@@ -264,7 +982,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
264
982
  import { Observable } from "@babylonjs/core/Misc/observable";
265
983
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
266
984
  export interface ICheckBoxLineComponentProps {
267
- label: string;
985
+ label?: string;
268
986
  target?: any;
269
987
  propertyName?: string;
270
988
  isSelected?: () => boolean;
@@ -272,6 +990,10 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
272
990
  onValueChanged?: () => void;
273
991
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
274
992
  disabled?: boolean;
993
+ icon?: string;
994
+ iconLabel?: string;
995
+ faIcons?: {
996
+ };
275
997
  }
276
998
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
277
999
  isSelected: boolean;
@@ -300,6 +1022,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textLineComponent
300
1022
  url?: string;
301
1023
  ignoreValue?: boolean;
302
1024
  additionalClass?: string;
1025
+ icon?: string;
1026
+ iconLabel?: string;
1027
+ tooltip?: string;
303
1028
  }
304
1029
  export class TextLineComponent extends React.Component<ITextLineComponentProps> {
305
1030
  constructor(props: ITextLineComponentProps);
@@ -319,17 +1044,6 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/stringTools" {
319
1044
  static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
320
1045
  }
321
1046
  }
322
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
323
- /**
324
- * Class used to provide lock mechanism
325
- */
326
- export class LockObject {
327
- /**
328
- * Gets or set if the lock is engaged
329
- */
330
- lock: boolean;
331
- }
332
- }
333
1047
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponent" {
334
1048
  import * as React from "react";
335
1049
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -351,6 +1065,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
351
1065
  max?: number;
352
1066
  smallUI?: boolean;
353
1067
  onEnter?: (newValue: number) => void;
1068
+ icon?: string;
1069
+ iconLabel?: string;
1070
+ defaultValue?: number;
354
1071
  }
355
1072
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
356
1073
  value: string;
@@ -373,6 +1090,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/sliderLineCompone
373
1090
  import * as React from "react";
374
1091
  import { Observable } from "@babylonjs/core/Misc/observable";
375
1092
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1093
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
376
1094
  interface ISliderLineComponentProps {
377
1095
  label: string;
378
1096
  target?: any;
@@ -387,6 +1105,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/sliderLineCompone
387
1105
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
388
1106
  decimalCount?: number;
389
1107
  margin?: boolean;
1108
+ icon?: string;
1109
+ iconLabel?: string;
1110
+ lockObject?: LockObject;
390
1111
  }
391
1112
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
392
1113
  value: number;
@@ -415,6 +1136,11 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
415
1136
  value?: string;
416
1137
  onChange?: (value: string) => void;
417
1138
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1139
+ icon?: string;
1140
+ iconLabel?: string;
1141
+ noUnderline?: boolean;
1142
+ numbersOnly?: boolean;
1143
+ delayInput?: boolean;
418
1144
  }
419
1145
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
420
1146
  value: string;
@@ -430,137 +1156,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
430
1156
  render(): JSX.Element;
431
1157
  }
432
1158
  }
433
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/optionsLineComponent" {
434
- import * as React from "react";
435
- import { Observable } from "@babylonjs/core/Misc/observable";
436
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
437
- export const Null_Value: number;
438
- export class ListLineOption {
439
- label: string;
440
- value: number;
441
- selected?: boolean;
442
- }
443
- export interface IOptionsLineComponentProps {
444
- label: string;
445
- target: any;
446
- propertyName: string;
447
- options: ListLineOption[];
448
- noDirectUpdate?: boolean;
449
- onSelect?: (value: number) => void;
450
- extractValue?: () => number;
451
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
452
- allowNullValue?: boolean;
453
- }
454
- export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
455
- value: number;
456
- }> {
457
- private _localChange;
458
- private remapValueIn;
459
- private remapValueOut;
460
- constructor(props: IOptionsLineComponentProps);
461
- shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
462
- value: number;
463
- }): boolean;
464
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
465
- updateValue(valueString: string): void;
466
- render(): JSX.Element;
467
- }
468
- }
469
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
470
- import * as React from "react";
471
- import { Observable } from "@babylonjs/core/Misc/observable";
472
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
473
- import { Control } from "@babylonjs/gui/2D/controls/control";
474
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
475
- interface ICommonControlPropertyGridComponentProps {
476
- control: Control;
477
- lockObject: LockObject;
478
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
479
- }
480
- export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
481
- constructor(props: ICommonControlPropertyGridComponentProps);
482
- renderGridInformation(): JSX.Element | null;
483
- render(): JSX.Element;
484
- }
485
- }
486
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
487
- import * as React from "react";
488
- import { Observable } from "@babylonjs/core/Misc/observable";
489
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
490
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
491
- import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
492
- interface ISliderPropertyGridComponentProps {
493
- slider: Slider;
494
- lockObject: LockObject;
495
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
496
- }
497
- export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
498
- constructor(props: ISliderPropertyGridComponentProps);
499
- render(): JSX.Element;
500
- }
501
- }
502
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/linePropertyGridComponent" {
503
- import * as React from "react";
504
- import { Observable } from "@babylonjs/core/Misc/observable";
505
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
506
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
507
- import { Line } from "@babylonjs/gui/2D/controls/line";
508
- interface ILinePropertyGridComponentProps {
509
- line: Line;
510
- lockObject: LockObject;
511
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
512
- }
513
- export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
514
- constructor(props: ILinePropertyGridComponentProps);
515
- onDashChange(value: string): void;
516
- render(): JSX.Element;
517
- }
518
- }
519
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
520
- import * as React from "react";
521
- import { Observable } from "@babylonjs/core/Misc/observable";
522
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
523
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
524
- import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
525
- interface IRadioButtonPropertyGridComponentProps {
526
- radioButton: RadioButton;
527
- lockObject: LockObject;
528
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
529
- }
530
- export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
531
- constructor(props: IRadioButtonPropertyGridComponentProps);
532
- render(): JSX.Element;
533
- }
534
- }
535
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
536
- import * as React from "react";
537
- import { Observable } from "@babylonjs/core/Misc/observable";
538
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
539
- import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
540
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
541
- interface ITextBlockPropertyGridComponentProps {
542
- textBlock: TextBlock;
543
- lockObject: LockObject;
544
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
545
- }
546
- export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
547
- constructor(props: ITextBlockPropertyGridComponentProps);
548
- render(): JSX.Element;
549
- }
550
- }
551
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
1159
+ declare module "@babylonjs/gui-editor/components/commandButtonComponent" {
552
1160
  import * as React from "react";
553
- import { Observable } from "@babylonjs/core/Misc/observable";
554
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
555
- import { InputText } from "@babylonjs/gui/2D/controls/inputText";
556
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
557
- interface IInputTextPropertyGridComponentProps {
558
- inputText: InputText;
559
- lockObject: LockObject;
560
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1161
+ interface ICommandButtonComponentProps {
1162
+ tooltip: string;
1163
+ shortcut?: string;
1164
+ icon: string;
1165
+ iconLabel?: string;
1166
+ isActive: boolean;
1167
+ onClick: () => void;
1168
+ altStyle?: boolean;
1169
+ disabled?: boolean;
561
1170
  }
562
- export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
563
- constructor(props: IInputTextPropertyGridComponentProps);
1171
+ export class CommandButtonComponent extends React.Component<ICommandButtonComponentProps> {
1172
+ constructor(props: ICommandButtonComponentProps);
564
1173
  render(): JSX.Element;
565
1174
  }
566
1175
  }
@@ -572,6 +1181,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/numericInputCompo
572
1181
  step?: number;
573
1182
  onChange: (value: number) => void;
574
1183
  precision?: number;
1184
+ icon?: string;
1185
+ iconLabel?: string;
575
1186
  }
576
1187
  export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
577
1188
  value: string;
@@ -630,6 +1241,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker
630
1241
  */
631
1242
  export interface IColorPickerProps {
632
1243
  color: Color3 | Color4;
1244
+ linearhint?: boolean;
633
1245
  debugMode?: boolean;
634
1246
  onColorChanged?: (color: Color3 | Color4) => void;
635
1247
  }
@@ -649,6 +1261,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker
649
1261
  private _isSaturationPointerDown;
650
1262
  private _isHuePointerDown;
651
1263
  constructor(props: IColorPickerProps);
1264
+ shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
652
1265
  onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
653
1266
  onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
654
1267
  onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
@@ -664,10 +1277,14 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker
664
1277
  }
665
1278
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerComponent" {
666
1279
  import * as React from "react";
667
- import { Color4, Color3 } from '@babylonjs/core/Maths/math.color';
1280
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
668
1281
  export interface IColorPickerComponentProps {
669
1282
  value: Color4 | Color3;
1283
+ linearHint?: boolean;
670
1284
  onColorChanged: (newOne: string) => void;
1285
+ icon?: string;
1286
+ iconLabel?: string;
1287
+ shouldPopRight?: boolean;
671
1288
  }
672
1289
  interface IColorPickerComponentState {
673
1290
  pickerEnabled: boolean;
@@ -689,35 +1306,200 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineCompone
689
1306
  import * as React from "react";
690
1307
  import { Observable } from "@babylonjs/core/Misc/observable";
691
1308
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
692
- import { Color3 } from '@babylonjs/core/Maths/math.color';
1309
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
1310
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
693
1311
  export interface IColor3LineComponentProps {
694
1312
  label: string;
695
1313
  target: any;
696
1314
  propertyName: string;
697
1315
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
698
1316
  isLinear?: boolean;
1317
+ icon?: string;
1318
+ lockObject?: LockObject;
1319
+ iconLabel?: string;
1320
+ onValueChange?: (value: string) => void;
699
1321
  }
700
1322
  export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
701
1323
  isExpanded: boolean;
702
- color: Color3;
1324
+ color: Color3 | Color4;
1325
+ colorText: string;
703
1326
  }> {
704
1327
  private _localChange;
705
1328
  constructor(props: IColor3LineComponentProps);
1329
+ private convertToColor3;
706
1330
  shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
707
- color: Color3;
1331
+ color: Color3 | Color4;
1332
+ colorText: string;
708
1333
  }): boolean;
709
- setPropertyValue(newColor: Color3): void;
1334
+ setPropertyValue(newColor: Color3 | Color4, newColorText: string): void;
710
1335
  onChange(newValue: string): void;
711
1336
  switchExpandState(): void;
712
- raiseOnPropertyChanged(previousValue: Color3): void;
1337
+ raiseOnPropertyChanged(previousValue: Color3 | Color4): void;
713
1338
  updateStateR(value: number): void;
714
1339
  updateStateG(value: number): void;
715
1340
  updateStateB(value: number): void;
716
1341
  copyToClipboard(): void;
1342
+ convert(colorString: string): void;
1343
+ private _colorStringSaved;
1344
+ private _colorPickerOpen;
1345
+ private _colorString;
717
1346
  render(): JSX.Element;
718
1347
  }
719
1348
  }
720
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
1349
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent" {
1350
+ import * as React from "react";
1351
+ import { Observable } from "@babylonjs/core/Misc/observable";
1352
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1353
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1354
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1355
+ interface ICommonControlPropertyGridComponentProps {
1356
+ control: Control;
1357
+ lockObject: LockObject;
1358
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1359
+ }
1360
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
1361
+ private _width;
1362
+ private _height;
1363
+ constructor(props: ICommonControlPropertyGridComponentProps);
1364
+ private _updateAlignment;
1365
+ private _checkAndUpdateValues;
1366
+ private _markChildrenAsDirty;
1367
+ render(): JSX.Element;
1368
+ }
1369
+ }
1370
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent" {
1371
+ import * as React from "react";
1372
+ import { Observable } from "@babylonjs/core/Misc/observable";
1373
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1374
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1375
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1376
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1377
+ interface ISliderPropertyGridComponentProps {
1378
+ slider: Slider | ImageBasedSlider;
1379
+ lockObject: LockObject;
1380
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1381
+ }
1382
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
1383
+ constructor(props: ISliderPropertyGridComponentProps);
1384
+ render(): JSX.Element;
1385
+ }
1386
+ }
1387
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderGenericPropertyGridComponent" {
1388
+ import * as React from "react";
1389
+ import { Observable } from "@babylonjs/core/Misc/observable";
1390
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1391
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1392
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1393
+ interface ISliderGenericPropertyGridComponentProps {
1394
+ slider: Slider;
1395
+ lockObject: LockObject;
1396
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1397
+ }
1398
+ export class SliderGenericPropertyGridComponent extends React.Component<ISliderGenericPropertyGridComponentProps> {
1399
+ constructor(props: ISliderGenericPropertyGridComponentProps);
1400
+ render(): JSX.Element;
1401
+ }
1402
+ }
1403
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/linePropertyGridComponent" {
1404
+ import * as React from "react";
1405
+ import { Observable } from "@babylonjs/core/Misc/observable";
1406
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1407
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1408
+ import { Line } from "@babylonjs/gui/2D/controls/line";
1409
+ interface ILinePropertyGridComponentProps {
1410
+ line: Line;
1411
+ lockObject: LockObject;
1412
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1413
+ }
1414
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
1415
+ constructor(props: ILinePropertyGridComponentProps);
1416
+ onDashChange(value: string): void;
1417
+ render(): JSX.Element;
1418
+ }
1419
+ }
1420
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/radioButtonPropertyGridComponent" {
1421
+ import * as React from "react";
1422
+ import { Observable } from "@babylonjs/core/Misc/observable";
1423
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1424
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1425
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1426
+ interface IRadioButtonPropertyGridComponentProps {
1427
+ radioButton: RadioButton;
1428
+ lockObject: LockObject;
1429
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1430
+ }
1431
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
1432
+ constructor(props: IRadioButtonPropertyGridComponentProps);
1433
+ render(): JSX.Element;
1434
+ }
1435
+ }
1436
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/optionsLineComponent" {
1437
+ import * as React from "react";
1438
+ import { Observable } from "@babylonjs/core/Misc/observable";
1439
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1440
+ import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
1441
+ export const Null_Value: number;
1442
+ export interface IOptionsLineComponentProps {
1443
+ label: string;
1444
+ target: any;
1445
+ propertyName: string;
1446
+ options: IInspectableOptions[];
1447
+ noDirectUpdate?: boolean;
1448
+ onSelect?: (value: number) => void;
1449
+ extractValue?: () => number;
1450
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1451
+ allowNullValue?: boolean;
1452
+ icon?: string;
1453
+ iconLabel?: string;
1454
+ }
1455
+ export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
1456
+ value: number;
1457
+ }> {
1458
+ private _localChange;
1459
+ private remapValueIn;
1460
+ private remapValueOut;
1461
+ constructor(props: IOptionsLineComponentProps);
1462
+ shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
1463
+ value: number;
1464
+ }): boolean;
1465
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1466
+ updateValue(valueString: string): void;
1467
+ render(): JSX.Element;
1468
+ }
1469
+ }
1470
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/textBlockPropertyGridComponent" {
1471
+ import * as React from "react";
1472
+ import { Observable } from "@babylonjs/core/Misc/observable";
1473
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1474
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1475
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1476
+ interface ITextBlockPropertyGridComponentProps {
1477
+ textBlock: TextBlock;
1478
+ lockObject: LockObject;
1479
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1480
+ }
1481
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
1482
+ constructor(props: ITextBlockPropertyGridComponentProps);
1483
+ render(): JSX.Element;
1484
+ }
1485
+ }
1486
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/inputTextPropertyGridComponent" {
1487
+ import * as React from "react";
1488
+ import { Observable } from "@babylonjs/core/Misc/observable";
1489
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1490
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1491
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1492
+ interface IInputTextPropertyGridComponentProps {
1493
+ inputText: InputText;
1494
+ lockObject: LockObject;
1495
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1496
+ }
1497
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
1498
+ constructor(props: IInputTextPropertyGridComponentProps);
1499
+ render(): JSX.Element;
1500
+ }
1501
+ }
1502
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent" {
721
1503
  import * as React from "react";
722
1504
  import { Observable } from "@babylonjs/core/Misc/observable";
723
1505
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -733,7 +1515,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
733
1515
  render(): JSX.Element;
734
1516
  }
735
1517
  }
736
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imagePropertyGridComponent" {
1518
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/imagePropertyGridComponent" {
737
1519
  import * as React from "react";
738
1520
  import { Observable } from "@babylonjs/core/Misc/observable";
739
1521
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -749,7 +1531,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
749
1531
  render(): JSX.Element;
750
1532
  }
751
1533
  }
752
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
1534
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
753
1535
  import * as React from "react";
754
1536
  import { Observable } from "@babylonjs/core/Misc/observable";
755
1537
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -765,7 +1547,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
765
1547
  render(): JSX.Element;
766
1548
  }
767
1549
  }
768
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
1550
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/rectanglePropertyGridComponent" {
769
1551
  import * as React from "react";
770
1552
  import { Observable } from "@babylonjs/core/Misc/observable";
771
1553
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -781,7 +1563,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
781
1563
  render(): JSX.Element;
782
1564
  }
783
1565
  }
784
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
1566
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/stackPanelPropertyGridComponent" {
785
1567
  import * as React from "react";
786
1568
  import { Observable } from "@babylonjs/core/Misc/observable";
787
1569
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -797,7 +1579,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
797
1579
  render(): JSX.Element;
798
1580
  }
799
1581
  }
800
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/gridPropertyGridComponent" {
1582
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/gridPropertyGridComponent" {
801
1583
  import * as React from "react";
802
1584
  import { Observable } from "@babylonjs/core/Misc/observable";
803
1585
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -810,12 +1592,30 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
810
1592
  }
811
1593
  export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
812
1594
  constructor(props: IGridPropertyGridComponentProps);
1595
+ private _removingColumn;
1596
+ private _removingRow;
1597
+ private _previousGrid;
1598
+ private _rowDefinitions;
1599
+ private _rowEditFlags;
1600
+ private _columnEditFlags;
1601
+ private _columnDefinitions;
1602
+ private _editedRow;
1603
+ private _editedColumn;
1604
+ private _rowChild;
1605
+ private _columnChild;
813
1606
  renderRows(): JSX.Element[];
1607
+ setRowValues(): void;
1608
+ setColumnValues(): void;
814
1609
  renderColumns(): JSX.Element[];
1610
+ resizeRow(): void;
1611
+ resizeColumn(): void;
1612
+ checkValue(value: string, percent: boolean): string;
1613
+ checkPercentage(value: string): boolean;
1614
+ resetValues(): void;
815
1615
  render(): JSX.Element;
816
1616
  }
817
1617
  }
818
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
1618
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/scrollViewerPropertyGridComponent" {
819
1619
  import * as React from "react";
820
1620
  import { Observable } from "@babylonjs/core/Misc/observable";
821
1621
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -831,7 +1631,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
831
1631
  render(): JSX.Element;
832
1632
  }
833
1633
  }
834
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
1634
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/ellipsePropertyGridComponent" {
835
1635
  import * as React from "react";
836
1636
  import { Observable } from "@babylonjs/core/Misc/observable";
837
1637
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -847,7 +1647,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
847
1647
  render(): JSX.Element;
848
1648
  }
849
1649
  }
850
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
1650
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/checkboxPropertyGridComponent" {
851
1651
  import * as React from "react";
852
1652
  import { Observable } from "@babylonjs/core/Misc/observable";
853
1653
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -863,7 +1663,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
863
1663
  render(): JSX.Element;
864
1664
  }
865
1665
  }
866
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/controlPropertyGridComponent" {
1666
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/controlPropertyGridComponent" {
867
1667
  import * as React from "react";
868
1668
  import { Observable } from "@babylonjs/core/Misc/observable";
869
1669
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
@@ -879,31 +1679,109 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
879
1679
  render(): JSX.Element;
880
1680
  }
881
1681
  }
1682
+ declare module "@babylonjs/gui-editor/components/parentingPropertyGridComponent" {
1683
+ import * as React from "react";
1684
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1685
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1686
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1687
+ import { Observable } from "@babylonjs/core/Misc/observable";
1688
+ interface IParentingPropertyGridComponentProps {
1689
+ control: Control;
1690
+ lockObject: LockObject;
1691
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1692
+ }
1693
+ export class ParentingPropertyGridComponent extends React.Component<IParentingPropertyGridComponentProps> {
1694
+ constructor(props: IParentingPropertyGridComponentProps);
1695
+ private _columnNumber;
1696
+ private _rowNumber;
1697
+ updateGridPosition(): void;
1698
+ getCellInfo(): void;
1699
+ private _changeCell;
1700
+ render(): JSX.Element;
1701
+ }
1702
+ }
1703
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/displayGridPropertyGridComponent" {
1704
+ import * as React from "react";
1705
+ import { Observable } from "@babylonjs/core/Misc/observable";
1706
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1707
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1708
+ import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1709
+ interface IDisplayGridPropertyGridComponentProps {
1710
+ displayGrid: DisplayGrid;
1711
+ lockObject: LockObject;
1712
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1713
+ }
1714
+ export class DisplayGridPropertyGridComponent extends React.Component<IDisplayGridPropertyGridComponentProps> {
1715
+ constructor(props: IDisplayGridPropertyGridComponentProps);
1716
+ render(): JSX.Element;
1717
+ }
1718
+ }
1719
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/buttonPropertyGridComponent" {
1720
+ import * as React from "react";
1721
+ import { Observable } from "@babylonjs/core/Misc/observable";
1722
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1723
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1724
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1725
+ interface IButtonPropertyGridComponentProps {
1726
+ rectangle: Rectangle;
1727
+ lockObject: LockObject;
1728
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1729
+ onAddComponent: (newComponent: string) => void;
1730
+ }
1731
+ export class ButtonPropertyGridComponent extends React.Component<IButtonPropertyGridComponentProps> {
1732
+ constructor(props: IButtonPropertyGridComponentProps);
1733
+ render(): JSX.Element;
1734
+ }
1735
+ }
1736
+ declare module "@babylonjs/gui-editor/guiNodeTools" {
1737
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1738
+ import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1739
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1740
+ import { Line } from "@babylonjs/gui/2D/controls/line";
1741
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1742
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1743
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1744
+ import { Image } from "@babylonjs/gui/2D/controls/image";
1745
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1746
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
1747
+ import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1748
+ import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1749
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1750
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1751
+ export class GUINodeTools {
1752
+ static ImageControlDefaultUrl: string;
1753
+ static CreateControlFromString(data: string): Grid | Rectangle | Line | Image | TextBlock | Slider | ImageBasedSlider | RadioButton | InputText | ColorPicker | StackPanel | Ellipse | Checkbox | DisplayGrid;
1754
+ }
1755
+ }
882
1756
  declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponent" {
883
1757
  import * as React from "react";
884
1758
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
885
1759
  import { Nullable } from "@babylonjs/core/types";
886
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
1760
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1761
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
887
1762
  interface IPropertyTabComponentProps {
888
1763
  globalState: GlobalState;
889
1764
  }
890
1765
  interface IPropertyTabComponentState {
891
- currentNode: Nullable<GUINode>;
1766
+ currentNode: Nullable<Control>;
892
1767
  }
893
1768
  export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
894
1769
  private _onBuiltObserver;
895
1770
  private _timerIntervalId;
896
1771
  private _lockObject;
1772
+ private _sizeOption;
897
1773
  constructor(props: IPropertyTabComponentProps);
898
- timerRefresh(): void;
899
1774
  componentDidMount(): void;
900
1775
  componentWillUnmount(): void;
901
1776
  load(file: File): void;
902
- save(): void;
903
- saveToSnippetServer(): void;
1777
+ save(saveCallback: () => void): void;
1778
+ saveLocally: () => void;
1779
+ saveToSnippetServerHelper: (content: string, adt: AdvancedDynamicTexture) => Promise<string>;
1780
+ saveToSnippetServer: () => Promise<void>;
904
1781
  loadFromSnippet(): void;
905
1782
  renderProperties(): JSX.Element | null;
906
- render(): JSX.Element;
1783
+ renderControlIcon(): string;
1784
+ render(): JSX.Element | null;
907
1785
  }
908
1786
  }
909
1787
  declare module "@babylonjs/gui-editor/portal" {
@@ -916,51 +1794,6 @@ declare module "@babylonjs/gui-editor/portal" {
916
1794
  render(): React.ReactPortal;
917
1795
  }
918
1796
  }
919
- declare module "@babylonjs/gui-editor/guiNodeTools" {
920
- import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
921
- import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
922
- import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
923
- import { Line } from "@babylonjs/gui/2D/controls/line";
924
- import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
925
- import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
926
- import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
927
- import { VirtualKeyboard } from "@babylonjs/gui/2D/controls/virtualKeyboard";
928
- import { Image } from "@babylonjs/gui/2D/controls/image";
929
- import { InputText } from "@babylonjs/gui/2D/controls/inputText";
930
- import { Grid } from "@babylonjs/gui/2D/controls/grid";
931
- import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
932
- export class GUINodeTools {
933
- static CreateControlFromString(data: string): Grid | Slider | Line | TextBlock | InputText | ColorPicker | Image | Rectangle | Ellipse | Checkbox | DisplayGrid | VirtualKeyboard;
934
- }
935
- }
936
- declare module "@babylonjs/gui-editor/nodeLocationInfo" {
937
- export interface INodeLocationInfo {
938
- blockId: number;
939
- x: number;
940
- y: number;
941
- }
942
- export interface IFrameData {
943
- x: number;
944
- y: number;
945
- width: number;
946
- height: number;
947
- color: number[];
948
- name: string;
949
- isCollapsed: boolean;
950
- blocks: number[];
951
- comments: string;
952
- }
953
- export interface IEditorData {
954
- locations: INodeLocationInfo[];
955
- x: number;
956
- y: number;
957
- zoom: number;
958
- frames?: IFrameData[];
959
- map?: {
960
- [key: number]: number;
961
- };
962
- }
963
- }
964
1797
  declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
965
1798
  import * as React from "react";
966
1799
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
@@ -975,45 +1808,272 @@ declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
975
1808
  render(): JSX.Element | null;
976
1809
  }
977
1810
  }
978
- declare module "@babylonjs/gui-editor/workbenchEditor" {
1811
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemLabelComponent" {
979
1812
  import * as React from "react";
980
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
981
- import { Nullable } from "@babylonjs/core/types";
982
- import { IEditorData } from "@babylonjs/gui-editor/nodeLocationInfo";
983
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
984
- interface IGraphEditorProps {
985
- globalState: GlobalState;
1813
+ interface ITreeItemLabelComponentProps {
1814
+ label: string;
1815
+ onClick?: () => void;
1816
+ color: string;
986
1817
  }
987
- interface IGraphEditorState {
988
- showPreviewPopUp: boolean;
1818
+ export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps> {
1819
+ constructor(props: ITreeItemLabelComponentProps);
1820
+ onClick(): void;
1821
+ render(): JSX.Element;
989
1822
  }
990
- export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
991
- private _workbenchCanvas;
1823
+ }
1824
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/extensionsComponent" {
1825
+ import * as React from "react";
1826
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1827
+ interface IExtensionsComponentProps {
1828
+ target: any;
1829
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1830
+ }
1831
+ export class ExtensionsComponent extends React.Component<IExtensionsComponentProps, {
1832
+ popupVisible: boolean;
1833
+ }> {
1834
+ private _popup;
1835
+ private extensionRef;
1836
+ constructor(props: IExtensionsComponentProps);
1837
+ showPopup(): void;
1838
+ componentDidMount(): void;
1839
+ componentDidUpdate(): void;
1840
+ render(): JSX.Element | null;
1841
+ }
1842
+ }
1843
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/entities/gui/controlTreeItemComponent" {
1844
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1845
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1846
+ import * as React from "react";
1847
+ import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1848
+ interface IControlTreeItemComponentProps {
1849
+ control: Control;
1850
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1851
+ onClick: () => void;
1852
+ globalState: GlobalState;
1853
+ isHovered: boolean;
1854
+ dragOverHover: boolean;
1855
+ dragOverLocation: DragOverLocation;
1856
+ }
1857
+ export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
1858
+ isActive: boolean;
1859
+ isVisible: boolean;
1860
+ }> {
1861
+ constructor(props: IControlTreeItemComponentProps);
1862
+ highlight(): void;
1863
+ switchVisibility(): void;
1864
+ render(): JSX.Element;
1865
+ }
1866
+ }
1867
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemSelectableComponent" {
1868
+ import { Nullable } from "@babylonjs/core/types";
1869
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1870
+ import * as React from "react";
1871
+ import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1872
+ export interface ITreeItemSelectableComponentProps {
1873
+ entity: any;
1874
+ selectedEntity?: any;
1875
+ mustExpand?: boolean;
1876
+ offset: number;
1877
+ globalState: GlobalState;
1878
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1879
+ filter: Nullable<string>;
1880
+ }
1881
+ export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, {
1882
+ isSelected: boolean;
1883
+ isHovered: boolean;
1884
+ dragOverLocation: DragOverLocation;
1885
+ }> {
1886
+ dragOverHover: boolean;
1887
+ private _onSelectionChangedObservable;
1888
+ private _onDraggingEndObservable;
1889
+ private _onDraggingStartObservable;
1890
+ constructor(props: ITreeItemSelectableComponentProps);
1891
+ switchExpandedState(): void;
1892
+ shouldComponentUpdate(nextProps: ITreeItemSelectableComponentProps, nextState: {
1893
+ isSelected: boolean;
1894
+ }): boolean;
1895
+ scrollIntoView(): void;
1896
+ componentWillUnmount(): void;
1897
+ onSelect(): void;
1898
+ renderChildren(isExpanded: boolean): (JSX.Element | null)[] | null;
1899
+ render(): JSX.Element | null;
1900
+ dragOver(event: React.DragEvent<HTMLDivElement>): void;
1901
+ drop(): void;
1902
+ }
1903
+ }
1904
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemComponent" {
1905
+ import * as React from "react";
1906
+ import { Nullable } from "@babylonjs/core/types";
1907
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1908
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1909
+ export interface ITreeItemComponentProps {
1910
+ items?: Nullable<any[]>;
1911
+ label: string;
1912
+ offset: number;
1913
+ filter: Nullable<string>;
1914
+ forceSubitems?: boolean;
1915
+ globalState: GlobalState;
1916
+ entity?: any;
1917
+ selectedEntity: any;
1918
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1919
+ contextMenuItems?: {
1920
+ label: string;
1921
+ action: () => void;
1922
+ }[];
1923
+ }
1924
+ export class TreeItemComponent extends React.Component<ITreeItemComponentProps, {
1925
+ isExpanded: boolean;
1926
+ mustExpand: boolean;
1927
+ }> {
1928
+ static _ContextMenuUniqueIdGenerator: number;
1929
+ constructor(props: ITreeItemComponentProps);
1930
+ switchExpandedState(): void;
1931
+ shouldComponentUpdate(nextProps: ITreeItemComponentProps, nextState: {
1932
+ isExpanded: boolean;
1933
+ }): boolean;
1934
+ expandAll(expand: boolean): void;
1935
+ renderContextMenu(): JSX.Element | null;
1936
+ render(): JSX.Element;
1937
+ }
1938
+ }
1939
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/sceneExplorerComponent" {
1940
+ import * as React from "react";
1941
+ import { Nullable } from "@babylonjs/core/types";
1942
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1943
+ import { Scene } from "@babylonjs/core/scene";
1944
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1945
+ interface ISceneExplorerFilterComponentProps {
1946
+ onFilter: (filter: string) => void;
1947
+ }
1948
+ export class SceneExplorerFilterComponent extends React.Component<ISceneExplorerFilterComponentProps> {
1949
+ constructor(props: ISceneExplorerFilterComponentProps);
1950
+ render(): JSX.Element;
1951
+ }
1952
+ interface ISceneExplorerComponentProps {
1953
+ scene?: Scene;
1954
+ noCommands?: boolean;
1955
+ noHeader?: boolean;
1956
+ noExpand?: boolean;
1957
+ noClose?: boolean;
1958
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1959
+ globalState: GlobalState;
1960
+ popupMode?: boolean;
1961
+ onPopup?: () => void;
1962
+ onClose?: () => void;
1963
+ }
1964
+ export class SceneExplorerComponent extends React.Component<ISceneExplorerComponentProps, {
1965
+ filter: Nullable<string>;
1966
+ selectedEntity: any;
1967
+ scene: Nullable<Scene>;
1968
+ }> {
1969
+ private _onSelectionChangeObserver;
1970
+ private _onParrentingChangeObserver;
1971
+ private _onNewSceneObserver;
1972
+ private _onPropertyChangedObservable;
1973
+ constructor(props: ISceneExplorerComponentProps);
1974
+ componentDidMount(): void;
1975
+ componentWillUnmount(): void;
1976
+ filterContent(filter: string): void;
1977
+ findSiblings(parent: any, items: any[], target: any, goNext: boolean, data: {
1978
+ previousOne?: any;
1979
+ found?: boolean;
1980
+ }): boolean;
1981
+ processKeys(keyEvent: React.KeyboardEvent<HTMLDivElement>): void;
1982
+ renderContent(): JSX.Element | null;
1983
+ onClose(): void;
1984
+ onPopup(): void;
1985
+ render(): JSX.Element;
1986
+ }
1987
+ }
1988
+ declare module "@babylonjs/gui-editor/components/commandDropdownComponent" {
1989
+ import * as React from "react";
1990
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1991
+ interface ICommandDropdownComponentProps {
1992
+ globalState: GlobalState;
1993
+ icon?: string;
1994
+ tooltip: string;
1995
+ defaultValue?: string;
1996
+ items: {
1997
+ label: string;
1998
+ icon?: string;
1999
+ fileButton?: boolean;
2000
+ onClick?: () => void;
2001
+ onCheck?: (value: boolean) => void;
2002
+ storeKey?: string;
2003
+ isActive?: boolean;
2004
+ defaultValue?: boolean | string;
2005
+ subItems?: string[];
2006
+ }[];
2007
+ toRight?: boolean;
2008
+ }
2009
+ export class CommandDropdownComponent extends React.Component<ICommandDropdownComponentProps, {
2010
+ isExpanded: boolean;
2011
+ activeState: string;
2012
+ }> {
2013
+ constructor(props: ICommandDropdownComponentProps);
2014
+ render(): JSX.Element;
2015
+ }
2016
+ }
2017
+ declare module "@babylonjs/gui-editor/components/commandBarComponent" {
2018
+ import * as React from "react";
2019
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
2020
+ interface ICommandBarComponentProps {
2021
+ globalState: GlobalState;
2022
+ }
2023
+ export class CommandBarComponent extends React.Component<ICommandBarComponentProps> {
2024
+ private _panning;
2025
+ private _zooming;
2026
+ private _selecting;
2027
+ private _outlines;
2028
+ constructor(props: ICommandBarComponentProps);
2029
+ private updateNodeOutline;
2030
+ render(): JSX.Element;
2031
+ }
2032
+ }
2033
+ declare module "@babylonjs/gui-editor/workbenchEditor" {
2034
+ import * as React from "react";
2035
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
2036
+ interface IGraphEditorProps {
2037
+ globalState: GlobalState;
2038
+ }
2039
+ interface IGraphEditorState {
2040
+ showPreviewPopUp: boolean;
2041
+ }
2042
+ export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
992
2043
  private _startX;
993
2044
  private _moveInProgress;
994
2045
  private _leftWidth;
995
2046
  private _rightWidth;
996
- private _onWidgetKeyUpPointer;
2047
+ private _toolBarIconSize;
997
2048
  private _popUpWindow;
2049
+ private _draggedItem;
998
2050
  componentDidMount(): void;
999
- componentWillUnmount(): void;
1000
2051
  constructor(props: IGraphEditorProps);
1001
- pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[];
1002
- zoomToFit(): void;
1003
2052
  showWaitScreen(): void;
1004
2053
  hideWaitScreen(): void;
1005
- reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
1006
2054
  onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1007
2055
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1008
2056
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
1009
2057
  buildColumnLayout(): string;
1010
- emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
1011
2058
  handlePopUp: () => void;
1012
2059
  handleClosingPopUp: () => void;
1013
2060
  createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
1014
2061
  copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
1015
- fixPopUpStyles: (document: Document) => void;
1016
2062
  render(): JSX.Element;
2063
+ _items: {
2064
+ label: string;
2065
+ icon?: string;
2066
+ fileButton?: boolean;
2067
+ onClick?: () => void;
2068
+ onCheck?: (value: boolean) => void;
2069
+ storeKey?: string;
2070
+ isActive?: boolean;
2071
+ defaultValue?: boolean | string;
2072
+ subItems?: string[];
2073
+ }[];
2074
+ createItems(): void;
2075
+ onCreate(value: string): void;
2076
+ createToolbar(): JSX.Element;
1017
2077
  }
1018
2078
  }
1019
2079
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/popup" {
@@ -1024,15 +2084,22 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/popup" {
1024
2084
  }
1025
2085
  declare module "@babylonjs/gui-editor/guiEditor" {
1026
2086
  import { Observable } from "@babylonjs/core/Misc/observable";
2087
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
1027
2088
  /**
1028
2089
  * Interface used to specify creation options for the gui editor
1029
2090
  */
1030
2091
  export interface IGUIEditorOptions {
2092
+ liveGuiTexture?: AdvancedDynamicTexture;
2093
+ customLoad: {
2094
+ label: string;
2095
+ action: (data: string) => Promise<string>;
2096
+ } | undefined;
1031
2097
  hostElement?: HTMLElement;
1032
2098
  customSave?: {
1033
2099
  label: string;
1034
- action: (data: string) => Promise<void>;
2100
+ action: (data: string) => Promise<string>;
1035
2101
  };
2102
+ currentSnippetToken?: string;
1036
2103
  customLoadObservable?: Observable<any>;
1037
2104
  }
1038
2105
  /**
@@ -1044,12 +2111,94 @@ declare module "@babylonjs/gui-editor/guiEditor" {
1044
2111
  * Show the gui editor
1045
2112
  * @param options defines the options to use to configure the gui editor
1046
2113
  */
1047
- static Show(options: IGUIEditorOptions): void;
2114
+ static Show(options: IGUIEditorOptions): Promise<void>;
1048
2115
  }
1049
2116
  }
1050
2117
  declare module "@babylonjs/gui-editor/index" {
1051
2118
  export * from "@babylonjs/gui-editor/guiEditor";
1052
2119
  }
2120
+ declare module "@babylonjs/gui-editor/nodeLocationInfo" {
2121
+ export interface INodeLocationInfo {
2122
+ blockId: number;
2123
+ x: number;
2124
+ y: number;
2125
+ }
2126
+ export interface IFrameData {
2127
+ x: number;
2128
+ y: number;
2129
+ width: number;
2130
+ height: number;
2131
+ color: number[];
2132
+ name: string;
2133
+ isCollapsed: boolean;
2134
+ blocks: number[];
2135
+ comments: string;
2136
+ }
2137
+ export interface IEditorData {
2138
+ locations: INodeLocationInfo[];
2139
+ x: number;
2140
+ y: number;
2141
+ zoom: number;
2142
+ frames?: IFrameData[];
2143
+ map?: {
2144
+ [key: number]: number;
2145
+ };
2146
+ }
2147
+ }
2148
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/iSelectedLineContainer" {
2149
+ export interface ISelectedLineContainer {
2150
+ selectedLineContainerTitles: Array<string>;
2151
+ selectedLineContainerTitlesNoFocus: Array<string>;
2152
+ }
2153
+ }
2154
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/lineContainerComponent" {
2155
+ import * as React from "react";
2156
+ import { ISelectedLineContainer } from "@babylonjs/gui-editor/sharedUiComponents/lines/iSelectedLineContainer";
2157
+ interface ILineContainerComponentProps {
2158
+ selection?: ISelectedLineContainer;
2159
+ title: string;
2160
+ children: any[] | any;
2161
+ closed?: boolean;
2162
+ }
2163
+ export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
2164
+ isExpanded: boolean;
2165
+ isHighlighted: boolean;
2166
+ }> {
2167
+ constructor(props: ILineContainerComponentProps);
2168
+ switchExpandedState(): void;
2169
+ renderHeader(): JSX.Element;
2170
+ componentDidMount(): void;
2171
+ render(): JSX.Element;
2172
+ }
2173
+ }
2174
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/draggableLineComponent" {
2175
+ import * as React from "react";
2176
+ export interface IButtonLineComponentProps {
2177
+ data: string;
2178
+ tooltip: string;
2179
+ }
2180
+ export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
2181
+ constructor(props: IButtonLineComponentProps);
2182
+ render(): JSX.Element;
2183
+ }
2184
+ }
2185
+ declare module "@babylonjs/gui-editor/components/guiList/guiListComponent" {
2186
+ import * as React from "react";
2187
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
2188
+ interface IGuiListComponentProps {
2189
+ globalState: GlobalState;
2190
+ }
2191
+ export class GuiListComponent extends React.Component<IGuiListComponentProps, {
2192
+ filter: string;
2193
+ }> {
2194
+ private _onResetRequiredObserver;
2195
+ private static _Tooltips;
2196
+ constructor(props: IGuiListComponentProps);
2197
+ componentWillUnmount(): void;
2198
+ filterContent(filter: string): void;
2199
+ render(): JSX.Element;
2200
+ }
2201
+ }
1053
2202
  declare module "@babylonjs/gui-editor/legacy/legacy" {
1054
2203
  export * from "@babylonjs/gui-editor/index";
1055
2204
  }
@@ -1212,6 +2361,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/booleanLineCompon
1212
2361
  export interface IBooleanLineComponentProps {
1213
2362
  label: string;
1214
2363
  value: boolean;
2364
+ icon?: string;
2365
+ iconLabel?: string;
1215
2366
  }
1216
2367
  export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
1217
2368
  constructor(props: IBooleanLineComponentProps);
@@ -1230,6 +2381,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color4LineCompone
1230
2381
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1231
2382
  onChange?: () => void;
1232
2383
  isLinear?: boolean;
2384
+ icon?: string;
2385
+ iconLabel?: string;
1233
2386
  }
1234
2387
  export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
1235
2388
  isExpanded: boolean;
@@ -1258,6 +2411,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileMultipleButto
1258
2411
  label: string;
1259
2412
  onClick: (event: any) => void;
1260
2413
  accept: string;
2414
+ icon?: string;
2415
+ iconLabel?: string;
1261
2416
  }
1262
2417
  export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
1263
2418
  private static _IDGenerator;
@@ -1287,6 +2442,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/hexLineComponent"
1287
2442
  digits?: number;
1288
2443
  useEuler?: boolean;
1289
2444
  min?: number;
2445
+ icon?: string;
2446
+ iconLabel?: string;
1290
2447
  }
1291
2448
  export class HexLineComponent extends React.Component<IHexLineComponentProps, {
1292
2449
  value: string;
@@ -1308,7 +2465,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/hexLineComponent"
1308
2465
  }
1309
2466
  }
1310
2467
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/iconButtonLineComponent" {
1311
- import * as React from 'react';
2468
+ import * as React from "react";
1312
2469
  export interface IIconButtonLineComponentProps {
1313
2470
  icon: string;
1314
2471
  onClick: () => void;
@@ -1371,6 +2528,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/radioLineComponen
1371
2528
  label: string;
1372
2529
  isSelected: () => boolean;
1373
2530
  onSelect: () => void;
2531
+ icon?: string;
2532
+ iconLabel?: string;
1374
2533
  }
1375
2534
  export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
1376
2535
  isSelected: boolean;
@@ -1391,6 +2550,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/valueLineComponen
1391
2550
  color?: string;
1392
2551
  fractionDigits?: number;
1393
2552
  units?: string;
2553
+ icon?: string;
2554
+ iconLabel?: string;
1394
2555
  }
1395
2556
  export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
1396
2557
  constructor(props: IValueLineComponentProps);
@@ -1409,6 +2570,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector2LineCompon
1409
2570
  step?: number;
1410
2571
  onChange?: (newvalue: Vector2) => void;
1411
2572
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2573
+ icon?: string;
2574
+ iconLabel?: string;
1412
2575
  }
1413
2576
  export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
1414
2577
  isExpanded: boolean;
@@ -1444,6 +2607,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector3LineCompon
1444
2607
  useEuler?: boolean;
1445
2608
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1446
2609
  noSlider?: boolean;
2610
+ icon?: string;
2611
+ iconLabel?: string;
1447
2612
  }
1448
2613
  export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
1449
2614
  isExpanded: boolean;
@@ -1481,6 +2646,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector4LineCompon
1481
2646
  onChange?: (newvalue: Vector4) => void;
1482
2647
  useEuler?: boolean;
1483
2648
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2649
+ icon?: string;
2650
+ iconLabel?: string;
1484
2651
  }
1485
2652
  export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
1486
2653
  isExpanded: boolean;
@@ -1506,6 +2673,266 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector4LineCompon
1506
2673
  render(): JSX.Element;
1507
2674
  }
1508
2675
  }
2676
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
2677
+ import * as React from "react";
2678
+ import { Observable } from "@babylonjs/core/Misc/observable";
2679
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2680
+ import { Control } from "@babylonjs/gui/2D/controls/control";
2681
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2682
+ interface ICommonControlPropertyGridComponentProps {
2683
+ control: Control;
2684
+ lockObject: LockObject;
2685
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2686
+ }
2687
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2688
+ constructor(props: ICommonControlPropertyGridComponentProps);
2689
+ renderGridInformation(): JSX.Element | null;
2690
+ render(): JSX.Element;
2691
+ }
2692
+ }
2693
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
2694
+ import * as React from "react";
2695
+ import { Observable } from "@babylonjs/core/Misc/observable";
2696
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2697
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2698
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
2699
+ interface ICheckboxPropertyGridComponentProps {
2700
+ checkbox: Checkbox;
2701
+ lockObject: LockObject;
2702
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2703
+ }
2704
+ export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
2705
+ constructor(props: ICheckboxPropertyGridComponentProps);
2706
+ render(): JSX.Element;
2707
+ }
2708
+ }
2709
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
2710
+ import * as React from "react";
2711
+ import { Observable } from "@babylonjs/core/Misc/observable";
2712
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2713
+ import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
2714
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2715
+ interface IColorPickerPropertyGridComponentProps {
2716
+ colorPicker: ColorPicker;
2717
+ lockObject: LockObject;
2718
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2719
+ }
2720
+ export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
2721
+ constructor(props: IColorPickerPropertyGridComponentProps);
2722
+ render(): JSX.Element;
2723
+ }
2724
+ }
2725
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/controlPropertyGridComponent" {
2726
+ import * as React from "react";
2727
+ import { Observable } from "@babylonjs/core/Misc/observable";
2728
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2729
+ import { Control } from "@babylonjs/gui/2D/controls/control";
2730
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2731
+ interface IControlPropertyGridComponentProps {
2732
+ control: Control;
2733
+ lockObject: LockObject;
2734
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2735
+ }
2736
+ export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
2737
+ constructor(props: IControlPropertyGridComponentProps);
2738
+ render(): JSX.Element;
2739
+ }
2740
+ }
2741
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
2742
+ import * as React from "react";
2743
+ import { Observable } from "@babylonjs/core/Misc/observable";
2744
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2745
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2746
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
2747
+ interface IEllipsePropertyGridComponentProps {
2748
+ ellipse: Ellipse;
2749
+ lockObject: LockObject;
2750
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2751
+ }
2752
+ export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
2753
+ constructor(props: IEllipsePropertyGridComponentProps);
2754
+ render(): JSX.Element;
2755
+ }
2756
+ }
2757
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/gridPropertyGridComponent" {
2758
+ import * as React from "react";
2759
+ import { Observable } from "@babylonjs/core/Misc/observable";
2760
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2761
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2762
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
2763
+ interface IGridPropertyGridComponentProps {
2764
+ grid: Grid;
2765
+ lockObject: LockObject;
2766
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2767
+ }
2768
+ export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
2769
+ constructor(props: IGridPropertyGridComponentProps);
2770
+ renderRows(): JSX.Element[];
2771
+ renderColumns(): JSX.Element[];
2772
+ render(): JSX.Element;
2773
+ }
2774
+ }
2775
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
2776
+ import * as React from "react";
2777
+ import { Observable } from "@babylonjs/core/Misc/observable";
2778
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2779
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2780
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
2781
+ interface IImageBasedSliderPropertyGridComponentProps {
2782
+ imageBasedSlider: ImageBasedSlider;
2783
+ lockObject: LockObject;
2784
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2785
+ }
2786
+ export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
2787
+ constructor(props: IImageBasedSliderPropertyGridComponentProps);
2788
+ render(): JSX.Element;
2789
+ }
2790
+ }
2791
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imagePropertyGridComponent" {
2792
+ import * as React from "react";
2793
+ import { Observable } from "@babylonjs/core/Misc/observable";
2794
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2795
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2796
+ import { Image } from "@babylonjs/gui/2D/controls/image";
2797
+ interface IImagePropertyGridComponentProps {
2798
+ image: Image;
2799
+ lockObject: LockObject;
2800
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2801
+ }
2802
+ export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
2803
+ constructor(props: IImagePropertyGridComponentProps);
2804
+ render(): JSX.Element;
2805
+ }
2806
+ }
2807
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
2808
+ import * as React from "react";
2809
+ import { Observable } from "@babylonjs/core/Misc/observable";
2810
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2811
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
2812
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2813
+ interface IInputTextPropertyGridComponentProps {
2814
+ inputText: InputText;
2815
+ lockObject: LockObject;
2816
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2817
+ }
2818
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
2819
+ constructor(props: IInputTextPropertyGridComponentProps);
2820
+ render(): JSX.Element;
2821
+ }
2822
+ }
2823
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/linePropertyGridComponent" {
2824
+ import * as React from "react";
2825
+ import { Observable } from "@babylonjs/core/Misc/observable";
2826
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2827
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2828
+ import { Line } from "@babylonjs/gui/2D/controls/line";
2829
+ interface ILinePropertyGridComponentProps {
2830
+ line: Line;
2831
+ lockObject: LockObject;
2832
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2833
+ }
2834
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
2835
+ constructor(props: ILinePropertyGridComponentProps);
2836
+ onDashChange(value: string): void;
2837
+ render(): JSX.Element;
2838
+ }
2839
+ }
2840
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
2841
+ import * as React from "react";
2842
+ import { Observable } from "@babylonjs/core/Misc/observable";
2843
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2844
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2845
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2846
+ interface IRadioButtonPropertyGridComponentProps {
2847
+ radioButton: RadioButton;
2848
+ lockObject: LockObject;
2849
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2850
+ }
2851
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
2852
+ constructor(props: IRadioButtonPropertyGridComponentProps);
2853
+ render(): JSX.Element;
2854
+ }
2855
+ }
2856
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
2857
+ import * as React from "react";
2858
+ import { Observable } from "@babylonjs/core/Misc/observable";
2859
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2860
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2861
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
2862
+ interface IRectanglePropertyGridComponentProps {
2863
+ rectangle: Rectangle;
2864
+ lockObject: LockObject;
2865
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2866
+ }
2867
+ export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
2868
+ constructor(props: IRectanglePropertyGridComponentProps);
2869
+ render(): JSX.Element;
2870
+ }
2871
+ }
2872
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
2873
+ import * as React from "react";
2874
+ import { Observable } from "@babylonjs/core/Misc/observable";
2875
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2876
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2877
+ import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
2878
+ interface IScrollViewerPropertyGridComponentProps {
2879
+ scrollViewer: ScrollViewer;
2880
+ lockObject: LockObject;
2881
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2882
+ }
2883
+ export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
2884
+ constructor(props: IScrollViewerPropertyGridComponentProps);
2885
+ render(): JSX.Element;
2886
+ }
2887
+ }
2888
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
2889
+ import * as React from "react";
2890
+ import { Observable } from "@babylonjs/core/Misc/observable";
2891
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2892
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2893
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
2894
+ interface ISliderPropertyGridComponentProps {
2895
+ slider: Slider;
2896
+ lockObject: LockObject;
2897
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2898
+ }
2899
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
2900
+ constructor(props: ISliderPropertyGridComponentProps);
2901
+ render(): JSX.Element;
2902
+ }
2903
+ }
2904
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
2905
+ import * as React from "react";
2906
+ import { Observable } from "@babylonjs/core/Misc/observable";
2907
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2908
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2909
+ import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
2910
+ interface IStackPanelPropertyGridComponentProps {
2911
+ stackPanel: StackPanel;
2912
+ lockObject: LockObject;
2913
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2914
+ }
2915
+ export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
2916
+ constructor(props: IStackPanelPropertyGridComponentProps);
2917
+ render(): JSX.Element;
2918
+ }
2919
+ }
2920
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
2921
+ import * as React from "react";
2922
+ import { Observable } from "@babylonjs/core/Misc/observable";
2923
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2924
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
2925
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2926
+ interface ITextBlockPropertyGridComponentProps {
2927
+ textBlock: TextBlock;
2928
+ lockObject: LockObject;
2929
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2930
+ }
2931
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
2932
+ constructor(props: ITextBlockPropertyGridComponentProps);
2933
+ render(): JSX.Element;
2934
+ }
2935
+ }
1509
2936
  declare module "@babylonjs/gui-editor" {
1510
2937
  export * from "@babylonjs/gui-editor/legacy/legacy";
1511
2938
  }