babylonjs-gui-editor 5.0.0-rc.9 → 5.0.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.
@@ -0,0 +1,2046 @@
1
+
2
+ declare module BABYLON.GuiEditor {
3
+ interface ICommandBarComponentProps {
4
+ globalState: GlobalState;
5
+ }
6
+ export class CommandBarComponent extends React.Component<ICommandBarComponentProps> {
7
+ private _sizeOption;
8
+ private _stopUpdating;
9
+ constructor(props: ICommandBarComponentProps);
10
+ render(): JSX.Element;
11
+ }
12
+
13
+
14
+ interface ICommandButtonComponentProps {
15
+ tooltip: string;
16
+ shortcut?: string;
17
+ icon: string;
18
+ iconLabel?: string;
19
+ isActive: boolean;
20
+ onClick: () => void;
21
+ altStyle?: boolean;
22
+ disabled?: boolean;
23
+ }
24
+ export class CommandButtonComponent extends React.Component<ICommandButtonComponentProps> {
25
+ constructor(props: ICommandButtonComponentProps);
26
+ render(): JSX.Element;
27
+ }
28
+
29
+
30
+ interface ICommandDropdownComponentProps {
31
+ globalState: GlobalState;
32
+ icon?: string;
33
+ tooltip: string;
34
+ defaultValue?: string;
35
+ items: {
36
+ label: string;
37
+ icon?: string;
38
+ fileButton?: boolean;
39
+ onClick?: () => void;
40
+ onCheck?: (value: boolean) => void;
41
+ storeKey?: string;
42
+ isActive?: boolean;
43
+ defaultValue?: boolean | string;
44
+ subItems?: string[];
45
+ }[];
46
+ toRight?: boolean;
47
+ }
48
+ export class CommandDropdownComponent extends React.Component<ICommandDropdownComponentProps, {
49
+ isExpanded: boolean;
50
+ activeState: string;
51
+ }> {
52
+ constructor(props: ICommandDropdownComponentProps);
53
+ render(): JSX.Element;
54
+ }
55
+
56
+
57
+ interface IGuiListComponentProps {
58
+ globalState: GlobalState;
59
+ }
60
+ export class GuiListComponent extends React.Component<IGuiListComponentProps, {
61
+ filter: string;
62
+ }> {
63
+ private _onResetRequiredObserver;
64
+ private static _Tooltips;
65
+ constructor(props: IGuiListComponentProps);
66
+ componentWillUnmount(): void;
67
+ filterContent(filter: string): void;
68
+ render(): JSX.Element;
69
+ }
70
+
71
+
72
+ interface ILogComponentProps {
73
+ globalState: GlobalState;
74
+ }
75
+ export class LogEntry {
76
+ message: string;
77
+ isError: boolean;
78
+ constructor(message: string, isError: boolean);
79
+ }
80
+ export class LogComponent extends React.Component<ILogComponentProps, {
81
+ logs: LogEntry[];
82
+ }> {
83
+ constructor(props: ILogComponentProps);
84
+ componentDidMount(): void;
85
+ componentDidUpdate(): void;
86
+ render(): JSX.Element;
87
+ }
88
+
89
+
90
+ interface IParentingPropertyGridComponentProps {
91
+ control: BABYLON.GUI.Control;
92
+ lockObject: BABYLON.SharedUIComponents.LockObject;
93
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
94
+ }
95
+ export class ParentingPropertyGridComponent extends React.Component<IParentingPropertyGridComponentProps> {
96
+ constructor(props: IParentingPropertyGridComponentProps);
97
+ private _columnNumber;
98
+ private _rowNumber;
99
+ updateGridPosition(): void;
100
+ getCellInfo(): void;
101
+ private _changeCell;
102
+ render(): JSX.Element;
103
+ }
104
+
105
+
106
+ interface IButtonPropertyGridComponentProps {
107
+ rectangles: BABYLON.GUI.Rectangle[];
108
+ lockObject: BABYLON.SharedUIComponents.LockObject;
109
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
110
+ onAddComponent: (newComponent: string) => void;
111
+ }
112
+ export class ButtonPropertyGridComponent extends React.Component<IButtonPropertyGridComponentProps> {
113
+ constructor(props: IButtonPropertyGridComponentProps);
114
+ render(): JSX.Element;
115
+ }
116
+
117
+
118
+ interface ICheckboxPropertyGridComponentProps {
119
+ checkboxes: BABYLON.GUI.Checkbox[];
120
+ lockObject: BABYLON.SharedUIComponents.LockObject;
121
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
122
+ }
123
+ export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
124
+ constructor(props: ICheckboxPropertyGridComponentProps);
125
+ render(): JSX.Element;
126
+ }
127
+
128
+
129
+ interface IColorPickerPropertyGridComponentProps {
130
+ colorPickers: BABYLON.GUI.ColorPicker[];
131
+ lockObject: BABYLON.SharedUIComponents.LockObject;
132
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
133
+ }
134
+ export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
135
+ constructor(props: IColorPickerPropertyGridComponentProps);
136
+ render(): JSX.Element;
137
+ }
138
+
139
+
140
+ interface ICommonControlPropertyGridComponentProps {
141
+ controls: BABYLON.GUI.Control[];
142
+ lockObject: BABYLON.SharedUIComponents.LockObject;
143
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
144
+ hideDimensions?: boolean;
145
+ }
146
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
147
+ private _onPropertyChangedObserver;
148
+ constructor(props: ICommonControlPropertyGridComponentProps);
149
+ private _getTransformedReferenceCoordinate;
150
+ private _updateAlignment;
151
+ private _checkAndUpdateValues;
152
+ private _markChildrenAsDirty;
153
+ componentWillUnmount(): void;
154
+ render(): JSX.Element;
155
+ }
156
+
157
+
158
+ interface IContainerPropertyGridComponentProps {
159
+ containers: BABYLON.GUI.Container[];
160
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
161
+ }
162
+ export class ContainerPropertyGridComponent extends React.Component<IContainerPropertyGridComponentProps> {
163
+ render(): JSX.Element;
164
+ }
165
+
166
+
167
+ interface IControlPropertyGridComponentProps {
168
+ controls: BABYLON.GUI.Control[];
169
+ lockObject: BABYLON.SharedUIComponents.LockObject;
170
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
171
+ }
172
+ export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
173
+ constructor(props: IControlPropertyGridComponentProps);
174
+ render(): JSX.Element;
175
+ }
176
+
177
+
178
+ interface IDisplayGridPropertyGridComponentProps {
179
+ displayGrids: BABYLON.GUI.DisplayGrid[];
180
+ lockObject: BABYLON.SharedUIComponents.LockObject;
181
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
182
+ }
183
+ export class DisplayGridPropertyGridComponent extends React.Component<IDisplayGridPropertyGridComponentProps> {
184
+ constructor(props: IDisplayGridPropertyGridComponentProps);
185
+ render(): JSX.Element;
186
+ }
187
+
188
+
189
+ interface IEllipsePropertyGridComponentProps {
190
+ ellipses: BABYLON.GUI.Ellipse[];
191
+ lockObject: BABYLON.SharedUIComponents.LockObject;
192
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
193
+ }
194
+ export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
195
+ constructor(props: IEllipsePropertyGridComponentProps);
196
+ render(): JSX.Element;
197
+ }
198
+
199
+
200
+ interface IGridPropertyGridComponentProps {
201
+ grids: BABYLON.GUI.Grid[];
202
+ lockObject: BABYLON.SharedUIComponents.LockObject;
203
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
204
+ }
205
+ export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
206
+ constructor(props: IGridPropertyGridComponentProps);
207
+ private _removingColumn;
208
+ private _removingRow;
209
+ private _previousGrid;
210
+ private _rowDefinitions;
211
+ private _rowEditFlags;
212
+ private _columnEditFlags;
213
+ private _columnDefinitions;
214
+ private _editedRow;
215
+ private _editedColumn;
216
+ private _rowChild;
217
+ private _columnChild;
218
+ renderRows(): JSX.Element[];
219
+ setRowValues(): void;
220
+ setColumnValues(): void;
221
+ renderColumns(): JSX.Element[];
222
+ resizeRow(): void;
223
+ resizeColumn(): void;
224
+ checkValue(value: string, percent: boolean): string;
225
+ checkPercentage(value: string): boolean;
226
+ resetValues(): void;
227
+ render(): JSX.Element;
228
+ }
229
+
230
+
231
+ interface IImageBasedSliderPropertyGridComponentProps {
232
+ imageBasedSliders: BABYLON.GUI.ImageBasedSlider[];
233
+ lockObject: BABYLON.SharedUIComponents.LockObject;
234
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
235
+ }
236
+ export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
237
+ constructor(props: IImageBasedSliderPropertyGridComponentProps);
238
+ render(): JSX.Element;
239
+ }
240
+
241
+
242
+ interface IImagePropertyGridComponentProps {
243
+ images: BABYLON.GUI.Image[];
244
+ lockObject: BABYLON.SharedUIComponents.LockObject;
245
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
246
+ }
247
+ export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
248
+ private _observers;
249
+ constructor(props: IImagePropertyGridComponentProps);
250
+ shouldComponentUpdate(nextProps: IImagePropertyGridComponentProps): boolean;
251
+ updateObservers(oldImages: BABYLON.GUI.Image[], newImages: BABYLON.GUI.Image[]): void;
252
+ componentWillUnmount(): void;
253
+ toggleAnimations(on: boolean): void;
254
+ getMaxCells(): number;
255
+ updateCellSize(): void;
256
+ render(): JSX.Element;
257
+ }
258
+
259
+
260
+ interface IInputTextPropertyGridComponentProps {
261
+ inputTexts: BABYLON.GUI.InputText[];
262
+ lockObject: BABYLON.SharedUIComponents.LockObject;
263
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
264
+ }
265
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
266
+ constructor(props: IInputTextPropertyGridComponentProps);
267
+ render(): JSX.Element;
268
+ }
269
+
270
+
271
+ interface ILinePropertyGridComponentProps {
272
+ lines: BABYLON.GUI.Line[];
273
+ lockObject: BABYLON.SharedUIComponents.LockObject;
274
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
275
+ }
276
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
277
+ constructor(props: ILinePropertyGridComponentProps);
278
+ onDashChange(value: string): void;
279
+ render(): JSX.Element;
280
+ }
281
+
282
+
283
+ interface IRadioButtonPropertyGridComponentProps {
284
+ radioButtons: BABYLON.GUI.RadioButton[];
285
+ lockObject: BABYLON.SharedUIComponents.LockObject;
286
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
287
+ }
288
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
289
+ constructor(props: IRadioButtonPropertyGridComponentProps);
290
+ render(): JSX.Element;
291
+ }
292
+
293
+
294
+ interface IRectanglePropertyGridComponentProps {
295
+ rectangles: BABYLON.GUI.Rectangle[];
296
+ lockObject: BABYLON.SharedUIComponents.LockObject;
297
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
298
+ }
299
+ export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
300
+ constructor(props: IRectanglePropertyGridComponentProps);
301
+ render(): JSX.Element;
302
+ }
303
+
304
+
305
+ interface IScrollViewerPropertyGridComponentProps {
306
+ scrollViewers: BABYLON.GUI.ScrollViewer[];
307
+ lockObject: BABYLON.SharedUIComponents.LockObject;
308
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
309
+ }
310
+ export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
311
+ constructor(props: IScrollViewerPropertyGridComponentProps);
312
+ render(): JSX.Element;
313
+ }
314
+
315
+
316
+ interface ISliderGenericPropertyGridComponentProps {
317
+ sliders: BABYLON.GUI.Slider[];
318
+ lockObject: BABYLON.SharedUIComponents.LockObject;
319
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
320
+ }
321
+ export class SliderGenericPropertyGridComponent extends React.Component<ISliderGenericPropertyGridComponentProps> {
322
+ constructor(props: ISliderGenericPropertyGridComponentProps);
323
+ render(): JSX.Element;
324
+ }
325
+
326
+
327
+ interface ISliderPropertyGridComponentProps {
328
+ sliders: (Slider | BABYLON.GUI.ImageBasedSlider)[];
329
+ lockObject: BABYLON.SharedUIComponents.LockObject;
330
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
331
+ }
332
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
333
+ constructor(props: ISliderPropertyGridComponentProps);
334
+ render(): JSX.Element;
335
+ }
336
+
337
+
338
+ interface IStackPanelPropertyGridComponentProps {
339
+ stackPanels: BABYLON.GUI.StackPanel[];
340
+ lockObject: BABYLON.SharedUIComponents.LockObject;
341
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
342
+ }
343
+ export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
344
+ constructor(props: IStackPanelPropertyGridComponentProps);
345
+ render(): JSX.Element;
346
+ }
347
+
348
+
349
+ interface ITextBlockPropertyGridComponentProps {
350
+ textBlocks: BABYLON.GUI.TextBlock[];
351
+ lockObject: BABYLON.SharedUIComponents.LockObject;
352
+ onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
353
+ }
354
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
355
+ constructor(props: ITextBlockPropertyGridComponentProps);
356
+ render(): JSX.Element;
357
+ }
358
+
359
+
360
+ interface IPropertyTabComponentProps {
361
+ globalState: GlobalState;
362
+ }
363
+ export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps> {
364
+ private _onBuiltObserver;
365
+ private _timerIntervalId;
366
+ private _lockObject;
367
+ constructor(props: IPropertyTabComponentProps);
368
+ componentDidMount(): void;
369
+ componentWillUnmount(): void;
370
+ load(file: File): void;
371
+ save(saveCallback: () => void): void;
372
+ saveLocally: () => void;
373
+ saveToSnippetServerHelper: (content: string, adt: BABYLON.GUI.AdvancedDynamicTexture) => Promise<string>;
374
+ saveToSnippetServer: () => Promise<void>;
375
+ loadFromSnippet(): void;
376
+ renderNode(nodes: BABYLON.GUI.Control[]): JSX.Element;
377
+ /**
378
+ * returns the class name of a list of controls if they share a class, or an empty string if not
379
+ * @param nodes
380
+ */
381
+ getControlsCommonClassName(nodes: BABYLON.GUI.Control[]): string;
382
+ renderProperties(nodes: BABYLON.GUI.Control[]): JSX.Element | undefined;
383
+ renderControlIcon(nodes: BABYLON.GUI.Control[]): string;
384
+ render(): JSX.Element | null;
385
+ }
386
+
387
+
388
+ interface IControlTreeItemComponentProps {
389
+ control: BABYLON.GUI.Control;
390
+ extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
391
+ onClick: () => void;
392
+ globalState: GlobalState;
393
+ isHovered: boolean;
394
+ isDragOver: boolean;
395
+ dragOverLocation: DragOverLocation;
396
+ }
397
+ export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
398
+ isActive: boolean;
399
+ isVisible: boolean;
400
+ isRenaming: boolean;
401
+ }> {
402
+ constructor(props: IControlTreeItemComponentProps);
403
+ highlight(): void;
404
+ switchVisibility(): void;
405
+ onRename(name: string): void;
406
+ render(): JSX.Element;
407
+ }
408
+
409
+
410
+ interface IExtensionsComponentProps {
411
+ target: any;
412
+ extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
413
+ }
414
+ export class ExtensionsComponent extends React.Component<IExtensionsComponentProps, {
415
+ popupVisible: boolean;
416
+ }> {
417
+ private _popup;
418
+ private _extensionRef;
419
+ constructor(props: IExtensionsComponentProps);
420
+ showPopup(): void;
421
+ componentDidMount(): void;
422
+ componentDidUpdate(): void;
423
+ render(): JSX.Element | null;
424
+ }
425
+
426
+
427
+ interface ISceneExplorerFilterComponentProps {
428
+ onFilter: (filter: string) => void;
429
+ }
430
+ export class SceneExplorerFilterComponent extends React.Component<ISceneExplorerFilterComponentProps> {
431
+ constructor(props: ISceneExplorerFilterComponentProps);
432
+ render(): JSX.Element;
433
+ }
434
+ interface ISceneExplorerComponentProps {
435
+ scene?: BABYLON.Scene;
436
+ noCommands?: boolean;
437
+ noHeader?: boolean;
438
+ noExpand?: boolean;
439
+ noClose?: boolean;
440
+ extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
441
+ globalState: GlobalState;
442
+ popupMode?: boolean;
443
+ onPopup?: () => void;
444
+ onClose?: () => void;
445
+ }
446
+ export class SceneExplorerComponent extends React.Component<ISceneExplorerComponentProps, {
447
+ filter: BABYLON.Nullable<string>;
448
+ selectedEntity: any;
449
+ scene: BABYLON.Nullable<BABYLON.Scene>;
450
+ }> {
451
+ private _onSelectionChangeObserver;
452
+ private _onParrentingChangeObserver;
453
+ private _onNewSceneObserver;
454
+ private _onPropertyChangedObservable;
455
+ constructor(props: ISceneExplorerComponentProps);
456
+ componentDidMount(): void;
457
+ componentWillUnmount(): void;
458
+ filterContent(filter: string): void;
459
+ findSiblings(parent: any, items: any[], target: any, goNext: boolean, data: {
460
+ previousOne?: any;
461
+ found?: boolean;
462
+ }): boolean;
463
+ processKeys(keyEvent: React.KeyboardEvent<HTMLDivElement>): void;
464
+ renderContent(): JSX.Element | null;
465
+ onClose(): void;
466
+ onPopup(): void;
467
+ render(): JSX.Element;
468
+ }
469
+
470
+
471
+ export interface ITreeItemComponentProps {
472
+ items?: BABYLON.Nullable<any[]>;
473
+ label: string;
474
+ offset: number;
475
+ filter: BABYLON.Nullable<string>;
476
+ forceSubitems?: boolean;
477
+ globalState: GlobalState;
478
+ entity?: any;
479
+ selectedEntities: any[];
480
+ extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
481
+ contextMenuItems?: {
482
+ label: string;
483
+ action: () => void;
484
+ }[];
485
+ }
486
+ export class TreeItemComponent extends React.Component<ITreeItemComponentProps, {
487
+ isExpanded: boolean;
488
+ mustExpand: boolean;
489
+ }> {
490
+ static _ContextMenuUniqueIdGenerator: number;
491
+ constructor(props: ITreeItemComponentProps);
492
+ switchExpandedState(): void;
493
+ shouldComponentUpdate(nextProps: ITreeItemComponentProps, nextState: {
494
+ isExpanded: boolean;
495
+ }): boolean;
496
+ expandAll(expand: boolean): void;
497
+ renderContextMenu(): JSX.Element | null;
498
+ render(): JSX.Element;
499
+ }
500
+
501
+
502
+ interface ITreeItemLabelComponentProps {
503
+ label?: string;
504
+ onClick?: () => void;
505
+ onChange: (newValue: string) => void;
506
+ bracket: string;
507
+ renaming: boolean;
508
+ setRenaming: (renaming: boolean) => void;
509
+ }
510
+ interface ITreeItemLabelState {
511
+ value: string;
512
+ }
513
+ export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps, ITreeItemLabelState> {
514
+ constructor(props: ITreeItemLabelComponentProps);
515
+ onClick(): void;
516
+ onBlur(): void;
517
+ render(): JSX.Element;
518
+ }
519
+
520
+
521
+ export interface ITreeItemSelectableComponentProps {
522
+ entity: any;
523
+ selectedEntities: any[];
524
+ mustExpand?: boolean;
525
+ offset: number;
526
+ globalState: GlobalState;
527
+ extensibilityGroups?: BABYLON.IExplorerExtensibilityGroup[];
528
+ filter: BABYLON.Nullable<string>;
529
+ }
530
+ export interface ITreeItemSelectableComponentState {
531
+ dragOver: boolean;
532
+ isSelected: boolean;
533
+ isHovered: boolean;
534
+ dragOverLocation: DragOverLocation;
535
+ }
536
+ export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, ITreeItemSelectableComponentState> {
537
+ private _onSelectionChangedObservable;
538
+ private _onDraggingEndObservable;
539
+ private _onDraggingStartObservable;
540
+ /** flag flipped onDragEnter if dragOver is already true
541
+ * prevents dragLeave from immediately setting dragOver to false
542
+ * required to make dragging work as expected
543
+ * see: see: https://github.com/transformation-dev/matrx/tree/master/packages/dragster
544
+ */
545
+ private _secondDragEnter;
546
+ constructor(props: ITreeItemSelectableComponentProps);
547
+ switchExpandedState(): void;
548
+ shouldComponentUpdate(nextProps: ITreeItemSelectableComponentProps, nextState: {
549
+ isSelected: boolean;
550
+ }): boolean;
551
+ scrollIntoView(): void;
552
+ componentWillUnmount(): void;
553
+ onSelect(): void;
554
+ renderChildren(isExpanded: boolean, offset?: boolean): (JSX.Element | null)[] | null;
555
+ render(): JSX.Element | (JSX.Element | null)[] | null;
556
+ dragOver(event: React.DragEvent<HTMLDivElement>): void;
557
+ updateDragOverLocation(event: React.DragEvent<HTMLDivElement>): void;
558
+ drop(): void;
559
+ }
560
+
561
+
562
+ export var ControlTypes: {
563
+ className: string;
564
+ icon: string;
565
+ }[];
566
+
567
+
568
+ interface IArtBoardProps {
569
+ globalState: GlobalState;
570
+ }
571
+ interface IArtBoardState {
572
+ bounds: Rect;
573
+ }
574
+ export class ArtBoardComponent extends React.Component<IArtBoardProps, IArtBoardState> {
575
+ constructor(props: IArtBoardProps);
576
+ update(): void;
577
+ render(): JSX.Element;
578
+ }
579
+
580
+
581
+ export type DimensionProperties = "width" | "left" | "height" | "top" | "paddingLeft" | "paddingRight" | "paddingTop" | "paddingBottom" | "fontSize";
582
+ export class Rect {
583
+ top: number;
584
+ left: number;
585
+ right: number;
586
+ bottom: number;
587
+ constructor(left: number, top: number, right: number, bottom: number);
588
+ clone(): Rect;
589
+ get center(): BABYLON.Vector2;
590
+ get width(): number;
591
+ get height(): number;
592
+ }
593
+ export class CoordinateHelper {
594
+ private static _MatrixCache;
595
+ static GlobalState: GlobalState;
596
+ /**
597
+ * Get the scaling of a specific GUI control
598
+ * @param node the node for which we are getting the scaling
599
+ * @param relative should we return only the relative scaling (relative to the parent)
600
+ * @returns an X,Y vector of the scaling
601
+ */
602
+ static GetScale(node: BABYLON.GUI.Control, relative?: boolean): BABYLON.Vector2;
603
+ static GetRotation(node: BABYLON.GUI.Control, relative?: boolean): number;
604
+ /**
605
+ * This function calculates a local matrix for a node, including it's full transformation and pivot point
606
+ *
607
+ * @param node the node to calculate the matrix for
608
+ * @param storedValues should the stored (cached) values be used to calculate the matrix
609
+ * @returns a new matrix for the control
610
+ */
611
+ static GetNodeMatrix(node: BABYLON.GUI.Control, storedValues?: Rect): BABYLON.GUI.Matrix2D;
612
+ /**
613
+ * Using the node's tree, calculate its world matrix and return it
614
+ * @param node the node to calculate the matrix for
615
+ * @param storedValues used stored valued (cached when pointer down is clicked)
616
+ * @param stopAt stop looking when this node is found
617
+ * @returns the world matrix for this node
618
+ */
619
+ static NodeToRTTWorldMatrix(node: BABYLON.GUI.Control, storedValues?: Rect, stopAt?: BABYLON.GUI.Control): BABYLON.GUI.Matrix2D;
620
+ static NodeToRTTSpace(node: BABYLON.GUI.Control, x: number, y: number, reference?: BABYLON.Vector2, storedValues?: Rect, stopAt?: BABYLON.GUI.Control): BABYLON.Vector2;
621
+ static RttToLocalNodeSpace(node: BABYLON.GUI.Control, x: number, y: number, reference?: BABYLON.Vector2, storedValues?: Rect): BABYLON.Vector2;
622
+ static RttToCanvasSpace(x: number, y: number): BABYLON.Vector2;
623
+ static MousePointerToRTTSpace(node: BABYLON.GUI.Control, x?: number, y?: number): BABYLON.Vector2;
624
+ private static _ResetMatrixArray;
625
+ static ComputeLocalBounds(node: BABYLON.GUI.Control): Rect;
626
+ /**
627
+ * converts a node's dimensions to percentage, properties can be specified as a list, or can convert all
628
+ * @param guiControl
629
+ * @param properties
630
+ * @param onPropertyChangedObservable
631
+ */
632
+ static ConvertToPercentage(guiControl: BABYLON.GUI.Control, properties?: DimensionProperties[], onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>): void;
633
+ static Round(value: number): number;
634
+ static ConvertToPixels(guiControl: BABYLON.GUI.Control, properties?: DimensionProperties[], onPropertyChangedObservable?: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>): void;
635
+ }
636
+
637
+
638
+ export interface IGuiGizmoProps {
639
+ globalState: GlobalState;
640
+ control: BABYLON.GUI.Control;
641
+ }
642
+ interface IGuiGizmoState {
643
+ canvasBounds: Rect;
644
+ scalePoints: IScalePoint[];
645
+ scalePointDragging: number;
646
+ isRotating: boolean;
647
+ }
648
+ export class GizmoGeneric extends React.Component<IGuiGizmoProps, IGuiGizmoState> {
649
+ private _storedValues;
650
+ private _localBounds;
651
+ private _rotation;
652
+ private _gizmoUpdateObserver;
653
+ private _pointerUpObserver;
654
+ private _pointerMoveObserver;
655
+ constructor(props: IGuiGizmoProps);
656
+ componentDidMount(): void;
657
+ componentWillUnmount(): void;
658
+ /**
659
+ * Update the gizmo's positions
660
+ * @param force should the update be forced. otherwise it will be updated only when the pointer is down
661
+ */
662
+ updateGizmo(): void;
663
+ private _onUp;
664
+ private _onMove;
665
+ private _rotate;
666
+ private _dragLocalBounds;
667
+ private _updateNodeFromLocalBounds;
668
+ private _beginDraggingScalePoint;
669
+ private _beginRotate;
670
+ render(): JSX.Element;
671
+ }
672
+
673
+
674
+ /// <reference types="react" />
675
+ interface IGizmoLineProps {
676
+ globalState: GlobalState;
677
+ control: BABYLON.GUI.Line;
678
+ }
679
+ export function GizmoLine(props: IGizmoLineProps): JSX.Element;
680
+
681
+
682
+ /// <reference types="react" />
683
+ export enum ScalePointPosition {
684
+ Top = -1,
685
+ Left = -1,
686
+ Center = 0,
687
+ Right = 1,
688
+ Bottom = 1
689
+ }
690
+ export interface IScalePoint {
691
+ position: BABYLON.Vector2;
692
+ horizontalPosition: ScalePointPosition;
693
+ verticalPosition: ScalePointPosition;
694
+ rotation: number;
695
+ isPivot: boolean;
696
+ defaultRotation: number;
697
+ }
698
+ interface IGizmoScalePointProps {
699
+ scalePoint: IScalePoint;
700
+ clickable: boolean;
701
+ key: number;
702
+ onDrag: () => void;
703
+ onRotate: () => void;
704
+ onUp: () => void;
705
+ overrideCursor?: string;
706
+ canRotate: boolean;
707
+ }
708
+ export function GizmoScalePoint(props: IGizmoScalePointProps): JSX.Element;
709
+
710
+
711
+ export interface IGizmoWrapperProps {
712
+ globalState: GlobalState;
713
+ }
714
+ export class GizmoWrapper extends React.Component<IGizmoWrapperProps> {
715
+ observer: BABYLON.Nullable<BABYLON.Observer<void>>;
716
+ componentWillMount(): void;
717
+ componentWillUnmount(): void;
718
+ render(): JSX.Element;
719
+ }
720
+
721
+
722
+ export interface IWorkbenchComponentProps {
723
+ globalState: GlobalState;
724
+ }
725
+ export enum ConstraintDirection {
726
+ NONE = 0,
727
+ X = 2,
728
+ Y = 3
729
+ }
730
+ export class WorkbenchComponent extends React.Component<IWorkbenchComponentProps> {
731
+ private _rootContainer;
732
+ private _setConstraintDirection;
733
+ private _mouseStartPoint;
734
+ _scene: BABYLON.Scene;
735
+ private _constraintDirection;
736
+ private _panning;
737
+ private _isOverGUINode;
738
+ private _engine;
739
+ private _liveRenderObserver;
740
+ private _guiRenderObserver;
741
+ private _doubleClick;
742
+ _liveGuiTextureRerender: boolean;
743
+ private _controlsHit;
744
+ private _pointerTravelDistance;
745
+ private _processSelectionOnUp;
746
+ private _visibleRegionContainer;
747
+ get visibleRegionContainer(): BABYLON.GUI.Container;
748
+ private _panAndZoomContainer;
749
+ get panAndZoomContainer(): BABYLON.GUI.Container;
750
+ private _trueRootContainer;
751
+ set trueRootContainer(value: BABYLON.GUI.Container);
752
+ get trueRootContainer(): BABYLON.GUI.Container;
753
+ private _nextLiveGuiRender;
754
+ private _liveGuiRerenderDelay;
755
+ private _defaultGUISize;
756
+ private _initialPanningOffset;
757
+ private _panningOffset;
758
+ private _zoomFactor;
759
+ private _zoomModeIncrement;
760
+ private _guiSize;
761
+ get guiSize(): BABYLON.ISize;
762
+ set guiSize(value: BABYLON.ISize);
763
+ applyEditorTransformation(): void;
764
+ removeEditorTransformation(): void;
765
+ private _reframeWindow;
766
+ constructor(props: IWorkbenchComponentProps);
767
+ keyEvent: (evt: KeyboardEvent) => void;
768
+ copyToClipboard(copyFn: (content: string) => void): void;
769
+ cutToClipboard(copyFn: (content: string) => void): void;
770
+ pasteFromClipboard(clipboardContents: string): boolean;
771
+ CopyGUIControl(original: BABYLON.GUI.Control): void;
772
+ blurEvent: () => void;
773
+ /**
774
+ * Adds editor observers to control and stores old data in metadata
775
+ * @param guiControl
776
+ */
777
+ addEditorBehavior(guiControl: BABYLON.GUI.Control): void;
778
+ /**
779
+ * Removes editor behavior (observables, metadata) from control
780
+ * @param control
781
+ */
782
+ removeEditorBehavior(control: BABYLON.GUI.Control): void;
783
+ dispose(): void;
784
+ loadFromJson(serializationObject: any): void;
785
+ loadFromSnippet(snippetId: string): Promise<void>;
786
+ loadToEditor(): void;
787
+ updateNodeOutlines(): void;
788
+ appendBlock(guiElement: BABYLON.GUI.Control): BABYLON.GUI.Control;
789
+ private parent;
790
+ private _reorderGrid;
791
+ private _isNotChildInsert;
792
+ private _adjustParentingIndex;
793
+ isSelected(value: boolean, guiNode: BABYLON.GUI.Control): void;
794
+ clicked: boolean;
795
+ _onMove(guiControl: BABYLON.GUI.Control, evt: BABYLON.Vector2, startPos: BABYLON.Vector2): void;
796
+ onMove(evt: React.PointerEvent): void;
797
+ private _screenToTexturePosition;
798
+ private getScaledPointerPosition;
799
+ startPanning(): void;
800
+ endPanning(): void;
801
+ processSelection(): void;
802
+ onDown(evt: React.PointerEvent<HTMLElement>): void;
803
+ onUp(evt: React.PointerEvent): void;
804
+ createGUICanvas(): void;
805
+ synchronizeLiveGUI(): void;
806
+ addControls(scene: BABYLON.Scene): void;
807
+ panning(): void;
808
+ moveControls(moveHorizontal: boolean, amount: number): void;
809
+ zoomWheel(event: React.WheelEvent): void;
810
+ zooming(delta: number): void;
811
+ zeroIfClose(vec: BABYLON.Vector3): void;
812
+ render(): JSX.Element;
813
+ }
814
+
815
+
816
+ /// <reference types="react" />
817
+ export enum DragOverLocation {
818
+ ABOVE = 0,
819
+ BELOW = 1,
820
+ CENTER = 2,
821
+ NONE = 3
822
+ }
823
+ export enum GUIEditorTool {
824
+ SELECT = 0,
825
+ PAN = 1,
826
+ ZOOM = 2
827
+ }
828
+ export class GlobalState {
829
+ liveGuiTexture: BABYLON.Nullable<BABYLON.GUI.AdvancedDynamicTexture>;
830
+ guiTexture: BABYLON.GUI.AdvancedDynamicTexture;
831
+ hostElement: HTMLElement;
832
+ hostDocument: HTMLDocument;
833
+ hostWindow: Window;
834
+ selectedControls: BABYLON.GUI.Control[];
835
+ onSelectionChangedObservable: BABYLON.Observable<void>;
836
+ onResizeObservable: BABYLON.Observable<BABYLON.ISize>;
837
+ onBuiltObservable: BABYLON.Observable<void>;
838
+ onResetRequiredObservable: BABYLON.Observable<void>;
839
+ onUpdateRequiredObservable: BABYLON.Observable<void>;
840
+ onLogRequiredObservable: BABYLON.Observable<LogEntry>;
841
+ onErrorMessageDialogRequiredObservable: BABYLON.Observable<string>;
842
+ onIsLoadingChanged: BABYLON.Observable<boolean>;
843
+ onSelectionBoxMoved: BABYLON.Observable<ClientRect | DOMRect>;
844
+ onNewSceneObservable: BABYLON.Observable<BABYLON.Nullable<BABYLON.Scene>>;
845
+ onGuiNodeRemovalObservable: BABYLON.Observable<BABYLON.GUI.Control>;
846
+ onPopupClosedObservable: BABYLON.Observable<void>;
847
+ private _backgroundColor;
848
+ private _outlines;
849
+ keys: KeyboardManager;
850
+ /** DO NOT USE: in the process of removing */
851
+ blockKeyboardEvents: boolean;
852
+ onOutlineChangedObservable: BABYLON.Observable<void>;
853
+ controlCamera: boolean;
854
+ selectionLock: boolean;
855
+ workbench: WorkbenchComponent;
856
+ onPropertyChangedObservable: BABYLON.Observable<BABYLON.SharedUIComponents.PropertyChangedEvent>;
857
+ private _tool;
858
+ onToolChangeObservable: BABYLON.Observable<void>;
859
+ get tool(): GUIEditorTool;
860
+ set tool(newTool: GUIEditorTool);
861
+ onFitControlsToWindowObservable: BABYLON.Observable<void>;
862
+ onReframeWindowObservable: BABYLON.Observable<void>;
863
+ onLoadObservable: BABYLON.Observable<File>;
864
+ onSaveObservable: BABYLON.Observable<void>;
865
+ onSnippetLoadObservable: BABYLON.Observable<void>;
866
+ onSnippetSaveObservable: BABYLON.Observable<void>;
867
+ onResponsiveChangeObservable: BABYLON.Observable<boolean>;
868
+ onParentingChangeObservable: BABYLON.Observable<BABYLON.Nullable<BABYLON.GUI.Control>>;
869
+ onDropObservable: BABYLON.Observable<void>;
870
+ onPropertyGridUpdateRequiredObservable: BABYLON.Observable<void>;
871
+ onDraggingEndObservable: BABYLON.Observable<void>;
872
+ onDraggingStartObservable: BABYLON.Observable<void>;
873
+ onWindowResizeObservable: BABYLON.Observable<void>;
874
+ onGizmoUpdateRequireObservable: BABYLON.Observable<void>;
875
+ onArtBoardUpdateRequiredObservable: BABYLON.Observable<void>;
876
+ onBackgroundColorChangeObservable: BABYLON.Observable<void>;
877
+ onPointerMoveObservable: BABYLON.Observable<import("react").PointerEvent<HTMLCanvasElement>>;
878
+ onPointerUpObservable: BABYLON.Observable<BABYLON.Nullable<PointerEvent | import("react").PointerEvent<HTMLCanvasElement>>>;
879
+ draggedControl: BABYLON.Nullable<BABYLON.GUI.Control>;
880
+ draggedControlDirection: DragOverLocation;
881
+ onCopyObservable: BABYLON.Observable<(content: string) => void>;
882
+ onCutObservable: BABYLON.Observable<(content: string) => void>;
883
+ onPasteObservable: BABYLON.Observable<string>;
884
+ isSaving: boolean;
885
+ lockObject: BABYLON.SharedUIComponents.LockObject;
886
+ storeEditorData: (serializationObject: any) => void;
887
+ customSave?: {
888
+ label: string;
889
+ action: (data: string) => Promise<string>;
890
+ };
891
+ customLoad?: {
892
+ label: string;
893
+ action: (data: string) => Promise<string>;
894
+ };
895
+ constructor();
896
+ /** adds copy, cut and paste listeners to the host window */
897
+ registerEventListeners(): void;
898
+ get backgroundColor(): BABYLON.Color3;
899
+ set backgroundColor(value: BABYLON.Color3);
900
+ get outlines(): boolean;
901
+ set outlines(value: boolean);
902
+ select(control: BABYLON.GUI.Control): void;
903
+ setSelection(controls: BABYLON.GUI.Control[]): void;
904
+ private _findParentControlInTexture;
905
+ deleteSelectedNodes(): void;
906
+ isMultiSelectable(control: BABYLON.GUI.Control): boolean;
907
+ dispose(): void;
908
+ }
909
+
910
+
911
+ /**
912
+ * Interface used to specify creation options for the gui editor
913
+ */
914
+ export interface IGUIEditorOptions {
915
+ liveGuiTexture?: BABYLON.GUI.AdvancedDynamicTexture;
916
+ customLoad: {
917
+ label: string;
918
+ action: (data: string) => Promise<string>;
919
+ } | undefined;
920
+ hostElement?: HTMLElement;
921
+ customSave?: {
922
+ label: string;
923
+ action: (data: string) => Promise<string>;
924
+ };
925
+ currentSnippetToken?: string;
926
+ customLoadObservable?: BABYLON.Observable<any>;
927
+ }
928
+ /**
929
+ * Class used to create a gui editor
930
+ */
931
+ export class GUIEditor {
932
+ private static _CurrentState;
933
+ /**
934
+ * Show the gui editor
935
+ * @param options defines the options to use to configure the gui editor
936
+ */
937
+ static Show(options: IGUIEditorOptions): Promise<void>;
938
+ }
939
+
940
+
941
+ export class GUINodeTools {
942
+ static ImageControlDefaultUrl: string;
943
+ static CreateControlFromString(data: string): BABYLON.GUI.Grid | BABYLON.GUI.Rectangle | BABYLON.GUI.StackPanel | BABYLON.GUI.Line | BABYLON.GUI.TextBlock | BABYLON.GUI.Image | BABYLON.GUI.Slider | BABYLON.GUI.ImageBasedSlider | BABYLON.GUI.RadioButton | BABYLON.GUI.InputText | BABYLON.GUI.ColorPicker | BABYLON.GUI.Ellipse | BABYLON.GUI.Checkbox | BABYLON.GUI.DisplayGrid;
944
+ }
945
+
946
+
947
+
948
+
949
+ type Key = "control" | "shift" | "alt" | "space" | "meta";
950
+ export class KeyboardManager {
951
+ private _hostElement;
952
+ private _kdListener;
953
+ private _kuListener;
954
+ private _moveListener;
955
+ private _focusOutListener;
956
+ private _keys;
957
+ onKeyPressedObservable: BABYLON.Observable<Key>;
958
+ constructor(hostElement: HTMLElement | HTMLDocument);
959
+ private _keyEvent;
960
+ private _updateModifierKeys;
961
+ private _setKeyDown;
962
+ private _clearKeys;
963
+ isKeyDown(key: Key): boolean;
964
+ dispose(): void;
965
+ }
966
+
967
+
968
+ export interface INodeLocationInfo {
969
+ blockId: number;
970
+ x: number;
971
+ y: number;
972
+ }
973
+ export interface IFrameData {
974
+ x: number;
975
+ y: number;
976
+ width: number;
977
+ height: number;
978
+ color: number[];
979
+ name: string;
980
+ isCollapsed: boolean;
981
+ blocks: number[];
982
+ comments: string;
983
+ }
984
+ export interface IEditorData {
985
+ locations: INodeLocationInfo[];
986
+ x: number;
987
+ y: number;
988
+ zoom: number;
989
+ frames?: IFrameData[];
990
+ map?: {
991
+ [key: number]: number;
992
+ };
993
+ }
994
+
995
+
996
+ interface IPortalProps {
997
+ globalState: GlobalState;
998
+ }
999
+ export class Portal extends React.Component<IPortalProps> {
1000
+ render(): React.ReactPortal;
1001
+ }
1002
+
1003
+
1004
+ interface IMessageDialogComponentProps {
1005
+ globalState: GlobalState;
1006
+ }
1007
+ export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
1008
+ message: string;
1009
+ isError: boolean;
1010
+ }> {
1011
+ constructor(props: IMessageDialogComponentProps);
1012
+ render(): JSX.Element | null;
1013
+ }
1014
+
1015
+
1016
+ export class Tools {
1017
+ static LookForItems(item: any, selectedEntities: any[], firstIteration?: boolean): boolean;
1018
+ private static _RecursiveRemoveHiddenMeshesAndHoistChildren;
1019
+ static SortAndFilter(parent: any, items: any[]): any[];
1020
+ static GetCellInfo(grid: BABYLON.GUI.Grid, control: BABYLON.GUI.Control): BABYLON.Vector2;
1021
+ static ReorderGrid(grid: BABYLON.GUI.Grid, index: number, control: BABYLON.GUI.Control, cell: BABYLON.Vector2): void;
1022
+ }
1023
+
1024
+
1025
+ interface IGraphEditorProps {
1026
+ globalState: GlobalState;
1027
+ }
1028
+ interface IGraphEditorState {
1029
+ showPreviewPopUp: boolean;
1030
+ }
1031
+ export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
1032
+ private _moveInProgress;
1033
+ private _leftWidth;
1034
+ private _rightWidth;
1035
+ private _popUpWindow;
1036
+ private _draggedItem;
1037
+ private _rootRef;
1038
+ componentDidMount(): void;
1039
+ constructor(props: IGraphEditorProps);
1040
+ showWaitScreen(): void;
1041
+ hideWaitScreen(): void;
1042
+ onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1043
+ onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1044
+ resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
1045
+ buildColumnLayout(): string;
1046
+ handlePopUp: () => void;
1047
+ handleClosingPopUp: () => void;
1048
+ createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
1049
+ copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
1050
+ render(): JSX.Element;
1051
+ onCreate(value: string): BABYLON.GUI.Control;
1052
+ createToolbar(): JSX.Element;
1053
+ }
1054
+
1055
+
1056
+ export interface IColorComponentEntryProps {
1057
+ value: number;
1058
+ label: string;
1059
+ max?: number;
1060
+ min?: number;
1061
+ onChange: (value: number) => void;
1062
+ disabled?: boolean;
1063
+ }
1064
+ export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
1065
+ constructor(props: IColorComponentEntryProps);
1066
+ updateValue(valueString: string): void;
1067
+ render(): JSX.Element;
1068
+ }
1069
+
1070
+
1071
+ /**
1072
+ * Interface used to specify creation options for color picker
1073
+ */
1074
+ export interface IColorPickerProps {
1075
+ color: BABYLON.Color3 | BABYLON.Color4;
1076
+ linearhint?: boolean;
1077
+ debugMode?: boolean;
1078
+ onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void;
1079
+ }
1080
+ /**
1081
+ * Interface used to specify creation options for color picker
1082
+ */
1083
+ export interface IColorPickerState {
1084
+ color: BABYLON.Color3;
1085
+ alpha: number;
1086
+ }
1087
+ /**
1088
+ * Class used to create a color picker
1089
+ */
1090
+ export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
1091
+ private _saturationRef;
1092
+ private _hueRef;
1093
+ private _isSaturationPointerDown;
1094
+ private _isHuePointerDown;
1095
+ constructor(props: IColorPickerProps);
1096
+ shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
1097
+ onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1098
+ onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1099
+ onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
1100
+ onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1101
+ onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1102
+ onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
1103
+ private _evaluateSaturation;
1104
+ private _evaluateHue;
1105
+ componentDidUpdate(): void;
1106
+ raiseOnColorChanged(): void;
1107
+ render(): JSX.Element;
1108
+ }
1109
+
1110
+
1111
+ export interface IHexColorProps {
1112
+ value: string;
1113
+ expectedLength: number;
1114
+ onChange: (value: string) => void;
1115
+ }
1116
+ export class HexColor extends React.Component<IHexColorProps, {
1117
+ hex: string;
1118
+ }> {
1119
+ constructor(props: IHexColorProps);
1120
+ shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
1121
+ hex: string;
1122
+ }): boolean;
1123
+ updateHexValue(valueString: string): void;
1124
+ render(): JSX.Element;
1125
+ }
1126
+
1127
+
1128
+ export interface IBooleanLineComponentProps {
1129
+ label: string;
1130
+ value: boolean;
1131
+ icon?: string;
1132
+ iconLabel?: string;
1133
+ }
1134
+ export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
1135
+ constructor(props: IBooleanLineComponentProps);
1136
+ render(): JSX.Element;
1137
+ }
1138
+
1139
+
1140
+ export interface IButtonLineComponentProps {
1141
+ label: string;
1142
+ onClick: () => void;
1143
+ icon?: string;
1144
+ iconLabel?: string;
1145
+ }
1146
+ export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
1147
+ constructor(props: IButtonLineComponentProps);
1148
+ render(): JSX.Element;
1149
+ }
1150
+
1151
+
1152
+ export interface ICheckBoxLineComponentProps {
1153
+ label?: string;
1154
+ target?: any;
1155
+ propertyName?: string;
1156
+ isSelected?: () => boolean;
1157
+ onSelect?: (value: boolean) => void;
1158
+ onValueChanged?: () => void;
1159
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1160
+ disabled?: boolean;
1161
+ icon?: string;
1162
+ iconLabel?: string;
1163
+ faIcons?: {
1164
+ enabled: any;
1165
+ disabled: any;
1166
+ };
1167
+ large?: boolean;
1168
+ }
1169
+ export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
1170
+ isSelected: boolean;
1171
+ isDisabled?: boolean;
1172
+ isConflict: boolean;
1173
+ }> {
1174
+ private _localChange;
1175
+ constructor(props: ICheckBoxLineComponentProps);
1176
+ shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
1177
+ isSelected: boolean;
1178
+ isDisabled: boolean;
1179
+ isConflict: boolean;
1180
+ }): boolean;
1181
+ onChange(): void;
1182
+ render(): JSX.Element;
1183
+ }
1184
+
1185
+
1186
+ export interface IColor3LineComponentProps {
1187
+ label: string;
1188
+ target: any;
1189
+ propertyName: string;
1190
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1191
+ isLinear?: boolean;
1192
+ icon?: string;
1193
+ lockObject?: LockObject;
1194
+ iconLabel?: string;
1195
+ onValueChange?: (value: string) => void;
1196
+ }
1197
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
1198
+ render(): JSX.Element;
1199
+ }
1200
+
1201
+
1202
+ export interface IColor4LineComponentProps {
1203
+ label: string;
1204
+ target?: any;
1205
+ propertyName: string;
1206
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1207
+ onChange?: () => void;
1208
+ isLinear?: boolean;
1209
+ icon?: string;
1210
+ iconLabel?: string;
1211
+ lockObject?: LockObject;
1212
+ }
1213
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
1214
+ render(): JSX.Element;
1215
+ }
1216
+
1217
+
1218
+ export interface IColorLineComponentProps {
1219
+ label: string;
1220
+ target?: any;
1221
+ propertyName: string;
1222
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1223
+ onChange?: () => void;
1224
+ isLinear?: boolean;
1225
+ icon?: string;
1226
+ iconLabel?: string;
1227
+ lockObject?: LockObject;
1228
+ disableAlpha?: boolean;
1229
+ }
1230
+ interface IColorLineComponentState {
1231
+ isExpanded: boolean;
1232
+ color: BABYLON.Color4;
1233
+ }
1234
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
1235
+ constructor(props: IColorLineComponentProps);
1236
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
1237
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
1238
+ children?: React.ReactNode;
1239
+ }>): BABYLON.Color4;
1240
+ setColorFromString(colorString: string): void;
1241
+ setColor(newColor: BABYLON.Color4): void;
1242
+ switchExpandState(): void;
1243
+ updateStateR(value: number): void;
1244
+ updateStateG(value: number): void;
1245
+ updateStateB(value: number): void;
1246
+ updateStateA(value: number): void;
1247
+ copyToClipboard(): void;
1248
+ private _convertToColor;
1249
+ private _toColor3;
1250
+ render(): JSX.Element;
1251
+ }
1252
+
1253
+
1254
+ export interface IColorPickerComponentProps {
1255
+ value: BABYLON.Color4 | BABYLON.Color3;
1256
+ linearHint?: boolean;
1257
+ onColorChanged: (newOne: string) => void;
1258
+ icon?: string;
1259
+ iconLabel?: string;
1260
+ shouldPopRight?: boolean;
1261
+ }
1262
+ interface IColorPickerComponentState {
1263
+ pickerEnabled: boolean;
1264
+ color: BABYLON.Color3 | BABYLON.Color4;
1265
+ hex: string;
1266
+ }
1267
+ export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
1268
+ private _floatRef;
1269
+ private _floatHostRef;
1270
+ constructor(props: IColorPickerComponentProps);
1271
+ syncPositions(): void;
1272
+ shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
1273
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
1274
+ children?: React.ReactNode;
1275
+ }>): string;
1276
+ componentDidUpdate(): void;
1277
+ componentDidMount(): void;
1278
+ render(): JSX.Element;
1279
+ }
1280
+
1281
+
1282
+ export interface IButtonLineComponentProps {
1283
+ data: string;
1284
+ tooltip: string;
1285
+ }
1286
+ export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1287
+ constructor(props: IButtonLineComponentProps);
1288
+ render(): JSX.Element;
1289
+ }
1290
+
1291
+
1292
+ interface IFileButtonLineComponentProps {
1293
+ label: string;
1294
+ onClick: (file: File) => void;
1295
+ accept: string;
1296
+ icon?: string;
1297
+ iconLabel?: string;
1298
+ }
1299
+ export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
1300
+ private static _IDGenerator;
1301
+ private _id;
1302
+ private _uploadInputRef;
1303
+ constructor(props: IFileButtonLineComponentProps);
1304
+ onChange(evt: any): void;
1305
+ render(): JSX.Element;
1306
+ }
1307
+
1308
+
1309
+ interface IFileMultipleButtonLineComponentProps {
1310
+ label: string;
1311
+ onClick: (event: any) => void;
1312
+ accept: string;
1313
+ icon?: string;
1314
+ iconLabel?: string;
1315
+ }
1316
+ export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
1317
+ private static _IDGenerator;
1318
+ private _id;
1319
+ private _uploadInputRef;
1320
+ constructor(props: IFileMultipleButtonLineComponentProps);
1321
+ onChange(evt: any): void;
1322
+ render(): JSX.Element;
1323
+ }
1324
+
1325
+
1326
+ interface IFloatLineComponentProps {
1327
+ label: string;
1328
+ target: any;
1329
+ propertyName: string;
1330
+ lockObject?: LockObject;
1331
+ onChange?: (newValue: number) => void;
1332
+ isInteger?: boolean;
1333
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1334
+ additionalClass?: string;
1335
+ step?: string;
1336
+ digits?: number;
1337
+ useEuler?: boolean;
1338
+ min?: number;
1339
+ max?: number;
1340
+ smallUI?: boolean;
1341
+ onEnter?: (newValue: number) => void;
1342
+ icon?: string;
1343
+ iconLabel?: string;
1344
+ defaultValue?: number;
1345
+ arrows?: boolean;
1346
+ unit?: React.ReactNode;
1347
+ onDragStart?: (newValue: number) => void;
1348
+ onDragStop?: (newValue: number) => void;
1349
+ }
1350
+ export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1351
+ value: string;
1352
+ dragging: boolean;
1353
+ }> {
1354
+ private _localChange;
1355
+ private _store;
1356
+ constructor(props: IFloatLineComponentProps);
1357
+ componentWillUnmount(): void;
1358
+ getValueString(value: any): string;
1359
+ shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1360
+ value: string;
1361
+ dragging: boolean;
1362
+ }): boolean;
1363
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1364
+ updateValue(valueString: string): void;
1365
+ lock(): void;
1366
+ unlock(): void;
1367
+ incrementValue(amount: number): void;
1368
+ onKeyDown(event: React.KeyboardEvent): void;
1369
+ render(): JSX.Element;
1370
+ }
1371
+
1372
+
1373
+ interface IHexLineComponentProps {
1374
+ label: string;
1375
+ target: any;
1376
+ propertyName: string;
1377
+ lockObject?: LockObject;
1378
+ onChange?: (newValue: number) => void;
1379
+ isInteger?: boolean;
1380
+ replaySourceReplacement?: string;
1381
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1382
+ additionalClass?: string;
1383
+ step?: string;
1384
+ digits?: number;
1385
+ useEuler?: boolean;
1386
+ min?: number;
1387
+ icon?: string;
1388
+ iconLabel?: string;
1389
+ }
1390
+ export class HexLineComponent extends React.Component<IHexLineComponentProps, {
1391
+ value: string;
1392
+ }> {
1393
+ private _localChange;
1394
+ private _store;
1395
+ private _propertyChange;
1396
+ constructor(props: IHexLineComponentProps);
1397
+ componentWillUnmount(): void;
1398
+ shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
1399
+ value: string;
1400
+ }): boolean;
1401
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1402
+ convertToHexString(valueString: string): string;
1403
+ updateValue(valueString: string, raisePropertyChanged: boolean): void;
1404
+ lock(): void;
1405
+ unlock(): void;
1406
+ render(): JSX.Element;
1407
+ }
1408
+
1409
+
1410
+ export interface IIconButtonLineComponentProps {
1411
+ icon: string;
1412
+ onClick: () => void;
1413
+ tooltip: string;
1414
+ active?: boolean;
1415
+ }
1416
+ export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
1417
+ constructor(props: IIconButtonLineComponentProps);
1418
+ render(): JSX.Element;
1419
+ }
1420
+
1421
+
1422
+ interface IIconComponentProps {
1423
+ icon: string;
1424
+ label?: string;
1425
+ }
1426
+ export class IconComponent extends React.Component<IIconComponentProps> {
1427
+ render(): JSX.Element;
1428
+ }
1429
+
1430
+
1431
+ interface IIndentedTextLineComponentProps {
1432
+ value?: string;
1433
+ color?: string;
1434
+ underline?: boolean;
1435
+ onLink?: () => void;
1436
+ url?: string;
1437
+ additionalClass?: string;
1438
+ }
1439
+ export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
1440
+ constructor(props: IIndentedTextLineComponentProps);
1441
+ onLink(): void;
1442
+ renderContent(): JSX.Element;
1443
+ render(): JSX.Element;
1444
+ }
1445
+
1446
+
1447
+ interface IInputArrowsComponentProps {
1448
+ incrementValue: (amount: number) => void;
1449
+ setDragging: (dragging: boolean) => void;
1450
+ }
1451
+ export class InputArrowsComponent extends React.Component<IInputArrowsComponentProps> {
1452
+ private _arrowsRef;
1453
+ private _drag;
1454
+ private _releaseListener;
1455
+ private _lockChangeListener;
1456
+ render(): JSX.Element;
1457
+ }
1458
+
1459
+
1460
+ export interface ISelectedLineContainer {
1461
+ selectedLineContainerTitles: Array<string>;
1462
+ selectedLineContainerTitlesNoFocus: Array<string>;
1463
+ }
1464
+
1465
+
1466
+ interface ILineContainerComponentProps {
1467
+ selection?: ISelectedLineContainer;
1468
+ title: string;
1469
+ children: any[] | any;
1470
+ closed?: boolean;
1471
+ }
1472
+ export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1473
+ isExpanded: boolean;
1474
+ isHighlighted: boolean;
1475
+ }> {
1476
+ constructor(props: ILineContainerComponentProps);
1477
+ switchExpandedState(): void;
1478
+ renderHeader(): JSX.Element;
1479
+ componentDidMount(): void;
1480
+ render(): JSX.Element;
1481
+ }
1482
+
1483
+
1484
+ interface ILinkButtonComponentProps {
1485
+ label: string;
1486
+ buttonLabel: string;
1487
+ url?: string;
1488
+ onClick: () => void;
1489
+ icon?: any;
1490
+ onIconClick?: () => void;
1491
+ }
1492
+ export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
1493
+ constructor(props: ILinkButtonComponentProps);
1494
+ onLink(): void;
1495
+ render(): JSX.Element;
1496
+ }
1497
+
1498
+
1499
+ interface IMessageLineComponentProps {
1500
+ text: string;
1501
+ color?: string;
1502
+ icon?: any;
1503
+ }
1504
+ export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
1505
+ constructor(props: IMessageLineComponentProps);
1506
+ render(): JSX.Element;
1507
+ }
1508
+
1509
+
1510
+ interface INumericInputComponentProps {
1511
+ label: string;
1512
+ value: number;
1513
+ step?: number;
1514
+ onChange: (value: number) => void;
1515
+ precision?: number;
1516
+ icon?: string;
1517
+ iconLabel?: string;
1518
+ }
1519
+ export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1520
+ value: string;
1521
+ }> {
1522
+ static defaultProps: {
1523
+ step: number;
1524
+ };
1525
+ private _localChange;
1526
+ constructor(props: INumericInputComponentProps);
1527
+ shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
1528
+ value: string;
1529
+ }): boolean;
1530
+ updateValue(evt: any): void;
1531
+ onBlur(): void;
1532
+ render(): JSX.Element;
1533
+ }
1534
+
1535
+
1536
+ export var Null_Value: number;
1537
+ export interface IOptionsLineComponentProps {
1538
+ label: string;
1539
+ target: any;
1540
+ propertyName: string;
1541
+ options: BABYLON.IInspectableOptions[];
1542
+ noDirectUpdate?: boolean;
1543
+ onSelect?: (value: number) => void;
1544
+ extractValue?: () => number;
1545
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1546
+ allowNullValue?: boolean;
1547
+ icon?: string;
1548
+ iconLabel?: string;
1549
+ }
1550
+ export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
1551
+ value: number;
1552
+ }> {
1553
+ private _localChange;
1554
+ private _remapValueIn;
1555
+ private _remapValueOut;
1556
+ constructor(props: IOptionsLineComponentProps);
1557
+ shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
1558
+ value: number;
1559
+ }): boolean;
1560
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1561
+ updateValue(valueString: string): void;
1562
+ render(): JSX.Element;
1563
+ }
1564
+
1565
+
1566
+ export class Popup {
1567
+ static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
1568
+ private static _CopyStyles;
1569
+ }
1570
+
1571
+
1572
+ interface IRadioButtonLineComponentProps {
1573
+ onSelectionChangedObservable: BABYLON.Observable<RadioButtonLineComponent>;
1574
+ label: string;
1575
+ isSelected: () => boolean;
1576
+ onSelect: () => void;
1577
+ icon?: string;
1578
+ iconLabel?: string;
1579
+ }
1580
+ export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
1581
+ isSelected: boolean;
1582
+ }> {
1583
+ private _onSelectionChangedObserver;
1584
+ constructor(props: IRadioButtonLineComponentProps);
1585
+ componentDidMount(): void;
1586
+ componentWillUnmount(): void;
1587
+ onChange(): void;
1588
+ render(): JSX.Element;
1589
+ }
1590
+
1591
+
1592
+ interface ISliderLineComponentProps {
1593
+ label: string;
1594
+ target?: any;
1595
+ propertyName?: string;
1596
+ minimum: number;
1597
+ maximum: number;
1598
+ step: number;
1599
+ directValue?: number;
1600
+ useEuler?: boolean;
1601
+ onChange?: (value: number) => void;
1602
+ onInput?: (value: number) => void;
1603
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1604
+ decimalCount?: number;
1605
+ margin?: boolean;
1606
+ icon?: string;
1607
+ iconLabel?: string;
1608
+ lockObject?: LockObject;
1609
+ unit?: React.ReactNode;
1610
+ }
1611
+ export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
1612
+ value: number;
1613
+ }> {
1614
+ private _localChange;
1615
+ constructor(props: ISliderLineComponentProps);
1616
+ shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
1617
+ value: number;
1618
+ }): boolean;
1619
+ onChange(newValueString: any): void;
1620
+ onInput(newValueString: any): void;
1621
+ prepareDataToRead(value: number): number;
1622
+ render(): JSX.Element;
1623
+ }
1624
+
1625
+
1626
+ export const conflictingValuesPlaceholder = "\u2014";
1627
+ /**
1628
+ *
1629
+ * @param targets a list of selected targets
1630
+ * @param onPropertyChangedObservable
1631
+ * @param getProperty
1632
+ * @returns a proxy object that can be passed as a target into the input
1633
+ */
1634
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
1635
+
1636
+
1637
+ export interface ITextInputLineComponentProps {
1638
+ label?: string;
1639
+ lockObject?: LockObject;
1640
+ target?: any;
1641
+ propertyName?: string;
1642
+ value?: string;
1643
+ onChange?: (value: string) => void;
1644
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1645
+ icon?: string;
1646
+ iconLabel?: string;
1647
+ noUnderline?: boolean;
1648
+ numbersOnly?: boolean;
1649
+ delayInput?: boolean;
1650
+ arrows?: boolean;
1651
+ arrowsIncrement?: (amount: number) => void;
1652
+ step?: number;
1653
+ numeric?: boolean;
1654
+ roundValues?: boolean;
1655
+ min?: number;
1656
+ max?: number;
1657
+ placeholder?: string;
1658
+ unit?: React.ReactNode;
1659
+ }
1660
+ export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
1661
+ value: string;
1662
+ dragging: boolean;
1663
+ }> {
1664
+ private _localChange;
1665
+ constructor(props: ITextInputLineComponentProps);
1666
+ componentWillUnmount(): void;
1667
+ shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
1668
+ value: string;
1669
+ dragging: boolean;
1670
+ }): boolean;
1671
+ raiseOnPropertyChanged(newValue: string, previousValue: string): void;
1672
+ getCurrentNumericValue(value: string): number;
1673
+ updateValue(value: string): void;
1674
+ incrementValue(amount: number): void;
1675
+ onKeyDown(event: React.KeyboardEvent): void;
1676
+ render(): JSX.Element;
1677
+ }
1678
+
1679
+
1680
+ interface ITextLineComponentProps {
1681
+ label?: string;
1682
+ value?: string;
1683
+ color?: string;
1684
+ underline?: boolean;
1685
+ onLink?: () => void;
1686
+ url?: string;
1687
+ ignoreValue?: boolean;
1688
+ additionalClass?: string;
1689
+ icon?: string;
1690
+ iconLabel?: string;
1691
+ tooltip?: string;
1692
+ }
1693
+ export class TextLineComponent extends React.Component<ITextLineComponentProps> {
1694
+ constructor(props: ITextLineComponentProps);
1695
+ onLink(): void;
1696
+ renderContent(): JSX.Element | null;
1697
+ render(): JSX.Element;
1698
+ }
1699
+
1700
+
1701
+ /// <reference types="react" />
1702
+ interface IUnitButtonProps {
1703
+ unit: string;
1704
+ locked?: boolean;
1705
+ onClick?: (unit: string) => void;
1706
+ }
1707
+ export function UnitButton(props: IUnitButtonProps): JSX.Element;
1708
+
1709
+
1710
+ interface IValueLineComponentProps {
1711
+ label: string;
1712
+ value: number;
1713
+ color?: string;
1714
+ fractionDigits?: number;
1715
+ units?: string;
1716
+ icon?: string;
1717
+ iconLabel?: string;
1718
+ }
1719
+ export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
1720
+ constructor(props: IValueLineComponentProps);
1721
+ render(): JSX.Element;
1722
+ }
1723
+
1724
+
1725
+ interface IVector2LineComponentProps {
1726
+ label: string;
1727
+ target: any;
1728
+ propertyName: string;
1729
+ step?: number;
1730
+ onChange?: (newvalue: BABYLON.Vector2) => void;
1731
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1732
+ icon?: string;
1733
+ iconLabel?: string;
1734
+ }
1735
+ export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
1736
+ isExpanded: boolean;
1737
+ value: BABYLON.Vector2;
1738
+ }> {
1739
+ static defaultProps: {
1740
+ step: number;
1741
+ };
1742
+ private _localChange;
1743
+ constructor(props: IVector2LineComponentProps);
1744
+ shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
1745
+ isExpanded: boolean;
1746
+ value: BABYLON.Vector2;
1747
+ }): boolean;
1748
+ switchExpandState(): void;
1749
+ raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void;
1750
+ updateStateX(value: number): void;
1751
+ updateStateY(value: number): void;
1752
+ render(): JSX.Element;
1753
+ }
1754
+
1755
+
1756
+ interface IVector3LineComponentProps {
1757
+ label: string;
1758
+ target: any;
1759
+ propertyName: string;
1760
+ step?: number;
1761
+ onChange?: (newvalue: BABYLON.Vector3) => void;
1762
+ useEuler?: boolean;
1763
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1764
+ noSlider?: boolean;
1765
+ icon?: string;
1766
+ iconLabel?: string;
1767
+ }
1768
+ export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
1769
+ isExpanded: boolean;
1770
+ value: BABYLON.Vector3;
1771
+ }> {
1772
+ static defaultProps: {
1773
+ step: number;
1774
+ };
1775
+ private _localChange;
1776
+ constructor(props: IVector3LineComponentProps);
1777
+ getCurrentValue(): any;
1778
+ shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
1779
+ isExpanded: boolean;
1780
+ value: BABYLON.Vector3;
1781
+ }): boolean;
1782
+ switchExpandState(): void;
1783
+ raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void;
1784
+ updateVector3(): void;
1785
+ updateStateX(value: number): void;
1786
+ updateStateY(value: number): void;
1787
+ updateStateZ(value: number): void;
1788
+ render(): JSX.Element;
1789
+ }
1790
+
1791
+
1792
+ interface IVector4LineComponentProps {
1793
+ label: string;
1794
+ target: any;
1795
+ propertyName: string;
1796
+ step?: number;
1797
+ onChange?: (newvalue: BABYLON.Vector4) => void;
1798
+ useEuler?: boolean;
1799
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1800
+ icon?: string;
1801
+ iconLabel?: string;
1802
+ }
1803
+ export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
1804
+ isExpanded: boolean;
1805
+ value: BABYLON.Vector4;
1806
+ }> {
1807
+ static defaultProps: {
1808
+ step: number;
1809
+ };
1810
+ private _localChange;
1811
+ constructor(props: IVector4LineComponentProps);
1812
+ getCurrentValue(): any;
1813
+ shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
1814
+ isExpanded: boolean;
1815
+ value: BABYLON.Vector4;
1816
+ }): boolean;
1817
+ switchExpandState(): void;
1818
+ raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void;
1819
+ updateVector4(): void;
1820
+ updateStateX(value: number): void;
1821
+ updateStateY(value: number): void;
1822
+ updateStateZ(value: number): void;
1823
+ updateStateW(value: number): void;
1824
+ render(): JSX.Element;
1825
+ }
1826
+
1827
+
1828
+ export class PropertyChangedEvent {
1829
+ object: any;
1830
+ property: string;
1831
+ value: any;
1832
+ initialValue: any;
1833
+ allowNullValue?: boolean;
1834
+ }
1835
+
1836
+
1837
+ export class StringTools {
1838
+ private static _SaveAs;
1839
+ private static _Click;
1840
+ /**
1841
+ * Download a string into a file that will be saved locally by the browser
1842
+ * @param document
1843
+ * @param content defines the string to download locally as a file
1844
+ * @param filename
1845
+ */
1846
+ static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
1847
+ }
1848
+
1849
+
1850
+ interface ICheckboxPropertyGridComponentProps {
1851
+ checkbox: BABYLON.GUI.Checkbox;
1852
+ lockObject: LockObject;
1853
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1854
+ }
1855
+ export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
1856
+ constructor(props: ICheckboxPropertyGridComponentProps);
1857
+ render(): JSX.Element;
1858
+ }
1859
+
1860
+
1861
+ interface IColorPickerPropertyGridComponentProps {
1862
+ colorPicker: BABYLON.GUI.ColorPicker;
1863
+ lockObject: LockObject;
1864
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1865
+ }
1866
+ export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
1867
+ constructor(props: IColorPickerPropertyGridComponentProps);
1868
+ render(): JSX.Element;
1869
+ }
1870
+
1871
+
1872
+ interface ICommonControlPropertyGridComponentProps {
1873
+ controls?: BABYLON.GUI.Control[];
1874
+ control?: BABYLON.GUI.Control;
1875
+ lockObject: LockObject;
1876
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1877
+ }
1878
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
1879
+ constructor(props: ICommonControlPropertyGridComponentProps);
1880
+ renderGridInformation(control: BABYLON.GUI.Control): JSX.Element | null;
1881
+ render(): JSX.Element | undefined;
1882
+ }
1883
+
1884
+
1885
+ interface IControlPropertyGridComponentProps {
1886
+ control: BABYLON.GUI.Control;
1887
+ lockObject: LockObject;
1888
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1889
+ }
1890
+ export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
1891
+ constructor(props: IControlPropertyGridComponentProps);
1892
+ render(): JSX.Element;
1893
+ }
1894
+
1895
+
1896
+ interface IEllipsePropertyGridComponentProps {
1897
+ ellipse: BABYLON.GUI.Ellipse;
1898
+ lockObject: LockObject;
1899
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1900
+ }
1901
+ export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
1902
+ constructor(props: IEllipsePropertyGridComponentProps);
1903
+ render(): JSX.Element;
1904
+ }
1905
+
1906
+
1907
+ interface IGridPropertyGridComponentProps {
1908
+ grid: BABYLON.GUI.Grid;
1909
+ lockObject: LockObject;
1910
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1911
+ }
1912
+ export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
1913
+ constructor(props: IGridPropertyGridComponentProps);
1914
+ renderRows(): JSX.Element[];
1915
+ renderColumns(): JSX.Element[];
1916
+ render(): JSX.Element;
1917
+ }
1918
+
1919
+
1920
+ interface IImageBasedSliderPropertyGridComponentProps {
1921
+ imageBasedSlider: BABYLON.GUI.ImageBasedSlider;
1922
+ lockObject: LockObject;
1923
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1924
+ }
1925
+ export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
1926
+ constructor(props: IImageBasedSliderPropertyGridComponentProps);
1927
+ render(): JSX.Element;
1928
+ }
1929
+
1930
+
1931
+ interface IImagePropertyGridComponentProps {
1932
+ image: BABYLON.GUI.Image;
1933
+ lockObject: LockObject;
1934
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1935
+ }
1936
+ export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
1937
+ constructor(props: IImagePropertyGridComponentProps);
1938
+ render(): JSX.Element;
1939
+ }
1940
+
1941
+
1942
+ interface IInputTextPropertyGridComponentProps {
1943
+ inputText: BABYLON.GUI.InputText;
1944
+ lockObject: LockObject;
1945
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1946
+ }
1947
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
1948
+ constructor(props: IInputTextPropertyGridComponentProps);
1949
+ render(): JSX.Element;
1950
+ }
1951
+
1952
+
1953
+ interface ILinePropertyGridComponentProps {
1954
+ line: BABYLON.GUI.Line;
1955
+ lockObject: LockObject;
1956
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1957
+ }
1958
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
1959
+ constructor(props: ILinePropertyGridComponentProps);
1960
+ onDashChange(value: string): void;
1961
+ render(): JSX.Element;
1962
+ }
1963
+
1964
+
1965
+ interface IRadioButtonPropertyGridComponentProps {
1966
+ radioButtons: BABYLON.GUI.RadioButton[];
1967
+ lockObject: LockObject;
1968
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1969
+ }
1970
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
1971
+ constructor(props: IRadioButtonPropertyGridComponentProps);
1972
+ render(): JSX.Element;
1973
+ }
1974
+
1975
+
1976
+ interface IRectanglePropertyGridComponentProps {
1977
+ rectangle: BABYLON.GUI.Rectangle;
1978
+ lockObject: LockObject;
1979
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1980
+ }
1981
+ export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
1982
+ constructor(props: IRectanglePropertyGridComponentProps);
1983
+ render(): JSX.Element;
1984
+ }
1985
+
1986
+
1987
+ interface IScrollViewerPropertyGridComponentProps {
1988
+ scrollViewer: BABYLON.GUI.ScrollViewer;
1989
+ lockObject: LockObject;
1990
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
1991
+ }
1992
+ export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
1993
+ constructor(props: IScrollViewerPropertyGridComponentProps);
1994
+ render(): JSX.Element;
1995
+ }
1996
+
1997
+
1998
+ interface ISliderPropertyGridComponentProps {
1999
+ slider: BABYLON.GUI.Slider;
2000
+ lockObject: LockObject;
2001
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
2002
+ }
2003
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
2004
+ constructor(props: ISliderPropertyGridComponentProps);
2005
+ render(): JSX.Element;
2006
+ }
2007
+
2008
+
2009
+ interface IStackPanelPropertyGridComponentProps {
2010
+ stackPanel: BABYLON.GUI.StackPanel;
2011
+ lockObject: LockObject;
2012
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
2013
+ }
2014
+ export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
2015
+ constructor(props: IStackPanelPropertyGridComponentProps);
2016
+ render(): JSX.Element;
2017
+ }
2018
+
2019
+
2020
+ interface ITextBlockPropertyGridComponentProps {
2021
+ textBlock: BABYLON.GUI.TextBlock;
2022
+ lockObject: LockObject;
2023
+ onPropertyChangedObservable?: BABYLON.Observable<PropertyChangedEvent>;
2024
+ }
2025
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
2026
+ constructor(props: ITextBlockPropertyGridComponentProps);
2027
+ render(): JSX.Element;
2028
+ }
2029
+
2030
+
2031
+ /**
2032
+ * Class used to provide lock mechanism
2033
+ */
2034
+ export class LockObject {
2035
+ /**
2036
+ * Gets or set if the lock is engaged
2037
+ */
2038
+ lock: boolean;
2039
+ }
2040
+
2041
+
2042
+
2043
+ }
2044
+
2045
+
2046
+