@babylonjs/node-editor 5.12.1 → 5.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -367,12 +367,12 @@ declare module "@babylonjs/node-editor/components/propertyTab/propertyTabCompone
367
367
  import * as React from "react";
368
368
  import { GlobalState } from "@babylonjs/node-editor/globalState";
369
369
  import { Nullable } from "@babylonjs/core/types";
370
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
371
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
372
370
  import { InputBlock } from "@babylonjs/core/Materials/Node/Blocks/Input/inputBlock";
373
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
374
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
375
371
  import "@babylonjs/node-editor/components/propertyTab/propertyTab.scss";
372
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
373
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
374
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
375
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
376
376
  interface IPropertyTabComponentProps {
377
377
  globalState: GlobalState;
378
378
  }
@@ -403,640 +403,383 @@ export class PropertyTabComponent extends React.Component<IPropertyTabComponentP
403
403
  export {};
404
404
 
405
405
  }
406
- declare module "@babylonjs/node-editor/diagram/display/clampDisplayManager" {
407
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
406
+ declare module "@babylonjs/node-editor/globalState" {
407
+ import { NodeMaterial } from "@babylonjs/core/Materials/Node/nodeMaterial";
408
+ import { Observable } from "@babylonjs/core/Misc/observable";
409
+ import { LogEntry } from "@babylonjs/node-editor/components/log/logComponent";
410
+ import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
411
+ import { PreviewType } from "@babylonjs/node-editor/components/preview/previewType";
412
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
413
+ import { NodeMaterialModes } from "@babylonjs/core/Materials/Node/Enums/nodeMaterialModes";
414
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
415
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
416
+ import { Nullable } from "@babylonjs/core/types";
417
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
418
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
419
+ export class GlobalState {
420
+ nodeMaterial: NodeMaterial;
421
+ hostElement: HTMLElement;
422
+ hostDocument: Document;
423
+ hostWindow: Window;
424
+ stateManager: StateManager;
425
+ onBuiltObservable: Observable<void>;
426
+ onResetRequiredObservable: Observable<boolean>;
427
+ onZoomToFitRequiredObservable: Observable<void>;
428
+ onReOrganizedRequiredObservable: Observable<void>;
429
+ onLogRequiredObservable: Observable<LogEntry>;
430
+ onIsLoadingChanged: Observable<boolean>;
431
+ onPreviewCommandActivated: Observable<boolean>;
432
+ onLightUpdated: Observable<void>;
433
+ onPreviewBackgroundChanged: Observable<void>;
434
+ onBackFaceCullingChanged: Observable<void>;
435
+ onDepthPrePassChanged: Observable<void>;
436
+ onAnimationCommandActivated: Observable<void>;
437
+ onImportFrameObservable: Observable<any>;
438
+ onPopupClosedObservable: Observable<void>;
439
+ onGetNodeFromBlock: (block: NodeMaterialBlock) => GraphNode;
440
+ previewType: PreviewType;
441
+ previewFile: File;
442
+ particleSystemBlendMode: number;
443
+ listOfCustomPreviewFiles: File[];
444
+ rotatePreview: boolean;
445
+ backgroundColor: Color4;
446
+ backFaceCulling: boolean;
447
+ depthPrePass: boolean;
448
+ lockObject: LockObject;
449
+ hemisphericLight: boolean;
450
+ directionalLight0: boolean;
451
+ directionalLight1: boolean;
452
+ controlCamera: boolean;
453
+ _mode: NodeMaterialModes;
454
+ /** Gets the mode */
455
+ get mode(): NodeMaterialModes;
456
+ /** Sets the mode */
457
+ set mode(m: NodeMaterialModes);
458
+ customSave?: {
459
+ label: string;
460
+ action: (data: string) => Promise<void>;
461
+ };
462
+ constructor();
463
+ storeEditorData(serializationObject: any, frame?: Nullable<GraphFrame>): void;
464
+ }
465
+
466
+ }
467
+ declare module "@babylonjs/node-editor/graphEditor" {
468
+ import * as React from "react";
469
+ import { GlobalState } from "@babylonjs/node-editor/globalState";
470
+ import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
471
+ import { Nullable } from "@babylonjs/core/types";
472
+ import { IInspectorOptions } from "@babylonjs/core/Debug/debugLayer";
473
+ import "@babylonjs/node-editor/main.scss";
474
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
475
+ import { IEditorData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
476
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
477
+ interface IGraphEditorProps {
478
+ globalState: GlobalState;
479
+ }
480
+ interface IGraphEditorState {
481
+ showPreviewPopUp: boolean;
482
+ }
483
+ interface IInternalPreviewAreaOptions extends IInspectorOptions {
484
+ popup: boolean;
485
+ original: boolean;
486
+ explorerWidth?: string;
487
+ inspectorWidth?: string;
488
+ embedHostWidth?: string;
489
+ }
490
+ export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
491
+ static readonly NodeWidth: number;
492
+ private _graphCanvasRef;
493
+ private _diagramContainerRef;
494
+ private _graphCanvas;
495
+ private _diagramContainer;
496
+ private _startX;
497
+ private _moveInProgress;
498
+ private _leftWidth;
499
+ private _rightWidth;
500
+ private _previewManager;
501
+ private _copiedNodes;
502
+ private _copiedFrames;
503
+ private _mouseLocationX;
504
+ private _mouseLocationY;
505
+ private _onWidgetKeyUpPointer;
506
+ private _previewHost;
507
+ private _popUpWindow;
508
+ appendBlock(dataToAppend: NodeMaterialBlock | INodeData, recursion?: boolean): GraphNode;
509
+ addValueNode(type: string): GraphNode;
510
+ componentDidMount(): void;
511
+ componentWillUnmount(): void;
512
+ constructor(props: IGraphEditorProps);
513
+ reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
514
+ pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, selectNew?: boolean): GraphNode[] | undefined;
515
+ zoomToFit(): void;
516
+ buildMaterial(autoConfigure?: boolean): void;
517
+ build(ignoreEditorData?: boolean): void;
518
+ loadGraph(): void;
519
+ showWaitScreen(): void;
520
+ hideWaitScreen(): void;
521
+ reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
522
+ onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
523
+ onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
524
+ onWheel(this: any, evt: WheelEvent): void;
525
+ resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
526
+ buildColumnLayout(): string;
527
+ emitNewBlock(blockType: string, targetX: number, targetY: number): void;
528
+ dropNewBlock(event: React.DragEvent<HTMLDivElement>): void;
529
+ handlePopUp: () => void;
530
+ handleClosingPopUp: () => void;
531
+ initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
532
+ createPopUp: () => void;
533
+ createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
534
+ createPreviewMeshControlHost: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => void;
535
+ createPreviewHost: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => void;
536
+ fixPopUpStyles: (document: Document) => void;
537
+ render(): JSX.Element;
538
+ }
539
+ export {};
540
+
541
+ }
542
+ declare module "@babylonjs/node-editor/graphSystem/blockNodeData" {
408
543
  import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
544
+ import { INodeContainer } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeContainer";
545
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
546
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
547
+ export class BlockNodeData implements INodeData {
548
+ data: NodeMaterialBlock;
549
+ private _inputs;
550
+ private _outputs;
551
+ get uniqueId(): number;
552
+ get name(): string;
553
+ getClassName(): string;
554
+ get isInput(): boolean;
555
+ get inputs(): IPortData[];
556
+ get outputs(): IPortData[];
557
+ get comments(): string;
558
+ set comments(value: string);
559
+ getPortByName(name: string): IPortData | null;
560
+ dispose(): void;
561
+ getWarningMessage(): "" | "For optimization reasons, this block will be promoted to the vertex shader. You can force it to render in the fragment shader by setting its target to Fragment";
562
+ constructor(data: NodeMaterialBlock, nodeContainer: INodeContainer);
563
+ }
564
+
565
+ }
566
+ declare module "@babylonjs/node-editor/graphSystem/connectionPointPortData" {
567
+ import { NodeMaterialConnectionPoint } from "@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint";
568
+ import { NodeMaterialConnectionPointCompatibilityStates } from "@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint";
569
+ import { Nullable } from "@babylonjs/core/types";
570
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
571
+ import { INodeContainer } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeContainer";
572
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
573
+ import { PortDataDirection } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
574
+ export class ConnectionPointPortData implements IPortData {
575
+ private _connectedPort;
576
+ private _nodeContainer;
577
+ data: NodeMaterialConnectionPoint;
578
+ get name(): string;
579
+ get internalName(): string;
580
+ get isExposedOnFrame(): boolean;
581
+ set isExposedOnFrame(value: boolean);
582
+ get exposedPortPosition(): number;
583
+ set exposedPortPosition(value: number);
584
+ get isConnected(): boolean;
585
+ get connectedPort(): Nullable<IPortData>;
586
+ set connectedPort(value: Nullable<IPortData>);
587
+ get direction(): PortDataDirection;
588
+ get ownerData(): import("@babylonjs/core/Materials/Node/nodeMaterialBlock").NodeMaterialBlock;
589
+ get needDualDirectionValidation(): boolean;
590
+ get hasEndpoints(): boolean;
591
+ get endpoints(): IPortData[];
592
+ constructor(connectionPoint: NodeMaterialConnectionPoint, nodeContainer: INodeContainer);
593
+ updateDisplayName(newName: string): void;
594
+ connectTo(port: IPortData): void;
595
+ disconnectFrom(port: IPortData): void;
596
+ checkCompatibilityState(port: IPortData): 0 | NodeMaterialConnectionPointCompatibilityStates.TypeIncompatible | NodeMaterialConnectionPointCompatibilityStates.TargetIncompatible | NodeMaterialConnectionPointCompatibilityStates.HierarchyIssue;
597
+ getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: IPortData): "" | "Cannot connect two different connection types" | "Source block can only work in fragment shader whereas destination block is currently aimed for the vertex shader" | "Source block cannot be connected with one of its ancestors";
598
+ }
599
+
600
+ }
601
+ declare module "@babylonjs/node-editor/graphSystem/display/clampDisplayManager" {
602
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
603
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
409
604
  export class ClampDisplayManager implements IDisplayManager {
410
605
  getHeaderClass(): string;
411
606
  shouldDisplayPortLabels(): boolean;
412
- getHeaderText(block: NodeMaterialBlock): string;
607
+ getHeaderText(nodeData: INodeData): string;
413
608
  getBackgroundColor(): string;
414
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
609
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
415
610
  }
416
611
 
417
612
  }
418
- declare module "@babylonjs/node-editor/diagram/display/conditionalDisplayManager" {
419
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
420
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
613
+ declare module "@babylonjs/node-editor/graphSystem/display/conditionalDisplayManager" {
614
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
615
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
421
616
  export class ConditionalDisplayManager implements IDisplayManager {
422
617
  getHeaderClass(): string;
423
618
  shouldDisplayPortLabels(): boolean;
424
- getHeaderText(block: NodeMaterialBlock): string;
619
+ getHeaderText(nodeData: INodeData): string;
425
620
  getBackgroundColor(): string;
426
621
  updatePreviewContent(): void;
427
622
  }
428
623
 
429
624
  }
430
- declare module "@babylonjs/node-editor/diagram/display/discardDisplayManager" {
431
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
432
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
625
+ declare module "@babylonjs/node-editor/graphSystem/display/discardDisplayManager" {
626
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
627
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
433
628
  export class DiscardDisplayManager implements IDisplayManager {
434
629
  getHeaderClass(): string;
435
630
  shouldDisplayPortLabels(): boolean;
436
- getHeaderText(block: NodeMaterialBlock): string;
631
+ getHeaderText(nodeData: INodeData): string;
437
632
  getBackgroundColor(): string;
438
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
439
- }
440
-
441
- }
442
- declare module "@babylonjs/node-editor/diagram/display/displayManager" {
443
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
444
- export interface IDisplayManager {
445
- getHeaderClass(block: NodeMaterialBlock): string;
446
- shouldDisplayPortLabels(block: NodeMaterialBlock): boolean;
447
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
448
- getBackgroundColor(block: NodeMaterialBlock): string;
449
- getHeaderText(block: NodeMaterialBlock): string;
633
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
450
634
  }
451
635
 
452
636
  }
453
- declare module "@babylonjs/node-editor/diagram/display/elbowDisplayManager" {
454
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
455
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
637
+ declare module "@babylonjs/node-editor/graphSystem/display/elbowDisplayManager" {
638
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
639
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
456
640
  export class ElbowDisplayManager implements IDisplayManager {
457
641
  getHeaderClass(): string;
458
642
  shouldDisplayPortLabels(): boolean;
459
- getHeaderText(block: NodeMaterialBlock): string;
460
- getBackgroundColor(block: NodeMaterialBlock): string;
461
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
643
+ getHeaderText(nodeData: INodeData): string;
644
+ getBackgroundColor(nodeData: INodeData): string;
645
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
462
646
  }
463
647
 
464
648
  }
465
- declare module "@babylonjs/node-editor/diagram/display/gradientDisplayManager" {
466
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
467
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
649
+ declare module "@babylonjs/node-editor/graphSystem/display/gradientDisplayManager" {
650
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
651
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
468
652
  export class GradientDisplayManager implements IDisplayManager {
469
653
  getHeaderClass(): string;
470
654
  shouldDisplayPortLabels(): boolean;
471
- getHeaderText(block: NodeMaterialBlock): string;
472
- getBackgroundColor(block: NodeMaterialBlock): string;
473
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
655
+ getHeaderText(nodeData: INodeData): string;
656
+ getBackgroundColor(nodeData: INodeData): string;
657
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
474
658
  }
475
659
 
476
660
  }
477
- declare module "@babylonjs/node-editor/diagram/display/imageSourceDisplayManager" {
478
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
479
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
661
+ declare module "@babylonjs/node-editor/graphSystem/display/imageSourceDisplayManager" {
662
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
663
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
480
664
  export class ImageSourceDisplayManager implements IDisplayManager {
481
665
  private _previewCanvas;
482
666
  private _previewImage;
483
667
  getHeaderClass(): string;
484
668
  shouldDisplayPortLabels(): boolean;
485
- getHeaderText(block: NodeMaterialBlock): string;
669
+ getHeaderText(nodeData: INodeData): string;
486
670
  getBackgroundColor(): string;
487
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
671
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
488
672
  }
489
673
 
490
674
  }
491
- declare module "@babylonjs/node-editor/diagram/display/inputDisplayManager" {
492
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
493
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
675
+ declare module "@babylonjs/node-editor/graphSystem/display/inputDisplayManager" {
494
676
  import { NodeMaterialBlockConnectionPointTypes } from "@babylonjs/core/Materials/Node/Enums/nodeMaterialBlockConnectionPointTypes";
677
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
678
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
495
679
  export class InputDisplayManager implements IDisplayManager {
496
- getHeaderClass(block: NodeMaterialBlock): "" | "constant" | "inspector";
680
+ getHeaderClass(nodeData: INodeData): "" | "constant" | "inspector";
497
681
  shouldDisplayPortLabels(): boolean;
498
- getHeaderText(block: NodeMaterialBlock): string;
682
+ getHeaderText(nodeData: INodeData): string;
499
683
  static GetBaseType(type: NodeMaterialBlockConnectionPointTypes): string;
500
- getBackgroundColor(block: NodeMaterialBlock): string;
501
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
684
+ getBackgroundColor(nodeData: INodeData): string;
685
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
502
686
  }
503
687
 
504
688
  }
505
- declare module "@babylonjs/node-editor/diagram/display/outputDisplayManager" {
506
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
507
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
689
+ declare module "@babylonjs/node-editor/graphSystem/display/outputDisplayManager" {
690
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
691
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
508
692
  export class OutputDisplayManager implements IDisplayManager {
509
693
  getHeaderClass(): string;
510
694
  shouldDisplayPortLabels(): boolean;
511
- getHeaderText(block: NodeMaterialBlock): string;
695
+ getHeaderText(nodeData: INodeData): string;
512
696
  getBackgroundColor(): string;
513
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
697
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
514
698
  }
515
699
 
516
700
  }
517
- declare module "@babylonjs/node-editor/diagram/display/pbrDisplayManager" {
518
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
519
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
701
+ declare module "@babylonjs/node-editor/graphSystem/display/pbrDisplayManager" {
702
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
703
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
520
704
  export class PBRDisplayManager implements IDisplayManager {
521
705
  getHeaderClass(): string;
522
706
  shouldDisplayPortLabels(): boolean;
523
- getHeaderText(block: NodeMaterialBlock): string;
707
+ getHeaderText(nodeData: INodeData): string;
524
708
  getBackgroundColor(): string;
525
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
709
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
526
710
  }
527
711
 
528
712
  }
529
- declare module "@babylonjs/node-editor/diagram/display/remapDisplayManager" {
530
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
531
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
713
+ declare module "@babylonjs/node-editor/graphSystem/display/remapDisplayManager" {
714
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
715
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
532
716
  export class RemapDisplayManager implements IDisplayManager {
533
717
  getHeaderClass(): string;
534
718
  shouldDisplayPortLabels(): boolean;
535
- getHeaderText(block: NodeMaterialBlock): string;
719
+ getHeaderText(nodeData: INodeData): string;
536
720
  getBackgroundColor(): string;
537
721
  private _extractInputValue;
538
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
722
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
539
723
  }
540
724
 
541
725
  }
542
- declare module "@babylonjs/node-editor/diagram/display/textureDisplayManager" {
543
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
544
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
726
+ declare module "@babylonjs/node-editor/graphSystem/display/textureDisplayManager" {
727
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
728
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
545
729
  export class TextureDisplayManager implements IDisplayManager {
546
730
  private _previewCanvas;
547
731
  private _previewImage;
548
732
  getHeaderClass(): string;
549
733
  shouldDisplayPortLabels(): boolean;
550
- getHeaderText(block: NodeMaterialBlock): string;
551
- getBackgroundColor(block: NodeMaterialBlock): string;
552
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
734
+ getHeaderText(nodeData: INodeData): string;
735
+ getBackgroundColor(nodeData: INodeData): string;
736
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
553
737
  }
554
738
 
555
739
  }
556
- declare module "@babylonjs/node-editor/diagram/display/trigonometryDisplayManager" {
557
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
558
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
740
+ declare module "@babylonjs/node-editor/graphSystem/display/trigonometryDisplayManager" {
741
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
742
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
559
743
  export class TrigonometryDisplayManager implements IDisplayManager {
560
744
  getHeaderClass(): string;
561
745
  shouldDisplayPortLabels(): boolean;
562
- getHeaderText(block: NodeMaterialBlock): string;
746
+ getHeaderText(nodeData: INodeData): string;
563
747
  getBackgroundColor(): string;
564
- updatePreviewContent(block: NodeMaterialBlock, contentArea: HTMLDivElement): void;
748
+ updatePreviewContent(nodeData: INodeData, contentArea: HTMLDivElement): void;
565
749
  }
566
750
 
567
751
  }
568
- declare module "@babylonjs/node-editor/diagram/displayLedger" {
569
- export class DisplayLedger {
570
- static RegisteredControls: {
571
- [key: string]: any;
572
- };
752
+ declare module "@babylonjs/node-editor/graphSystem/properties/colorMergerPropertyComponent" {
753
+ import * as React from "react";
754
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
755
+ export class ColorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
756
+ constructor(props: IPropertyComponentProps);
757
+ render(): JSX.Element;
573
758
  }
574
759
 
575
760
  }
576
- declare module "@babylonjs/node-editor/diagram/frameNodePort" {
577
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
578
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
579
- import { FramePortPosition } from "@babylonjs/node-editor/diagram/graphFrame";
580
- import { GlobalState } from "@babylonjs/node-editor/globalState";
581
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
582
- import { Observable } from "@babylonjs/core/Misc/observable";
583
- import { Nullable } from "@babylonjs/core/types";
584
- import { NodeMaterialConnectionPoint } from "@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint";
585
- export class FrameNodePort extends NodePort {
586
- connectionPoint: NodeMaterialConnectionPoint;
587
- node: GraphNode;
588
- private _parentFrameId;
589
- private _isInput;
590
- private _framePortPosition;
591
- private _framePortId;
592
- private _onFramePortPositionChangedObservable;
593
- get parentFrameId(): number;
594
- get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
595
- get isInput(): boolean;
596
- get framePortId(): number;
597
- get framePortPosition(): FramePortPosition;
598
- set framePortPosition(position: FramePortPosition);
599
- constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number);
600
- static CreateFrameNodePortElement(connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
761
+ declare module "@babylonjs/node-editor/graphSystem/properties/conditionalNodePropertyComponent" {
762
+ import * as React from "react";
763
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
764
+ export class ConditionalPropertyTabComponent extends React.Component<IPropertyComponentProps> {
765
+ constructor(props: IPropertyComponentProps);
766
+ render(): JSX.Element;
601
767
  }
602
768
 
603
769
  }
604
- declare module "@babylonjs/node-editor/diagram/graphCanvas" {
770
+ declare module "@babylonjs/node-editor/graphSystem/properties/frameNodePortPropertyComponent" {
605
771
  import * as React from "react";
606
772
  import { GlobalState } from "@babylonjs/node-editor/globalState";
607
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
608
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
609
- import { Nullable } from "@babylonjs/core/types";
610
- import { NodeLink } from "@babylonjs/node-editor/diagram/nodeLink";
611
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
612
- import { NodeMaterialConnectionPoint } from "@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint";
613
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
614
- import { IEditorData, IFrameData } from "@babylonjs/node-editor/nodeLocationInfo";
615
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
616
- import "@babylonjs/node-editor/diagram/graphCanvas.scss";
617
- export interface IGraphCanvasComponentProps {
773
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
774
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
775
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
776
+ export interface IFrameNodePortPropertyTabComponentProps {
777
+ stateManager: StateManager;
618
778
  globalState: GlobalState;
619
- onEmitNewBlock: (block: NodeMaterialBlock) => GraphNode;
620
- }
621
- export type FramePortData = {
779
+ frameNodePort: FrameNodePort;
622
780
  frame: GraphFrame;
623
- port: FrameNodePort;
624
- };
625
- export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
626
- export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> {
627
- private readonly _minZoom;
628
- private readonly _maxZoom;
629
- private _hostCanvas;
630
- private _graphCanvas;
631
- private _selectionContainer;
632
- private _frameContainer;
633
- private _svgCanvas;
634
- private _rootContainer;
635
- private _nodes;
636
- private _links;
637
- private _mouseStartPointX;
638
- private _mouseStartPointY;
639
- private _dropPointX;
640
- private _dropPointY;
641
- private _selectionStartX;
642
- private _selectionStartY;
643
- private _candidateLinkedHasMoved;
644
- private _x;
645
- private _y;
646
- private _zoom;
647
- private _selectedNodes;
648
- private _selectedLink;
649
- private _selectedPort;
650
- private _candidateLink;
651
- private _candidatePort;
652
- private _gridSize;
653
- private _selectionBox;
654
- private _selectedFrames;
655
- private _frameCandidate;
656
- private _frames;
657
- private _altKeyIsPressed;
658
- private _multiKeyIsPressed;
659
- private _oldY;
660
- _frameIsMoving: boolean;
661
- _isLoading: boolean;
662
- get gridSize(): number;
663
- set gridSize(value: number);
664
- get globalState(): GlobalState;
665
- get nodes(): GraphNode[];
666
- get links(): NodeLink[];
667
- get frames(): GraphFrame[];
668
- get zoom(): number;
669
- set zoom(value: number);
670
- get x(): number;
671
- set x(value: number);
672
- get y(): number;
673
- set y(value: number);
674
- get selectedNodes(): GraphNode[];
675
- get selectedLink(): Nullable<NodeLink>;
676
- get selectedFrames(): GraphFrame[];
677
- get selectedPort(): Nullable<NodePort>;
678
- get canvasContainer(): HTMLDivElement;
679
- get hostCanvas(): HTMLDivElement;
680
- get svgCanvas(): HTMLElement;
681
- get selectionContainer(): HTMLDivElement;
682
- get frameContainer(): HTMLDivElement;
683
- private _selectedFrameAndNodesConflict;
684
- constructor(props: IGraphCanvasComponentProps);
685
- static _RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode> | undefined, visitedLinks?: Set<NodeLink> | undefined) => void;
686
- getGridPosition(position: number, useCeil?: boolean): number;
687
- getGridPositionCeil(position: number): number;
688
- updateTransform(): void;
689
- onKeyUp(): void;
690
- findNodeFromBlock(block: NodeMaterialBlock): GraphNode;
691
- reset(): void;
692
- connectPorts(pointA: NodeMaterialConnectionPoint, pointB: NodeMaterialConnectionPoint): void;
693
- removeLink(link: NodeLink): void;
694
- appendBlock(block: NodeMaterialBlock): GraphNode;
695
- distributeGraph(): void;
696
- componentDidMount(): void;
697
- onMove(evt: React.PointerEvent): void;
698
- onDown(evt: React.PointerEvent<HTMLElement>): void;
699
- onUp(evt: React.PointerEvent): void;
700
- onWheel(evt: React.WheelEvent): void;
701
- zoomToFit(): void;
702
- processCandidatePort(): void;
703
- connectNodes(nodeA: GraphNode, pointA: NodeMaterialConnectionPoint, nodeB: GraphNode, pointB: NodeMaterialConnectionPoint): void;
704
- processEditorData(editorData: IEditorData): void;
705
- addFrame(frameData: IFrameData): void;
706
- render(): JSX.Element;
707
- }
708
-
709
- }
710
- declare module "@babylonjs/node-editor/diagram/graphFrame" {
711
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
712
- import { GraphCanvasComponent } from "@babylonjs/node-editor/diagram/graphCanvas";
713
- import { Nullable } from "@babylonjs/core/types";
714
- import { Observable } from "@babylonjs/core/Misc/observable";
715
- import { IFrameData } from "@babylonjs/node-editor/nodeLocationInfo";
716
- import { Color3 } from "@babylonjs/core/Maths/math.color";
717
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
718
- export enum FramePortPosition {
719
- Top = 0,
720
- Middle = 1,
721
- Bottom = 2
722
- }
723
- export class GraphFrame {
724
- private readonly _collapsedWidth;
725
- private static _FrameCounter;
726
- private static _FramePortCounter;
727
- private _name;
728
- private _color;
729
- private _x;
730
- private _y;
731
- private _gridAlignedX;
732
- private _gridAlignedY;
733
- private _width;
734
- private _height;
735
- element: HTMLDivElement;
736
- private _borderElement;
737
- private _headerElement;
738
- private _headerTextElement;
739
- private _headerCollapseElement;
740
- private _headerCloseElement;
741
- private _commentsElement;
742
- private _portContainer;
743
- private _outputPortContainer;
744
- private _inputPortContainer;
745
- private _nodes;
746
- private _ownerCanvas;
747
- private _mouseStartPointX;
748
- private _mouseStartPointY;
749
- private _onSelectionChangedObserver;
750
- private _onGraphNodeRemovalObserver;
751
- private _onExposePortOnFrameObserver;
752
- private _onNodeLinkDisposedObservers;
753
- private _isCollapsed;
754
- private _frameInPorts;
755
- private _frameOutPorts;
756
- private _controlledPorts;
757
- private _exposedInPorts;
758
- private _exposedOutPorts;
759
- private _id;
760
- private _comments;
761
- private _frameIsResizing;
762
- private _resizingDirection;
763
- private _minFrameHeight;
764
- private _minFrameWidth;
765
- private _mouseXLimit;
766
- onExpandStateChanged: Observable<GraphFrame>;
767
- private readonly _closeSVG;
768
- private readonly _expandSVG;
769
- private readonly _collapseSVG;
770
- get id(): number;
771
- get isCollapsed(): boolean;
772
- private _createInputPort;
773
- private _markFramePortPositions;
774
- private _createFramePorts;
775
- private _removePortFromExposedWithNode;
776
- private _removePortFromExposedWithLink;
777
- private _createInputPorts;
778
- private _createOutputPorts;
779
- redrawFramePorts(): void;
780
- set isCollapsed(value: boolean);
781
- get nodes(): GraphNode[];
782
- get ports(): FrameNodePort[];
783
- get name(): string;
784
- set name(value: string);
785
- get color(): Color3;
786
- set color(value: Color3);
787
- get x(): number;
788
- set x(value: number);
789
- get y(): number;
790
- set y(value: number);
791
- get width(): number;
792
- set width(value: number);
793
- get height(): number;
794
- set height(value: number);
795
- get comments(): string;
796
- set comments(comments: string);
797
- constructor(candidate: Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
798
- refresh(): void;
799
- addNode(node: GraphNode): void;
800
- removeNode(node: GraphNode): void;
801
- syncNode(node: GraphNode): void;
802
- cleanAccumulation(): void;
803
- private _onDown;
804
- move(newX: number, newY: number, align?: boolean): void;
805
- private _onUp;
806
- _moveFrame(offsetX: number, offsetY: number): void;
807
- private _onMove;
808
- moveFramePortUp(nodePort: FrameNodePort): void;
809
- private _movePortUp;
810
- moveFramePortDown(nodePort: FrameNodePort): void;
811
- private _movePortDown;
812
- private _initResizing;
813
- private _cleanUpResizing;
814
- private _updateMinHeightWithComments;
815
- private _isResizingTop;
816
- private _isResizingRight;
817
- private _isResizingBottom;
818
- private _isResizingLeft;
819
- private _onRightHandlePointerDown;
820
- private _onRightHandlePointerMove;
821
- private _moveRightHandle;
822
- private _onRightHandlePointerUp;
823
- private _onBottomHandlePointerDown;
824
- private _onBottomHandlePointerMove;
825
- private _moveBottomHandle;
826
- private _onBottomHandlePointerUp;
827
- private _onLeftHandlePointerDown;
828
- private _onLeftHandlePointerMove;
829
- private _moveLeftHandle;
830
- private _onLeftHandlePointerUp;
831
- private _onTopHandlePointerDown;
832
- private _onTopHandlePointerMove;
833
- private _moveTopHandle;
834
- private _onTopHandlePointerUp;
835
- private _onTopRightHandlePointerDown;
836
- private _onTopRightHandlePointerMove;
837
- private _moveTopRightHandle;
838
- private _onTopRightHandlePointerUp;
839
- private _onBottomRightHandlePointerDown;
840
- private _onBottomRightHandlePointerMove;
841
- private _moveBottomRightHandle;
842
- private _onBottomRightHandlePointerUp;
843
- private _onBottomLeftHandlePointerDown;
844
- private _onBottomLeftHandlePointerMove;
845
- private _moveBottomLeftHandle;
846
- private _onBottomLeftHandlePointerUp;
847
- private _onTopLeftHandlePointerDown;
848
- private _onTopLeftHandlePointerMove;
849
- private _moveTopLeftHandle;
850
- private _onTopLeftHandlePointerUp;
851
- private _expandLeft;
852
- private _expandTop;
853
- private _expandRight;
854
- private _expandBottom;
855
- dispose(): void;
856
- private _serializePortData;
857
- serialize(saveCollapsedState: boolean): IFrameData;
858
- export(): void;
859
- adjustPorts(): void;
860
- static Parse(serializationData: IFrameData, canvas: GraphCanvasComponent, map?: {
861
- [key: number]: number;
862
- }): GraphFrame;
863
- }
864
-
865
- }
866
- declare module "@babylonjs/node-editor/diagram/graphNode" {
867
- /// <reference types="react" />
868
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
869
- import { GlobalState } from "@babylonjs/node-editor/globalState";
870
- import { Nullable } from "@babylonjs/core/types";
871
- import { NodeMaterialConnectionPoint } from "@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint";
872
- import { GraphCanvasComponent } from "@babylonjs/node-editor/diagram/graphCanvas";
873
- import { NodeLink } from "@babylonjs/node-editor/diagram/nodeLink";
874
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
875
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
876
- export class GraphNode {
877
- block: NodeMaterialBlock;
878
- private _visual;
879
- private _headerContainer;
880
- private _promotionWarning;
881
- private _header;
882
- private _connections;
883
- private _inputsContainer;
884
- private _outputsContainer;
885
- private _content;
886
- private _comments;
887
- private _inputPorts;
888
- private _outputPorts;
889
- private _links;
890
- private _x;
891
- private _y;
892
- private _gridAlignedX;
893
- private _gridAlignedY;
894
- private _mouseStartPointX;
895
- private _mouseStartPointY;
896
- private _globalState;
897
- private _onSelectionChangedObserver;
898
- private _onSelectionBoxMovedObserver;
899
- private _onFrameCreatedObserver;
900
- private _onUpdateRequiredObserver;
901
- private _ownerCanvas;
902
- private _isSelected;
903
- private _displayManager;
904
- private _isVisible;
905
- private _enclosingFrameId;
906
- get isVisible(): boolean;
907
- set isVisible(value: boolean);
908
- private _upateNodePortNames;
909
- get outputPorts(): NodePort[];
910
- get inputPorts(): NodePort[];
911
- get links(): NodeLink[];
912
- get gridAlignedX(): number;
913
- get gridAlignedY(): number;
914
- get x(): number;
915
- set x(value: number);
916
- get y(): number;
917
- set y(value: number);
918
- get width(): number;
919
- get height(): number;
920
- get id(): number;
921
- get name(): string;
922
- get isSelected(): boolean;
923
- get enclosingFrameId(): number;
924
- set enclosingFrameId(value: number);
925
- set isSelected(value: boolean);
926
- setIsSelected(value: boolean, marqueeSelection: boolean): void;
927
- constructor(block: NodeMaterialBlock, globalState: GlobalState);
928
- isOverlappingFrame(frame: GraphFrame): boolean;
929
- getPortForConnectionPoint(point: NodeMaterialConnectionPoint): NodePort | null;
930
- getLinksForConnectionPoint(point: NodeMaterialConnectionPoint): NodeLink[];
931
- private _refreshFrames;
932
- _refreshLinks(): void;
933
- refresh(): void;
934
- private _onDown;
935
- cleanAccumulation(useCeil?: boolean): void;
936
- private _onUp;
937
- private _onMove;
938
- renderProperties(): Nullable<JSX.Element>;
939
- appendVisual(root: HTMLDivElement, owner: GraphCanvasComponent): void;
940
- dispose(): void;
941
- }
942
-
943
- }
944
- declare module "@babylonjs/node-editor/diagram/nodeLink" {
945
- import { GraphCanvasComponent } from "@babylonjs/node-editor/diagram/graphCanvas";
946
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
947
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
948
- import { Observable } from "@babylonjs/core/Misc/observable";
949
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
950
- export class NodeLink {
951
- private _graphCanvas;
952
- private _portA;
953
- private _portB?;
954
- private _nodeA;
955
- private _nodeB?;
956
- private _path;
957
- private _selectionPath;
958
- private _onSelectionChangedObserver;
959
- private _isVisible;
960
- onDisposedObservable: Observable<NodeLink>;
961
- get isVisible(): boolean;
962
- set isVisible(value: boolean);
963
- get portA(): NodePort | FrameNodePort;
964
- get portB(): NodePort | FrameNodePort | undefined;
965
- get nodeA(): GraphNode;
966
- get nodeB(): GraphNode | undefined;
967
- update(endX?: number, endY?: number, straight?: boolean): void;
968
- constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
969
- onClick(evt: MouseEvent): void;
970
- dispose(notify?: boolean): void;
971
- }
972
-
973
- }
974
- declare module "@babylonjs/node-editor/diagram/nodePort" {
975
- import { NodeMaterialConnectionPoint } from "@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint";
976
- import { GlobalState, ISelectionChangedOptions } from "@babylonjs/node-editor/globalState";
977
- import { Nullable } from "@babylonjs/core/types";
978
- import { Observer } from "@babylonjs/core/Misc/observable";
979
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
980
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
981
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
982
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
983
- export class NodePort {
984
- connectionPoint: NodeMaterialConnectionPoint;
985
- node: GraphNode;
986
- protected _element: HTMLDivElement;
987
- protected _img: HTMLImageElement;
988
- protected _globalState: GlobalState;
989
- protected _portLabelElement: Element;
990
- protected _onCandidateLinkMovedObserver: Nullable<Observer<Nullable<Vector2>>>;
991
- protected _onSelectionChangedObserver: Nullable<Observer<Nullable<ISelectionChangedOptions>>>;
992
- protected _exposedOnFrame: boolean;
993
- delegatedPort: Nullable<FrameNodePort>;
994
- get element(): HTMLDivElement;
995
- get portName(): string;
996
- set portName(newName: string);
997
- get disabled(): boolean;
998
- hasLabel(): boolean;
999
- get exposedOnFrame(): boolean;
1000
- set exposedOnFrame(value: boolean);
1001
- get exposedPortPosition(): number;
1002
- set exposedPortPosition(value: number);
1003
- private _isConnectedToNodeOutsideOfFrame;
1004
- refresh(): void;
1005
- constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState);
1006
- dispose(): void;
1007
- static CreatePortElement(connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, globalState: GlobalState): NodePort;
1008
- }
1009
-
1010
- }
1011
- declare module "@babylonjs/node-editor/diagram/properties/colorMergerPropertyComponent" {
1012
- import * as React from "react";
1013
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1014
- export class ColorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1015
- constructor(props: IPropertyComponentProps);
1016
- render(): JSX.Element;
1017
- }
1018
-
1019
- }
1020
- declare module "@babylonjs/node-editor/diagram/properties/conditionalNodePropertyComponent" {
1021
- import * as React from "react";
1022
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1023
- export class ConditionalPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1024
- constructor(props: IPropertyComponentProps);
1025
- render(): JSX.Element;
1026
- }
1027
-
1028
- }
1029
- declare module "@babylonjs/node-editor/diagram/properties/frameNodePortPropertyComponent" {
1030
- import * as React from "react";
1031
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1032
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
1033
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
1034
- export interface IFrameNodePortPropertyTabComponentProps {
1035
- globalState: GlobalState;
1036
- frameNodePort: FrameNodePort;
1037
- frame: GraphFrame;
1038
- }
1039
- export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
781
+ }
782
+ export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
1040
783
  port: FrameNodePort;
1041
784
  }> {
1042
785
  private _onFramePortPositionChangedObserver;
@@ -1047,10 +790,10 @@ export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNod
1047
790
  }
1048
791
 
1049
792
  }
1050
- declare module "@babylonjs/node-editor/diagram/properties/framePropertyComponent" {
793
+ declare module "@babylonjs/node-editor/graphSystem/properties/framePropertyComponent" {
1051
794
  import * as React from "react";
1052
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
1053
795
  import { GlobalState } from "@babylonjs/node-editor/globalState";
796
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
1054
797
  export interface IFramePropertyTabComponentProps {
1055
798
  globalState: GlobalState;
1056
799
  frame: GraphFrame;
@@ -1064,10 +807,10 @@ export class FramePropertyTabComponent extends React.Component<IFramePropertyTab
1064
807
  }
1065
808
 
1066
809
  }
1067
- declare module "@babylonjs/node-editor/diagram/properties/genericNodePropertyComponent" {
810
+ declare module "@babylonjs/node-editor/graphSystem/properties/genericNodePropertyComponent" {
1068
811
  import * as React from "react";
1069
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1070
812
  import { Scene } from "@babylonjs/core/scene";
813
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1071
814
  export class GenericPropertyComponent extends React.Component<IPropertyComponentProps> {
1072
815
  constructor(props: IPropertyComponentProps);
1073
816
  render(): JSX.Element;
@@ -1088,10 +831,10 @@ export class GenericPropertyTabComponent extends React.Component<IPropertyCompon
1088
831
  }
1089
832
 
1090
833
  }
1091
- declare module "@babylonjs/node-editor/diagram/properties/gradientNodePropertyComponent" {
834
+ declare module "@babylonjs/node-editor/graphSystem/properties/gradientNodePropertyComponent" {
1092
835
  import * as React from "react";
1093
836
  import { GradientBlockColorStep } from "@babylonjs/core/Materials/Node/Blocks/gradientBlock";
1094
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
837
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1095
838
  export class GradientPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1096
839
  private _onValueChangedObserver;
1097
840
  constructor(props: IPropertyComponentProps);
@@ -1106,12 +849,12 @@ export class GradientPropertyTabComponent extends React.Component<IPropertyCompo
1106
849
  }
1107
850
 
1108
851
  }
1109
- declare module "@babylonjs/node-editor/diagram/properties/gradientStepComponent" {
852
+ declare module "@babylonjs/node-editor/graphSystem/properties/gradientStepComponent" {
1110
853
  import * as React from "react";
1111
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1112
854
  import { GradientBlockColorStep } from "@babylonjs/core/Materials/Node/Blocks/gradientBlock";
855
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
1113
856
  interface IGradientStepComponentProps {
1114
- globalState: GlobalState;
857
+ stateManager: StateManager;
1115
858
  step: GradientBlockColorStep;
1116
859
  lineIndex: number;
1117
860
  onDelete: () => void;
@@ -1131,10 +874,10 @@ export class GradientStepComponent extends React.Component<IGradientStepComponen
1131
874
  export {};
1132
875
 
1133
876
  }
1134
- declare module "@babylonjs/node-editor/diagram/properties/imageSourcePropertyTabComponent" {
877
+ declare module "@babylonjs/node-editor/graphSystem/properties/imageSourcePropertyTabComponent" {
1135
878
  import * as React from "react";
1136
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1137
879
  import { ImageSourceBlock } from "@babylonjs/core/Materials/Node/Blocks/Dual/imageSourceBlock";
880
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1138
881
  export class ImageSourcePropertyTabComponent extends React.Component<IPropertyComponentProps, {
1139
882
  isEmbedded: boolean;
1140
883
  }> {
@@ -1158,10 +901,10 @@ export class ImageSourcePropertyTabComponent extends React.Component<IPropertyCo
1158
901
  }
1159
902
 
1160
903
  }
1161
- declare module "@babylonjs/node-editor/diagram/properties/inputNodePropertyComponent" {
904
+ declare module "@babylonjs/node-editor/graphSystem/properties/inputNodePropertyComponent" {
1162
905
  import * as React from "react";
1163
906
  import { GlobalState } from "@babylonjs/node-editor/globalState";
1164
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
907
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1165
908
  export class InputPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1166
909
  private _onValueChangedObserver;
1167
910
  constructor(props: IPropertyComponentProps);
@@ -1173,28 +916,28 @@ export class InputPropertyTabComponent extends React.Component<IPropertyComponen
1173
916
  }
1174
917
 
1175
918
  }
1176
- declare module "@babylonjs/node-editor/diagram/properties/lightInformationPropertyTabComponent" {
919
+ declare module "@babylonjs/node-editor/graphSystem/properties/lightInformationPropertyTabComponent" {
1177
920
  import * as React from "react";
1178
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
921
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1179
922
  export class LightInformationPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1180
923
  render(): JSX.Element;
1181
924
  }
1182
925
 
1183
926
  }
1184
- declare module "@babylonjs/node-editor/diagram/properties/lightPropertyTabComponent" {
927
+ declare module "@babylonjs/node-editor/graphSystem/properties/lightPropertyTabComponent" {
1185
928
  import * as React from "react";
1186
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
929
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1187
930
  export class LightPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1188
931
  render(): JSX.Element;
1189
932
  }
1190
933
 
1191
934
  }
1192
- declare module "@babylonjs/node-editor/diagram/properties/nodePortPropertyComponent" {
935
+ declare module "@babylonjs/node-editor/graphSystem/properties/nodePortPropertyComponent" {
1193
936
  import * as React from "react";
1194
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1195
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
937
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
938
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
1196
939
  export interface IFrameNodePortPropertyTabComponentProps {
1197
- globalState: GlobalState;
940
+ stateManager: StateManager;
1198
941
  nodePort: NodePort;
1199
942
  }
1200
943
  export class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> {
@@ -1206,24 +949,15 @@ export class NodePortPropertyTabComponent extends React.Component<IFrameNodePort
1206
949
  }
1207
950
 
1208
951
  }
1209
- declare module "@babylonjs/node-editor/diagram/properties/propertyComponentProps" {
1210
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1211
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
1212
- export interface IPropertyComponentProps {
1213
- globalState: GlobalState;
1214
- block: NodeMaterialBlock;
1215
- }
1216
-
1217
- }
1218
- declare module "@babylonjs/node-editor/diagram/properties/texturePropertyTabComponent" {
952
+ declare module "@babylonjs/node-editor/graphSystem/properties/texturePropertyTabComponent" {
1219
953
  import * as React from "react";
1220
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1221
954
  import { ReflectionTextureBlock } from "@babylonjs/core/Materials/Node/Blocks/Dual/reflectionTextureBlock";
1222
955
  import { ReflectionBlock } from "@babylonjs/core/Materials/Node/Blocks/PBR/reflectionBlock";
1223
956
  import { RefractionBlock } from "@babylonjs/core/Materials/Node/Blocks/PBR/refractionBlock";
1224
957
  import { TextureBlock } from "@babylonjs/core/Materials/Node/Blocks/Dual/textureBlock";
1225
958
  import { CurrentScreenBlock } from "@babylonjs/core/Materials/Node/Blocks/Dual/currentScreenBlock";
1226
959
  import { ParticleTextureBlock } from "@babylonjs/core/Materials/Node/Blocks/Particle/particleTextureBlock";
960
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1227
961
  type ReflectionTexture = ReflectionTextureBlock | ReflectionBlock | RefractionBlock;
1228
962
  type AnyTexture = TextureBlock | ReflectionTexture | CurrentScreenBlock | ParticleTextureBlock;
1229
963
  export class TexturePropertyTabComponent extends React.Component<IPropertyComponentProps, {
@@ -1252,207 +986,63 @@ export class TexturePropertyTabComponent extends React.Component<IPropertyCompon
1252
986
  export {};
1253
987
 
1254
988
  }
1255
- declare module "@babylonjs/node-editor/diagram/properties/transformNodePropertyComponent" {
989
+ declare module "@babylonjs/node-editor/graphSystem/properties/transformNodePropertyComponent" {
1256
990
  import * as React from "react";
1257
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
991
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1258
992
  export class TransformPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1259
993
  constructor(props: IPropertyComponentProps);
1260
994
  render(): JSX.Element;
1261
995
  }
1262
996
 
1263
997
  }
1264
- declare module "@babylonjs/node-editor/diagram/properties/trigonometryNodePropertyComponent" {
998
+ declare module "@babylonjs/node-editor/graphSystem/properties/trigonometryNodePropertyComponent" {
1265
999
  import * as React from "react";
1266
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1000
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1267
1001
  export class TrigonometryPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1268
1002
  constructor(props: IPropertyComponentProps);
1269
1003
  render(): JSX.Element;
1270
1004
  }
1271
1005
 
1272
1006
  }
1273
- declare module "@babylonjs/node-editor/diagram/properties/vectorMergerPropertyComponent" {
1007
+ declare module "@babylonjs/node-editor/graphSystem/properties/vectorMergerPropertyComponent" {
1274
1008
  import * as React from "react";
1275
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1009
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
1276
1010
  export class VectorMergerPropertyTabComponent extends React.Component<IPropertyComponentProps> {
1277
1011
  constructor(props: IPropertyComponentProps);
1278
1012
  render(): JSX.Element;
1279
1013
  }
1280
1014
 
1281
1015
  }
1282
- declare module "@babylonjs/node-editor/diagram/propertyLedger" {
1283
- import { ComponentClass } from "react";
1284
- import { IPropertyComponentProps } from "@babylonjs/node-editor/diagram/properties/propertyComponentProps";
1285
- export class PropertyLedger {
1286
- static RegisteredControls: {
1287
- [key: string]: ComponentClass<IPropertyComponentProps>;
1288
- };
1289
- }
1016
+ declare module "@babylonjs/node-editor/graphSystem/registerDefaultInput" {
1017
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
1018
+ export const RegisterDefaultInput: (stateManager: StateManager) => void;
1290
1019
 
1291
1020
  }
1292
- declare module "@babylonjs/node-editor/globalState" {
1293
- import { NodeMaterial } from "@babylonjs/core/Materials/Node/nodeMaterial";
1294
- import { Nullable } from "@babylonjs/core/types";
1295
- import { Observable } from "@babylonjs/core/Misc/observable";
1296
- import { LogEntry } from "@babylonjs/node-editor/components/log/logComponent";
1297
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
1298
- import { PreviewType } from "@babylonjs/node-editor/components/preview/previewType";
1299
- import { Color4 } from "@babylonjs/core/Maths/math.color";
1300
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
1301
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
1302
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
1303
- import { NodeLink } from "@babylonjs/node-editor/diagram/nodeLink";
1304
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
1305
- import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
1306
- import { FramePortData } from "@babylonjs/node-editor/diagram/graphCanvas";
1307
- import { NodeMaterialModes } from "@babylonjs/core/Materials/Node/Enums/nodeMaterialModes";
1308
- export class ISelectionChangedOptions {
1309
- selection: Nullable<GraphNode | NodeLink | GraphFrame | NodePort | FramePortData>;
1310
- forceKeepSelection?: boolean;
1311
- marqueeSelection?: boolean;
1312
- }
1313
- export class GlobalState {
1314
- nodeMaterial: NodeMaterial;
1315
- hostElement: HTMLElement;
1316
- hostDocument: HTMLDocument;
1317
- hostWindow: Window;
1318
- onNewNodeCreatedObservable: Observable<GraphNode>;
1319
- onSelectionChangedObservable: Observable<Nullable<ISelectionChangedOptions>>;
1320
- onRebuildRequiredObservable: Observable<boolean>;
1321
- onBuiltObservable: Observable<void>;
1322
- onResetRequiredObservable: Observable<void>;
1323
- onUpdateRequiredObservable: Observable<Nullable<NodeMaterialBlock>>;
1324
- onZoomToFitRequiredObservable: Observable<void>;
1325
- onReOrganizedRequiredObservable: Observable<void>;
1326
- onLogRequiredObservable: Observable<LogEntry>;
1327
- onErrorMessageDialogRequiredObservable: Observable<string>;
1328
- onIsLoadingChanged: Observable<boolean>;
1329
- onPreviewCommandActivated: Observable<boolean>;
1330
- onLightUpdated: Observable<void>;
1331
- onPreviewBackgroundChanged: Observable<void>;
1332
- onBackFaceCullingChanged: Observable<void>;
1333
- onDepthPrePassChanged: Observable<void>;
1334
- onAnimationCommandActivated: Observable<void>;
1335
- onCandidateLinkMoved: Observable<Nullable<Vector2>>;
1336
- onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
1337
- onFrameCreatedObservable: Observable<GraphFrame>;
1338
- onCandidatePortSelectedObservable: Observable<Nullable<NodePort | FrameNodePort>>;
1339
- onImportFrameObservable: Observable<any>;
1340
- onGraphNodeRemovalObservable: Observable<GraphNode>;
1341
- onPopupClosedObservable: Observable<void>;
1342
- onNewBlockRequiredObservable: Observable<{
1343
- type: string;
1344
- targetX: number;
1345
- targetY: number;
1346
- needRepositioning?: boolean | undefined;
1347
- }>;
1348
- onGetNodeFromBlock: (block: NodeMaterialBlock) => GraphNode;
1349
- onGridSizeChanged: Observable<void>;
1350
- onExposePortOnFrameObservable: Observable<GraphNode>;
1351
- previewType: PreviewType;
1352
- previewFile: File;
1353
- particleSystemBlendMode: number;
1354
- listOfCustomPreviewFiles: File[];
1355
- rotatePreview: boolean;
1356
- backgroundColor: Color4;
1357
- backFaceCulling: boolean;
1358
- depthPrePass: boolean;
1359
- blockKeyboardEvents: boolean;
1360
- hemisphericLight: boolean;
1361
- directionalLight0: boolean;
1362
- directionalLight1: boolean;
1363
- controlCamera: boolean;
1364
- storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
1365
- _mode: NodeMaterialModes;
1366
- /** Gets the mode */
1367
- get mode(): NodeMaterialModes;
1368
- /** Sets the mode */
1369
- set mode(m: NodeMaterialModes);
1370
- customSave?: {
1371
- label: string;
1372
- action: (data: string) => Promise<void>;
1373
- };
1374
- constructor();
1375
- }
1021
+ declare module "@babylonjs/node-editor/graphSystem/registerElbowSupport" {
1022
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
1023
+ export const RegisterElbowSupport: (stateManager: StateManager) => void;
1376
1024
 
1377
1025
  }
1378
- declare module "@babylonjs/node-editor/graphEditor" {
1379
- import * as React from "react";
1380
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1381
- import { NodeMaterialBlock } from "@babylonjs/core/Materials/Node/nodeMaterialBlock";
1382
- import { Nullable } from "@babylonjs/core/types";
1383
- import { IEditorData } from "@babylonjs/node-editor/nodeLocationInfo";
1384
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
1385
- import { IInspectorOptions } from "@babylonjs/core/Debug/debugLayer";
1386
- import "@babylonjs/node-editor/main.scss";
1387
- interface IGraphEditorProps {
1388
- globalState: GlobalState;
1389
- }
1390
- interface IGraphEditorState {
1391
- showPreviewPopUp: boolean;
1392
- }
1393
- interface IInternalPreviewAreaOptions extends IInspectorOptions {
1394
- popup: boolean;
1395
- original: boolean;
1396
- explorerWidth?: string;
1397
- inspectorWidth?: string;
1398
- embedHostWidth?: string;
1026
+ declare module "@babylonjs/node-editor/graphSystem/registerExportData" {
1027
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
1028
+ export const RegisterExportData: (stateManager: StateManager) => void;
1029
+
1399
1030
  }
1400
- export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
1401
- static readonly NodeWidth: number;
1402
- private _graphCanvasRef;
1403
- private _diagramContainerRef;
1404
- private _graphCanvas;
1405
- private _diagramContainer;
1406
- private _startX;
1407
- private _moveInProgress;
1408
- private _leftWidth;
1409
- private _rightWidth;
1410
- private _blocks;
1411
- private _previewManager;
1412
- private _copiedNodes;
1413
- private _copiedFrames;
1414
- private _mouseLocationX;
1415
- private _mouseLocationY;
1416
- private _onWidgetKeyUpPointer;
1417
- private _previewHost;
1418
- private _popUpWindow;
1419
- /**
1420
- * Creates a node and recursivly creates its parent nodes from it's input
1421
- * @param block
1422
- * @param recursion
1423
- */
1424
- createNodeFromObject(block: NodeMaterialBlock, recursion?: boolean): GraphNode;
1425
- addValueNode(type: string): GraphNode;
1426
- componentDidMount(): void;
1427
- componentWillUnmount(): void;
1428
- constructor(props: IGraphEditorProps);
1429
- reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
1430
- pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, selectNew?: boolean): GraphNode[] | undefined;
1431
- zoomToFit(): void;
1432
- buildMaterial(autoConfigure?: boolean): void;
1433
- build(): void;
1434
- loadGraph(): void;
1435
- showWaitScreen(): void;
1436
- hideWaitScreen(): void;
1437
- reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
1438
- onPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1439
- onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1440
- onWheel(this: any, evt: WheelEvent): void;
1441
- resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
1442
- buildColumnLayout(): string;
1443
- emitNewBlock(blockType: string, targetX: number, targetY: number): void;
1444
- dropNewBlock(event: React.DragEvent<HTMLDivElement>): void;
1445
- handlePopUp: () => void;
1446
- handleClosingPopUp: () => void;
1447
- initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
1448
- createPopUp: () => void;
1449
- createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null;
1450
- createPreviewMeshControlHost: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => void;
1451
- createPreviewHost: (options: IInternalPreviewAreaOptions, parentControl: Nullable<HTMLElement>) => void;
1452
- fixPopUpStyles: (document: Document) => void;
1453
- render(): JSX.Element;
1031
+ declare module "@babylonjs/node-editor/graphSystem/registerNodePortDesign" {
1032
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
1033
+ export const RegisterNodePortDesign: (stateManager: StateManager) => void;
1034
+
1454
1035
  }
1455
- export {};
1036
+ declare module "@babylonjs/node-editor/graphSystem/registerToDisplayLedger" {
1037
+ export const RegisterToDisplayManagers: () => void;
1038
+
1039
+ }
1040
+ declare module "@babylonjs/node-editor/graphSystem/registerToPropertyLedger" {
1041
+ export const RegisterToPropertyTabManagers: () => void;
1042
+
1043
+ }
1044
+ declare module "@babylonjs/node-editor/graphSystem/registerToTypeLedger" {
1045
+ export const RegisterTypeLedger: () => void;
1456
1046
 
1457
1047
  }
1458
1048
  declare module "@babylonjs/node-editor/index" {
@@ -1490,35 +1080,6 @@ export class NodeEditor {
1490
1080
  static Show(options: INodeEditorOptions): void;
1491
1081
  }
1492
1082
 
1493
- }
1494
- declare module "@babylonjs/node-editor/nodeLocationInfo" {
1495
- export interface INodeLocationInfo {
1496
- blockId: number;
1497
- x: number;
1498
- y: number;
1499
- }
1500
- export interface IFrameData {
1501
- x: number;
1502
- y: number;
1503
- width: number;
1504
- height: number;
1505
- color: number[];
1506
- name: string;
1507
- isCollapsed: boolean;
1508
- blocks: number[];
1509
- comments: string;
1510
- }
1511
- export interface IEditorData {
1512
- locations: INodeLocationInfo[];
1513
- x: number;
1514
- y: number;
1515
- zoom: number;
1516
- frames?: IFrameData[];
1517
- map?: {
1518
- [key: number]: number;
1519
- };
1520
- }
1521
-
1522
1083
  }
1523
1084
  declare module "@babylonjs/node-editor/portal" {
1524
1085
  import * as React from "react";
@@ -1536,7 +1097,7 @@ declare module "@babylonjs/node-editor/serializationTools" {
1536
1097
  import { NodeMaterial } from "@babylonjs/core/Materials/Node/nodeMaterial";
1537
1098
  import { GlobalState } from "@babylonjs/node-editor/globalState";
1538
1099
  import { Nullable } from "@babylonjs/core/types";
1539
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
1100
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
1540
1101
  export class SerializationTools {
1541
1102
  static UpdateLocations(material: NodeMaterial, globalState: GlobalState, frame?: Nullable<GraphFrame>): void;
1542
1103
  static Serialize(material: NodeMaterial, globalState: GlobalState, frame?: Nullable<GraphFrame>): string;
@@ -1544,19 +1105,6 @@ export class SerializationTools {
1544
1105
  static AddFrameToMaterial(serializationObject: any, globalState: GlobalState, currentMaterial: NodeMaterial): void;
1545
1106
  }
1546
1107
 
1547
- }
1548
- declare module "@babylonjs/node-editor/sharedComponents/buttonLineComponent" {
1549
- import * as React from "react";
1550
- export interface IButtonLineComponentProps {
1551
- label: string;
1552
- onClick: () => void;
1553
- isDisabled?: boolean;
1554
- }
1555
- export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
1556
- constructor(props: IButtonLineComponentProps);
1557
- render(): JSX.Element;
1558
- }
1559
-
1560
1108
  }
1561
1109
  declare module "@babylonjs/node-editor/sharedComponents/checkBoxLineComponent" {
1562
1110
  import * as React from "react";
@@ -1589,1536 +1137,1954 @@ export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponen
1589
1137
  }
1590
1138
 
1591
1139
  }
1592
- declare module "@babylonjs/node-editor/sharedComponents/color3LineComponent" {
1140
+ declare module "@babylonjs/node-editor/sharedComponents/colorPickerComponent" {
1141
+ import * as React from "react";
1142
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
1143
+ import { GlobalState } from "@babylonjs/node-editor/globalState";
1144
+ export interface IColorPickerComponentProps {
1145
+ value: Color4 | Color3;
1146
+ onColorChanged: (newOne: string) => void;
1147
+ globalState: GlobalState;
1148
+ }
1149
+ interface IColorPickerComponentState {
1150
+ pickerEnabled: boolean;
1151
+ color: Color3 | Color4;
1152
+ hex: string;
1153
+ }
1154
+ export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
1155
+ private _floatRef;
1156
+ private _floatHostRef;
1157
+ constructor(props: IColorPickerComponentProps);
1158
+ syncPositions(): void;
1159
+ shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
1160
+ componentDidUpdate(): void;
1161
+ componentDidMount(): void;
1162
+ setPickerState(enabled: boolean): void;
1163
+ render(): JSX.Element;
1164
+ }
1165
+ export {};
1166
+
1167
+ }
1168
+ declare module "@babylonjs/node-editor/sharedComponents/draggableLineComponent" {
1169
+ import * as React from "react";
1170
+ export interface IButtonLineComponentProps {
1171
+ data: string;
1172
+ tooltip: string;
1173
+ }
1174
+ export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1175
+ constructor(props: IButtonLineComponentProps);
1176
+ render(): JSX.Element;
1177
+ }
1178
+
1179
+ }
1180
+ declare module "@babylonjs/node-editor/sharedComponents/draggableLineWithButtonComponent" {
1181
+ import * as React from "react";
1182
+ export interface IDraggableLineWithButtonComponent {
1183
+ data: string;
1184
+ tooltip: string;
1185
+ iconImage: any;
1186
+ onIconClick: (value: string) => void;
1187
+ iconTitle: string;
1188
+ lenSuffixToRemove?: number;
1189
+ }
1190
+ export class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> {
1191
+ constructor(props: IDraggableLineWithButtonComponent);
1192
+ render(): JSX.Element;
1193
+ }
1194
+
1195
+ }
1196
+ declare module "@babylonjs/node-editor/sharedComponents/fileButtonLineComponent" {
1197
+ import * as React from "react";
1198
+ interface IFileButtonLineComponentProps {
1199
+ label: string;
1200
+ onClick: (file: File) => void;
1201
+ accept: string;
1202
+ uploadName?: string;
1203
+ }
1204
+ export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
1205
+ private _uploadRef;
1206
+ constructor(props: IFileButtonLineComponentProps);
1207
+ onChange(evt: any): void;
1208
+ render(): JSX.Element;
1209
+ }
1210
+ export {};
1211
+
1212
+ }
1213
+ declare module "@babylonjs/node-editor/sharedComponents/floatLineComponent" {
1214
+ import * as React from "react";
1215
+ import { Observable } from "@babylonjs/core/Misc/observable";
1216
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1217
+ import { GlobalState } from "@babylonjs/node-editor/globalState";
1218
+ interface IFloatLineComponentProps {
1219
+ label: string;
1220
+ target: any;
1221
+ propertyName: string;
1222
+ onChange?: (newValue: number) => void;
1223
+ isInteger?: boolean;
1224
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1225
+ additionalClass?: string;
1226
+ step?: string;
1227
+ digits?: number;
1228
+ globalState: GlobalState;
1229
+ min?: number;
1230
+ max?: number;
1231
+ smallUI?: boolean;
1232
+ onEnter?: (newValue: number) => void;
1233
+ }
1234
+ export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1235
+ value: string;
1236
+ }> {
1237
+ private _localChange;
1238
+ private _store;
1239
+ private _regExp;
1240
+ private _onFocus;
1241
+ constructor(props: IFloatLineComponentProps);
1242
+ shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1243
+ value: string;
1244
+ }): boolean;
1245
+ componentWillUnmount(): void;
1246
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1247
+ updateValue(valueString: string): void;
1248
+ render(): JSX.Element;
1249
+ }
1250
+ export {};
1251
+
1252
+ }
1253
+ declare module "@babylonjs/node-editor/sharedComponents/lineContainerComponent" {
1254
+ import * as React from "react";
1255
+ interface ILineContainerComponentProps {
1256
+ title: string;
1257
+ children: any[] | any;
1258
+ closed?: boolean;
1259
+ }
1260
+ export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1261
+ isExpanded: boolean;
1262
+ }> {
1263
+ constructor(props: ILineContainerComponentProps);
1264
+ switchExpandedState(): void;
1265
+ renderHeader(): JSX.Element;
1266
+ render(): JSX.Element;
1267
+ }
1268
+ export {};
1269
+
1270
+ }
1271
+ declare module "@babylonjs/node-editor/sharedComponents/lineWithFileButtonComponent" {
1272
+ import * as React from "react";
1273
+ interface ILineWithFileButtonComponentProps {
1274
+ title: string;
1275
+ closed?: boolean;
1276
+ label: string;
1277
+ iconImage: any;
1278
+ onIconClick: (file: File) => void;
1279
+ accept: string;
1280
+ uploadName?: string;
1281
+ }
1282
+ export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
1283
+ isExpanded: boolean;
1284
+ }> {
1285
+ private _uploadRef;
1286
+ constructor(props: ILineWithFileButtonComponentProps);
1287
+ onChange(evt: any): void;
1288
+ switchExpandedState(): void;
1289
+ render(): JSX.Element;
1290
+ }
1291
+ export {};
1292
+
1293
+ }
1294
+ declare module "@babylonjs/node-editor/sharedComponents/messageDialog" {
1295
+ import * as React from "react";
1296
+ import { GlobalState } from "@babylonjs/node-editor/globalState";
1297
+ interface IMessageDialogComponentProps {
1298
+ globalState: GlobalState;
1299
+ }
1300
+ export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
1301
+ message: string;
1302
+ isError: boolean;
1303
+ }> {
1304
+ constructor(props: IMessageDialogComponentProps);
1305
+ render(): JSX.Element | null;
1306
+ }
1307
+ export {};
1308
+
1309
+ }
1310
+ declare module "@babylonjs/node-editor/sharedComponents/numericInputComponent" {
1311
+ import * as React from "react";
1312
+ import { GlobalState } from "@babylonjs/node-editor/globalState";
1313
+ interface INumericInputComponentProps {
1314
+ label: string;
1315
+ value: number;
1316
+ step?: number;
1317
+ onChange: (value: number) => void;
1318
+ globalState: GlobalState;
1319
+ }
1320
+ export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1321
+ value: string;
1322
+ }> {
1323
+ static defaultProps: {
1324
+ step: number;
1325
+ };
1326
+ private _localChange;
1327
+ constructor(props: INumericInputComponentProps);
1328
+ shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
1329
+ value: string;
1330
+ }): boolean;
1331
+ updateValue(evt: any): void;
1332
+ render(): JSX.Element;
1333
+ }
1334
+ export {};
1335
+
1336
+ }
1337
+ declare module "@babylonjs/node-editor/sharedComponents/popup" {
1338
+ export class Popup {
1339
+ static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
1340
+ static _CopyStyles(sourceDoc: HTMLDocument, targetDoc: HTMLDocument): void;
1341
+ }
1342
+
1343
+ }
1344
+ declare module "@babylonjs/node-editor/sharedComponents/propertyChangedEvent" {
1345
+ export class PropertyChangedEvent {
1346
+ object: any;
1347
+ property: string;
1348
+ value: any;
1349
+ initialValue: any;
1350
+ }
1351
+
1352
+ }
1353
+ declare module "@babylonjs/node-editor/sharedComponents/sliderLineComponent" {
1593
1354
  import * as React from "react";
1594
1355
  import { Observable } from "@babylonjs/core/Misc/observable";
1595
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
1596
1356
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1597
1357
  import { GlobalState } from "@babylonjs/node-editor/globalState";
1598
- export interface IColor3LineComponentProps {
1358
+ interface ISliderLineComponentProps {
1599
1359
  label: string;
1600
- target: any;
1601
- propertyName: string;
1360
+ target?: any;
1361
+ propertyName?: string;
1362
+ minimum: number;
1363
+ maximum: number;
1364
+ step: number;
1365
+ directValue?: number;
1366
+ useEuler?: boolean;
1367
+ onChange?: (value: number) => void;
1368
+ onInput?: (value: number) => void;
1602
1369
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1603
- onChange?: () => void;
1370
+ decimalCount?: number;
1604
1371
  globalState: GlobalState;
1605
1372
  }
1606
- interface IColor3LineComponentState {
1607
- isExpanded: boolean;
1608
- }
1609
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps, IColor3LineComponentState> {
1610
- constructor(props: IColor3LineComponentProps);
1611
- onChange(newValue: string): void;
1612
- switchExpandState(): void;
1613
- updateColor(newValue: Color3 | Color4): void;
1614
- modifyColor(modifier: (previous: Color3 | Color4) => void): void;
1615
- getCurrentColor(): Color3 | Color4;
1616
- copyToClipboard(): void;
1373
+ export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
1374
+ value: number;
1375
+ }> {
1376
+ private _localChange;
1377
+ constructor(props: ISliderLineComponentProps);
1378
+ shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
1379
+ value: number;
1380
+ }): boolean;
1381
+ onChange(newValueString: any): void;
1382
+ onInput(newValueString: any): void;
1383
+ prepareDataToRead(value: number): number;
1617
1384
  render(): JSX.Element;
1618
1385
  }
1619
1386
  export {};
1620
1387
 
1621
1388
  }
1622
- declare module "@babylonjs/node-editor/sharedComponents/color4LineComponent" {
1389
+ declare module "@babylonjs/node-editor/sharedComponents/textLineComponent" {
1623
1390
  import * as React from "react";
1624
- import { Observable } from "@babylonjs/core/Misc/observable";
1625
- import { Color4 } from "@babylonjs/core/Maths/math.color";
1626
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1627
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1628
- export interface IColor4LineComponentProps {
1391
+ interface ITextLineComponentProps {
1629
1392
  label: string;
1630
- target: any;
1631
- propertyName: string;
1632
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1633
- onChange?: () => void;
1634
- globalState: GlobalState;
1393
+ value: string;
1394
+ color?: string;
1395
+ underline?: boolean;
1396
+ onLink?: () => void;
1635
1397
  }
1636
- export class Color4LineComponent extends React.Component<IColor4LineComponentProps, {
1637
- isExpanded: boolean;
1638
- }> {
1639
- constructor(props: IColor4LineComponentProps);
1640
- onChange(newValue: string): void;
1641
- switchExpandState(): void;
1642
- updateColor(newValue: Color4): void;
1643
- modifyColor(modifier: (previous: Color4) => void): void;
1644
- getCurrentColor(): Color4;
1645
- copyToClipboard(): void;
1398
+ export class TextLineComponent extends React.Component<ITextLineComponentProps> {
1399
+ constructor(props: ITextLineComponentProps);
1400
+ onLink(): void;
1401
+ renderContent(): JSX.Element;
1646
1402
  render(): JSX.Element;
1647
1403
  }
1404
+ export {};
1648
1405
 
1649
1406
  }
1650
- declare module "@babylonjs/node-editor/sharedComponents/colorPickerComponent" {
1407
+ declare module "@babylonjs/node-editor/sharedComponents/textureLineComponent" {
1651
1408
  import * as React from "react";
1652
- import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
1653
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1654
- export interface IColorPickerComponentProps {
1655
- value: Color4 | Color3;
1656
- onColorChanged: (newOne: string) => void;
1657
- globalState: GlobalState;
1409
+ import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
1410
+ interface ITextureLineComponentProps {
1411
+ texture: BaseTexture;
1412
+ width: number;
1413
+ height: number;
1414
+ globalState?: any;
1415
+ hideChannelSelect?: boolean;
1658
1416
  }
1659
- interface IColorPickerComponentState {
1660
- pickerEnabled: boolean;
1661
- color: Color3 | Color4;
1662
- hex: string;
1417
+ export interface ITextureLineComponentState {
1418
+ displayRed: boolean;
1419
+ displayGreen: boolean;
1420
+ displayBlue: boolean;
1421
+ displayAlpha: boolean;
1422
+ face: number;
1663
1423
  }
1664
- export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
1665
- private _floatRef;
1666
- private _floatHostRef;
1667
- constructor(props: IColorPickerComponentProps);
1668
- syncPositions(): void;
1669
- shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
1670
- componentDidUpdate(): void;
1424
+ export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
1425
+ private _canvasRef;
1426
+ constructor(props: ITextureLineComponentProps);
1427
+ shouldComponentUpdate(): boolean;
1671
1428
  componentDidMount(): void;
1672
- setPickerState(enabled: boolean): void;
1429
+ componentDidUpdate(): void;
1430
+ updatePreview(): void;
1431
+ static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
1673
1432
  render(): JSX.Element;
1674
1433
  }
1675
1434
  export {};
1676
1435
 
1677
1436
  }
1678
- declare module "@babylonjs/node-editor/sharedComponents/draggableLineComponent" {
1437
+ declare module "@babylonjs/node-editor/colorPicker/colorComponentEntry" {
1679
1438
  import * as React from "react";
1680
- export interface IButtonLineComponentProps {
1681
- data: string;
1682
- tooltip: string;
1439
+ export interface IColorComponentEntryProps {
1440
+ value: number;
1441
+ label: string;
1442
+ max?: number;
1443
+ min?: number;
1444
+ onChange: (value: number) => void;
1445
+ disabled?: boolean;
1683
1446
  }
1684
- export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1685
- constructor(props: IButtonLineComponentProps);
1447
+ export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
1448
+ constructor(props: IColorComponentEntryProps);
1449
+ updateValue(valueString: string): void;
1686
1450
  render(): JSX.Element;
1687
1451
  }
1688
1452
 
1689
1453
  }
1690
- declare module "@babylonjs/node-editor/sharedComponents/draggableLineWithButtonComponent" {
1454
+ declare module "@babylonjs/node-editor/colorPicker/colorPicker" {
1691
1455
  import * as React from "react";
1692
- export interface IDraggableLineWithButtonComponent {
1693
- data: string;
1694
- tooltip: string;
1695
- iconImage: any;
1696
- onIconClick: (value: string) => void;
1697
- iconTitle: string;
1698
- lenSuffixToRemove?: number;
1456
+ import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
1457
+ import "@babylonjs/node-editor/colorPicker/colorPicker.scss";
1458
+ /**
1459
+ * Interface used to specify creation options for color picker
1460
+ */
1461
+ export interface IColorPickerProps {
1462
+ color: Color3 | Color4;
1463
+ linearhint?: boolean;
1464
+ debugMode?: boolean;
1465
+ onColorChanged?: (color: Color3 | Color4) => void;
1699
1466
  }
1700
- export class DraggableLineWithButtonComponent extends React.Component<IDraggableLineWithButtonComponent> {
1701
- constructor(props: IDraggableLineWithButtonComponent);
1467
+ /**
1468
+ * Interface used to specify creation options for color picker
1469
+ */
1470
+ export interface IColorPickerState {
1471
+ color: Color3;
1472
+ alpha: number;
1473
+ }
1474
+ /**
1475
+ * Class used to create a color picker
1476
+ */
1477
+ export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
1478
+ private _saturationRef;
1479
+ private _hueRef;
1480
+ private _isSaturationPointerDown;
1481
+ private _isHuePointerDown;
1482
+ constructor(props: IColorPickerProps);
1483
+ shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
1484
+ onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1485
+ onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1486
+ onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
1487
+ onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
1488
+ onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
1489
+ onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
1490
+ private _evaluateSaturation;
1491
+ private _evaluateHue;
1492
+ componentDidUpdate(): void;
1493
+ raiseOnColorChanged(): void;
1702
1494
  render(): JSX.Element;
1703
1495
  }
1704
1496
 
1705
1497
  }
1706
- declare module "@babylonjs/node-editor/sharedComponents/fileButtonLineComponent" {
1498
+ declare module "@babylonjs/node-editor/colorPicker/hexColor" {
1707
1499
  import * as React from "react";
1708
- interface IFileButtonLineComponentProps {
1709
- label: string;
1710
- onClick: (file: File) => void;
1711
- accept: string;
1712
- uploadName?: string;
1500
+ export interface IHexColorProps {
1501
+ value: string;
1502
+ expectedLength: number;
1503
+ onChange: (value: string) => void;
1713
1504
  }
1714
- export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
1715
- private _uploadRef;
1716
- constructor(props: IFileButtonLineComponentProps);
1717
- onChange(evt: any): void;
1505
+ export class HexColor extends React.Component<IHexColorProps, {
1506
+ hex: string;
1507
+ }> {
1508
+ constructor(props: IHexColorProps);
1509
+ shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
1510
+ hex: string;
1511
+ }): boolean;
1512
+ updateHexValue(valueString: string): void;
1718
1513
  render(): JSX.Element;
1719
1514
  }
1720
- export {};
1721
1515
 
1722
1516
  }
1723
- declare module "@babylonjs/node-editor/sharedComponents/floatLineComponent" {
1724
- import * as React from "react";
1725
- import { Observable } from "@babylonjs/core/Misc/observable";
1726
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1727
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1728
- interface IFloatLineComponentProps {
1729
- label: string;
1730
- target: any;
1731
- propertyName: string;
1732
- onChange?: (newValue: number) => void;
1733
- isInteger?: boolean;
1734
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1735
- additionalClass?: string;
1736
- step?: string;
1737
- digits?: number;
1738
- globalState: GlobalState;
1739
- min?: number;
1740
- max?: number;
1741
- smallUI?: boolean;
1742
- onEnter?: (newValue: number) => void;
1517
+ declare module "@babylonjs/node-editor/components/Button" {
1518
+ /// <reference types="react" />
1519
+ export type ButtonProps = {
1520
+ disabled?: boolean;
1521
+ active?: boolean;
1522
+ onClick?: () => void;
1523
+ color: "light" | "dark";
1524
+ size: "default" | "small" | "wide";
1525
+ title?: string;
1526
+ };
1527
+ export const Button: React.FC<ButtonProps>;
1528
+
1743
1529
  }
1744
- export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1745
- value: string;
1746
- }> {
1747
- private _localChange;
1748
- private _store;
1749
- private _regExp;
1750
- private _onFocus;
1751
- constructor(props: IFloatLineComponentProps);
1752
- shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1753
- value: string;
1754
- }): boolean;
1755
- componentWillUnmount(): void;
1756
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1757
- updateValue(valueString: string): void;
1758
- render(): JSX.Element;
1530
+ declare module "@babylonjs/node-editor/components/classNames" {
1531
+ export function ClassNames(names: any, styleObject: any): string;
1532
+
1533
+ }
1534
+ declare module "@babylonjs/node-editor/components/Icon" {
1535
+ /// <reference types="react" />
1536
+ export type IconProps = {
1537
+ color?: "dark" | "light";
1538
+ icon: string;
1539
+ };
1540
+ export const Icon: React.FC<IconProps>;
1541
+
1542
+ }
1543
+ declare module "@babylonjs/node-editor/components/Label" {
1544
+ import { ReactChild } from "react";
1545
+ export type LabelProps = {
1546
+ text: string;
1547
+ children?: ReactChild;
1548
+ color?: "dark" | "light";
1549
+ };
1550
+ export const Label: React.FC<LabelProps>;
1551
+
1759
1552
  }
1760
- export {};
1553
+ declare module "@babylonjs/node-editor/components/Toggle" {
1554
+ /// <reference types="react" />
1555
+ export type ToggleProps = {
1556
+ toggled: "on" | "mixed" | "off";
1557
+ onToggle?: () => void;
1558
+ padded?: boolean;
1559
+ color?: "dark" | "light";
1560
+ };
1561
+ export const Toggle: React.FC<ToggleProps>;
1761
1562
 
1762
1563
  }
1763
- declare module "@babylonjs/node-editor/sharedComponents/lineContainerComponent" {
1564
+ declare module "@babylonjs/node-editor/lines/booleanLineComponent" {
1764
1565
  import * as React from "react";
1765
- interface ILineContainerComponentProps {
1766
- title: string;
1767
- children: any[] | any;
1768
- closed?: boolean;
1566
+ export interface IBooleanLineComponentProps {
1567
+ label: string;
1568
+ value: boolean;
1569
+ icon?: string;
1570
+ iconLabel?: string;
1769
1571
  }
1770
- export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1771
- isExpanded: boolean;
1772
- }> {
1773
- constructor(props: ILineContainerComponentProps);
1774
- switchExpandedState(): void;
1775
- renderHeader(): JSX.Element;
1572
+ export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
1573
+ constructor(props: IBooleanLineComponentProps);
1776
1574
  render(): JSX.Element;
1777
1575
  }
1778
- export {};
1779
1576
 
1780
1577
  }
1781
- declare module "@babylonjs/node-editor/sharedComponents/lineWithFileButtonComponent" {
1578
+ declare module "@babylonjs/node-editor/lines/buttonLineComponent" {
1782
1579
  import * as React from "react";
1783
- interface ILineWithFileButtonComponentProps {
1784
- title: string;
1785
- closed?: boolean;
1580
+ export interface IButtonLineComponentProps {
1786
1581
  label: string;
1787
- iconImage: any;
1788
- onIconClick: (file: File) => void;
1789
- accept: string;
1790
- uploadName?: string;
1582
+ onClick: () => void;
1583
+ icon?: string;
1584
+ iconLabel?: string;
1585
+ isDisabled?: boolean;
1791
1586
  }
1792
- export class LineWithFileButtonComponent extends React.Component<ILineWithFileButtonComponentProps, {
1793
- isExpanded: boolean;
1794
- }> {
1795
- private _uploadRef;
1796
- constructor(props: ILineWithFileButtonComponentProps);
1797
- onChange(evt: any): void;
1798
- switchExpandedState(): void;
1587
+ export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
1588
+ constructor(props: IButtonLineComponentProps);
1799
1589
  render(): JSX.Element;
1800
1590
  }
1801
- export {};
1802
1591
 
1803
1592
  }
1804
- declare module "@babylonjs/node-editor/sharedComponents/matrixLineComponent" {
1593
+ declare module "@babylonjs/node-editor/lines/checkBoxLineComponent" {
1805
1594
  import * as React from "react";
1806
- import { Vector3, Vector4 } from "@babylonjs/core/Maths/math.vector";
1807
- import { Matrix } from "@babylonjs/core/Maths/math.vector";
1808
1595
  import { Observable } from "@babylonjs/core/Misc/observable";
1809
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1810
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1811
- interface IMatrixLineComponentProps {
1812
- label: string;
1813
- target: any;
1814
- propertyName: string;
1815
- step?: number;
1816
- onChange?: (newValue: Matrix) => void;
1817
- onModeChange?: (mode: number) => void;
1596
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
1597
+
1598
+ export interface ICheckBoxLineComponentProps {
1599
+ label?: string;
1600
+ target?: any;
1601
+ propertyName?: string;
1602
+ isSelected?: () => boolean;
1603
+ onSelect?: (value: boolean) => void;
1604
+ onValueChanged?: () => void;
1818
1605
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1819
- mode?: number;
1820
- globalState: GlobalState;
1606
+ disabled?: boolean;
1607
+ icon?: string;
1608
+ iconLabel?: string;
1609
+ faIcons?: {
1610
+ enabled: any;
1611
+ disabled: any;
1612
+ };
1613
+ large?: boolean;
1821
1614
  }
1822
- export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
1823
- value: Matrix;
1824
- mode: number;
1825
- angle: number;
1615
+ export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
1616
+ isSelected: boolean;
1617
+ isDisabled?: boolean;
1618
+ isConflict: boolean;
1826
1619
  }> {
1827
1620
  private _localChange;
1828
- constructor(props: IMatrixLineComponentProps);
1829
- shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: {
1830
- value: Matrix;
1831
- mode: number;
1832
- angle: number;
1621
+ constructor(props: ICheckBoxLineComponentProps);
1622
+ shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
1623
+ isSelected: boolean;
1624
+ isDisabled: boolean;
1625
+ isConflict: boolean;
1833
1626
  }): boolean;
1834
- raiseOnPropertyChanged(previousValue: Vector3): void;
1835
- updateMatrix(): void;
1836
- updateRow(value: Vector4, row: number): void;
1837
- updateBasedOnMode(value: number): void;
1627
+ onChange(): void;
1838
1628
  render(): JSX.Element;
1839
1629
  }
1840
- export {};
1841
-
1842
- }
1843
- declare module "@babylonjs/node-editor/sharedComponents/messageDialog" {
1844
- import * as React from "react";
1845
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1846
- interface IMessageDialogComponentProps {
1847
- globalState: GlobalState;
1848
- }
1849
- export class MessageDialogComponent extends React.Component<IMessageDialogComponentProps, {
1850
- message: string;
1851
- isError: boolean;
1852
- }> {
1853
- constructor(props: IMessageDialogComponentProps);
1854
- render(): JSX.Element | null;
1855
- }
1856
- export {};
1857
1630
 
1858
1631
  }
1859
- declare module "@babylonjs/node-editor/sharedComponents/numericInputComponent" {
1632
+ declare module "@babylonjs/node-editor/lines/color3LineComponent" {
1860
1633
  import * as React from "react";
1861
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1862
- interface INumericInputComponentProps {
1634
+ import { Observable } from "@babylonjs/core/Misc/observable";
1635
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
1636
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
1637
+ export interface IColor3LineComponentProps {
1863
1638
  label: string;
1864
- value: number;
1865
- step?: number;
1866
- onChange: (value: number) => void;
1867
- globalState: GlobalState;
1639
+ target: any;
1640
+ propertyName: string;
1641
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1642
+ isLinear?: boolean;
1643
+ icon?: string;
1644
+ lockObject?: LockObject;
1645
+ iconLabel?: string;
1646
+ onChange?: () => void;
1868
1647
  }
1869
- export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1870
- value: string;
1871
- }> {
1872
- static defaultProps: {
1873
- step: number;
1874
- };
1875
- private _localChange;
1876
- constructor(props: INumericInputComponentProps);
1877
- shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
1878
- value: string;
1879
- }): boolean;
1880
- updateValue(evt: any): void;
1648
+ export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
1881
1649
  render(): JSX.Element;
1882
1650
  }
1883
- export {};
1884
1651
 
1885
1652
  }
1886
- declare module "@babylonjs/node-editor/sharedComponents/optionsLineComponent" {
1653
+ declare module "@babylonjs/node-editor/lines/color4LineComponent" {
1887
1654
  import * as React from "react";
1888
1655
  import { Observable } from "@babylonjs/core/Misc/observable";
1889
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1890
- import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
1891
- interface IOptionsLineComponentProps {
1656
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
1657
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
1658
+ export interface IColor4LineComponentProps {
1892
1659
  label: string;
1893
- target: any;
1894
- className?: string;
1895
- propertyName?: string;
1896
- options: IInspectableOptions[];
1897
- noDirectUpdate?: boolean;
1898
- onSelect?: (value: number | string) => void;
1660
+ target?: any;
1661
+ propertyName: string;
1899
1662
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1900
- valuesAreStrings?: boolean;
1901
- defaultIfNull?: number;
1902
- getSelection?: (target: any) => number;
1663
+ onChange?: () => void;
1664
+ isLinear?: boolean;
1665
+ icon?: string;
1666
+ iconLabel?: string;
1667
+ lockObject?: LockObject;
1903
1668
  }
1904
- export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
1905
- value: number | string;
1906
- }> {
1907
- private _localChange;
1908
- private _getValue;
1909
- constructor(props: IOptionsLineComponentProps);
1910
- setValue(value: string | number): void;
1911
- shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
1912
- value: number;
1913
- }): boolean;
1914
- raiseOnPropertyChanged(newValue: number | string, previousValue: number | string): void;
1915
- updateValue(valueString: string): void;
1669
+ export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
1916
1670
  render(): JSX.Element;
1917
1671
  }
1918
- export {};
1919
-
1920
- }
1921
- declare module "@babylonjs/node-editor/sharedComponents/popup" {
1922
- export class Popup {
1923
- static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
1924
- static _CopyStyles(sourceDoc: HTMLDocument, targetDoc: HTMLDocument): void;
1925
- }
1926
-
1927
- }
1928
- declare module "@babylonjs/node-editor/sharedComponents/propertyChangedEvent" {
1929
- export class PropertyChangedEvent {
1930
- object: any;
1931
- property: string;
1932
- value: any;
1933
- initialValue: any;
1934
- }
1935
1672
 
1936
1673
  }
1937
- declare module "@babylonjs/node-editor/sharedComponents/sliderLineComponent" {
1674
+ declare module "@babylonjs/node-editor/lines/colorLineComponent" {
1938
1675
  import * as React from "react";
1939
1676
  import { Observable } from "@babylonjs/core/Misc/observable";
1940
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1941
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1942
- interface ISliderLineComponentProps {
1677
+ import { Color4 } from "@babylonjs/core/Maths/math.color";
1678
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
1679
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
1680
+ export interface IColorLineComponentProps {
1943
1681
  label: string;
1944
1682
  target?: any;
1945
- propertyName?: string;
1946
- minimum: number;
1947
- maximum: number;
1948
- step: number;
1949
- directValue?: number;
1950
- useEuler?: boolean;
1951
- onChange?: (value: number) => void;
1952
- onInput?: (value: number) => void;
1683
+ propertyName: string;
1953
1684
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1954
- decimalCount?: number;
1955
- globalState: GlobalState;
1685
+ onChange?: () => void;
1686
+ isLinear?: boolean;
1687
+ icon?: string;
1688
+ iconLabel?: string;
1689
+ lockObject?: LockObject;
1690
+ disableAlpha?: boolean;
1956
1691
  }
1957
- export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
1958
- value: number;
1959
- }> {
1960
- private _localChange;
1961
- constructor(props: ISliderLineComponentProps);
1962
- shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
1963
- value: number;
1964
- }): boolean;
1965
- onChange(newValueString: any): void;
1966
- onInput(newValueString: any): void;
1967
- prepareDataToRead(value: number): number;
1692
+ interface IColorLineComponentState {
1693
+ isExpanded: boolean;
1694
+ color: Color4;
1695
+ }
1696
+ export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
1697
+ constructor(props: IColorLineComponentProps);
1698
+ shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
1699
+ getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
1700
+ children?: React.ReactNode;
1701
+ }>): Color4;
1702
+ setColorFromString(colorString: string): void;
1703
+ setColor(newColor: Color4): void;
1704
+ switchExpandState(): void;
1705
+ updateStateR(value: number): void;
1706
+ updateStateG(value: number): void;
1707
+ updateStateB(value: number): void;
1708
+ updateStateA(value: number): void;
1709
+ copyToClipboard(): void;
1710
+ private _convertToColor;
1711
+ private _toColor3;
1968
1712
  render(): JSX.Element;
1969
1713
  }
1970
1714
  export {};
1971
1715
 
1972
1716
  }
1973
- declare module "@babylonjs/node-editor/sharedComponents/textInputLineComponent" {
1717
+ declare module "@babylonjs/node-editor/lines/colorPickerComponent" {
1974
1718
  import * as React from "react";
1975
- import { Observable } from "@babylonjs/core/Misc/observable";
1976
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
1977
- import { GlobalState } from "@babylonjs/node-editor/globalState";
1978
- interface ITextInputLineComponentProps {
1979
- label: string;
1980
- globalState: GlobalState;
1981
- target?: any;
1982
- propertyName?: string;
1983
- value?: string;
1984
- multilines?: boolean;
1985
- onChange?: (value: string) => void;
1986
- validator?: (value: string) => boolean;
1987
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1719
+ import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
1720
+ export interface IColorPickerComponentProps {
1721
+ value: Color4 | Color3;
1722
+ linearHint?: boolean;
1723
+ onColorChanged: (newOne: string) => void;
1724
+ icon?: string;
1725
+ iconLabel?: string;
1726
+ shouldPopRight?: boolean;
1988
1727
  }
1989
- export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
1990
- value: string;
1991
- }> {
1992
- private _localChange;
1993
- private _onFocus;
1994
- constructor(props: ITextInputLineComponentProps);
1995
- shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
1996
- value: string;
1997
- }): boolean;
1998
- componentWillUnmount(): void;
1999
- raiseOnPropertyChanged(newValue: string, previousValue: string): void;
2000
- updateValue(value: string, raisePropertyChanged: boolean): void;
1728
+ interface IColorPickerComponentState {
1729
+ pickerEnabled: boolean;
1730
+ color: Color3 | Color4;
1731
+ hex: string;
1732
+ }
1733
+ export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
1734
+ private _floatRef;
1735
+ private _floatHostRef;
1736
+ constructor(props: IColorPickerComponentProps);
1737
+ syncPositions(): void;
1738
+ shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
1739
+ getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
1740
+ children?: React.ReactNode;
1741
+ }>): string;
1742
+ componentDidUpdate(): void;
1743
+ componentDidMount(): void;
2001
1744
  render(): JSX.Element;
2002
1745
  }
2003
1746
  export {};
2004
1747
 
2005
1748
  }
2006
- declare module "@babylonjs/node-editor/sharedComponents/textLineComponent" {
1749
+ declare module "@babylonjs/node-editor/lines/draggableLineComponent" {
2007
1750
  import * as React from "react";
2008
- interface ITextLineComponentProps {
2009
- label: string;
2010
- value: string;
2011
- color?: string;
2012
- underline?: boolean;
2013
- onLink?: () => void;
1751
+ export interface IButtonLineComponentProps {
1752
+ data: string;
1753
+ tooltip: string;
2014
1754
  }
2015
- export class TextLineComponent extends React.Component<ITextLineComponentProps> {
2016
- constructor(props: ITextLineComponentProps);
2017
- onLink(): void;
2018
- renderContent(): JSX.Element;
1755
+ export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
1756
+ constructor(props: IButtonLineComponentProps);
2019
1757
  render(): JSX.Element;
2020
1758
  }
2021
- export {};
2022
1759
 
2023
1760
  }
2024
- declare module "@babylonjs/node-editor/sharedComponents/textureLineComponent" {
1761
+ declare module "@babylonjs/node-editor/lines/fileButtonLineComponent" {
2025
1762
  import * as React from "react";
2026
- import { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture";
2027
- interface ITextureLineComponentProps {
2028
- texture: BaseTexture;
2029
- width: number;
2030
- height: number;
2031
- globalState?: any;
2032
- hideChannelSelect?: boolean;
2033
- }
2034
- export interface ITextureLineComponentState {
2035
- displayRed: boolean;
2036
- displayGreen: boolean;
2037
- displayBlue: boolean;
2038
- displayAlpha: boolean;
2039
- face: number;
1763
+ interface IFileButtonLineComponentProps {
1764
+ label: string;
1765
+ onClick: (file: File) => void;
1766
+ accept: string;
1767
+ icon?: string;
1768
+ iconLabel?: string;
2040
1769
  }
2041
- export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
2042
- private _canvasRef;
2043
- constructor(props: ITextureLineComponentProps);
2044
- shouldComponentUpdate(): boolean;
2045
- componentDidMount(): void;
2046
- componentDidUpdate(): void;
2047
- updatePreview(): void;
2048
- static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
1770
+ export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
1771
+ private static _IDGenerator;
1772
+ private _id;
1773
+ private _uploadInputRef;
1774
+ constructor(props: IFileButtonLineComponentProps);
1775
+ onChange(evt: any): void;
2049
1776
  render(): JSX.Element;
2050
1777
  }
2051
1778
  export {};
2052
1779
 
2053
1780
  }
2054
- declare module "@babylonjs/node-editor/sharedComponents/vector2LineComponent" {
1781
+ declare module "@babylonjs/node-editor/lines/fileMultipleButtonLineComponent" {
2055
1782
  import * as React from "react";
2056
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
2057
- import { Observable } from "@babylonjs/core/Misc/observable";
2058
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
2059
- import { GlobalState } from "@babylonjs/node-editor/globalState";
2060
- interface IVector2LineComponentProps {
1783
+ interface IFileMultipleButtonLineComponentProps {
2061
1784
  label: string;
2062
- target: any;
2063
- propertyName: string;
2064
- step?: number;
2065
- onChange?: (newvalue: Vector2) => void;
2066
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2067
- globalState: GlobalState;
1785
+ onClick: (event: any) => void;
1786
+ accept: string;
1787
+ icon?: string;
1788
+ iconLabel?: string;
2068
1789
  }
2069
- export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
2070
- isExpanded: boolean;
2071
- value: Vector2;
2072
- }> {
2073
- static defaultProps: {
2074
- step: number;
2075
- };
2076
- private _localChange;
2077
- constructor(props: IVector2LineComponentProps);
2078
- shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
2079
- isExpanded: boolean;
2080
- value: Vector2;
2081
- }): boolean;
2082
- switchExpandState(): void;
2083
- raiseOnPropertyChanged(previousValue: Vector2): void;
2084
- updateStateX(value: number): void;
2085
- updateStateY(value: number): void;
1790
+ export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
1791
+ private static _IDGenerator;
1792
+ private _id;
1793
+ private _uploadInputRef;
1794
+ constructor(props: IFileMultipleButtonLineComponentProps);
1795
+ onChange(evt: any): void;
2086
1796
  render(): JSX.Element;
2087
1797
  }
2088
1798
  export {};
2089
1799
 
2090
1800
  }
2091
- declare module "@babylonjs/node-editor/sharedComponents/vector3LineComponent" {
1801
+ declare module "@babylonjs/node-editor/lines/floatLineComponent" {
2092
1802
  import * as React from "react";
2093
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2094
1803
  import { Observable } from "@babylonjs/core/Misc/observable";
2095
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
2096
- import { GlobalState } from "@babylonjs/node-editor/globalState";
2097
- interface IVector3LineComponentProps {
1804
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
1805
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
1806
+ interface IFloatLineComponentProps {
2098
1807
  label: string;
2099
1808
  target: any;
2100
1809
  propertyName: string;
2101
- step?: number;
2102
- onChange?: (newvalue: Vector3) => void;
1810
+ lockObject?: LockObject;
1811
+ onChange?: (newValue: number) => void;
1812
+ isInteger?: boolean;
2103
1813
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2104
- globalState: GlobalState;
1814
+ additionalClass?: string;
1815
+ step?: string;
1816
+ digits?: number;
1817
+ useEuler?: boolean;
1818
+ min?: number;
1819
+ max?: number;
1820
+ smallUI?: boolean;
1821
+ onEnter?: (newValue: number) => void;
1822
+ icon?: string;
1823
+ iconLabel?: string;
1824
+ defaultValue?: number;
1825
+ arrows?: boolean;
1826
+ unit?: React.ReactNode;
1827
+ onDragStart?: (newValue: number) => void;
1828
+ onDragStop?: (newValue: number) => void;
2105
1829
  }
2106
- export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
2107
- isExpanded: boolean;
2108
- value: Vector3;
1830
+ export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
1831
+ value: string;
1832
+ dragging: boolean;
2109
1833
  }> {
2110
- static defaultProps: {
2111
- step: number;
2112
- };
2113
1834
  private _localChange;
2114
- constructor(props: IVector3LineComponentProps);
2115
- shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
2116
- isExpanded: boolean;
2117
- value: Vector3;
1835
+ private _store;
1836
+ constructor(props: IFloatLineComponentProps);
1837
+ componentWillUnmount(): void;
1838
+ getValueString(value: any): string;
1839
+ shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
1840
+ value: string;
1841
+ dragging: boolean;
2118
1842
  }): boolean;
2119
- switchExpandState(): void;
2120
- raiseOnPropertyChanged(previousValue: Vector3): void;
2121
- updateVector3(): void;
2122
- updateStateX(value: number): void;
2123
- updateStateY(value: number): void;
2124
- updateStateZ(value: number): void;
1843
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1844
+ updateValue(valueString: string): void;
1845
+ lock(): void;
1846
+ unlock(): void;
1847
+ incrementValue(amount: number): void;
1848
+ onKeyDown(event: React.KeyboardEvent): void;
2125
1849
  render(): JSX.Element;
2126
1850
  }
2127
1851
  export {};
2128
1852
 
2129
1853
  }
2130
- declare module "@babylonjs/node-editor/sharedComponents/vector4LineComponent" {
1854
+ declare module "@babylonjs/node-editor/lines/hexLineComponent" {
2131
1855
  import * as React from "react";
2132
- import { Vector4 } from "@babylonjs/core/Maths/math.vector";
2133
1856
  import { Observable } from "@babylonjs/core/Misc/observable";
2134
- import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedComponents/propertyChangedEvent";
2135
- import { GlobalState } from "@babylonjs/node-editor/globalState";
2136
- interface IVector4LineComponentProps {
1857
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
1858
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
1859
+ interface IHexLineComponentProps {
2137
1860
  label: string;
2138
- target?: any;
2139
- propertyName?: string;
2140
- value?: Vector4;
2141
- step?: number;
2142
- onChange?: (newvalue: Vector4) => void;
1861
+ target: any;
1862
+ propertyName: string;
1863
+ lockObject?: LockObject;
1864
+ onChange?: (newValue: number) => void;
1865
+ isInteger?: boolean;
1866
+ replaySourceReplacement?: string;
2143
1867
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2144
- globalState: GlobalState;
1868
+ additionalClass?: string;
1869
+ step?: string;
1870
+ digits?: number;
1871
+ useEuler?: boolean;
1872
+ min?: number;
1873
+ icon?: string;
1874
+ iconLabel?: string;
2145
1875
  }
2146
- export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
2147
- isExpanded: boolean;
2148
- value: Vector4;
1876
+ export class HexLineComponent extends React.Component<IHexLineComponentProps, {
1877
+ value: string;
2149
1878
  }> {
2150
- static defaultProps: {
2151
- step: number;
2152
- };
2153
1879
  private _localChange;
2154
- constructor(props: IVector4LineComponentProps);
2155
- shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
2156
- isExpanded: boolean;
2157
- value: Vector4;
1880
+ private _store;
1881
+ private _propertyChange;
1882
+ constructor(props: IHexLineComponentProps);
1883
+ componentWillUnmount(): void;
1884
+ shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
1885
+ value: string;
2158
1886
  }): boolean;
2159
- switchExpandState(): void;
2160
- raiseOnPropertyChanged(previousValue: Vector4): void;
2161
- updateVector4(): void;
2162
- updateStateX(value: number): void;
2163
- updateStateY(value: number): void;
2164
- updateStateZ(value: number): void;
2165
- updateStateW(value: number): void;
1887
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
1888
+ convertToHexString(valueString: string): string;
1889
+ updateValue(valueString: string, raisePropertyChanged: boolean): void;
1890
+ lock(): void;
1891
+ unlock(): void;
2166
1892
  render(): JSX.Element;
2167
1893
  }
2168
1894
  export {};
2169
1895
 
2170
1896
  }
2171
- declare module "@babylonjs/node-editor/colorPicker/colorComponentEntry" {
1897
+ declare module "@babylonjs/node-editor/lines/iconButtonLineComponent" {
2172
1898
  import * as React from "react";
2173
- export interface IColorComponentEntryProps {
2174
- value: number;
2175
- label: string;
2176
- max?: number;
2177
- min?: number;
2178
- onChange: (value: number) => void;
2179
- disabled?: boolean;
1899
+ export interface IIconButtonLineComponentProps {
1900
+ icon: string;
1901
+ onClick: () => void;
1902
+ tooltip: string;
1903
+ active?: boolean;
2180
1904
  }
2181
- export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
2182
- constructor(props: IColorComponentEntryProps);
2183
- updateValue(valueString: string): void;
1905
+ export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
1906
+ constructor(props: IIconButtonLineComponentProps);
2184
1907
  render(): JSX.Element;
2185
1908
  }
2186
1909
 
2187
1910
  }
2188
- declare module "@babylonjs/node-editor/colorPicker/colorPicker" {
1911
+ declare module "@babylonjs/node-editor/lines/iconComponent" {
2189
1912
  import * as React from "react";
2190
- import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
2191
- import "@babylonjs/node-editor/colorPicker/colorPicker.scss";
2192
- /**
2193
- * Interface used to specify creation options for color picker
2194
- */
2195
- export interface IColorPickerProps {
2196
- color: Color3 | Color4;
2197
- linearhint?: boolean;
2198
- debugMode?: boolean;
2199
- onColorChanged?: (color: Color3 | Color4) => void;
2200
- }
2201
- /**
2202
- * Interface used to specify creation options for color picker
2203
- */
2204
- export interface IColorPickerState {
2205
- color: Color3;
2206
- alpha: number;
1913
+ interface IIconComponentProps {
1914
+ icon: string;
1915
+ label?: string;
2207
1916
  }
2208
- /**
2209
- * Class used to create a color picker
2210
- */
2211
- export class ColorPicker extends React.Component<IColorPickerProps, IColorPickerState> {
2212
- private _saturationRef;
2213
- private _hueRef;
2214
- private _isSaturationPointerDown;
2215
- private _isHuePointerDown;
2216
- constructor(props: IColorPickerProps);
2217
- shouldComponentUpdate(nextProps: IColorPickerProps, nextState: IColorPickerState): boolean;
2218
- onSaturationPointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
2219
- onSaturationPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
2220
- onSaturationPointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
2221
- onHuePointerDown(evt: React.PointerEvent<HTMLDivElement>): void;
2222
- onHuePointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
2223
- onHuePointerMove(evt: React.PointerEvent<HTMLDivElement>): void;
2224
- private _evaluateSaturation;
2225
- private _evaluateHue;
2226
- componentDidUpdate(): void;
2227
- raiseOnColorChanged(): void;
1917
+ export class IconComponent extends React.Component<IIconComponentProps> {
2228
1918
  render(): JSX.Element;
2229
1919
  }
1920
+ export {};
2230
1921
 
2231
1922
  }
2232
- declare module "@babylonjs/node-editor/colorPicker/hexColor" {
1923
+ declare module "@babylonjs/node-editor/lines/indentedTextLineComponent" {
2233
1924
  import * as React from "react";
2234
- export interface IHexColorProps {
2235
- value: string;
2236
- expectedLength: number;
2237
- onChange: (value: string) => void;
1925
+ interface IIndentedTextLineComponentProps {
1926
+ value?: string;
1927
+ color?: string;
1928
+ underline?: boolean;
1929
+ onLink?: () => void;
1930
+ url?: string;
1931
+ additionalClass?: string;
2238
1932
  }
2239
- export class HexColor extends React.Component<IHexColorProps, {
2240
- hex: string;
2241
- }> {
2242
- constructor(props: IHexColorProps);
2243
- shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
2244
- hex: string;
2245
- }): boolean;
2246
- updateHexValue(valueString: string): void;
1933
+ export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
1934
+ constructor(props: IIndentedTextLineComponentProps);
1935
+ onLink(): void;
1936
+ renderContent(): JSX.Element;
2247
1937
  render(): JSX.Element;
2248
1938
  }
1939
+ export {};
2249
1940
 
2250
1941
  }
2251
- declare module "@babylonjs/node-editor/components/Button" {
2252
- /// <reference types="react" />
2253
- export type ButtonProps = {
2254
- disabled?: boolean;
2255
- active?: boolean;
2256
- onClick?: () => void;
2257
- color: "light" | "dark";
2258
- size: "default" | "small" | "wide";
2259
- title?: string;
2260
- };
2261
- export const Button: React.FC<ButtonProps>;
2262
-
1942
+ declare module "@babylonjs/node-editor/lines/inputArrowsComponent" {
1943
+ import * as React from "react";
1944
+ interface IInputArrowsComponentProps {
1945
+ incrementValue: (amount: number) => void;
1946
+ setDragging: (dragging: boolean) => void;
2263
1947
  }
2264
- declare module "@babylonjs/node-editor/components/classNames" {
2265
- export function ClassNames(names: any, styleObject: any): string;
2266
-
1948
+ export class InputArrowsComponent extends React.Component<IInputArrowsComponentProps> {
1949
+ private _arrowsRef;
1950
+ private _drag;
1951
+ private _releaseListener;
1952
+ private _lockChangeListener;
1953
+ render(): JSX.Element;
2267
1954
  }
2268
- declare module "@babylonjs/node-editor/components/Icon" {
2269
- /// <reference types="react" />
2270
- export type IconProps = {
2271
- color?: "dark" | "light";
2272
- icon: string;
2273
- };
2274
- export const Icon: React.FC<IconProps>;
1955
+ export {};
2275
1956
 
2276
1957
  }
2277
- declare module "@babylonjs/node-editor/components/Label" {
2278
- import { ReactChild } from "react";
2279
- export type LabelProps = {
2280
- text: string;
2281
- children?: ReactChild;
2282
- color?: "dark" | "light";
2283
- };
2284
- export const Label: React.FC<LabelProps>;
2285
-
1958
+ declare module "@babylonjs/node-editor/lines/iSelectedLineContainer" {
1959
+ export interface ISelectedLineContainer {
1960
+ selectedLineContainerTitles: Array<string>;
1961
+ selectedLineContainerTitlesNoFocus: Array<string>;
2286
1962
  }
2287
- declare module "@babylonjs/node-editor/components/Toggle" {
2288
- /// <reference types="react" />
2289
- export type ToggleProps = {
2290
- toggled: "on" | "mixed" | "off";
2291
- onToggle?: () => void;
2292
- padded?: boolean;
2293
- color?: "dark" | "light";
2294
- };
2295
- export const Toggle: React.FC<ToggleProps>;
2296
1963
 
2297
1964
  }
2298
- declare module "@babylonjs/node-editor/lines/booleanLineComponent" {
1965
+ declare module "@babylonjs/node-editor/lines/lineContainerComponent" {
2299
1966
  import * as React from "react";
2300
- export interface IBooleanLineComponentProps {
2301
- label: string;
2302
- value: boolean;
2303
- icon?: string;
2304
- iconLabel?: string;
1967
+ import { ISelectedLineContainer } from "@babylonjs/node-editor/lines/iSelectedLineContainer";
1968
+ interface ILineContainerComponentProps {
1969
+ selection?: ISelectedLineContainer;
1970
+ title: string;
1971
+ children: any[] | any;
1972
+ closed?: boolean;
2305
1973
  }
2306
- export class BooleanLineComponent extends React.Component<IBooleanLineComponentProps> {
2307
- constructor(props: IBooleanLineComponentProps);
1974
+ export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
1975
+ isExpanded: boolean;
1976
+ isHighlighted: boolean;
1977
+ }> {
1978
+ constructor(props: ILineContainerComponentProps);
1979
+ switchExpandedState(): void;
1980
+ renderHeader(): JSX.Element;
1981
+ componentDidMount(): void;
2308
1982
  render(): JSX.Element;
2309
1983
  }
1984
+ export {};
2310
1985
 
2311
1986
  }
2312
- declare module "@babylonjs/node-editor/lines/buttonLineComponent" {
1987
+ declare module "@babylonjs/node-editor/lines/linkButtonComponent" {
2313
1988
  import * as React from "react";
2314
- export interface IButtonLineComponentProps {
1989
+
1990
+ interface ILinkButtonComponentProps {
2315
1991
  label: string;
1992
+ buttonLabel: string;
1993
+ url?: string;
2316
1994
  onClick: () => void;
2317
- icon?: string;
2318
- iconLabel?: string;
1995
+ icon?: any;
1996
+ onIconClick?: () => void;
2319
1997
  }
2320
- export class ButtonLineComponent extends React.Component<IButtonLineComponentProps> {
2321
- constructor(props: IButtonLineComponentProps);
1998
+ export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
1999
+ constructor(props: ILinkButtonComponentProps);
2000
+ onLink(): void;
2322
2001
  render(): JSX.Element;
2323
2002
  }
2003
+ export {};
2324
2004
 
2325
2005
  }
2326
- declare module "@babylonjs/node-editor/lines/checkBoxLineComponent" {
2006
+ declare module "@babylonjs/node-editor/lines/matrixLineComponent" {
2327
2007
  import * as React from "react";
2008
+ import { Vector3, Vector4 } from "@babylonjs/core/Maths/math.vector";
2009
+ import { Matrix } from "@babylonjs/core/Maths/math.vector";
2328
2010
  import { Observable } from "@babylonjs/core/Misc/observable";
2329
2011
  import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2330
-
2331
- export interface ICheckBoxLineComponentProps {
2332
- label?: string;
2333
- target?: any;
2334
- propertyName?: string;
2335
- isSelected?: () => boolean;
2336
- onSelect?: (value: boolean) => void;
2337
- onValueChanged?: () => void;
2012
+ interface IMatrixLineComponentProps {
2013
+ label: string;
2014
+ target: any;
2015
+ propertyName: string;
2016
+ step?: number;
2017
+ onChange?: (newValue: Matrix) => void;
2018
+ onModeChange?: (mode: number) => void;
2338
2019
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2339
- disabled?: boolean;
2020
+ mode?: number;
2021
+ }
2022
+ export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
2023
+ value: Matrix;
2024
+ mode: number;
2025
+ angle: number;
2026
+ }> {
2027
+ private _localChange;
2028
+ constructor(props: IMatrixLineComponentProps);
2029
+ shouldComponentUpdate(nextProps: IMatrixLineComponentProps, nextState: {
2030
+ value: Matrix;
2031
+ mode: number;
2032
+ angle: number;
2033
+ }): boolean;
2034
+ raiseOnPropertyChanged(previousValue: Vector3): void;
2035
+ updateMatrix(): void;
2036
+ updateRow(value: Vector4, row: number): void;
2037
+ updateBasedOnMode(value: number): void;
2038
+ render(): JSX.Element;
2039
+ }
2040
+ export {};
2041
+
2042
+ }
2043
+ declare module "@babylonjs/node-editor/lines/messageLineComponent" {
2044
+ import * as React from "react";
2045
+
2046
+ interface IMessageLineComponentProps {
2047
+ text: string;
2048
+ color?: string;
2049
+ icon?: any;
2050
+ }
2051
+ export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
2052
+ constructor(props: IMessageLineComponentProps);
2053
+ render(): JSX.Element;
2054
+ }
2055
+ export {};
2056
+
2057
+ }
2058
+ declare module "@babylonjs/node-editor/lines/numericInputComponent" {
2059
+ import * as React from "react";
2060
+ interface INumericInputComponentProps {
2061
+ label: string;
2062
+ value: number;
2063
+ step?: number;
2064
+ onChange: (value: number) => void;
2065
+ precision?: number;
2340
2066
  icon?: string;
2341
2067
  iconLabel?: string;
2342
- faIcons?: {
2343
- enabled: any;
2344
- disabled: any;
2345
- };
2346
- large?: boolean;
2347
2068
  }
2348
- export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
2349
- isSelected: boolean;
2350
- isDisabled?: boolean;
2351
- isConflict: boolean;
2069
+ export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
2070
+ value: string;
2352
2071
  }> {
2072
+ static defaultProps: {
2073
+ step: number;
2074
+ };
2353
2075
  private _localChange;
2354
- constructor(props: ICheckBoxLineComponentProps);
2355
- shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
2356
- isSelected: boolean;
2357
- isDisabled: boolean;
2358
- isConflict: boolean;
2076
+ constructor(props: INumericInputComponentProps);
2077
+ shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
2078
+ value: string;
2359
2079
  }): boolean;
2360
- onChange(): void;
2080
+ updateValue(evt: any): void;
2081
+ onBlur(): void;
2361
2082
  render(): JSX.Element;
2362
2083
  }
2084
+ export {};
2363
2085
 
2364
2086
  }
2365
- declare module "@babylonjs/node-editor/lines/color3LineComponent" {
2087
+ declare module "@babylonjs/node-editor/lines/optionsLineComponent" {
2366
2088
  import * as React from "react";
2367
2089
  import { Observable } from "@babylonjs/core/Misc/observable";
2368
2090
  import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2369
- import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2370
- export interface IColor3LineComponentProps {
2091
+ import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
2092
+ export const Null_Value: number;
2093
+ export interface IOptionsLineComponentProps {
2371
2094
  label: string;
2372
2095
  target: any;
2373
2096
  propertyName: string;
2097
+ options: IInspectableOptions[];
2098
+ noDirectUpdate?: boolean;
2099
+ onSelect?: (value: number | string) => void;
2100
+ extractValue?: (target: any) => number | string;
2374
2101
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2375
- isLinear?: boolean;
2102
+ allowNullValue?: boolean;
2376
2103
  icon?: string;
2377
- lockObject?: LockObject;
2378
2104
  iconLabel?: string;
2379
- onValueChange?: (value: string) => void;
2105
+ className?: string;
2106
+ valuesAreStrings?: boolean;
2107
+ defaultIfNull?: number;
2380
2108
  }
2381
- export class Color3LineComponent extends React.Component<IColor3LineComponentProps> {
2109
+ export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
2110
+ value: number | string;
2111
+ }> {
2112
+ private _localChange;
2113
+ private _remapValueIn;
2114
+ private _remapValueOut;
2115
+ private _getValue;
2116
+ constructor(props: IOptionsLineComponentProps);
2117
+ shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
2118
+ value: number;
2119
+ }): boolean;
2120
+ raiseOnPropertyChanged(newValue: number, previousValue: number): void;
2121
+ setValue(value: string | number): void;
2122
+ updateValue(valueString: string): void;
2382
2123
  render(): JSX.Element;
2383
2124
  }
2384
2125
 
2385
2126
  }
2386
- declare module "@babylonjs/node-editor/lines/color4LineComponent" {
2127
+ declare module "@babylonjs/node-editor/lines/popup" {
2128
+ export class Popup {
2129
+ static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
2130
+ private static _CopyStyles;
2131
+ }
2132
+
2133
+ }
2134
+ declare module "@babylonjs/node-editor/lines/radioLineComponent" {
2387
2135
  import * as React from "react";
2388
2136
  import { Observable } from "@babylonjs/core/Misc/observable";
2389
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2390
- import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2391
- export interface IColor4LineComponentProps {
2137
+ interface IRadioButtonLineComponentProps {
2138
+ onSelectionChangedObservable: Observable<RadioButtonLineComponent>;
2392
2139
  label: string;
2393
- target?: any;
2394
- propertyName: string;
2395
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2396
- onChange?: () => void;
2397
- isLinear?: boolean;
2140
+ isSelected: () => boolean;
2141
+ onSelect: () => void;
2398
2142
  icon?: string;
2399
2143
  iconLabel?: string;
2400
- lockObject?: LockObject;
2401
2144
  }
2402
- export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
2145
+ export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
2146
+ isSelected: boolean;
2147
+ }> {
2148
+ private _onSelectionChangedObserver;
2149
+ constructor(props: IRadioButtonLineComponentProps);
2150
+ componentDidMount(): void;
2151
+ componentWillUnmount(): void;
2152
+ onChange(): void;
2403
2153
  render(): JSX.Element;
2404
2154
  }
2155
+ export {};
2405
2156
 
2406
2157
  }
2407
- declare module "@babylonjs/node-editor/lines/colorLineComponent" {
2158
+ declare module "@babylonjs/node-editor/lines/sliderLineComponent" {
2408
2159
  import * as React from "react";
2409
2160
  import { Observable } from "@babylonjs/core/Misc/observable";
2410
- import { Color4 } from "@babylonjs/core/Maths/math.color";
2411
2161
  import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2412
2162
  import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2413
- export interface IColorLineComponentProps {
2163
+ interface ISliderLineComponentProps {
2414
2164
  label: string;
2415
2165
  target?: any;
2416
- propertyName: string;
2166
+ propertyName?: string;
2167
+ minimum: number;
2168
+ maximum: number;
2169
+ step: number;
2170
+ directValue?: number;
2171
+ useEuler?: boolean;
2172
+ onChange?: (value: number) => void;
2173
+ onInput?: (value: number) => void;
2417
2174
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2418
- onChange?: () => void;
2419
- isLinear?: boolean;
2175
+ decimalCount?: number;
2176
+ margin?: boolean;
2420
2177
  icon?: string;
2421
2178
  iconLabel?: string;
2422
2179
  lockObject?: LockObject;
2423
- disableAlpha?: boolean;
2424
- }
2425
- interface IColorLineComponentState {
2426
- isExpanded: boolean;
2427
- color: Color4;
2180
+ unit?: React.ReactNode;
2428
2181
  }
2429
- export class ColorLineComponent extends React.Component<IColorLineComponentProps, IColorLineComponentState> {
2430
- constructor(props: IColorLineComponentProps);
2431
- shouldComponentUpdate(nextProps: IColorLineComponentProps, nextState: IColorLineComponentState): boolean;
2432
- getValue(props?: Readonly<IColorLineComponentProps> & Readonly<{
2433
- children?: React.ReactNode;
2434
- }>): Color4;
2435
- setColorFromString(colorString: string): void;
2436
- setColor(newColor: Color4): void;
2437
- switchExpandState(): void;
2438
- updateStateR(value: number): void;
2439
- updateStateG(value: number): void;
2440
- updateStateB(value: number): void;
2441
- updateStateA(value: number): void;
2442
- copyToClipboard(): void;
2443
- private _convertToColor;
2444
- private _toColor3;
2182
+ export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
2183
+ value: number;
2184
+ }> {
2185
+ private _localChange;
2186
+ constructor(props: ISliderLineComponentProps);
2187
+ shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
2188
+ value: number;
2189
+ }): boolean;
2190
+ onChange(newValueString: any): void;
2191
+ onInput(newValueString: any): void;
2192
+ prepareDataToRead(value: number): number;
2445
2193
  render(): JSX.Element;
2446
2194
  }
2447
2195
  export {};
2448
2196
 
2449
2197
  }
2450
- declare module "@babylonjs/node-editor/lines/colorPickerComponent" {
2451
- import * as React from "react";
2452
- import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
2453
- export interface IColorPickerComponentProps {
2454
- value: Color4 | Color3;
2455
- linearHint?: boolean;
2456
- onColorChanged: (newOne: string) => void;
2457
- icon?: string;
2458
- iconLabel?: string;
2459
- shouldPopRight?: boolean;
2460
- }
2461
- interface IColorPickerComponentState {
2462
- pickerEnabled: boolean;
2463
- color: Color3 | Color4;
2464
- hex: string;
2465
- }
2466
- export class ColorPickerLineComponent extends React.Component<IColorPickerComponentProps, IColorPickerComponentState> {
2467
- private _floatRef;
2468
- private _floatHostRef;
2469
- constructor(props: IColorPickerComponentProps);
2470
- syncPositions(): void;
2471
- shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean;
2472
- getHexString(props?: Readonly<IColorPickerComponentProps> & Readonly<{
2473
- children?: React.ReactNode;
2474
- }>): string;
2475
- componentDidUpdate(): void;
2476
- componentDidMount(): void;
2477
- render(): JSX.Element;
2478
- }
2479
- export {};
2198
+ declare module "@babylonjs/node-editor/lines/targetsProxy" {
2199
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2200
+ import { Observable } from "@babylonjs/core/Misc/observable";
2201
+ export const conflictingValuesPlaceholder = "\u2014";
2202
+ /**
2203
+ *
2204
+ * @param targets a list of selected targets
2205
+ * @param onPropertyChangedObservable
2206
+ * @param getProperty
2207
+ * @returns a proxy object that can be passed as a target into the input
2208
+ */
2209
+ export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
2480
2210
 
2481
2211
  }
2482
- declare module "@babylonjs/node-editor/lines/draggableLineComponent" {
2212
+ declare module "@babylonjs/node-editor/lines/textInputLineComponent" {
2483
2213
  import * as React from "react";
2484
- export interface IButtonLineComponentProps {
2485
- data: string;
2486
- tooltip: string;
2214
+ import { Observable } from "@babylonjs/core/Misc/observable";
2215
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2216
+ import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2217
+ export interface ITextInputLineComponentProps {
2218
+ label?: string;
2219
+ lockObject?: LockObject;
2220
+ target?: any;
2221
+ propertyName?: string;
2222
+ value?: string;
2223
+ onChange?: (value: string) => void;
2224
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2225
+ icon?: string;
2226
+ iconLabel?: string;
2227
+ noUnderline?: boolean;
2228
+ numbersOnly?: boolean;
2229
+ delayInput?: boolean;
2230
+ arrows?: boolean;
2231
+ arrowsIncrement?: (amount: number) => void;
2232
+ step?: number;
2233
+ numeric?: boolean;
2234
+ roundValues?: boolean;
2235
+ min?: number;
2236
+ max?: number;
2237
+ placeholder?: string;
2238
+ unit?: React.ReactNode;
2239
+ validator?: (value: string) => boolean;
2240
+ multilines?: boolean;
2487
2241
  }
2488
- export class DraggableLineComponent extends React.Component<IButtonLineComponentProps> {
2489
- constructor(props: IButtonLineComponentProps);
2242
+ export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
2243
+ value: string;
2244
+ dragging: boolean;
2245
+ }> {
2246
+ private _localChange;
2247
+ constructor(props: ITextInputLineComponentProps);
2248
+ componentWillUnmount(): void;
2249
+ shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
2250
+ value: string;
2251
+ dragging: boolean;
2252
+ }): boolean;
2253
+ raiseOnPropertyChanged(newValue: string, previousValue: string): void;
2254
+ getCurrentNumericValue(value: string): number;
2255
+ updateValue(value: string): void;
2256
+ incrementValue(amount: number): void;
2257
+ onKeyDown(event: React.KeyboardEvent): void;
2490
2258
  render(): JSX.Element;
2491
2259
  }
2492
2260
 
2493
2261
  }
2494
- declare module "@babylonjs/node-editor/lines/fileButtonLineComponent" {
2262
+ declare module "@babylonjs/node-editor/lines/textLineComponent" {
2495
2263
  import * as React from "react";
2496
- interface IFileButtonLineComponentProps {
2497
- label: string;
2498
- onClick: (file: File) => void;
2499
- accept: string;
2264
+ interface ITextLineComponentProps {
2265
+ label?: string;
2266
+ value?: string;
2267
+ color?: string;
2268
+ underline?: boolean;
2269
+ onLink?: () => void;
2270
+ url?: string;
2271
+ ignoreValue?: boolean;
2272
+ additionalClass?: string;
2500
2273
  icon?: string;
2501
2274
  iconLabel?: string;
2275
+ tooltip?: string;
2502
2276
  }
2503
- export class FileButtonLineComponent extends React.Component<IFileButtonLineComponentProps> {
2504
- private static _IDGenerator;
2505
- private _id;
2506
- private _uploadInputRef;
2507
- constructor(props: IFileButtonLineComponentProps);
2508
- onChange(evt: any): void;
2277
+ export class TextLineComponent extends React.Component<ITextLineComponentProps> {
2278
+ constructor(props: ITextLineComponentProps);
2279
+ onLink(): void;
2280
+ renderContent(): JSX.Element | null;
2509
2281
  render(): JSX.Element;
2510
2282
  }
2511
2283
  export {};
2512
2284
 
2513
2285
  }
2514
- declare module "@babylonjs/node-editor/lines/fileMultipleButtonLineComponent" {
2286
+ declare module "@babylonjs/node-editor/lines/unitButton" {
2287
+ /// <reference types="react" />
2288
+ interface IUnitButtonProps {
2289
+ unit: string;
2290
+ locked?: boolean;
2291
+ onClick?: (unit: string) => void;
2292
+ }
2293
+ export function UnitButton(props: IUnitButtonProps): JSX.Element;
2294
+ export {};
2295
+
2296
+ }
2297
+ declare module "@babylonjs/node-editor/lines/valueLineComponent" {
2515
2298
  import * as React from "react";
2516
- interface IFileMultipleButtonLineComponentProps {
2299
+ interface IValueLineComponentProps {
2517
2300
  label: string;
2518
- onClick: (event: any) => void;
2519
- accept: string;
2301
+ value: number;
2302
+ color?: string;
2303
+ fractionDigits?: number;
2304
+ units?: string;
2520
2305
  icon?: string;
2521
2306
  iconLabel?: string;
2522
2307
  }
2523
- export class FileMultipleButtonLineComponent extends React.Component<IFileMultipleButtonLineComponentProps> {
2524
- private static _IDGenerator;
2525
- private _id;
2526
- private _uploadInputRef;
2527
- constructor(props: IFileMultipleButtonLineComponentProps);
2528
- onChange(evt: any): void;
2308
+ export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
2309
+ constructor(props: IValueLineComponentProps);
2529
2310
  render(): JSX.Element;
2530
2311
  }
2531
2312
  export {};
2532
2313
 
2533
2314
  }
2534
- declare module "@babylonjs/node-editor/lines/floatLineComponent" {
2315
+ declare module "@babylonjs/node-editor/lines/vector2LineComponent" {
2535
2316
  import * as React from "react";
2317
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
2536
2318
  import { Observable } from "@babylonjs/core/Misc/observable";
2537
2319
  import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2538
- import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2539
- interface IFloatLineComponentProps {
2320
+ interface IVector2LineComponentProps {
2540
2321
  label: string;
2541
2322
  target: any;
2542
2323
  propertyName: string;
2543
- lockObject?: LockObject;
2544
- onChange?: (newValue: number) => void;
2545
- isInteger?: boolean;
2324
+ step?: number;
2325
+ onChange?: (newvalue: Vector2) => void;
2546
2326
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2547
- additionalClass?: string;
2548
- step?: string;
2549
- digits?: number;
2550
- useEuler?: boolean;
2551
- min?: number;
2552
- max?: number;
2553
- smallUI?: boolean;
2554
- onEnter?: (newValue: number) => void;
2555
2327
  icon?: string;
2556
2328
  iconLabel?: string;
2557
- defaultValue?: number;
2558
- arrows?: boolean;
2559
- unit?: React.ReactNode;
2560
- onDragStart?: (newValue: number) => void;
2561
- onDragStop?: (newValue: number) => void;
2562
2329
  }
2563
- export class FloatLineComponent extends React.Component<IFloatLineComponentProps, {
2564
- value: string;
2565
- dragging: boolean;
2330
+ export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
2331
+ isExpanded: boolean;
2332
+ value: Vector2;
2566
2333
  }> {
2334
+ static defaultProps: {
2335
+ step: number;
2336
+ };
2567
2337
  private _localChange;
2568
- private _store;
2569
- constructor(props: IFloatLineComponentProps);
2570
- componentWillUnmount(): void;
2571
- getValueString(value: any): string;
2572
- shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: {
2573
- value: string;
2574
- dragging: boolean;
2338
+ constructor(props: IVector2LineComponentProps);
2339
+ shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
2340
+ isExpanded: boolean;
2341
+ value: Vector2;
2575
2342
  }): boolean;
2576
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
2577
- updateValue(valueString: string): void;
2578
- lock(): void;
2579
- unlock(): void;
2580
- incrementValue(amount: number): void;
2581
- onKeyDown(event: React.KeyboardEvent): void;
2343
+ switchExpandState(): void;
2344
+ raiseOnPropertyChanged(previousValue: Vector2): void;
2345
+ updateStateX(value: number): void;
2346
+ updateStateY(value: number): void;
2582
2347
  render(): JSX.Element;
2583
2348
  }
2584
2349
  export {};
2585
2350
 
2586
2351
  }
2587
- declare module "@babylonjs/node-editor/lines/hexLineComponent" {
2352
+ declare module "@babylonjs/node-editor/lines/vector3LineComponent" {
2588
2353
  import * as React from "react";
2354
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2589
2355
  import { Observable } from "@babylonjs/core/Misc/observable";
2590
2356
  import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2591
- import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2592
- interface IHexLineComponentProps {
2357
+ interface IVector3LineComponentProps {
2593
2358
  label: string;
2594
2359
  target: any;
2595
2360
  propertyName: string;
2596
- lockObject?: LockObject;
2597
- onChange?: (newValue: number) => void;
2598
- isInteger?: boolean;
2599
- replaySourceReplacement?: string;
2600
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2601
- additionalClass?: string;
2602
- step?: string;
2603
- digits?: number;
2361
+ step?: number;
2362
+ onChange?: (newvalue: Vector3) => void;
2604
2363
  useEuler?: boolean;
2605
- min?: number;
2364
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2365
+ noSlider?: boolean;
2606
2366
  icon?: string;
2607
2367
  iconLabel?: string;
2608
2368
  }
2609
- export class HexLineComponent extends React.Component<IHexLineComponentProps, {
2610
- value: string;
2369
+ export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
2370
+ isExpanded: boolean;
2371
+ value: Vector3;
2611
2372
  }> {
2373
+ static defaultProps: {
2374
+ step: number;
2375
+ };
2612
2376
  private _localChange;
2613
- private _store;
2614
- private _propertyChange;
2615
- constructor(props: IHexLineComponentProps);
2616
- componentWillUnmount(): void;
2617
- shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: {
2618
- value: string;
2377
+ constructor(props: IVector3LineComponentProps);
2378
+ getCurrentValue(): any;
2379
+ shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
2380
+ isExpanded: boolean;
2381
+ value: Vector3;
2619
2382
  }): boolean;
2620
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
2621
- convertToHexString(valueString: string): string;
2622
- updateValue(valueString: string, raisePropertyChanged: boolean): void;
2623
- lock(): void;
2624
- unlock(): void;
2625
- render(): JSX.Element;
2626
- }
2627
- export {};
2628
-
2629
- }
2630
- declare module "@babylonjs/node-editor/lines/iconButtonLineComponent" {
2631
- import * as React from "react";
2632
- export interface IIconButtonLineComponentProps {
2633
- icon: string;
2634
- onClick: () => void;
2635
- tooltip: string;
2636
- active?: boolean;
2637
- }
2638
- export class IconButtonLineComponent extends React.Component<IIconButtonLineComponentProps> {
2639
- constructor(props: IIconButtonLineComponentProps);
2640
- render(): JSX.Element;
2641
- }
2642
-
2643
- }
2644
- declare module "@babylonjs/node-editor/lines/iconComponent" {
2645
- import * as React from "react";
2646
- interface IIconComponentProps {
2647
- icon: string;
2648
- label?: string;
2649
- }
2650
- export class IconComponent extends React.Component<IIconComponentProps> {
2651
- render(): JSX.Element;
2652
- }
2653
- export {};
2654
-
2655
- }
2656
- declare module "@babylonjs/node-editor/lines/indentedTextLineComponent" {
2657
- import * as React from "react";
2658
- interface IIndentedTextLineComponentProps {
2659
- value?: string;
2660
- color?: string;
2661
- underline?: boolean;
2662
- onLink?: () => void;
2663
- url?: string;
2664
- additionalClass?: string;
2665
- }
2666
- export class IndentedTextLineComponent extends React.Component<IIndentedTextLineComponentProps> {
2667
- constructor(props: IIndentedTextLineComponentProps);
2668
- onLink(): void;
2669
- renderContent(): JSX.Element;
2670
- render(): JSX.Element;
2671
- }
2672
- export {};
2673
-
2674
- }
2675
- declare module "@babylonjs/node-editor/lines/inputArrowsComponent" {
2676
- import * as React from "react";
2677
- interface IInputArrowsComponentProps {
2678
- incrementValue: (amount: number) => void;
2679
- setDragging: (dragging: boolean) => void;
2680
- }
2681
- export class InputArrowsComponent extends React.Component<IInputArrowsComponentProps> {
2682
- private _arrowsRef;
2683
- private _drag;
2684
- private _releaseListener;
2685
- private _lockChangeListener;
2383
+ switchExpandState(): void;
2384
+ raiseOnPropertyChanged(previousValue: Vector3): void;
2385
+ updateVector3(): void;
2386
+ updateStateX(value: number): void;
2387
+ updateStateY(value: number): void;
2388
+ updateStateZ(value: number): void;
2686
2389
  render(): JSX.Element;
2687
2390
  }
2688
2391
  export {};
2689
2392
 
2690
2393
  }
2691
- declare module "@babylonjs/node-editor/lines/iSelectedLineContainer" {
2692
- export interface ISelectedLineContainer {
2693
- selectedLineContainerTitles: Array<string>;
2694
- selectedLineContainerTitlesNoFocus: Array<string>;
2695
- }
2696
-
2697
- }
2698
- declare module "@babylonjs/node-editor/lines/lineContainerComponent" {
2394
+ declare module "@babylonjs/node-editor/lines/vector4LineComponent" {
2699
2395
  import * as React from "react";
2700
- import { ISelectedLineContainer } from "@babylonjs/node-editor/lines/iSelectedLineContainer";
2701
- interface ILineContainerComponentProps {
2702
- selection?: ISelectedLineContainer;
2703
- title: string;
2704
- children: any[] | any;
2705
- closed?: boolean;
2396
+ import { Vector4 } from "@babylonjs/core/Maths/math.vector";
2397
+ import { Observable } from "@babylonjs/core/Misc/observable";
2398
+ import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2399
+ interface IVector4LineComponentProps {
2400
+ label: string;
2401
+ target?: any;
2402
+ propertyName?: string;
2403
+ step?: number;
2404
+ onChange?: (newvalue: Vector4) => void;
2405
+ useEuler?: boolean;
2406
+ onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2407
+ icon?: string;
2408
+ iconLabel?: string;
2409
+ value?: Vector4;
2706
2410
  }
2707
- export class LineContainerComponent extends React.Component<ILineContainerComponentProps, {
2411
+ export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
2708
2412
  isExpanded: boolean;
2709
- isHighlighted: boolean;
2413
+ value: Vector4;
2710
2414
  }> {
2711
- constructor(props: ILineContainerComponentProps);
2712
- switchExpandedState(): void;
2713
- renderHeader(): JSX.Element;
2714
- componentDidMount(): void;
2415
+ static defaultProps: {
2416
+ step: number;
2417
+ };
2418
+ private _localChange;
2419
+ constructor(props: IVector4LineComponentProps);
2420
+ getCurrentValue(): any;
2421
+ shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
2422
+ isExpanded: boolean;
2423
+ value: Vector4;
2424
+ }): boolean;
2425
+ switchExpandState(): void;
2426
+ raiseOnPropertyChanged(previousValue: Vector4): void;
2427
+ updateVector4(): void;
2428
+ updateStateX(value: number): void;
2429
+ updateStateY(value: number): void;
2430
+ updateStateZ(value: number): void;
2431
+ updateStateW(value: number): void;
2715
2432
  render(): JSX.Element;
2716
2433
  }
2717
2434
  export {};
2718
2435
 
2719
2436
  }
2720
- declare module "@babylonjs/node-editor/lines/linkButtonComponent" {
2721
- import * as React from "react";
2437
+ declare module "@babylonjs/node-editor/nodeGraphSystem/displayLedger" {
2438
+ export class DisplayLedger {
2439
+ static RegisteredControls: {
2440
+ [key: string]: any;
2441
+ };
2442
+ }
2722
2443
 
2723
- interface ILinkButtonComponentProps {
2724
- label: string;
2725
- buttonLabel: string;
2726
- url?: string;
2727
- onClick: () => void;
2728
- icon?: any;
2729
- onIconClick?: () => void;
2730
2444
  }
2731
- export class LinkButtonComponent extends React.Component<ILinkButtonComponentProps> {
2732
- constructor(props: ILinkButtonComponentProps);
2733
- onLink(): void;
2734
- render(): JSX.Element;
2445
+ declare module "@babylonjs/node-editor/nodeGraphSystem/frameNodePort" {
2446
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
2447
+ import { Observable } from "@babylonjs/core/Misc/observable";
2448
+ import { Nullable } from "@babylonjs/core/types";
2449
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
2450
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
2451
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2452
+ import { FramePortPosition } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
2453
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
2454
+ export class FrameNodePort extends NodePort {
2455
+ portData: IPortData;
2456
+ node: GraphNode;
2457
+ private _parentFrameId;
2458
+ private _isInput;
2459
+ private _framePortPosition;
2460
+ private _framePortId;
2461
+ private _onFramePortPositionChangedObservable;
2462
+ get parentFrameId(): number;
2463
+ get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
2464
+ get isInput(): boolean;
2465
+ get framePortId(): number;
2466
+ get framePortPosition(): FramePortPosition;
2467
+ set framePortPosition(position: FramePortPosition);
2468
+ constructor(portContainer: HTMLElement, portData: IPortData, node: GraphNode, stateManager: StateManager, isInput: boolean, framePortId: number, parentFrameId: number);
2469
+ static CreateFrameNodePortElement(portData: IPortData, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, stateManager: StateManager, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
2735
2470
  }
2736
- export {};
2737
2471
 
2738
2472
  }
2739
- declare module "@babylonjs/node-editor/lines/messageLineComponent" {
2473
+ declare module "@babylonjs/node-editor/nodeGraphSystem/graphCanvas" {
2740
2474
  import * as React from "react";
2741
-
2742
- interface IMessageLineComponentProps {
2743
- text: string;
2744
- color?: string;
2745
- icon?: any;
2475
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2476
+ import { Nullable } from "@babylonjs/core/types";
2477
+ import { NodeLink } from "@babylonjs/node-editor/nodeGraphSystem/nodeLink";
2478
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
2479
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
2480
+ import { IEditorData, IFrameData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
2481
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
2482
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
2483
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
2484
+ import { INodeContainer } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeContainer";
2485
+ import "@babylonjs/node-editor/nodeGraphSystem/scss/graphCanvas.scss";
2486
+ export interface IGraphCanvasComponentProps {
2487
+ stateManager: StateManager;
2488
+ onEmitNewNode: (nodeData: INodeData) => GraphNode;
2746
2489
  }
2747
- export class MessageLineComponent extends React.Component<IMessageLineComponentProps> {
2748
- constructor(props: IMessageLineComponentProps);
2490
+ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> implements INodeContainer {
2491
+ private readonly _minZoom;
2492
+ private readonly _maxZoom;
2493
+ private _hostCanvas;
2494
+ private _graphCanvas;
2495
+ private _selectionContainer;
2496
+ private _frameContainer;
2497
+ private _svgCanvas;
2498
+ private _rootContainer;
2499
+ private _nodes;
2500
+ private _links;
2501
+ private _mouseStartPointX;
2502
+ private _mouseStartPointY;
2503
+ private _dropPointX;
2504
+ private _dropPointY;
2505
+ private _selectionStartX;
2506
+ private _selectionStartY;
2507
+ private _candidateLinkedHasMoved;
2508
+ private _x;
2509
+ private _y;
2510
+ private _zoom;
2511
+ private _selectedNodes;
2512
+ private _selectedLink;
2513
+ private _selectedPort;
2514
+ private _candidateLink;
2515
+ private _candidatePort;
2516
+ private _gridSize;
2517
+ private _selectionBox;
2518
+ private _selectedFrames;
2519
+ private _frameCandidate;
2520
+ private _frames;
2521
+ private _nodeDataContentList;
2522
+ private _altKeyIsPressed;
2523
+ private _multiKeyIsPressed;
2524
+ private _oldY;
2525
+ _frameIsMoving: boolean;
2526
+ _isLoading: boolean;
2527
+ get gridSize(): number;
2528
+ set gridSize(value: number);
2529
+ get stateManager(): StateManager;
2530
+ get nodes(): GraphNode[];
2531
+ get links(): NodeLink[];
2532
+ get frames(): GraphFrame[];
2533
+ get zoom(): number;
2534
+ set zoom(value: number);
2535
+ get x(): number;
2536
+ set x(value: number);
2537
+ get y(): number;
2538
+ set y(value: number);
2539
+ get selectedNodes(): GraphNode[];
2540
+ get selectedLink(): Nullable<NodeLink>;
2541
+ get selectedFrames(): GraphFrame[];
2542
+ get selectedPort(): Nullable<NodePort>;
2543
+ get canvasContainer(): HTMLDivElement;
2544
+ get hostCanvas(): HTMLDivElement;
2545
+ get svgCanvas(): HTMLElement;
2546
+ get selectionContainer(): HTMLDivElement;
2547
+ get frameContainer(): HTMLDivElement;
2548
+ private _selectedFrameAndNodesConflict;
2549
+ constructor(props: IGraphCanvasComponentProps);
2550
+ getCachedData(): any[];
2551
+ removeDataFromCache(data: any): void;
2552
+ createNodeFromObject(nodeData: INodeData, onNodeCreated: (data: any) => void, recursion?: boolean): GraphNode;
2553
+ getGridPosition(position: number, useCeil?: boolean): number;
2554
+ getGridPositionCeil(position: number): number;
2555
+ updateTransform(): void;
2556
+ onKeyUp(): void;
2557
+ findNodeFromData(data: any): GraphNode;
2558
+ reset(): void;
2559
+ connectPorts(pointA: IPortData, pointB: IPortData): void;
2560
+ removeLink(link: NodeLink): void;
2561
+ appendNode(nodeData: INodeData): GraphNode;
2562
+ distributeGraph(): void;
2563
+ componentDidMount(): void;
2564
+ onMove(evt: React.PointerEvent): void;
2565
+ onDown(evt: React.PointerEvent<HTMLElement>): void;
2566
+ onUp(evt: React.PointerEvent): void;
2567
+ onWheel(evt: React.WheelEvent): void;
2568
+ zoomToFit(): void;
2569
+ processCandidatePort(): void;
2570
+ connectNodes(nodeA: GraphNode, pointA: IPortData, nodeB: GraphNode, pointB: IPortData): void;
2571
+ processEditorData(editorData: IEditorData): void;
2572
+ reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
2573
+ addFrame(frameData: IFrameData): void;
2749
2574
  render(): JSX.Element;
2750
2575
  }
2751
- export {};
2752
2576
 
2753
2577
  }
2754
- declare module "@babylonjs/node-editor/lines/numericInputComponent" {
2755
- import * as React from "react";
2756
- interface INumericInputComponentProps {
2757
- label: string;
2758
- value: number;
2759
- step?: number;
2760
- onChange: (value: number) => void;
2761
- precision?: number;
2762
- icon?: string;
2763
- iconLabel?: string;
2578
+ declare module "@babylonjs/node-editor/nodeGraphSystem/graphFrame" {
2579
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2580
+ import { GraphCanvasComponent } from "@babylonjs/node-editor/nodeGraphSystem/graphCanvas";
2581
+ import { Nullable } from "@babylonjs/core/types";
2582
+ import { Observable } from "@babylonjs/core/Misc/observable";
2583
+ import { Color3 } from "@babylonjs/core/Maths/math.color";
2584
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
2585
+ import { IFrameData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeLocationInfo";
2586
+ export enum FramePortPosition {
2587
+ Top = 0,
2588
+ Middle = 1,
2589
+ Bottom = 2
2764
2590
  }
2765
- export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
2766
- value: string;
2767
- }> {
2768
- static defaultProps: {
2769
- step: number;
2770
- };
2771
- private _localChange;
2772
- constructor(props: INumericInputComponentProps);
2773
- shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
2774
- value: string;
2775
- }): boolean;
2776
- updateValue(evt: any): void;
2777
- onBlur(): void;
2778
- render(): JSX.Element;
2591
+ export class GraphFrame {
2592
+ private readonly _collapsedWidth;
2593
+ private static _FrameCounter;
2594
+ private static _FramePortCounter;
2595
+ private _name;
2596
+ private _color;
2597
+ private _x;
2598
+ private _y;
2599
+ private _gridAlignedX;
2600
+ private _gridAlignedY;
2601
+ private _width;
2602
+ private _height;
2603
+ element: HTMLDivElement;
2604
+ private _borderElement;
2605
+ private _headerElement;
2606
+ private _headerTextElement;
2607
+ private _headerCollapseElement;
2608
+ private _headerCloseElement;
2609
+ private _commentsElement;
2610
+ private _portContainer;
2611
+ private _outputPortContainer;
2612
+ private _inputPortContainer;
2613
+ private _nodes;
2614
+ private _ownerCanvas;
2615
+ private _mouseStartPointX;
2616
+ private _mouseStartPointY;
2617
+ private _onSelectionChangedObserver;
2618
+ private _onGraphNodeRemovalObserver;
2619
+ private _onExposePortOnFrameObserver;
2620
+ private _onNodeLinkDisposedObservers;
2621
+ private _isCollapsed;
2622
+ private _frameInPorts;
2623
+ private _frameOutPorts;
2624
+ private _controlledPorts;
2625
+ private _exposedInPorts;
2626
+ private _exposedOutPorts;
2627
+ private _id;
2628
+ private _comments;
2629
+ private _frameIsResizing;
2630
+ private _resizingDirection;
2631
+ private _minFrameHeight;
2632
+ private _minFrameWidth;
2633
+ private _mouseXLimit;
2634
+ onExpandStateChanged: Observable<GraphFrame>;
2635
+ private readonly _closeSVG;
2636
+ private readonly _expandSVG;
2637
+ private readonly _collapseSVG;
2638
+ get id(): number;
2639
+ get isCollapsed(): boolean;
2640
+ private _createInputPort;
2641
+ private _markFramePortPositions;
2642
+ private _createFramePorts;
2643
+ private _removePortFromExposedWithNode;
2644
+ private _removePortFromExposedWithLink;
2645
+ private _createInputPorts;
2646
+ private _createOutputPorts;
2647
+ redrawFramePorts(): void;
2648
+ set isCollapsed(value: boolean);
2649
+ get nodes(): GraphNode[];
2650
+ get ports(): FrameNodePort[];
2651
+ get name(): string;
2652
+ set name(value: string);
2653
+ get color(): Color3;
2654
+ set color(value: Color3);
2655
+ get x(): number;
2656
+ set x(value: number);
2657
+ get y(): number;
2658
+ set y(value: number);
2659
+ get width(): number;
2660
+ set width(value: number);
2661
+ get height(): number;
2662
+ set height(value: number);
2663
+ get comments(): string;
2664
+ set comments(comments: string);
2665
+ constructor(candidate: Nullable<HTMLDivElement>, canvas: GraphCanvasComponent, doNotCaptureNodes?: boolean);
2666
+ refresh(): void;
2667
+ addNode(node: GraphNode): void;
2668
+ removeNode(node: GraphNode): void;
2669
+ syncNode(node: GraphNode): void;
2670
+ cleanAccumulation(): void;
2671
+ private _onDown;
2672
+ move(newX: number, newY: number, align?: boolean): void;
2673
+ private _onUp;
2674
+ _moveFrame(offsetX: number, offsetY: number): void;
2675
+ private _onMove;
2676
+ moveFramePortUp(nodePort: FrameNodePort): void;
2677
+ private _movePortUp;
2678
+ moveFramePortDown(nodePort: FrameNodePort): void;
2679
+ private _movePortDown;
2680
+ private _initResizing;
2681
+ private _cleanUpResizing;
2682
+ private _updateMinHeightWithComments;
2683
+ private _isResizingTop;
2684
+ private _isResizingRight;
2685
+ private _isResizingBottom;
2686
+ private _isResizingLeft;
2687
+ private _onRightHandlePointerDown;
2688
+ private _onRightHandlePointerMove;
2689
+ private _moveRightHandle;
2690
+ private _onRightHandlePointerUp;
2691
+ private _onBottomHandlePointerDown;
2692
+ private _onBottomHandlePointerMove;
2693
+ private _moveBottomHandle;
2694
+ private _onBottomHandlePointerUp;
2695
+ private _onLeftHandlePointerDown;
2696
+ private _onLeftHandlePointerMove;
2697
+ private _moveLeftHandle;
2698
+ private _onLeftHandlePointerUp;
2699
+ private _onTopHandlePointerDown;
2700
+ private _onTopHandlePointerMove;
2701
+ private _moveTopHandle;
2702
+ private _onTopHandlePointerUp;
2703
+ private _onTopRightHandlePointerDown;
2704
+ private _onTopRightHandlePointerMove;
2705
+ private _moveTopRightHandle;
2706
+ private _onTopRightHandlePointerUp;
2707
+ private _onBottomRightHandlePointerDown;
2708
+ private _onBottomRightHandlePointerMove;
2709
+ private _moveBottomRightHandle;
2710
+ private _onBottomRightHandlePointerUp;
2711
+ private _onBottomLeftHandlePointerDown;
2712
+ private _onBottomLeftHandlePointerMove;
2713
+ private _moveBottomLeftHandle;
2714
+ private _onBottomLeftHandlePointerUp;
2715
+ private _onTopLeftHandlePointerDown;
2716
+ private _onTopLeftHandlePointerMove;
2717
+ private _moveTopLeftHandle;
2718
+ private _onTopLeftHandlePointerUp;
2719
+ private _expandLeft;
2720
+ private _expandTop;
2721
+ private _expandRight;
2722
+ private _expandBottom;
2723
+ dispose(): void;
2724
+ private _serializePortData;
2725
+ serialize(saveCollapsedState: boolean): IFrameData;
2726
+ export(): void;
2727
+ adjustPorts(): void;
2728
+ static Parse(serializationData: IFrameData, canvas: GraphCanvasComponent, map?: {
2729
+ [key: number]: number;
2730
+ }): GraphFrame;
2779
2731
  }
2780
- export {};
2781
2732
 
2782
2733
  }
2783
- declare module "@babylonjs/node-editor/lines/optionsLineComponent" {
2784
- import * as React from "react";
2785
- import { Observable } from "@babylonjs/core/Misc/observable";
2786
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2787
- import { IInspectableOptions } from "@babylonjs/core/Misc/iInspectable";
2788
- export const Null_Value: number;
2789
- export interface IOptionsLineComponentProps {
2790
- label: string;
2791
- target: any;
2792
- propertyName: string;
2793
- options: IInspectableOptions[];
2794
- noDirectUpdate?: boolean;
2795
- onSelect?: (value: number) => void;
2796
- extractValue?: () => number;
2797
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2798
- allowNullValue?: boolean;
2799
- icon?: string;
2800
- iconLabel?: string;
2801
- }
2802
- export class OptionsLineComponent extends React.Component<IOptionsLineComponentProps, {
2803
- value: number;
2804
- }> {
2805
- private _localChange;
2806
- private _remapValueIn;
2807
- private _remapValueOut;
2808
- constructor(props: IOptionsLineComponentProps);
2809
- shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: {
2810
- value: number;
2811
- }): boolean;
2812
- raiseOnPropertyChanged(newValue: number, previousValue: number): void;
2813
- updateValue(valueString: string): void;
2814
- render(): JSX.Element;
2734
+ declare module "@babylonjs/node-editor/nodeGraphSystem/graphNode" {
2735
+ /// <reference types="react" />
2736
+ import { Nullable } from "@babylonjs/core/types";
2737
+ import { GraphCanvasComponent } from "@babylonjs/node-editor/nodeGraphSystem/graphCanvas";
2738
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
2739
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
2740
+ import { NodeLink } from "@babylonjs/node-editor/nodeGraphSystem/nodeLink";
2741
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
2742
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
2743
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
2744
+ export class GraphNode {
2745
+ content: INodeData;
2746
+ private _visual;
2747
+ private _headerContainer;
2748
+ private _warning;
2749
+ private _header;
2750
+ private _connections;
2751
+ private _inputsContainer;
2752
+ private _outputsContainer;
2753
+ private _content;
2754
+ private _comments;
2755
+ private _inputPorts;
2756
+ private _outputPorts;
2757
+ private _links;
2758
+ private _x;
2759
+ private _y;
2760
+ private _gridAlignedX;
2761
+ private _gridAlignedY;
2762
+ private _mouseStartPointX;
2763
+ private _mouseStartPointY;
2764
+ private _stateManager;
2765
+ private _onSelectionChangedObserver;
2766
+ private _onSelectionBoxMovedObserver;
2767
+ private _onFrameCreatedObserver;
2768
+ private _onUpdateRequiredObserver;
2769
+ private _ownerCanvas;
2770
+ private _isSelected;
2771
+ private _displayManager;
2772
+ private _isVisible;
2773
+ private _enclosingFrameId;
2774
+ get isVisible(): boolean;
2775
+ set isVisible(value: boolean);
2776
+ private _upateNodePortNames;
2777
+ get outputPorts(): NodePort[];
2778
+ get inputPorts(): NodePort[];
2779
+ get links(): NodeLink[];
2780
+ get gridAlignedX(): number;
2781
+ get gridAlignedY(): number;
2782
+ get x(): number;
2783
+ set x(value: number);
2784
+ get y(): number;
2785
+ set y(value: number);
2786
+ get width(): number;
2787
+ get height(): number;
2788
+ get id(): number;
2789
+ get name(): string;
2790
+ get isSelected(): boolean;
2791
+ get enclosingFrameId(): number;
2792
+ set enclosingFrameId(value: number);
2793
+ set isSelected(value: boolean);
2794
+ setIsSelected(value: boolean, marqueeSelection: boolean): void;
2795
+ constructor(content: INodeData, stateManager: StateManager);
2796
+ isOverlappingFrame(frame: GraphFrame): boolean;
2797
+ getPortForPortData(portData: IPortData): NodePort | null;
2798
+ getPortDataForPortDataContent(data: any): IPortData | null;
2799
+ getLinksForPortDataContent(data: any): NodeLink[];
2800
+ getLinksForPortData(portData: IPortData): NodeLink[];
2801
+ private _refreshFrames;
2802
+ _refreshLinks(): void;
2803
+ refresh(): void;
2804
+ private _onDown;
2805
+ cleanAccumulation(useCeil?: boolean): void;
2806
+ private _onUp;
2807
+ private _onMove;
2808
+ renderProperties(): Nullable<JSX.Element>;
2809
+ appendVisual(root: HTMLDivElement, owner: GraphCanvasComponent): void;
2810
+ dispose(): void;
2815
2811
  }
2816
2812
 
2817
2813
  }
2818
- declare module "@babylonjs/node-editor/lines/popup" {
2819
- export class Popup {
2820
- static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null;
2821
- private static _CopyStyles;
2814
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager" {
2815
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
2816
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
2817
+ export interface IDisplayManager {
2818
+ getHeaderClass(data: INodeData): string;
2819
+ shouldDisplayPortLabels(data: IPortData): boolean;
2820
+ updatePreviewContent(data: INodeData, contentArea: HTMLDivElement): void;
2821
+ getBackgroundColor(data: INodeData): string;
2822
+ getHeaderText(data: INodeData): string;
2822
2823
  }
2823
2824
 
2824
2825
  }
2825
- declare module "@babylonjs/node-editor/lines/radioLineComponent" {
2826
- import * as React from "react";
2827
- import { Observable } from "@babylonjs/core/Misc/observable";
2828
- interface IRadioButtonLineComponentProps {
2829
- onSelectionChangedObservable: Observable<RadioButtonLineComponent>;
2830
- label: string;
2831
- isSelected: () => boolean;
2832
- onSelect: () => void;
2833
- icon?: string;
2834
- iconLabel?: string;
2835
- }
2836
- export class RadioButtonLineComponent extends React.Component<IRadioButtonLineComponentProps, {
2837
- isSelected: boolean;
2838
- }> {
2839
- private _onSelectionChangedObserver;
2840
- constructor(props: IRadioButtonLineComponentProps);
2841
- componentDidMount(): void;
2842
- componentWillUnmount(): void;
2843
- onChange(): void;
2844
- render(): JSX.Element;
2826
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeContainer" {
2827
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2828
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
2829
+ export interface INodeContainer {
2830
+ nodes: GraphNode[];
2831
+ appendNode(data: INodeData): GraphNode;
2845
2832
  }
2846
- export {};
2847
2833
 
2848
2834
  }
2849
- declare module "@babylonjs/node-editor/lines/sliderLineComponent" {
2850
- import * as React from "react";
2851
- import { Observable } from "@babylonjs/core/Misc/observable";
2852
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2853
- import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2854
- interface ISliderLineComponentProps {
2855
- label: string;
2856
- target?: any;
2857
- propertyName?: string;
2858
- minimum: number;
2859
- maximum: number;
2860
- step: number;
2861
- directValue?: number;
2862
- useEuler?: boolean;
2863
- onChange?: (value: number) => void;
2864
- onInput?: (value: number) => void;
2865
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2866
- decimalCount?: number;
2867
- margin?: boolean;
2868
- icon?: string;
2869
- iconLabel?: string;
2870
- lockObject?: LockObject;
2871
- unit?: React.ReactNode;
2872
- }
2873
- export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
2874
- value: number;
2875
- }> {
2876
- private _localChange;
2877
- constructor(props: ISliderLineComponentProps);
2878
- shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: {
2879
- value: number;
2880
- }): boolean;
2881
- onChange(newValueString: any): void;
2882
- onInput(newValueString: any): void;
2883
- prepareDataToRead(value: number): number;
2884
- render(): JSX.Element;
2885
- }
2886
- export {};
2887
-
2835
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData" {
2836
+ import { Nullable } from "@babylonjs/core/types";
2837
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
2838
+ export interface INodeData {
2839
+ data: any;
2840
+ name: string;
2841
+ uniqueId: number;
2842
+ isInput: boolean;
2843
+ comments: string;
2844
+ getWarningMessage: () => string;
2845
+ getClassName: () => string;
2846
+ dispose: () => void;
2847
+ getPortByName: (name: string) => Nullable<IPortData>;
2848
+ inputs: IPortData[];
2849
+ outputs: IPortData[];
2888
2850
  }
2889
- declare module "@babylonjs/node-editor/lines/targetsProxy" {
2890
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2891
- import { Observable } from "@babylonjs/core/Misc/observable";
2892
- export const conflictingValuesPlaceholder = "\u2014";
2893
- /**
2894
- *
2895
- * @param targets a list of selected targets
2896
- * @param onPropertyChangedObservable
2897
- * @param getProperty
2898
- * @returns a proxy object that can be passed as a target into the input
2899
- */
2900
- export function makeTargetsProxy<Type>(targets: Type[], onPropertyChangedObservable?: Observable<PropertyChangedEvent>, getProperty?: (target: Type, property: keyof Type) => any): any;
2901
2851
 
2902
2852
  }
2903
- declare module "@babylonjs/node-editor/lines/textInputLineComponent" {
2904
- import * as React from "react";
2905
- import { Observable } from "@babylonjs/core/Misc/observable";
2906
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
2907
- import { LockObject } from "@babylonjs/node-editor/tabs/propertyGrids/lockObject";
2908
- export interface ITextInputLineComponentProps {
2909
- label?: string;
2910
- lockObject?: LockObject;
2911
- target?: any;
2912
- propertyName?: string;
2913
- value?: string;
2914
- onChange?: (value: string) => void;
2915
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2916
- icon?: string;
2917
- iconLabel?: string;
2918
- noUnderline?: boolean;
2919
- numbersOnly?: boolean;
2920
- delayInput?: boolean;
2921
- arrows?: boolean;
2922
- arrowsIncrement?: (amount: number) => void;
2923
- step?: number;
2924
- numeric?: boolean;
2925
- roundValues?: boolean;
2926
- min?: number;
2927
- max?: number;
2928
- placeholder?: string;
2929
- unit?: React.ReactNode;
2930
- }
2931
- export class TextInputLineComponent extends React.Component<ITextInputLineComponentProps, {
2932
- value: string;
2933
- dragging: boolean;
2934
- }> {
2935
- private _localChange;
2936
- constructor(props: ITextInputLineComponentProps);
2937
- componentWillUnmount(): void;
2938
- shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: {
2939
- value: string;
2940
- dragging: boolean;
2941
- }): boolean;
2942
- raiseOnPropertyChanged(newValue: string, previousValue: string): void;
2943
- getCurrentNumericValue(value: string): number;
2944
- updateValue(value: string): void;
2945
- incrementValue(amount: number): void;
2946
- onKeyDown(event: React.KeyboardEvent): void;
2947
- render(): JSX.Element;
2948
- }
2949
-
2853
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeLocationInfo" {
2854
+ export interface INodeLocationInfo {
2855
+ blockId: number;
2856
+ x: number;
2857
+ y: number;
2950
2858
  }
2951
- declare module "@babylonjs/node-editor/lines/textLineComponent" {
2952
- import * as React from "react";
2953
- interface ITextLineComponentProps {
2954
- label?: string;
2955
- value?: string;
2956
- color?: string;
2957
- underline?: boolean;
2958
- onLink?: () => void;
2959
- url?: string;
2960
- ignoreValue?: boolean;
2961
- additionalClass?: string;
2962
- icon?: string;
2963
- iconLabel?: string;
2964
- tooltip?: string;
2859
+ export interface IFrameData {
2860
+ x: number;
2861
+ y: number;
2862
+ width: number;
2863
+ height: number;
2864
+ color: number[];
2865
+ name: string;
2866
+ isCollapsed: boolean;
2867
+ blocks: number[];
2868
+ comments: string;
2965
2869
  }
2966
- export class TextLineComponent extends React.Component<ITextLineComponentProps> {
2967
- constructor(props: ITextLineComponentProps);
2968
- onLink(): void;
2969
- renderContent(): JSX.Element | null;
2970
- render(): JSX.Element;
2870
+ export interface IEditorData {
2871
+ locations: INodeLocationInfo[];
2872
+ x: number;
2873
+ y: number;
2874
+ zoom: number;
2875
+ frames?: IFrameData[];
2876
+ map?: {
2877
+ [key: number]: number;
2878
+ };
2971
2879
  }
2972
- export {};
2973
2880
 
2974
2881
  }
2975
- declare module "@babylonjs/node-editor/lines/unitButton" {
2976
- /// <reference types="react" />
2977
- interface IUnitButtonProps {
2978
- unit: string;
2979
- locked?: boolean;
2980
- onClick?: (unit: string) => void;
2882
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData" {
2883
+ import { Nullable } from "@babylonjs/core/types";
2884
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2885
+ export enum PortDataDirection {
2886
+ /** Input */
2887
+ Input = 0,
2888
+ /** Output */
2889
+ Output = 1
2890
+ }
2891
+ export interface IPortData {
2892
+ data: any;
2893
+ name: string;
2894
+ internalName: string;
2895
+ isExposedOnFrame: boolean;
2896
+ exposedPortPosition: number;
2897
+ isConnected: boolean;
2898
+ direction: PortDataDirection;
2899
+ ownerData: any;
2900
+ connectedPort: Nullable<IPortData>;
2901
+ needDualDirectionValidation: boolean;
2902
+ hasEndpoints: boolean;
2903
+ endpoints: Nullable<IPortData[]>;
2904
+ updateDisplayName: (newName: string) => void;
2905
+ connectTo: (port: IPortData) => void;
2906
+ disconnectFrom: (port: IPortData) => void;
2907
+ checkCompatibilityState(port: IPortData): number;
2908
+ getCompatibilityIssueMessage(issue: number, targetNode: GraphNode, targetPort: IPortData): string;
2909
+ }
2910
+
2911
+ }
2912
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps" {
2913
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
2914
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
2915
+ export interface IPropertyComponentProps {
2916
+ stateManager: StateManager;
2917
+ nodeData: INodeData;
2981
2918
  }
2982
- export function UnitButton(props: IUnitButtonProps): JSX.Element;
2983
- export {};
2984
2919
 
2985
2920
  }
2986
- declare module "@babylonjs/node-editor/lines/valueLineComponent" {
2987
- import * as React from "react";
2988
- interface IValueLineComponentProps {
2989
- label: string;
2990
- value: number;
2991
- color?: string;
2992
- fractionDigits?: number;
2993
- units?: string;
2994
- icon?: string;
2995
- iconLabel?: string;
2921
+ declare module "@babylonjs/node-editor/nodeGraphSystem/interfaces/selectionChangedOptions" {
2922
+ import { Nullable } from "@babylonjs/core/types";
2923
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
2924
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2925
+ import { NodeLink } from "@babylonjs/node-editor/nodeGraphSystem/nodeLink";
2926
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
2927
+ import { FramePortData } from "@babylonjs/node-editor/nodeGraphSystem/types/framePortData";
2928
+ export interface ISelectionChangedOptions {
2929
+ selection: Nullable<GraphNode | NodeLink | GraphFrame | NodePort | FramePortData>;
2930
+ forceKeepSelection?: boolean;
2931
+ marqueeSelection?: boolean;
2996
2932
  }
2997
- export class ValueLineComponent extends React.Component<IValueLineComponentProps> {
2998
- constructor(props: IValueLineComponentProps);
2999
- render(): JSX.Element;
2933
+
2934
+ }
2935
+ declare module "@babylonjs/node-editor/nodeGraphSystem/nodeLink" {
2936
+ import { Observable } from "@babylonjs/core/Misc/observable";
2937
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
2938
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
2939
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2940
+ import { GraphCanvasComponent } from "@babylonjs/node-editor/nodeGraphSystem/graphCanvas";
2941
+ export class NodeLink {
2942
+ private _graphCanvas;
2943
+ private _portA;
2944
+ private _portB?;
2945
+ private _nodeA;
2946
+ private _nodeB?;
2947
+ private _path;
2948
+ private _selectionPath;
2949
+ private _onSelectionChangedObserver;
2950
+ private _isVisible;
2951
+ onDisposedObservable: Observable<NodeLink>;
2952
+ get isVisible(): boolean;
2953
+ set isVisible(value: boolean);
2954
+ get portA(): FrameNodePort | NodePort;
2955
+ get portB(): FrameNodePort | NodePort | undefined;
2956
+ get nodeA(): GraphNode;
2957
+ get nodeB(): GraphNode | undefined;
2958
+ update(endX?: number, endY?: number, straight?: boolean): void;
2959
+ constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
2960
+ onClick(evt: MouseEvent): void;
2961
+ dispose(notify?: boolean): void;
3000
2962
  }
3001
- export {};
3002
2963
 
3003
2964
  }
3004
- declare module "@babylonjs/node-editor/lines/vector2LineComponent" {
3005
- import * as React from "react";
2965
+ declare module "@babylonjs/node-editor/nodeGraphSystem/nodePort" {
2966
+ import { Nullable } from "@babylonjs/core/types";
2967
+ import { Observer } from "@babylonjs/core/Misc/observable";
3006
2968
  import { Vector2 } from "@babylonjs/core/Maths/math.vector";
3007
- import { Observable } from "@babylonjs/core/Misc/observable";
3008
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
3009
- interface IVector2LineComponentProps {
3010
- label: string;
3011
- target: any;
3012
- propertyName: string;
3013
- step?: number;
3014
- onChange?: (newvalue: Vector2) => void;
3015
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3016
- icon?: string;
3017
- iconLabel?: string;
2969
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
2970
+ import { StateManager } from "@babylonjs/node-editor/nodeGraphSystem/stateManager";
2971
+ import { ISelectionChangedOptions } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/selectionChangedOptions";
2972
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
2973
+ import { IDisplayManager } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/displayManager";
2974
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
2975
+ export class NodePort {
2976
+ portData: IPortData;
2977
+ node: GraphNode;
2978
+ protected _element: HTMLDivElement;
2979
+ protected _img: HTMLImageElement;
2980
+ protected _stateManager: StateManager;
2981
+ protected _portLabelElement: Element;
2982
+ protected _onCandidateLinkMovedObserver: Nullable<Observer<Nullable<Vector2>>>;
2983
+ protected _onSelectionChangedObserver: Nullable<Observer<Nullable<ISelectionChangedOptions>>>;
2984
+ protected _exposedOnFrame: boolean;
2985
+ delegatedPort: Nullable<FrameNodePort>;
2986
+ get element(): HTMLDivElement;
2987
+ get portName(): string;
2988
+ set portName(newName: string);
2989
+ get disabled(): boolean;
2990
+ hasLabel(): boolean;
2991
+ get exposedOnFrame(): boolean;
2992
+ set exposedOnFrame(value: boolean);
2993
+ get exposedPortPosition(): number;
2994
+ set exposedPortPosition(value: number);
2995
+ private _isConnectedToNodeOutsideOfFrame;
2996
+ refresh(): void;
2997
+ constructor(portContainer: HTMLElement, portData: IPortData, node: GraphNode, stateManager: StateManager);
2998
+ dispose(): void;
2999
+ static CreatePortElement(portData: IPortData, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, stateManager: StateManager): NodePort;
3018
3000
  }
3019
- export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
3020
- isExpanded: boolean;
3021
- value: Vector2;
3022
- }> {
3023
- static defaultProps: {
3024
- step: number;
3001
+
3002
+ }
3003
+ declare module "@babylonjs/node-editor/nodeGraphSystem/propertyLedger" {
3004
+ import { ComponentClass } from "react";
3005
+ import { IPropertyComponentProps } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/propertyComponentProps";
3006
+ export class PropertyLedger {
3007
+ static DefaultControl: ComponentClass<IPropertyComponentProps>;
3008
+ static RegisteredControls: {
3009
+ [key: string]: ComponentClass<IPropertyComponentProps>;
3025
3010
  };
3026
- private _localChange;
3027
- constructor(props: IVector2LineComponentProps);
3028
- shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: {
3029
- isExpanded: boolean;
3030
- value: Vector2;
3031
- }): boolean;
3032
- switchExpandState(): void;
3033
- raiseOnPropertyChanged(previousValue: Vector2): void;
3034
- updateStateX(value: number): void;
3035
- updateStateY(value: number): void;
3036
- render(): JSX.Element;
3037
3011
  }
3038
- export {};
3039
3012
 
3040
3013
  }
3041
- declare module "@babylonjs/node-editor/lines/vector3LineComponent" {
3042
- import * as React from "react";
3043
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
3014
+ declare module "@babylonjs/node-editor/nodeGraphSystem/stateManager" {
3015
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
3044
3016
  import { Observable } from "@babylonjs/core/Misc/observable";
3045
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
3046
- interface IVector3LineComponentProps {
3047
- label: string;
3048
- target: any;
3049
- propertyName: string;
3050
- step?: number;
3051
- onChange?: (newvalue: Vector3) => void;
3052
- useEuler?: boolean;
3053
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3054
- noSlider?: boolean;
3055
- icon?: string;
3056
- iconLabel?: string;
3057
- }
3058
- export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
3059
- isExpanded: boolean;
3060
- value: Vector3;
3061
- }> {
3062
- static defaultProps: {
3063
- step: number;
3017
+ import { Nullable } from "@babylonjs/core/types";
3018
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
3019
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
3020
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
3021
+ import { INodeContainer } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeContainer";
3022
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
3023
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
3024
+ import { ISelectionChangedOptions } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/selectionChangedOptions";
3025
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
3026
+ export class StateManager {
3027
+ data: any;
3028
+ hostDocument: Document;
3029
+ lockObject: any;
3030
+ onSelectionChangedObservable: Observable<Nullable<ISelectionChangedOptions>>;
3031
+ onFrameCreatedObservable: Observable<GraphFrame>;
3032
+ onUpdateRequiredObservable: Observable<any>;
3033
+ onGraphNodeRemovalObservable: Observable<GraphNode>;
3034
+ onSelectionBoxMoved: Observable<ClientRect | DOMRect>;
3035
+ onCandidateLinkMoved: Observable<Nullable<Vector2>>;
3036
+ onCandidatePortSelectedObservable: Observable<Nullable<FrameNodePort | NodePort>>;
3037
+ onNewNodeCreatedObservable: Observable<GraphNode>;
3038
+ onRebuildRequiredObservable: Observable<boolean>;
3039
+ onErrorMessageDialogRequiredObservable: Observable<string>;
3040
+ onExposePortOnFrameObservable: Observable<GraphNode>;
3041
+ onGridSizeChanged: Observable<void>;
3042
+ onNewBlockRequiredObservable: Observable<{
3043
+ type: string;
3044
+ targetX: number;
3045
+ targetY: number;
3046
+ needRepositioning?: boolean | undefined;
3047
+ }>;
3048
+ exportData: (data: any) => string;
3049
+ isElbowConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
3050
+ applyNodePortDesign: (data: IPortData, element: HTMLElement, img: HTMLImageElement) => void;
3051
+ storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
3052
+ getEditorDataMap: () => {
3053
+ [key: number]: number;
3054
+ };
3055
+ createDefaultInputData: (rootData: any, portData: IPortData, nodeContainer: INodeContainer) => {
3056
+ data: INodeData;
3057
+ name: string;
3064
3058
  };
3065
- private _localChange;
3066
- constructor(props: IVector3LineComponentProps);
3067
- getCurrentValue(): any;
3068
- shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: {
3069
- isExpanded: boolean;
3070
- value: Vector3;
3071
- }): boolean;
3072
- switchExpandState(): void;
3073
- raiseOnPropertyChanged(previousValue: Vector3): void;
3074
- updateVector3(): void;
3075
- updateStateX(value: number): void;
3076
- updateStateY(value: number): void;
3077
- updateStateZ(value: number): void;
3078
- render(): JSX.Element;
3079
3059
  }
3080
- export {};
3081
3060
 
3082
3061
  }
3083
- declare module "@babylonjs/node-editor/lines/vector4LineComponent" {
3084
- import * as React from "react";
3085
- import { Vector4 } from "@babylonjs/core/Maths/math.vector";
3086
- import { Observable } from "@babylonjs/core/Misc/observable";
3087
- import { PropertyChangedEvent } from "@babylonjs/node-editor/propertyChangedEvent";
3088
- interface IVector4LineComponentProps {
3089
- label: string;
3090
- target: any;
3091
- propertyName: string;
3092
- step?: number;
3093
- onChange?: (newvalue: Vector4) => void;
3094
- useEuler?: boolean;
3095
- onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
3096
- icon?: string;
3097
- iconLabel?: string;
3062
+ declare module "@babylonjs/node-editor/nodeGraphSystem/tools" {
3063
+ import { GraphNode } from "@babylonjs/node-editor/nodeGraphSystem/graphNode";
3064
+ import { NodeLink } from "@babylonjs/node-editor/nodeGraphSystem/nodeLink";
3065
+ import { FramePortData } from "@babylonjs/node-editor/nodeGraphSystem/types/framePortData";
3066
+ export const IsFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
3067
+ export const RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode> | undefined, visitedLinks?: Set<NodeLink> | undefined) => void;
3068
+
3098
3069
  }
3099
- export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
3100
- isExpanded: boolean;
3101
- value: Vector4;
3102
- }> {
3103
- static defaultProps: {
3104
- step: number;
3105
- };
3106
- private _localChange;
3107
- constructor(props: IVector4LineComponentProps);
3108
- getCurrentValue(): any;
3109
- shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: {
3110
- isExpanded: boolean;
3111
- value: Vector4;
3112
- }): boolean;
3113
- switchExpandState(): void;
3114
- raiseOnPropertyChanged(previousValue: Vector4): void;
3115
- updateVector4(): void;
3116
- updateStateX(value: number): void;
3117
- updateStateY(value: number): void;
3118
- updateStateZ(value: number): void;
3119
- updateStateW(value: number): void;
3120
- render(): JSX.Element;
3070
+ declare module "@babylonjs/node-editor/nodeGraphSystem/typeLedger" {
3071
+ import { INodeContainer } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeContainer";
3072
+ import { INodeData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/nodeData";
3073
+ import { IPortData } from "@babylonjs/node-editor/nodeGraphSystem/interfaces/portData";
3074
+ import { NodePort } from "@babylonjs/node-editor/nodeGraphSystem/nodePort";
3075
+ export class TypeLedger {
3076
+ static PortDataBuilder: (port: NodePort, nodeContainer: INodeContainer) => IPortData;
3077
+ static NodeDataBuilder: (data: any, nodeContainer: INodeContainer) => INodeData;
3078
+ }
3079
+
3121
3080
  }
3081
+ declare module "@babylonjs/node-editor/nodeGraphSystem/types/framePortData" {
3082
+ import { GraphFrame } from "@babylonjs/node-editor/nodeGraphSystem/graphFrame";
3083
+ import { FrameNodePort } from "@babylonjs/node-editor/nodeGraphSystem/frameNodePort";
3084
+ export type FramePortData = {
3085
+ frame: GraphFrame;
3086
+ port: FrameNodePort;
3087
+ };
3122
3088
  export {};
3123
3089
 
3124
3090
  }