@babylonjs/gui-editor 5.13.3 → 5.15.0

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.
@@ -9,6 +9,7 @@ interface ICommandBarComponentProps {
9
9
  export class CommandBarComponent extends React.Component<ICommandBarComponentProps> {
10
10
  private _sizeOption;
11
11
  private _stopUpdating;
12
+ private _lockObject;
12
13
  constructor(props: ICommandBarComponentProps);
13
14
  render(): JSX.Element;
14
15
  }
@@ -884,7 +885,6 @@ export class GizmoGeneric extends React.Component<IGuiGizmoProps, IGuiGizmoState
884
885
  componentWillUnmount(): void;
885
886
  /**
886
887
  * Update the gizmo's positions
887
- * @param force should the update be forced. otherwise it will be updated only when the pointer is down
888
888
  */
889
889
  updateGizmo(): void;
890
890
  private _onUp;
@@ -1364,6 +1364,7 @@ export {};
1364
1364
  }
1365
1365
  declare module "@babylonjs/gui-editor/colorPicker/colorComponentEntry" {
1366
1366
  import * as React from "react";
1367
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
1367
1368
  export interface IColorComponentEntryProps {
1368
1369
  value: number;
1369
1370
  label: string;
@@ -1371,10 +1372,13 @@ export interface IColorComponentEntryProps {
1371
1372
  min?: number;
1372
1373
  onChange: (value: number) => void;
1373
1374
  disabled?: boolean;
1375
+ lockObject: LockObject;
1374
1376
  }
1375
1377
  export class ColorComponentEntry extends React.Component<IColorComponentEntryProps> {
1376
1378
  constructor(props: IColorComponentEntryProps);
1377
1379
  updateValue(valueString: string): void;
1380
+ lock(): void;
1381
+ unlock(): void;
1378
1382
  render(): JSX.Element;
1379
1383
  }
1380
1384
 
@@ -1382,6 +1386,7 @@ export class ColorComponentEntry extends React.Component<IColorComponentEntryPro
1382
1386
  declare module "@babylonjs/gui-editor/colorPicker/colorPicker" {
1383
1387
  import * as React from "react";
1384
1388
  import { Color3, Color4 } from "@babylonjs/core/Maths/math.color";
1389
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
1385
1390
  import "@babylonjs/gui-editor/colorPicker/colorPicker.scss";
1386
1391
  /**
1387
1392
  * Interface used to specify creation options for color picker
@@ -1391,6 +1396,7 @@ export interface IColorPickerProps {
1391
1396
  linearhint?: boolean;
1392
1397
  debugMode?: boolean;
1393
1398
  onColorChanged?: (color: Color3 | Color4) => void;
1399
+ lockObject: LockObject;
1394
1400
  }
1395
1401
  /**
1396
1402
  * Interface used to specify creation options for color picker
@@ -1425,10 +1431,12 @@ export class ColorPicker extends React.Component<IColorPickerProps, IColorPicker
1425
1431
  }
1426
1432
  declare module "@babylonjs/gui-editor/colorPicker/hexColor" {
1427
1433
  import * as React from "react";
1434
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
1428
1435
  export interface IHexColorProps {
1429
1436
  value: string;
1430
1437
  expectedLength: number;
1431
1438
  onChange: (value: string) => void;
1439
+ lockObject: LockObject;
1432
1440
  }
1433
1441
  export class HexColor extends React.Component<IHexColorProps, {
1434
1442
  hex: string;
@@ -1437,6 +1445,8 @@ export class HexColor extends React.Component<IHexColorProps, {
1437
1445
  shouldComponentUpdate(nextProps: IHexColorProps, nextState: {
1438
1446
  hex: string;
1439
1447
  }): boolean;
1448
+ lock(): void;
1449
+ unlock(): void;
1440
1450
  updateHexValue(valueString: string): void;
1441
1451
  render(): JSX.Element;
1442
1452
  }
@@ -1569,7 +1579,7 @@ export interface IColor3LineComponentProps {
1569
1579
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1570
1580
  isLinear?: boolean;
1571
1581
  icon?: string;
1572
- lockObject?: LockObject;
1582
+ lockObject: LockObject;
1573
1583
  iconLabel?: string;
1574
1584
  onChange?: () => void;
1575
1585
  }
@@ -1592,7 +1602,7 @@ export interface IColor4LineComponentProps {
1592
1602
  isLinear?: boolean;
1593
1603
  icon?: string;
1594
1604
  iconLabel?: string;
1595
- lockObject?: LockObject;
1605
+ lockObject: LockObject;
1596
1606
  }
1597
1607
  export class Color4LineComponent extends React.Component<IColor4LineComponentProps> {
1598
1608
  render(): JSX.Element;
@@ -1614,8 +1624,8 @@ export interface IColorLineComponentProps {
1614
1624
  isLinear?: boolean;
1615
1625
  icon?: string;
1616
1626
  iconLabel?: string;
1617
- lockObject?: LockObject;
1618
1627
  disableAlpha?: boolean;
1628
+ lockObject: LockObject;
1619
1629
  }
1620
1630
  interface IColorLineComponentState {
1621
1631
  isExpanded: boolean;
@@ -1645,6 +1655,7 @@ export {};
1645
1655
  declare module "@babylonjs/gui-editor/lines/colorPickerComponent" {
1646
1656
  import * as React from "react";
1647
1657
  import { Color4, Color3 } from "@babylonjs/core/Maths/math.color";
1658
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
1648
1659
  export interface IColorPickerComponentProps {
1649
1660
  value: Color4 | Color3;
1650
1661
  linearHint?: boolean;
@@ -1652,6 +1663,7 @@ export interface IColorPickerComponentProps {
1652
1663
  icon?: string;
1653
1664
  iconLabel?: string;
1654
1665
  shouldPopRight?: boolean;
1666
+ lockObject?: LockObject;
1655
1667
  }
1656
1668
  interface IColorPickerComponentState {
1657
1669
  pickerEnabled: boolean;
@@ -1735,7 +1747,7 @@ interface IFloatLineComponentProps {
1735
1747
  label: string;
1736
1748
  target: any;
1737
1749
  propertyName: string;
1738
- lockObject?: LockObject;
1750
+ lockObject: LockObject;
1739
1751
  onChange?: (newValue: number) => void;
1740
1752
  isInteger?: boolean;
1741
1753
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
@@ -1937,6 +1949,7 @@ import { Vector3, Vector4 } from "@babylonjs/core/Maths/math.vector";
1937
1949
  import { Matrix } from "@babylonjs/core/Maths/math.vector";
1938
1950
  import { Observable } from "@babylonjs/core/Misc/observable";
1939
1951
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/propertyChangedEvent";
1952
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
1940
1953
  interface IMatrixLineComponentProps {
1941
1954
  label: string;
1942
1955
  target: any;
@@ -1946,6 +1959,7 @@ interface IMatrixLineComponentProps {
1946
1959
  onModeChange?: (mode: number) => void;
1947
1960
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
1948
1961
  mode?: number;
1962
+ lockObject: LockObject;
1949
1963
  }
1950
1964
  export class MatrixLineComponent extends React.Component<IMatrixLineComponentProps, {
1951
1965
  value: Matrix;
@@ -1985,6 +1999,7 @@ export {};
1985
1999
  }
1986
2000
  declare module "@babylonjs/gui-editor/lines/numericInputComponent" {
1987
2001
  import * as React from "react";
2002
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
1988
2003
  interface INumericInputComponentProps {
1989
2004
  label: string;
1990
2005
  value: number;
@@ -1993,6 +2008,7 @@ interface INumericInputComponentProps {
1993
2008
  precision?: number;
1994
2009
  icon?: string;
1995
2010
  iconLabel?: string;
2011
+ lockObject: LockObject;
1996
2012
  }
1997
2013
  export class NumericInputComponent extends React.Component<INumericInputComponentProps, {
1998
2014
  value: string;
@@ -2002,6 +2018,7 @@ export class NumericInputComponent extends React.Component<INumericInputComponen
2002
2018
  };
2003
2019
  private _localChange;
2004
2020
  constructor(props: INumericInputComponentProps);
2021
+ componentWillUnmount(): void;
2005
2022
  shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: {
2006
2023
  value: string;
2007
2024
  }): boolean;
@@ -2104,7 +2121,7 @@ interface ISliderLineComponentProps {
2104
2121
  margin?: boolean;
2105
2122
  icon?: string;
2106
2123
  iconLabel?: string;
2107
- lockObject?: LockObject;
2124
+ lockObject: LockObject;
2108
2125
  unit?: React.ReactNode;
2109
2126
  }
2110
2127
  export class SliderLineComponent extends React.Component<ISliderLineComponentProps, {
@@ -2180,7 +2197,7 @@ export class TextInputLineComponent extends React.Component<ITextInputLineCompon
2180
2197
  }): boolean;
2181
2198
  raiseOnPropertyChanged(newValue: string, previousValue: string): void;
2182
2199
  getCurrentNumericValue(value: string): number;
2183
- updateValue(value: string): void;
2200
+ updateValue(value: string, valueToValidate?: string): void;
2184
2201
  incrementValue(amount: number): void;
2185
2202
  onKeyDown(event: React.KeyboardEvent): void;
2186
2203
  render(): JSX.Element;
@@ -2245,6 +2262,7 @@ import * as React from "react";
2245
2262
  import { Vector2 } from "@babylonjs/core/Maths/math.vector";
2246
2263
  import { Observable } from "@babylonjs/core/Misc/observable";
2247
2264
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/propertyChangedEvent";
2265
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
2248
2266
  interface IVector2LineComponentProps {
2249
2267
  label: string;
2250
2268
  target: any;
@@ -2254,6 +2272,7 @@ interface IVector2LineComponentProps {
2254
2272
  onPropertyChangedObservable?: Observable<PropertyChangedEvent>;
2255
2273
  icon?: string;
2256
2274
  iconLabel?: string;
2275
+ lockObject: LockObject;
2257
2276
  }
2258
2277
  export class Vector2LineComponent extends React.Component<IVector2LineComponentProps, {
2259
2278
  isExpanded: boolean;
@@ -2282,6 +2301,7 @@ import * as React from "react";
2282
2301
  import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2283
2302
  import { Observable } from "@babylonjs/core/Misc/observable";
2284
2303
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/propertyChangedEvent";
2304
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
2285
2305
  interface IVector3LineComponentProps {
2286
2306
  label: string;
2287
2307
  target: any;
@@ -2293,6 +2313,7 @@ interface IVector3LineComponentProps {
2293
2313
  noSlider?: boolean;
2294
2314
  icon?: string;
2295
2315
  iconLabel?: string;
2316
+ lockObject: LockObject;
2296
2317
  }
2297
2318
  export class Vector3LineComponent extends React.Component<IVector3LineComponentProps, {
2298
2319
  isExpanded: boolean;
@@ -2324,6 +2345,7 @@ import * as React from "react";
2324
2345
  import { Vector4 } from "@babylonjs/core/Maths/math.vector";
2325
2346
  import { Observable } from "@babylonjs/core/Misc/observable";
2326
2347
  import { PropertyChangedEvent } from "@babylonjs/gui-editor/propertyChangedEvent";
2348
+ import { LockObject } from "@babylonjs/gui-editor/tabs/propertyGrids/lockObject";
2327
2349
  interface IVector4LineComponentProps {
2328
2350
  label: string;
2329
2351
  target?: any;
@@ -2335,6 +2357,7 @@ interface IVector4LineComponentProps {
2335
2357
  icon?: string;
2336
2358
  iconLabel?: string;
2337
2359
  value?: Vector4;
2360
+ lockObject: LockObject;
2338
2361
  }
2339
2362
  export class Vector4LineComponent extends React.Component<IVector4LineComponentProps, {
2340
2363
  isExpanded: boolean;
@@ -2416,6 +2439,7 @@ export interface IGraphCanvasComponentProps {
2416
2439
  onEmitNewNode: (nodeData: INodeData) => GraphNode;
2417
2440
  }
2418
2441
  export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentProps> implements INodeContainer {
2442
+ static readonly NodeWidth: number;
2419
2443
  private readonly _minZoom;
2420
2444
  private readonly _maxZoom;
2421
2445
  private _hostCanvas;
@@ -2452,6 +2476,8 @@ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentP
2452
2476
  private _oldY;
2453
2477
  _frameIsMoving: boolean;
2454
2478
  _isLoading: boolean;
2479
+ private _copiedNodes;
2480
+ private _copiedFrames;
2455
2481
  get gridSize(): number;
2456
2482
  set gridSize(value: number);
2457
2483
  get stateManager(): StateManager;
@@ -2475,6 +2501,11 @@ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentP
2475
2501
  get frameContainer(): HTMLDivElement;
2476
2502
  private _selectedFrameAndNodesConflict;
2477
2503
  constructor(props: IGraphCanvasComponentProps);
2504
+ populateConnectedEntriesBeforeRemoval(item: GraphNode, items: GraphNode[], inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[]): void;
2505
+ automaticRewire(inputs: Nullable<IPortData>[], outputs: Nullable<IPortData>[]): void;
2506
+ handleKeyDown(evt: KeyboardEvent, onRemove: (nodeData: INodeData) => void, mouseLocationX: number, mouseLocationY: number, dataGenerator: (nodeData: INodeData) => any, rootElement: HTMLDivElement): void;
2507
+ pasteSelection(copiedNodes: GraphNode[], currentX: number, currentY: number, dataGenerator: (nodeData: INodeData) => any, selectNew?: boolean): GraphNode[];
2508
+ reconnectNewNodes(nodeIndex: number, newNodes: GraphNode[], sourceNodes: GraphNode[], done: boolean[]): void;
2478
2509
  getCachedData(): any[];
2479
2510
  removeDataFromCache(data: any): void;
2480
2511
  createNodeFromObject(nodeData: INodeData, onNodeCreated: (data: any) => void, recursion?: boolean): GraphNode;
@@ -2496,6 +2527,7 @@ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentP
2496
2527
  zoomToFit(): void;
2497
2528
  processCandidatePort(): void;
2498
2529
  connectNodes(nodeA: GraphNode, pointA: IPortData, nodeB: GraphNode, pointB: IPortData): void;
2530
+ drop(newNode: GraphNode, targetX: number, targetY: number, offsetX: number, offsetY: number): void;
2499
2531
  processEditorData(editorData: IEditorData): void;
2500
2532
  reOrganize(editorData?: Nullable<IEditorData>, isImportingAFrame?: boolean): void;
2501
2533
  addFrame(frameData: IFrameData): void;
@@ -2673,7 +2705,8 @@ export class GraphNode {
2673
2705
  content: INodeData;
2674
2706
  private _visual;
2675
2707
  private _headerContainer;
2676
- private _warning;
2708
+ private _headerIcon;
2709
+ private _headerIconImg;
2677
2710
  private _header;
2678
2711
  private _connections;
2679
2712
  private _inputsContainer;
@@ -2769,7 +2802,7 @@ export interface INodeData {
2769
2802
  uniqueId: number;
2770
2803
  isInput: boolean;
2771
2804
  comments: string;
2772
- getWarningMessage: () => string;
2805
+ prepareHeaderIcon: (iconDiv: HTMLDivElement, img: HTMLImageElement) => void;
2773
2806
  getClassName: () => string;
2774
2807
  dispose: () => void;
2775
2808
  getPortByName: (name: string) => Nullable<IPortData>;
@@ -2830,6 +2863,7 @@ export interface IPortData {
2830
2863
  hasEndpoints: boolean;
2831
2864
  endpoints: Nullable<IPortData[]>;
2832
2865
  updateDisplayName: (newName: string) => void;
2866
+ canConnectTo: (port: IPortData) => boolean;
2833
2867
  connectTo: (port: IPortData) => void;
2834
2868
  disconnectFrom: (port: IPortData) => void;
2835
2869
  checkCompatibilityState(port: IPortData): number;
@@ -2973,7 +3007,7 @@ export class StateManager {
2973
3007
  targetY: number;
2974
3008
  needRepositioning?: boolean | undefined;
2975
3009
  }>;
2976
- exportData: (data: any) => string;
3010
+ exportData: (data: any, frame?: Nullable<GraphFrame>) => string;
2977
3011
  isElbowConnectionAllowed: (nodeA: FrameNodePort | NodePort, nodeB: FrameNodePort | NodePort) => boolean;
2978
3012
  applyNodePortDesign: (data: IPortData, element: HTMLElement, img: HTMLImageElement) => void;
2979
3013
  storeEditorData: (serializationObject: any, frame?: Nullable<GraphFrame>) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/gui-editor",
3
- "version": "5.13.3",
3
+ "version": "5.15.0",
4
4
  "main": "dist/babylon.guiEditor.max.js",
5
5
  "module": "dist/babylon.guiEditor.max.js",
6
6
  "esnext": "dist/babylon.guiEditor.max.js",
@@ -24,8 +24,8 @@
24
24
  "@types/react-dom": ">=16.0.9"
25
25
  },
26
26
  "devDependencies": {
27
- "@babylonjs/core": "^5.13.3",
28
- "@babylonjs/gui": "^5.13.3",
27
+ "@babylonjs/core": "^5.15.0",
28
+ "@babylonjs/gui": "^5.15.0",
29
29
  "react": "^17.0.2",
30
30
  "react-dom": "^17.0.2",
31
31
  "rimraf": "^3.0.2",