@babylonjs/node-particle-editor 8.11.1 → 8.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4893 @@
1
+
2
+ declare module "@babylonjs/node-particle-editor/serializationTools" {
3
+ import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
4
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
5
+ import { Nullable } from "@babylonjs/core/types";
6
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
7
+ export class SerializationTools {
8
+ static UpdateLocations(particleSet: NodeParticleSystemSet, globalState: GlobalState, frame?: Nullable<GraphFrame>): void;
9
+ static Serialize(particleSet: NodeParticleSystemSet, globalState: GlobalState, frame?: Nullable<GraphFrame>): string;
10
+ static Deserialize(serializationObject: any, globalState: GlobalState): void;
11
+ static AddFrameToParticleSystemSet(serializationObject: any, globalState: GlobalState, currentSystemSet: NodeParticleSystemSet): void;
12
+ }
13
+
14
+ }
15
+ declare module "@babylonjs/node-particle-editor/portal" {
16
+ import * as React from "react";
17
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
18
+ import { PropsWithChildren } from "react";
19
+ interface IPortalProps {
20
+ globalState: GlobalState;
21
+ }
22
+ export class Portal extends React.Component<PropsWithChildren<IPortalProps>> {
23
+ render(): React.ReactPortal;
24
+ }
25
+ export {};
26
+
27
+ }
28
+ declare module "@babylonjs/node-particle-editor/nodeParticleEditor" {
29
+ import { Observable } from "@babylonjs/core/Misc/observable";
30
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
31
+ import { Scene } from "@babylonjs/core/scene";
32
+ import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
33
+ /**
34
+ * Interface used to specify creation options for the node editor
35
+ */
36
+ export interface INodeEditorOptions {
37
+ nodeParticleSet: NodeParticleSystemSet;
38
+ hostScene: Scene;
39
+ hostElement?: HTMLElement;
40
+ customSave?: {
41
+ label: string;
42
+ action: (data: string) => Promise<void>;
43
+ };
44
+ customLoadObservable?: Observable<any>;
45
+ backgroundColor?: Color4;
46
+ }
47
+ /**
48
+ * Class used to create a node editor
49
+ */
50
+ export class NodeParticleEditor {
51
+ private static _CurrentState;
52
+ private static _PopupWindow;
53
+ /**
54
+ * Show the node editor
55
+ * @param options defines the options to use to configure the node editor
56
+ */
57
+ static Show(options: INodeEditorOptions): void;
58
+ }
59
+
60
+ }
61
+ declare module "@babylonjs/node-particle-editor/index" {
62
+ export * from "@babylonjs/node-particle-editor/nodeParticleEditor";
63
+
64
+ }
65
+ declare module "@babylonjs/node-particle-editor/graphEditor" {
66
+ import * as React from "react";
67
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
68
+ import { Nullable } from "@babylonjs/core/types";
69
+ import { IInspectorOptions } from "@babylonjs/core/Debug/debugLayer";
70
+ import "@babylonjs/node-particle-editor/main.scss";
71
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
72
+ import { IEditorData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
73
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
74
+ import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
75
+ interface IGraphEditorProps {
76
+ globalState: GlobalState;
77
+ }
78
+ interface IGraphEditorState {
79
+ showPreviewPopUp: boolean;
80
+ message: string;
81
+ isError: boolean;
82
+ }
83
+ interface IInternalPreviewAreaOptions extends IInspectorOptions {
84
+ popup: boolean;
85
+ original: boolean;
86
+ explorerWidth?: string;
87
+ inspectorWidth?: string;
88
+ embedHostWidth?: string;
89
+ }
90
+ export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
91
+ private _graphCanvasRef;
92
+ private _diagramContainerRef;
93
+ private _graphCanvas;
94
+ private _historyStack;
95
+ private _previewManager;
96
+ private _mouseLocationX;
97
+ private _mouseLocationY;
98
+ private _onWidgetKeyUpPointer;
99
+ private _previewHost;
100
+ private _popUpWindow;
101
+ appendBlock(dataToAppend: NodeParticleBlock | INodeData, recursion?: boolean): GraphNode;
102
+ addValueNode(type: string): GraphNode;
103
+ prepareHistoryStack(): void;
104
+ componentDidMount(): void;
105
+ componentWillUnmount(): void;
106
+ constructor(props: IGraphEditorProps);
107
+ zoomToFit(): void;
108
+ buildParticleSystemSet(): void;
109
+ build(ignoreEditorData?: boolean): void;
110
+ loadGraph(): void;
111
+ showWaitScreen(): void;
112
+ hideWaitScreen(): void;
113
+ reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
114
+ onWheel: (evt: WheelEvent) => void;
115
+ emitNewBlock(blockType: string, targetX: number, targetY: number): GraphNode | undefined;
116
+ dropNewBlock(event: React.DragEvent<HTMLDivElement>): void;
117
+ handlePopUp: () => void;
118
+ handleClosingPopUp: () => void;
119
+ initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
120
+ createPopUp: () => void;
121
+ createPreviewMeshControlHostAsync: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => Promise<unknown>;
122
+ createPreviewHostAsync: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => Promise<unknown>;
123
+ fixPopUpStyles: (document: Document) => void;
124
+
125
+ }
126
+ export {};
127
+
128
+ }
129
+ declare module "@babylonjs/node-particle-editor/globalState" {
130
+ import { Observable } from "@babylonjs/core/Misc/observable";
131
+ import { LogEntry } from "@babylonjs/node-particle-editor/components/log/logComponent";
132
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
133
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
134
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
135
+ import { Nullable } from "@babylonjs/core/types";
136
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
137
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
138
+ import { NodeParticleSystemSet } from "@babylonjs/core/Particles/Node/nodeParticleSystemSet";
139
+ import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
140
+ import { Scene } from "@babylonjs/core/scene";
141
+ export class GlobalState {
142
+ nodeParticleSet: NodeParticleSystemSet;
143
+ hostScene: Scene;
144
+ hostElement: HTMLElement;
145
+ hostDocument: Document;
146
+ hostWindow: Window;
147
+ stateManager: StateManager;
148
+ onBuildRequiredObservable: Observable<void>;
149
+ onResetRequiredObservable: Observable<boolean>;
150
+ onClearUndoStack: Observable<void>;
151
+ onZoomToFitRequiredObservable: Observable<void>;
152
+ onReOrganizedRequiredObservable: Observable<void>;
153
+ onLogRequiredObservable: Observable<LogEntry>;
154
+ onIsLoadingChanged: Observable<boolean>;
155
+ onPreviewBackgroundChanged: Observable<void>;
156
+ onImportFrameObservable: Observable<any>;
157
+ onPopupClosedObservable: Observable<void>;
158
+ onGetNodeFromBlock: (block: NodeParticleBlock) => GraphNode;
159
+ listOfCustomPreviewFiles: File[];
160
+ rotatePreview: boolean;
161
+ backgroundColor: Color4;
162
+ lockObject: LockObject;
163
+ pointerOverCanvas: boolean;
164
+ onRefreshPreviewMeshControlComponentRequiredObservable: Observable<void>;
165
+ onExportToGLBRequired: Observable<void>;
166
+ updateState: (left: string, right: string) => void;
167
+ customSave?: {
168
+ label: string;
169
+ action: (data: string) => Promise<void>;
170
+ };
171
+ constructor();
172
+ storeEditorData(serializationObject: any, frame?: Nullable<GraphFrame>): void;
173
+ }
174
+
175
+ }
176
+ declare module "@babylonjs/node-particle-editor/blockTools" {
177
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
178
+ import { ParticleTextureSourceBlock } from "@babylonjs/core/Particles/Node/Blocks/particleSourceTextureBlock";
179
+ import { RandomRangeBlock } from "@babylonjs/core/Particles/Node/Blocks/randomRangeBlock";
180
+ import { UpdateDirectionBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateDirectionBlock";
181
+ import { UpdatePositionBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updatePositionBlock";
182
+ import { SystemBlock } from "@babylonjs/core/Particles/Node/Blocks/systemBlock";
183
+ import { NodeParticleBlockConnectionPointTypes } from "@babylonjs/core/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes";
184
+ import { ParticleMathBlock } from "@babylonjs/core/Particles/Node/Blocks/particleMathBlock";
185
+ import { UpdateColorBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateColorBlock";
186
+ import { ParticleLerpBlock } from "@babylonjs/core/Particles/Node/Blocks/particleLerpBlock";
187
+ import { UpdateScaleBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateScaleBlock";
188
+ import { ParticleGradientValueBlock } from "@babylonjs/core/Particles/Node/Blocks/particleGradientValueBlock";
189
+ import { ParticleGradientBlock } from "@babylonjs/core/Particles/Node/Blocks/particleGradientBlock";
190
+ import { ParticleConverterBlock } from "@babylonjs/core/Particles/Node/Blocks/particleConverterBlock";
191
+ import { ParticleTrigonometryBlock } from "@babylonjs/core/Particles/Node/Blocks/particleTrigonometryBlock";
192
+ import { ParticleRandomBlock } from "@babylonjs/core/Particles/Node/Blocks/particleRandomBlock";
193
+ import { ParticleDebugBlock } from "@babylonjs/core/Particles/Node/Blocks/particleDebugBlock";
194
+ import { ParticleElbowBlock } from "@babylonjs/core/Particles/Node/Blocks/particleElbowBlock";
195
+ import { ParticleTeleportInBlock } from "@babylonjs/core/Particles/Node/Blocks/Teleport/particleTeleportInBlock";
196
+ import { ParticleTeleportOutBlock } from "@babylonjs/core/Particles/Node/Blocks/Teleport/particleTeleportOutBlock";
197
+ import { UpdateAngleBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateAngleBlock";
198
+ import { BasicPositionUpdateBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/basicPositionUpdateBlock";
199
+ import { ParticleTriggerBlock } from "@babylonjs/core/Particles/Node/Blocks/Triggers/particleTriggerBlock";
200
+ import { SetupSpriteSheetBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock";
201
+ import { BasicSpriteUpdateBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/basicSpriteUpdateBlock";
202
+ import { UpdateSpriteCellIndexBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock";
203
+ import { UpdateFlowMapBlock } from "@babylonjs/core/Particles/Node/Blocks/Update/updateFlowMapBlock";
204
+ import { ParticleConditionBlock } from "@babylonjs/core/Particles/Node/Blocks/Conditions/particleConditionBlock";
205
+ import { CreateParticleBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/createParticleBlock";
206
+ import { BoxShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/boxShapeBlock";
207
+ import { SphereShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/sphereShapeBlock";
208
+ import { PointShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/pointShapeBlock";
209
+ import { CustomShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/customShapeBlock";
210
+ import { CylinderShapeBlock } from "@babylonjs/core/Particles/Node/Blocks/Emitters/cylinderShapeBlock";
211
+ /**
212
+ * Static class for BlockTools
213
+ */
214
+ export class BlockTools {
215
+ static GetBlockFromString(data: string): CreateParticleBlock | ParticleConditionBlock | UpdateSpriteCellIndexBlock | BasicSpriteUpdateBlock | SetupSpriteSheetBlock | ParticleTriggerBlock | BasicPositionUpdateBlock | ParticleTeleportInBlock | ParticleTeleportOutBlock | ParticleElbowBlock | ParticleDebugBlock | ParticleConverterBlock | ParticleGradientBlock | ParticleGradientValueBlock | ParticleLerpBlock | UpdatePositionBlock | UpdateDirectionBlock | UpdateColorBlock | UpdateScaleBlock | UpdateAngleBlock | UpdateFlowMapBlock | SystemBlock | ParticleTextureSourceBlock | BoxShapeBlock | SphereShapeBlock | PointShapeBlock | CustomShapeBlock | CylinderShapeBlock | RandomRangeBlock | ParticleInputBlock | ParticleMathBlock | ParticleTrigonometryBlock | ParticleRandomBlock | null;
216
+ static GetColorFromConnectionNodeType(type: NodeParticleBlockConnectionPointTypes): string;
217
+ static GetConnectionNodeTypeFromString(type: string): NodeParticleBlockConnectionPointTypes.Int | NodeParticleBlockConnectionPointTypes.Float | NodeParticleBlockConnectionPointTypes.Vector2 | NodeParticleBlockConnectionPointTypes.Vector3 | NodeParticleBlockConnectionPointTypes.Matrix | NodeParticleBlockConnectionPointTypes.Color4 | NodeParticleBlockConnectionPointTypes.AutoDetect;
218
+ static GetStringFromConnectionNodeType(type: NodeParticleBlockConnectionPointTypes): "" | "Int" | "Float" | "Vector2" | "Vector3" | "Color4" | "Matrix";
219
+ }
220
+
221
+ }
222
+ declare module "@babylonjs/node-particle-editor/sharedComponents/textureLineComponent" {
223
+ import * as React from "react";
224
+ import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
225
+ interface ITextureLineComponentProps {
226
+ texture: BaseTexture;
227
+ width: number;
228
+ height: number;
229
+ globalState?: any;
230
+ hideChannelSelect?: boolean;
231
+ }
232
+ export interface ITextureLineComponentState {
233
+ displayRed: boolean;
234
+ displayGreen: boolean;
235
+ displayBlue: boolean;
236
+ displayAlpha: boolean;
237
+ face: number;
238
+ }
239
+ export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
240
+ private _canvasRef;
241
+ constructor(props: ITextureLineComponentProps);
242
+ shouldComponentUpdate(): boolean;
243
+ componentDidMount(): void;
244
+ componentDidUpdate(): void;
245
+ updatePreview(): void;
246
+ static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
247
+
248
+ }
249
+ export {};
250
+
251
+ }
252
+ declare module "@babylonjs/node-particle-editor/sharedComponents/checkBoxLineComponent" {
253
+ import * as React from "react";
254
+ import { Observable } from "@babylonjs/core/Misc/observable";
255
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
256
+ export interface ICheckBoxLineComponentProps {
257
+ label: string;
258
+ target?: any;
259
+ propertyName?: string;
260
+ isSelected?: () => boolean;
261
+ onSelect?: (value: boolean) => void;
262
+ onValueChanged?: () => void;
263
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
264
+ disabled?: boolean;
265
+ }
266
+ export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
267
+ isSelected: boolean;
268
+ isDisabled?: boolean;
269
+ }> {
270
+ private static _UniqueIdSeed;
271
+ private _uniqueId;
272
+ private _localChange;
273
+ constructor(props: ICheckBoxLineComponentProps);
274
+ shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
275
+ isSelected: boolean;
276
+ isDisabled: boolean;
277
+ }): boolean;
278
+ onChange(): void;
279
+
280
+ }
281
+
282
+ }
283
+ declare module "@babylonjs/node-particle-editor/legacy/legacy" {
284
+ export * from "@babylonjs/node-particle-editor/index";
285
+
286
+ }
287
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerToTypeLedger" {
288
+ export const RegisterTypeLedger: () => void;
289
+
290
+ }
291
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerToPropertyLedger" {
292
+ export const RegisterToPropertyTabManagers: () => void;
293
+
294
+ }
295
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerToDisplayLedger" {
296
+ export const RegisterToDisplayManagers: () => void;
297
+
298
+ }
299
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerNodePortDesign" {
300
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
301
+ export const RegisterNodePortDesign: (stateManager: StateManager) => void;
302
+
303
+ }
304
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerExportData" {
305
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
306
+ export const RegisterExportData: (stateManager: StateManager) => void;
307
+
308
+ }
309
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerElbowSupport" {
310
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
311
+ export const RegisterElbowSupport: (stateManager: StateManager) => void;
312
+
313
+ }
314
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerDefaultInput" {
315
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
316
+ export const RegisterDefaultInput: (stateManager: StateManager) => void;
317
+
318
+ }
319
+ declare module "@babylonjs/node-particle-editor/graphSystem/registerDebugSupport" {
320
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
321
+ export const RegisterDebugSupport: (stateManager: StateManager) => void;
322
+
323
+ }
324
+ declare module "@babylonjs/node-particle-editor/graphSystem/connectionPointPortData" {
325
+ import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
326
+ import { NodeParticleConnectionPointCompatibilityStates, type NodeParticleConnectionPoint } from "@babylonjs/core/Particles/Node/nodeParticleBlockConnectionPoint";
327
+ import { Nullable } from "@babylonjs/core/types";
328
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
329
+ import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
330
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
331
+ import { PortDataDirection, PortDirectValueTypes } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
332
+ export class ConnectionPointPortData implements IPortData {
333
+ private _connectedPort;
334
+ private _nodeContainer;
335
+ data: NodeParticleConnectionPoint;
336
+ get name(): string;
337
+ get internalName(): string;
338
+ get isExposedOnFrame(): boolean;
339
+ set isExposedOnFrame(value: boolean);
340
+ get exposedPortPosition(): number;
341
+ set exposedPortPosition(value: number);
342
+ get isConnected(): boolean;
343
+ get connectedPort(): Nullable<IPortData>;
344
+ set connectedPort(value: Nullable<IPortData>);
345
+ get directValueDefinition(): {
346
+ source: NodeParticleConnectionPoint;
347
+ propertyName: string;
348
+ valueMin: any;
349
+ valueMax: any;
350
+ valueType: PortDirectValueTypes;
351
+ } | undefined;
352
+ get direction(): PortDataDirection;
353
+ get ownerData(): NodeParticleBlock;
354
+ get needDualDirectionValidation(): boolean;
355
+ get hasEndpoints(): boolean;
356
+ get endpoints(): IPortData[];
357
+ constructor(connectionPoint: NodeParticleConnectionPoint, nodeContainer: INodeContainer);
358
+ updateDisplayName(newName: string): void;
359
+ connectTo(port: IPortData): void;
360
+ canConnectTo(port: IPortData): boolean;
361
+ disconnectFrom(port: IPortData): void;
362
+ checkCompatibilityState(port: IPortData): 0 | NodeParticleConnectionPointCompatibilityStates.TypeIncompatible | NodeParticleConnectionPointCompatibilityStates.HierarchyIssue;
363
+ getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: IPortData): string;
364
+ }
365
+
366
+ }
367
+ declare module "@babylonjs/node-particle-editor/graphSystem/blockNodeData" {
368
+ import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
369
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
370
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
371
+ import { NodeParticleBlock } from "@babylonjs/core/Particles/Node/nodeParticleBlock";
372
+ import { ParticleTeleportOutBlock } from "@babylonjs/core/Particles/Node/Blocks/Teleport/particleTeleportOutBlock";
373
+ export class BlockNodeData implements INodeData {
374
+ data: NodeParticleBlock;
375
+ private _inputs;
376
+ private _outputs;
377
+ private _onBuildObserver;
378
+ private _onInputChangeObserver;
379
+ /**
380
+ * Gets or sets a callback used to call node visual refresh
381
+ */
382
+ refreshCallback?: () => void;
383
+ onInputCountChanged?: () => void;
384
+ get uniqueId(): number;
385
+ get name(): string;
386
+ getClassName(): string;
387
+ get isInput(): boolean;
388
+ get inputs(): IPortData[];
389
+ get outputs(): IPortData[];
390
+ get comments(): string;
391
+ set comments(value: string);
392
+ get executionTime(): number;
393
+ getPortByName(name: string): IPortData | null;
394
+ isConnectedToOutput(): boolean;
395
+ dispose(): void;
396
+ prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void;
397
+ get invisibleEndpoints(): ParticleTeleportOutBlock[] | null;
398
+ constructor(data: NodeParticleBlock, nodeContainer: INodeContainer);
399
+ }
400
+
401
+ }
402
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/textureSourceNodePropertyComponent" {
403
+ import * as React from "react";
404
+ import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
405
+ export class TextureSourcePropertyTabComponent extends React.Component<IPropertyComponentProps> {
406
+ constructor(props: IPropertyComponentProps);
407
+ _prepareImgToLoadAsync(url: string): Promise<string>;
408
+ loadTextureFromFileAsync(imageFile: File): Promise<string>;
409
+ loadTextureData(file: File): Promise<void>;
410
+ removeData(): void;
411
+
412
+ }
413
+
414
+ }
415
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/teleportOutNodePropertyComponent" {
416
+ import * as React from "react";
417
+ import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
418
+ export class TeleportOutPropertyTabComponent extends React.Component<IPropertyComponentProps> {
419
+ private _onUpdateRequiredObserver;
420
+ constructor(props: IPropertyComponentProps);
421
+ componentDidMount(): void;
422
+ componentWillUnmount(): void;
423
+
424
+ }
425
+
426
+ }
427
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/nodePortPropertyComponent" {
428
+ import * as React from "react";
429
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
430
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
431
+ export interface IFrameNodePortPropertyTabComponentProps {
432
+ stateManager: StateManager;
433
+ nodePort: NodePort;
434
+ }
435
+ export class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> {
436
+ constructor(props: IFrameNodePortPropertyTabComponentProps);
437
+ toggleExposeOnFrame(value: boolean): void;
438
+
439
+ }
440
+
441
+ }
442
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/inputNodePropertyComponent" {
443
+ import * as React from "react";
444
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
445
+ import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
446
+ export class InputPropertyTabComponent extends React.Component<IPropertyComponentProps> {
447
+ private _onValueChangedObserver;
448
+ constructor(props: IPropertyComponentProps);
449
+ componentDidMount(): void;
450
+ componentWillUnmount(): void;
451
+
452
+ setDefaultValue(): void;
453
+
454
+ }
455
+
456
+ }
457
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/genericNodePropertyComponent" {
458
+ import * as React from "react";
459
+ import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
460
+ import { NodeGeometryConnectionPoint } from "@babylonjs/core/Meshes/Node/nodeGeometryBlockConnectionPoint";
461
+ export class GenericPropertyComponent extends React.Component<IPropertyComponentProps> {
462
+ constructor(props: IPropertyComponentProps);
463
+
464
+ }
465
+ export class GeneralPropertyTabComponent extends React.Component<IPropertyComponentProps> {
466
+ constructor(props: IPropertyComponentProps);
467
+ processUpdate(): void;
468
+
469
+
470
+ }
471
+ export class GenericPropertyTabComponent extends React.Component<IPropertyComponentProps> {
472
+ constructor(props: IPropertyComponentProps);
473
+
474
+ }
475
+
476
+ }
477
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/framePropertyComponent" {
478
+ import * as React from "react";
479
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
480
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
481
+ export interface IFramePropertyTabComponentProps {
482
+ globalState: GlobalState;
483
+ frame: GraphFrame;
484
+ }
485
+ export class FramePropertyTabComponent extends React.Component<IFramePropertyTabComponentProps> {
486
+ private _onFrameExpandStateChangedObserver;
487
+ constructor(props: IFramePropertyTabComponentProps);
488
+ componentDidMount(): void;
489
+ componentWillUnmount(): void;
490
+
491
+ }
492
+
493
+ }
494
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/frameNodePortPropertyComponent" {
495
+ import * as React from "react";
496
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
497
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
498
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
499
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
500
+ export interface IFrameNodePortPropertyTabComponentProps {
501
+ stateManager: StateManager;
502
+ globalState: GlobalState;
503
+ frameNodePort: FrameNodePort;
504
+ frame: GraphFrame;
505
+ }
506
+ export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
507
+ port: FrameNodePort;
508
+ }> {
509
+ private _onFramePortPositionChangedObserver;
510
+ private _onSelectionChangedObserver;
511
+ constructor(props: IFrameNodePortPropertyTabComponentProps);
512
+ componentWillUnmount(): void;
513
+
514
+ }
515
+
516
+ }
517
+ declare module "@babylonjs/node-particle-editor/graphSystem/properties/debugNodePropertyComponent" {
518
+ import * as React from "react";
519
+ import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
520
+ export class DebugPropertyTabComponent extends React.Component<IPropertyComponentProps> {
521
+ private _onUpdateRequiredObserver;
522
+ private _dataCollectedObserver;
523
+ constructor(props: IPropertyComponentProps);
524
+ componentDidMount(): void;
525
+ componentWillUnmount(): void;
526
+
527
+ }
528
+
529
+ }
530
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/updateDisplayManager" {
531
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
532
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
533
+ export class UpdateDisplayManager implements IDisplayManager {
534
+ getHeaderClass(): string;
535
+ shouldDisplayPortLabels(): boolean;
536
+ getHeaderText(nodeData: INodeData): string;
537
+ getBackgroundColor(): string;
538
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
539
+ }
540
+
541
+ }
542
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/triggerDisplayManager" {
543
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
544
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
545
+ export class TriggerDisplayManager implements IDisplayManager {
546
+ getHeaderClass(): string;
547
+ shouldDisplayPortLabels(): boolean;
548
+ getHeaderText(nodeData: INodeData): string;
549
+ getBackgroundColor(): string;
550
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
551
+ }
552
+
553
+ }
554
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/textureDisplayManager" {
555
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
556
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
557
+ export class TextureDisplayManager implements IDisplayManager {
558
+ private _previewImage;
559
+ getHeaderClass(): string;
560
+ shouldDisplayPortLabels(): boolean;
561
+ getHeaderText(nodeData: INodeData): string;
562
+ getBackgroundColor(nodeData: INodeData): string;
563
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
564
+ }
565
+
566
+ }
567
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/teleportOutDisplayManager" {
568
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
569
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
570
+ import { Nullable } from "@babylonjs/core/types";
571
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
572
+ export class TeleportOutDisplayManager implements IDisplayManager {
573
+ private _hasHighlights;
574
+ getHeaderClass(): string;
575
+ shouldDisplayPortLabels(): boolean;
576
+ getHeaderText(nodeData: INodeData): string;
577
+ getBackgroundColor(nodeData: INodeData): string;
578
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
579
+ onSelectionChanged(nodeData: INodeData, selectedData: Nullable<INodeData>, manager: StateManager): void;
580
+ onDispose(nodeData: INodeData, manager: StateManager): void;
581
+ }
582
+
583
+ }
584
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/teleportInDisplayManager" {
585
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
586
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
587
+ import { Nullable } from "@babylonjs/core/types";
588
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
589
+ export class TeleportInDisplayManager implements IDisplayManager {
590
+ private _hasHighlights;
591
+ getHeaderClass(): string;
592
+ shouldDisplayPortLabels(): boolean;
593
+ getHeaderText(nodeData: INodeData): string;
594
+ getBackgroundColor(nodeData: INodeData): string;
595
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
596
+ onSelectionChanged(nodeData: INodeData, selectedData: Nullable<INodeData>, manager: StateManager): void;
597
+ onDispose(nodeData: INodeData, manager: StateManager): void;
598
+ }
599
+
600
+ }
601
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/systemDisplayManager" {
602
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
603
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
604
+ export class SystemDisplayManager implements IDisplayManager {
605
+ getHeaderClass(): string;
606
+ shouldDisplayPortLabels(): boolean;
607
+ getHeaderText(nodeData: INodeData): string;
608
+ getBackgroundColor(): string;
609
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
610
+ }
611
+
612
+ }
613
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/inputDisplayManager" {
614
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
615
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
616
+ import { NodeParticleBlockConnectionPointTypes } from "@babylonjs/core/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes";
617
+ export class InputDisplayManager implements IDisplayManager {
618
+ getHeaderClass(nodeData: INodeData): string;
619
+ getHeaderText(nodeData: INodeData): string;
620
+ shouldDisplayPortLabels(): boolean;
621
+ static GetBaseType(type: NodeParticleBlockConnectionPointTypes): string;
622
+ getBackgroundColor(nodeData: INodeData): string;
623
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
624
+ }
625
+
626
+ }
627
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/emitterDisplayManager" {
628
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
629
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
630
+ export class EmitterDisplayManager implements IDisplayManager {
631
+ getHeaderClass(): string;
632
+ shouldDisplayPortLabels(): boolean;
633
+ getHeaderText(nodeData: INodeData): string;
634
+ getBackgroundColor(): string;
635
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
636
+ }
637
+
638
+ }
639
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/elbowDisplayManager" {
640
+ import { IDisplayManager, VisualContentDescription } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
641
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
642
+ export class ElbowDisplayManager implements IDisplayManager {
643
+ getHeaderClass(): string;
644
+ shouldDisplayPortLabels(): boolean;
645
+ getHeaderText(nodeData: INodeData): string;
646
+ getBackgroundColor(nodeData: INodeData): string;
647
+ updatePreviewContent(_nodeData: INodeData, _contentArea: HTMLDivElement): void;
648
+ updateFullVisualContent(data: INodeData, visualContent: VisualContentDescription): void;
649
+ }
650
+
651
+ }
652
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/debugDisplayManager" {
653
+ import { IDisplayManager, VisualContentDescription } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
654
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
655
+ export class DebugDisplayManager implements IDisplayManager {
656
+ getHeaderClass(): string;
657
+ shouldDisplayPortLabels(): boolean;
658
+ getHeaderText(nodeData: INodeData): string;
659
+ getBackgroundColor(nodeData: INodeData): string;
660
+ updatePreviewContent(_nodeData: INodeData, _contentArea: HTMLDivElement): void;
661
+ updateFullVisualContent(data: INodeData, visualContent: VisualContentDescription): void;
662
+ }
663
+
664
+ }
665
+ declare module "@babylonjs/node-particle-editor/graphSystem/display/conditionDisplayManager" {
666
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
667
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
668
+ export class ConditionDisplayManager implements IDisplayManager {
669
+ getHeaderClass(): string;
670
+ shouldDisplayPortLabels(): boolean;
671
+ getHeaderText(nodeData: INodeData): string;
672
+ getBackgroundColor(): string;
673
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
674
+ }
675
+
676
+ }
677
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/propertyTabComponent" {
678
+ import * as React from "react";
679
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
680
+ import { Nullable } from "@babylonjs/core/types";
681
+ import "@babylonjs/node-particle-editor/components/propertyTab/propertyTab.scss";
682
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
683
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
684
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
685
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
686
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
687
+ interface IPropertyTabComponentProps {
688
+ globalState: GlobalState;
689
+ lockObject: LockObject;
690
+ }
691
+ interface IPropertyTabComponentState {
692
+ currentNode: Nullable<GraphNode>;
693
+ currentFrame: Nullable<GraphFrame>;
694
+ currentFrameNodePort: Nullable<FrameNodePort>;
695
+ currentNodePort: Nullable<NodePort>;
696
+ uploadInProgress: boolean;
697
+ }
698
+ export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
699
+ private _onBuiltObserver;
700
+ constructor(props: IPropertyTabComponentProps);
701
+ componentDidMount(): void;
702
+ componentWillUnmount(): void;
703
+ processInputBlockUpdate(): void;
704
+ load(file: File): void;
705
+ loadFrame(file: File): void;
706
+ save(): void;
707
+ customSave(): void;
708
+ saveToSnippetServer(): void;
709
+ loadFromSnippet(): void;
710
+
711
+ }
712
+ export {};
713
+
714
+ }
715
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/inputsPropertyTabComponent" {
716
+ import * as React from "react";
717
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
718
+ import "@babylonjs/node-particle-editor/components/propertyTab/propertyTab.scss";
719
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
720
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
721
+ interface IInputsPropertyTabComponentProps {
722
+ globalState: GlobalState;
723
+ inputs: ParticleInputBlock[];
724
+ lockObject: LockObject;
725
+ }
726
+ export class InputsPropertyTabComponent extends React.Component<IInputsPropertyTabComponentProps> {
727
+ constructor(props: IInputsPropertyTabComponentProps);
728
+ processInputBlockUpdate(): void;
729
+
730
+
731
+ }
732
+ export {};
733
+
734
+ }
735
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/vector4PropertyTabComponent" {
736
+ import * as React from "react";
737
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
738
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
739
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
740
+ interface IVector4PropertyTabComponentProps {
741
+ globalState: GlobalState;
742
+ inputBlock: ParticleInputBlock;
743
+ lockObject: LockObject;
744
+ }
745
+ export class Vector4PropertyTabComponent extends React.Component<IVector4PropertyTabComponentProps> {
746
+
747
+ }
748
+ export {};
749
+
750
+ }
751
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/vector3PropertyTabComponent" {
752
+ import * as React from "react";
753
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
754
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
755
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
756
+ interface IVector3PropertyTabComponentProps {
757
+ globalState: GlobalState;
758
+ inputBlock: ParticleInputBlock;
759
+ lockObject: LockObject;
760
+ }
761
+ export class Vector3PropertyTabComponent extends React.Component<IVector3PropertyTabComponentProps> {
762
+
763
+ }
764
+ export {};
765
+
766
+ }
767
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/vector2PropertyTabComponent" {
768
+ import * as React from "react";
769
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
770
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
771
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
772
+ interface IVector2PropertyTabComponentProps {
773
+ globalState: GlobalState;
774
+ inputBlock: ParticleInputBlock;
775
+ lockObject: LockObject;
776
+ }
777
+ export class Vector2PropertyTabComponent extends React.Component<IVector2PropertyTabComponentProps> {
778
+
779
+ }
780
+ export {};
781
+
782
+ }
783
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/floatPropertyTabComponent" {
784
+ import * as React from "react";
785
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
786
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
787
+ interface IFloatPropertyTabComponentProps {
788
+ globalState: GlobalState;
789
+ inputBlock: ParticleInputBlock;
790
+ }
791
+ export class FloatPropertyTabComponent extends React.Component<IFloatPropertyTabComponentProps> {
792
+
793
+ }
794
+ export {};
795
+
796
+ }
797
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/color4PropertyTabComponent" {
798
+ import * as React from "react";
799
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
800
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
801
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
802
+ interface IColor4PropertyTabComponentProps {
803
+ globalState: GlobalState;
804
+ inputBlock: ParticleInputBlock;
805
+ lockObject: LockObject;
806
+ }
807
+ export class Color4PropertyTabComponent extends React.Component<IColor4PropertyTabComponentProps> {
808
+
809
+ }
810
+ export {};
811
+
812
+ }
813
+ declare module "@babylonjs/node-particle-editor/components/propertyTab/properties/color3PropertyTabComponent" {
814
+ import * as React from "react";
815
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
816
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
817
+ import { ParticleInputBlock } from "@babylonjs/core/Particles/Node/Blocks/particleInputBlock";
818
+ interface IColor3PropertyTabComponentProps {
819
+ globalState: GlobalState;
820
+ inputBlock: ParticleInputBlock;
821
+ lockObject: LockObject;
822
+ }
823
+ export class Color3PropertyTabComponent extends React.Component<IColor3PropertyTabComponentProps> {
824
+
825
+ }
826
+ export {};
827
+
828
+ }
829
+ declare module "@babylonjs/node-particle-editor/components/preview/previewMeshControlComponent" {
830
+ import * as React from "react";
831
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
832
+ interface IPreviewMeshControlComponent {
833
+ globalState: GlobalState;
834
+ togglePreviewAreaComponent: () => void;
835
+ onMounted?: () => void;
836
+ }
837
+ interface IPreviewMeshControlComponentState {
838
+ center: boolean;
839
+ }
840
+ export class PreviewMeshControlComponent extends React.Component<IPreviewMeshControlComponent, IPreviewMeshControlComponentState> {
841
+ private _colorInputRef;
842
+ private _onResetRequiredObserver;
843
+ private _onRefreshPreviewMeshControlComponentRequiredObserver;
844
+ constructor(props: IPreviewMeshControlComponent);
845
+ componentWillUnmount(): void;
846
+ componentDidMount(): void;
847
+ onPopUp(): void;
848
+ changeBackground(value: string): void;
849
+ changeBackgroundClick(): void;
850
+
851
+ }
852
+ export {};
853
+
854
+ }
855
+ declare module "@babylonjs/node-particle-editor/components/preview/previewManager" {
856
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
857
+ export class PreviewManager {
858
+ private _nodeParticleSystemSet;
859
+ private _onBuildObserver;
860
+ private _onPreviewBackgroundChangedObserver;
861
+ private _engine;
862
+ private _scene;
863
+ private _camera;
864
+ private _globalState;
865
+ private _particleSystemSet;
866
+ private _callId;
867
+ constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState);
868
+ private _refreshPreview;
869
+ private _updatePreviewAsync;
870
+ dispose(): void;
871
+ }
872
+
873
+ }
874
+ declare module "@babylonjs/node-particle-editor/components/preview/previewAreaComponent" {
875
+ import * as React from "react";
876
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
877
+ interface IPreviewAreaComponentProps {
878
+ globalState: GlobalState;
879
+ onMounted?: () => void;
880
+ }
881
+ export class PreviewAreaComponent extends React.Component<IPreviewAreaComponentProps, {
882
+ isLoading: boolean;
883
+ }> {
884
+ private _onIsLoadingChangedObserver;
885
+ private _onResetRequiredObserver;
886
+ private _leftRef;
887
+ private _rightRef;
888
+ constructor(props: IPreviewAreaComponentProps);
889
+ componentWillUnmount(): void;
890
+ componentDidMount(): void;
891
+ _onPointerOverCanvas: () => void;
892
+ _onPointerOutCanvas: () => void;
893
+
894
+ }
895
+ export {};
896
+
897
+ }
898
+ declare module "@babylonjs/node-particle-editor/components/nodeList/nodeListComponent" {
899
+ import * as React from "react";
900
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
901
+ import "@babylonjs/node-particle-editor/components/nodeList/nodeList.scss";
902
+ interface INodeListComponentProps {
903
+ globalState: GlobalState;
904
+ }
905
+ export class NodeListComponent extends React.Component<INodeListComponentProps, {
906
+ filter: string;
907
+ }> {
908
+ private _onResetRequiredObserver;
909
+ private static _Tooltips;
910
+ private _customFrameList;
911
+ constructor(props: INodeListComponentProps);
912
+ componentWillUnmount(): void;
913
+ filterContent(filter: string): void;
914
+ loadCustomFrame(file: File): void;
915
+ removeItem(value: string): void;
916
+
917
+ }
918
+ export {};
919
+
920
+ }
921
+ declare module "@babylonjs/node-particle-editor/components/log/logComponent" {
922
+ import * as React from "react";
923
+ import { GlobalState } from "@babylonjs/node-particle-editor/globalState";
924
+ import "@babylonjs/node-particle-editor/components/log/log.scss";
925
+ interface ILogComponentProps {
926
+ globalState: GlobalState;
927
+ }
928
+ export class LogEntry {
929
+ message: string;
930
+ isError: boolean;
931
+ time: Date;
932
+ constructor(message: string, isError: boolean);
933
+ }
934
+ export class LogComponent extends React.Component<ILogComponentProps, {
935
+ logs: LogEntry[];
936
+ }> {
937
+ private _logConsoleRef;
938
+ constructor(props: ILogComponentProps);
939
+ componentDidMount(): void;
940
+ componentDidUpdate(): void;
941
+
942
+ }
943
+ export {};
944
+
945
+ }
946
+ declare module "@babylonjs/node-particle-editor/styleHelper" {
947
+ /**
948
+ * Copy all styles from a document to another document or shadow root
949
+ * @param source document to copy styles from
950
+ * @param target document or shadow root to copy styles to
951
+ */
952
+ export function CopyStyles(source: Document, target: DocumentOrShadowRoot): void;
953
+ /**
954
+ * Merges classNames by array of strings or conditions
955
+ * @param classNames Array of className strings or truthy conditions
956
+ * @returns A concatenated string, suitable for the className attribute
957
+ */
958
+ export function MergeClassNames(classNames: ClassNameCondition[]): string;
959
+ /**
960
+ * className (replicating React type) or a tuple with the second member being any truthy value ["className", true]
961
+ */
962
+ type ClassNameCondition = string | undefined | [string, any];
963
+ export {};
964
+
965
+ }
966
+ declare module "@babylonjs/node-particle-editor/stringTools" {
967
+ export class StringTools {
968
+ private static _SaveAs;
969
+ private static _Click;
970
+ /**
971
+ * Download a string into a file that will be saved locally by the browser
972
+ * @param document
973
+ * @param content defines the string to download locally as a file
974
+ * @param filename
975
+ */
976
+ static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
977
+ }
978
+
979
+ }
980
+ declare module "@babylonjs/node-particle-editor/propertyChangedEvent" {
981
+ export class PropertyChangedEvent {
982
+ object: any;
983
+ property: string;
984
+ value: any;
985
+ initialValue: any;
986
+ allowNullValue?: boolean;
987
+ }
988
+
989
+ }
990
+ declare module "@babylonjs/node-particle-editor/popupHelper" {
991
+ /**
992
+ * Create a popup window
993
+ * @param title default title for the popup
994
+ * @param options options for the popup
995
+ * @returns the parent control of the popup
996
+ */
997
+ export function CreatePopup(title: string, options: Partial<{
998
+ onParentControlCreateCallback?: (parentControl: HTMLDivElement) => void;
999
+ onWindowCreateCallback?: (newWindow: Window) => void;
1000
+ width?: number;
1001
+ height?: number;
1002
+ }>): HTMLDivElement | null;
1003
+
1004
+ }
1005
+ declare module "@babylonjs/node-particle-editor/historyStack" {
1006
+ import { IDisposable } from "@babylonjs/core/scene";
1007
+ /**
1008
+ * Class handling undo / redo operations
1009
+ */
1010
+ export class HistoryStack implements IDisposable {
1011
+ private _historyStack;
1012
+ private _redoStack;
1013
+ private _activeData;
1014
+ private readonly _maxHistoryLength;
1015
+ private _locked;
1016
+ private _dataProvider;
1017
+ private _applyUpdate;
1018
+ /**
1019
+ * Gets or sets a boolean indicating if the stack is enabled
1020
+ */
1021
+ isEnabled: boolean;
1022
+ /**
1023
+ * Constructor
1024
+ * @param dataProvider defines the data provider function
1025
+ * @param applyUpdate defines the code to execute when undo/redo operation is required
1026
+ */
1027
+ constructor(dataProvider: () => any, applyUpdate: (data: any) => void);
1028
+ /**
1029
+ * Process key event to handle undo / redo
1030
+ * @param evt defines the keyboard event to process
1031
+ * @returns true if the event was processed
1032
+ */
1033
+ processKeyEvent(evt: KeyboardEvent): boolean;
1034
+ /**
1035
+ * Resets the stack
1036
+ */
1037
+ reset(): void;
1038
+ /**
1039
+ * Remove the n-1 element of the stack
1040
+ */
1041
+ collapseLastTwo(): void;
1042
+ private _generateJSONDiff;
1043
+ private _applyJSONDiff;
1044
+ private _copy;
1045
+ /**
1046
+ * Stores the current state
1047
+ */
1048
+ store(): void;
1049
+ /**
1050
+ * Undo the latest operation
1051
+ */
1052
+ undo(): void;
1053
+ /**
1054
+ * Redo the latest undo operation
1055
+ */
1056
+ redo(): void;
1057
+ /**
1058
+ * Disposes the stack
1059
+ */
1060
+ dispose(): void;
1061
+ }
1062
+
1063
+ }
1064
+ declare module "@babylonjs/node-particle-editor/copyCommandToClipboard" {
1065
+ export function copyCommandToClipboard(strCommand: string): void;
1066
+ export function getClassNameWithNamespace(obj: any): {
1067
+ className: string;
1068
+ babylonNamespace: string;
1069
+ };
1070
+
1071
+ }
1072
+ declare module "@babylonjs/node-particle-editor/constToOptionsMaps" {
1073
+ /**
1074
+ * Used by both particleSystem and alphaBlendModes
1075
+ */
1076
+ export const CommonBlendModes: {
1077
+ label: string;
1078
+ value: number;
1079
+ }[];
1080
+ /**
1081
+ * Used to populated the blendMode dropdown in our various tools (Node Editor, Inspector, etc.)
1082
+ * The below ParticleSystem consts were defined before new Engine alpha blend modes were added, so we have to reference
1083
+ * the ParticleSystem.FOO consts explicitly (as the underlying const values are different - they get mapped to engine consts within baseParticleSystem.ts)
1084
+ */
1085
+ export const BlendModeOptions: {
1086
+ label: string;
1087
+ value: number;
1088
+ }[];
1089
+ /**
1090
+ * Used to populated the alphaMode dropdown in our various tools (Node Editor, Inspector, etc.)
1091
+ */
1092
+ export const AlphaModeOptions: {
1093
+ label: string;
1094
+ value: number;
1095
+ }[];
1096
+
1097
+ }
1098
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject" {
1099
+ /**
1100
+ * Class used to provide lock mechanism
1101
+ */
1102
+ export class LockObject {
1103
+ /**
1104
+ * Gets or set if the lock is engaged
1105
+ */
1106
+ lock: boolean;
1107
+ }
1108
+
1109
+ }
1110
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/textBlockPropertyGridComponent" {
1111
+ import * as React from "react";
1112
+ import { Observable } from "@babylonjs/core/Misc/observable";
1113
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1114
+ import { TextBlock } from "@babylonjs/gui/2D/controls/textBlock";
1115
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1116
+ interface ITextBlockPropertyGridComponentProps {
1117
+ textBlock: TextBlock;
1118
+ lockObject: LockObject;
1119
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1120
+ }
1121
+ export class TextBlockPropertyGridComponent extends React.Component<ITextBlockPropertyGridComponentProps> {
1122
+ constructor(props: ITextBlockPropertyGridComponentProps);
1123
+
1124
+ }
1125
+ export {};
1126
+
1127
+ }
1128
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/stackPanelPropertyGridComponent" {
1129
+ import * as React from "react";
1130
+ import { Observable } from "@babylonjs/core/Misc/observable";
1131
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1132
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1133
+ import { StackPanel } from "@babylonjs/gui/2D/controls/stackPanel";
1134
+ interface IStackPanelPropertyGridComponentProps {
1135
+ stackPanel: StackPanel;
1136
+ lockObject: LockObject;
1137
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1138
+ }
1139
+ export class StackPanelPropertyGridComponent extends React.Component<IStackPanelPropertyGridComponentProps> {
1140
+ constructor(props: IStackPanelPropertyGridComponentProps);
1141
+
1142
+ }
1143
+ export {};
1144
+
1145
+ }
1146
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/sliderPropertyGridComponent" {
1147
+ import * as React from "react";
1148
+ import { Observable } from "@babylonjs/core/Misc/observable";
1149
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1150
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1151
+ import { Slider } from "@babylonjs/gui/2D/controls/sliders/slider";
1152
+ interface ISliderPropertyGridComponentProps {
1153
+ slider: Slider;
1154
+ lockObject: LockObject;
1155
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1156
+ }
1157
+ export class SliderPropertyGridComponent extends React.Component<ISliderPropertyGridComponentProps> {
1158
+ constructor(props: ISliderPropertyGridComponentProps);
1159
+
1160
+ }
1161
+ export {};
1162
+
1163
+ }
1164
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/scrollViewerPropertyGridComponent" {
1165
+ import * as React from "react";
1166
+ import { Observable } from "@babylonjs/core/Misc/observable";
1167
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1168
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1169
+ import { ScrollViewer } from "@babylonjs/gui/2D/controls/scrollViewers/scrollViewer";
1170
+ interface IScrollViewerPropertyGridComponentProps {
1171
+ scrollViewer: ScrollViewer;
1172
+ lockObject: LockObject;
1173
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1174
+ }
1175
+ export class ScrollViewerPropertyGridComponent extends React.Component<IScrollViewerPropertyGridComponentProps> {
1176
+ constructor(props: IScrollViewerPropertyGridComponentProps);
1177
+
1178
+ }
1179
+ export {};
1180
+
1181
+ }
1182
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/rectanglePropertyGridComponent" {
1183
+ import * as React from "react";
1184
+ import { Observable } from "@babylonjs/core/Misc/observable";
1185
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1186
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1187
+ import { Rectangle } from "@babylonjs/gui/2D/controls/rectangle";
1188
+ interface IRectanglePropertyGridComponentProps {
1189
+ rectangle: Rectangle;
1190
+ lockObject: LockObject;
1191
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1192
+ }
1193
+ export class RectanglePropertyGridComponent extends React.Component<IRectanglePropertyGridComponentProps> {
1194
+ constructor(props: IRectanglePropertyGridComponentProps);
1195
+
1196
+ }
1197
+ export {};
1198
+
1199
+ }
1200
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/radioButtonPropertyGridComponent" {
1201
+ import * as React from "react";
1202
+ import { Observable } from "@babylonjs/core/Misc/observable";
1203
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1204
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1205
+ import { RadioButton } from "@babylonjs/gui/2D/controls/radioButton";
1206
+ interface IRadioButtonPropertyGridComponentProps {
1207
+ radioButtons: RadioButton[];
1208
+ lockObject: LockObject;
1209
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1210
+ }
1211
+ export class RadioButtonPropertyGridComponent extends React.Component<IRadioButtonPropertyGridComponentProps> {
1212
+ constructor(props: IRadioButtonPropertyGridComponentProps);
1213
+
1214
+ }
1215
+ export {};
1216
+
1217
+ }
1218
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/linePropertyGridComponent" {
1219
+ import * as React from "react";
1220
+ import { Observable } from "@babylonjs/core/Misc/observable";
1221
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1222
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1223
+ import { Line } from "@babylonjs/gui/2D/controls/line";
1224
+ interface ILinePropertyGridComponentProps {
1225
+ line: Line;
1226
+ lockObject: LockObject;
1227
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1228
+ }
1229
+ export class LinePropertyGridComponent extends React.Component<ILinePropertyGridComponentProps> {
1230
+ constructor(props: ILinePropertyGridComponentProps);
1231
+ onDashChange(value: string): void;
1232
+
1233
+ }
1234
+ export {};
1235
+
1236
+ }
1237
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/inputTextPropertyGridComponent" {
1238
+ import * as React from "react";
1239
+ import { Observable } from "@babylonjs/core/Misc/observable";
1240
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1241
+ import { InputText } from "@babylonjs/gui/2D/controls/inputText";
1242
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1243
+ interface IInputTextPropertyGridComponentProps {
1244
+ inputText: InputText;
1245
+ lockObject: LockObject;
1246
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1247
+ }
1248
+ export class InputTextPropertyGridComponent extends React.Component<IInputTextPropertyGridComponentProps> {
1249
+ constructor(props: IInputTextPropertyGridComponentProps);
1250
+
1251
+ }
1252
+ export {};
1253
+
1254
+ }
1255
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/imagePropertyGridComponent" {
1256
+ import * as React from "react";
1257
+ import { Observable } from "@babylonjs/core/Misc/observable";
1258
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1259
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1260
+ import { Image } from "@babylonjs/gui/2D/controls/image";
1261
+ interface IImagePropertyGridComponentProps {
1262
+ image: Image;
1263
+ lockObject: LockObject;
1264
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1265
+ }
1266
+ export class ImagePropertyGridComponent extends React.Component<IImagePropertyGridComponentProps> {
1267
+ constructor(props: IImagePropertyGridComponentProps);
1268
+
1269
+ }
1270
+ export {};
1271
+
1272
+ }
1273
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/imageBasedSliderPropertyGridComponent" {
1274
+ import * as React from "react";
1275
+ import { Observable } from "@babylonjs/core/Misc/observable";
1276
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1277
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1278
+ import { ImageBasedSlider } from "@babylonjs/gui/2D/controls/sliders/imageBasedSlider";
1279
+ interface IImageBasedSliderPropertyGridComponentProps {
1280
+ imageBasedSlider: ImageBasedSlider;
1281
+ lockObject: LockObject;
1282
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1283
+ }
1284
+ export class ImageBasedSliderPropertyGridComponent extends React.Component<IImageBasedSliderPropertyGridComponentProps> {
1285
+ constructor(props: IImageBasedSliderPropertyGridComponentProps);
1286
+
1287
+ }
1288
+ export {};
1289
+
1290
+ }
1291
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/gridPropertyGridComponent" {
1292
+ import * as React from "react";
1293
+ import { Observable } from "@babylonjs/core/Misc/observable";
1294
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1295
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1296
+ import { Grid } from "@babylonjs/gui/2D/controls/grid";
1297
+ interface IGridPropertyGridComponentProps {
1298
+ grid: Grid;
1299
+ lockObject: LockObject;
1300
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1301
+ }
1302
+ export class GridPropertyGridComponent extends React.Component<IGridPropertyGridComponentProps> {
1303
+ constructor(props: IGridPropertyGridComponentProps);
1304
+
1305
+
1306
+
1307
+ }
1308
+ export {};
1309
+
1310
+ }
1311
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/ellipsePropertyGridComponent" {
1312
+ import * as React from "react";
1313
+ import { Observable } from "@babylonjs/core/Misc/observable";
1314
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1315
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1316
+ import { Ellipse } from "@babylonjs/gui/2D/controls/ellipse";
1317
+ interface IEllipsePropertyGridComponentProps {
1318
+ ellipse: Ellipse;
1319
+ lockObject: LockObject;
1320
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1321
+ }
1322
+ export class EllipsePropertyGridComponent extends React.Component<IEllipsePropertyGridComponentProps> {
1323
+ constructor(props: IEllipsePropertyGridComponentProps);
1324
+
1325
+ }
1326
+ export {};
1327
+
1328
+ }
1329
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/controlPropertyGridComponent" {
1330
+ import * as React from "react";
1331
+ import { Observable } from "@babylonjs/core/Misc/observable";
1332
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1333
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1334
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1335
+ interface IControlPropertyGridComponentProps {
1336
+ control: Control;
1337
+ lockObject: LockObject;
1338
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1339
+ }
1340
+ export class ControlPropertyGridComponent extends React.Component<IControlPropertyGridComponentProps> {
1341
+ constructor(props: IControlPropertyGridComponentProps);
1342
+
1343
+ }
1344
+ export {};
1345
+
1346
+ }
1347
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/commonControlPropertyGridComponent" {
1348
+ import * as React from "react";
1349
+ import { Observable } from "@babylonjs/core/Misc/observable";
1350
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1351
+ import { Control } from "@babylonjs/gui/2D/controls/control";
1352
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1353
+ interface ICommonControlPropertyGridComponentProps {
1354
+ controls?: Control[];
1355
+ control?: Control;
1356
+ lockObject: LockObject;
1357
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1358
+ }
1359
+ export class CommonControlPropertyGridComponent extends React.Component<ICommonControlPropertyGridComponentProps> {
1360
+ constructor(props: ICommonControlPropertyGridComponentProps);
1361
+
1362
+
1363
+ }
1364
+ export {};
1365
+
1366
+ }
1367
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/colorPickerPropertyGridComponent" {
1368
+ import * as React from "react";
1369
+ import { Observable } from "@babylonjs/core/Misc/observable";
1370
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1371
+ import { ColorPicker } from "@babylonjs/gui/2D/controls/colorpicker";
1372
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1373
+ interface IColorPickerPropertyGridComponentProps {
1374
+ colorPicker: ColorPicker;
1375
+ lockObject: LockObject;
1376
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1377
+ }
1378
+ export class ColorPickerPropertyGridComponent extends React.Component<IColorPickerPropertyGridComponentProps> {
1379
+ constructor(props: IColorPickerPropertyGridComponentProps);
1380
+
1381
+ }
1382
+ export {};
1383
+
1384
+ }
1385
+ declare module "@babylonjs/node-particle-editor/tabs/propertyGrids/gui/checkboxPropertyGridComponent" {
1386
+ import * as React from "react";
1387
+ import { Observable } from "@babylonjs/core/Misc/observable";
1388
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
1389
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
1390
+ import { Checkbox } from "@babylonjs/gui/2D/controls/checkbox";
1391
+ interface ICheckboxPropertyGridComponentProps {
1392
+ checkbox: Checkbox;
1393
+ lockObject: LockObject;
1394
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1395
+ }
1396
+ export class CheckboxPropertyGridComponent extends React.Component<ICheckboxPropertyGridComponentProps> {
1397
+ constructor(props: ICheckboxPropertyGridComponentProps);
1398
+
1399
+ }
1400
+ export {};
1401
+
1402
+ }
1403
+ declare module "@babylonjs/node-particle-editor/split/splitter" {
1404
+ import { ControlledSize } from "@babylonjs/node-particle-editor/split/splitContext";
1405
+ /**
1406
+ * Splitter component properties
1407
+ */
1408
+ export interface ISplitterProps {
1409
+ /**
1410
+ * Unique identifier
1411
+ */
1412
+ id?: string;
1413
+ /**
1414
+ * Splitter size
1415
+ */
1416
+ size: number;
1417
+ /**
1418
+ * Minimum size for the controlled element
1419
+ */
1420
+ minSize?: number;
1421
+ /**
1422
+ * Maximum size for the controlled element
1423
+ */
1424
+ maxSize?: number;
1425
+ /**
1426
+ * Initial size for the controlled element
1427
+ */
1428
+ initialSize?: number;
1429
+ /**
1430
+ * Defines the controlled side
1431
+ */
1432
+ controlledSide: ControlledSize;
1433
+ /**
1434
+ * refObject to the splitter element
1435
+ */
1436
+ refObject?: React.RefObject<HTMLDivElement>;
1437
+ }
1438
+ /**
1439
+ * Creates a splitter component
1440
+ * @param props defines the splitter properties
1441
+ * @returns the splitter component
1442
+ */
1443
+ export const Splitter: React.FC<ISplitterProps>;
1444
+
1445
+ }
1446
+ declare module "@babylonjs/node-particle-editor/split/splitContext" {
1447
+ export enum ControlledSize {
1448
+ First = 0,
1449
+ Second = 1
1450
+ }
1451
+ export enum SplitDirection {
1452
+ Horizontal = 0,
1453
+ Vertical = 1
1454
+ }
1455
+ /**
1456
+ * Context used to share data with splitters
1457
+ */
1458
+ export interface ISplitContext {
1459
+ /**
1460
+ * Split direction
1461
+ */
1462
+ direction: SplitDirection;
1463
+ /**
1464
+ * Function called by splitters to update the offset
1465
+ * @param offset new offet
1466
+ * @param source source element
1467
+ * @param controlledSide defined controlled element
1468
+ */
1469
+ drag: (offset: number, source: HTMLElement, controlledSide: ControlledSize) => void;
1470
+ /**
1471
+ * Function called by splitters to begin dragging
1472
+ */
1473
+ beginDrag: () => void;
1474
+ /**
1475
+ * Function called by splitters to end dragging
1476
+ */
1477
+ endDrag: () => void;
1478
+ /**
1479
+ * Sync sizes for the elements
1480
+ * @param source source element
1481
+ * @param controlledSide defined controlled element
1482
+ * @param size size of the controlled element
1483
+ * @param minSize minimum size for the controlled element
1484
+ * @param maxSize maximum size for the controlled element
1485
+ */
1486
+ sync: (source: HTMLElement, controlledSide: ControlledSize, size?: number, minSize?: number, maxSize?: number) => void;
1487
+ }
1488
+ export const SplitContext: import("react").Context<ISplitContext>;
1489
+
1490
+ }
1491
+ declare module "@babylonjs/node-particle-editor/split/splitContainer" {
1492
+ import { PropsWithChildren } from "react";
1493
+ import { SplitDirection } from "@babylonjs/node-particle-editor/split/splitContext";
1494
+ /**
1495
+ * Split container properties
1496
+ */
1497
+ export interface ISplitContainerProps {
1498
+ /**
1499
+ * Unique identifier
1500
+ */
1501
+ id?: string;
1502
+ /**
1503
+ * Split direction
1504
+ */
1505
+ direction: SplitDirection;
1506
+ /**
1507
+ * Minimum size for the floating elements
1508
+ */
1509
+ floatingMinSize?: number;
1510
+ /**
1511
+ * RefObject to the root div element
1512
+ */
1513
+ containerRef?: React.RefObject<HTMLDivElement>;
1514
+ /**
1515
+ * Optional class name
1516
+ */
1517
+ className?: string;
1518
+ /**
1519
+ * Pointer down
1520
+ * @param event pointer events
1521
+ */
1522
+ onPointerDown?: (event: React.PointerEvent) => void;
1523
+ /**
1524
+ * Pointer move
1525
+ * @param event pointer events
1526
+ */
1527
+ onPointerMove?: (event: React.PointerEvent) => void;
1528
+ /**
1529
+ * Pointer up
1530
+ * @param event pointer events
1531
+ */
1532
+ onPointerUp?: (event: React.PointerEvent) => void;
1533
+ /**
1534
+ * Drop
1535
+ * @param event drag events
1536
+ */
1537
+ onDrop?: (event: React.DragEvent<HTMLDivElement>) => void;
1538
+ /**
1539
+ * Drag over
1540
+ * @param event drag events
1541
+ */
1542
+ onDragOver?: (event: React.DragEvent<HTMLDivElement>) => void;
1543
+ }
1544
+ /**
1545
+ * Creates a split container component
1546
+ * @param props defines the split container properties
1547
+ * @returns the split container component
1548
+ */
1549
+ export const SplitContainer: React.FC<PropsWithChildren<ISplitContainerProps>>;
1550
+
1551
+ }
1552
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/typeLedger" {
1553
+ import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
1554
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
1555
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
1556
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
1557
+ export class TypeLedger {
1558
+ static PortDataBuilder: (port: NodePort, nodeContainer: INodeContainer) => IPortData;
1559
+ static NodeDataBuilder: (data: any, nodeContainer: INodeContainer) => INodeData;
1560
+ }
1561
+
1562
+ }
1563
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/tools" {
1564
+ import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
1565
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
1566
+ import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
1567
+ import { FramePortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/types/framePortData";
1568
+ export const IsFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
1569
+ export const RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode>, visitedLinks?: Set<NodeLink>, canvas?: GraphCanvasComponent) => void;
1570
+ export const BuildFloatUI: (container: HTMLDivElement, document: Document, displayName: string, isInteger: boolean, source: any, propertyName: string, onChange: () => void, min?: number, max?: number, visualPropertiesRefresh?: Array<() => void>, additionalClassName?: string) => void;
1571
+ export function GetListOfAcceptedTypes<T extends Record<string, string | number>>(types: T, allValue: number, autoDetectValue: number, port: {
1572
+ acceptedConnectionPointTypes: number[];
1573
+ excludedConnectionPointTypes: number[];
1574
+ type: number;
1575
+ }, skips?: number[]): string[];
1576
+ export function GetConnectionErrorMessage<T extends Record<string, string | number>>(sourceType: number, types: T, allValue: number, autoDetectValue: number, port: {
1577
+ acceptedConnectionPointTypes: number[];
1578
+ excludedConnectionPointTypes: number[];
1579
+ type: number;
1580
+ }, skips?: number[]): string;
1581
+
1582
+ }
1583
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager" {
1584
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
1585
+ import { Observable } from "@babylonjs/core/Misc/observable";
1586
+ import { Nullable } from "@babylonjs/core/types";
1587
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
1588
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
1589
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
1590
+ import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
1591
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
1592
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
1593
+ import { ISelectionChangedOptions } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/selectionChangedOptions";
1594
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
1595
+ import { HistoryStack } from "@babylonjs/node-particle-editor/historyStack";
1596
+ import { Scene } from "@babylonjs/core/scene";
1597
+ export class StateManager {
1598
+ data: any;
1599
+ hostDocument: Document;
1600
+ lockObject: any;
1601
+ modalIsDisplayed: boolean;
1602
+ historyStack: HistoryStack;
1603
+ onSearchBoxRequiredObservable: Observable<{
1604
+ x: number;
1605
+ y: number;
1606
+ }>;
1607
+ onSelectionChangedObservable: Observable<Nullable<ISelectionChangedOptions>>;
1608
+ onFrameCreatedObservable: Observable<GraphFrame>;
1609
+ onUpdateRequiredObservable: Observable<any>;
1610
+ onGraphNodeRemovalObservable: Observable<GraphNode>;
1611
+ onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
1612
+ onCandidateLinkMoved: Observable<Nullable<Vector2>>;
1613
+ onCandidatePortSelectedObservable: Observable<Nullable<FrameNodePort | NodePort>>;
1614
+ onNewNodeCreatedObservable: Observable<GraphNode>;
1615
+ onRebuildRequiredObservable: Observable<void>;
1616
+ onNodeMovedObservable: Observable<GraphNode>;
1617
+ onErrorMessageDialogRequiredObservable: Observable<string>;
1618
+ onExposePortOnFrameObservable: Observable<GraphNode>;
1619
+ onGridSizeChanged: Observable<void>;
1620
+ onNewBlockRequiredObservable: Observable<{
1621
+ type: string;
1622
+ targetX: number;
1623
+ targetY: number;
1624
+ needRepositioning?: boolean;
1625
+ smartAdd?: boolean;
1626
+ }>;
1627
+ onHighlightNodeObservable: Observable<{
1628
+ data: any;
1629
+ active: boolean;
1630
+ }>;
1631
+ onPreviewCommandActivated: Observable<boolean>;
1632
+ exportData: (data: any, frame?: Nullable<GraphFrame>) => string;
1633
+ isElbowConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
1634
+ isDebugConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
1635
+ applyNodePortDesign: (data: IPortData, element: HTMLElement, imgHost: HTMLImageElement, pip: HTMLDivElement) => boolean;
1636
+ getPortColor: (portData: IPortData) => string;
1637
+ storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
1638
+ getEditorDataMap: () => {
1639
+ [key: number]: number;
1640
+ };
1641
+ getScene?: () => Scene;
1642
+ createDefaultInputData: (rootData: any, portData: IPortData, nodeContainer: INodeContainer) => Nullable<{
1643
+ data: INodeData;
1644
+ name: string;
1645
+ }>;
1646
+ private _isRebuildQueued;
1647
+ queueRebuildCommand(): void;
1648
+ }
1649
+
1650
+ }
1651
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/searchBox" {
1652
+ import * as React from "react";
1653
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
1654
+ import "@babylonjs/node-particle-editor/nodeGraphSystem/searchBox.scss";
1655
+ export interface ISearchBoxComponentProps {
1656
+ stateManager: StateManager;
1657
+ }
1658
+ /**
1659
+ * The search box component.
1660
+ */
1661
+ export class SearchBoxComponent extends React.Component<ISearchBoxComponentProps, {
1662
+ isVisible: boolean;
1663
+ filter: string;
1664
+ selectedIndex: number;
1665
+ }> {
1666
+ private _handleEscKey;
1667
+ private _targetX;
1668
+ private _targetY;
1669
+ private _nodes;
1670
+ constructor(props: ISearchBoxComponentProps);
1671
+ hide(): void;
1672
+ onFilterChange(evt: React.ChangeEvent<HTMLInputElement>): void;
1673
+ onNewNodeRequested(name: string): void;
1674
+ onKeyDown(evt: React.KeyboardEvent): void;
1675
+
1676
+ }
1677
+
1678
+ }
1679
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/propertyLedger" {
1680
+ import { ComponentClass } from "react";
1681
+ import { IPropertyComponentProps } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1682
+ export class PropertyLedger {
1683
+ static DefaultControl: ComponentClass<IPropertyComponentProps>;
1684
+ static RegisteredControls: {
1685
+ [key: string]: ComponentClass<IPropertyComponentProps>;
1686
+ };
1687
+ }
1688
+
1689
+ }
1690
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort" {
1691
+ import { Nullable } from "@babylonjs/core/types";
1692
+ import { Observer } from "@babylonjs/core/Misc/observable";
1693
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
1694
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
1695
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
1696
+ import { ISelectionChangedOptions } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/selectionChangedOptions";
1697
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
1698
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
1699
+ import { type IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
1700
+ export class NodePort {
1701
+ portData: IPortData;
1702
+ node: GraphNode;
1703
+ protected _element: HTMLDivElement;
1704
+ protected _portContainer: HTMLElement;
1705
+ protected _imgHost: HTMLImageElement;
1706
+ protected _pip: HTMLDivElement;
1707
+ protected _stateManager: StateManager;
1708
+ protected _portLabelElement: Element;
1709
+ protected _onCandidateLinkMovedObserver: Nullable<Observer<Nullable<Vector2>>>;
1710
+ protected _onSelectionChangedObserver: Nullable<Observer<Nullable<ISelectionChangedOptions>>>;
1711
+ protected _exposedOnFrame: boolean;
1712
+ protected _portUIcontainer?: HTMLDivElement;
1713
+ delegatedPort: Nullable<FrameNodePort>;
1714
+ get element(): HTMLDivElement;
1715
+ get container(): HTMLElement;
1716
+ get portName(): string;
1717
+ set portName(newName: string);
1718
+ get disabled(): boolean;
1719
+ hasLabel(): boolean;
1720
+ get exposedOnFrame(): boolean;
1721
+ set exposedOnFrame(value: boolean);
1722
+ get exposedPortPosition(): number;
1723
+ set exposedPortPosition(value: number);
1724
+ private _isConnectedToNodeOutsideOfFrame;
1725
+ refresh(): void;
1726
+ constructor(portContainer: HTMLElement, portData: IPortData, node: GraphNode, stateManager: StateManager, portUIcontainer?: HTMLDivElement);
1727
+ dispose(): void;
1728
+ static CreatePortElement(portData: IPortData, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, stateManager: StateManager): NodePort;
1729
+ }
1730
+
1731
+ }
1732
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink" {
1733
+ import { Observable } from "@babylonjs/core/Misc/observable";
1734
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
1735
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
1736
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
1737
+ import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
1738
+ export class NodeLink {
1739
+ private _graphCanvas;
1740
+ private _portA;
1741
+ private _portB?;
1742
+ private _nodeA;
1743
+ private _nodeB?;
1744
+ private _path;
1745
+ private _selectionPath;
1746
+ private _onSelectionChangedObserver;
1747
+ private _isVisible;
1748
+ private _isTargetCandidate;
1749
+ private _gradient;
1750
+ onDisposedObservable: Observable<NodeLink>;
1751
+ get isTargetCandidate(): boolean;
1752
+ set isTargetCandidate(value: boolean);
1753
+ get isVisible(): boolean;
1754
+ set isVisible(value: boolean);
1755
+ get portA(): FrameNodePort | NodePort;
1756
+ get portB(): FrameNodePort | NodePort | undefined;
1757
+ get nodeA(): GraphNode;
1758
+ get nodeB(): GraphNode | undefined;
1759
+ intersectsWith(rect: DOMRect): boolean;
1760
+ update(endX?: number, endY?: number, straight?: boolean): void;
1761
+ get path(): SVGPathElement;
1762
+ get selectionPath(): SVGPathElement;
1763
+ constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
1764
+ onClick(evt: MouseEvent): void;
1765
+ dispose(notify?: boolean): void;
1766
+ }
1767
+
1768
+ }
1769
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLedger" {
1770
+ export class NodeLedger {
1771
+ static RegisteredNodeNames: string[];
1772
+ static NameFormatter: (name: string) => string;
1773
+ }
1774
+
1775
+ }
1776
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode" {
1777
+ import { Nullable } from "@babylonjs/core/types";
1778
+ import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
1779
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
1780
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
1781
+ import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
1782
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
1783
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
1784
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
1785
+ import { IEditablePropertyOption } from "@babylonjs/core/Decorators/nodeDecorator";
1786
+ export class GraphNode {
1787
+ content: INodeData;
1788
+ private static _IdGenerator;
1789
+ private _visual;
1790
+ private _headerContainer;
1791
+ private _headerIcon;
1792
+ private _headerIconImg;
1793
+ private _headerCollapseImg;
1794
+ private _header;
1795
+ private _headerCollapse;
1796
+ private _connections;
1797
+ private _optionsContainer;
1798
+ private _inputsContainer;
1799
+ private _outputsContainer;
1800
+ private _content;
1801
+ private _comments;
1802
+ private _executionTime;
1803
+ private _selectionBorder;
1804
+ private _inputPorts;
1805
+ private _outputPorts;
1806
+ private _links;
1807
+ private _x;
1808
+ private _y;
1809
+ private _gridAlignedX;
1810
+ private _gridAlignedY;
1811
+ private _mouseStartPointX;
1812
+ private _mouseStartPointY;
1813
+ private _stateManager;
1814
+ private _onSelectionChangedObserver;
1815
+ private _onSelectionBoxMovedObserver;
1816
+ private _onFrameCreatedObserver;
1817
+ private _onUpdateRequiredObserver;
1818
+ private _onHighlightNodeObserver;
1819
+ private _ownerCanvas;
1820
+ private _displayManager;
1821
+ private _isVisible;
1822
+ private _enclosingFrameId;
1823
+ private _visualPropertiesRefresh;
1824
+ private _lastClick;
1825
+ addClassToVisual(className: string): void;
1826
+ removeClassFromVisual(className: string): void;
1827
+ get isCollapsed(): boolean;
1828
+ get isVisible(): boolean;
1829
+ set isVisible(value: boolean);
1830
+ private _upateNodePortNames;
1831
+ get outputPorts(): NodePort[];
1832
+ get inputPorts(): NodePort[];
1833
+ get links(): NodeLink[];
1834
+ get gridAlignedX(): number;
1835
+ get gridAlignedY(): number;
1836
+ get x(): number;
1837
+ set x(value: number);
1838
+ get y(): number;
1839
+ set y(value: number);
1840
+ get width(): number;
1841
+ get height(): number;
1842
+ get id(): number;
1843
+ get name(): string;
1844
+ get enclosingFrameId(): number;
1845
+ set enclosingFrameId(value: number);
1846
+ setIsSelected(value: boolean, marqueeSelection: boolean): void;
1847
+ get rootElement(): HTMLDivElement;
1848
+ constructor(content: INodeData, stateManager: StateManager);
1849
+ isOverlappingFrame(frame: GraphFrame): boolean;
1850
+ getPortForPortData(portData: IPortData): NodePort | null;
1851
+ getPortDataForPortDataContent(data: any): IPortData | null;
1852
+ getLinksForPortDataContent(data: any): NodeLink[];
1853
+ getLinksForPortData(portData: IPortData): NodeLink[];
1854
+ private _refreshFrames;
1855
+ _refreshLinks(): void;
1856
+ refresh(): void;
1857
+ private _expand;
1858
+ private _searchMiddle;
1859
+ private _onDown;
1860
+ cleanAccumulation(useCeil?: boolean): void;
1861
+ private _onUp;
1862
+ private _onMove;
1863
+ renderProperties(): Nullable<JSX.Element>;
1864
+ _forceRebuild(source: any, propertyName: string, notifiers?: IEditablePropertyOption["notifiers"]): void;
1865
+ private _isCollapsed;
1866
+ /**
1867
+ * Collapse the node
1868
+ */
1869
+ collapse(): void;
1870
+ /**
1871
+ * Expand the node
1872
+ */
1873
+ expand(): void;
1874
+ private _portUICount;
1875
+ private _buildInputPorts;
1876
+ appendVisual(root: HTMLDivElement, owner: GraphCanvasComponent): void;
1877
+ dispose(): void;
1878
+ }
1879
+
1880
+ }
1881
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame" {
1882
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
1883
+ import { GraphCanvasComponent } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas";
1884
+ import { Nullable } from "@babylonjs/core/types";
1885
+ import { Observable } from "@babylonjs/core/Misc/observable";
1886
+ import { Color3 } from "@babylonjs/core/Maths/math.color";
1887
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
1888
+ import { IFrameData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
1889
+ export enum FramePortPosition {
1890
+ Top = 0,
1891
+ Middle = 1,
1892
+ Bottom = 2
1893
+ }
1894
+ export class GraphFrame {
1895
+ private readonly _collapsedWidth;
1896
+ private static _FrameCounter;
1897
+ private static _FramePortCounter;
1898
+ private _name;
1899
+ private _color;
1900
+ private _x;
1901
+ private _y;
1902
+ private _gridAlignedX;
1903
+ private _gridAlignedY;
1904
+ private _width;
1905
+ private _height;
1906
+ element: HTMLDivElement;
1907
+ private _borderElement;
1908
+ private _headerElement;
1909
+ private _headerTextElement;
1910
+ private _headerCollapseElement;
1911
+ private _headerCloseElement;
1912
+ private _headerFocusElement;
1913
+ private _commentsElement;
1914
+ private _portContainer;
1915
+ private _outputPortContainer;
1916
+ private _inputPortContainer;
1917
+ private _nodes;
1918
+ private _ownerCanvas;
1919
+ private _mouseStartPointX;
1920
+ private _mouseStartPointY;
1921
+ private _onSelectionChangedObserver;
1922
+ private _onGraphNodeRemovalObserver;
1923
+ private _onExposePortOnFrameObserver;
1924
+ private _onNodeLinkDisposedObservers;
1925
+ private _isCollapsed;
1926
+ private _frameInPorts;
1927
+ private _frameOutPorts;
1928
+ private _controlledPorts;
1929
+ private _exposedInPorts;
1930
+ private _exposedOutPorts;
1931
+ private _id;
1932
+ private _comments;
1933
+ private _frameIsResizing;
1934
+ private _resizingDirection;
1935
+ private _minFrameHeight;
1936
+ private _minFrameWidth;
1937
+ private _mouseXLimit;
1938
+ onExpandStateChanged: Observable<GraphFrame>;
1939
+ private readonly _closeSVG;
1940
+ private readonly _expandSVG;
1941
+ private readonly _collapseSVG;
1942
+ private readonly _focusSVG;
1943
+ get id(): number;
1944
+ get isCollapsed(): boolean;
1945
+ private _createInputPort;
1946
+ private _markFramePortPositions;
1947
+ private _createFramePorts;
1948
+ private _removePortFromExposedWithNode;
1949
+ private _removePortFromExposedWithLink;
1950
+ private _createInputPorts;
1951
+ private _createOutputPorts;
1952
+ redrawFramePorts(): void;
1953
+ set isCollapsed(value: boolean);
1954
+ get nodes(): GraphNode[];
1955
+ get ports(): FrameNodePort[];
1956
+ get name(): string;
1957
+ set name(value: string);
1958
+ get color(): Color3;
1959
+ set color(value: Color3);
1960
+ get x(): number;
1961
+ set x(value: number);
1962
+ get y(): number;
1963
+ set y(value: number);
1964
+ get width(): number;
1965
+ set width(value: number);
1966
+ get height(): number;
1967
+ set height(value: number);
1968
+ get comments(): string;
1969
+ set comments(comments: string);
1970
+ constructor(candidate: Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
1971
+ private _isFocused;
1972
+ /**
1973
+ * Enter/leave focus mode
1974
+ */
1975
+ switchFocusMode(): void;
1976
+ refresh(): void;
1977
+ addNode(node: GraphNode): void;
1978
+ removeNode(node: GraphNode): void;
1979
+ syncNode(node: GraphNode): void;
1980
+ cleanAccumulation(): void;
1981
+ private _onDown;
1982
+ move(newX: number, newY: number, align?: boolean): void;
1983
+ private _onUp;
1984
+ _moveFrame(offsetX: number, offsetY: number): void;
1985
+ private _onMove;
1986
+ moveFramePortUp(nodePort: FrameNodePort): void;
1987
+ private _movePortUp;
1988
+ moveFramePortDown(nodePort: FrameNodePort): void;
1989
+ private _movePortDown;
1990
+ private _initResizing;
1991
+ private _cleanUpResizing;
1992
+ private _updateMinHeightWithComments;
1993
+ private _isResizingTop;
1994
+ private _isResizingRight;
1995
+ private _isResizingBottom;
1996
+ private _isResizingLeft;
1997
+ private _onRightHandlePointerDown;
1998
+ private _onRightHandlePointerMove;
1999
+ private _moveRightHandle;
2000
+ private _onRightHandlePointerUp;
2001
+ private _onBottomHandlePointerDown;
2002
+ private _onBottomHandlePointerMove;
2003
+ private _moveBottomHandle;
2004
+ private _onBottomHandlePointerUp;
2005
+ private _onLeftHandlePointerDown;
2006
+ private _onLeftHandlePointerMove;
2007
+ private _moveLeftHandle;
2008
+ private _onLeftHandlePointerUp;
2009
+ private _onTopHandlePointerDown;
2010
+ private _onTopHandlePointerMove;
2011
+ private _moveTopHandle;
2012
+ private _onTopHandlePointerUp;
2013
+ private _onTopRightHandlePointerDown;
2014
+ private _onTopRightHandlePointerMove;
2015
+ private _moveTopRightHandle;
2016
+ private _onTopRightHandlePointerUp;
2017
+ private _onBottomRightHandlePointerDown;
2018
+ private _onBottomRightHandlePointerMove;
2019
+ private _moveBottomRightHandle;
2020
+ private _onBottomRightHandlePointerUp;
2021
+ private _onBottomLeftHandlePointerDown;
2022
+ private _onBottomLeftHandlePointerMove;
2023
+ private _moveBottomLeftHandle;
2024
+ private _onBottomLeftHandlePointerUp;
2025
+ private _onTopLeftHandlePointerDown;
2026
+ private _onTopLeftHandlePointerMove;
2027
+ private _moveTopLeftHandle;
2028
+ private _onTopLeftHandlePointerUp;
2029
+ private _expandLeft;
2030
+ private _expandTop;
2031
+ private _expandRight;
2032
+ private _expandBottom;
2033
+ dispose(): void;
2034
+ private _serializePortData;
2035
+ serialize(saveCollapsedState: boolean): IFrameData;
2036
+ export(): void;
2037
+ adjustPorts(): void;
2038
+ static Parse(serializationData: IFrameData, canvas: GraphCanvasComponent, map?: {
2039
+ [key: number]: number;
2040
+ }): GraphFrame;
2041
+ }
2042
+
2043
+ }
2044
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/graphCanvas" {
2045
+ import * as React from "react";
2046
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
2047
+ import { Nullable } from "@babylonjs/core/types";
2048
+ import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
2049
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
2050
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
2051
+ import { IEditorData, IFrameData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
2052
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
2053
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
2054
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
2055
+ import { INodeContainer } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer";
2056
+ export interface IGraphCanvasComponentProps {
2057
+ stateManager: StateManager;
2058
+ onEmitNewNode: (nodeData: INodeData) => GraphNode;
2059
+ }
2060
+ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> implements INodeContainer {
2061
+ static readonly NodeWidth: number;
2062
+ private readonly _minZoom;
2063
+ private readonly _maxZoom;
2064
+ private _hostCanvasRef;
2065
+ private _hostCanvas;
2066
+ private _graphCanvasRef;
2067
+ private _graphCanvas;
2068
+ private _selectionContainerRef;
2069
+ private _selectionContainer;
2070
+ private _frameContainerRef;
2071
+ private _frameContainer;
2072
+ private _svgCanvasRef;
2073
+ private _svgCanvas;
2074
+ private _rootContainerRef;
2075
+ private _rootContainer;
2076
+ private _nodes;
2077
+ private _links;
2078
+ private _mouseStartPointX;
2079
+ private _mouseStartPointY;
2080
+ private _dropPointX;
2081
+ private _dropPointY;
2082
+ private _selectionStartX;
2083
+ private _selectionStartY;
2084
+ private _candidateLinkedHasMoved;
2085
+ private _x;
2086
+ private _y;
2087
+ private _lastx;
2088
+ private _lasty;
2089
+ private _zoom;
2090
+ private _selectedNodes;
2091
+ private _selectedLink;
2092
+ private _selectedPort;
2093
+ private _candidateLink;
2094
+ private _candidatePort;
2095
+ private _gridSize;
2096
+ private _selectionBox;
2097
+ private _selectedFrames;
2098
+ private _frameCandidate;
2099
+ private _frames;
2100
+ private _nodeDataContentList;
2101
+ private _altKeyIsPressed;
2102
+ private _shiftKeyIsPressed;
2103
+ private _multiKeyIsPressed;
2104
+ private _oldY;
2105
+ _frameIsMoving: boolean;
2106
+ _isLoading: boolean;
2107
+ _targetLinkCandidate: Nullable<NodeLink>;
2108
+ private _copiedNodes;
2109
+ private _copiedFrames;
2110
+ get gridSize(): number;
2111
+ set gridSize(value: number);
2112
+ get stateManager(): StateManager;
2113
+ get nodes(): GraphNode[];
2114
+ get links(): NodeLink[];
2115
+ get frames(): GraphFrame[];
2116
+ get zoom(): number;
2117
+ set zoom(value: number);
2118
+ get x(): number;
2119
+ set x(value: number);
2120
+ get y(): number;
2121
+ set y(value: number);
2122
+ get selectedNodes(): GraphNode[];
2123
+ get selectedLink(): Nullable<NodeLink>;
2124
+ get selectedFrames(): GraphFrame[];
2125
+ get selectedPort(): Nullable<NodePort>;
2126
+ get canvasContainer(): HTMLDivElement;
2127
+ get hostCanvas(): HTMLDivElement;
2128
+ get svgCanvas(): HTMLElement;
2129
+ get selectionContainer(): HTMLDivElement;
2130
+ get frameContainer(): HTMLDivElement;
2131
+ private _selectedFrameAndNodesConflict;
2132
+ constructor(props: IGraphCanvasComponentProps);
2133
+ populateConnectedEntriesBeforeRemoval(item: GraphNode, items: GraphNode[], inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[]): void;
2134
+ automaticRewire(inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[], firstOnly?: boolean): void;
2135
+ smartAddOverLink(node: GraphNode, link: NodeLink): void;
2136
+ smartAddOverNode(node: GraphNode, source: GraphNode): void;
2137
+ deleteSelection(onRemove: (nodeData: INodeData) => void, autoReconnect?: boolean): void;
2138
+ handleKeyDown(evt: KeyboardEvent, onRemove: (nodeData: INodeData) => void, mouseLocationX: number, mouseLocationY: number, dataGenerator: (nodeData: INodeData) => any, rootElement: HTMLDivElement): void;
2139
+ pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, dataGenerator: (nodeData: INodeData) => any, selectNew?: boolean): GraphNode[];
2140
+ reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
2141
+ getCachedData(): any[];
2142
+ removeDataFromCache(data: any): void;
2143
+ createNodeFromObject(nodeData: INodeData, onNodeCreated: (data: any) => void, recursion?: boolean): GraphNode;
2144
+ getGridPosition(position: number, useCeil?: boolean): number;
2145
+ getGridPositionCeil(position: number): number;
2146
+ updateTransform(): void;
2147
+ onKeyUp(): void;
2148
+ findNodeFromData(data: any): GraphNode;
2149
+ reset(): void;
2150
+ connectPorts(pointA: IPortData, pointB: IPortData): void;
2151
+ removeLink(link: NodeLink): void;
2152
+ appendNode(nodeData: INodeData): GraphNode;
2153
+ distributeGraph(): void;
2154
+ componentDidMount(): void;
2155
+ onMove(evt: React.PointerEvent): void;
2156
+ onDown(evt: React.PointerEvent<HTMLElement>): void;
2157
+ onUp(evt: React.PointerEvent): void;
2158
+ onWheel(evt: React.WheelEvent): void;
2159
+ zoomToFit(): void;
2160
+ processCandidatePort(): void;
2161
+ connectNodes(nodeA: GraphNode, pointA: IPortData, nodeB: GraphNode, pointB: IPortData): void;
2162
+ drop(newNode: GraphNode, targetX: number, targetY: number, offsetX: number, offsetY: number): void;
2163
+ processEditorData(editorData: IEditorData): void;
2164
+ reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
2165
+ addFrame(frameData: IFrameData): void;
2166
+
2167
+ }
2168
+
2169
+ }
2170
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort" {
2171
+ import { IDisplayManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager";
2172
+ import { Observable } from "@babylonjs/core/Misc/observable";
2173
+ import { Nullable } from "@babylonjs/core/types";
2174
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
2175
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
2176
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
2177
+ import { FramePortPosition } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
2178
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
2179
+ export class FrameNodePort extends NodePort {
2180
+ portData: IPortData;
2181
+ node: GraphNode;
2182
+ private _parentFrameId;
2183
+ private _isInput;
2184
+ private _framePortPosition;
2185
+ private _framePortId;
2186
+ private _onFramePortPositionChangedObservable;
2187
+ get parentFrameId(): number;
2188
+ get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
2189
+ get isInput(): boolean;
2190
+ get framePortId(): number;
2191
+ get framePortPosition(): FramePortPosition;
2192
+ set framePortPosition(position: FramePortPosition);
2193
+ constructor(portContainer: HTMLElement, portData: IPortData, node: GraphNode, stateManager: StateManager, isInput: boolean, framePortId: number, parentFrameId: number);
2194
+ static CreateFrameNodePortElement(portData: IPortData, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, stateManager: StateManager, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
2195
+ }
2196
+
2197
+ }
2198
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/displayLedger" {
2199
+ export class DisplayLedger {
2200
+ static RegisteredControls: {
2201
+ [key: string]: any;
2202
+ };
2203
+ }
2204
+
2205
+ }
2206
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/automaticProperties" {
2207
+ import { IEditablePropertyOption } from "@babylonjs/core/Decorators/nodeDecorator";
2208
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
2209
+ /**
2210
+ * Function used to force a rebuild of the node system
2211
+ * @param source source object
2212
+ * @param stateManager defines the state manager to use
2213
+ * @param propertyName name of the property that has been changed
2214
+ * @param notifiers list of notifiers to use
2215
+ */
2216
+ export function ForceRebuild(source: any, stateManager: StateManager, propertyName: string, notifiers?: IEditablePropertyOption["notifiers"]): void;
2217
+
2218
+ }
2219
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/types/framePortData" {
2220
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
2221
+ import { FrameNodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/frameNodePort";
2222
+ export type FramePortData = {
2223
+ frame: GraphFrame;
2224
+ port: FrameNodePort;
2225
+ };
2226
+
2227
+ }
2228
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/selectionChangedOptions" {
2229
+ import { Nullable } from "@babylonjs/core/types";
2230
+ import { GraphFrame } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphFrame";
2231
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
2232
+ import { NodeLink } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodeLink";
2233
+ import { NodePort } from "@babylonjs/node-particle-editor/nodeGraphSystem/nodePort";
2234
+ import { FramePortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/types/framePortData";
2235
+ export interface ISelectionChangedOptions {
2236
+ selection: Nullable<GraphNode | NodeLink | GraphFrame | NodePort | FramePortData>;
2237
+ forceKeepSelection?: boolean;
2238
+ marqueeSelection?: boolean;
2239
+ }
2240
+
2241
+ }
2242
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/propertyComponentProps" {
2243
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
2244
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
2245
+ export interface IPropertyComponentProps {
2246
+ stateManager: StateManager;
2247
+ nodeData: INodeData;
2248
+ }
2249
+
2250
+ }
2251
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData" {
2252
+ import { Nullable } from "@babylonjs/core/types";
2253
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
2254
+ export enum PortDataDirection {
2255
+ /** Input */
2256
+ Input = 0,
2257
+ /** Output */
2258
+ Output = 1
2259
+ }
2260
+ export enum PortDirectValueTypes {
2261
+ Float = 0,
2262
+ Int = 1
2263
+ }
2264
+ export interface IPortDirectValueDefinition {
2265
+ /**
2266
+ * Gets the source object
2267
+ */
2268
+ source: any;
2269
+ /**
2270
+ * Gets the property name used to store the value
2271
+ */
2272
+ propertyName: string;
2273
+ /**
2274
+ * Gets or sets the min value accepted for this point if nothing is connected
2275
+ */
2276
+ valueMin: Nullable<any>;
2277
+ /**
2278
+ * Gets or sets the max value accepted for this point if nothing is connected
2279
+ */
2280
+ valueMax: Nullable<any>;
2281
+ /**
2282
+ * Gets or sets the type of the value
2283
+ */
2284
+ valueType: PortDirectValueTypes;
2285
+ }
2286
+ export interface IPortData {
2287
+ data: any;
2288
+ name: string;
2289
+ internalName: string;
2290
+ isExposedOnFrame: boolean;
2291
+ exposedPortPosition: number;
2292
+ isConnected: boolean;
2293
+ direction: PortDataDirection;
2294
+ ownerData: any;
2295
+ connectedPort: Nullable<IPortData>;
2296
+ needDualDirectionValidation: boolean;
2297
+ hasEndpoints: boolean;
2298
+ endpoints: Nullable<IPortData[]>;
2299
+ directValueDefinition?: IPortDirectValueDefinition;
2300
+ updateDisplayName: (newName: string) => void;
2301
+ canConnectTo: (port: IPortData) => boolean;
2302
+ connectTo: (port: IPortData) => void;
2303
+ disconnectFrom: (port: IPortData) => void;
2304
+ checkCompatibilityState(port: IPortData): number;
2305
+ getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: IPortData): string;
2306
+ }
2307
+
2308
+ }
2309
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeLocationInfo" {
2310
+ export interface INodeLocationInfo {
2311
+ blockId: number;
2312
+ x: number;
2313
+ y: number;
2314
+ isCollapsed: boolean;
2315
+ }
2316
+ export interface IFrameData {
2317
+ x: number;
2318
+ y: number;
2319
+ width: number;
2320
+ height: number;
2321
+ color: number[];
2322
+ name: string;
2323
+ isCollapsed: boolean;
2324
+ blocks: number[];
2325
+ comments: string;
2326
+ }
2327
+ export interface IEditorData {
2328
+ locations: INodeLocationInfo[];
2329
+ x: number;
2330
+ y: number;
2331
+ zoom: number;
2332
+ frames?: IFrameData[];
2333
+ map?: {
2334
+ [key: number]: number;
2335
+ };
2336
+ }
2337
+
2338
+ }
2339
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData" {
2340
+ import { Nullable } from "@babylonjs/core/types";
2341
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
2342
+ export interface INodeData {
2343
+ data: any;
2344
+ name: string;
2345
+ uniqueId: number;
2346
+ isInput: boolean;
2347
+ comments: string;
2348
+ executionTime?: number;
2349
+ refreshCallback?: () => void;
2350
+ prepareHeaderIcon: (iconDiv: HTMLDivElement, img: HTMLImageElement) => void;
2351
+ getClassName: () => string;
2352
+ dispose: () => void;
2353
+ getPortByName: (name: string) => Nullable<IPortData>;
2354
+ inputs: IPortData[];
2355
+ outputs: IPortData[];
2356
+ invisibleEndpoints?: Nullable<any[]>;
2357
+ isConnectedToOutput?: () => boolean;
2358
+ isActive?: boolean;
2359
+ setIsActive?: (value: boolean) => void;
2360
+ canBeActivated?: boolean;
2361
+ onInputCountChanged?: () => void;
2362
+ }
2363
+
2364
+ }
2365
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeContainer" {
2366
+ import { GraphNode } from "@babylonjs/node-particle-editor/nodeGraphSystem/graphNode";
2367
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
2368
+ export interface INodeContainer {
2369
+ nodes: GraphNode[];
2370
+ appendNode(data: INodeData): GraphNode;
2371
+ }
2372
+
2373
+ }
2374
+ declare module "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/displayManager" {
2375
+ import { Nullable } from "@babylonjs/core/types";
2376
+ import { StateManager } from "@babylonjs/node-particle-editor/nodeGraphSystem/stateManager";
2377
+ import { INodeData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/nodeData";
2378
+ import { IPortData } from "@babylonjs/node-particle-editor/nodeGraphSystem/interfaces/portData";
2379
+ export interface VisualContentDescription {
2380
+ [key: string]: HTMLElement;
2381
+ }
2382
+ export interface IDisplayManager {
2383
+ getHeaderClass(data: INodeData): string;
2384
+ shouldDisplayPortLabels(data: IPortData): boolean;
2385
+ updatePreviewContent(data: INodeData, contentArea: HTMLDivElement): void;
2386
+ updateFullVisualContent?(data: INodeData, visualContent: VisualContentDescription): void;
2387
+ getBackgroundColor(data: INodeData): string;
2388
+ getHeaderText(data: INodeData): string;
2389
+ onSelectionChanged?(data: INodeData, selectedData: Nullable<INodeData>, manager: StateManager): void;
2390
+ onDispose?(nodeData: INodeData, manager: StateManager): void;
2391
+ }
2392
+
2393
+ }
2394
+ declare module "@babylonjs/node-particle-editor/lines/vector4LineComponent" {
2395
+ import * as React from "react";
2396
+ import { Vector4 } from "@babylonjs/core/Maths/math.vector";
2397
+ import { Observable } from "@babylonjs/core/Misc/observable";
2398
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2399
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2400
+ interface IVector4LineComponentProps {
2401
+ label: string;
2402
+ target?: any;
2403
+ propertyName?: string;
2404
+ step?: number;
2405
+ onChange?: (newvalue: Vector4) => void;
2406
+ useEuler?: boolean;
2407
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2408
+ icon?: string;
2409
+ iconLabel?: string;
2410
+ value?: Vector4;
2411
+ lockObject: LockObject;
2412
+ }
2413
+ export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
2414
+ isExpanded: boolean;
2415
+ value: Vector4;
2416
+ }> {
2417
+ static defaultProps: {
2418
+ step: number;
2419
+ };
2420
+ private _localChange;
2421
+ constructor(props: IVector4LineComponentProps);
2422
+ getCurrentValue(): any;
2423
+ shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
2424
+ isExpanded: boolean;
2425
+ value: Vector4;
2426
+ }): boolean;
2427
+ switchExpandState(): void;
2428
+ raiseOnPropertyChanged(previousValue: Vector4): void;
2429
+ updateVector4(): void;
2430
+ updateStateX(value: number): void;
2431
+ updateStateY(value: number): void;
2432
+ updateStateZ(value: number): void;
2433
+ updateStateW(value: number): void;
2434
+
2435
+ }
2436
+ export {};
2437
+
2438
+ }
2439
+ declare module "@babylonjs/node-particle-editor/lines/vector3LineComponent" {
2440
+ import * as React from "react";
2441
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2442
+ import { Observable } from "@babylonjs/core/Misc/observable";
2443
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2444
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2445
+ interface IVector3LineComponentProps {
2446
+ label: string;
2447
+ target?: any;
2448
+ propertyName?: string;
2449
+ step?: number;
2450
+ onChange?: (newvalue: Vector3) => void;
2451
+ useEuler?: boolean;
2452
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2453
+ noSlider?: boolean;
2454
+ icon?: string;
2455
+ iconLabel?: string;
2456
+ lockObject: LockObject;
2457
+ directValue?: Vector3;
2458
+ additionalCommands?: JSX.Element[];
2459
+ }
2460
+ export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
2461
+ isExpanded: boolean;
2462
+ value: Vector3;
2463
+ }> {
2464
+ static defaultProps: {
2465
+ step: number;
2466
+ };
2467
+ private _localChange;
2468
+ constructor(props: IVector3LineComponentProps);
2469
+ getCurrentValue(): any;
2470
+ shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
2471
+ isExpanded: boolean;
2472
+ value: Vector3;
2473
+ }): boolean;
2474
+ switchExpandState(): void;
2475
+ raiseOnPropertyChanged(previousValue: Vector3): void;
2476
+ updateVector3(): void;
2477
+ updateStateX(value: number): void;
2478
+ updateStateY(value: number): void;
2479
+ updateStateZ(value: number): void;
2480
+ onCopyClick(): string;
2481
+
2482
+
2483
+
2484
+ }
2485
+ export {};
2486
+
2487
+ }
2488
+ declare module "@babylonjs/node-particle-editor/lines/vector2LineComponent" {
2489
+ import * as React from "react";
2490
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
2491
+ import { Observable } from "@babylonjs/core/Misc/observable";
2492
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2493
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2494
+ interface IVector2LineComponentProps {
2495
+ label: string;
2496
+ target: any;
2497
+ propertyName: string;
2498
+ step?: number;
2499
+ onChange?: (newvalue: Vector2) => void;
2500
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2501
+ icon?: string;
2502
+ iconLabel?: string;
2503
+ lockObject: LockObject;
2504
+ }
2505
+ export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
2506
+ isExpanded: boolean;
2507
+ value: Vector2;
2508
+ }> {
2509
+ static defaultProps: {
2510
+ step: number;
2511
+ };
2512
+ private _localChange;
2513
+ constructor(props: IVector2LineComponentProps);
2514
+ shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
2515
+ isExpanded: boolean;
2516
+ value: Vector2;
2517
+ }): boolean;
2518
+ switchExpandState(): void;
2519
+ raiseOnPropertyChanged(previousValue: Vector2): void;
2520
+ updateStateX(value: number): void;
2521
+ updateStateY(value: number): void;
2522
+
2523
+ }
2524
+ export {};
2525
+
2526
+ }
2527
+ declare module "@babylonjs/node-particle-editor/lines/valueLineComponent" {
2528
+ import * as React from "react";
2529
+ interface IValueLineComponentProps {
2530
+ label: string;
2531
+ value: number;
2532
+ color?: string;
2533
+ fractionDigits?: number;
2534
+ units?: string;
2535
+ icon?: string;
2536
+ iconLabel?: string;
2537
+ }
2538
+ export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
2539
+ constructor(props: IValueLineComponentProps);
2540
+
2541
+ }
2542
+ export {};
2543
+
2544
+ }
2545
+ declare module "@babylonjs/node-particle-editor/lines/unitButton" {
2546
+ interface IUnitButtonProps {
2547
+ unit: string;
2548
+ locked?: boolean;
2549
+ onClick?: (unit: string) => void;
2550
+ }
2551
+
2552
+ export {};
2553
+
2554
+ }
2555
+ declare module "@babylonjs/node-particle-editor/lines/textureButtonLineComponent" {
2556
+ import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
2557
+ import { Scene } from "@babylonjs/core/scene";
2558
+ import * as React from "react";
2559
+ interface ITextureButtonLineProps {
2560
+ label: string;
2561
+ scene: Scene;
2562
+ onClick: (file: File) => void;
2563
+ onLink: (texture: BaseTexture) => void;
2564
+ accept: string;
2565
+ }
2566
+ interface ITextureButtonLineState {
2567
+ isOpen: boolean;
2568
+ }
2569
+ export class TextureButtonLine extends React.Component<ITextureButtonLineProps, ITextureButtonLineState> {
2570
+ private static _IdGenerator;
2571
+ private _id;
2572
+ private _uploadInputRef;
2573
+ constructor(props: ITextureButtonLineProps);
2574
+ onChange(evt: any): void;
2575
+
2576
+ }
2577
+ export {};
2578
+
2579
+ }
2580
+ declare module "@babylonjs/node-particle-editor/lines/textLineComponent" {
2581
+ import * as React from "react";
2582
+ interface ITextLineComponentProps {
2583
+ label?: string;
2584
+ value?: string;
2585
+ color?: string;
2586
+ underline?: boolean;
2587
+ onLink?: () => void;
2588
+ url?: string;
2589
+ ignoreValue?: boolean;
2590
+ additionalClass?: string;
2591
+ icon?: string;
2592
+ iconLabel?: string;
2593
+ tooltip?: string;
2594
+ onCopy?: true | (() => string);
2595
+ }
2596
+ export class TextLineComponent extends React.Component<ITextLineComponentProps> {
2597
+ constructor(props: ITextLineComponentProps);
2598
+ onLink(): void;
2599
+ copyFn(): (() => string) | undefined;
2600
+
2601
+
2602
+
2603
+
2604
+ }
2605
+ export {};
2606
+
2607
+ }
2608
+ declare module "@babylonjs/node-particle-editor/lines/textInputLineComponent" {
2609
+ import { ReactNode, KeyboardEvent } from "react";
2610
+ import { Component } from "react";
2611
+ import { Observable } from "@babylonjs/core/Misc/observable";
2612
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2613
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2614
+ export interface ITextInputLineComponentProps {
2615
+ label?: string;
2616
+ lockObject?: LockObject;
2617
+ target?: any;
2618
+ propertyName?: string;
2619
+ value?: string;
2620
+ onChange?: (value: string) => void;
2621
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2622
+ icon?: string;
2623
+ iconLabel?: string;
2624
+ noUnderline?: boolean;
2625
+ numbersOnly?: boolean;
2626
+ delayInput?: boolean;
2627
+ arrows?: boolean;
2628
+ arrowsIncrement?: (amount: number) => void;
2629
+ step?: number;
2630
+ numeric?: boolean;
2631
+ roundValues?: boolean;
2632
+ min?: number;
2633
+ max?: number;
2634
+ placeholder?: string;
2635
+ unit?: ReactNode;
2636
+ validator?: (value: string) => boolean;
2637
+ multilines?: boolean;
2638
+ throttlePropertyChangedNotification?: boolean;
2639
+ throttlePropertyChangedNotificationDelay?: number;
2640
+ disabled?: boolean;
2641
+ }
2642
+ export class TextInputLineComponent extends Component<ITextInputLineComponentProps, {
2643
+ value: string;
2644
+ dragging: boolean;
2645
+ }> {
2646
+ private _localChange;
2647
+ constructor(props: ITextInputLineComponentProps);
2648
+ componentWillUnmount(): void;
2649
+ shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
2650
+ value: string;
2651
+ dragging: boolean;
2652
+ }): boolean;
2653
+ raiseOnPropertyChanged(newValue: string, previousValue: string): void;
2654
+ getCurrentNumericValue(value: string): number;
2655
+ updateValue(value: string, valueToValidate?: string): void;
2656
+ incrementValue(amount: number): void;
2657
+ onKeyDown(event: KeyboardEvent): void;
2658
+
2659
+
2660
+
2661
+ }
2662
+
2663
+ }
2664
+ declare module "@babylonjs/node-particle-editor/lines/targetsProxy" {
2665
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2666
+ import { Observable } from "@babylonjs/core/Misc/observable";
2667
+ export const conflictingValuesPlaceholder = "\u2014";
2668
+ /**
2669
+ *
2670
+ * @param targets a list of selected targets
2671
+ * @param onPropertyChangedObservable
2672
+ * @param getProperty
2673
+ * @returns a proxy object that can be passed as a target into the input
2674
+ */
2675
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
2676
+
2677
+ }
2678
+ declare module "@babylonjs/node-particle-editor/lines/sliderLineComponent" {
2679
+ import * as React from "react";
2680
+ import { Observable } from "@babylonjs/core/Misc/observable";
2681
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2682
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2683
+ interface ISliderLineComponentProps {
2684
+ label: string;
2685
+ target?: any;
2686
+ propertyName?: string;
2687
+ minimum: number;
2688
+ maximum: number;
2689
+ step: number;
2690
+ directValue?: number;
2691
+ useEuler?: boolean;
2692
+ onChange?: (value: number) => void;
2693
+ onInput?: (value: number) => void;
2694
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2695
+ decimalCount?: number;
2696
+ margin?: boolean;
2697
+ icon?: string;
2698
+ iconLabel?: string;
2699
+ lockObject: LockObject;
2700
+ unit?: React.ReactNode;
2701
+ allowOverflow?: boolean;
2702
+ }
2703
+ export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
2704
+ value: number;
2705
+ }> {
2706
+ private _localChange;
2707
+ constructor(props: ISliderLineComponentProps);
2708
+ shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
2709
+ value: number;
2710
+ }): boolean;
2711
+ onChange(newValueString: any): void;
2712
+ onInput(newValueString: any): void;
2713
+ prepareDataToRead(value: number): number;
2714
+ onCopyClick(): void;
2715
+
2716
+
2717
+
2718
+ }
2719
+ export {};
2720
+
2721
+ }
2722
+ declare module "@babylonjs/node-particle-editor/lines/radioLineComponent" {
2723
+ import * as React from "react";
2724
+ import { Observable } from "@babylonjs/core/Misc/observable";
2725
+ interface IRadioButtonLineComponentProps {
2726
+ onSelectionChangedObservable: Observable<RadioButtonLineComponent>;
2727
+ label: string;
2728
+ isSelected: () => boolean;
2729
+ onSelect: () => void;
2730
+ icon?: string;
2731
+ iconLabel?: string;
2732
+ }
2733
+ export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
2734
+ isSelected: boolean;
2735
+ }> {
2736
+ private _onSelectionChangedObserver;
2737
+ constructor(props: IRadioButtonLineComponentProps);
2738
+ componentDidMount(): void;
2739
+ componentWillUnmount(): void;
2740
+ onChange(): void;
2741
+
2742
+ }
2743
+ export {};
2744
+
2745
+ }
2746
+ declare module "@babylonjs/node-particle-editor/lines/optionsLineComponent" {
2747
+ import * as React from "react";
2748
+ import { Observable } from "@babylonjs/core/Misc/observable";
2749
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2750
+ import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
2751
+ export const Null_Value: number;
2752
+ export interface IOptionsLineProps {
2753
+ label: string;
2754
+ target: any;
2755
+ propertyName: string;
2756
+ options: IInspectableOptions[];
2757
+ noDirectUpdate?: boolean;
2758
+ onSelect?: (value: number | string) => void;
2759
+ extractValue?: (target: any) => number | string;
2760
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2761
+ allowNullValue?: boolean;
2762
+ icon?: string;
2763
+ iconLabel?: string;
2764
+ className?: string;
2765
+ valuesAreStrings?: boolean;
2766
+ defaultIfNull?: number;
2767
+ }
2768
+ export class OptionsLine extends React.Component<IOptionsLineProps, {
2769
+ value: number | string;
2770
+ }> {
2771
+ private _localChange;
2772
+ private _remapValueIn;
2773
+ private _remapValueOut;
2774
+ private _getValue;
2775
+ constructor(props: IOptionsLineProps);
2776
+ shouldComponentUpdate(nextProps: IOptionsLineProps, nextState: {
2777
+ value: number;
2778
+ }): boolean;
2779
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
2780
+ setValue(value: string | number): void;
2781
+ updateValue(valueString: string): void;
2782
+ onCopyClickStr(): string;
2783
+ private _renderFluent;
2784
+ private _renderOriginal;
2785
+
2786
+ }
2787
+
2788
+ }
2789
+ declare module "@babylonjs/node-particle-editor/lines/numericInputComponent" {
2790
+ import * as React from "react";
2791
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2792
+ interface INumericInputProps {
2793
+ label: string;
2794
+ labelTooltip?: string;
2795
+ value: number;
2796
+ step?: number;
2797
+ onChange: (value: number) => void;
2798
+ precision?: number;
2799
+ icon?: string;
2800
+ iconLabel?: string;
2801
+ lockObject: LockObject;
2802
+ }
2803
+ export class NumericInput extends React.Component<INumericInputProps, {
2804
+ value: string;
2805
+ }> {
2806
+ static defaultProps: {
2807
+ step: number;
2808
+ };
2809
+ private _localChange;
2810
+ constructor(props: INumericInputProps);
2811
+ componentWillUnmount(): void;
2812
+ shouldComponentUpdate(nextProps: INumericInputProps, nextState: {
2813
+ value: string;
2814
+ }): boolean;
2815
+ updateValue(valueString: string): void;
2816
+ onBlur(): void;
2817
+ incrementValue(amount: number): void;
2818
+ onKeyDown(evt: React.KeyboardEvent<HTMLInputElement>): void;
2819
+
2820
+ }
2821
+ export {};
2822
+
2823
+ }
2824
+ declare module "@babylonjs/node-particle-editor/lines/messageLineComponent" {
2825
+ import * as React from "react";
2826
+
2827
+ interface IMessageLineComponentProps {
2828
+ text: string;
2829
+ color?: string;
2830
+ icon?: any;
2831
+ }
2832
+ export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
2833
+ constructor(props: IMessageLineComponentProps);
2834
+
2835
+ }
2836
+ export {};
2837
+
2838
+ }
2839
+ declare module "@babylonjs/node-particle-editor/lines/matrixLineComponent" {
2840
+ import * as React from "react";
2841
+ import { Vector3, Vector4 } from "@babylonjs/core/Maths/math.vector";
2842
+ import { Matrix } from "@babylonjs/core/Maths/math.vector";
2843
+ import { Observable } from "@babylonjs/core/Misc/observable";
2844
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
2845
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
2846
+ interface IMatrixLineComponentProps {
2847
+ label: string;
2848
+ target: any;
2849
+ propertyName: string;
2850
+ step?: number;
2851
+ onChange?: (newValue: Matrix) => void;
2852
+ onModeChange?: (mode: number) => void;
2853
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2854
+ mode?: number;
2855
+ lockObject: LockObject;
2856
+ }
2857
+ export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
2858
+ value: Matrix;
2859
+ mode: number;
2860
+ angle: number;
2861
+ }> {
2862
+ private _localChange;
2863
+ constructor(props: IMatrixLineComponentProps);
2864
+ shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: {
2865
+ value: Matrix;
2866
+ mode: number;
2867
+ angle: number;
2868
+ }): boolean;
2869
+ raiseOnPropertyChanged(previousValue: Vector3): void;
2870
+ updateMatrix(): void;
2871
+ updateRow(value: Vector4, row: number): void;
2872
+ updateBasedOnMode(value: number): void;
2873
+
2874
+ }
2875
+ export {};
2876
+
2877
+ }
2878
+ declare module "@babylonjs/node-particle-editor/lines/linkButtonComponent" {
2879
+ import * as React from "react";
2880
+
2881
+ interface ILinkButtonComponentProps {
2882
+ label: string;
2883
+ buttonLabel: string;
2884
+ url?: string;
2885
+ onClick: () => void;
2886
+ icon?: any;
2887
+ onIconClick?: () => void;
2888
+ }
2889
+ export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
2890
+ constructor(props: ILinkButtonComponentProps);
2891
+ onLink(): void;
2892
+
2893
+ }
2894
+ export {};
2895
+
2896
+ }
2897
+ declare module "@babylonjs/node-particle-editor/lines/lineWithFileButtonComponent" {
2898
+ import * as React from "react";
2899
+ interface ILineWithFileButtonComponentProps {
2900
+ title: string;
2901
+ closed?: boolean;
2902
+ multiple?: boolean;
2903
+ label: string;
2904
+ iconImage: any;
2905
+ onIconClick: (file: File) => void;
2906
+ accept: string;
2907
+ uploadName?: string;
2908
+ }
2909
+ export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
2910
+ isExpanded: boolean;
2911
+ }> {
2912
+ private _uploadRef;
2913
+ constructor(props: ILineWithFileButtonComponentProps);
2914
+ onChange(evt: any): void;
2915
+ switchExpandedState(): void;
2916
+
2917
+ }
2918
+ export {};
2919
+
2920
+ }
2921
+ declare module "@babylonjs/node-particle-editor/lines/lineContainerComponent" {
2922
+ import * as React from "react";
2923
+ import { ISelectedLineContainer } from "@babylonjs/node-particle-editor/lines/iSelectedLineContainer";
2924
+ interface ILineContainerComponentProps {
2925
+ selection?: ISelectedLineContainer;
2926
+ title: string;
2927
+ children: any[] | any;
2928
+ closed?: boolean;
2929
+ }
2930
+ export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
2931
+ isExpanded: boolean;
2932
+ isHighlighted: boolean;
2933
+ }> {
2934
+ constructor(props: ILineContainerComponentProps);
2935
+ switchExpandedState(): void;
2936
+
2937
+ componentDidMount(): void;
2938
+
2939
+ }
2940
+ export {};
2941
+
2942
+ }
2943
+ declare module "@babylonjs/node-particle-editor/lines/inputArrowsComponent" {
2944
+ import * as React from "react";
2945
+ interface IInputArrowsComponentProps {
2946
+ incrementValue: (amount: number) => void;
2947
+ setDragging: (dragging: boolean) => void;
2948
+ }
2949
+ export class InputArrowsComponent extends React.Component<IInputArrowsComponentProps> {
2950
+ private _arrowsRef;
2951
+ private _drag;
2952
+ private _releaseListener;
2953
+ private _lockChangeListener;
2954
+
2955
+ }
2956
+ export {};
2957
+
2958
+ }
2959
+ declare module "@babylonjs/node-particle-editor/lines/indentedTextLineComponent" {
2960
+ import * as React from "react";
2961
+ interface IIndentedTextLineComponentProps {
2962
+ value?: string;
2963
+ color?: string;
2964
+ underline?: boolean;
2965
+ onLink?: () => void;
2966
+ url?: string;
2967
+ additionalClass?: string;
2968
+ }
2969
+ export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
2970
+ constructor(props: IIndentedTextLineComponentProps);
2971
+ onLink(): void;
2972
+
2973
+
2974
+ }
2975
+ export {};
2976
+
2977
+ }
2978
+ declare module "@babylonjs/node-particle-editor/lines/iconComponent" {
2979
+ import * as React from "react";
2980
+ interface IIconComponentProps {
2981
+ icon: string;
2982
+ label?: string;
2983
+ }
2984
+ export class IconComponent extends React.Component<IIconComponentProps> {
2985
+
2986
+ }
2987
+ export {};
2988
+
2989
+ }
2990
+ declare module "@babylonjs/node-particle-editor/lines/iconButtonLineComponent" {
2991
+ import * as React from "react";
2992
+ export interface IIconButtonLineComponentProps {
2993
+ icon: string;
2994
+ onClick: () => void;
2995
+ tooltip: string;
2996
+ active?: boolean;
2997
+ }
2998
+ export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
2999
+ constructor(props: IIconButtonLineComponentProps);
3000
+
3001
+ }
3002
+
3003
+ }
3004
+ declare module "@babylonjs/node-particle-editor/lines/iSelectedLineContainer" {
3005
+ export interface ISelectedLineContainer {
3006
+ selectedLineContainerTitles: Array<string>;
3007
+ selectedLineContainerTitlesNoFocus: Array<string>;
3008
+ }
3009
+
3010
+ }
3011
+ declare module "@babylonjs/node-particle-editor/lines/hexLineComponent" {
3012
+ import * as React from "react";
3013
+ import { Observable } from "@babylonjs/core/Misc/observable";
3014
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
3015
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
3016
+ interface IHexLineComponentProps {
3017
+ label: string;
3018
+ target: any;
3019
+ propertyName: string;
3020
+ lockObject?: LockObject;
3021
+ onChange?: (newValue: number) => void;
3022
+ isInteger?: boolean;
3023
+ replaySourceReplacement?: string;
3024
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3025
+ additionalClass?: string;
3026
+ step?: string;
3027
+ digits?: number;
3028
+ useEuler?: boolean;
3029
+ min?: number;
3030
+ icon?: string;
3031
+ iconLabel?: string;
3032
+ }
3033
+ export class HexLineComponent extends React.Component<IHexLineComponentProps, {
3034
+ value: string;
3035
+ }> {
3036
+ private _localChange;
3037
+ private _store;
3038
+ private _propertyChange;
3039
+ constructor(props: IHexLineComponentProps);
3040
+ componentWillUnmount(): void;
3041
+ shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
3042
+ value: string;
3043
+ }): boolean;
3044
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
3045
+ convertToHexString(valueString: string): string;
3046
+ updateValue(valueString: string, raisePropertyChanged: boolean): void;
3047
+ lock(): void;
3048
+ unlock(): void;
3049
+
3050
+ }
3051
+ export {};
3052
+
3053
+ }
3054
+ declare module "@babylonjs/node-particle-editor/lines/floatLineComponent" {
3055
+ import * as React from "react";
3056
+ import { Observable } from "@babylonjs/core/Misc/observable";
3057
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
3058
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
3059
+ interface IFloatLineComponentProps {
3060
+ label: string;
3061
+ target: any;
3062
+ propertyName: string;
3063
+ lockObject: LockObject;
3064
+ onChange?: (newValue: number) => void;
3065
+ isInteger?: boolean;
3066
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3067
+ additionalClass?: string;
3068
+ step?: string;
3069
+ digits?: number;
3070
+ useEuler?: boolean;
3071
+ min?: number;
3072
+ max?: number;
3073
+ smallUI?: boolean;
3074
+ onEnter?: (newValue: number) => void;
3075
+ icon?: string;
3076
+ iconLabel?: string;
3077
+ defaultValue?: number;
3078
+ arrows?: boolean;
3079
+ unit?: React.ReactNode;
3080
+ onDragStart?: (newValue: number) => void;
3081
+ onDragStop?: (newValue: number) => void;
3082
+ disabled?: boolean;
3083
+ }
3084
+ export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
3085
+ value: string;
3086
+ dragging: boolean;
3087
+ }> {
3088
+ private _localChange;
3089
+ private _store;
3090
+ constructor(props: IFloatLineComponentProps);
3091
+ componentWillUnmount(): void;
3092
+ getValueString(value: any, props: IFloatLineComponentProps): string;
3093
+ shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
3094
+ value: string;
3095
+ dragging: boolean;
3096
+ }): boolean;
3097
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
3098
+ updateValue(valueString: string): void;
3099
+ lock(): void;
3100
+ unlock(): void;
3101
+ incrementValue(amount: number, processStep?: boolean): void;
3102
+ onKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void;
3103
+ onCopyClick(): void;
3104
+
3105
+ }
3106
+ export {};
3107
+
3108
+ }
3109
+ declare module "@babylonjs/node-particle-editor/lines/fileMultipleButtonLineComponent" {
3110
+ import * as React from "react";
3111
+ interface IFileMultipleButtonLineComponentProps {
3112
+ label: string;
3113
+ onClick: (event: any) => void;
3114
+ accept: string;
3115
+ icon?: string;
3116
+ iconLabel?: string;
3117
+ }
3118
+ export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
3119
+ private static _IdGenerator;
3120
+ private _id;
3121
+ private _uploadInputRef;
3122
+ constructor(props: IFileMultipleButtonLineComponentProps);
3123
+ onChange(evt: any): void;
3124
+
3125
+ }
3126
+ export {};
3127
+
3128
+ }
3129
+ declare module "@babylonjs/node-particle-editor/lines/fileButtonLineComponent" {
3130
+ import * as React from "react";
3131
+ interface IFileButtonLineProps {
3132
+ label: string;
3133
+ onClick: (file: File) => void;
3134
+ accept: string;
3135
+ icon?: string;
3136
+ iconLabel?: string;
3137
+ }
3138
+ export class FileButtonLine extends React.Component<IFileButtonLineProps> {
3139
+ private static _IdGenerator;
3140
+ private _id;
3141
+ private _uploadInputRef;
3142
+ constructor(props: IFileButtonLineProps);
3143
+ onChange(evt: any): void;
3144
+
3145
+
3146
+
3147
+ }
3148
+ export {};
3149
+
3150
+ }
3151
+ declare module "@babylonjs/node-particle-editor/lines/draggableLineWithButtonComponent" {
3152
+ import * as React from "react";
3153
+ export interface IDraggableLineWithButtonComponent {
3154
+ format: string;
3155
+ data: string;
3156
+ tooltip: string;
3157
+ iconImage: any;
3158
+ onIconClick: (value: string) => void;
3159
+ iconTitle: string;
3160
+ lenSuffixToRemove?: number;
3161
+ }
3162
+ export class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> {
3163
+ constructor(props: IDraggableLineWithButtonComponent);
3164
+
3165
+ }
3166
+
3167
+ }
3168
+ declare module "@babylonjs/node-particle-editor/lines/draggableLineComponent" {
3169
+ import * as React from "react";
3170
+ export interface IButtonLineComponentProps {
3171
+ format: string;
3172
+ data: string;
3173
+ tooltip: string;
3174
+ }
3175
+ export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
3176
+ constructor(props: IButtonLineComponentProps);
3177
+
3178
+ }
3179
+
3180
+ }
3181
+ declare module "@babylonjs/node-particle-editor/lines/colorPickerComponent" {
3182
+ import * as React from "react";
3183
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
3184
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
3185
+ export interface IColorPickerLineProps {
3186
+ value: Color4 | Color3;
3187
+ linearHint?: boolean;
3188
+ onColorChanged: (newOne: string) => void;
3189
+ icon?: string;
3190
+ iconLabel?: string;
3191
+ shouldPopRight?: boolean;
3192
+ lockObject?: LockObject;
3193
+ }
3194
+ interface IColorPickerComponentState {
3195
+ pickerEnabled: boolean;
3196
+ color: Color3 | Color4;
3197
+ hex: string;
3198
+ }
3199
+ export class ColorPickerLine extends React.Component<IColorPickerLineProps, IColorPickerComponentState> {
3200
+ private _floatRef;
3201
+ private _floatHostRef;
3202
+ constructor(props: IColorPickerLineProps);
3203
+ syncPositions(): void;
3204
+ shouldComponentUpdate(nextProps: IColorPickerLineProps, nextState: IColorPickerComponentState): boolean;
3205
+ getHexString(props?: Readonly<IColorPickerLineProps>): string;
3206
+ componentDidUpdate(): void;
3207
+ componentDidMount(): void;
3208
+
3209
+ }
3210
+ export {};
3211
+
3212
+ }
3213
+ declare module "@babylonjs/node-particle-editor/lines/colorLineComponent" {
3214
+ import * as React from "react";
3215
+ import { Observable } from "@babylonjs/core/Misc/observable";
3216
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
3217
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
3218
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
3219
+ export interface IColorLineProps {
3220
+ label: string;
3221
+ target?: any;
3222
+ propertyName: string;
3223
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3224
+ onChange?: () => void;
3225
+ isLinear?: boolean;
3226
+ icon?: string;
3227
+ iconLabel?: string;
3228
+ disableAlpha?: boolean;
3229
+ lockObject: LockObject;
3230
+ }
3231
+ interface IColorLineComponentState {
3232
+ isExpanded: boolean;
3233
+ color: Color4;
3234
+ }
3235
+ export class ColorLine extends React.Component<IColorLineProps, IColorLineComponentState> {
3236
+ constructor(props: IColorLineProps);
3237
+ shouldComponentUpdate(nextProps: IColorLineProps, nextState: IColorLineComponentState): boolean;
3238
+ getValue(props?: Readonly<IColorLineProps>): Color4;
3239
+ setColorFromString(colorString: string): void;
3240
+ setColor(newColor: Color4): void;
3241
+ switchExpandState(): void;
3242
+ updateStateR(value: number): void;
3243
+ updateStateG(value: number): void;
3244
+ updateStateB(value: number): void;
3245
+ updateStateA(value: number): void;
3246
+ private _convertToColor;
3247
+ private _toColor3;
3248
+ onCopyClick(): void;
3249
+
3250
+
3251
+
3252
+ }
3253
+ export {};
3254
+
3255
+ }
3256
+ declare module "@babylonjs/node-particle-editor/lines/color4LineComponent" {
3257
+ import * as React from "react";
3258
+ import { Observable } from "@babylonjs/core/Misc/observable";
3259
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
3260
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
3261
+ export interface IColor4LineComponentProps {
3262
+ label: string;
3263
+ target?: any;
3264
+ propertyName: string;
3265
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3266
+ onChange?: () => void;
3267
+ isLinear?: boolean;
3268
+ icon?: string;
3269
+ iconLabel?: string;
3270
+ lockObject: LockObject;
3271
+ }
3272
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
3273
+
3274
+ }
3275
+
3276
+ }
3277
+ declare module "@babylonjs/node-particle-editor/lines/color3LineComponent" {
3278
+ import * as React from "react";
3279
+ import { Observable } from "@babylonjs/core/Misc/observable";
3280
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
3281
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
3282
+ export interface IColor3LineComponentProps {
3283
+ label: string;
3284
+ target: any;
3285
+ propertyName: string;
3286
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3287
+ isLinear?: boolean;
3288
+ icon?: string;
3289
+ lockObject: LockObject;
3290
+ iconLabel?: string;
3291
+ onChange?: () => void;
3292
+ }
3293
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
3294
+
3295
+ }
3296
+
3297
+ }
3298
+ declare module "@babylonjs/node-particle-editor/lines/checkBoxLineComponent" {
3299
+ import * as React from "react";
3300
+ import { Observable } from "@babylonjs/core/Misc/observable";
3301
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
3302
+
3303
+ export interface ICheckBoxLineComponentProps {
3304
+ label?: string;
3305
+ target?: any;
3306
+ propertyName?: string;
3307
+ isSelected?: boolean | (() => boolean);
3308
+ onSelect?: (value: boolean) => void;
3309
+ onValueChanged?: () => void;
3310
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3311
+ disabled?: boolean;
3312
+ icon?: string;
3313
+ iconLabel?: string;
3314
+ faIcons?: {
3315
+ enabled: any;
3316
+ disabled: any;
3317
+ };
3318
+ large?: boolean;
3319
+ }
3320
+ export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
3321
+ isSelected: boolean;
3322
+ isDisabled?: boolean;
3323
+ isConflict: boolean;
3324
+ }> {
3325
+ private _localChange;
3326
+ constructor(props: ICheckBoxLineComponentProps);
3327
+ shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
3328
+ isSelected: boolean;
3329
+ isDisabled: boolean;
3330
+ isConflict: boolean;
3331
+ }): boolean;
3332
+ onChange(): void;
3333
+ onCopyClick(): void;
3334
+
3335
+
3336
+
3337
+ }
3338
+
3339
+ }
3340
+ declare module "@babylonjs/node-particle-editor/lines/buttonLineComponent" {
3341
+ import * as React from "react";
3342
+ export interface IButtonLineComponentProps {
3343
+ label: string;
3344
+ onClick: () => void;
3345
+ icon?: string;
3346
+ iconLabel?: string;
3347
+ isDisabled?: boolean;
3348
+ }
3349
+ export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
3350
+ constructor(props: IButtonLineComponentProps);
3351
+
3352
+
3353
+
3354
+ }
3355
+
3356
+ }
3357
+ declare module "@babylonjs/node-particle-editor/lines/booleanLineComponent" {
3358
+ import * as React from "react";
3359
+ export interface IBooleanLineComponentProps {
3360
+ label: string;
3361
+ value: boolean;
3362
+ icon?: string;
3363
+ iconLabel?: string;
3364
+ }
3365
+ export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
3366
+ constructor(props: IBooleanLineComponentProps);
3367
+
3368
+ }
3369
+
3370
+ }
3371
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/textarea" {
3372
+
3373
+ import { FunctionComponent } from "react";
3374
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3375
+ export type TextareaProps = BaseComponentProps<string> & {
3376
+ placeholder?: string;
3377
+ };
3378
+ /**
3379
+ * This is a texarea box that stops propagation of change/keydown events
3380
+ * @param props
3381
+ * @returns
3382
+ */
3383
+ export const Textarea: FunctionComponent<any>;
3384
+
3385
+ }
3386
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/syncedSlider" {
3387
+ import { FunctionComponent } from "react";
3388
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3389
+ export type SyncedSliderProps = BaseComponentProps<number> & {
3390
+ min?: number;
3391
+ max?: number;
3392
+ step?: number;
3393
+ };
3394
+ /**
3395
+ * Component which synchronizes a slider and an input field, allowing the user to change a value using either control
3396
+ * @param props
3397
+ * @returns SyncedSlider component
3398
+ */
3399
+ export const SyncedSliderInput: FunctionComponent<SyncedSliderProps>;
3400
+
3401
+ }
3402
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/switch" {
3403
+ import { FunctionComponent } from "react";
3404
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3405
+ export type SwitchProps = BaseComponentProps<boolean>;
3406
+ /**
3407
+ * This is a primitive fluent boolean switch component whose only knowledge is the shared styling across all tools
3408
+ * @param props
3409
+ * @returns Switch component
3410
+ */
3411
+ export const Switch: FunctionComponent<SwitchProps>;
3412
+
3413
+ }
3414
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/spinButton" {
3415
+ import { FunctionComponent } from "react";
3416
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3417
+ export type SpinButtonProps = BaseComponentProps<number>;
3418
+ export const SpinButton: FunctionComponent<SpinButtonProps>;
3419
+
3420
+ }
3421
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/link" {
3422
+
3423
+
3424
+ }
3425
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/input" {
3426
+ import { FunctionComponent } from "react";
3427
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3428
+ export type InputProps<T extends string | number> = BaseComponentProps<T> & {
3429
+ step?: number;
3430
+ placeholder?: string;
3431
+ min?: number;
3432
+ max?: number;
3433
+ };
3434
+ /**
3435
+ * This is an input text box that stops propagation of change events and sets its width based on the type of input (text or number)
3436
+ * @param props
3437
+ * @returns
3438
+ */
3439
+ export const Input: FunctionComponent<InputProps<string | number>>;
3440
+
3441
+ }
3442
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/dropdown" {
3443
+ import { FunctionComponent } from "react";
3444
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3445
+ export type AcceptedDropdownValue = string | number;
3446
+ export type DropdownOption = {
3447
+ /**
3448
+ * Defines the visible part of the option
3449
+ */
3450
+ label: string;
3451
+ /**
3452
+ * Defines the value part of the option
3453
+ */
3454
+ value: AcceptedDropdownValue;
3455
+ };
3456
+ export type DropdownProps = BaseComponentProps<AcceptedDropdownValue | undefined> & {
3457
+ options: DropdownOption[];
3458
+ includeUndefined?: boolean;
3459
+ };
3460
+ /**
3461
+ * Renders a fluent UI dropdown component for the options passed in, and an additional 'Not Defined' option if includeUndefined is set to true
3462
+ * @param props
3463
+ * @returns dropdown component
3464
+ */
3465
+ export const Dropdown: FunctionComponent<DropdownProps>;
3466
+
3467
+ }
3468
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/colorPicker" {
3469
+ import { FunctionComponent } from "react";
3470
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
3471
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3472
+ export type ColorPickerProps<C extends Color3 | Color4> = {
3473
+ isLinearMode?: boolean;
3474
+ } & BaseComponentProps<C>;
3475
+ export const ColorPickerPopup: FunctionComponent<ColorPickerProps<Color3 | Color4>>;
3476
+ type HsvKey = "h" | "s" | "v";
3477
+ export type InputHexProps = BaseComponentProps<Color3 | Color4> & {
3478
+ label?: string;
3479
+ linearHex?: boolean;
3480
+ isLinearMode?: boolean;
3481
+ };
3482
+ /**
3483
+ * Component which displays the passed in color's HEX value, either in linearSpace (if linearHex is true) or in gamma space
3484
+ * When the hex color is changed by user, component calculates the new Color3/4 value and calls onChange
3485
+ *
3486
+ * Component uses the isLinearMode boolean to display an informative label regarding linear / gamma space
3487
+ * @param props - The properties for the InputHexField component.
3488
+ * @returns
3489
+ */
3490
+ export const InputHexField: FunctionComponent<InputHexProps>;
3491
+ type InputHsvFieldProps = {
3492
+ color: Color3 | Color4;
3493
+ label: string;
3494
+ hsvKey: HsvKey;
3495
+ onChange: (color: Color3 | Color4) => void;
3496
+ max: number;
3497
+ scale?: number;
3498
+ };
3499
+ /**
3500
+ * In the HSV (Hue, Saturation, Value) color model, Hue (H) ranges from 0 to 360 degrees, representing the color's position on the color wheel.
3501
+ * Saturation (S) ranges from 0 to 100%, indicating the intensity or purity of the color, with 0 being shades of gray and 100 being a fully saturated color.
3502
+ * Value (V) ranges from 0 to 100%, representing the brightness of the color, with 0 being black and 100 being the brightest.
3503
+ * @param props - The properties for the InputHsvField component.
3504
+ */
3505
+ export const InputHsvField: FunctionComponent<InputHsvFieldProps>;
3506
+ export {};
3507
+
3508
+ }
3509
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/checkbox" {
3510
+ import { FunctionComponent } from "react";
3511
+ import { BaseComponentProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3512
+ export type CheckboxProps = BaseComponentProps<boolean>;
3513
+ /**
3514
+ * This is a primitive fluent checkbox that can both read and write checked state
3515
+ * @param props
3516
+ * @returns Checkbox component
3517
+ */
3518
+ export const Checkbox: FunctionComponent<CheckboxProps>;
3519
+
3520
+ }
3521
+ declare module "@babylonjs/node-particle-editor/fluent/primitives/accordion" {
3522
+ import { FunctionComponent, PropsWithChildren } from "react";
3523
+ export type AccordionSectionProps = {
3524
+ title: string;
3525
+ };
3526
+ export const AccordionSection: FunctionComponent<PropsWithChildren<AccordionSectionProps>>;
3527
+ export const Accordion: FunctionComponent<PropsWithChildren>;
3528
+
3529
+ }
3530
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/vectorPropertyLine" {
3531
+ import { FunctionComponent } from "react";
3532
+ import { BaseComponentProps, PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3533
+ import { Vector4 } from "@babylonjs/core/Maths/math.vector";
3534
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector";
3535
+ export type VectorPropertyLineProps<V extends Vector3 | Vector4> = BaseComponentProps<V> & PropertyLineProps & {
3536
+ /**
3537
+ * If passed, all sliders will use this for the min value
3538
+ */
3539
+ min?: number;
3540
+ /**
3541
+ * If passed, all sliders will use this for the max value
3542
+ */
3543
+ max?: number;
3544
+ /**
3545
+ * If passed, the UX will use the conversion functions to display/update values
3546
+ */
3547
+ valueConverter?: {
3548
+ /**
3549
+ * Will call from(val) before displaying in the UX
3550
+ */
3551
+ from: (val: number) => number;
3552
+ /**
3553
+ * Will call to(val) before calling onChange
3554
+ */
3555
+ to: (val: number) => number;
3556
+ };
3557
+ };
3558
+ type RotationVectorPropertyLineProps = VectorPropertyLineProps<Vector3> & {
3559
+ /**
3560
+ * Display angles as degrees instead of radians
3561
+ */
3562
+ useDegrees?: boolean;
3563
+ };
3564
+ export const RotationVectorPropertyLine: FunctionComponent<RotationVectorPropertyLineProps>;
3565
+ export const Vector3PropertyLine: FunctionComponent<VectorPropertyLineProps<Vector3>>;
3566
+ export const Vector4PropertyLine: FunctionComponent<VectorPropertyLineProps<Vector4>>;
3567
+ export {};
3568
+
3569
+ }
3570
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/textPropertyLine" {
3571
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3572
+ import { FunctionComponent } from "react";
3573
+ type TextProps = {
3574
+ value: string;
3575
+ tooltip?: string;
3576
+ };
3577
+ /**
3578
+ * Wraps text in a property line
3579
+ * @param props - PropertyLineProps and TextProps
3580
+ * @returns property-line wrapped text
3581
+ */
3582
+ export const TextPropertyLine: FunctionComponent<PropertyLineProps & TextProps>;
3583
+ export {};
3584
+
3585
+ }
3586
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/syncedSliderLine" {
3587
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3588
+ import { SyncedSliderProps } from "@babylonjs/node-particle-editor/fluent/primitives/syncedSlider";
3589
+ import { FunctionComponent } from "react";
3590
+ type SyncedSliderLineProps = SyncedSliderProps & PropertyLineProps;
3591
+ /**
3592
+ * Renders a simple wrapper around the SyncedSliderInput
3593
+ * @param props
3594
+ * @returns
3595
+ */
3596
+ export const SyncedSliderLine: FunctionComponent<SyncedSliderLineProps>;
3597
+ export {};
3598
+
3599
+ }
3600
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/switchPropertyLine" {
3601
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3602
+ import { FunctionComponent } from "react";
3603
+ import { SwitchProps } from "@babylonjs/node-particle-editor/fluent/primitives/switch";
3604
+ /**
3605
+ * Wraps a switch in a property line
3606
+ * @param props - The properties for the switch and property line
3607
+ * @returns A React element representing the property line with a switch
3608
+ */
3609
+ export const SwitchPropertyLine: FunctionComponent<PropertyLineProps & SwitchProps>;
3610
+
3611
+ }
3612
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/propertyLine" {
3613
+ import { FunctionComponent } from "react";
3614
+ export type PropertyLineProps = {
3615
+ /**
3616
+ * The name of the property to display in the property line.
3617
+ */
3618
+ label: string;
3619
+ /**
3620
+ * Optional description for the property, shown on hover of the info icon
3621
+ */
3622
+ description?: string;
3623
+ /**
3624
+ * Optional function returning a string to copy to clipboard.
3625
+ */
3626
+ onCopy?: () => string;
3627
+ /**
3628
+ * If supplied, an 'expand' icon will be shown which, when clicked, renders this component within the property line.
3629
+ */
3630
+ expandedContent?: JSX.Element;
3631
+ /**
3632
+ * Link to the documentation for this property, available from the info icon either linked from the description (if provided) or defalt 'docs' text
3633
+ */
3634
+ docLink?: string;
3635
+ };
3636
+ export const LineContainer: import("react").ForwardRefExoticComponent<{
3637
+ children?: import("react").ReactNode | undefined;
3638
+ } & import("react").RefAttributes<HTMLDivElement>>;
3639
+ export type BaseComponentProps<T> = {
3640
+ /**
3641
+ * The value of the property to be displayed and modified.
3642
+ */
3643
+ value: T;
3644
+ /**
3645
+ * Callback function to handle changes to the value
3646
+ */
3647
+ onChange: (value: T) => void;
3648
+ /**
3649
+ * Optional flag to disable the component, preventing any interaction.
3650
+ */
3651
+ disabled?: boolean;
3652
+ /**
3653
+ * Optional class name to apply custom styles to the component.
3654
+ */
3655
+ className?: string;
3656
+ };
3657
+ /**
3658
+ * A reusable component that renders a property line with a label and child content, and an optional description, copy button, and expandable section.
3659
+ *
3660
+ * @param props - The properties for the PropertyLine component.
3661
+ * @returns A React element representing the property line.
3662
+ *
3663
+ */
3664
+ export const PropertyLine: import("react").ForwardRefExoticComponent<PropertyLineProps & {
3665
+ children?: import("react").ReactNode | undefined;
3666
+ } & import("react").RefAttributes<HTMLDivElement>>;
3667
+ export const PlaceholderPropertyLine: FunctionComponent<BaseComponentProps<any> & PropertyLineProps>;
3668
+
3669
+ }
3670
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/linkPropertyLine" {
3671
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3672
+ import { FunctionComponent } from "react";
3673
+ type LinkProps = {
3674
+ value: string;
3675
+ tooltip?: string;
3676
+ onLink?: () => void;
3677
+ url?: string;
3678
+ };
3679
+ /**
3680
+ * Wraps a link in a property line
3681
+ * @param props - PropertyLineProps and LinkProps
3682
+ * @returns property-line wrapped link
3683
+ */
3684
+ export const LinkPropertyLine: FunctionComponent<PropertyLineProps & LinkProps>;
3685
+ export {};
3686
+
3687
+ }
3688
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/inputPropertyLine" {
3689
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3690
+ import { FunctionComponent } from "react";
3691
+ import { InputProps } from "@babylonjs/node-particle-editor/fluent/primitives/input";
3692
+ export const TextInputPropertyLine: FunctionComponent<InputProps<string> & PropertyLineProps>;
3693
+ export const FloatInputPropertyLine: FunctionComponent<InputProps<number> & PropertyLineProps>;
3694
+
3695
+ }
3696
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/hexLineComponent" {
3697
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3698
+ import { FunctionComponent } from "react";
3699
+ import { InputHexProps } from "@babylonjs/node-particle-editor/fluent/primitives/colorPicker";
3700
+ /**
3701
+ * Wraps a hex input in a property line
3702
+ * @param props - PropertyLineProps and InputHexProps
3703
+ * @returns property-line wrapped input hex component
3704
+ */
3705
+ export const HexPropertyLine: FunctionComponent<InputHexProps & PropertyLineProps>;
3706
+
3707
+ }
3708
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/fluentToolWrapper" {
3709
+ import { PropsWithChildren, FunctionComponent } from "react";
3710
+
3711
+ export type ToolHostProps = {
3712
+ /**
3713
+ * Allows host to pass in a theme
3714
+ */
3715
+ customTheme?: any;
3716
+ /**
3717
+ * Can be set to true to disable the copy button in the tool's property lines. Default is false (copy enabled)
3718
+ */
3719
+ disableCopy?: boolean;
3720
+ };
3721
+ export const ToolContext: import("react").Context<{
3722
+ readonly useFluent: boolean;
3723
+ readonly disableCopy: boolean;
3724
+ }>;
3725
+ /**
3726
+ * For tools which are ready to move over the fluent, wrap the root of the tool (or the panel which you want fluentized) with this component
3727
+ * Today we will only enable fluent if the URL has the `newUX` query parameter is truthy
3728
+ * @param props
3729
+ * @returns
3730
+ */
3731
+ export const FluentToolWrapper: FunctionComponent<PropsWithChildren<ToolHostProps>>;
3732
+
3733
+ }
3734
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/fileUploadLine" {
3735
+ import { FunctionComponent } from "react";
3736
+ import { ButtonLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/buttonLine";
3737
+ type FileUploadLineProps = Omit<ButtonLineProps, "onClick"> & {
3738
+ onClick: (file: File) => void;
3739
+ accept: string;
3740
+ };
3741
+ export const FileUploadLine: FunctionComponent<FileUploadLineProps>;
3742
+ export {};
3743
+
3744
+ }
3745
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/dropdownPropertyLine" {
3746
+ import { DropdownProps } from "@babylonjs/node-particle-editor/fluent/primitives/dropdown";
3747
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3748
+ import { FunctionComponent } from "react";
3749
+ /**
3750
+ * Wraps a dropdown in a property line
3751
+ * @param props - PropertyLineProps and DropdownProps
3752
+ * @returns property-line wrapped dropdown
3753
+ */
3754
+ export const DropdownPropertyLine: FunctionComponent<PropertyLineProps & DropdownProps>;
3755
+
3756
+ }
3757
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/colorPropertyLine" {
3758
+ import { FunctionComponent } from "react";
3759
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3760
+ import { Color3 } from "@babylonjs/core/Maths/math.color";
3761
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
3762
+ import { ColorPickerProps } from "@babylonjs/node-particle-editor/fluent/primitives/colorPicker";
3763
+ export type ColorPropertyLineProps = ColorPickerProps<Color3 | Color4> & PropertyLineProps;
3764
+ export const Color3PropertyLine: FunctionComponent<ColorPickerProps<Color3> & PropertyLineProps>;
3765
+ export const Color4PropertyLine: FunctionComponent<ColorPickerProps<Color4> & PropertyLineProps>;
3766
+
3767
+ }
3768
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/checkboxPropertyLine" {
3769
+ import { PropertyLineProps } from "@babylonjs/node-particle-editor/fluent/hoc/propertyLine";
3770
+ import { FunctionComponent } from "react";
3771
+ import { CheckboxProps } from "@babylonjs/node-particle-editor/fluent/primitives/checkbox";
3772
+ /**
3773
+ * Wraps a checkbox in a property line
3774
+ * @param props - PropertyLineProps and CheckboxProps
3775
+ * @returns property-line wrapped checkbox
3776
+ */
3777
+ export const CheckboxPropertyLine: FunctionComponent<PropertyLineProps & CheckboxProps>;
3778
+
3779
+ }
3780
+ declare module "@babylonjs/node-particle-editor/fluent/hoc/buttonLine" {
3781
+ import { FunctionComponent } from "react";
3782
+ export type ButtonLineProps = {
3783
+ label: string;
3784
+ onClick: () => void;
3785
+ disabled?: boolean;
3786
+ icon?: string;
3787
+ title?: string;
3788
+ };
3789
+ /**
3790
+ * Wraps a button with a label in a line container
3791
+ * @param props Button props plus a label
3792
+ * @returns A button inside a line
3793
+ */
3794
+ export const ButtonLine: FunctionComponent<ButtonLineProps>;
3795
+
3796
+ }
3797
+ declare module "@babylonjs/node-particle-editor/components/classNames" {
3798
+ export function ClassNames(names: any, styleObject: any): string;
3799
+ export function JoinClassNames(styleObject: any, ...names: string[]): string;
3800
+
3801
+ }
3802
+ declare module "@babylonjs/node-particle-editor/components/Toggle" {
3803
+ export type ToggleProps = {
3804
+ toggled: "on" | "mixed" | "off";
3805
+ onToggle?: () => void;
3806
+ padded?: boolean;
3807
+ color?: "dark" | "light";
3808
+ };
3809
+ export const Toggle: React.FC<ToggleProps>;
3810
+
3811
+ }
3812
+ declare module "@babylonjs/node-particle-editor/components/TextInputWithSubmit" {
3813
+ export interface ITextInputProps {
3814
+ label?: string;
3815
+ placeholder?: string;
3816
+ submitValue: (newValue: string) => void;
3817
+ validateValue?: (value: string) => boolean;
3818
+ cancelSubmit?: () => void;
3819
+ }
3820
+ /**
3821
+ * This component represents a text input that can be submitted or cancelled on buttons
3822
+ * @param props properties
3823
+ * @returns TextInputWithSubmit element
3824
+ */
3825
+
3826
+
3827
+ }
3828
+ declare module "@babylonjs/node-particle-editor/components/MessageDialog" {
3829
+ import * as React from "react";
3830
+ export interface MessageDialogProps {
3831
+ message: string;
3832
+ isError: boolean;
3833
+ onClose?: () => void;
3834
+ }
3835
+ export const MessageDialog: React.FC<MessageDialogProps>;
3836
+
3837
+ }
3838
+ declare module "@babylonjs/node-particle-editor/components/Label" {
3839
+ import { ReactChild } from "react";
3840
+ export type LabelProps = {
3841
+ text: string;
3842
+ children?: ReactChild;
3843
+ color?: "dark" | "light";
3844
+ };
3845
+ export const Label: React.FC<LabelProps>;
3846
+
3847
+ }
3848
+ declare module "@babylonjs/node-particle-editor/components/Icon" {
3849
+ export type IconProps = {
3850
+ color?: "dark" | "light";
3851
+ icon: string;
3852
+ };
3853
+ export const Icon: React.FC<IconProps>;
3854
+
3855
+ }
3856
+ declare module "@babylonjs/node-particle-editor/components/Button" {
3857
+ import { PropsWithChildren } from "react";
3858
+ export type ButtonProps = {
3859
+ disabled?: boolean;
3860
+ active?: boolean;
3861
+ onClick?: () => void;
3862
+ color: "light" | "dark";
3863
+ size: "default" | "small" | "wide" | "smaller";
3864
+ title?: string;
3865
+ backgroundColor?: string;
3866
+ };
3867
+ export const Button: React.FC<PropsWithChildren<ButtonProps>>;
3868
+
3869
+ }
3870
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/useGraphContext" {
3871
+ /**
3872
+ * utility hook to assist using the graph context
3873
+ * @returns
3874
+ */
3875
+ export const useGraphContext: () => import("@babylonjs/node-particle-editor/components/reactGraphSystem/GraphContextManager").IGraphContext;
3876
+
3877
+ }
3878
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/NodeRenderer" {
3879
+ import { ComponentType, PropsWithChildren } from "react";
3880
+ import { Nullable } from "@babylonjs/core/types";
3881
+ export type IVisualRecordsType = Record<string, {
3882
+ x: number;
3883
+ y: number;
3884
+ }>;
3885
+ export type IConnectionType = {
3886
+ id: string;
3887
+ sourceId: string;
3888
+ targetId: string;
3889
+ };
3890
+ export type ICustomDataType = {
3891
+ type: string;
3892
+ value: any;
3893
+ };
3894
+ export type INodeType = {
3895
+ id: string;
3896
+ label: string;
3897
+ customData?: ICustomDataType;
3898
+ };
3899
+ /**
3900
+ * props for the node renderer
3901
+ */
3902
+ export interface INodeRendererProps {
3903
+ /**
3904
+ * array of connections between nodes
3905
+ */
3906
+ connections: IConnectionType[];
3907
+ /**
3908
+ * function called when a new connection is created
3909
+ */
3910
+ updateConnections: (sourceId: string, targetId: string) => void;
3911
+ /**
3912
+ * function called when a connection is deleted
3913
+ */
3914
+ deleteLine: (lineId: string) => void;
3915
+ /**
3916
+ * function called when a node is deleted
3917
+ */
3918
+ deleteNode: (nodeId: string) => void;
3919
+ /**
3920
+ * array of all nodes
3921
+ */
3922
+ nodes: INodeType[];
3923
+ /**
3924
+ * id of the node to highlight
3925
+ */
3926
+ highlightedNode?: Nullable<string>;
3927
+ /**
3928
+ * function to be called if a node is selected
3929
+ */
3930
+ selectNode?: (nodeId: Nullable<string>) => void;
3931
+ /**
3932
+ * id of this renderer
3933
+ */
3934
+ id: string;
3935
+ /**
3936
+ * optional list of custom components to be rendered inside nodes of
3937
+ * a certain type
3938
+ */
3939
+ customComponents?: Record<string, ComponentType<any>>;
3940
+ }
3941
+ /**
3942
+ * This component is a bridge between the app logic related to the graph, and the actual rendering
3943
+ * of it. It manages the nodes' positions and selection states.
3944
+ * @param props
3945
+ * @returns
3946
+ */
3947
+
3948
+
3949
+ }
3950
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphNodesContainer" {
3951
+ import { FC, PropsWithChildren } from "react";
3952
+ export interface IGraphContainerProps {
3953
+ onNodeMoved: (id: string, x: number, y: number) => void;
3954
+ id: string;
3955
+ }
3956
+ /**
3957
+ * This component contains all the nodes and handles their dragging
3958
+ * @param props properties
3959
+ * @returns graph node container element
3960
+ */
3961
+ export const GraphNodesContainer: FC<PropsWithChildren<IGraphContainerProps>>;
3962
+
3963
+ }
3964
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphNode" {
3965
+ import { FC, PropsWithChildren } from "react";
3966
+ export interface IGraphNodeProps {
3967
+ id: string;
3968
+ name: string;
3969
+ x: number;
3970
+ y: number;
3971
+ selected?: boolean;
3972
+ width?: number;
3973
+ height?: number;
3974
+ highlighted?: boolean;
3975
+ parentContainerId: string;
3976
+ }
3977
+ export const SingleGraphNode: FC<PropsWithChildren<IGraphNodeProps>>;
3978
+
3979
+ }
3980
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphLinesContainer" {
3981
+ import { FC, PropsWithChildren } from "react";
3982
+ /**
3983
+ * props for the GraphLineContainer
3984
+ */
3985
+ export interface IGraphLinesContainerProps {
3986
+ /**
3987
+ * id of the container
3988
+ */
3989
+ id: string;
3990
+ }
3991
+ /**
3992
+ * this component handles the dragging of new connections
3993
+ * @param props
3994
+ * @returns
3995
+ */
3996
+ export const GraphLinesContainer: FC<PropsWithChildren<IGraphLinesContainerProps>>;
3997
+
3998
+ }
3999
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphLine" {
4000
+ import { FC } from "react";
4001
+ /**
4002
+ * props for the GraphLine component
4003
+ */
4004
+ export interface IGraphLineProps {
4005
+ /**
4006
+ * id of the line. temporary lines can have no id
4007
+ */
4008
+ id?: string;
4009
+ /**
4010
+ * starting x pos of the line
4011
+ */
4012
+ x1: number;
4013
+ /**
4014
+ * ending x pos of the line
4015
+ */
4016
+ x2: number;
4017
+ /**
4018
+ * starting y pos of the line
4019
+ */
4020
+ y1: number;
4021
+ /**
4022
+ * ending y pos of the line
4023
+ */
4024
+ y2: number;
4025
+ /**
4026
+ * is the line selected
4027
+ */
4028
+ selected?: boolean;
4029
+ /**
4030
+ * does the line have a direction
4031
+ */
4032
+ directional?: boolean;
4033
+ }
4034
+ export const MarkerArrowId = "arrow";
4035
+ /**
4036
+ * This component draws a SVG line between two points, with an optional marker
4037
+ * indicating direction
4038
+ * @param props properties
4039
+ * @returns graph line element
4040
+ */
4041
+ export const GraphLine: FC<IGraphLineProps>;
4042
+
4043
+ }
4044
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphContextManager" {
4045
+ /**
4046
+ * this context is used to pass callbacks to the graph nodes and connections
4047
+ */
4048
+ export interface IGraphContext {
4049
+ onNodesConnected?: (sourceId: string, targetId: string) => void;
4050
+ onLineSelected?: (lineId: string) => void;
4051
+ onNodeSelected?: (nodeId: string) => void;
4052
+ }
4053
+ export const GraphContextManager: import("react").Context<IGraphContext>;
4054
+
4055
+ }
4056
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphContainer" {
4057
+ import { FC, PropsWithChildren } from "react";
4058
+ export interface IGraphContainerProps {
4059
+ }
4060
+ /**
4061
+ * This component is just a simple container to keep the nodes and lines containers
4062
+ * together
4063
+ * @param props
4064
+ * @returns
4065
+ */
4066
+ export const GraphContainer: FC<PropsWithChildren<IGraphContainerProps>>;
4067
+
4068
+ }
4069
+ declare module "@babylonjs/node-particle-editor/components/reactGraphSystem/GraphConnectorHandle" {
4070
+ import { FC, PropsWithChildren } from "react";
4071
+ /**
4072
+ * Props for the connector
4073
+ */
4074
+ export interface IGraphConnectorHandlerProps {
4075
+ /**
4076
+ * id of the parent node
4077
+ */
4078
+ parentId: string;
4079
+ /**
4080
+ * x position of the parent node
4081
+ */
4082
+ parentX: number;
4083
+ /**
4084
+ * y position of the parent node
4085
+ */
4086
+ parentY: number;
4087
+ /**
4088
+ * x position of the connector relative to the parent node
4089
+ */
4090
+ offsetX?: number;
4091
+ /**
4092
+ * y position of the connector relative to the parent node
4093
+ */
4094
+ offsetY?: number;
4095
+ /**
4096
+ * width of the parent node
4097
+ */
4098
+ parentWidth: number;
4099
+ /**
4100
+ * height of the parent node
4101
+ */
4102
+ parentHeight: number;
4103
+ /**
4104
+ * id of the container where its parent node is
4105
+ */
4106
+ parentContainerId: string;
4107
+ }
4108
+ /**
4109
+ * This component is used to initiate a connection between two nodes. Simply
4110
+ * drag the handle in a node and drop it in another node to create a connection.
4111
+ * @returns connector element
4112
+ */
4113
+ export const GraphConnectorHandler: FC<PropsWithChildren<IGraphConnectorHandlerProps>>;
4114
+
4115
+ }
4116
+ declare module "@babylonjs/node-particle-editor/components/lines/OptionsLineComponent" {
4117
+ /**
4118
+ * This components represents an options menu with optional
4119
+ * customizable properties. Option IDs should be unique.
4120
+ */
4121
+ export interface IOption {
4122
+ label: string;
4123
+ value: string;
4124
+ id: string;
4125
+ }
4126
+ export interface IOptionsLineComponentProps {
4127
+ options: IOption[];
4128
+ addOptionPlaceholder?: string;
4129
+ onOptionAdded?: (newOption: IOption) => void;
4130
+ onOptionSelected: (selectedOptionValue: string) => void;
4131
+ selectedOptionValue: string;
4132
+ validateNewOptionValue?: (newOptionValue: string) => boolean;
4133
+ addOptionText?: string;
4134
+ }
4135
+
4136
+
4137
+ }
4138
+ declare module "@babylonjs/node-particle-editor/components/lines/NumericInputComponent" {
4139
+ import * as React from "react";
4140
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4141
+ interface INumericInputComponentProps {
4142
+ label: string;
4143
+ labelTooltip?: string;
4144
+ value: number;
4145
+ step?: number;
4146
+ onChange: (value: number) => void;
4147
+ precision?: number;
4148
+ icon?: string;
4149
+ iconLabel?: string;
4150
+ lockObject: LockObject;
4151
+ }
4152
+ export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
4153
+ value: string;
4154
+ }> {
4155
+ static defaultProps: {
4156
+ step: number;
4157
+ };
4158
+ private _localChange;
4159
+ constructor(props: INumericInputComponentProps);
4160
+ componentWillUnmount(): void;
4161
+ shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
4162
+ value: string;
4163
+ }): boolean;
4164
+ updateValue(valueString: string): void;
4165
+ onBlur(): void;
4166
+ incrementValue(amount: number): void;
4167
+ onKeyDown(evt: React.KeyboardEvent<HTMLInputElement>): void;
4168
+
4169
+ }
4170
+ export {};
4171
+
4172
+ }
4173
+ declare module "@babylonjs/node-particle-editor/components/lines/FileButtonLineComponent" {
4174
+ import * as React from "react";
4175
+ export interface IFileButtonLineComponentProps {
4176
+ label: string;
4177
+ onClick: (file: File) => void;
4178
+ accept: string;
4179
+ icon?: string;
4180
+ iconLabel?: string;
4181
+ }
4182
+ export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
4183
+ private static _IdGenerator;
4184
+ private _id;
4185
+ private _uploadInputRef;
4186
+ constructor(props: IFileButtonLineComponentProps);
4187
+ onChange(evt: any): void;
4188
+
4189
+ }
4190
+
4191
+ }
4192
+ declare module "@babylonjs/node-particle-editor/components/lines/ColorPickerLineComponent" {
4193
+ import * as React from "react";
4194
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
4195
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4196
+ export interface IColorPickerLineComponentProps {
4197
+ value: Color4 | Color3;
4198
+ linearHint?: boolean;
4199
+ onColorChanged: (newOne: string) => void;
4200
+ icon?: string;
4201
+ iconLabel?: string;
4202
+ shouldPopRight?: boolean;
4203
+ lockObject?: LockObject;
4204
+ backgroundColor?: string;
4205
+ }
4206
+ interface IColorPickerComponentState {
4207
+ pickerEnabled: boolean;
4208
+ color: Color3 | Color4;
4209
+ hex: string;
4210
+ }
4211
+ export class ColorPickerLineComponent extends React.Component<IColorPickerLineComponentProps, IColorPickerComponentState> {
4212
+ private _floatRef;
4213
+ private _floatHostRef;
4214
+ private _coverRef;
4215
+ constructor(props: IColorPickerLineComponentProps);
4216
+ syncPositions(): void;
4217
+ shouldComponentUpdate(nextProps: IColorPickerLineComponentProps, nextState: IColorPickerComponentState): boolean;
4218
+ getHexString(props?: Readonly<IColorPickerLineComponentProps>): string;
4219
+ componentDidUpdate(): void;
4220
+ componentDidMount(): void;
4221
+
4222
+ }
4223
+ export {};
4224
+
4225
+ }
4226
+ declare module "@babylonjs/node-particle-editor/components/lines/ColorLineComponent" {
4227
+ import * as React from "react";
4228
+ import { Observable } from "@babylonjs/core/Misc/observable";
4229
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
4230
+ import { PropertyChangedEvent } from "@babylonjs/node-particle-editor/propertyChangedEvent";
4231
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4232
+ export interface IColorLineComponentProps {
4233
+ label: string;
4234
+ target: any;
4235
+ propertyName: string;
4236
+ onPropertyChangedObservable: Observable<PropertyChangedEvent>;
4237
+ onChange?: () => void;
4238
+ isLinear?: boolean;
4239
+ icon?: string;
4240
+ iconLabel?: string;
4241
+ disableAlpha?: boolean;
4242
+ lockObject: LockObject;
4243
+ }
4244
+ interface IColorLineComponentState {
4245
+ isExpanded: boolean;
4246
+ color: Color4;
4247
+ }
4248
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
4249
+ constructor(props: IColorLineComponentProps);
4250
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
4251
+ getValue(props?: Readonly<IColorLineComponentProps>): Color4;
4252
+ setColorFromString(colorString: string): void;
4253
+ setColor(newColor: Color4): void;
4254
+ switchExpandState(): void;
4255
+ updateStateR(value: number): void;
4256
+ updateStateG(value: number): void;
4257
+ updateStateB(value: number): void;
4258
+ updateStateA(value: number): void;
4259
+ copyToClipboard(): void;
4260
+ private _convertToColor;
4261
+ private _toColor3;
4262
+
4263
+ }
4264
+ export {};
4265
+
4266
+ }
4267
+ declare module "@babylonjs/node-particle-editor/components/layout/utils" {
4268
+ import { Layout, LayoutColumn, LayoutTabsRow } from "@babylonjs/node-particle-editor/components/layout/types";
4269
+ /**
4270
+ * Given a column and row number in the layout, return the corresponding column/row
4271
+ * @param layout
4272
+ * @param column
4273
+ * @param row
4274
+ * @returns
4275
+ */
4276
+ export const getPosInLayout: (layout: Layout, column: number, row?: number) => LayoutColumn | LayoutTabsRow;
4277
+ /**
4278
+ * Remove a row in position row, column from the layout, and redistribute heights of remaining rows
4279
+ * @param layout
4280
+ * @param column
4281
+ * @param row
4282
+ */
4283
+ export const removeLayoutRowAndRedistributePercentages: (layout: Layout, column: number, row: number) => void;
4284
+ /**
4285
+ * Add a percentage string to a number
4286
+ * @param p1 the percentage string
4287
+ * @param p2 the number
4288
+ * @returns the sum of the percentage string and the number
4289
+ */
4290
+ export const addPercentageStringToNumber: (p1: string, p2: number) => number;
4291
+ /**
4292
+ * Parses a percentage string into a number
4293
+ * @param p the percentage string
4294
+ * @returns the parsed number
4295
+ */
4296
+ export const parsePercentage: (p: string) => number;
4297
+
4298
+ }
4299
+ declare module "@babylonjs/node-particle-editor/components/layout/types" {
4300
+ import { ReactElement } from "react";
4301
+ export type LayoutTab = {
4302
+ /**
4303
+ * Tab id
4304
+ */
4305
+ id: string;
4306
+ /**
4307
+ * React component rendered by tab
4308
+ */
4309
+ component: ReactElement;
4310
+ /**
4311
+ * Tab title
4312
+ */
4313
+ title: string;
4314
+ };
4315
+ export type LayoutTabsRow = {
4316
+ /**
4317
+ * row id
4318
+ */
4319
+ id: string;
4320
+ /**
4321
+ * row height in its containing column
4322
+ */
4323
+ height: string;
4324
+ /**
4325
+ * selected tab in row
4326
+ */
4327
+ selectedTab: string;
4328
+ /**
4329
+ * list of tabs contained in row
4330
+ */
4331
+ tabs: LayoutTab[];
4332
+ };
4333
+ export type LayoutColumn = {
4334
+ /**
4335
+ * column id
4336
+ */
4337
+ id: string;
4338
+ /**
4339
+ * column width in the grid
4340
+ */
4341
+ width: string;
4342
+ /**
4343
+ * column rows
4344
+ */
4345
+ rows: LayoutTabsRow[];
4346
+ };
4347
+ export type Layout = {
4348
+ /**
4349
+ * layout columns
4350
+ */
4351
+ columns?: LayoutColumn[];
4352
+ };
4353
+ export type TabDrag = {
4354
+ /**
4355
+ * row number of the tab being dragged
4356
+ */
4357
+ rowNumber: number;
4358
+ /**
4359
+ * column number of the tab being dragged
4360
+ */
4361
+ columnNumber: number;
4362
+ /**
4363
+ * the tabs being dragged
4364
+ */
4365
+ tabs: {
4366
+ /**
4367
+ * id of tab being dragged
4368
+ */
4369
+ id: string;
4370
+ }[];
4371
+ };
4372
+ export enum ElementTypes {
4373
+ RESIZE_BAR = "0",
4374
+ TAB = "1",
4375
+ TAB_GROUP = "2",
4376
+ NONE = "2"
4377
+ }
4378
+ export enum ResizeDirections {
4379
+ ROW = "row",
4380
+ COLUMN = "column"
4381
+ }
4382
+
4383
+ }
4384
+ declare module "@babylonjs/node-particle-editor/components/layout/LayoutContext" {
4385
+ import { Layout } from "@babylonjs/node-particle-editor/components/layout/types";
4386
+ export const LayoutContext: import("react").Context<{
4387
+ /**
4388
+ * The layout object
4389
+ */
4390
+ layout: Layout;
4391
+ /**
4392
+ * Function to set the layout object in the context
4393
+ */
4394
+ setLayout: (layout: Layout) => void;
4395
+ }>;
4396
+
4397
+ }
4398
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleTabsContainer" {
4399
+ import { FC } from "react";
4400
+ import { LayoutTab } from "@babylonjs/node-particle-editor/components/layout/types";
4401
+ /**
4402
+ * Arguments for the TabsContainer component.
4403
+ */
4404
+ export interface IFlexibleTabsContainerProps {
4405
+ /**
4406
+ * The tabs to display
4407
+ */
4408
+ tabs: LayoutTab[];
4409
+ /**
4410
+ * Row index of component in layout
4411
+ */
4412
+ rowIndex: number;
4413
+ /**
4414
+ * Column index of component in layout
4415
+ */
4416
+ columnIndex: number;
4417
+ /**
4418
+ * Which tab is selected in the layout
4419
+ */
4420
+ selectedTab?: string;
4421
+ }
4422
+ /**
4423
+ * This component contains a set of tabs of which only one is visible at a time.
4424
+ * The tabs can also be dragged from and to different containers.
4425
+ * @param props properties
4426
+ * @returns tabs container element
4427
+ */
4428
+ export const FlexibleTabsContainer: FC<IFlexibleTabsContainerProps>;
4429
+
4430
+ }
4431
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleTab" {
4432
+ import { FC } from "react";
4433
+ import { TabDrag } from "@babylonjs/node-particle-editor/components/layout/types";
4434
+ /**
4435
+ * Arguments for the FlexibleTab component.
4436
+ */
4437
+ export interface IFlexibleTabProps {
4438
+ /**
4439
+ * The tab's title.
4440
+ */
4441
+ title: string;
4442
+ /**
4443
+ * If the tab is currently selected or not
4444
+ */
4445
+ selected: boolean;
4446
+ /**
4447
+ * What happens when the user clicks on the tab
4448
+ */
4449
+ onClick: () => void;
4450
+ /**
4451
+ * The object that will be sent to the drag event
4452
+ */
4453
+ item: TabDrag;
4454
+ /**
4455
+ * What happens when the user drops another tab after this one
4456
+ */
4457
+ onTabDroppedAction: (item: TabDrag) => void;
4458
+ }
4459
+ /**
4460
+ * A component that renders a tab that the user can click
4461
+ * to activate or drag to reorder. It also listens for
4462
+ * drop events if the user wants to drop another tab
4463
+ * after it.
4464
+ * @param props properties
4465
+ * @returns FlexibleTab element
4466
+ */
4467
+ export const FlexibleTab: FC<IFlexibleTabProps>;
4468
+
4469
+ }
4470
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleResizeBar" {
4471
+ import { FC } from "react";
4472
+ import { ResizeDirections } from "@babylonjs/node-particle-editor/components/layout/types";
4473
+ /**
4474
+ * Arguments for the ResizeBar component.
4475
+ */
4476
+ export interface IFlexibleRowResizerProps {
4477
+ /**
4478
+ * Row number of the component that is being resized
4479
+ */
4480
+ rowNumber: number;
4481
+ /**
4482
+ * Column number of the component being resized
4483
+ */
4484
+ columnNumber: number;
4485
+ /**
4486
+ * If the resizing happens in row or column direction
4487
+ */
4488
+ direction: ResizeDirections;
4489
+ }
4490
+ /**
4491
+ * The item that will be sent to the drag event
4492
+ */
4493
+ export type ResizeItem = {
4494
+ /**
4495
+ * If the resizing happens in row or column direction
4496
+ */
4497
+ direction: ResizeDirections;
4498
+ /**
4499
+ * The row number of the component that is being resized
4500
+ */
4501
+ rowNumber: number;
4502
+ /**
4503
+ * the column number of the component being resized
4504
+ */
4505
+ columnNumber: number;
4506
+ };
4507
+ /**
4508
+ * A component that renders a bar that the user can drag to resize.
4509
+ * @param props properties
4510
+ * @returns resize bar element
4511
+ */
4512
+ export const FlexibleResizeBar: FC<IFlexibleRowResizerProps>;
4513
+
4514
+ }
4515
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleGridLayout" {
4516
+ import { FC } from "react";
4517
+ import { Layout } from "@babylonjs/node-particle-editor/components/layout/types";
4518
+ /**
4519
+ * Arguments for the Layout component.
4520
+ */
4521
+ export interface IFlexibleGridLayoutProps {
4522
+ /**
4523
+ * A definition of the layout which can be changed by the user
4524
+ */
4525
+ layoutDefinition: Layout;
4526
+ }
4527
+ /**
4528
+ * This component represents a grid layout that can be resized and rearranged
4529
+ * by the user.
4530
+ * @param props properties
4531
+ * @returns layout element
4532
+ */
4533
+ export const FlexibleGridLayout: FC<IFlexibleGridLayoutProps>;
4534
+
4535
+ }
4536
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleGridContainer" {
4537
+ import { FC } from "react";
4538
+ /**
4539
+ * Arguments for the GridContainer component.
4540
+ */
4541
+ export interface IFlexibleGridContainerProps {
4542
+ }
4543
+ /**
4544
+ * Component responsible for mapping the layout to the actual components
4545
+ * @returns GridContainer element
4546
+ */
4547
+ export const FlexibleGridContainer: FC<IFlexibleGridContainerProps>;
4548
+
4549
+ }
4550
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleDropZone" {
4551
+ import { FC, PropsWithChildren } from "react";
4552
+ /**
4553
+ * Arguments for the FlexibleDropZone component.
4554
+ */
4555
+ export interface IFlexibleDropZoneProps {
4556
+ /**
4557
+ * The row number of the component in the layout
4558
+ */
4559
+ rowNumber: number;
4560
+ /**
4561
+ * The column number of the component in the layout
4562
+ */
4563
+ columnNumber: number;
4564
+ }
4565
+ /**
4566
+ * This component contains the drag and drop zone for the resize bars that
4567
+ * allow redefining width and height of layout elements
4568
+ * @param props properties
4569
+ * @returns drop zone element
4570
+ */
4571
+ export const FlexibleDropZone: FC<PropsWithChildren<IFlexibleDropZoneProps>>;
4572
+
4573
+ }
4574
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleDragHandler" {
4575
+ import { FC, PropsWithChildren } from "react";
4576
+ /**
4577
+ * Arguments for the DragHandler component.
4578
+ */
4579
+ export interface IFlexibleDragHandlerProps {
4580
+ /**
4581
+ * The size of the containing element. Used to calculate the percentage of
4582
+ * space occupied by the component
4583
+ */
4584
+ containerSize: {
4585
+ width: number;
4586
+ height: number;
4587
+ };
4588
+ }
4589
+ /**
4590
+ * This component receives the drop events and updates the layout accordingly
4591
+ * @param props properties
4592
+ * @returns DragHandler element
4593
+ */
4594
+ export const FlexibleDragHandler: FC<PropsWithChildren<IFlexibleDragHandlerProps>>;
4595
+
4596
+ }
4597
+ declare module "@babylonjs/node-particle-editor/components/layout/FlexibleColumn" {
4598
+ import { FC, PropsWithChildren } from "react";
4599
+ /**
4600
+ * Arguments for the Column component.
4601
+ */
4602
+ export interface IFlexibleColumnProps {
4603
+ /**
4604
+ * Width of column
4605
+ */
4606
+ width: string;
4607
+ }
4608
+ /**
4609
+ * This component represents a single column in the layout. It receives a width
4610
+ * that it occupies and the content to display
4611
+ * @param props
4612
+ * @returns
4613
+ */
4614
+ export const FlexibleColumn: FC<PropsWithChildren<IFlexibleColumnProps>>;
4615
+
4616
+ }
4617
+ declare module "@babylonjs/node-particle-editor/components/layout/DraggableIcon" {
4618
+ import { FC } from "react";
4619
+ import { ElementTypes, TabDrag } from "@babylonjs/node-particle-editor/components/layout/types";
4620
+ /**
4621
+ * Arguments for the DraggableIcon component.
4622
+ */
4623
+ export interface IDraggableIconProps {
4624
+ /**
4625
+ * Icon source
4626
+ */
4627
+ src: string;
4628
+ /**
4629
+ * Object that will be passed to the drag event
4630
+ */
4631
+ item: TabDrag;
4632
+ /**
4633
+ * Type of drag event
4634
+ */
4635
+ type: ElementTypes;
4636
+ }
4637
+ /**
4638
+ * An icon that can be dragged by the user
4639
+ * @param props properties
4640
+ * @returns draggable icon element
4641
+ */
4642
+ export const DraggableIcon: FC<IDraggableIconProps>;
4643
+
4644
+ }
4645
+ declare module "@babylonjs/node-particle-editor/components/colorPicker/HexColor" {
4646
+ import * as React from "react";
4647
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4648
+ export interface IHexColorProps {
4649
+ value: string;
4650
+ expectedLength: number;
4651
+ onChange: (value: string) => void;
4652
+ lockObject: LockObject;
4653
+ }
4654
+ export class HexColorComponent extends React.Component<IHexColorProps, {
4655
+ hex: string;
4656
+ }> {
4657
+ constructor(props: IHexColorProps);
4658
+ shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
4659
+ hex: string;
4660
+ }): boolean;
4661
+ lock(): void;
4662
+ unlock(): void;
4663
+ updateHexValue(valueString: string): void;
4664
+
4665
+ }
4666
+
4667
+ }
4668
+ declare module "@babylonjs/node-particle-editor/components/colorPicker/ColorPicker" {
4669
+ import * as React from "react";
4670
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
4671
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4672
+ /**
4673
+ * Interface used to specify creation options for color picker
4674
+ */
4675
+ export interface IColorPickerComponentProps {
4676
+ color: Color3 | Color4;
4677
+ linearhint?: boolean;
4678
+ debugMode?: boolean;
4679
+ onColorChanged?: (color: Color3 | Color4) => void;
4680
+ lockObject: LockObject;
4681
+ backgroundColor?: string;
4682
+ }
4683
+ /**
4684
+ * Interface used to specify creation options for color picker
4685
+ */
4686
+ export interface IColorPickerState {
4687
+ color: Color3;
4688
+ alpha: number;
4689
+ }
4690
+ /**
4691
+ * Class used to create a color picker
4692
+ */
4693
+ export class ColorPickerComponent extends React.Component<IColorPickerComponentProps, IColorPickerState> {
4694
+ private _saturationRef;
4695
+ private _hueRef;
4696
+ private _isSaturationPointerDown;
4697
+ private _isHuePointerDown;
4698
+ constructor(props: IColorPickerComponentProps);
4699
+ shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerState): boolean;
4700
+ onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
4701
+ onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
4702
+ onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
4703
+ onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
4704
+ onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
4705
+ onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
4706
+ private _evaluateSaturation;
4707
+ private _evaluateHue;
4708
+ componentDidUpdate(): void;
4709
+ raiseOnColorChanged(): void;
4710
+
4711
+ }
4712
+
4713
+ }
4714
+ declare module "@babylonjs/node-particle-editor/components/colorPicker/ColorComponentEntry" {
4715
+ import * as React from "react";
4716
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4717
+ export interface IColorComponentEntryProps {
4718
+ value: number;
4719
+ label: string;
4720
+ max?: number;
4721
+ min?: number;
4722
+ onChange: (value: number) => void;
4723
+ disabled?: boolean;
4724
+ lockObject: LockObject;
4725
+ }
4726
+ export class ColorComponentComponentEntry extends React.Component<IColorComponentEntryProps> {
4727
+ constructor(props: IColorComponentEntryProps);
4728
+ updateValue(valueString: string): void;
4729
+ lock(): void;
4730
+ unlock(): void;
4731
+
4732
+ }
4733
+
4734
+ }
4735
+ declare module "@babylonjs/node-particle-editor/components/bars/CommandDropdownComponent" {
4736
+ import * as React from "react";
4737
+ interface ICommandDropdownComponentProps {
4738
+ icon?: string;
4739
+ tooltip: string;
4740
+ defaultValue?: string;
4741
+ items: {
4742
+ label: string;
4743
+ icon?: string;
4744
+ fileButton?: boolean;
4745
+ onClick?: () => void;
4746
+ onCheck?: (value: boolean) => void;
4747
+ storeKey?: string;
4748
+ isActive?: boolean;
4749
+ defaultValue?: boolean | string;
4750
+ subItems?: string[];
4751
+ }[];
4752
+ toRight?: boolean;
4753
+ }
4754
+ export class CommandDropdownComponent extends React.Component<ICommandDropdownComponentProps, {
4755
+ isExpanded: boolean;
4756
+ activeState: string;
4757
+ }> {
4758
+ constructor(props: ICommandDropdownComponentProps);
4759
+
4760
+ }
4761
+ export {};
4762
+
4763
+ }
4764
+ declare module "@babylonjs/node-particle-editor/components/bars/CommandButtonComponent" {
4765
+ import * as React from "react";
4766
+ export interface ICommandButtonComponentProps {
4767
+ tooltip: string;
4768
+ shortcut?: string;
4769
+ icon: string;
4770
+ iconLabel?: string;
4771
+ isActive: boolean;
4772
+ onClick: () => void;
4773
+ disabled?: boolean;
4774
+ }
4775
+ export const CommandButtonComponent: React.FC<ICommandButtonComponentProps>;
4776
+
4777
+ }
4778
+ declare module "@babylonjs/node-particle-editor/components/bars/CommandBarComponent" {
4779
+ import { FC, PropsWithChildren } from "react";
4780
+ export interface ICommandBarComponentProps {
4781
+ onSaveButtonClicked?: () => void;
4782
+ onSaveToSnippetButtonClicked?: () => void;
4783
+ onLoadFromSnippetButtonClicked?: () => void;
4784
+ onHelpButtonClicked?: () => void;
4785
+ onGiveFeedbackButtonClicked?: () => void;
4786
+ onSelectButtonClicked?: () => void;
4787
+ onPanButtonClicked?: () => void;
4788
+ onZoomButtonClicked?: () => void;
4789
+ onFitButtonClicked?: () => void;
4790
+ onArtboardColorChanged?: (newColor: string) => void;
4791
+ artboardColor?: string;
4792
+ artboardColorPickerColor?: string;
4793
+ }
4794
+ export const CommandBarComponent: FC<PropsWithChildren<ICommandBarComponentProps>>;
4795
+
4796
+ }
4797
+ declare module "@babylonjs/node-particle-editor/colorPicker/hexColor" {
4798
+ import * as React from "react";
4799
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4800
+ export interface IHexColorProps {
4801
+ value: string;
4802
+ expectedLength: number;
4803
+ onChange: (value: string) => void;
4804
+ lockObject: LockObject;
4805
+ }
4806
+ export class HexColor extends React.Component<IHexColorProps, {
4807
+ hex: string;
4808
+ }> {
4809
+ constructor(props: IHexColorProps);
4810
+ shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
4811
+ hex: string;
4812
+ }): boolean;
4813
+ lock(): void;
4814
+ unlock(): void;
4815
+ updateHexValue(valueString: string): void;
4816
+
4817
+ }
4818
+
4819
+ }
4820
+ declare module "@babylonjs/node-particle-editor/colorPicker/colorPicker" {
4821
+ import * as React from "react";
4822
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
4823
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4824
+ import "@babylonjs/node-particle-editor/colorPicker/colorPicker.scss";
4825
+ /**
4826
+ * Interface used to specify creation options for color picker
4827
+ */
4828
+ export interface IColorPickerProps {
4829
+ color: Color3 | Color4;
4830
+ linearhint?: boolean;
4831
+ debugMode?: boolean;
4832
+ onColorChanged?: (color: Color3 | Color4) => void;
4833
+ lockObject: LockObject;
4834
+ }
4835
+ /**
4836
+ * Interface used to specify creation options for color picker
4837
+ */
4838
+ export interface IColorPickerState {
4839
+ color: Color3;
4840
+ alpha: number;
4841
+ }
4842
+ /**
4843
+ * Class used to create a color picker
4844
+ */
4845
+ export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
4846
+ private _saturationRef;
4847
+ private _hueRef;
4848
+ private _isSaturationPointerDown;
4849
+ private _isHuePointerDown;
4850
+ constructor(props: IColorPickerProps);
4851
+ shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
4852
+ onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
4853
+ onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
4854
+ onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
4855
+ onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
4856
+ onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
4857
+ onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
4858
+ private _evaluateSaturation;
4859
+ private _evaluateHue;
4860
+ componentDidUpdate(): void;
4861
+ raiseOnColorChanged(): void;
4862
+
4863
+ }
4864
+
4865
+ }
4866
+ declare module "@babylonjs/node-particle-editor/colorPicker/colorComponentEntry" {
4867
+ import * as React from "react";
4868
+ import { LockObject } from "@babylonjs/node-particle-editor/tabs/propertyGrids/lockObject";
4869
+ export interface IColorComponentEntryProps {
4870
+ value: number;
4871
+ label: string;
4872
+ max?: number;
4873
+ min?: number;
4874
+ onChange: (value: number) => void;
4875
+ disabled?: boolean;
4876
+ lockObject: LockObject;
4877
+ }
4878
+ export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
4879
+ constructor(props: IColorComponentEntryProps);
4880
+ updateValue(valueString: string): void;
4881
+ lock(): void;
4882
+ unlock(): void;
4883
+
4884
+ }
4885
+
4886
+ }
4887
+
4888
+ declare module "@babylonjs/node-particle-editor" {
4889
+ export * from "@babylonjs/node-particle-editor/legacy/legacy";
4890
+ }
4891
+
4892
+
4893
+