@babylonjs/gui-editor 5.0.0-alpha.9 → 5.0.0-beta.11

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,218 +19,296 @@ 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 LookForItems(item: any, selectedEntities: 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/sharedUiComponents/propertyChangedEvent" {
35
+ export class PropertyChangedEvent {
36
+ object: any;
37
+ property: string;
38
+ value: any;
39
+ initialValue: any;
40
+ allowNullValue?: boolean;
41
+ }
42
+ }
43
+ declare module "@babylonjs/gui-editor/diagram/coordinateHelper" {
44
+ import { Control } from "@babylonjs/gui/2D/controls/control";
45
+ import { Matrix2D } from "@babylonjs/gui/2D/math2D";
46
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
47
+ import { Observable } from "@babylonjs/core/Misc/observable";
48
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
49
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
50
+ export type DimensionProperties = "width" | "left" | "height" | "top" | "paddingLeft" | "paddingRight" | "paddingTop" | "paddingBottom";
51
+ export class Rect {
52
+ top: number;
53
+ left: number;
54
+ right: number;
55
+ bottom: number;
56
+ constructor(left: number, top: number, right: number, bottom: number);
57
+ clone(): Rect;
58
+ get center(): Vector2;
59
+ get width(): number;
60
+ get height(): number;
61
+ }
62
+ export class CoordinateHelper {
63
+ private static _matrixCache;
64
+ static globalState: GlobalState;
65
+ /**
66
+ * Get the scaling of a specific GUI control
67
+ * @param node the node for which we are getting the scaling
68
+ * @param relative should we return only the relative scaling (relative to the parent)
69
+ * @returns an X,Y vector of the scaling
70
+ */
71
+ static getScale(node: Control, relative?: boolean): Vector2;
72
+ static getRotation(node: Control, relative?: boolean): number;
73
+ /**
74
+ * This function calculates a local matrix for a node, including it's full transformation and pivot point
75
+ *
76
+ * @param node the node to calculate the matrix for
77
+ * @param useStoredValues should the stored (cached) values be used to calculate the matrix
78
+ * @returns a new matrix for the control
79
+ */
80
+ static getNodeMatrix(node: Control, storedValues?: Rect): Matrix2D;
81
+ /**
82
+ * Using the node's tree, calculate its world matrix and return it
83
+ * @param node the node to calculate the matrix for
84
+ * @param useStoredValuesIfPossible used stored valued (cached when pointer down is clicked)
85
+ * @returns the world matrix for this node
86
+ */
87
+ static nodeToRTTWorldMatrix(node: Control, storedValues?: Rect): Matrix2D;
88
+ static nodeToRTTSpace(node: Control, x: number, y: number, reference?: Vector2, storedValues?: Rect): Vector2;
89
+ static rttToLocalNodeSpace(node: Control, x: number, y: number, reference?: Vector2, storedValues?: Rect): Vector2;
90
+ static rttToCanvasSpace(x: number, y: number): Vector2;
91
+ static mousePointerToRTTSpace(node: Control, x?: number, y?: number): Vector2;
92
+ private static resetMatrixArray;
93
+ static computeLocalBounds(node: Control): Rect;
94
+ /**
95
+ * converts a node's dimensions to percentage, properties can be specified as a list, or can convert all
96
+ */
97
+ static convertToPercentage(guiControl: Control, properties?: DimensionProperties[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>): void;
98
+ static round(value: number): number;
99
+ static convertToPixels(guiControl: Control, properties?: DimensionProperties[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>): void;
100
+ }
101
+ }
22
102
  declare module "@babylonjs/gui-editor/diagram/workbench" {
23
103
  import * as React from "react";
24
104
  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';
105
+ import { Nullable } from "@babylonjs/core/types";
106
+ import { Control } from "@babylonjs/gui/2D/controls/control";
107
+ import { Vector2, Vector3 } from "@babylonjs/core/Maths/math.vector";
108
+ import { Scene } from "@babylonjs/core/scene";
109
+ import { IWheelEvent } from "@babylonjs/core/Events/deviceInputEvents";
110
+ import { Container } from "@babylonjs/gui/2D/controls/container";
111
+ import { ISize } from "@babylonjs/core/Maths/math";
27
112
  export interface IWorkbenchComponentProps {
28
113
  globalState: GlobalState;
29
114
  }
30
- export type FramePortData = {};
31
- export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
115
+ export enum ConstraintDirection {
116
+ NONE = 0,
117
+ X = 2,
118
+ Y = 3
119
+ }
32
120
  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;
40
121
  private _rootContainer;
41
- private _guiNodes;
122
+ private _setConstraintDirection;
42
123
  private _mouseStartPointX;
43
124
  private _mouseStartPointY;
44
- private _selectionStartX;
45
- private _selectionStartY;
46
- private _x;
47
- private _y;
48
- private _zoom;
125
+ _scene: Scene;
49
126
  private _selectedGuiNodes;
50
- private _gridSize;
51
- private _selectionBox;
52
- private _frameCandidate;
53
- private _altKeyIsPressed;
54
127
  private _ctrlKeyIsPressed;
55
- private _oldY;
56
- _frameIsMoving: boolean;
57
- _isLoading: boolean;
58
- isOverGUINode: boolean;
59
- get gridSize(): number;
60
- set gridSize(value: number);
128
+ private _altKeyIsPressed;
129
+ private _constraintDirection;
130
+ private _forcePanning;
131
+ private _forceZooming;
132
+ private _forceSelecting;
133
+ private _panning;
134
+ private _canvas;
135
+ private _responsive;
136
+ private _isOverGUINode;
137
+ private _engine;
138
+ private _liveRenderObserver;
139
+ private _guiRenderObserver;
140
+ private _mainSelection;
141
+ private _selectionDepth;
142
+ private _doubleClick;
143
+ private _lockMainSelection;
144
+ _liveGuiTextureRerender: boolean;
145
+ private _anyControlClicked;
146
+ private _visibleRegionContainer;
147
+ get visibleRegionContainer(): Container;
148
+ private _panAndZoomContainer;
149
+ get panAndZoomContainer(): Container;
150
+ private _trueRootContainer;
151
+ set trueRootContainer(value: Container);
152
+ get trueRootContainer(): Container;
153
+ private _nextLiveGuiRender;
154
+ private _liveGuiRerenderDelay;
155
+ private _defaultGUISize;
156
+ private _initialPanningOffset;
157
+ private _panningOffset;
158
+ private _zoomFactor;
159
+ private _zoomModeIncrement;
160
+ private _guiSize;
161
+ get guiSize(): ISize;
162
+ set guiSize(value: ISize);
163
+ applyEditorTransformation(): void;
164
+ removeEditorTransformation(): void;
61
165
  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;
166
+ get nodes(): Control[];
167
+ get selectedGuiNodes(): Control[];
168
+ private _getParentWithDepth;
169
+ private _getMaxParent;
75
170
  constructor(props: IWorkbenchComponentProps);
76
- getGridPosition(position: number, useCeil?: boolean): number;
77
- getGridPositionCeil(position: number): number;
78
- clearGuiTexture(): void;
171
+ determineMouseSelection(selection: Nullable<Control>): void;
172
+ keyEvent: (evt: KeyboardEvent) => void;
173
+ private _deleteSelectedNodes;
174
+ copyToClipboard(copyFn: (content: string) => void): void;
175
+ cutToClipboard(copyFn: (content: string) => void): void;
176
+ pasteFromClipboard(clipboardContents: string): boolean;
177
+ CopyGUIControl(original: Control): void;
178
+ private selectAllGUI;
179
+ blurEvent: () => void;
180
+ componentWillUnmount(): void;
79
181
  loadFromJson(serializationObject: any): void;
80
- loadFromSnippet(snippedID: string): Promise<void>;
81
- loadFromGuiTexture(): void;
82
- updateTransform(): void;
83
- onKeyUp(): void;
84
- findNodeFromGuiElement(guiControl: Control): GUINode;
85
- reset(): void;
86
- appendBlock(guiElement: Control): GUINode;
87
- distributeGraph(): void;
88
- componentDidMount(): void;
182
+ loadFromSnippet(snippetId: string): Promise<void>;
183
+ loadToEditor(): void;
184
+ updateNodeOutlines(): void;
185
+ findNodeFromGuiElement(guiControl: Control): Control;
186
+ appendBlock(guiElement: Control): Control;
187
+ private _isMainSelectionParent;
188
+ createNewGuiNode(guiControl: Control): Control;
189
+ private parent;
190
+ private _convertToPixels;
191
+ private _reorderGrid;
192
+ private _isNotChildInsert;
193
+ private _adjustParentingIndex;
194
+ isSelected(value: boolean, guiNode: Control): void;
195
+ clicked: boolean;
196
+ _onMove(guiControl: Control, evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
89
197
  onMove(evt: React.PointerEvent): void;
198
+ private _screenToTexturePosition;
199
+ private getScaledPointerPosition;
90
200
  onDown(evt: React.PointerEvent<HTMLElement>): void;
91
201
  isUp: boolean;
92
202
  onUp(evt: React.PointerEvent): void;
93
- onWheel(evt: React.WheelEvent): void;
94
- zoomToFit(): void;
95
203
  createGUICanvas(): void;
96
- updateGUIs(): void;
204
+ synchronizeLiveGUI(): void;
205
+ addControls(scene: Scene): void;
206
+ panning(): void;
207
+ zoomWheel(event: IWheelEvent): number;
208
+ zooming(delta: number): void;
209
+ zeroIfClose(vec: Vector3): void;
97
210
  render(): JSX.Element;
98
211
  }
99
212
  }
100
- declare module "@babylonjs/gui-editor/diagram/guiNode" {
101
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
102
- import { Control } from "@babylonjs/gui/2D/controls/control";
103
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
104
- export class GUINode {
105
- guiControl: Control;
106
- private _x;
107
- private _y;
108
- private _gridAlignedX;
109
- private _gridAlignedY;
110
- private _globalState;
111
- private _onSelectionChangedObserver;
112
- private _onSelectionBoxMovedObserver;
113
- private _onUpdateRequiredObserver;
114
- private _ownerCanvas;
115
- private _isSelected;
116
- private _isVisible;
117
- private _enclosingFrameId;
118
- children: GUINode[];
119
- get isVisible(): boolean;
120
- set isVisible(value: boolean);
121
- get gridAlignedX(): number;
122
- get gridAlignedY(): number;
123
- get x(): number;
124
- set x(value: number);
125
- get y(): number;
126
- set y(value: number);
127
- get width(): number;
128
- get height(): number;
129
- get id(): number;
130
- get name(): string | undefined;
131
- get isSelected(): boolean;
132
- get enclosingFrameId(): number;
133
- set enclosingFrameId(value: number);
134
- set isSelected(value: boolean);
135
- constructor(globalState: GlobalState, guiControl: Control);
136
- cleanAccumulation(useCeil?: boolean): void;
137
- clicked: boolean;
138
- _onMove(evt: Vector2, startPos: Vector2, ignorClick?: boolean): boolean;
139
- updateVisual(): void;
140
- private _isContainer;
141
- addGui(childNode: GUINode): void;
142
- dispose(): void;
143
- }
144
- }
145
- declare module "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent" {
146
- export class PropertyChangedEvent {
147
- object: any;
148
- property: string;
149
- value: any;
150
- initialValue: any;
151
- allowNullValue?: boolean;
213
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
214
+ /**
215
+ * Class used to provide lock mechanism
216
+ */
217
+ export class LockObject {
218
+ /**
219
+ * Gets or set if the lock is engaged
220
+ */
221
+ lock: boolean;
152
222
  }
153
223
  }
154
224
  declare module "@babylonjs/gui-editor/globalState" {
155
225
  import { Nullable } from "@babylonjs/core/types";
156
226
  import { Observable } from "@babylonjs/core/Misc/observable";
157
227
  import { LogEntry } from "@babylonjs/gui-editor/components/log/logComponent";
158
- import { Color4 } from "@babylonjs/core/Maths/math.color";
159
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
228
+ import { Color3 } from "@babylonjs/core/Maths/math.color";
160
229
  import { WorkbenchComponent } from "@babylonjs/gui-editor/diagram/workbench";
161
230
  import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
162
231
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
232
+ import { Scene } from "@babylonjs/core/scene";
233
+ import { Control } from "@babylonjs/gui/2D/controls/control";
234
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
235
+ import { ISize } from "@babylonjs/core/Maths/math";
236
+ export enum DragOverLocation {
237
+ ABOVE = 0,
238
+ BELOW = 1,
239
+ CENTER = 2,
240
+ NONE = 3
241
+ }
163
242
  export class GlobalState {
243
+ [x: string]: any;
244
+ liveGuiTexture: Nullable<AdvancedDynamicTexture>;
164
245
  guiTexture: AdvancedDynamicTexture;
165
246
  hostElement: HTMLElement;
166
247
  hostDocument: HTMLDocument;
167
248
  hostWindow: Window;
168
- onSelectionChangedObservable: Observable<Nullable<GUINode>>;
169
- onRebuildRequiredObservable: Observable<void>;
249
+ onSelectionChangedObservable: Observable<Nullable<Control>>;
250
+ onResizeObservable: Observable<ISize>;
170
251
  onBuiltObservable: Observable<void>;
171
252
  onResetRequiredObservable: Observable<void>;
172
253
  onUpdateRequiredObservable: Observable<void>;
173
- onReOrganizedRequiredObservable: Observable<void>;
174
254
  onLogRequiredObservable: Observable<LogEntry>;
175
255
  onErrorMessageDialogRequiredObservable: Observable<string>;
176
256
  onIsLoadingChanged: Observable<boolean>;
177
- onSelectionBoxMoved: Observable<DOMRect | ClientRect>;
178
- onGuiNodeRemovalObservable: Observable<GUINode>;
179
- backgroundColor: Color4;
257
+ onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
258
+ onNewSceneObservable: Observable<Nullable<Scene>>;
259
+ onGuiNodeRemovalObservable: Observable<Control>;
260
+ onPopupClosedObservable: Observable<void>;
261
+ private _backgroundColor;
262
+ private _outlines;
263
+ onOutlineChangedObservable: Observable<void>;
180
264
  blockKeyboardEvents: boolean;
181
265
  controlCamera: boolean;
266
+ selectionLock: boolean;
182
267
  workbench: WorkbenchComponent;
183
268
  onPropertyChangedObservable: Observable<PropertyChangedEvent>;
269
+ onZoomObservable: Observable<void>;
270
+ onFitToWindowObservable: Observable<void>;
271
+ onPanObservable: Observable<void>;
272
+ onSelectionButtonObservable: Observable<void>;
273
+ onLoadObservable: Observable<File>;
274
+ onSaveObservable: Observable<void>;
275
+ onSnippetLoadObservable: Observable<void>;
276
+ onSnippetSaveObservable: Observable<void>;
277
+ onResponsiveChangeObservable: Observable<boolean>;
278
+ onParentingChangeObservable: Observable<Nullable<Control>>;
279
+ onDropObservable: Observable<void>;
280
+ onPropertyGridUpdateRequiredObservable: Observable<void>;
281
+ onDraggingEndObservable: Observable<void>;
282
+ onDraggingStartObservable: Observable<void>;
283
+ onWindowResizeObservable: Observable<void>;
284
+ onGizmoUpdateRequireObservable: Observable<void>;
285
+ onArtBoardUpdateRequiredObservable: Observable<void>;
286
+ onBackgroundColorChangeObservable: Observable<void>;
287
+ onPointerMoveObservable: Observable<import("react").PointerEvent<HTMLCanvasElement>>;
288
+ onPointerUpObservable: Observable<Nullable<PointerEvent | import("react").PointerEvent<HTMLCanvasElement>>>;
289
+ draggedControl: Nullable<Control>;
290
+ draggedControlDirection: DragOverLocation;
291
+ onCopyObservable: Observable<(content: string) => void>;
292
+ onCutObservable: Observable<(content: string) => void>;
293
+ onPasteObservable: Observable<string>;
294
+ isSaving: boolean;
295
+ lockObject: LockObject;
184
296
  storeEditorData: (serializationObject: any) => void;
185
297
  customSave?: {
186
298
  label: string;
187
- action: (data: string) => Promise<void>;
299
+ action: (data: string) => Promise<string>;
300
+ };
301
+ customLoad?: {
302
+ label: string;
303
+ action: (data: string) => Promise<string>;
188
304
  };
189
305
  constructor();
190
- }
191
- }
192
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/lineContainerComponent" {
193
- import * as React from "react";
194
- interface ILineContainerComponentProps {
195
- title: string;
196
- children: any[] | any;
197
- closed?: boolean;
198
- }
199
- export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
200
- isExpanded: boolean;
201
- }> {
202
- constructor(props: ILineContainerComponentProps);
203
- switchExpandedState(): void;
204
- renderHeader(): JSX.Element;
205
- render(): JSX.Element;
206
- }
207
- }
208
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/draggableLineComponent" {
209
- import * as React from "react";
210
- export interface IButtonLineComponentProps {
211
- data: string;
212
- tooltip: string;
213
- }
214
- export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
215
- constructor(props: IButtonLineComponentProps);
216
- render(): JSX.Element;
217
- }
218
- }
219
- declare module "@babylonjs/gui-editor/components/guiList/guiListComponent" {
220
- import * as React from "react";
221
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
222
- interface IGuiListComponentProps {
223
- globalState: GlobalState;
224
- }
225
- export class GuiListComponent extends React.Component<IGuiListComponentProps, {
226
- filter: string;
227
- }> {
228
- private _onResetRequiredObserver;
229
- private static _Tooltips;
230
- constructor(props: IGuiListComponentProps);
231
- componentWillUnmount(): void;
232
- filterContent(filter: string): void;
233
- render(): JSX.Element;
306
+ /** adds copy, cut and paste listeners to the host window */
307
+ registerEventListeners(): void;
308
+ get backgroundColor(): Color3;
309
+ set backgroundColor(value: Color3);
310
+ get outlines(): boolean;
311
+ set outlines(value: boolean);
234
312
  }
235
313
  }
236
314
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/buttonLineComponent" {
@@ -238,6 +316,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/buttonLineCompone
238
316
  export interface IButtonLineComponentProps {
239
317
  label: string;
240
318
  onClick: () => void;
319
+ icon?: string;
320
+ iconLabel?: string;
241
321
  }
242
322
  export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
243
323
  constructor(props: IButtonLineComponentProps);
@@ -250,6 +330,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileButtonLineCom
250
330
  label: string;
251
331
  onClick: (file: File) => void;
252
332
  accept: string;
333
+ icon?: string;
334
+ iconLabel?: string;
253
335
  }
254
336
  export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
255
337
  private static _IDGenerator;
@@ -260,12 +342,26 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileButtonLineCom
260
342
  render(): JSX.Element;
261
343
  }
262
344
  }
345
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/targetsProxy" {
346
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
347
+ import { Observable } from "@babylonjs/core/Misc/observable";
348
+ export const conflictingValuesPlaceholder = "\u2014";
349
+ /**
350
+ *
351
+ * @param propertyName the property that the input changes
352
+ * @param targets a list of selected targets
353
+ * @param defaultValue the value that should be returned when two targets have conflicting values
354
+ * @param setter an optional setter function to override the default setter behavior
355
+ * @returns a proxy object that can be passed as a target into the input
356
+ */
357
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
358
+ }
263
359
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineComponent" {
264
360
  import * as React from "react";
265
361
  import { Observable } from "@babylonjs/core/Misc/observable";
266
362
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
267
363
  export interface ICheckBoxLineComponentProps {
268
- label: string;
364
+ label?: string;
269
365
  target?: any;
270
366
  propertyName?: string;
271
367
  isSelected?: () => boolean;
@@ -273,10 +369,15 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
273
369
  onValueChanged?: () => void;
274
370
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
275
371
  disabled?: boolean;
372
+ icon?: string;
373
+ iconLabel?: string;
374
+ faIcons?: {
375
+ };
276
376
  }
277
377
  export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
278
378
  isSelected: boolean;
279
379
  isDisabled?: boolean;
380
+ isConflict: boolean;
280
381
  }> {
281
382
  private static _UniqueIdSeed;
282
383
  private _uniqueId;
@@ -285,6 +386,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/checkBoxLineCompo
285
386
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
286
387
  isSelected: boolean;
287
388
  isDisabled: boolean;
389
+ isConflict: boolean;
288
390
  }): boolean;
289
391
  onChange(): void;
290
392
  render(): JSX.Element;
@@ -301,6 +403,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textLineComponent
301
403
  url?: string;
302
404
  ignoreValue?: boolean;
303
405
  additionalClass?: string;
406
+ icon?: string;
407
+ iconLabel?: string;
408
+ tooltip?: string;
304
409
  }
305
410
  export class TextLineComponent extends React.Component<ITextLineComponentProps> {
306
411
  constructor(props: ITextLineComponentProps);
@@ -320,17 +425,6 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/stringTools" {
320
425
  static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
321
426
  }
322
427
  }
323
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" {
324
- /**
325
- * Class used to provide lock mechanism
326
- */
327
- export class LockObject {
328
- /**
329
- * Gets or set if the lock is engaged
330
- */
331
- lock: boolean;
332
- }
333
- }
334
428
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponent" {
335
429
  import * as React from "react";
336
430
  import { Observable } from "@babylonjs/core/Misc/observable";
@@ -352,6 +446,12 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
352
446
  max?: number;
353
447
  smallUI?: boolean;
354
448
  onEnter?: (newValue: number) => void;
449
+ icon?: string;
450
+ iconLabel?: string;
451
+ defaultValue?: number;
452
+ unit?: string;
453
+ onUnitClicked?: () => void;
454
+ unitLocked?: boolean;
355
455
  }
356
456
  export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
357
457
  value: string;
@@ -360,6 +460,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/floatLineComponen
360
460
  private _store;
361
461
  constructor(props: IFloatLineComponentProps);
362
462
  componentWillUnmount(): void;
463
+ getValueString(value: any): string;
363
464
  shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
364
465
  value: string;
365
466
  }): boolean;
@@ -374,6 +475,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/sliderLineCompone
374
475
  import * as React from "react";
375
476
  import { Observable } from "@babylonjs/core/Misc/observable";
376
477
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
478
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
377
479
  interface ISliderLineComponentProps {
378
480
  label: string;
379
481
  target?: any;
@@ -388,6 +490,9 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/sliderLineCompone
388
490
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
389
491
  decimalCount?: number;
390
492
  margin?: boolean;
493
+ icon?: string;
494
+ iconLabel?: string;
495
+ lockObject?: LockObject;
391
496
  }
392
497
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
393
498
  value: number;
@@ -416,6 +521,14 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
416
521
  value?: string;
417
522
  onChange?: (value: string) => void;
418
523
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
524
+ icon?: string;
525
+ iconLabel?: string;
526
+ noUnderline?: boolean;
527
+ numbersOnly?: boolean;
528
+ delayInput?: boolean;
529
+ unit?: string;
530
+ onUnitClicked?: (unit: string) => void;
531
+ unitLocked?: boolean;
419
532
  }
420
533
  export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
421
534
  value: string;
@@ -431,258 +544,351 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/textInputLineComp
431
544
  render(): JSX.Element;
432
545
  }
433
546
  }
434
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/optionsLineComponent" {
547
+ declare module "@babylonjs/gui-editor/components/commandButtonComponent" {
435
548
  import * as React from "react";
436
- import { Observable } from "@babylonjs/core/Misc/observable";
437
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
438
- export const Null_Value: number;
439
- export class ListLineOption {
440
- label: string;
441
- value: number;
442
- selected?: boolean;
549
+ interface ICommandButtonComponentProps {
550
+ tooltip: string;
551
+ shortcut?: string;
552
+ icon: string;
553
+ iconLabel?: string;
554
+ isActive: boolean;
555
+ onClick: () => void;
556
+ altStyle?: boolean;
557
+ disabled?: boolean;
443
558
  }
444
- export interface IOptionsLineComponentProps {
445
- label: string;
446
- target: any;
447
- propertyName: string;
448
- options: ListLineOption[];
449
- noDirectUpdate?: boolean;
450
- onSelect?: (value: number) => void;
451
- extractValue?: () => number;
452
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
453
- allowNullValue?: boolean;
559
+ export class CommandButtonComponent extends React.Component<ICommandButtonComponentProps> {
560
+ constructor(props: ICommandButtonComponentProps);
561
+ render(): JSX.Element;
454
562
  }
455
- export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
563
+ }
564
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/numericInputComponent" {
565
+ import * as React from "react";
566
+ interface INumericInputComponentProps {
567
+ label: string;
456
568
  value: number;
569
+ step?: number;
570
+ onChange: (value: number) => void;
571
+ precision?: number;
572
+ icon?: string;
573
+ iconLabel?: string;
574
+ }
575
+ export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
576
+ value: string;
457
577
  }> {
578
+ static defaultProps: {
579
+ step: number;
580
+ };
458
581
  private _localChange;
459
- private remapValueIn;
460
- private remapValueOut;
461
- constructor(props: IOptionsLineComponentProps);
462
- shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
463
- value: number;
582
+ constructor(props: INumericInputComponentProps);
583
+ shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
584
+ value: string;
464
585
  }): boolean;
465
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
466
- updateValue(valueString: string): void;
586
+ updateValue(evt: any): void;
587
+ onBlur(): void;
467
588
  render(): JSX.Element;
468
589
  }
469
590
  }
470
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
591
+ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorComponentEntry" {
471
592
  import * as React from "react";
472
- import { Observable } from "@babylonjs/core/Misc/observable";
473
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
474
- import { Control } from "@babylonjs/gui/2D/controls/control";
475
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
476
- interface ICommonControlPropertyGridComponentProps {
477
- control: Control;
478
- lockObject: LockObject;
479
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
593
+ export interface IColorComponentEntryProps {
594
+ value: number;
595
+ label: string;
596
+ max?: number;
597
+ min?: number;
598
+ onChange: (value: number) => void;
480
599
  }
481
- export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
482
- constructor(props: ICommonControlPropertyGridComponentProps);
483
- renderGridInformation(): JSX.Element | null;
600
+ export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
601
+ constructor(props: IColorComponentEntryProps);
602
+ updateValue(valueString: string): void;
484
603
  render(): JSX.Element;
485
604
  }
486
605
  }
487
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
606
+ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/hexColor" {
488
607
  import * as React from "react";
489
- import { Observable } from "@babylonjs/core/Misc/observable";
490
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
491
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
492
- import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
493
- interface ISliderPropertyGridComponentProps {
494
- slider: Slider;
495
- lockObject: LockObject;
496
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
608
+ export interface IHexColorProps {
609
+ value: string;
610
+ expectedLength: number;
611
+ onChange: (value: string) => void;
497
612
  }
498
- export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
499
- constructor(props: ISliderPropertyGridComponentProps);
613
+ export class HexColor extends React.Component<IHexColorProps, {
614
+ hex: string;
615
+ }> {
616
+ constructor(props: IHexColorProps);
617
+ shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
618
+ hex: string;
619
+ }): boolean;
620
+ updateHexValue(valueString: string): void;
500
621
  render(): JSX.Element;
501
622
  }
502
623
  }
503
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/linePropertyGridComponent" {
624
+ declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker" {
504
625
  import * as React from "react";
505
- import { Observable } from "@babylonjs/core/Misc/observable";
506
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
507
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
508
- import { Line } from "@babylonjs/gui/2D/controls/line";
509
- interface ILinePropertyGridComponentProps {
510
- line: Line;
511
- lockObject: LockObject;
512
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
626
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
627
+ /**
628
+ * Interface used to specify creation options for color picker
629
+ */
630
+ export interface IColorPickerProps {
631
+ color: Color3 | Color4;
632
+ linearhint?: boolean;
633
+ debugMode?: boolean;
634
+ onColorChanged?: (color: Color3 | Color4) => void;
513
635
  }
514
- export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
515
- constructor(props: ILinePropertyGridComponentProps);
516
- onDashChange(value: string): void;
517
- render(): JSX.Element;
636
+ /**
637
+ * Interface used to specify creation options for color picker
638
+ */
639
+ export interface IColorPickerState {
640
+ color: Color3;
641
+ alpha: number;
518
642
  }
519
- }
520
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
643
+ /**
644
+ * Class used to create a color picker
645
+ */
646
+ export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
647
+ private _saturationRef;
648
+ private _hueRef;
649
+ private _isSaturationPointerDown;
650
+ private _isHuePointerDown;
651
+ constructor(props: IColorPickerProps);
652
+ shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
653
+ onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
654
+ onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
655
+ onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
656
+ onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
657
+ onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
658
+ onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
659
+ private _evaluateSaturation;
660
+ private _evaluateHue;
661
+ componentDidUpdate(): void;
662
+ raiseOnColorChanged(): void;
663
+ render(): JSX.Element;
664
+ }
665
+ }
666
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerComponent" {
667
+ import * as React from "react";
668
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
669
+ export interface IColorPickerComponentProps {
670
+ value: Color4 | Color3;
671
+ linearHint?: boolean;
672
+ onColorChanged: (newOne: string) => void;
673
+ icon?: string;
674
+ iconLabel?: string;
675
+ shouldPopRight?: boolean;
676
+ }
677
+ interface IColorPickerComponentState {
678
+ pickerEnabled: boolean;
679
+ color: Color3 | Color4;
680
+ hex: string;
681
+ }
682
+ export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
683
+ private _floatRef;
684
+ private _floatHostRef;
685
+ constructor(props: IColorPickerComponentProps);
686
+ syncPositions(): void;
687
+ shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
688
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
689
+ children?: React.ReactNode;
690
+ }>): string;
691
+ componentDidUpdate(): void;
692
+ componentDidMount(): void;
693
+ render(): JSX.Element;
694
+ }
695
+ }
696
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorLineComponent" {
521
697
  import * as React from "react";
522
698
  import { Observable } from "@babylonjs/core/Misc/observable";
699
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
523
700
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
524
701
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
525
- import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
526
- interface IRadioButtonPropertyGridComponentProps {
527
- radioButton: RadioButton;
702
+ export interface IColorLineComponentProps {
703
+ label: string;
704
+ target?: any;
705
+ propertyName: string;
706
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
707
+ onChange?: () => void;
708
+ isLinear?: boolean;
709
+ icon?: string;
710
+ iconLabel?: string;
711
+ lockObject?: LockObject;
712
+ disableAlpha?: boolean;
713
+ }
714
+ interface IColorLineComponentState {
715
+ isExpanded: boolean;
716
+ color: Color4;
717
+ colorString: string;
718
+ }
719
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
720
+ constructor(props: IColorLineComponentProps);
721
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
722
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
723
+ children?: React.ReactNode;
724
+ }>): Color4;
725
+ getValueAsString(props?: Readonly<IColorLineComponentProps> & Readonly<{
726
+ children?: React.ReactNode;
727
+ }>): string;
728
+ setColorFromString(colorString: string): void;
729
+ setColor(color: Color4): void;
730
+ updateColor(newColor: Color4): void;
731
+ switchExpandState(): void;
732
+ updateStateR(value: number): void;
733
+ updateStateG(value: number): void;
734
+ updateStateB(value: number): void;
735
+ updateStateA(value: number): void;
736
+ copyToClipboard(): void;
737
+ get colorString(): string;
738
+ set colorString(_: string);
739
+ private convertToColor;
740
+ private toColor3;
741
+ render(): JSX.Element;
742
+ }
743
+ }
744
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/commonControlPropertyGridComponent" {
745
+ import * as React from "react";
746
+ import { Observable } from "@babylonjs/core/Misc/observable";
747
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
748
+ import { Control } from "@babylonjs/gui/2D/controls/control";
749
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
750
+ interface ICommonControlPropertyGridComponentProps {
751
+ controls: Control[];
528
752
  lockObject: LockObject;
529
753
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
530
754
  }
531
- export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
532
- constructor(props: IRadioButtonPropertyGridComponentProps);
755
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
756
+ constructor(props: ICommonControlPropertyGridComponentProps);
757
+ private _updateAlignment;
758
+ private _checkAndUpdateValues;
759
+ private _markChildrenAsDirty;
533
760
  render(): JSX.Element;
534
761
  }
535
762
  }
536
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
763
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderPropertyGridComponent" {
537
764
  import * as React from "react";
538
765
  import { Observable } from "@babylonjs/core/Misc/observable";
539
766
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
540
- import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
541
767
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
542
- interface ITextBlockPropertyGridComponentProps {
543
- textBlock: TextBlock;
768
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
769
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
770
+ interface ISliderPropertyGridComponentProps {
771
+ sliders: (Slider | ImageBasedSlider)[];
544
772
  lockObject: LockObject;
545
773
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
546
774
  }
547
- export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
548
- constructor(props: ITextBlockPropertyGridComponentProps);
775
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
776
+ constructor(props: ISliderPropertyGridComponentProps);
549
777
  render(): JSX.Element;
550
778
  }
551
779
  }
552
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
780
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/sliderGenericPropertyGridComponent" {
553
781
  import * as React from "react";
554
782
  import { Observable } from "@babylonjs/core/Misc/observable";
555
783
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
556
- import { InputText } from "@babylonjs/gui/2D/controls/inputText";
557
784
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
558
- interface IInputTextPropertyGridComponentProps {
559
- inputText: InputText;
785
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
786
+ interface ISliderGenericPropertyGridComponentProps {
787
+ sliders: Slider[];
560
788
  lockObject: LockObject;
561
789
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
562
790
  }
563
- export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
564
- constructor(props: IInputTextPropertyGridComponentProps);
791
+ export class SliderGenericPropertyGridComponent extends React.Component<ISliderGenericPropertyGridComponentProps> {
792
+ constructor(props: ISliderGenericPropertyGridComponentProps);
565
793
  render(): JSX.Element;
566
794
  }
567
795
  }
568
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/numericInputComponent" {
796
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/linePropertyGridComponent" {
569
797
  import * as React from "react";
570
- interface INumericInputComponentProps {
571
- label: string;
572
- value: number;
573
- step?: number;
574
- onChange: (value: number) => void;
575
- precision?: number;
798
+ import { Observable } from "@babylonjs/core/Misc/observable";
799
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
800
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
801
+ import { Line } from "@babylonjs/gui/2D/controls/line";
802
+ interface ILinePropertyGridComponentProps {
803
+ lines: Line[];
804
+ lockObject: LockObject;
805
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
576
806
  }
577
- export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
578
- value: string;
579
- }> {
580
- static defaultProps: {
581
- step: number;
582
- };
583
- private _localChange;
584
- constructor(props: INumericInputComponentProps);
585
- shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
586
- value: string;
587
- }): boolean;
588
- updateValue(evt: any): void;
589
- onBlur(): void;
807
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
808
+ constructor(props: ILinePropertyGridComponentProps);
809
+ onDashChange(value: string): void;
590
810
  render(): JSX.Element;
591
811
  }
592
812
  }
593
- declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorComponentEntry" {
813
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/radioButtonPropertyGridComponent" {
594
814
  import * as React from "react";
595
- export interface IColorComponentEntryProps {
596
- value: number;
597
- label: string;
598
- max?: number;
599
- min?: number;
600
- onChange: (value: number) => void;
815
+ import { Observable } from "@babylonjs/core/Misc/observable";
816
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
817
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
818
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
819
+ interface IRadioButtonPropertyGridComponentProps {
820
+ radioButtons: RadioButton[];
821
+ lockObject: LockObject;
822
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
601
823
  }
602
- export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
603
- constructor(props: IColorComponentEntryProps);
604
- updateValue(valueString: string): void;
824
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
825
+ constructor(props: IRadioButtonPropertyGridComponentProps);
605
826
  render(): JSX.Element;
606
827
  }
607
828
  }
608
- declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/hexColor" {
829
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/optionsLineComponent" {
609
830
  import * as React from "react";
610
- export interface IHexColorProps {
611
- value: string;
612
- expectedLength: number;
613
- onChange: (value: string) => void;
831
+ import { Observable } from "@babylonjs/core/Misc/observable";
832
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
833
+ import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
834
+ export const Null_Value: number;
835
+ export interface IOptionsLineComponentProps {
836
+ label: string;
837
+ target: any;
838
+ propertyName: string;
839
+ options: IInspectableOptions[];
840
+ noDirectUpdate?: boolean;
841
+ onSelect?: (value: number) => void;
842
+ extractValue?: () => number;
843
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
844
+ allowNullValue?: boolean;
845
+ icon?: string;
846
+ iconLabel?: string;
614
847
  }
615
- export class HexColor extends React.Component<IHexColorProps, {
616
- hex: string;
848
+ export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
849
+ value: number;
617
850
  }> {
618
- constructor(props: IHexColorProps);
619
- shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
620
- hex: string;
851
+ private _localChange;
852
+ private remapValueIn;
853
+ private remapValueOut;
854
+ constructor(props: IOptionsLineComponentProps);
855
+ shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
856
+ value: number;
621
857
  }): boolean;
622
- updateHexValue(valueString: string): void;
858
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
859
+ updateValue(valueString: string): void;
623
860
  render(): JSX.Element;
624
861
  }
625
862
  }
626
- declare module "@babylonjs/gui-editor/sharedUiComponents/colorPicker/colorPicker" {
863
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/textBlockPropertyGridComponent" {
627
864
  import * as React from "react";
628
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
629
- /**
630
- * Interface used to specify creation options for color picker
631
- */
632
- export interface IColorPickerProps {
633
- color: Color3 | Color4;
634
- debugMode?: boolean;
635
- onColorChanged?: (color: Color3 | Color4) => void;
636
- }
637
- /**
638
- * Interface used to specify creation options for color picker
639
- */
640
- export interface IColorPickerState {
641
- color: Color3;
642
- alpha: number;
865
+ import { Observable } from "@babylonjs/core/Misc/observable";
866
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
867
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
868
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
869
+ interface ITextBlockPropertyGridComponentProps {
870
+ textBlocks: TextBlock[];
871
+ lockObject: LockObject;
872
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
643
873
  }
644
- /**
645
- * Class used to create a color picker
646
- */
647
- export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
648
- private _saturationRef;
649
- private _hueRef;
650
- private _isSaturationPointerDown;
651
- private _isHuePointerDown;
652
- constructor(props: IColorPickerProps);
653
- onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
654
- onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
655
- onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
656
- onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
657
- onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
658
- onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
659
- private _evaluateSaturation;
660
- private _evaluateHue;
661
- componentDidUpdate(): void;
662
- raiseOnColorChanged(): void;
874
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
875
+ constructor(props: ITextBlockPropertyGridComponentProps);
663
876
  render(): JSX.Element;
664
877
  }
665
878
  }
666
- declare module "@babylonjs/gui-editor/sharedUiComponents/lines/colorPickerComponent" {
879
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/inputTextPropertyGridComponent" {
667
880
  import * as React from "react";
668
- import { Color4, Color3 } from '@babylonjs/core/Maths/math.color';
669
- export interface IColorPickerComponentProps {
670
- value: Color4 | Color3;
671
- onColorChanged: (newOne: string) => void;
672
- }
673
- interface IColorPickerComponentState {
674
- pickerEnabled: boolean;
675
- color: Color3 | Color4;
676
- hex: string;
881
+ import { Observable } from "@babylonjs/core/Misc/observable";
882
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
883
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
884
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
885
+ interface IInputTextPropertyGridComponentProps {
886
+ inputTexts: InputText[];
887
+ lockObject: LockObject;
888
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
677
889
  }
678
- export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
679
- private _floatRef;
680
- private _floatHostRef;
681
- constructor(props: IColorPickerComponentProps);
682
- syncPositions(): void;
683
- shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
684
- componentDidUpdate(): void;
685
- componentDidMount(): void;
890
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
891
+ constructor(props: IInputTextPropertyGridComponentProps);
686
892
  render(): JSX.Element;
687
893
  }
688
894
  }
@@ -690,42 +896,30 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color3LineCompone
690
896
  import * as React from "react";
691
897
  import { Observable } from "@babylonjs/core/Misc/observable";
692
898
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
693
- import { Color3 } from '@babylonjs/core/Maths/math.color';
899
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
694
900
  export interface IColor3LineComponentProps {
695
901
  label: string;
696
902
  target: any;
697
903
  propertyName: string;
698
904
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
699
905
  isLinear?: boolean;
906
+ icon?: string;
907
+ lockObject?: LockObject;
908
+ iconLabel?: string;
909
+ onValueChange?: (value: string) => void;
700
910
  }
701
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, {
702
- isExpanded: boolean;
703
- color: Color3;
704
- }> {
705
- private _localChange;
706
- constructor(props: IColor3LineComponentProps);
707
- shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: {
708
- color: Color3;
709
- }): boolean;
710
- setPropertyValue(newColor: Color3): void;
711
- onChange(newValue: string): void;
712
- switchExpandState(): void;
713
- raiseOnPropertyChanged(previousValue: Color3): void;
714
- updateStateR(value: number): void;
715
- updateStateG(value: number): void;
716
- updateStateB(value: number): void;
717
- copyToClipboard(): void;
911
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
718
912
  render(): JSX.Element;
719
913
  }
720
914
  }
721
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
915
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/colorPickerPropertyGridComponent" {
722
916
  import * as React from "react";
723
917
  import { Observable } from "@babylonjs/core/Misc/observable";
724
918
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
725
919
  import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
726
920
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
727
921
  interface IColorPickerPropertyGridComponentProps {
728
- colorPicker: ColorPicker;
922
+ colorPickers: ColorPicker[];
729
923
  lockObject: LockObject;
730
924
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
731
925
  }
@@ -734,30 +928,33 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
734
928
  render(): JSX.Element;
735
929
  }
736
930
  }
737
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imagePropertyGridComponent" {
931
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/imagePropertyGridComponent" {
738
932
  import * as React from "react";
739
933
  import { Observable } from "@babylonjs/core/Misc/observable";
740
934
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
741
935
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
742
936
  import { Image } from "@babylonjs/gui/2D/controls/image";
743
937
  interface IImagePropertyGridComponentProps {
744
- image: Image;
938
+ images: Image[];
745
939
  lockObject: LockObject;
746
940
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
747
941
  }
748
942
  export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
749
943
  constructor(props: IImagePropertyGridComponentProps);
944
+ toggleAnimations(on: boolean): void;
945
+ getMaxCells(): number;
946
+ updateCellSize(): void;
750
947
  render(): JSX.Element;
751
948
  }
752
949
  }
753
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
950
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
754
951
  import * as React from "react";
755
952
  import { Observable } from "@babylonjs/core/Misc/observable";
756
953
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
757
954
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
758
955
  import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
759
956
  interface IImageBasedSliderPropertyGridComponentProps {
760
- imageBasedSlider: ImageBasedSlider;
957
+ imageBasedSliders: ImageBasedSlider[];
761
958
  lockObject: LockObject;
762
959
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
763
960
  }
@@ -766,14 +963,14 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
766
963
  render(): JSX.Element;
767
964
  }
768
965
  }
769
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
966
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/rectanglePropertyGridComponent" {
770
967
  import * as React from "react";
771
968
  import { Observable } from "@babylonjs/core/Misc/observable";
772
969
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
773
970
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
774
971
  import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
775
972
  interface IRectanglePropertyGridComponentProps {
776
- rectangle: Rectangle;
973
+ rectangles: Rectangle[];
777
974
  lockObject: LockObject;
778
975
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
779
976
  }
@@ -782,14 +979,14 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
782
979
  render(): JSX.Element;
783
980
  }
784
981
  }
785
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
982
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/stackPanelPropertyGridComponent" {
786
983
  import * as React from "react";
787
984
  import { Observable } from "@babylonjs/core/Misc/observable";
788
985
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
789
986
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
790
987
  import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
791
988
  interface IStackPanelPropertyGridComponentProps {
792
- stackPanel: StackPanel;
989
+ stackPanels: StackPanel[];
793
990
  lockObject: LockObject;
794
991
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
795
992
  }
@@ -798,32 +995,50 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
798
995
  render(): JSX.Element;
799
996
  }
800
997
  }
801
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/gridPropertyGridComponent" {
998
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/gridPropertyGridComponent" {
802
999
  import * as React from "react";
803
1000
  import { Observable } from "@babylonjs/core/Misc/observable";
804
1001
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
805
1002
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
806
1003
  import { Grid } from "@babylonjs/gui/2D/controls/grid";
807
1004
  interface IGridPropertyGridComponentProps {
808
- grid: Grid;
1005
+ grids: Grid[];
809
1006
  lockObject: LockObject;
810
1007
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
811
1008
  }
812
1009
  export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
813
1010
  constructor(props: IGridPropertyGridComponentProps);
1011
+ private _removingColumn;
1012
+ private _removingRow;
1013
+ private _previousGrid;
1014
+ private _rowDefinitions;
1015
+ private _rowEditFlags;
1016
+ private _columnEditFlags;
1017
+ private _columnDefinitions;
1018
+ private _editedRow;
1019
+ private _editedColumn;
1020
+ private _rowChild;
1021
+ private _columnChild;
814
1022
  renderRows(): JSX.Element[];
1023
+ setRowValues(): void;
1024
+ setColumnValues(): void;
815
1025
  renderColumns(): JSX.Element[];
1026
+ resizeRow(): void;
1027
+ resizeColumn(): void;
1028
+ checkValue(value: string, percent: boolean): string;
1029
+ checkPercentage(value: string): boolean;
1030
+ resetValues(): void;
816
1031
  render(): JSX.Element;
817
1032
  }
818
1033
  }
819
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
1034
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/scrollViewerPropertyGridComponent" {
820
1035
  import * as React from "react";
821
1036
  import { Observable } from "@babylonjs/core/Misc/observable";
822
1037
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
823
1038
  import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
824
1039
  import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
825
1040
  interface IScrollViewerPropertyGridComponentProps {
826
- scrollViewer: ScrollViewer;
1041
+ scrollViewers: ScrollViewer[];
827
1042
  lockObject: LockObject;
828
1043
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
829
1044
  }
@@ -832,156 +1047,516 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/
832
1047
  render(): JSX.Element;
833
1048
  }
834
1049
  }
835
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
1050
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/ellipsePropertyGridComponent" {
1051
+ import * as React from "react";
1052
+ import { Observable } from "@babylonjs/core/Misc/observable";
1053
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1054
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1055
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1056
+ interface IEllipsePropertyGridComponentProps {
1057
+ ellipses: Ellipse[];
1058
+ lockObject: LockObject;
1059
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1060
+ }
1061
+ export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
1062
+ constructor(props: IEllipsePropertyGridComponentProps);
1063
+ render(): JSX.Element;
1064
+ }
1065
+ }
1066
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/checkboxPropertyGridComponent" {
1067
+ import * as React from "react";
1068
+ import { Observable } from "@babylonjs/core/Misc/observable";
1069
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1070
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1071
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1072
+ interface ICheckboxPropertyGridComponentProps {
1073
+ checkboxes: Checkbox[];
1074
+ lockObject: LockObject;
1075
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1076
+ }
1077
+ export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
1078
+ constructor(props: ICheckboxPropertyGridComponentProps);
1079
+ render(): JSX.Element;
1080
+ }
1081
+ }
1082
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/controlPropertyGridComponent" {
1083
+ import * as React from "react";
1084
+ import { Observable } from "@babylonjs/core/Misc/observable";
1085
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1086
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1087
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1088
+ interface IControlPropertyGridComponentProps {
1089
+ controls: Control[];
1090
+ lockObject: LockObject;
1091
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1092
+ }
1093
+ export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
1094
+ constructor(props: IControlPropertyGridComponentProps);
1095
+ render(): JSX.Element;
1096
+ }
1097
+ }
1098
+ declare module "@babylonjs/gui-editor/components/parentingPropertyGridComponent" {
1099
+ import * as React from "react";
1100
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1101
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1102
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1103
+ import { Observable } from "@babylonjs/core/Misc/observable";
1104
+ interface IParentingPropertyGridComponentProps {
1105
+ control: Control;
1106
+ lockObject: LockObject;
1107
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1108
+ }
1109
+ export class ParentingPropertyGridComponent extends React.Component<IParentingPropertyGridComponentProps> {
1110
+ constructor(props: IParentingPropertyGridComponentProps);
1111
+ private _columnNumber;
1112
+ private _rowNumber;
1113
+ updateGridPosition(): void;
1114
+ getCellInfo(): void;
1115
+ private _changeCell;
1116
+ render(): JSX.Element;
1117
+ }
1118
+ }
1119
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/displayGridPropertyGridComponent" {
1120
+ import * as React from "react";
1121
+ import { Observable } from "@babylonjs/core/Misc/observable";
1122
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1123
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1124
+ import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1125
+ interface IDisplayGridPropertyGridComponentProps {
1126
+ displayGrids: DisplayGrid[];
1127
+ lockObject: LockObject;
1128
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1129
+ }
1130
+ export class DisplayGridPropertyGridComponent extends React.Component<IDisplayGridPropertyGridComponentProps> {
1131
+ constructor(props: IDisplayGridPropertyGridComponentProps);
1132
+ render(): JSX.Element;
1133
+ }
1134
+ }
1135
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyGrids/gui/buttonPropertyGridComponent" {
1136
+ import * as React from "react";
1137
+ import { Observable } from "@babylonjs/core/Misc/observable";
1138
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1139
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1140
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1141
+ interface IButtonPropertyGridComponentProps {
1142
+ rectangles: Rectangle[];
1143
+ lockObject: LockObject;
1144
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1145
+ onAddComponent: (newComponent: string) => void;
1146
+ }
1147
+ export class ButtonPropertyGridComponent extends React.Component<IButtonPropertyGridComponentProps> {
1148
+ constructor(props: IButtonPropertyGridComponentProps);
1149
+ render(): JSX.Element;
1150
+ }
1151
+ }
1152
+ declare module "@babylonjs/gui-editor/guiNodeTools" {
1153
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1154
+ import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1155
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1156
+ import { Line } from "@babylonjs/gui/2D/controls/line";
1157
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1158
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1159
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1160
+ import { Image } from "@babylonjs/gui/2D/controls/image";
1161
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1162
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
1163
+ import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
1164
+ import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1165
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1166
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1167
+ export class GUINodeTools {
1168
+ static ImageControlDefaultUrl: string;
1169
+ static CreateControlFromString(data: string): Grid | Rectangle | Line | TextBlock | Image | Slider | ImageBasedSlider | RadioButton | InputText | ColorPicker | StackPanel | Ellipse | Checkbox | DisplayGrid;
1170
+ }
1171
+ }
1172
+ declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponent" {
1173
+ import * as React from "react";
1174
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1175
+ import { Nullable } from "@babylonjs/core/types";
1176
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1177
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
1178
+ interface IPropertyTabComponentProps {
1179
+ globalState: GlobalState;
1180
+ }
1181
+ interface IPropertyTabComponentState {
1182
+ currentNode: Nullable<Control>;
1183
+ }
1184
+ export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
1185
+ private _onBuiltObserver;
1186
+ private _timerIntervalId;
1187
+ private _lockObject;
1188
+ private _sizeOption;
1189
+ constructor(props: IPropertyTabComponentProps);
1190
+ componentDidMount(): void;
1191
+ componentWillUnmount(): void;
1192
+ load(file: File): void;
1193
+ save(saveCallback: () => void): void;
1194
+ saveLocally: () => void;
1195
+ saveToSnippetServerHelper: (content: string, adt: AdvancedDynamicTexture) => Promise<string>;
1196
+ saveToSnippetServer: () => Promise<void>;
1197
+ loadFromSnippet(): void;
1198
+ renderNode(nodes: Control[]): JSX.Element;
1199
+ /**
1200
+ * returns the class name of a list of controls if they share a class, or an empty string if not
1201
+ */
1202
+ getControlsCommonClassName(nodes: Control[]): string;
1203
+ renderProperties(nodes: Control[]): JSX.Element | undefined;
1204
+ renderControlIcon(nodes: Control[]): string;
1205
+ render(): JSX.Element | null;
1206
+ }
1207
+ }
1208
+ declare module "@babylonjs/gui-editor/portal" {
1209
+ import * as React from "react";
1210
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1211
+ interface IPortalProps {
1212
+ globalState: GlobalState;
1213
+ }
1214
+ export class Portal extends React.Component<IPortalProps> {
1215
+ render(): React.ReactPortal;
1216
+ }
1217
+ }
1218
+ declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
1219
+ import * as React from "react";
1220
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1221
+ interface IMessageDialogComponentProps {
1222
+ globalState: GlobalState;
1223
+ }
1224
+ export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
1225
+ message: string;
1226
+ isError: boolean;
1227
+ }> {
1228
+ constructor(props: IMessageDialogComponentProps);
1229
+ render(): JSX.Element | null;
1230
+ }
1231
+ }
1232
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemLabelComponent" {
1233
+ import * as React from "react";
1234
+ interface ITreeItemLabelComponentProps {
1235
+ label?: string;
1236
+ onClick?: () => void;
1237
+ onChange: (newValue: string) => void;
1238
+ bracket: string;
1239
+ renaming: boolean;
1240
+ setRenaming: (renaming: boolean) => void;
1241
+ }
1242
+ interface ITreeItemLabelState {
1243
+ value: string;
1244
+ }
1245
+ export class TreeItemLabelComponent extends React.Component<ITreeItemLabelComponentProps, ITreeItemLabelState> {
1246
+ constructor(props: ITreeItemLabelComponentProps);
1247
+ onClick(): void;
1248
+ onBlur(): void;
1249
+ render(): JSX.Element;
1250
+ }
1251
+ }
1252
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/extensionsComponent" {
1253
+ import * as React from "react";
1254
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1255
+ interface IExtensionsComponentProps {
1256
+ target: any;
1257
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1258
+ }
1259
+ export class ExtensionsComponent extends React.Component<IExtensionsComponentProps, {
1260
+ popupVisible: boolean;
1261
+ }> {
1262
+ private _popup;
1263
+ private extensionRef;
1264
+ constructor(props: IExtensionsComponentProps);
1265
+ showPopup(): void;
1266
+ componentDidMount(): void;
1267
+ componentDidUpdate(): void;
1268
+ render(): JSX.Element | null;
1269
+ }
1270
+ }
1271
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/entities/gui/controlTreeItemComponent" {
1272
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1273
+ import { Control } from "@babylonjs/gui/2D/controls/control";
836
1274
  import * as React from "react";
837
- import { Observable } from "@babylonjs/core/Misc/observable";
838
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
839
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
840
- import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
841
- interface IEllipsePropertyGridComponentProps {
842
- ellipse: Ellipse;
843
- lockObject: LockObject;
844
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
845
- }
846
- export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
847
- constructor(props: IEllipsePropertyGridComponentProps);
1275
+ import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1276
+ interface IControlTreeItemComponentProps {
1277
+ control: Control;
1278
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1279
+ onClick: () => void;
1280
+ globalState: GlobalState;
1281
+ isHovered: boolean;
1282
+ isDragOver: boolean;
1283
+ dragOverLocation: DragOverLocation;
1284
+ }
1285
+ export class ControlTreeItemComponent extends React.Component<IControlTreeItemComponentProps, {
1286
+ isActive: boolean;
1287
+ isVisible: boolean;
1288
+ isRenaming: boolean;
1289
+ }> {
1290
+ constructor(props: IControlTreeItemComponentProps);
1291
+ highlight(): void;
1292
+ switchVisibility(): void;
1293
+ onRename(name: string): void;
848
1294
  render(): JSX.Element;
849
1295
  }
850
1296
  }
851
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
1297
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemSelectableComponent" {
1298
+ import { Nullable } from "@babylonjs/core/types";
1299
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
852
1300
  import * as React from "react";
853
- import { Observable } from "@babylonjs/core/Misc/observable";
854
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
855
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
856
- import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
857
- interface ICheckboxPropertyGridComponentProps {
858
- checkbox: Checkbox;
859
- lockObject: LockObject;
860
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1301
+ import { DragOverLocation, GlobalState } from "@babylonjs/gui-editor/globalState";
1302
+ export interface ITreeItemSelectableComponentProps {
1303
+ entity: any;
1304
+ selectedEntities: any[];
1305
+ mustExpand?: boolean;
1306
+ offset: number;
1307
+ globalState: GlobalState;
1308
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1309
+ filter: Nullable<string>;
861
1310
  }
862
- export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
863
- constructor(props: ICheckboxPropertyGridComponentProps);
864
- render(): JSX.Element;
1311
+ export interface ITreeItemSelectableComponentState {
1312
+ dragOver: boolean;
1313
+ isSelected: boolean;
1314
+ isHovered: boolean;
1315
+ dragOverLocation: DragOverLocation;
1316
+ }
1317
+ export class TreeItemSelectableComponent extends React.Component<ITreeItemSelectableComponentProps, ITreeItemSelectableComponentState> {
1318
+ private _onSelectionChangedObservable;
1319
+ private _onDraggingEndObservable;
1320
+ private _onDraggingStartObservable;
1321
+ /** flag flipped onDragEnter if dragOver is already true
1322
+ * prevents dragLeave from immediately setting dragOver to false
1323
+ * required to make dragging work as expected
1324
+ * see: see: https://github.com/transformation-dev/matrx/tree/master/packages/dragster
1325
+ */
1326
+ private _secondDragEnter;
1327
+ constructor(props: ITreeItemSelectableComponentProps);
1328
+ switchExpandedState(): void;
1329
+ shouldComponentUpdate(nextProps: ITreeItemSelectableComponentProps, nextState: {
1330
+ isSelected: boolean;
1331
+ }): boolean;
1332
+ scrollIntoView(): void;
1333
+ componentWillUnmount(): void;
1334
+ onSelect(): void;
1335
+ renderChildren(isExpanded: boolean, offset?: boolean): (JSX.Element | null)[] | null;
1336
+ render(): JSX.Element | (JSX.Element | null)[] | null;
1337
+ dragOver(event: React.DragEvent<HTMLDivElement>): void;
1338
+ updateDragOverLocation(event: React.DragEvent<HTMLDivElement>): void;
1339
+ drop(): void;
865
1340
  }
866
1341
  }
867
- declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/controlPropertyGridComponent" {
1342
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/treeItemComponent" {
868
1343
  import * as React from "react";
869
- import { Observable } from "@babylonjs/core/Misc/observable";
870
- import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
871
- import { Control } from "@babylonjs/gui/2D/controls/control";
872
- import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
873
- interface IControlPropertyGridComponentProps {
874
- control: Control;
875
- lockObject: LockObject;
876
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1344
+ import { Nullable } from "@babylonjs/core/types";
1345
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1346
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1347
+ export interface ITreeItemComponentProps {
1348
+ items?: Nullable<any[]>;
1349
+ label: string;
1350
+ offset: number;
1351
+ filter: Nullable<string>;
1352
+ forceSubitems?: boolean;
1353
+ globalState: GlobalState;
1354
+ entity?: any;
1355
+ selectedEntities: any[];
1356
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1357
+ contextMenuItems?: {
1358
+ label: string;
1359
+ action: () => void;
1360
+ }[];
877
1361
  }
878
- export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
879
- constructor(props: IControlPropertyGridComponentProps);
1362
+ export class TreeItemComponent extends React.Component<ITreeItemComponentProps, {
1363
+ isExpanded: boolean;
1364
+ mustExpand: boolean;
1365
+ }> {
1366
+ static _ContextMenuUniqueIdGenerator: number;
1367
+ constructor(props: ITreeItemComponentProps);
1368
+ switchExpandedState(): void;
1369
+ shouldComponentUpdate(nextProps: ITreeItemComponentProps, nextState: {
1370
+ isExpanded: boolean;
1371
+ }): boolean;
1372
+ expandAll(expand: boolean): void;
1373
+ renderContextMenu(): JSX.Element | null;
880
1374
  render(): JSX.Element;
881
1375
  }
882
1376
  }
883
- declare module "@babylonjs/gui-editor/components/propertyTab/propertyTabComponent" {
1377
+ declare module "@babylonjs/gui-editor/components/sceneExplorer/sceneExplorerComponent" {
884
1378
  import * as React from "react";
885
- import { GlobalState } from "@babylonjs/gui-editor/globalState";
886
1379
  import { Nullable } from "@babylonjs/core/types";
887
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
888
- interface IPropertyTabComponentProps {
889
- globalState: GlobalState;
1380
+ import { IExplorerExtensibilityGroup } from "@babylonjs/core/Debug/debugLayer";
1381
+ import { Scene } from "@babylonjs/core/scene";
1382
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1383
+ interface ISceneExplorerFilterComponentProps {
1384
+ onFilter: (filter: string) => void;
890
1385
  }
891
- interface IPropertyTabComponentState {
892
- currentNode: Nullable<GUINode>;
1386
+ export class SceneExplorerFilterComponent extends React.Component<ISceneExplorerFilterComponentProps> {
1387
+ constructor(props: ISceneExplorerFilterComponentProps);
1388
+ render(): JSX.Element;
893
1389
  }
894
- export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
895
- private _onBuiltObserver;
896
- private _timerIntervalId;
897
- private _lockObject;
898
- constructor(props: IPropertyTabComponentProps);
899
- timerRefresh(): void;
1390
+ interface ISceneExplorerComponentProps {
1391
+ scene?: Scene;
1392
+ noCommands?: boolean;
1393
+ noHeader?: boolean;
1394
+ noExpand?: boolean;
1395
+ noClose?: boolean;
1396
+ extensibilityGroups?: IExplorerExtensibilityGroup[];
1397
+ globalState: GlobalState;
1398
+ popupMode?: boolean;
1399
+ onPopup?: () => void;
1400
+ onClose?: () => void;
1401
+ }
1402
+ export class SceneExplorerComponent extends React.Component<ISceneExplorerComponentProps, {
1403
+ filter: Nullable<string>;
1404
+ selectedEntity: any;
1405
+ scene: Nullable<Scene>;
1406
+ }> {
1407
+ private _onSelectionChangeObserver;
1408
+ private _onParrentingChangeObserver;
1409
+ private _onNewSceneObserver;
1410
+ private _onPropertyChangedObservable;
1411
+ constructor(props: ISceneExplorerComponentProps);
900
1412
  componentDidMount(): void;
901
1413
  componentWillUnmount(): void;
902
- load(file: File): void;
903
- save(): void;
904
- saveToSnippetServer(): void;
905
- loadFromSnippet(): void;
906
- renderProperties(): JSX.Element | null;
1414
+ filterContent(filter: string): void;
1415
+ findSiblings(parent: any, items: any[], target: any, goNext: boolean, data: {
1416
+ previousOne?: any;
1417
+ found?: boolean;
1418
+ }): boolean;
1419
+ processKeys(keyEvent: React.KeyboardEvent<HTMLDivElement>): void;
1420
+ renderContent(): JSX.Element | null;
1421
+ onClose(): void;
1422
+ onPopup(): void;
907
1423
  render(): JSX.Element;
908
1424
  }
909
1425
  }
910
- declare module "@babylonjs/gui-editor/portal" {
1426
+ declare module "@babylonjs/gui-editor/components/commandDropdownComponent" {
911
1427
  import * as React from "react";
912
1428
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
913
- interface IPortalProps {
1429
+ interface ICommandDropdownComponentProps {
914
1430
  globalState: GlobalState;
915
- }
916
- export class Portal extends React.Component<IPortalProps> {
917
- render(): React.ReactPortal;
1431
+ icon?: string;
1432
+ tooltip: string;
1433
+ defaultValue?: string;
1434
+ items: {
1435
+ label: string;
1436
+ icon?: string;
1437
+ fileButton?: boolean;
1438
+ onClick?: () => void;
1439
+ onCheck?: (value: boolean) => void;
1440
+ storeKey?: string;
1441
+ isActive?: boolean;
1442
+ defaultValue?: boolean | string;
1443
+ subItems?: string[];
1444
+ }[];
1445
+ toRight?: boolean;
1446
+ }
1447
+ export class CommandDropdownComponent extends React.Component<ICommandDropdownComponentProps, {
1448
+ isExpanded: boolean;
1449
+ activeState: string;
1450
+ }> {
1451
+ constructor(props: ICommandDropdownComponentProps);
1452
+ render(): JSX.Element;
918
1453
  }
919
1454
  }
920
- declare module "@babylonjs/gui-editor/guiNodeTools" {
921
- import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
922
- import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
923
- import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
924
- import { Line } from "@babylonjs/gui/2D/controls/line";
925
- import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
926
- import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
927
- import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
928
- import { VirtualKeyboard } from "@babylonjs/gui/2D/controls/virtualKeyboard";
929
- import { Image } from "@babylonjs/gui/2D/controls/image";
930
- import { InputText } from "@babylonjs/gui/2D/controls/inputText";
931
- import { Grid } from "@babylonjs/gui/2D/controls/grid";
932
- import { DisplayGrid } from "@babylonjs/gui/2D/controls/displayGrid";
933
- export class GUINodeTools {
934
- static CreateControlFromString(data: string): Grid | Slider | Line | TextBlock | InputText | ColorPicker | Image | Rectangle | Ellipse | Checkbox | DisplayGrid | VirtualKeyboard;
1455
+ declare module "@babylonjs/gui-editor/components/commandBarComponent" {
1456
+ import * as React from "react";
1457
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1458
+ interface ICommandBarComponentProps {
1459
+ globalState: GlobalState;
1460
+ }
1461
+ export class CommandBarComponent extends React.Component<ICommandBarComponentProps> {
1462
+ private _panning;
1463
+ private _zooming;
1464
+ private _selecting;
1465
+ constructor(props: ICommandBarComponentProps);
1466
+ render(): JSX.Element;
935
1467
  }
936
1468
  }
937
- declare module "@babylonjs/gui-editor/nodeLocationInfo" {
938
- export interface INodeLocationInfo {
939
- blockId: number;
940
- x: number;
941
- y: number;
1469
+ declare module "@babylonjs/gui-editor/diagram/guiGizmo" {
1470
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1471
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
1472
+ import * as React from "react";
1473
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1474
+ import { Rect } from "@babylonjs/gui-editor/diagram/coordinateHelper";
1475
+ export interface IGuiGizmoProps {
1476
+ globalState: GlobalState;
1477
+ control: Control;
942
1478
  }
943
- export interface IFrameData {
944
- x: number;
945
- y: number;
946
- width: number;
947
- height: number;
948
- color: number[];
949
- name: string;
950
- isCollapsed: boolean;
951
- blocks: number[];
952
- comments: string;
1479
+ enum ScalePointPosition {
1480
+ Top = -1,
1481
+ Left = -1,
1482
+ Center = 0,
1483
+ Right = 1,
1484
+ Bottom = 1
1485
+ }
1486
+ interface IScalePoint {
1487
+ position: Vector2;
1488
+ horizontalPosition: ScalePointPosition;
1489
+ verticalPosition: ScalePointPosition;
1490
+ rotation: number;
1491
+ isPivot: boolean;
1492
+ }
1493
+ interface IGuiGizmoState {
1494
+ canvasBounds: Rect;
1495
+ scalePoints: IScalePoint[];
1496
+ scalePointDragging: number;
1497
+ isRotating: boolean;
1498
+ }
1499
+ export class GuiGizmoComponent extends React.Component<IGuiGizmoProps, IGuiGizmoState> {
1500
+ private _storedValues;
1501
+ private _localBounds;
1502
+ private _rotation;
1503
+ private _gizmoUpdateObserver;
1504
+ private _pointerUpObserver;
1505
+ private _pointerMoveObserver;
1506
+ constructor(props: IGuiGizmoProps);
1507
+ componentWillUnmount(): void;
1508
+ /**
1509
+ * Update the gizmo's positions
1510
+ * @param force should the update be forced. otherwise it will be updated only when the pointer is down
1511
+ */
1512
+ updateGizmo(force?: boolean): void;
1513
+ private _onUp;
1514
+ private _onMove;
1515
+ private _rotate;
1516
+ private _modulo;
1517
+ private _dragLocalBounds;
1518
+ private _updateNodeFromLocalBounds;
1519
+ private _beginDraggingScalePoint;
1520
+ private _beginRotate;
1521
+ render(): JSX.Element;
953
1522
  }
954
- export interface IEditorData {
955
- locations: INodeLocationInfo[];
956
- x: number;
957
- y: number;
958
- zoom: number;
959
- frames?: IFrameData[];
960
- map?: {
961
- [key: number]: number;
962
- };
1523
+ }
1524
+ declare module "@babylonjs/gui-editor/diagram/guiGizmoWrapper" {
1525
+ import { Nullable } from "@babylonjs/core/types";
1526
+ import { Observer } from "@babylonjs/core/Misc/observable";
1527
+ import * as React from "react";
1528
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1529
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1530
+ export interface IGizmoWrapperProps {
1531
+ globalState: GlobalState;
1532
+ }
1533
+ export class GizmoWrapper extends React.Component<IGizmoWrapperProps> {
1534
+ observer: Nullable<Observer<Nullable<Control>>>;
1535
+ componentWillMount(): void;
1536
+ componentWillUnmount(): void;
1537
+ render(): JSX.Element;
963
1538
  }
964
1539
  }
965
- declare module "@babylonjs/gui-editor/sharedComponents/messageDialog" {
1540
+ declare module "@babylonjs/gui-editor/diagram/artBoard" {
966
1541
  import * as React from "react";
967
1542
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
968
- interface IMessageDialogComponentProps {
1543
+ import { Rect } from "@babylonjs/gui-editor/diagram/coordinateHelper";
1544
+ interface IArtBoardProps {
969
1545
  globalState: GlobalState;
970
1546
  }
971
- export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
972
- message: string;
973
- isError: boolean;
974
- }> {
975
- constructor(props: IMessageDialogComponentProps);
976
- render(): JSX.Element | null;
1547
+ interface IArtBoardState {
1548
+ bounds: Rect;
1549
+ }
1550
+ export class ArtBoardComponent extends React.Component<IArtBoardProps, IArtBoardState> {
1551
+ constructor(props: IArtBoardProps);
1552
+ update(): void;
1553
+ render(): JSX.Element;
977
1554
  }
978
1555
  }
979
1556
  declare module "@babylonjs/gui-editor/workbenchEditor" {
980
1557
  import * as React from "react";
981
1558
  import { GlobalState } from "@babylonjs/gui-editor/globalState";
982
- import { Nullable } from "@babylonjs/core/types";
983
- import { IEditorData } from "@babylonjs/gui-editor/nodeLocationInfo";
984
- import { GUINode } from "@babylonjs/gui-editor/diagram/guiNode";
1559
+ import { Control } from "@babylonjs/gui/2D/controls/control";
985
1560
  interface IGraphEditorProps {
986
1561
  globalState: GlobalState;
987
1562
  }
@@ -989,32 +1564,40 @@ declare module "@babylonjs/gui-editor/workbenchEditor" {
989
1564
  showPreviewPopUp: boolean;
990
1565
  }
991
1566
  export class WorkbenchEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
992
- private _workbenchCanvas;
993
1567
  private _startX;
994
1568
  private _moveInProgress;
995
1569
  private _leftWidth;
996
1570
  private _rightWidth;
997
- private _onWidgetKeyUpPointer;
1571
+ private _toolBarIconSize;
998
1572
  private _popUpWindow;
1573
+ private _draggedItem;
999
1574
  componentDidMount(): void;
1000
- componentWillUnmount(): void;
1001
1575
  constructor(props: IGraphEditorProps);
1002
- pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[];
1003
- zoomToFit(): void;
1004
1576
  showWaitScreen(): void;
1005
1577
  hideWaitScreen(): void;
1006
- reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
1007
1578
  onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1008
1579
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1009
1580
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
1010
1581
  buildColumnLayout(): string;
1011
- emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
1012
1582
  handlePopUp: () => void;
1013
1583
  handleClosingPopUp: () => void;
1014
1584
  createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
1015
1585
  copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void;
1016
- fixPopUpStyles: (document: Document) => void;
1017
1586
  render(): JSX.Element;
1587
+ _items: {
1588
+ label: string;
1589
+ icon?: string;
1590
+ fileButton?: boolean;
1591
+ onClick?: () => void;
1592
+ onCheck?: (value: boolean) => void;
1593
+ storeKey?: string;
1594
+ isActive?: boolean;
1595
+ defaultValue?: boolean | string;
1596
+ subItems?: string[];
1597
+ }[];
1598
+ createItems(): void;
1599
+ onCreate(value: string): Control;
1600
+ createToolbar(): JSX.Element;
1018
1601
  }
1019
1602
  }
1020
1603
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/popup" {
@@ -1025,14 +1608,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/popup" {
1025
1608
  }
1026
1609
  declare module "@babylonjs/gui-editor/guiEditor" {
1027
1610
  import { Observable } from "@babylonjs/core/Misc/observable";
1611
+ import { AdvancedDynamicTexture } from "@babylonjs/gui/2D/advancedDynamicTexture";
1028
1612
  /**
1029
1613
  * Interface used to specify creation options for the gui editor
1030
1614
  */
1031
1615
  export interface IGUIEditorOptions {
1616
+ liveGuiTexture?: AdvancedDynamicTexture;
1617
+ customLoad: {
1618
+ label: string;
1619
+ action: (data: string) => Promise<string>;
1620
+ } | undefined;
1032
1621
  hostElement?: HTMLElement;
1033
1622
  customSave?: {
1034
1623
  label: string;
1035
- action: (data: string) => Promise<void>;
1624
+ action: (data: string) => Promise<string>;
1036
1625
  };
1037
1626
  currentSnippetToken?: string;
1038
1627
  customLoadObservable?: Observable<any>;
@@ -1046,12 +1635,94 @@ declare module "@babylonjs/gui-editor/guiEditor" {
1046
1635
  * Show the gui editor
1047
1636
  * @param options defines the options to use to configure the gui editor
1048
1637
  */
1049
- static Show(options: IGUIEditorOptions): void;
1638
+ static Show(options: IGUIEditorOptions): Promise<void>;
1050
1639
  }
1051
1640
  }
1052
1641
  declare module "@babylonjs/gui-editor/index" {
1053
1642
  export * from "@babylonjs/gui-editor/guiEditor";
1054
1643
  }
1644
+ declare module "@babylonjs/gui-editor/nodeLocationInfo" {
1645
+ export interface INodeLocationInfo {
1646
+ blockId: number;
1647
+ x: number;
1648
+ y: number;
1649
+ }
1650
+ export interface IFrameData {
1651
+ x: number;
1652
+ y: number;
1653
+ width: number;
1654
+ height: number;
1655
+ color: number[];
1656
+ name: string;
1657
+ isCollapsed: boolean;
1658
+ blocks: number[];
1659
+ comments: string;
1660
+ }
1661
+ export interface IEditorData {
1662
+ locations: INodeLocationInfo[];
1663
+ x: number;
1664
+ y: number;
1665
+ zoom: number;
1666
+ frames?: IFrameData[];
1667
+ map?: {
1668
+ [key: number]: number;
1669
+ };
1670
+ }
1671
+ }
1672
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/iSelectedLineContainer" {
1673
+ export interface ISelectedLineContainer {
1674
+ selectedLineContainerTitles: Array<string>;
1675
+ selectedLineContainerTitlesNoFocus: Array<string>;
1676
+ }
1677
+ }
1678
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/lineContainerComponent" {
1679
+ import * as React from "react";
1680
+ import { ISelectedLineContainer } from "@babylonjs/gui-editor/sharedUiComponents/lines/iSelectedLineContainer";
1681
+ interface ILineContainerComponentProps {
1682
+ selection?: ISelectedLineContainer;
1683
+ title: string;
1684
+ children: any[] | any;
1685
+ closed?: boolean;
1686
+ }
1687
+ export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1688
+ isExpanded: boolean;
1689
+ isHighlighted: boolean;
1690
+ }> {
1691
+ constructor(props: ILineContainerComponentProps);
1692
+ switchExpandedState(): void;
1693
+ renderHeader(): JSX.Element;
1694
+ componentDidMount(): void;
1695
+ render(): JSX.Element;
1696
+ }
1697
+ }
1698
+ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/draggableLineComponent" {
1699
+ import * as React from "react";
1700
+ export interface IButtonLineComponentProps {
1701
+ data: string;
1702
+ tooltip: string;
1703
+ }
1704
+ export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1705
+ constructor(props: IButtonLineComponentProps);
1706
+ render(): JSX.Element;
1707
+ }
1708
+ }
1709
+ declare module "@babylonjs/gui-editor/components/guiList/guiListComponent" {
1710
+ import * as React from "react";
1711
+ import { GlobalState } from "@babylonjs/gui-editor/globalState";
1712
+ interface IGuiListComponentProps {
1713
+ globalState: GlobalState;
1714
+ }
1715
+ export class GuiListComponent extends React.Component<IGuiListComponentProps, {
1716
+ filter: string;
1717
+ }> {
1718
+ private _onResetRequiredObserver;
1719
+ private static _Tooltips;
1720
+ constructor(props: IGuiListComponentProps);
1721
+ componentWillUnmount(): void;
1722
+ filterContent(filter: string): void;
1723
+ render(): JSX.Element;
1724
+ }
1725
+ }
1055
1726
  declare module "@babylonjs/gui-editor/legacy/legacy" {
1056
1727
  export * from "@babylonjs/gui-editor/index";
1057
1728
  }
@@ -1214,6 +1885,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/booleanLineCompon
1214
1885
  export interface IBooleanLineComponentProps {
1215
1886
  label: string;
1216
1887
  value: boolean;
1888
+ icon?: string;
1889
+ iconLabel?: string;
1217
1890
  }
1218
1891
  export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
1219
1892
  constructor(props: IBooleanLineComponentProps);
@@ -1223,34 +1896,20 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/booleanLineCompon
1223
1896
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/color4LineComponent" {
1224
1897
  import * as React from "react";
1225
1898
  import { Observable } from "@babylonjs/core/Misc/observable";
1226
- import { Color4 } from "@babylonjs/core/Maths/math.color";
1227
1899
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
1900
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
1228
1901
  export interface IColor4LineComponentProps {
1229
1902
  label: string;
1230
- target: any;
1903
+ target?: any;
1231
1904
  propertyName: string;
1232
1905
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1233
1906
  onChange?: () => void;
1234
1907
  isLinear?: boolean;
1908
+ icon?: string;
1909
+ iconLabel?: string;
1910
+ lockObject?: LockObject;
1235
1911
  }
1236
- export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
1237
- isExpanded: boolean;
1238
- color: Color4;
1239
- }> {
1240
- private _localChange;
1241
- constructor(props: IColor4LineComponentProps);
1242
- shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: {
1243
- color: Color4;
1244
- }): boolean;
1245
- setPropertyValue(newColor: Color4): void;
1246
- onChange(newValue: string): void;
1247
- switchExpandState(): void;
1248
- raiseOnPropertyChanged(previousValue: Color4): void;
1249
- updateStateR(value: number): void;
1250
- updateStateG(value: number): void;
1251
- updateStateB(value: number): void;
1252
- updateStateA(value: number): void;
1253
- copyToClipboard(): void;
1912
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
1254
1913
  render(): JSX.Element;
1255
1914
  }
1256
1915
  }
@@ -1260,6 +1919,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/fileMultipleButto
1260
1919
  label: string;
1261
1920
  onClick: (event: any) => void;
1262
1921
  accept: string;
1922
+ icon?: string;
1923
+ iconLabel?: string;
1263
1924
  }
1264
1925
  export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
1265
1926
  private static _IDGenerator;
@@ -1289,6 +1950,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/hexLineComponent"
1289
1950
  digits?: number;
1290
1951
  useEuler?: boolean;
1291
1952
  min?: number;
1953
+ icon?: string;
1954
+ iconLabel?: string;
1292
1955
  }
1293
1956
  export class HexLineComponent extends React.Component<IHexLineComponentProps, {
1294
1957
  value: string;
@@ -1310,7 +1973,7 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/hexLineComponent"
1310
1973
  }
1311
1974
  }
1312
1975
  declare module "@babylonjs/gui-editor/sharedUiComponents/lines/iconButtonLineComponent" {
1313
- import * as React from 'react';
1976
+ import * as React from "react";
1314
1977
  export interface IIconButtonLineComponentProps {
1315
1978
  icon: string;
1316
1979
  onClick: () => void;
@@ -1373,6 +2036,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/radioLineComponen
1373
2036
  label: string;
1374
2037
  isSelected: () => boolean;
1375
2038
  onSelect: () => void;
2039
+ icon?: string;
2040
+ iconLabel?: string;
1376
2041
  }
1377
2042
  export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
1378
2043
  isSelected: boolean;
@@ -1393,6 +2058,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/valueLineComponen
1393
2058
  color?: string;
1394
2059
  fractionDigits?: number;
1395
2060
  units?: string;
2061
+ icon?: string;
2062
+ iconLabel?: string;
1396
2063
  }
1397
2064
  export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
1398
2065
  constructor(props: IValueLineComponentProps);
@@ -1411,6 +2078,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector2LineCompon
1411
2078
  step?: number;
1412
2079
  onChange?: (newvalue: Vector2) => void;
1413
2080
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2081
+ icon?: string;
2082
+ iconLabel?: string;
1414
2083
  }
1415
2084
  export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
1416
2085
  isExpanded: boolean;
@@ -1446,6 +2115,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector3LineCompon
1446
2115
  useEuler?: boolean;
1447
2116
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1448
2117
  noSlider?: boolean;
2118
+ icon?: string;
2119
+ iconLabel?: string;
1449
2120
  }
1450
2121
  export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
1451
2122
  isExpanded: boolean;
@@ -1483,6 +2154,8 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector4LineCompon
1483
2154
  onChange?: (newvalue: Vector4) => void;
1484
2155
  useEuler?: boolean;
1485
2156
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2157
+ icon?: string;
2158
+ iconLabel?: string;
1486
2159
  }
1487
2160
  export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
1488
2161
  isExpanded: boolean;
@@ -1508,6 +2181,267 @@ declare module "@babylonjs/gui-editor/sharedUiComponents/lines/vector4LineCompon
1508
2181
  render(): JSX.Element;
1509
2182
  }
1510
2183
  }
2184
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
2185
+ import * as React from "react";
2186
+ import { Observable } from "@babylonjs/core/Misc/observable";
2187
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2188
+ import { Control } from "@babylonjs/gui/2D/controls/control";
2189
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2190
+ interface ICommonControlPropertyGridComponentProps {
2191
+ controls?: Control[];
2192
+ control?: Control;
2193
+ lockObject: LockObject;
2194
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2195
+ }
2196
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
2197
+ constructor(props: ICommonControlPropertyGridComponentProps);
2198
+ renderGridInformation(control: Control): JSX.Element | null;
2199
+ render(): JSX.Element | undefined;
2200
+ }
2201
+ }
2202
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
2203
+ import * as React from "react";
2204
+ import { Observable } from "@babylonjs/core/Misc/observable";
2205
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2206
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2207
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
2208
+ interface ICheckboxPropertyGridComponentProps {
2209
+ checkbox: Checkbox;
2210
+ lockObject: LockObject;
2211
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2212
+ }
2213
+ export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
2214
+ constructor(props: ICheckboxPropertyGridComponentProps);
2215
+ render(): JSX.Element;
2216
+ }
2217
+ }
2218
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
2219
+ import * as React from "react";
2220
+ import { Observable } from "@babylonjs/core/Misc/observable";
2221
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2222
+ import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
2223
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2224
+ interface IColorPickerPropertyGridComponentProps {
2225
+ colorPicker: ColorPicker;
2226
+ lockObject: LockObject;
2227
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2228
+ }
2229
+ export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
2230
+ constructor(props: IColorPickerPropertyGridComponentProps);
2231
+ render(): JSX.Element;
2232
+ }
2233
+ }
2234
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/controlPropertyGridComponent" {
2235
+ import * as React from "react";
2236
+ import { Observable } from "@babylonjs/core/Misc/observable";
2237
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2238
+ import { Control } from "@babylonjs/gui/2D/controls/control";
2239
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2240
+ interface IControlPropertyGridComponentProps {
2241
+ control: Control;
2242
+ lockObject: LockObject;
2243
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2244
+ }
2245
+ export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
2246
+ constructor(props: IControlPropertyGridComponentProps);
2247
+ render(): JSX.Element;
2248
+ }
2249
+ }
2250
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
2251
+ import * as React from "react";
2252
+ import { Observable } from "@babylonjs/core/Misc/observable";
2253
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2254
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2255
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
2256
+ interface IEllipsePropertyGridComponentProps {
2257
+ ellipse: Ellipse;
2258
+ lockObject: LockObject;
2259
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2260
+ }
2261
+ export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
2262
+ constructor(props: IEllipsePropertyGridComponentProps);
2263
+ render(): JSX.Element;
2264
+ }
2265
+ }
2266
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/gridPropertyGridComponent" {
2267
+ import * as React from "react";
2268
+ import { Observable } from "@babylonjs/core/Misc/observable";
2269
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2270
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2271
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
2272
+ interface IGridPropertyGridComponentProps {
2273
+ grid: Grid;
2274
+ lockObject: LockObject;
2275
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2276
+ }
2277
+ export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
2278
+ constructor(props: IGridPropertyGridComponentProps);
2279
+ renderRows(): JSX.Element[];
2280
+ renderColumns(): JSX.Element[];
2281
+ render(): JSX.Element;
2282
+ }
2283
+ }
2284
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
2285
+ import * as React from "react";
2286
+ import { Observable } from "@babylonjs/core/Misc/observable";
2287
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2288
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2289
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
2290
+ interface IImageBasedSliderPropertyGridComponentProps {
2291
+ imageBasedSlider: ImageBasedSlider;
2292
+ lockObject: LockObject;
2293
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2294
+ }
2295
+ export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
2296
+ constructor(props: IImageBasedSliderPropertyGridComponentProps);
2297
+ render(): JSX.Element;
2298
+ }
2299
+ }
2300
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/imagePropertyGridComponent" {
2301
+ import * as React from "react";
2302
+ import { Observable } from "@babylonjs/core/Misc/observable";
2303
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2304
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2305
+ import { Image } from "@babylonjs/gui/2D/controls/image";
2306
+ interface IImagePropertyGridComponentProps {
2307
+ image: Image;
2308
+ lockObject: LockObject;
2309
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2310
+ }
2311
+ export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
2312
+ constructor(props: IImagePropertyGridComponentProps);
2313
+ render(): JSX.Element;
2314
+ }
2315
+ }
2316
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
2317
+ import * as React from "react";
2318
+ import { Observable } from "@babylonjs/core/Misc/observable";
2319
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2320
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
2321
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2322
+ interface IInputTextPropertyGridComponentProps {
2323
+ inputText: InputText;
2324
+ lockObject: LockObject;
2325
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2326
+ }
2327
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
2328
+ constructor(props: IInputTextPropertyGridComponentProps);
2329
+ render(): JSX.Element;
2330
+ }
2331
+ }
2332
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/linePropertyGridComponent" {
2333
+ import * as React from "react";
2334
+ import { Observable } from "@babylonjs/core/Misc/observable";
2335
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2336
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2337
+ import { Line } from "@babylonjs/gui/2D/controls/line";
2338
+ interface ILinePropertyGridComponentProps {
2339
+ line: Line;
2340
+ lockObject: LockObject;
2341
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2342
+ }
2343
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
2344
+ constructor(props: ILinePropertyGridComponentProps);
2345
+ onDashChange(value: string): void;
2346
+ render(): JSX.Element;
2347
+ }
2348
+ }
2349
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
2350
+ import * as React from "react";
2351
+ import { Observable } from "@babylonjs/core/Misc/observable";
2352
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2353
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2354
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
2355
+ interface IRadioButtonPropertyGridComponentProps {
2356
+ radioButtons: RadioButton[];
2357
+ lockObject: LockObject;
2358
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2359
+ }
2360
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
2361
+ constructor(props: IRadioButtonPropertyGridComponentProps);
2362
+ render(): JSX.Element;
2363
+ }
2364
+ }
2365
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
2366
+ import * as React from "react";
2367
+ import { Observable } from "@babylonjs/core/Misc/observable";
2368
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2369
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2370
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
2371
+ interface IRectanglePropertyGridComponentProps {
2372
+ rectangle: Rectangle;
2373
+ lockObject: LockObject;
2374
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2375
+ }
2376
+ export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
2377
+ constructor(props: IRectanglePropertyGridComponentProps);
2378
+ render(): JSX.Element;
2379
+ }
2380
+ }
2381
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
2382
+ import * as React from "react";
2383
+ import { Observable } from "@babylonjs/core/Misc/observable";
2384
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2385
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2386
+ import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
2387
+ interface IScrollViewerPropertyGridComponentProps {
2388
+ scrollViewer: ScrollViewer;
2389
+ lockObject: LockObject;
2390
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2391
+ }
2392
+ export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
2393
+ constructor(props: IScrollViewerPropertyGridComponentProps);
2394
+ render(): JSX.Element;
2395
+ }
2396
+ }
2397
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
2398
+ import * as React from "react";
2399
+ import { Observable } from "@babylonjs/core/Misc/observable";
2400
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2401
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2402
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
2403
+ interface ISliderPropertyGridComponentProps {
2404
+ slider: Slider;
2405
+ lockObject: LockObject;
2406
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2407
+ }
2408
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
2409
+ constructor(props: ISliderPropertyGridComponentProps);
2410
+ render(): JSX.Element;
2411
+ }
2412
+ }
2413
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
2414
+ import * as React from "react";
2415
+ import { Observable } from "@babylonjs/core/Misc/observable";
2416
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2417
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2418
+ import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
2419
+ interface IStackPanelPropertyGridComponentProps {
2420
+ stackPanel: StackPanel;
2421
+ lockObject: LockObject;
2422
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2423
+ }
2424
+ export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
2425
+ constructor(props: IStackPanelPropertyGridComponentProps);
2426
+ render(): JSX.Element;
2427
+ }
2428
+ }
2429
+ declare module "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
2430
+ import * as React from "react";
2431
+ import { Observable } from "@babylonjs/core/Misc/observable";
2432
+ import { PropertyChangedEvent } from "@babylonjs/gui-editor/sharedUiComponents/propertyChangedEvent";
2433
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
2434
+ import { LockObject } from "@babylonjs/gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2435
+ interface ITextBlockPropertyGridComponentProps {
2436
+ textBlock: TextBlock;
2437
+ lockObject: LockObject;
2438
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2439
+ }
2440
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
2441
+ constructor(props: ITextBlockPropertyGridComponentProps);
2442
+ render(): JSX.Element;
2443
+ }
2444
+ }
1511
2445
  declare module "@babylonjs/gui-editor" {
1512
2446
  export * from "@babylonjs/gui-editor/legacy/legacy";
1513
2447
  }