babylonjs-node-editor 5.28.0 → 5.30.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.
@@ -1558,6 +1558,366 @@ export type LabelProps = {
1558
1558
  };
1559
1559
  export const Label: React.FC<LabelProps>;
1560
1560
 
1561
+ }
1562
+ declare module "babylonjs-node-editor/components/layout/DraggableIcon" {
1563
+ import { FC } from "react";
1564
+ import { ElementTypes, TabDrag } from "babylonjs-node-editor/components/layout/types";
1565
+ /**
1566
+ * Arguments for the DraggableIcon component.
1567
+ */
1568
+ export interface IDraggableIconProps {
1569
+ /**
1570
+ * Icon source
1571
+ */
1572
+ src: string;
1573
+ /**
1574
+ * Object that will be passed to the drag event
1575
+ */
1576
+ item: TabDrag;
1577
+ /**
1578
+ * Type of drag event
1579
+ */
1580
+ type: ElementTypes;
1581
+ }
1582
+ /**
1583
+ * An icon that can be dragged by the user
1584
+ */
1585
+ export const DraggableIcon: FC<IDraggableIconProps>;
1586
+
1587
+ }
1588
+ declare module "babylonjs-node-editor/components/layout/FlexibleColumn" {
1589
+ import { FC } from "react";
1590
+ /**
1591
+ * Arguments for the Column component.
1592
+ */
1593
+ export interface IFlexibleColumnProps {
1594
+ /**
1595
+ * Width of column
1596
+ */
1597
+ width: string;
1598
+ }
1599
+ /**
1600
+ * This component represents a single column in the layout. It receives a width
1601
+ * that it occupies and the content to display
1602
+ * @param props
1603
+ * @returns
1604
+ */
1605
+ export const FlexibleColumn: FC<IFlexibleColumnProps>;
1606
+
1607
+ }
1608
+ declare module "babylonjs-node-editor/components/layout/FlexibleDragHandler" {
1609
+ import { FC } from "react";
1610
+ /**
1611
+ * Arguments for the DragHandler component.
1612
+ */
1613
+ export interface IFlexibleDragHandlerProps {
1614
+ /**
1615
+ * The size of the containing element. Used to calculate the percentage of
1616
+ * space occupied by the component
1617
+ */
1618
+ containerSize: {
1619
+ width: number;
1620
+ height: number;
1621
+ };
1622
+ }
1623
+ /**
1624
+ * This component receives the drop events and updates the layout accordingly
1625
+ */
1626
+ export const FlexibleDragHandler: FC<IFlexibleDragHandlerProps>;
1627
+
1628
+ }
1629
+ declare module "babylonjs-node-editor/components/layout/FlexibleDropZone" {
1630
+ import { FC } from "react";
1631
+ /**
1632
+ * Arguments for the FlexibleDropZone component.
1633
+ */
1634
+ export interface IFlexibleDropZoneProps {
1635
+ /**
1636
+ * The row number of the component in the layout
1637
+ */
1638
+ rowNumber: number;
1639
+ /**
1640
+ * The column number of the component in the layout
1641
+ */
1642
+ columnNumber: number;
1643
+ }
1644
+ /**
1645
+ * This component contains the drag and drop zone for the resize bars that
1646
+ * allow redefining width and height of layout elements
1647
+ */
1648
+ export const FlexibleDropZone: FC<IFlexibleDropZoneProps>;
1649
+
1650
+ }
1651
+ declare module "babylonjs-node-editor/components/layout/FlexibleGridContainer" {
1652
+ import { FC } from "react";
1653
+ /**
1654
+ * Arguments for the GridContainer component.
1655
+ */
1656
+ export interface IFlexibleGridContainerProps {
1657
+ }
1658
+ /**
1659
+ * Component responsible for mapping the layout to the actual components
1660
+ */
1661
+ export const FlexibleGridContainer: FC<IFlexibleGridContainerProps>;
1662
+
1663
+ }
1664
+ declare module "babylonjs-node-editor/components/layout/FlexibleGridLayout" {
1665
+ import { FC } from "react";
1666
+ import { Layout } from "babylonjs-node-editor/components/layout/types";
1667
+ /**
1668
+ * Arguments for the Layout component.
1669
+ */
1670
+ export interface IFlexibleGridLayoutProps {
1671
+ /**
1672
+ * A definition of the layout which can be changed by the user
1673
+ */
1674
+ layoutDefinition: Layout;
1675
+ }
1676
+ /**
1677
+ * This component represents a grid layout that can be resized and rearranged
1678
+ * by the user.
1679
+ */
1680
+ export const FlexibleGridLayout: FC<IFlexibleGridLayoutProps>;
1681
+
1682
+ }
1683
+ declare module "babylonjs-node-editor/components/layout/FlexibleResizeBar" {
1684
+ import { FC } from "react";
1685
+ import { ResizeDirections } from "babylonjs-node-editor/components/layout/types";
1686
+ /**
1687
+ * Arguments for the ResizeBar component.
1688
+ */
1689
+ export interface IFlexibleRowResizerProps {
1690
+ /**
1691
+ * Row number of the component that is being resized
1692
+ */
1693
+ rowNumber: number;
1694
+ /**
1695
+ * Column number of the component being resized
1696
+ */
1697
+ columnNumber: number;
1698
+ /**
1699
+ * If the resizing happens in row or column direction
1700
+ */
1701
+ direction: ResizeDirections;
1702
+ }
1703
+ /**
1704
+ * The item that will be sent to the drag event
1705
+ */
1706
+ export type ResizeItem = {
1707
+ /**
1708
+ * If the resizing happens in row or column direction
1709
+ */
1710
+ direction: ResizeDirections;
1711
+ /**
1712
+ * The row number of the component that is being resized
1713
+ */
1714
+ rowNumber: number;
1715
+ /**
1716
+ * the column number of the component being resized
1717
+ */
1718
+ columnNumber: number;
1719
+ };
1720
+ /**
1721
+ * A component that renders a bar that the user can drag to resize.
1722
+ */
1723
+ export const FlexibleResizeBar: FC<IFlexibleRowResizerProps>;
1724
+
1725
+ }
1726
+ declare module "babylonjs-node-editor/components/layout/FlexibleTab" {
1727
+ import { FC } from "react";
1728
+ import { TabDrag } from "babylonjs-node-editor/components/layout/types";
1729
+ /**
1730
+ * Arguments for the FlexibleTab component.
1731
+ */
1732
+ export interface IFlexibleTabProps {
1733
+ /**
1734
+ * The tab's title.
1735
+ */
1736
+ title: string;
1737
+ /**
1738
+ * If the tab is currently selected or not
1739
+ */
1740
+ selected: boolean;
1741
+ /**
1742
+ * What happens when the user clicks on the tab
1743
+ */
1744
+ onClick: () => void;
1745
+ /**
1746
+ * The object that will be sent to the drag event
1747
+ */
1748
+ item: TabDrag;
1749
+ /**
1750
+ * What happens when the user drops another tab after this one
1751
+ */
1752
+ onTabDroppedAction: (item: TabDrag) => void;
1753
+ }
1754
+ /**
1755
+ * A component that renders a tab that the user can click
1756
+ * to activate or drag to reorder. It also listens for
1757
+ * drop events if the user wants to drop another tab
1758
+ * after it.
1759
+ */
1760
+ export const FlexibleTab: FC<IFlexibleTabProps>;
1761
+
1762
+ }
1763
+ declare module "babylonjs-node-editor/components/layout/FlexibleTabsContainer" {
1764
+ import { FC } from "react";
1765
+ import { LayoutTab } from "babylonjs-node-editor/components/layout/types";
1766
+ /**
1767
+ * Arguments for the TabsContainer component.
1768
+ */
1769
+ export interface IFlexibleTabsContainerProps {
1770
+ /**
1771
+ * The tabs to display
1772
+ */
1773
+ tabs: LayoutTab[];
1774
+ /**
1775
+ * Row index of component in layout
1776
+ */
1777
+ rowIndex: number;
1778
+ /**
1779
+ * Column index of component in layout
1780
+ */
1781
+ columnIndex: number;
1782
+ /**
1783
+ * Which tab is selected in the layout
1784
+ */
1785
+ selectedTab?: string;
1786
+ }
1787
+ /**
1788
+ * This component contains a set of tabs of which only one is visible at a time.
1789
+ * The tabs can also be dragged from and to different containers.
1790
+ */
1791
+ export const FlexibleTabsContainer: FC<IFlexibleTabsContainerProps>;
1792
+
1793
+ }
1794
+ declare module "babylonjs-node-editor/components/layout/LayoutContext" {
1795
+ /// <reference types="react" />
1796
+ import { Layout } from "babylonjs-node-editor/components/layout/types";
1797
+ export const LayoutContext: import("react").Context<{
1798
+ /**
1799
+ * The layout object
1800
+ */
1801
+ layout: Layout;
1802
+ /**
1803
+ * Function to set the layout object in the context
1804
+ */
1805
+ setLayout: (layout: Layout) => void;
1806
+ }>;
1807
+
1808
+ }
1809
+ declare module "babylonjs-node-editor/components/layout/types" {
1810
+ import { ReactElement } from "react";
1811
+ export type LayoutTab = {
1812
+ /**
1813
+ * Tab id
1814
+ */
1815
+ id: string;
1816
+ /**
1817
+ * React component rendered by tab
1818
+ */
1819
+ component: ReactElement;
1820
+ /**
1821
+ * Tab title
1822
+ */
1823
+ title: string;
1824
+ };
1825
+ export type LayoutTabsRow = {
1826
+ /**
1827
+ * row id
1828
+ */
1829
+ id: string;
1830
+ /**
1831
+ * row height in its containing column
1832
+ */
1833
+ height: string;
1834
+ /**
1835
+ * selected tab in row
1836
+ */
1837
+ selectedTab: string;
1838
+ /**
1839
+ * list of tabs contained in row
1840
+ */
1841
+ tabs: LayoutTab[];
1842
+ };
1843
+ export type LayoutColumn = {
1844
+ /**
1845
+ * column id
1846
+ */
1847
+ id: string;
1848
+ /**
1849
+ * column width in the grid
1850
+ */
1851
+ width: string;
1852
+ /**
1853
+ * column rows
1854
+ */
1855
+ rows: LayoutTabsRow[];
1856
+ };
1857
+ export type Layout = {
1858
+ /**
1859
+ * layout columns
1860
+ */
1861
+ columns?: LayoutColumn[];
1862
+ };
1863
+ export type TabDrag = {
1864
+ /**
1865
+ * row number of the tab being dragged
1866
+ */
1867
+ rowNumber: number;
1868
+ /**
1869
+ * column number of the tab being dragged
1870
+ */
1871
+ columnNumber: number;
1872
+ /**
1873
+ * the tabs being dragged
1874
+ */
1875
+ tabs: {
1876
+ /**
1877
+ * id of tab being dragged
1878
+ */
1879
+ id: string;
1880
+ }[];
1881
+ };
1882
+ export enum ElementTypes {
1883
+ RESIZE_BAR = "0",
1884
+ TAB = "1",
1885
+ TAB_GROUP = "2",
1886
+ NONE = "2"
1887
+ }
1888
+ export enum ResizeDirections {
1889
+ ROW = "row",
1890
+ COLUMN = "column"
1891
+ }
1892
+
1893
+ }
1894
+ declare module "babylonjs-node-editor/components/layout/utils" {
1895
+ import { Layout } from "babylonjs-node-editor/components/layout/types";
1896
+ /**
1897
+ * Given a column and row number in the layout, return the corresponding column/row
1898
+ * @param layout
1899
+ * @param column
1900
+ * @param row
1901
+ * @returns
1902
+ */
1903
+ export const getPosInLayout: (layout: Layout, column: number, row?: number | undefined) => import("babylonjs-node-editor/components/layout/types").LayoutTabsRow | import("./types").LayoutColumn;
1904
+ /**
1905
+ * Remove a row in position row, column from the layout, and redistribute heights of remaining rows
1906
+ * @param layout
1907
+ * @param column
1908
+ * @param row
1909
+ */
1910
+ export const removeLayoutRowAndRedistributePercentages: (layout: Layout, column: number, row: number) => void;
1911
+ /**
1912
+ * Add a percentage string to a number
1913
+ */
1914
+ export const addPercentageStringToNumber: (p1: string, p2: number) => number;
1915
+ /**
1916
+ * Parses a percentage string into a number
1917
+ * @param p the percentage string
1918
+ */
1919
+ export const parsePercentage: (p: string) => number;
1920
+
1561
1921
  }
1562
1922
  declare module "babylonjs-node-editor/components/lines/ColorLineComponent" {
1563
1923
  import * as React from "react";
@@ -2667,11 +3027,17 @@ export class GraphCanvasComponent extends React.Component<IGraphCanvasComponentP
2667
3027
  static readonly NodeWidth: number;
2668
3028
  private readonly _minZoom;
2669
3029
  private readonly _maxZoom;
3030
+ private _hostCanvasRef;
2670
3031
  private _hostCanvas;
3032
+ private _graphCanvasRef;
2671
3033
  private _graphCanvas;
3034
+ private _selectionContainerRef;
2672
3035
  private _selectionContainer;
3036
+ private _frameContainerRef;
2673
3037
  private _frameContainer;
3038
+ private _svgCanvasRef;
2674
3039
  private _svgCanvas;
3040
+ private _rootContainerRef;
2675
3041
  private _rootContainer;
2676
3042
  private _nodes;
2677
3043
  private _links;
@@ -2959,6 +3325,8 @@ export class GraphNode {
2959
3325
  private _displayManager;
2960
3326
  private _isVisible;
2961
3327
  private _enclosingFrameId;
3328
+ addClassToVisual(className: string): void;
3329
+ removeClassFromVisual(className: string): void;
2962
3330
  get isVisible(): boolean;
2963
3331
  set isVisible(value: boolean);
2964
3332
  private _upateNodePortNames;
@@ -4860,6 +5228,409 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
4860
5228
 
4861
5229
 
4862
5230
 
5231
+ }
5232
+ declare module BABYLON.NodeEditor {
5233
+
5234
+ }
5235
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5236
+ /**
5237
+ * Arguments for the DraggableIcon component.
5238
+ */
5239
+ export interface IDraggableIconProps {
5240
+ /**
5241
+ * Icon source
5242
+ */
5243
+ src: string;
5244
+ /**
5245
+ * Object that will be passed to the drag event
5246
+ */
5247
+ item: BABYLON.NodeEditor.SharedUIComponents.TabDrag;
5248
+ /**
5249
+ * Type of drag event
5250
+ */
5251
+ type: BABYLON.NodeEditor.SharedUIComponents.ElementTypes;
5252
+ }
5253
+ /**
5254
+ * An icon that can be dragged by the user
5255
+ */
5256
+ export var DraggableIcon: React.FC<IDraggableIconProps>;
5257
+
5258
+
5259
+
5260
+ }
5261
+ declare module BABYLON.NodeEditor {
5262
+
5263
+ }
5264
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5265
+ /**
5266
+ * Arguments for the Column component.
5267
+ */
5268
+ export interface IFlexibleColumnProps {
5269
+ /**
5270
+ * Width of column
5271
+ */
5272
+ width: string;
5273
+ }
5274
+ /**
5275
+ * This component represents a single column in the layout. It receives a width
5276
+ * that it occupies and the content to display
5277
+ * @param props
5278
+ * @returns
5279
+ */
5280
+ export var FlexibleColumn: React.FC<IFlexibleColumnProps>;
5281
+
5282
+
5283
+
5284
+ }
5285
+ declare module BABYLON.NodeEditor {
5286
+
5287
+ }
5288
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5289
+ /**
5290
+ * Arguments for the DragHandler component.
5291
+ */
5292
+ export interface IFlexibleDragHandlerProps {
5293
+ /**
5294
+ * The size of the containing element. Used to calculate the percentage of
5295
+ * space occupied by the component
5296
+ */
5297
+ containerSize: {
5298
+ width: number;
5299
+ height: number;
5300
+ };
5301
+ }
5302
+ /**
5303
+ * This component receives the drop events and updates the layout accordingly
5304
+ */
5305
+ export var FlexibleDragHandler: React.FC<IFlexibleDragHandlerProps>;
5306
+
5307
+
5308
+
5309
+ }
5310
+ declare module BABYLON.NodeEditor {
5311
+
5312
+ }
5313
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5314
+ /**
5315
+ * Arguments for the FlexibleDropZone component.
5316
+ */
5317
+ export interface IFlexibleDropZoneProps {
5318
+ /**
5319
+ * The row number of the component in the layout
5320
+ */
5321
+ rowNumber: number;
5322
+ /**
5323
+ * The column number of the component in the layout
5324
+ */
5325
+ columnNumber: number;
5326
+ }
5327
+ /**
5328
+ * This component contains the drag and drop zone for the resize bars that
5329
+ * allow redefining width and height of layout elements
5330
+ */
5331
+ export var FlexibleDropZone: React.FC<IFlexibleDropZoneProps>;
5332
+
5333
+
5334
+
5335
+ }
5336
+ declare module BABYLON.NodeEditor {
5337
+
5338
+ }
5339
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5340
+ /**
5341
+ * Arguments for the GridContainer component.
5342
+ */
5343
+ export interface IFlexibleGridContainerProps {
5344
+ }
5345
+ /**
5346
+ * Component responsible for mapping the layout to the actual components
5347
+ */
5348
+ export var FlexibleGridContainer: React.FC<IFlexibleGridContainerProps>;
5349
+
5350
+
5351
+
5352
+ }
5353
+ declare module BABYLON.NodeEditor {
5354
+
5355
+ }
5356
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5357
+ /**
5358
+ * Arguments for the BABYLON.NodeEditor.SharedUIComponents.Layout component.
5359
+ */
5360
+ export interface IFlexibleGridLayoutProps {
5361
+ /**
5362
+ * A definition of the layout which can be changed by the user
5363
+ */
5364
+ layoutDefinition: BABYLON.NodeEditor.SharedUIComponents.Layout;
5365
+ }
5366
+ /**
5367
+ * This component represents a grid layout that can be resized and rearranged
5368
+ * by the user.
5369
+ */
5370
+ export var FlexibleGridLayout: React.FC<IFlexibleGridLayoutProps>;
5371
+
5372
+
5373
+
5374
+ }
5375
+ declare module BABYLON.NodeEditor {
5376
+
5377
+ }
5378
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5379
+ /**
5380
+ * Arguments for the ResizeBar component.
5381
+ */
5382
+ export interface IFlexibleRowResizerProps {
5383
+ /**
5384
+ * Row number of the component that is being resized
5385
+ */
5386
+ rowNumber: number;
5387
+ /**
5388
+ * Column number of the component being resized
5389
+ */
5390
+ columnNumber: number;
5391
+ /**
5392
+ * If the resizing happens in row or column direction
5393
+ */
5394
+ direction: BABYLON.NodeEditor.SharedUIComponents.ResizeDirections;
5395
+ }
5396
+ /**
5397
+ * The item that will be sent to the drag event
5398
+ */
5399
+ export type ResizeItem = {
5400
+ /**
5401
+ * If the resizing happens in row or column direction
5402
+ */
5403
+ direction: BABYLON.NodeEditor.SharedUIComponents.ResizeDirections;
5404
+ /**
5405
+ * The row number of the component that is being resized
5406
+ */
5407
+ rowNumber: number;
5408
+ /**
5409
+ * the column number of the component being resized
5410
+ */
5411
+ columnNumber: number;
5412
+ };
5413
+ /**
5414
+ * A component that renders a bar that the user can drag to resize.
5415
+ */
5416
+ export var FlexibleResizeBar: React.FC<IFlexibleRowResizerProps>;
5417
+
5418
+
5419
+
5420
+ }
5421
+ declare module BABYLON.NodeEditor {
5422
+
5423
+ }
5424
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5425
+ /**
5426
+ * Arguments for the FlexibleTab component.
5427
+ */
5428
+ export interface IFlexibleTabProps {
5429
+ /**
5430
+ * The tab's title.
5431
+ */
5432
+ title: string;
5433
+ /**
5434
+ * If the tab is currently selected or not
5435
+ */
5436
+ selected: boolean;
5437
+ /**
5438
+ * What happens when the user clicks on the tab
5439
+ */
5440
+ onClick: () => void;
5441
+ /**
5442
+ * The object that will be sent to the drag event
5443
+ */
5444
+ item: BABYLON.NodeEditor.SharedUIComponents.TabDrag;
5445
+ /**
5446
+ * What happens when the user drops another tab after this one
5447
+ */
5448
+ onTabDroppedAction: (item: BABYLON.NodeEditor.SharedUIComponents.TabDrag) => void;
5449
+ }
5450
+ /**
5451
+ * A component that renders a tab that the user can click
5452
+ * to activate or drag to reorder. It also listens for
5453
+ * drop events if the user wants to drop another tab
5454
+ * after it.
5455
+ */
5456
+ export var FlexibleTab: React.FC<IFlexibleTabProps>;
5457
+
5458
+
5459
+
5460
+ }
5461
+ declare module BABYLON.NodeEditor {
5462
+
5463
+ }
5464
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5465
+ /**
5466
+ * Arguments for the TabsContainer component.
5467
+ */
5468
+ export interface IFlexibleTabsContainerProps {
5469
+ /**
5470
+ * The tabs to display
5471
+ */
5472
+ tabs: BABYLON.NodeEditor.SharedUIComponents.LayoutTab[];
5473
+ /**
5474
+ * Row index of component in layout
5475
+ */
5476
+ rowIndex: number;
5477
+ /**
5478
+ * Column index of component in layout
5479
+ */
5480
+ columnIndex: number;
5481
+ /**
5482
+ * Which tab is selected in the layout
5483
+ */
5484
+ selectedTab?: string;
5485
+ }
5486
+ /**
5487
+ * This component contains a set of tabs of which only one is visible at a time.
5488
+ * The tabs can also be dragged from and to different containers.
5489
+ */
5490
+ export var FlexibleTabsContainer: React.FC<IFlexibleTabsContainerProps>;
5491
+
5492
+
5493
+
5494
+ }
5495
+ declare module BABYLON.NodeEditor {
5496
+
5497
+ }
5498
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5499
+ /// <reference types="react" />
5500
+ export var LayoutContext: import("react").Context<{
5501
+ /**
5502
+ * The layout object
5503
+ */
5504
+ layout: BABYLON.NodeEditor.SharedUIComponents.Layout;
5505
+ /**
5506
+ * Function to set the layout object in the context
5507
+ */
5508
+ setLayout: (layout: BABYLON.NodeEditor.SharedUIComponents.Layout) => void;
5509
+ }>;
5510
+
5511
+
5512
+
5513
+ }
5514
+ declare module BABYLON.NodeEditor {
5515
+
5516
+ }
5517
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5518
+ export type LayoutTab = {
5519
+ /**
5520
+ * Tab id
5521
+ */
5522
+ id: string;
5523
+ /**
5524
+ * React component rendered by tab
5525
+ */
5526
+ component: React.ReactElement;
5527
+ /**
5528
+ * Tab title
5529
+ */
5530
+ title: string;
5531
+ };
5532
+ export type LayoutTabsRow = {
5533
+ /**
5534
+ * row id
5535
+ */
5536
+ id: string;
5537
+ /**
5538
+ * row height in its containing column
5539
+ */
5540
+ height: string;
5541
+ /**
5542
+ * selected tab in row
5543
+ */
5544
+ selectedTab: string;
5545
+ /**
5546
+ * list of tabs contained in row
5547
+ */
5548
+ tabs: LayoutTab[];
5549
+ };
5550
+ export type LayoutColumn = {
5551
+ /**
5552
+ * column id
5553
+ */
5554
+ id: string;
5555
+ /**
5556
+ * column width in the grid
5557
+ */
5558
+ width: string;
5559
+ /**
5560
+ * column rows
5561
+ */
5562
+ rows: LayoutTabsRow[];
5563
+ };
5564
+ export type Layout = {
5565
+ /**
5566
+ * layout columns
5567
+ */
5568
+ columns?: LayoutColumn[];
5569
+ };
5570
+ export type TabDrag = {
5571
+ /**
5572
+ * row number of the tab being dragged
5573
+ */
5574
+ rowNumber: number;
5575
+ /**
5576
+ * column number of the tab being dragged
5577
+ */
5578
+ columnNumber: number;
5579
+ /**
5580
+ * the tabs being dragged
5581
+ */
5582
+ tabs: {
5583
+ /**
5584
+ * id of tab being dragged
5585
+ */
5586
+ id: string;
5587
+ }[];
5588
+ };
5589
+ export enum ElementTypes {
5590
+ RESIZE_BAR = "0",
5591
+ TAB = "1",
5592
+ TAB_GROUP = "2",
5593
+ NONE = "2"
5594
+ }
5595
+ export enum ResizeDirections {
5596
+ ROW = "row",
5597
+ COLUMN = "column"
5598
+ }
5599
+
5600
+
5601
+
5602
+ }
5603
+ declare module BABYLON.NodeEditor {
5604
+
5605
+ }
5606
+ declare module BABYLON.NodeEditor.SharedUIComponents {
5607
+ /**
5608
+ * Given a column and row number in the layout, return the corresponding column/row
5609
+ * @param layout
5610
+ * @param column
5611
+ * @param row
5612
+ * @returns
5613
+ */
5614
+ export const getPosInLayout: (layout: BABYLON.NodeEditor.SharedUIComponents.Layout, column: number, row?: number | undefined) => LayoutColumn;
5615
+ /**
5616
+ * Remove a row in position row, column from the layout, and redistribute heights of remaining rows
5617
+ * @param layout
5618
+ * @param column
5619
+ * @param row
5620
+ */
5621
+ export const removeLayoutRowAndRedistributePercentages: (layout: BABYLON.NodeEditor.SharedUIComponents.Layout, column: number, row: number) => void;
5622
+ /**
5623
+ * Add a percentage string to a number
5624
+ */
5625
+ export const addPercentageStringToNumber: (p1: string, p2: number) => number;
5626
+ /**
5627
+ * Parses a percentage string into a number
5628
+ * @param p the percentage string
5629
+ */
5630
+ export const parsePercentage: (p: string) => number;
5631
+
5632
+
5633
+
4863
5634
  }
4864
5635
  declare module BABYLON.NodeEditor {
4865
5636
 
@@ -6042,11 +6813,17 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
6042
6813
  static readonly NodeWidth = 100;
6043
6814
  private readonly _minZoom;
6044
6815
  private readonly _maxZoom;
6816
+ private _hostCanvasRef;
6045
6817
  private _hostCanvas;
6818
+ private _graphCanvasRef;
6046
6819
  private _graphCanvas;
6820
+ private _selectionContainerRef;
6047
6821
  private _selectionContainer;
6822
+ private _frameContainerRef;
6048
6823
  private _frameContainer;
6824
+ private _svgCanvasRef;
6049
6825
  private _svgCanvas;
6826
+ private _rootContainerRef;
6050
6827
  private _rootContainer;
6051
6828
  private _nodes;
6052
6829
  private _links;
@@ -6329,6 +7106,8 @@ declare module BABYLON.NodeEditor.SharedUIComponents {
6329
7106
  private _displayManager;
6330
7107
  private _isVisible;
6331
7108
  private _enclosingFrameId;
7109
+ addClassToVisual(className: string): void;
7110
+ removeClassFromVisual(className: string): void;
6332
7111
  get isVisible(): boolean;
6333
7112
  set isVisible(value: boolean);
6334
7113
  private _upateNodePortNames;