@babylonjs/node-editor 5.0.0-rc.0 → 5.0.0-rc.3

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.
@@ -102,6 +102,7 @@ declare module "@babylonjs/node-editor/components/log/logComponent" {
102
102
  export class LogEntry {
103
103
  message: string;
104
104
  isError: boolean;
105
+ time: Date;
105
106
  constructor(message: string, isError: boolean);
106
107
  }
107
108
  export class LogComponent extends React.Component<ILogComponentProps, {
@@ -191,33 +192,6 @@ declare module "@babylonjs/node-editor/sharedUiComponents/stringTools" {
191
192
  static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
192
193
  }
193
194
  }
194
- declare module "@babylonjs/node-editor/diagram/frameNodePort" {
195
- import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
196
- import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
197
- import { FramePortPosition } from "@babylonjs/node-editor/diagram/graphFrame";
198
- import { GlobalState } from "@babylonjs/node-editor/globalState";
199
- import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
200
- import { Observable } from '@babylonjs/core/Misc/observable';
201
- import { Nullable } from '@babylonjs/core/types';
202
- import { NodeMaterialConnectionPoint } from '@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint';
203
- export class FrameNodePort extends NodePort {
204
- connectionPoint: NodeMaterialConnectionPoint;
205
- node: GraphNode;
206
- private _parentFrameId;
207
- private _isInput;
208
- private _framePortPosition;
209
- private _framePortId;
210
- private _onFramePortPositionChangedObservable;
211
- get parentFrameId(): number;
212
- get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
213
- get isInput(): boolean;
214
- get framePortId(): number;
215
- get framePortPosition(): FramePortPosition;
216
- set framePortPosition(position: FramePortPosition);
217
- constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number);
218
- static CreateFrameNodePortElement(connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
219
- }
220
- }
221
195
  declare module "@babylonjs/node-editor/diagram/graphFrame" {
222
196
  import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
223
197
  import { GraphCanvasComponent } from "@babylonjs/node-editor/diagram/graphCanvas";
@@ -314,7 +288,7 @@ declare module "@babylonjs/node-editor/diagram/graphFrame" {
314
288
  private _onDown;
315
289
  move(newX: number, newY: number, align?: boolean): void;
316
290
  private _onUp;
317
- private _moveFrame;
291
+ _moveFrame(offsetX: number, offsetY: number): void;
318
292
  private _onMove;
319
293
  moveFramePortUp(nodePort: FrameNodePort): void;
320
294
  private _movePortUp;
@@ -373,18 +347,42 @@ declare module "@babylonjs/node-editor/diagram/graphFrame" {
373
347
  }): GraphFrame;
374
348
  }
375
349
  }
350
+ declare module "@babylonjs/node-editor/diagram/frameNodePort" {
351
+ import { NodePort } from "@babylonjs/node-editor/diagram/nodePort";
352
+ import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
353
+ import { FramePortPosition } from "@babylonjs/node-editor/diagram/graphFrame";
354
+ import { GlobalState } from "@babylonjs/node-editor/globalState";
355
+ import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
356
+ import { Observable } from '@babylonjs/core/Misc/observable';
357
+ import { Nullable } from '@babylonjs/core/types';
358
+ import { NodeMaterialConnectionPoint } from '@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint';
359
+ export class FrameNodePort extends NodePort {
360
+ connectionPoint: NodeMaterialConnectionPoint;
361
+ node: GraphNode;
362
+ private _parentFrameId;
363
+ private _isInput;
364
+ private _framePortPosition;
365
+ private _framePortId;
366
+ private _onFramePortPositionChangedObservable;
367
+ get parentFrameId(): number;
368
+ get onFramePortPositionChangedObservable(): Observable<FrameNodePort>;
369
+ get isInput(): boolean;
370
+ get framePortId(): number;
371
+ get framePortPosition(): FramePortPosition;
372
+ set framePortPosition(position: FramePortPosition);
373
+ constructor(portContainer: HTMLElement, connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number);
374
+ static CreateFrameNodePortElement(connectionPoint: NodeMaterialConnectionPoint, node: GraphNode, root: HTMLElement, displayManager: Nullable<IDisplayManager>, globalState: GlobalState, isInput: boolean, framePortId: number, parentFrameId: number): FrameNodePort;
375
+ }
376
+ }
376
377
  declare module "@babylonjs/node-editor/diagram/nodePort" {
377
378
  import { NodeMaterialConnectionPoint } from '@babylonjs/core/Materials/Node/nodeMaterialBlockConnectionPoint';
378
- import { GlobalState } from "@babylonjs/node-editor/globalState";
379
+ import { GlobalState, ISelectionChangedOptions } from "@babylonjs/node-editor/globalState";
379
380
  import { Nullable } from '@babylonjs/core/types';
380
381
  import { Observer } from '@babylonjs/core/Misc/observable';
381
382
  import { Vector2 } from '@babylonjs/core/Maths/math.vector';
382
383
  import { IDisplayManager } from "@babylonjs/node-editor/diagram/display/displayManager";
383
384
  import { GraphNode } from "@babylonjs/node-editor/diagram/graphNode";
384
- import { NodeLink } from "@babylonjs/node-editor/diagram/nodeLink";
385
- import { GraphFrame } from "@babylonjs/node-editor/diagram/graphFrame";
386
385
  import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
387
- import { FramePortData } from "@babylonjs/node-editor/diagram/graphCanvas";
388
386
  export class NodePort {
389
387
  connectionPoint: NodeMaterialConnectionPoint;
390
388
  node: GraphNode;
@@ -393,7 +391,7 @@ declare module "@babylonjs/node-editor/diagram/nodePort" {
393
391
  protected _globalState: GlobalState;
394
392
  protected _portLabelElement: Element;
395
393
  protected _onCandidateLinkMovedObserver: Nullable<Observer<Nullable<Vector2>>>;
396
- protected _onSelectionChangedObserver: Nullable<Observer<Nullable<GraphFrame | GraphNode | NodeLink | NodePort | FramePortData>>>;
394
+ protected _onSelectionChangedObserver: Nullable<Observer<Nullable<ISelectionChangedOptions>>>;
397
395
  protected _exposedOnFrame: boolean;
398
396
  delegatedPort: Nullable<FrameNodePort>;
399
397
  get element(): HTMLDivElement;
@@ -437,7 +435,7 @@ declare module "@babylonjs/node-editor/diagram/nodeLink" {
437
435
  get nodeB(): GraphNode | undefined;
438
436
  update(endX?: number, endY?: number, straight?: boolean): void;
439
437
  constructor(graphCanvas: GraphCanvasComponent, portA: NodePort, nodeA: GraphNode, portB?: NodePort, nodeB?: GraphNode);
440
- onClick(): void;
438
+ onClick(evt: MouseEvent): void;
441
439
  dispose(notify?: boolean): void;
442
440
  }
443
441
  }
@@ -490,7 +488,7 @@ declare module "@babylonjs/node-editor/diagram/graphCanvas" {
490
488
  private _candidatePort;
491
489
  private _gridSize;
492
490
  private _selectionBox;
493
- private _selectedFrame;
491
+ private _selectedFrames;
494
492
  private _frameCandidate;
495
493
  private _frames;
496
494
  private _altKeyIsPressed;
@@ -512,7 +510,7 @@ declare module "@babylonjs/node-editor/diagram/graphCanvas" {
512
510
  set y(value: number);
513
511
  get selectedNodes(): GraphNode[];
514
512
  get selectedLink(): Nullable<NodeLink>;
515
- get selectedFrame(): Nullable<GraphFrame>;
513
+ get selectedFrames(): GraphFrame[];
516
514
  get selectedPort(): Nullable<NodePort>;
517
515
  get canvasContainer(): HTMLDivElement;
518
516
  get hostCanvas(): HTMLDivElement;
@@ -538,6 +536,7 @@ declare module "@babylonjs/node-editor/diagram/graphCanvas" {
538
536
  onWheel(evt: React.WheelEvent): void;
539
537
  zoomToFit(): void;
540
538
  processCandidatePort(): void;
539
+ connectNodes(nodeA: GraphNode, pointA: NodeMaterialConnectionPoint, nodeB: GraphNode, pointB: NodeMaterialConnectionPoint): void;
541
540
  processEditorData(editorData: IEditorData): void;
542
541
  addFrame(frameData: IFrameData): void;
543
542
  render(): JSX.Element;
@@ -1680,12 +1679,17 @@ declare module "@babylonjs/node-editor/globalState" {
1680
1679
  import { FrameNodePort } from "@babylonjs/node-editor/diagram/frameNodePort";
1681
1680
  import { FramePortData } from "@babylonjs/node-editor/diagram/graphCanvas";
1682
1681
  import { NodeMaterialModes } from '@babylonjs/core/Materials/Node/Enums/nodeMaterialModes';
1682
+ export class ISelectionChangedOptions {
1683
+ selection: Nullable<GraphNode | NodeLink | GraphFrame | NodePort | FramePortData>;
1684
+ forceKeepSelection?: boolean;
1685
+ }
1683
1686
  export class GlobalState {
1684
1687
  nodeMaterial: NodeMaterial;
1685
1688
  hostElement: HTMLElement;
1686
1689
  hostDocument: HTMLDocument;
1687
1690
  hostWindow: Window;
1688
- onSelectionChangedObservable: Observable<Nullable<GraphFrame | GraphNode | NodePort | NodeLink | FramePortData>>;
1691
+ onNewNodeCreatedObservable: Observable<GraphNode>;
1692
+ onSelectionChangedObservable: Observable<Nullable<ISelectionChangedOptions>>;
1689
1693
  onRebuildRequiredObservable: Observable<boolean>;
1690
1694
  onBuiltObservable: Observable<void>;
1691
1695
  onResetRequiredObservable: Observable<void>;
@@ -1708,6 +1712,12 @@ declare module "@babylonjs/node-editor/globalState" {
1708
1712
  onImportFrameObservable: Observable<any>;
1709
1713
  onGraphNodeRemovalObservable: Observable<GraphNode>;
1710
1714
  onPopupClosedObservable: Observable<void>;
1715
+ onNewBlockRequiredObservable: Observable<{
1716
+ type: string;
1717
+ targetX: number;
1718
+ targetY: number;
1719
+ needRepositioning?: boolean | undefined;
1720
+ }>;
1711
1721
  onGetNodeFromBlock: (block: NodeMaterialBlock) => GraphNode;
1712
1722
  onGridSizeChanged: Observable<void>;
1713
1723
  onExposePortOnFrameObservable: Observable<GraphNode>;
@@ -2042,8 +2052,11 @@ declare module "@babylonjs/node-editor/graphEditor" {
2042
2052
  embedHostWidth?: string;
2043
2053
  }
2044
2054
  export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
2045
- private readonly NodeWidth;
2055
+ static readonly NodeWidth: number;
2056
+ private _graphCanvasRef;
2057
+ private _diagramContainerRef;
2046
2058
  private _graphCanvas;
2059
+ private _diagramContainer;
2047
2060
  private _startX;
2048
2061
  private _moveInProgress;
2049
2062
  private _leftWidth;
@@ -2051,7 +2064,7 @@ declare module "@babylonjs/node-editor/graphEditor" {
2051
2064
  private _blocks;
2052
2065
  private _previewManager;
2053
2066
  private _copiedNodes;
2054
- private _copiedFrame;
2067
+ private _copiedFrames;
2055
2068
  private _mouseLocationX;
2056
2069
  private _mouseLocationY;
2057
2070
  private _onWidgetKeyUpPointer;
@@ -2079,7 +2092,8 @@ declare module "@babylonjs/node-editor/graphEditor" {
2079
2092
  onPointerUp(evt: React.PointerEvent<HTMLDivElement>): void;
2080
2093
  resizeColumns(evt: React.PointerEvent<HTMLDivElement>, forLeft?: boolean): void;
2081
2094
  buildColumnLayout(): string;
2082
- emitNewBlock(event: React.DragEvent<HTMLDivElement>): void;
2095
+ emitNewBlock(blockType: string, targetX: number, targetY: number): void;
2096
+ dropNewBlock(event: React.DragEvent<HTMLDivElement>): void;
2083
2097
  handlePopUp: () => void;
2084
2098
  handleClosingPopUp: () => void;
2085
2099
  initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
@@ -2196,8 +2210,6 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/checkBoxLineComp
2196
2210
  isDisabled?: boolean;
2197
2211
  isConflict: boolean;
2198
2212
  }> {
2199
- private static _UniqueIdSeed;
2200
- private _uniqueId;
2201
2213
  private _localChange;
2202
2214
  constructor(props: ICheckBoxLineComponentProps);
2203
2215
  shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
@@ -2296,7 +2308,7 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/textInputLineCom
2296
2308
  import { PropertyChangedEvent } from "@babylonjs/node-editor/sharedUiComponents/propertyChangedEvent";
2297
2309
  import { LockObject } from "@babylonjs/node-editor/sharedUiComponents/tabs/propertyGrids/lockObject";
2298
2310
  interface ITextInputLineComponentProps {
2299
- label: string;
2311
+ label?: string;
2300
2312
  lockObject: LockObject;
2301
2313
  target?: any;
2302
2314
  propertyName?: string;
@@ -2611,6 +2623,16 @@ declare module "@babylonjs/node-editor/sharedUiComponents/lines/iconButtonLineCo
2611
2623
  render(): JSX.Element;
2612
2624
  }
2613
2625
  }
2626
+ declare module "@babylonjs/node-editor/sharedUiComponents/lines/iconComponent" {
2627
+ import * as React from "react";
2628
+ interface IIconComponentProps {
2629
+ icon: string;
2630
+ label?: string;
2631
+ }
2632
+ export class IconComponent extends React.Component<IIconComponentProps> {
2633
+ render(): JSX.Element;
2634
+ }
2635
+ }
2614
2636
  declare module "@babylonjs/node-editor/sharedUiComponents/lines/indentedTextLineComponent" {
2615
2637
  import * as React from "react";
2616
2638
  interface IIndentedTextLineComponentProps {
package/package.json CHANGED
@@ -4,14 +4,14 @@
4
4
  },
5
5
  "name": "@babylonjs/node-editor",
6
6
  "description": "The Babylon.js node material editor.",
7
- "version": "5.0.0-rc.0",
7
+ "version": "5.0.0-rc.3",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "https://github.com/BabylonJS/Babylon.js.git"
11
11
  },
12
12
  "license": "Apache-2.0",
13
13
  "dependencies": {
14
- "@babylonjs/core": "5.0.0-rc.0",
14
+ "@babylonjs/core": "5.0.0-rc.3",
15
15
  "tslib": "^2.3.1"
16
16
  },
17
17
  "files": [