@aptre/flex-layout 0.1.9 → 0.2.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.
Files changed (111) hide show
  1. package/README.md +1 -0
  2. package/dist/index.mjs +32 -8
  3. package/package.json +8 -3
  4. package/style/_base.scss +3 -1
  5. package/style/dark.css +4 -1
  6. package/style/dark.css.map +1 -1
  7. package/style/dark.scss +1 -0
  8. package/style/gray.css +5 -2
  9. package/style/gray.css.map +1 -1
  10. package/style/gray.scss +2 -1
  11. package/style/light.css +5 -2
  12. package/style/light.css.map +1 -1
  13. package/style/light.scss +2 -1
  14. package/style/underline.css +5 -2
  15. package/style/underline.css.map +1 -1
  16. package/style/underline.scss +2 -1
  17. package/typedoc/assets/navigation.js +1 -1
  18. package/typedoc/assets/search.js +1 -1
  19. package/typedoc/assets/style.css +11 -0
  20. package/typedoc/classes/Action.html +3 -105
  21. package/typedoc/classes/Actions.html +48 -465
  22. package/typedoc/classes/BorderNode.html +4 -318
  23. package/typedoc/classes/BorderSet.html +2 -84
  24. package/typedoc/classes/DockLocation.html +3 -128
  25. package/typedoc/classes/DragDrop.html +3 -207
  26. package/typedoc/classes/DropInfo.html +3 -123
  27. package/typedoc/classes/Layout.html +43 -516
  28. package/typedoc/classes/Model.html +25 -359
  29. package/typedoc/classes/Node.html +2 -183
  30. package/typedoc/classes/Orientation.html +3 -117
  31. package/typedoc/classes/Rect.html +4 -269
  32. package/typedoc/classes/RowNode.html +3 -233
  33. package/typedoc/classes/SplitterNode.html +3 -200
  34. package/typedoc/classes/TabNode.html +6 -331
  35. package/typedoc/classes/TabSetNode.html +4 -394
  36. package/typedoc/enums/CLASSES.html +2 -381
  37. package/typedoc/enums/I18nLabel.html +2 -121
  38. package/typedoc/enums/ICloseType.html +2 -85
  39. package/typedoc/index.html +5 -74
  40. package/typedoc/interfaces/IBorderAttributes.html +2 -127
  41. package/typedoc/interfaces/ICustomDropDestination.html +2 -121
  42. package/typedoc/interfaces/IDraggable.html +1 -67
  43. package/typedoc/interfaces/IDropTarget.html +1 -68
  44. package/typedoc/interfaces/IFontValues.html +2 -93
  45. package/typedoc/interfaces/IGlobalAttributes.html +2 -261
  46. package/typedoc/interfaces/IIcons.html +3 -181
  47. package/typedoc/interfaces/IJsonBorderNode.html +2 -147
  48. package/typedoc/interfaces/IJsonModel.html +2 -89
  49. package/typedoc/interfaces/IJsonRowNode.html +2 -108
  50. package/typedoc/interfaces/IJsonTabNode.html +3 -174
  51. package/typedoc/interfaces/IJsonTabSetNode.html +2 -223
  52. package/typedoc/interfaces/ILayoutProps.html +2 -314
  53. package/typedoc/interfaces/ILayoutState.html +2 -109
  54. package/typedoc/interfaces/IRowAttributes.html +2 -99
  55. package/typedoc/interfaces/ITabAttributes.html +3 -155
  56. package/typedoc/interfaces/ITabRenderValues.html +2 -93
  57. package/typedoc/interfaces/ITabSetAttributes.html +2 -191
  58. package/typedoc/interfaces/ITabSetRenderValues.html +2 -101
  59. package/typedoc/interfaces/ITitleObject.html +2 -85
  60. package/typedoc/types/CustomDragCallback.html +1 -80
  61. package/typedoc/types/DragRectRenderCallback.html +1 -76
  62. package/typedoc/types/FloatingTabPlaceholderRenderCallback.html +1 -86
  63. package/typedoc/types/IBorderLocation.html +1 -59
  64. package/typedoc/types/IInsets.html +1 -70
  65. package/typedoc/types/ITabLocation.html +1 -59
  66. package/typedoc/types/IconFactory.html +1 -72
  67. package/typedoc/types/NodeMouseEvent.html +1 -74
  68. package/typedoc/types/ShowOverflowMenuCallback.html +1 -94
  69. package/typedoc/types/TabSetPlaceHolderCallback.html +1 -72
  70. package/typedoc/types/TitleFactory.html +1 -72
  71. package/declarations/Attribute.d.ts +0 -1
  72. package/declarations/AttributeDefinitions.d.ts +0 -1
  73. package/declarations/DockLocation.d.ts +0 -12
  74. package/declarations/DragDrop.d.ts +0 -29
  75. package/declarations/DropInfo.d.ts +0 -18
  76. package/declarations/I18nLabel.d.ts +0 -14
  77. package/declarations/Orientation.d.ts +0 -7
  78. package/declarations/PopupMenu.d.ts +0 -1
  79. package/declarations/Rect.d.ts +0 -31
  80. package/declarations/Types.d.ts +0 -78
  81. package/declarations/index.d.ts +0 -22
  82. package/declarations/model/Action.d.ts +0 -5
  83. package/declarations/model/Actions.d.ts +0 -122
  84. package/declarations/model/BorderNode.d.ts +0 -34
  85. package/declarations/model/BorderSet.d.ts +0 -4
  86. package/declarations/model/ICloseType.d.ts +0 -5
  87. package/declarations/model/IDraggable.d.ts +0 -1
  88. package/declarations/model/IDropTarget.d.ts +0 -1
  89. package/declarations/model/IJsonModel.d.ts +0 -145
  90. package/declarations/model/Model.d.ts +0 -90
  91. package/declarations/model/Node.d.ts +0 -27
  92. package/declarations/model/RowNode.d.ts +0 -11
  93. package/declarations/model/SplitterNode.d.ts +0 -5
  94. package/declarations/model/TabNode.d.ts +0 -36
  95. package/declarations/model/TabSetNode.d.ts +0 -43
  96. package/declarations/model/Utils.d.ts +0 -1
  97. package/declarations/view/BorderButton.d.ts +0 -1
  98. package/declarations/view/BorderTabSet.d.ts +0 -1
  99. package/declarations/view/ErrorBoundary.d.ts +0 -1
  100. package/declarations/view/FloatingWindow.d.ts +0 -1
  101. package/declarations/view/FloatingWindowTab.d.ts +0 -1
  102. package/declarations/view/Icons.d.ts +0 -6
  103. package/declarations/view/Layout.d.ts +0 -208
  104. package/declarations/view/Splitter.d.ts +0 -1
  105. package/declarations/view/Tab.d.ts +0 -1
  106. package/declarations/view/TabButton.d.ts +0 -1
  107. package/declarations/view/TabButtonStamp.d.ts +0 -1
  108. package/declarations/view/TabFloating.d.ts +0 -1
  109. package/declarations/view/TabOverflowHook.d.ts +0 -1
  110. package/declarations/view/TabSet.d.ts +0 -1
  111. package/declarations/view/Utils.d.ts +0 -1
@@ -1,145 +0,0 @@
1
- import { ICloseType } from "./ICloseType";
2
- export type IBorderLocation = "top" | "bottom" | "left" | "right";
3
- export type ITabLocation = "top" | "bottom";
4
- export type IInsets = {
5
- top: number;
6
- right: number;
7
- bottom: number;
8
- left: number;
9
- };
10
- export interface IJsonModel {
11
- global?: IGlobalAttributes;
12
- borders?: IJsonBorderNode[];
13
- layout: IJsonRowNode;
14
- }
15
- export interface IJsonBorderNode extends IBorderAttributes {
16
- location: IBorderLocation;
17
- children: IJsonTabNode[];
18
- }
19
- export interface IJsonRowNode extends IRowAttributes {
20
- children: (IJsonRowNode | IJsonTabSetNode)[];
21
- }
22
- export interface IJsonTabSetNode extends ITabSetAttributes {
23
- active?: boolean;
24
- maximized?: boolean;
25
- children: IJsonTabNode[];
26
- }
27
- export interface IJsonTabNode extends ITabAttributes {}
28
- export interface IGlobalAttributes {
29
- borderAutoSelectTabWhenClosed?: boolean;
30
- borderAutoSelectTabWhenOpen?: boolean;
31
- borderBarSize?: number;
32
- borderClassName?: string;
33
- borderEnableAutoHide?: boolean;
34
- borderEnableDrop?: boolean;
35
- borderMinSize?: number;
36
- borderSize?: number;
37
- enableEdgeDock?: boolean;
38
- enableRotateBorderIcons?: boolean;
39
- enableUseVisibility?: boolean;
40
- legacyOverflowMenu?: boolean;
41
- marginInsets?: IInsets;
42
- rootOrientationVertical?: boolean;
43
- splitterExtra?: number;
44
- splitterSize?: number;
45
- tabBorderHeight?: number;
46
- tabBorderWidth?: number;
47
- tabClassName?: string;
48
- tabCloseType?: ICloseType;
49
- tabContentClassName?: string;
50
- tabDragSpeed?: number;
51
- tabEnableClose?: boolean;
52
- tabEnableDrag?: boolean;
53
- tabEnableFloat?: boolean;
54
- tabEnableRename?: boolean;
55
- tabEnableRenderOnDemand?: boolean;
56
- tabIcon?: string;
57
- tabSetAutoSelectTab?: boolean;
58
- tabSetBorderInsets?: IInsets;
59
- tabSetClassNameHeader?: string;
60
- tabSetClassNameTabStrip?: string;
61
- tabSetEnableClose?: boolean;
62
- tabSetEnableDeleteWhenEmpty?: boolean;
63
- tabSetEnableDivide?: boolean;
64
- tabSetEnableDrag?: boolean;
65
- tabSetEnableDrop?: boolean;
66
- tabSetEnableMaximize?: boolean;
67
- tabSetEnableTabStrip?: boolean;
68
- tabSetHeaderHeight?: number;
69
- tabSetMarginInsets?: IInsets;
70
- tabSetMinHeight?: number;
71
- tabSetMinWidth?: number;
72
- tabSetTabLocation?: ITabLocation;
73
- tabSetTabStripHeight?: number;
74
- }
75
- export interface IRowAttributes {
76
- height?: number;
77
- id?: string;
78
- type: "row";
79
- weight?: number;
80
- width?: number;
81
- }
82
- export interface ITabSetAttributes {
83
- autoSelectTab?: boolean;
84
- borderInsets?: IInsets;
85
- classNameHeader?: string;
86
- classNameTabStrip?: string;
87
- config?: any;
88
- enableClose?: boolean;
89
- enableDeleteWhenEmpty?: boolean;
90
- enableDivide?: boolean;
91
- enableDrag?: boolean;
92
- enableDrop?: boolean;
93
- enableMaximize?: boolean;
94
- enableTabStrip?: boolean;
95
- headerHeight?: number;
96
- height?: number;
97
- id?: string;
98
- marginInsets?: IInsets;
99
- minHeight?: number;
100
- minWidth?: number;
101
- name?: string;
102
- selected?: number;
103
- tabLocation?: ITabLocation;
104
- tabStripHeight?: number;
105
- type: "tabset";
106
- weight?: number;
107
- width?: number;
108
- maximized?: boolean;
109
- active?: boolean;
110
- }
111
- export interface ITabAttributes {
112
- altName?: string;
113
- borderHeight?: number;
114
- borderWidth?: number;
115
- className?: string;
116
- closeType?: ICloseType;
117
- component?: string;
118
- config?: any;
119
- contentClassName?: string;
120
- enableClose?: boolean;
121
- enableDrag?: boolean;
122
- enableFloat?: boolean;
123
- enableRename?: boolean;
124
- enableRenderOnDemand?: boolean;
125
- floating?: boolean;
126
- helpText?: string;
127
- icon?: string;
128
- id?: string;
129
- name?: string;
130
- type?: string;
131
- }
132
- export interface IBorderAttributes {
133
- autoSelectTabWhenClosed?: boolean;
134
- autoSelectTabWhenOpen?: boolean;
135
- barSize?: number;
136
- className?: string;
137
- config?: any;
138
- enableAutoHide?: boolean;
139
- enableDrop?: boolean;
140
- minSize?: number;
141
- selected?: number;
142
- show?: boolean;
143
- size?: number;
144
- type: "border";
145
- }
@@ -1,90 +0,0 @@
1
- import { DropInfo } from "../DropInfo";
2
- import { Action } from "./Action";
3
- import { BorderSet } from "./BorderSet";
4
- import { IJsonModel, ITabSetAttributes } from "./IJsonModel";
5
- import { Node } from "./Node";
6
- import { RowNode } from "./RowNode";
7
- import { TabNode } from "./TabNode";
8
- import { TabSetNode } from "./TabSetNode";
9
- /**
10
- * Class containing the Tree of Nodes used by the FlexLayout component
11
- */
12
- export declare class Model {
13
- /**
14
- * Loads the model from the given json object
15
- * @param json the json model to load
16
- * @returns {Model} a new Model object
17
- */
18
- static fromJson(json: IJsonModel): Model;
19
- /**
20
- * Get the currently active tabset node
21
- */
22
- getActiveTabset(): TabSetNode | undefined;
23
- /**
24
- * Get the currently maximized tabset node
25
- */
26
- getMaximizedTabset(): TabSetNode | undefined;
27
- /**
28
- * Gets the root RowNode of the model
29
- * @returns {RowNode}
30
- */
31
- getRoot(): RowNode;
32
- isRootOrientationVertical(): boolean;
33
- isUseVisibility(): boolean;
34
- isEnableRotateBorderIcons(): boolean;
35
- /**
36
- * Gets the
37
- * @returns {BorderSet|*}
38
- */
39
- getBorderSet(): BorderSet;
40
- /**
41
- * Visits all the nodes in the model and calls the given function for each
42
- * @param fn a function that takes visited node and a integer level as parameters
43
- */
44
- visitNodes(fn: (node: Node, level: number) => void): void;
45
- /**
46
- * Gets a node by its id
47
- * @param id the id to find
48
- */
49
- getNodeById(id: string): Node | undefined;
50
- /**
51
- * Finds the first/top left tab set of the given node.
52
- * @param node The top node you want to begin searching from, deafults to the root node
53
- * @returns The first Tab Set
54
- */
55
- getFirstTabSet(node?: Node): Node;
56
- /**
57
- * Update the node tree by performing the given action,
58
- * Actions should be generated via static methods on the Actions class
59
- * @param action the action to perform
60
- * @returns added Node for Actions.addNode; undefined otherwise
61
- */
62
- doAction(action: Action): Node | undefined;
63
- /**
64
- * Converts the model to a json object
65
- * @returns {IJsonModel} json object that represents this model
66
- */
67
- toJson(): IJsonModel;
68
- getSplitterSize(): number;
69
- isLegacyOverflowMenu(): boolean;
70
- getSplitterExtra(): number;
71
- isEnableEdgeDock(): boolean;
72
- /**
73
- * Sets a function to allow/deny dropping a node
74
- * @param onAllowDrop function that takes the drag node and DropInfo and returns true if the drop is allowed
75
- */
76
- setOnAllowDrop(
77
- onAllowDrop: (dragNode: Node, dropInfo: DropInfo) => boolean
78
- ): void;
79
- /**
80
- * set callback called when a new TabSet is created.
81
- * The tabNode can be undefined if it's the auto created first tabset in the root row (when the last
82
- * tab is deleted, the root tabset can be recreated)
83
- * @param onCreateTabSet
84
- */
85
- setOnCreateTabSet(
86
- onCreateTabSet: (tabNode?: TabNode) => ITabSetAttributes
87
- ): void;
88
- static toTypescriptInterfaces(): void;
89
- toString(): string;
90
- }
@@ -1,27 +0,0 @@
1
- import { Orientation } from "../Orientation";
2
- import { Rect } from "../Rect";
3
- import {
4
- IJsonBorderNode,
5
- IJsonRowNode,
6
- IJsonTabNode,
7
- IJsonTabSetNode,
8
- } from "./IJsonModel";
9
- import { Model } from "./Model";
10
- export declare abstract class Node {
11
- getId(): string;
12
- getModel(): Model;
13
- getType(): string;
14
- getParent(): Node | undefined;
15
- getChildren(): Node[];
16
- getRect(): Rect;
17
- isVisible(): boolean;
18
- getOrientation(): Orientation;
19
- setEventListener(event: string, callback: (params: any) => void): void;
20
- removeEventListener(event: string): void;
21
- abstract toJson():
22
- | IJsonRowNode
23
- | IJsonBorderNode
24
- | IJsonTabSetNode
25
- | IJsonTabNode
26
- | undefined;
27
- }
@@ -1,11 +0,0 @@
1
- import { IDropTarget } from "./IDropTarget";
2
- import { IJsonRowNode } from "./IJsonModel";
3
- import { Node } from "./Node";
4
- export declare class RowNode extends Node implements IDropTarget {
5
- static readonly TYPE = "row";
6
- getWeight(): number;
7
- getWidth(): number | undefined;
8
- getHeight(): number | undefined;
9
- toJson(): IJsonRowNode;
10
- isEnableDrop(): boolean;
11
- }
@@ -1,5 +0,0 @@
1
- import { Node } from "./Node";
2
- export declare class SplitterNode extends Node {
3
- static readonly TYPE: string;
4
- toJson(): undefined;
5
- }
@@ -1,36 +0,0 @@
1
- import { Rect } from "../Rect";
2
- import { IDraggable } from "./IDraggable";
3
- import { IJsonTabNode } from "./IJsonModel";
4
- import { Node } from "./Node";
5
- export declare class TabNode extends Node implements IDraggable {
6
- static readonly TYPE = "tab";
7
- getWindow(): Window | undefined;
8
- getTabRect(): Rect | undefined;
9
- getName(): string;
10
- getHelpText(): string | undefined;
11
- getComponent(): string | undefined;
12
- /**
13
- * Returns the config attribute that can be used to store node specific data that
14
- * WILL be saved to the json. The config attribute should be changed via the action Actions.updateNodeAttributes rather
15
- * than directly, for example:
16
- * this.state.model.doAction(
17
- * FlexLayout.Actions.updateNodeAttributes(node.getId(), {config:myConfigObject}));
18
- */
19
- getConfig(): any;
20
- /**
21
- * Returns an object that can be used to store transient node specific data that will
22
- * NOT be saved in the json.
23
- */
24
- getExtraData(): Record<string, any>;
25
- isFloating(): boolean;
26
- getIcon(): string | undefined;
27
- isEnableClose(): boolean;
28
- getCloseType(): number;
29
- isEnableFloat(): boolean;
30
- isEnableDrag(): boolean;
31
- isEnableRename(): boolean;
32
- getClassName(): string | undefined;
33
- getContentClassName(): string | undefined;
34
- isEnableRenderOnDemand(): boolean;
35
- toJson(): IJsonTabNode;
36
- }
@@ -1,43 +0,0 @@
1
- import { IDraggable } from "./IDraggable";
2
- import { IDropTarget } from "./IDropTarget";
3
- import { IJsonTabSetNode } from "./IJsonModel";
4
- import { Node } from "./Node";
5
- export declare class TabSetNode
6
- extends Node
7
- implements IDraggable, IDropTarget
8
- {
9
- static readonly TYPE = "tabset";
10
- getName(): string | undefined;
11
- getSelected(): number;
12
- getSelectedNode(): Node | undefined;
13
- getWeight(): number;
14
- getWidth(): number | undefined;
15
- getMinWidth(): number;
16
- getHeight(): number | undefined;
17
- getMinHeight(): number;
18
- /**
19
- * Returns the config attribute that can be used to store node specific data that
20
- * WILL be saved to the json. The config attribute should be changed via the action Actions.updateNodeAttributes rather
21
- * than directly, for example:
22
- * this.state.model.doAction(
23
- * FlexLayout.Actions.updateNodeAttributes(node.getId(), {config:myConfigObject}));
24
- */
25
- getConfig(): any;
26
- isMaximized(): boolean;
27
- isActive(): boolean;
28
- isEnableDeleteWhenEmpty(): boolean;
29
- isEnableDrop(): boolean;
30
- isEnableDrag(): boolean;
31
- isEnableDivide(): boolean;
32
- isEnableMaximize(): boolean;
33
- isEnableClose(): boolean;
34
- canMaximize(): boolean;
35
- isEnableTabStrip(): boolean;
36
- isAutoSelectTab(): boolean;
37
- getClassNameTabStrip(): string | undefined;
38
- getClassNameHeader(): string | undefined;
39
- getHeaderHeight(): number;
40
- getTabStripHeight(): number;
41
- getTabLocation(): string;
42
- toJson(): IJsonTabSetNode;
43
- }
@@ -1 +0,0 @@
1
- export declare function randomUUID(): any;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,6 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const CloseIcon: () => JSX.Element;
3
- export declare const MaximizeIcon: () => JSX.Element;
4
- export declare const OverflowIcon: () => JSX.Element;
5
- export declare const PopoutIcon: () => JSX.Element;
6
- export declare const RestoreIcon: () => JSX.Element;
@@ -1,208 +0,0 @@
1
- import * as React from "react";
2
- import { DockLocation } from "../DockLocation";
3
- import { I18nLabel } from "../I18nLabel";
4
- import { Action } from "../model/Action";
5
- import { BorderNode } from "../model/BorderNode";
6
- import { Model } from "../model/Model";
7
- import { Node } from "../model/Node";
8
- import { TabNode } from "../model/TabNode";
9
- import { TabSetNode } from "../model/TabSetNode";
10
- import { Rect } from "../Rect";
11
- import { IJsonTabNode } from "../model/IJsonModel";
12
- export type CustomDragCallback = (
13
- dragging: TabNode | IJsonTabNode,
14
- over: TabNode,
15
- x: number,
16
- y: number,
17
- location: DockLocation
18
- ) => void;
19
- export type DragRectRenderCallback = (
20
- content: React.ReactElement | undefined,
21
- node?: Node,
22
- json?: IJsonTabNode
23
- ) => React.ReactElement | undefined;
24
- export type FloatingTabPlaceholderRenderCallback = (
25
- dockPopout: () => void,
26
- showPopout: () => void
27
- ) => React.ReactElement | undefined;
28
- export type NodeMouseEvent = (
29
- node: TabNode | TabSetNode | BorderNode,
30
- event: React.MouseEvent<HTMLElement, MouseEvent>
31
- ) => void;
32
- export type ShowOverflowMenuCallback = (
33
- node: TabSetNode | BorderNode,
34
- mouseEvent: React.MouseEvent<HTMLElement, MouseEvent>,
35
- items: {
36
- index: number;
37
- node: TabNode;
38
- }[],
39
- onSelect: (item: { index: number; node: TabNode }) => void
40
- ) => void;
41
- export type TabSetPlaceHolderCallback = (node: TabSetNode) => React.ReactNode;
42
- export type IconFactory = (node: TabNode) => React.ReactNode;
43
- export type TitleFactory = (node: TabNode) => ITitleObject | React.ReactNode;
44
- export interface ILayoutProps {
45
- model: Model;
46
- factory: (node: TabNode) => React.ReactNode;
47
- font?: IFontValues;
48
- fontFamily?: string;
49
- iconFactory?: IconFactory;
50
- titleFactory?: TitleFactory;
51
- icons?: IIcons;
52
- onAction?: (action: Action) => Action | undefined;
53
- onRenderTab?: (node: TabNode, renderValues: ITabRenderValues) => void;
54
- onRenderTabSet?: (
55
- tabSetNode: TabSetNode | BorderNode,
56
- renderValues: ITabSetRenderValues
57
- ) => void;
58
- onModelChange?: (model: Model, action: Action) => void;
59
- onExternalDrag?: (event: React.DragEvent<HTMLDivElement>) =>
60
- | undefined
61
- | {
62
- dragText: string;
63
- json: any;
64
- onDrop?: (node?: Node, event?: Event) => void;
65
- };
66
- classNameMapper?: (defaultClassName: string) => string;
67
- i18nMapper?: (id: I18nLabel, param?: string) => string | undefined;
68
- supportsPopout?: boolean | undefined;
69
- popoutURL?: string | undefined;
70
- realtimeResize?: boolean | undefined;
71
- onTabDrag?: (
72
- dragging: TabNode | IJsonTabNode,
73
- over: TabNode,
74
- x: number,
75
- y: number,
76
- location: DockLocation,
77
- refresh: () => void
78
- ) =>
79
- | undefined
80
- | {
81
- x: number;
82
- y: number;
83
- width: number;
84
- height: number;
85
- callback: CustomDragCallback;
86
- invalidated?: () => void;
87
- cursor?: string | undefined;
88
- };
89
- onRenderDragRect?: DragRectRenderCallback;
90
- onRenderFloatingTabPlaceholder?: FloatingTabPlaceholderRenderCallback;
91
- onContextMenu?: NodeMouseEvent;
92
- onAuxMouseClick?: NodeMouseEvent;
93
- onShowOverflowMenu?: ShowOverflowMenuCallback;
94
- onTabSetPlaceHolder?: TabSetPlaceHolderCallback;
95
- }
96
- export interface IFontValues {
97
- size?: string;
98
- family?: string;
99
- style?: string;
100
- weight?: string;
101
- }
102
- export interface ITabSetRenderValues {
103
- headerContent?: React.ReactNode;
104
- centerContent?: React.ReactNode;
105
- stickyButtons: React.ReactNode[];
106
- buttons: React.ReactNode[];
107
- headerButtons: React.ReactNode[];
108
- overflowPosition: number | undefined;
109
- }
110
- export interface ITabRenderValues {
111
- leading: React.ReactNode;
112
- content: React.ReactNode;
113
- name: string;
114
- buttons: React.ReactNode[];
115
- }
116
- export interface ITitleObject {
117
- titleContent: React.ReactNode;
118
- name: string;
119
- }
120
- export interface ILayoutState {
121
- rect: Rect;
122
- calculatedHeaderBarSize: number;
123
- calculatedTabBarSize: number;
124
- calculatedBorderBarSize: number;
125
- editingTab?: TabNode;
126
- showHiddenBorder: DockLocation;
127
- portal?: React.ReactPortal;
128
- showEdges?: boolean;
129
- }
130
- export interface IIcons {
131
- close?: React.ReactNode | ((tabNode: TabNode) => React.ReactNode);
132
- closeTabset?:
133
- | React.ReactNode
134
- | ((tabSetNode: TabSetNode) => React.ReactNode);
135
- popout?: React.ReactNode | ((tabNode: TabNode) => React.ReactNode);
136
- maximize?: React.ReactNode | ((tabSetNode: TabSetNode) => React.ReactNode);
137
- restore?: React.ReactNode | ((tabSetNode: TabSetNode) => React.ReactNode);
138
- more?:
139
- | React.ReactNode
140
- | ((
141
- tabSetNode: TabSetNode | BorderNode,
142
- hiddenTabs: {
143
- node: TabNode;
144
- index: number;
145
- }[]
146
- ) => React.ReactNode);
147
- }
148
- export interface ICustomDropDestination {
149
- rect: Rect;
150
- callback: CustomDragCallback;
151
- invalidated: (() => void) | undefined;
152
- dragging: TabNode | IJsonTabNode;
153
- over: TabNode;
154
- x: number;
155
- y: number;
156
- location: DockLocation;
157
- cursor: string | undefined;
158
- }
159
- /**
160
- * A React component that hosts a multi-tabbed layout
161
- */
162
- export declare class Layout extends React.Component<
163
- ILayoutProps,
164
- ILayoutState
165
- > {
166
- constructor(props: ILayoutProps);
167
- /**
168
- * Adds a new tab to the given tabset
169
- * @param tabsetId the id of the tabset where the new tab will be added
170
- * @param json the json for the new tab node
171
- */
172
- addTabToTabSet(tabsetId: string, json: IJsonTabNode): void;
173
- /**
174
- * Adds a new tab to the active tabset (if there is one)
175
- * @param json the json for the new tab node
176
- */
177
- addTabToActiveTabSet(json: IJsonTabNode): void;
178
- /**
179
- * Adds a new tab by dragging a labeled panel to the drop location, dragging starts immediatelly
180
- * @param dragText the text to show on the drag panel
181
- * @param json the json for the new tab node
182
- * @param onDrop a callback to call when the drag is complete (node and event will be undefined if the drag was cancelled)
183
- */
184
- addTabWithDragAndDrop(
185
- dragText: string | undefined,
186
- json: IJsonTabNode,
187
- onDrop?: (node?: Node, event?: Event) => void
188
- ): void;
189
- /**
190
- * Move a tab/tabset using drag and drop
191
- * @param node the tab or tabset to drag
192
- * @param dragText the text to show on the drag panel
193
- */
194
- moveTabWithDragAndDrop(node: TabNode | TabSetNode, dragText?: string): void;
195
- /**
196
- * Adds a new tab by dragging a labeled panel to the drop location, dragging starts when you
197
- * mouse down on the panel
198
- *
199
- * @param dragText the text to show on the drag panel
200
- * @param json the json for the new tab node
201
- * @param onDrop a callback to call when the drag is complete (node and event will be undefined if the drag was cancelled)
202
- */
203
- addTabWithDragAndDropIndirect(
204
- dragText: string | undefined,
205
- json: IJsonTabNode,
206
- onDrop?: (node?: Node, event?: Event) => void
207
- ): void;
208
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};