flexlayout-react 0.7.15 → 0.8.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 (252) hide show
  1. package/ChangeLog.txt +23 -0
  2. package/README.md +157 -330
  3. package/Screenshot_light.png +0 -0
  4. package/Screenshot_rounded.png +0 -0
  5. package/declarations/Attribute.d.ts +1 -1
  6. package/declarations/AttributeDefinitions.d.ts +1 -1
  7. package/declarations/DockLocation.d.ts +12 -12
  8. package/declarations/DropInfo.d.ts +12 -12
  9. package/declarations/I18nLabel.d.ts +12 -14
  10. package/declarations/Orientation.d.ts +7 -7
  11. package/declarations/PopupMenu.d.ts +1 -1
  12. package/declarations/Rect.d.ts +41 -28
  13. package/declarations/Types.d.ts +95 -79
  14. package/declarations/examples/demo/Utils.d.ts +4 -0
  15. package/declarations/index.d.ts +21 -22
  16. package/declarations/model/Action.d.ts +5 -5
  17. package/declarations/model/Actions.d.ts +127 -110
  18. package/declarations/model/BorderNode.d.ts +30 -34
  19. package/declarations/model/BorderSet.d.ts +3 -4
  20. package/declarations/model/ICloseType.d.ts +5 -5
  21. package/declarations/model/IDraggable.d.ts +2 -2
  22. package/declarations/model/IDropTarget.d.ts +2 -2
  23. package/declarations/model/IJsonModel.d.ts +811 -149
  24. package/declarations/model/LayoutWindow.d.ts +28 -0
  25. package/declarations/model/Model.d.ts +91 -86
  26. package/declarations/model/Node.d.ts +17 -17
  27. package/declarations/model/RowNode.d.ts +10 -11
  28. package/declarations/model/TabNode.d.ts +44 -37
  29. package/declarations/model/TabSetNode.d.ts +44 -41
  30. package/declarations/model/Utils.d.ts +1 -1
  31. package/declarations/model/WindowLayout.d.ts +24 -0
  32. package/declarations/src/Attribute.d.ts +1 -0
  33. package/declarations/src/AttributeDefinitions.d.ts +1 -0
  34. package/declarations/src/DockLocation.d.ts +12 -0
  35. package/declarations/src/DropInfo.d.ts +12 -0
  36. package/declarations/src/I18nLabel.d.ts +10 -0
  37. package/declarations/src/Orientation.d.ts +7 -0
  38. package/declarations/src/PopupMenu.d.ts +1 -0
  39. package/declarations/src/Rect.d.ts +31 -0
  40. package/declarations/src/Types.d.ts +92 -0
  41. package/declarations/src/index.d.ts +20 -0
  42. package/declarations/src/model/Action.d.ts +5 -0
  43. package/declarations/src/model/Actions.d.ts +110 -0
  44. package/declarations/src/model/BorderNode.d.ts +28 -0
  45. package/declarations/src/model/BorderSet.d.ts +3 -0
  46. package/declarations/src/model/ICloseType.d.ts +5 -0
  47. package/declarations/src/model/IDraggable.d.ts +2 -0
  48. package/declarations/src/model/IDropTarget.d.ts +2 -0
  49. package/declarations/src/model/IJsonModel.d.ts +153 -0
  50. package/declarations/src/model/Model.d.ts +98 -0
  51. package/declarations/src/model/Node.d.ts +16 -0
  52. package/declarations/src/model/RowNode.d.ts +11 -0
  53. package/declarations/src/model/TabNode.d.ts +36 -0
  54. package/declarations/src/model/TabSetNode.d.ts +37 -0
  55. package/declarations/src/model/Utils.d.ts +1 -0
  56. package/declarations/src/view/BorderButton.d.ts +1 -0
  57. package/declarations/src/view/BorderTab.d.ts +2 -0
  58. package/declarations/src/view/BorderTabSet.d.ts +1 -0
  59. package/declarations/src/view/DragContainer.d.ts +1 -0
  60. package/declarations/src/view/ErrorBoundary.d.ts +1 -0
  61. package/declarations/src/view/FloatingWindow.d.ts +1 -0
  62. package/declarations/src/view/Icons.d.ts +7 -0
  63. package/declarations/src/view/Layout.d.ts +113 -0
  64. package/declarations/src/view/Overlay.d.ts +1 -0
  65. package/declarations/src/view/PopupMenu.d.ts +1 -0
  66. package/declarations/src/view/Row.d.ts +1 -0
  67. package/declarations/src/view/Splitter.d.ts +1 -0
  68. package/declarations/src/view/Tab.d.ts +1 -0
  69. package/declarations/src/view/TabButton.d.ts +1 -0
  70. package/declarations/src/view/TabButtonStamp.d.ts +1 -0
  71. package/declarations/src/view/TabOverflowHook.d.ts +1 -0
  72. package/declarations/src/view/TabSet.d.ts +1 -0
  73. package/declarations/src/view/Utils.d.ts +4 -0
  74. package/declarations/view/BorderButton.d.ts +1 -1
  75. package/declarations/view/BorderTab.d.ts +2 -0
  76. package/declarations/view/BorderTabSet.d.ts +1 -1
  77. package/declarations/view/DragContainer.d.ts +1 -0
  78. package/declarations/view/ErrorBoundary.d.ts +1 -1
  79. package/declarations/view/ExtendedResizeObserver.d.ts +23 -0
  80. package/declarations/view/FloatingWindow.d.ts +1 -1
  81. package/declarations/view/Icons.d.ts +8 -7
  82. package/declarations/view/Layout.d.ts +139 -161
  83. package/declarations/view/Overlay.d.ts +1 -0
  84. package/declarations/view/PopoutWindow.d.ts +1 -0
  85. package/declarations/view/PopupMenu.d.ts +1 -0
  86. package/declarations/view/Row.d.ts +1 -0
  87. package/declarations/view/SizeTracker.d.ts +10 -0
  88. package/declarations/view/Splitter.d.ts +1 -1
  89. package/declarations/view/Tab.d.ts +1 -1
  90. package/declarations/view/TabButton.d.ts +1 -1
  91. package/declarations/view/TabButtonStamp.d.ts +1 -1
  92. package/declarations/view/TabOverflowHook.d.ts +1 -1
  93. package/declarations/view/TabSet.d.ts +1 -1
  94. package/declarations/view/Utils.d.ts +11 -1
  95. package/dist/bundles/demo.js +232052 -0
  96. package/dist/bundles/demo.js.map +1 -0
  97. package/dist/flexlayout.js +122 -92
  98. package/dist/flexlayout_min.js +1 -1
  99. package/lib/Attribute.js +42 -31
  100. package/lib/Attribute.js.map +1 -1
  101. package/lib/AttributeDefinitions.js +131 -108
  102. package/lib/AttributeDefinitions.js.map +1 -1
  103. package/lib/DockLocation.js +120 -124
  104. package/lib/DockLocation.js.map +1 -1
  105. package/lib/DropInfo.js +9 -13
  106. package/lib/DropInfo.js.map +1 -1
  107. package/lib/I18nLabel.js +13 -18
  108. package/lib/I18nLabel.js.map +1 -1
  109. package/lib/Orientation.js +22 -26
  110. package/lib/Orientation.js.map +1 -1
  111. package/lib/Rect.js +104 -72
  112. package/lib/Rect.js.map +1 -1
  113. package/lib/Types.js +96 -83
  114. package/lib/Types.js.map +1 -1
  115. package/lib/index.js +21 -38
  116. package/lib/index.js.map +1 -1
  117. package/lib/model/Action.js +6 -10
  118. package/lib/model/Action.js.map +1 -1
  119. package/lib/model/Actions.js +169 -155
  120. package/lib/model/Actions.js.map +1 -1
  121. package/lib/model/BorderNode.js +385 -406
  122. package/lib/model/BorderNode.js.map +1 -1
  123. package/lib/model/BorderSet.js +66 -121
  124. package/lib/model/BorderSet.js.map +1 -1
  125. package/lib/model/ICloseType.js +6 -9
  126. package/lib/model/ICloseType.js.map +1 -1
  127. package/lib/model/IDraggable.js +1 -2
  128. package/lib/model/IDropTarget.js +1 -2
  129. package/lib/model/IJsonModel.js +1 -2
  130. package/lib/model/LayoutWindow.js +83 -0
  131. package/lib/model/LayoutWindow.js.map +1 -0
  132. package/lib/model/Model.js +614 -496
  133. package/lib/model/Model.js.map +1 -1
  134. package/lib/model/Node.js +217 -228
  135. package/lib/model/Node.js.map +1 -1
  136. package/lib/model/RowNode.js +491 -504
  137. package/lib/model/RowNode.js.map +1 -1
  138. package/lib/model/TabNode.js +289 -184
  139. package/lib/model/TabNode.js.map +1 -1
  140. package/lib/model/TabSetNode.js +457 -446
  141. package/lib/model/TabSetNode.js.map +1 -1
  142. package/lib/model/Utils.js +47 -82
  143. package/lib/model/Utils.js.map +1 -1
  144. package/lib/view/BorderButton.js +124 -138
  145. package/lib/view/BorderButton.js.map +1 -1
  146. package/lib/view/BorderTab.js +47 -0
  147. package/lib/view/BorderTab.js.map +1 -0
  148. package/lib/view/BorderTabSet.js +134 -128
  149. package/lib/view/BorderTabSet.js.map +1 -1
  150. package/lib/view/DragContainer.js +16 -0
  151. package/lib/view/DragContainer.js.map +1 -0
  152. package/lib/view/ErrorBoundary.js +23 -27
  153. package/lib/view/ErrorBoundary.js.map +1 -1
  154. package/lib/view/Icons.js +40 -45
  155. package/lib/view/Icons.js.map +1 -1
  156. package/lib/view/Layout.js +918 -907
  157. package/lib/view/Layout.js.map +1 -1
  158. package/lib/view/Overlay.js +9 -0
  159. package/lib/view/Overlay.js.map +1 -0
  160. package/lib/view/PopoutWindow.js +129 -0
  161. package/lib/view/PopoutWindow.js.map +1 -0
  162. package/lib/view/PopupMenu.js +71 -0
  163. package/lib/view/PopupMenu.js.map +1 -0
  164. package/lib/view/Row.js +45 -0
  165. package/lib/view/Row.js.map +1 -0
  166. package/lib/view/SizeTracker.js +11 -0
  167. package/lib/view/SizeTracker.js.map +1 -0
  168. package/lib/view/Splitter.js +191 -147
  169. package/lib/view/Splitter.js.map +1 -1
  170. package/lib/view/Tab.js +86 -60
  171. package/lib/view/Tab.js.map +1 -1
  172. package/lib/view/TabButton.js +122 -135
  173. package/lib/view/TabButton.js.map +1 -1
  174. package/lib/view/TabButtonStamp.js +16 -21
  175. package/lib/view/TabButtonStamp.js.map +1 -1
  176. package/lib/view/TabOverflowHook.js +150 -149
  177. package/lib/view/TabOverflowHook.js.map +1 -1
  178. package/lib/view/TabSet.js +267 -234
  179. package/lib/view/TabSet.js.map +1 -1
  180. package/lib/view/Utils.js +126 -68
  181. package/lib/view/Utils.js.map +1 -1
  182. package/package.json +36 -30
  183. package/src/Attribute.ts +23 -0
  184. package/src/AttributeDefinitions.ts +38 -15
  185. package/src/DockLocation.ts +13 -13
  186. package/src/I18nLabel.ts +7 -9
  187. package/src/Rect.ts +53 -1
  188. package/src/Types.ts +16 -0
  189. package/src/index.ts +1 -2
  190. package/src/model/Actions.ts +49 -29
  191. package/src/model/BorderNode.ts +208 -214
  192. package/src/model/BorderSet.ts +42 -91
  193. package/src/model/IJsonModel.ts +883 -103
  194. package/src/model/LayoutWindow.ts +121 -0
  195. package/src/model/Model.ts +488 -366
  196. package/src/model/Node.ts +98 -111
  197. package/src/model/RowNode.ts +323 -319
  198. package/src/model/TabNode.ts +294 -110
  199. package/src/model/TabSetNode.ts +300 -242
  200. package/src/model/Utils.ts +6 -32
  201. package/src/view/BorderButton.tsx +32 -52
  202. package/src/view/BorderTab.tsx +70 -0
  203. package/src/view/BorderTabSet.tsx +64 -52
  204. package/src/view/DragContainer.tsx +32 -0
  205. package/src/view/Icons.tsx +6 -0
  206. package/src/view/Layout.tsx +1051 -1046
  207. package/src/view/Overlay.tsx +22 -0
  208. package/src/view/PopoutWindow.tsx +152 -0
  209. package/src/{PopupMenu.tsx → view/PopupMenu.tsx} +36 -31
  210. package/src/view/Row.tsx +68 -0
  211. package/src/view/SizeTracker.tsx +20 -0
  212. package/src/view/Splitter.tsx +167 -112
  213. package/src/view/Tab.tsx +76 -42
  214. package/src/view/TabButton.tsx +36 -55
  215. package/src/view/TabButtonStamp.tsx +5 -9
  216. package/src/view/TabOverflowHook.tsx +14 -9
  217. package/src/view/TabSet.tsx +217 -176
  218. package/src/view/Utils.tsx +119 -39
  219. package/style/_base.scss +140 -34
  220. package/style/dark.css +685 -580
  221. package/style/dark.css.map +1 -1
  222. package/style/dark.scss +3 -1
  223. package/style/gray.css +668 -563
  224. package/style/gray.css.map +1 -1
  225. package/style/gray.scss +2 -0
  226. package/style/light.css +669 -564
  227. package/style/light.css.map +1 -1
  228. package/style/light.scss +4 -2
  229. package/style/rounded.css +697 -0
  230. package/style/rounded.css.map +1 -0
  231. package/style/rounded.scss +194 -0
  232. package/style/underline.css +690 -585
  233. package/style/underline.css.map +1 -1
  234. package/style/underline.scss +2 -0
  235. package/cypress.config.ts +0 -16
  236. package/lib/DragDrop.js +0 -316
  237. package/lib/DragDrop.js.map +0 -1
  238. package/lib/PopupMenu.js +0 -68
  239. package/lib/PopupMenu.js.map +0 -1
  240. package/lib/model/SplitterNode.js +0 -72
  241. package/lib/model/SplitterNode.js.map +0 -1
  242. package/lib/view/FloatingWindow.js +0 -123
  243. package/lib/view/FloatingWindow.js.map +0 -1
  244. package/lib/view/FloatingWindowTab.js +0 -19
  245. package/lib/view/FloatingWindowTab.js.map +0 -1
  246. package/lib/view/TabFloating.js +0 -66
  247. package/lib/view/TabFloating.js.map +0 -1
  248. package/src/DragDrop.ts +0 -392
  249. package/src/model/SplitterNode.ts +0 -78
  250. package/src/view/FloatingWindow.tsx +0 -140
  251. package/src/view/FloatingWindowTab.tsx +0 -29
  252. package/src/view/TabFloating.tsx +0 -101
@@ -1,149 +1,811 @@
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
- }
29
- export interface IGlobalAttributes {
30
- borderAutoSelectTabWhenClosed?: boolean;
31
- borderAutoSelectTabWhenOpen?: boolean;
32
- borderBarSize?: number;
33
- borderClassName?: string;
34
- borderEnableAutoHide?: boolean;
35
- borderEnableDrop?: boolean;
36
- borderMinSize?: number;
37
- borderSize?: number;
38
- enableEdgeDock?: boolean;
39
- enableRotateBorderIcons?: boolean;
40
- enableUseVisibility?: boolean;
41
- legacyOverflowMenu?: boolean;
42
- marginInsets?: IInsets;
43
- rootOrientationVertical?: boolean;
44
- splitterExtra?: number;
45
- splitterSize?: number;
46
- tabBorderHeight?: number;
47
- tabBorderWidth?: number;
48
- tabClassName?: string;
49
- tabCloseType?: ICloseType;
50
- tabContentClassName?: string;
51
- tabDragSpeed?: number;
52
- tabEnableClose?: boolean;
53
- tabEnableDrag?: boolean;
54
- tabEnableFloat?: boolean;
55
- tabEnableRename?: boolean;
56
- tabEnableRenderOnDemand?: boolean;
57
- tabIcon?: string;
58
- tabSetAutoSelectTab?: boolean;
59
- tabSetBorderInsets?: IInsets;
60
- tabSetClassNameHeader?: string;
61
- tabSetClassNameTabStrip?: string;
62
- tabSetEnableClose?: boolean;
63
- tabSetEnableDeleteWhenEmpty?: boolean;
64
- tabSetEnableDivide?: boolean;
65
- tabSetEnableDrag?: boolean;
66
- tabSetEnableDrop?: boolean;
67
- tabSetEnableMaximize?: boolean;
68
- tabSetEnableSingleTabStretch?: boolean;
69
- tabSetEnableTabStrip?: boolean;
70
- tabSetHeaderHeight?: number;
71
- tabSetMarginInsets?: IInsets;
72
- tabSetMinHeight?: number;
73
- tabSetMinWidth?: number;
74
- tabSetTabLocation?: ITabLocation;
75
- tabSetTabStripHeight?: number;
76
- }
77
- export interface IRowAttributes {
78
- height?: number;
79
- id?: string;
80
- type: "row";
81
- weight?: number;
82
- width?: number;
83
- }
84
- export interface ITabSetAttributes {
85
- autoSelectTab?: boolean;
86
- borderInsets?: IInsets;
87
- classNameHeader?: string;
88
- classNameTabStrip?: string;
89
- config?: any;
90
- enableClose?: boolean;
91
- enableDeleteWhenEmpty?: boolean;
92
- enableDivide?: boolean;
93
- enableDrag?: boolean;
94
- enableDrop?: boolean;
95
- enableMaximize?: boolean;
96
- enableSingleTabStretch?: boolean;
97
- enableTabStrip?: boolean;
98
- headerHeight?: number;
99
- height?: number;
100
- id?: string;
101
- marginInsets?: IInsets;
102
- minHeight?: number;
103
- minWidth?: number;
104
- name?: string;
105
- selected?: number;
106
- tabLocation?: ITabLocation;
107
- tabStripHeight?: number;
108
- type: "tabset";
109
- weight?: number;
110
- width?: number;
111
- maximized?: boolean;
112
- active?: boolean;
113
- }
114
- export interface ITabAttributes {
115
- altName?: string;
116
- borderHeight?: number;
117
- borderWidth?: number;
118
- className?: string;
119
- closeType?: ICloseType;
120
- component?: string;
121
- config?: any;
122
- contentClassName?: string;
123
- tabsetClassName?: string;
124
- enableClose?: boolean;
125
- enableDrag?: boolean;
126
- enableFloat?: boolean;
127
- enableRename?: boolean;
128
- enableRenderOnDemand?: boolean;
129
- floating?: boolean;
130
- helpText?: string;
131
- icon?: string;
132
- id?: string;
133
- name?: string;
134
- type?: string;
135
- }
136
- export interface IBorderAttributes {
137
- autoSelectTabWhenClosed?: boolean;
138
- autoSelectTabWhenOpen?: boolean;
139
- barSize?: number;
140
- className?: string;
141
- config?: any;
142
- enableAutoHide?: boolean;
143
- enableDrop?: boolean;
144
- minSize?: number;
145
- selected?: number;
146
- show?: boolean;
147
- size?: number;
148
- type: "border";
149
- }
1
+ import { ICloseType } from "./ICloseType";
2
+ export type IBorderLocation = "top" | "bottom" | "left" | "right";
3
+ export type ITabLocation = "top" | "bottom";
4
+ export interface IJsonModel {
5
+ global?: IGlobalAttributes;
6
+ borders?: IJsonBorderNode[];
7
+ layout: IJsonRowNode;
8
+ popouts?: Record<string, IJsonPopout>;
9
+ }
10
+ export interface IJsonRect {
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ }
16
+ export interface IJsonPopout {
17
+ layout: IJsonRowNode;
18
+ rect: IJsonRect;
19
+ }
20
+ export interface IJsonBorderNode extends IBorderAttributes {
21
+ location: IBorderLocation;
22
+ children: IJsonTabNode[];
23
+ }
24
+ export interface IJsonRowNode extends IRowAttributes {
25
+ children: (IJsonRowNode | IJsonTabSetNode)[];
26
+ }
27
+ export interface IJsonTabSetNode extends ITabSetAttributes {
28
+ /** Marks this as the active tab set, read from initial json but
29
+ * must subseqently be set on the model (only one tab set can be active)*/
30
+ active?: boolean;
31
+ /** Marks this tab set as being maximized, read from initial json but
32
+ * must subseqently be set on the model (only one tab set can be maximized) */
33
+ maximized?: boolean;
34
+ children: IJsonTabNode[];
35
+ }
36
+ export interface IJsonTabNode extends ITabAttributes {
37
+ }
38
+ export interface IGlobalAttributes {
39
+ /**
40
+ Value for BorderNode attribute autoSelectTabWhenClosed if not overridden
41
+
42
+ whether to select new/moved tabs in border when the border is currently closed
43
+
44
+ Default: false
45
+ */
46
+ borderAutoSelectTabWhenClosed?: boolean;
47
+ /**
48
+ Value for BorderNode attribute autoSelectTabWhenOpen if not overridden
49
+
50
+ whether to select new/moved tabs in border when the border is already open
51
+
52
+ Default: true
53
+ */
54
+ borderAutoSelectTabWhenOpen?: boolean;
55
+ /**
56
+ Value for BorderNode attribute className if not overridden
57
+
58
+ class applied to tab button
59
+
60
+ Default: undefined
61
+ */
62
+ borderClassName?: string;
63
+ /**
64
+ Value for BorderNode attribute enableAutoHide if not overridden
65
+
66
+ hide border if it has zero tabs
67
+
68
+ Default: false
69
+ */
70
+ borderEnableAutoHide?: boolean;
71
+ /**
72
+ Value for BorderNode attribute enableDrop if not overridden
73
+
74
+ whether tabs can be dropped into this border
75
+
76
+ Default: true
77
+ */
78
+ borderEnableDrop?: boolean;
79
+ /**
80
+ Value for BorderNode attribute maxSize if not overridden
81
+
82
+ the maximum size of the tab area
83
+
84
+ Default: 99999
85
+ */
86
+ borderMaxSize?: number;
87
+ /**
88
+ Value for BorderNode attribute minSize if not overridden
89
+
90
+ the minimum size of the tab area
91
+
92
+ Default: 0
93
+ */
94
+ borderMinSize?: number;
95
+ /**
96
+ Value for BorderNode attribute size if not overridden
97
+
98
+ size of the tab area when selected
99
+
100
+ Default: 200
101
+ */
102
+ borderSize?: number;
103
+ /**
104
+ enable docking to the edges of the layout, this will show the edge indicators
105
+
106
+ Default: true
107
+ */
108
+ enableEdgeDock?: boolean;
109
+ /**
110
+ boolean indicating if tab icons should rotate with the text in the left and right borders
111
+
112
+ Default: true
113
+ */
114
+ enableRotateBorderIcons?: boolean;
115
+ /**
116
+ the top level 'row' will layout horizontally by default, set this option true to make it layout vertically
117
+
118
+ Default: false
119
+ */
120
+ rootOrientationVertical?: boolean;
121
+ /**
122
+ enable a small centralized handle on all splitters
123
+
124
+ Default: false
125
+ */
126
+ splitterEnableHandle?: boolean;
127
+ /**
128
+ additional width in pixels of the splitter hit test area
129
+
130
+ Default: 0
131
+ */
132
+ splitterExtra?: number;
133
+ /**
134
+ width in pixels of all splitters between tabsets/borders
135
+
136
+ Default: 8
137
+ */
138
+ splitterSize?: number;
139
+ /**
140
+ Value for TabNode attribute borderHeight if not overridden
141
+
142
+ height when added to border, -1 will use border size
143
+
144
+ Default: -1
145
+ */
146
+ tabBorderHeight?: number;
147
+ /**
148
+ Value for TabNode attribute borderWidth if not overridden
149
+
150
+ width when added to border, -1 will use border size
151
+
152
+ Default: -1
153
+ */
154
+ tabBorderWidth?: number;
155
+ /**
156
+ Value for TabNode attribute className if not overridden
157
+
158
+ class applied to tab button
159
+
160
+ Default: undefined
161
+ */
162
+ tabClassName?: string;
163
+ /**
164
+ Value for TabNode attribute closeType if not overridden
165
+
166
+ see values in ICloseType
167
+
168
+ Default: 1
169
+ */
170
+ tabCloseType?: ICloseType;
171
+ /**
172
+ Value for TabNode attribute contentClassName if not overridden
173
+
174
+ class applied to tab content
175
+
176
+ Default: undefined
177
+ */
178
+ tabContentClassName?: string;
179
+ /**
180
+
181
+
182
+ Default: 0.3
183
+ */
184
+ tabDragSpeed?: number;
185
+ /**
186
+ Value for TabNode attribute enableClose if not overridden
187
+
188
+ allow user to close tab via close button
189
+
190
+ Default: true
191
+ */
192
+ tabEnableClose?: boolean;
193
+ /**
194
+ Value for TabNode attribute enableDrag if not overridden
195
+
196
+ allow user to drag tab to new location
197
+
198
+ Default: true
199
+ */
200
+ tabEnableDrag?: boolean;
201
+ /**
202
+ Value for TabNode attribute enablePopout if not overridden
203
+
204
+ enable popout (in popout capable browser)
205
+
206
+ Default: false
207
+ */
208
+ tabEnablePopout?: boolean;
209
+ /**
210
+ Value for TabNode attribute enablePopoutIcon if not overridden
211
+
212
+ whether to show the popout icon in the tabset header if this tab enables popouts
213
+
214
+ Default: true
215
+ */
216
+ tabEnablePopoutIcon?: boolean;
217
+ /**
218
+ Value for TabNode attribute enablePopoutOverlay if not overridden
219
+
220
+ if this tab will not work correctly in a popout window when the main window is backgrounded (inactive)
221
+ then enabling this option will gray out this tab
222
+
223
+ Default: false
224
+ */
225
+ tabEnablePopoutOverlay?: boolean;
226
+ /**
227
+ Value for TabNode attribute enableRename if not overridden
228
+
229
+ allow user to rename tabs by double clicking
230
+
231
+ Default: true
232
+ */
233
+ tabEnableRename?: boolean;
234
+ /**
235
+ Value for TabNode attribute enableRenderOnDemand if not overridden
236
+
237
+ whether to avoid rendering component until tab is visible
238
+
239
+ Default: true
240
+ */
241
+ tabEnableRenderOnDemand?: boolean;
242
+ /**
243
+ Value for TabNode attribute icon if not overridden
244
+
245
+ the tab icon
246
+
247
+ Default: undefined
248
+ */
249
+ tabIcon?: string;
250
+ /**
251
+ Value for TabNode attribute maxHeight if not overridden
252
+
253
+ the max height of this tab
254
+
255
+ Default: 99999
256
+ */
257
+ tabMaxHeight?: number;
258
+ /**
259
+ Value for TabNode attribute maxWidth if not overridden
260
+
261
+ the max width of this tab
262
+
263
+ Default: 99999
264
+ */
265
+ tabMaxWidth?: number;
266
+ /**
267
+ Value for TabNode attribute minHeight if not overridden
268
+
269
+ the min height of this tab
270
+
271
+ Default: 0
272
+ */
273
+ tabMinHeight?: number;
274
+ /**
275
+ Value for TabNode attribute minWidth if not overridden
276
+
277
+ the min width of this tab
278
+
279
+ Default: 0
280
+ */
281
+ tabMinWidth?: number;
282
+ /**
283
+ Value for TabSetNode attribute autoSelectTab if not overridden
284
+
285
+ whether to select new/moved tabs in tabset
286
+
287
+ Default: true
288
+ */
289
+ tabSetAutoSelectTab?: boolean;
290
+ /**
291
+ Value for TabSetNode attribute classNameTabStrip if not overridden
292
+
293
+ a class name to apply to the tab strip
294
+
295
+ Default: undefined
296
+ */
297
+ tabSetClassNameTabStrip?: string;
298
+ /**
299
+ Value for TabSetNode attribute enableActiveIcon if not overridden
300
+
301
+ whether the active icon (*) should be displayed when the tabset is active
302
+
303
+ Default: false
304
+ */
305
+ tabSetEnableActiveIcon?: boolean;
306
+ /**
307
+ Value for TabSetNode attribute enableClose if not overridden
308
+
309
+ allow user to close tabset via a close button
310
+
311
+ Default: false
312
+ */
313
+ tabSetEnableClose?: boolean;
314
+ /**
315
+ Value for TabSetNode attribute enableDeleteWhenEmpty if not overridden
316
+
317
+ whether to delete this tabset when is has no tabs
318
+
319
+ Default: true
320
+ */
321
+ tabSetEnableDeleteWhenEmpty?: boolean;
322
+ /**
323
+ Value for TabSetNode attribute enableDivide if not overridden
324
+
325
+ allow user to drag tabs to region of this tabset, splitting into new tabset
326
+
327
+ Default: true
328
+ */
329
+ tabSetEnableDivide?: boolean;
330
+ /**
331
+ Value for TabSetNode attribute enableDrag if not overridden
332
+
333
+ allow user to drag tabs out this tabset
334
+
335
+ Default: true
336
+ */
337
+ tabSetEnableDrag?: boolean;
338
+ /**
339
+ Value for TabSetNode attribute enableDrop if not overridden
340
+
341
+ allow user to drag tabs into this tabset
342
+
343
+ Default: true
344
+ */
345
+ tabSetEnableDrop?: boolean;
346
+ /**
347
+ Value for TabSetNode attribute enableMaximize if not overridden
348
+
349
+ allow user to maximize tabset to fill view via maximize button
350
+
351
+ Default: true
352
+ */
353
+ tabSetEnableMaximize?: boolean;
354
+ /**
355
+ Value for TabSetNode attribute enableSingleTabStretch if not overridden
356
+
357
+ if the tabset has only a single tab then stretch the single tab to fill area and display in a header style
358
+
359
+ Default: false
360
+ */
361
+ tabSetEnableSingleTabStretch?: boolean;
362
+ /**
363
+ Value for TabSetNode attribute enableTabStrip if not overridden
364
+
365
+ enable tab strip and allow multiple tabs in this tabset
366
+
367
+ Default: true
368
+ */
369
+ tabSetEnableTabStrip?: boolean;
370
+ /**
371
+ Value for TabSetNode attribute enableTabWrap if not overridden
372
+
373
+ show tabs in location top or bottom
374
+
375
+ Default: false
376
+ */
377
+ tabSetEnableTabWrap?: boolean;
378
+ /**
379
+ Value for TabSetNode attribute maxHeight if not overridden
380
+
381
+ maximum height (in px) for this tabset
382
+
383
+ Default: 99999
384
+ */
385
+ tabSetMaxHeight?: number;
386
+ /**
387
+ Value for TabSetNode attribute maxWidth if not overridden
388
+
389
+ maximum width (in px) for this tabset
390
+
391
+ Default: 99999
392
+ */
393
+ tabSetMaxWidth?: number;
394
+ /**
395
+ Value for TabSetNode attribute minHeight if not overridden
396
+
397
+ minimum height (in px) for this tabset
398
+
399
+ Default: 0
400
+ */
401
+ tabSetMinHeight?: number;
402
+ /**
403
+ Value for TabSetNode attribute minWidth if not overridden
404
+
405
+ minimum width (in px) for this tabset
406
+
407
+ Default: 0
408
+ */
409
+ tabSetMinWidth?: number;
410
+ /**
411
+ Value for TabSetNode attribute tabLocation if not overridden
412
+
413
+ the location of the tabs either top or bottom
414
+
415
+ Default: "top"
416
+ */
417
+ tabSetTabLocation?: ITabLocation;
418
+ }
419
+ export interface IRowAttributes {
420
+ /**
421
+ the unique id of the row, if left undefined a uuid will be assigned
422
+
423
+ Default: undefined
424
+ */
425
+ id?: string;
426
+ /**
427
+
428
+
429
+ Fixed value: "row"
430
+ */
431
+ type?: string;
432
+ /**
433
+ relative weight for sizing of this row in parent row
434
+
435
+ Default: 100
436
+ */
437
+ weight?: number;
438
+ }
439
+ export interface ITabSetAttributes {
440
+ /**
441
+ whether to select new/moved tabs in tabset
442
+
443
+ Default: inherited from Global attribute tabSetAutoSelectTab (default true)
444
+ */
445
+ autoSelectTab?: boolean;
446
+ /**
447
+ a class name to apply to the tab strip
448
+
449
+ Default: inherited from Global attribute tabSetClassNameTabStrip (default undefined)
450
+ */
451
+ classNameTabStrip?: string;
452
+ /**
453
+ a place to hold json config used in your own code
454
+
455
+ Default: undefined
456
+ */
457
+ config?: any;
458
+ /**
459
+ whether the active icon (*) should be displayed when the tabset is active
460
+
461
+ Default: inherited from Global attribute tabSetEnableActiveIcon (default false)
462
+ */
463
+ enableActiveIcon?: boolean;
464
+ /**
465
+ allow user to close tabset via a close button
466
+
467
+ Default: inherited from Global attribute tabSetEnableClose (default false)
468
+ */
469
+ enableClose?: boolean;
470
+ /**
471
+ whether to delete this tabset when is has no tabs
472
+
473
+ Default: inherited from Global attribute tabSetEnableDeleteWhenEmpty (default true)
474
+ */
475
+ enableDeleteWhenEmpty?: boolean;
476
+ /**
477
+ allow user to drag tabs to region of this tabset, splitting into new tabset
478
+
479
+ Default: inherited from Global attribute tabSetEnableDivide (default true)
480
+ */
481
+ enableDivide?: boolean;
482
+ /**
483
+ allow user to drag tabs out this tabset
484
+
485
+ Default: inherited from Global attribute tabSetEnableDrag (default true)
486
+ */
487
+ enableDrag?: boolean;
488
+ /**
489
+ allow user to drag tabs into this tabset
490
+
491
+ Default: inherited from Global attribute tabSetEnableDrop (default true)
492
+ */
493
+ enableDrop?: boolean;
494
+ /**
495
+ allow user to maximize tabset to fill view via maximize button
496
+
497
+ Default: inherited from Global attribute tabSetEnableMaximize (default true)
498
+ */
499
+ enableMaximize?: boolean;
500
+ /**
501
+ if the tabset has only a single tab then stretch the single tab to fill area and display in a header style
502
+
503
+ Default: inherited from Global attribute tabSetEnableSingleTabStretch (default false)
504
+ */
505
+ enableSingleTabStretch?: boolean;
506
+ /**
507
+ enable tab strip and allow multiple tabs in this tabset
508
+
509
+ Default: inherited from Global attribute tabSetEnableTabStrip (default true)
510
+ */
511
+ enableTabStrip?: boolean;
512
+ /**
513
+ show tabs in location top or bottom
514
+
515
+ Default: inherited from Global attribute tabSetEnableTabWrap (default false)
516
+ */
517
+ enableTabWrap?: boolean;
518
+ /**
519
+ the unique id of the tab set, if left undefined a uuid will be assigned
520
+
521
+ Default: undefined
522
+ */
523
+ id?: string;
524
+ /**
525
+ maximum height (in px) for this tabset
526
+
527
+ Default: inherited from Global attribute tabSetMaxHeight (default 99999)
528
+ */
529
+ maxHeight?: number;
530
+ /**
531
+ maximum width (in px) for this tabset
532
+
533
+ Default: inherited from Global attribute tabSetMaxWidth (default 99999)
534
+ */
535
+ maxWidth?: number;
536
+ /**
537
+ minimum height (in px) for this tabset
538
+
539
+ Default: inherited from Global attribute tabSetMinHeight (default 0)
540
+ */
541
+ minHeight?: number;
542
+ /**
543
+ minimum width (in px) for this tabset
544
+
545
+ Default: inherited from Global attribute tabSetMinWidth (default 0)
546
+ */
547
+ minWidth?: number;
548
+ /**
549
+
550
+
551
+ Default: undefined
552
+ */
553
+ name?: string;
554
+ /**
555
+ index of selected/visible tab in tabset
556
+
557
+ Default: 0
558
+ */
559
+ selected?: number;
560
+ /**
561
+ the location of the tabs either top or bottom
562
+
563
+ Default: inherited from Global attribute tabSetTabLocation (default "top")
564
+ */
565
+ tabLocation?: ITabLocation;
566
+ /**
567
+
568
+
569
+ Fixed value: "tabset"
570
+ */
571
+ type?: string;
572
+ /**
573
+ relative weight for sizing of this tabset in parent row
574
+
575
+ Default: 100
576
+ */
577
+ weight?: number;
578
+ }
579
+ export interface ITabAttributes {
580
+ /**
581
+ if there is no name specifed then this value will be used in the overflow menu
582
+
583
+ Default: undefined
584
+ */
585
+ altName?: string;
586
+ /**
587
+ height when added to border, -1 will use border size
588
+
589
+ Default: inherited from Global attribute tabBorderHeight (default -1)
590
+ */
591
+ borderHeight?: number;
592
+ /**
593
+ width when added to border, -1 will use border size
594
+
595
+ Default: inherited from Global attribute tabBorderWidth (default -1)
596
+ */
597
+ borderWidth?: number;
598
+ /**
599
+ class applied to tab button
600
+
601
+ Default: inherited from Global attribute tabClassName (default undefined)
602
+ */
603
+ className?: string;
604
+ /**
605
+ see values in ICloseType
606
+
607
+ Default: inherited from Global attribute tabCloseType (default 1)
608
+ */
609
+ closeType?: ICloseType;
610
+ /**
611
+ string identifying which component to run (for factory)
612
+
613
+ Default: undefined
614
+ */
615
+ component?: string;
616
+ /**
617
+ a place to hold json config for the hosted component
618
+
619
+ Default: undefined
620
+ */
621
+ config?: any;
622
+ /**
623
+ class applied to tab content
624
+
625
+ Default: inherited from Global attribute tabContentClassName (default undefined)
626
+ */
627
+ contentClassName?: string;
628
+ /**
629
+ allow user to close tab via close button
630
+
631
+ Default: inherited from Global attribute tabEnableClose (default true)
632
+ */
633
+ enableClose?: boolean;
634
+ /**
635
+ allow user to drag tab to new location
636
+
637
+ Default: inherited from Global attribute tabEnableDrag (default true)
638
+ */
639
+ enableDrag?: boolean;
640
+ /**
641
+ enable popout (in popout capable browser)
642
+
643
+ Default: inherited from Global attribute tabEnablePopout (default false)
644
+ */
645
+ enablePopout?: boolean;
646
+ /**
647
+ whether to show the popout icon in the tabset header if this tab enables popouts
648
+
649
+ Default: inherited from Global attribute tabEnablePopoutIcon (default true)
650
+ */
651
+ enablePopoutIcon?: boolean;
652
+ /**
653
+ if this tab will not work correctly in a popout window when the main window is backgrounded (inactive)
654
+ then enabling this option will gray out this tab
655
+
656
+ Default: inherited from Global attribute tabEnablePopoutOverlay (default false)
657
+ */
658
+ enablePopoutOverlay?: boolean;
659
+ /**
660
+ allow user to rename tabs by double clicking
661
+
662
+ Default: inherited from Global attribute tabEnableRename (default true)
663
+ */
664
+ enableRename?: boolean;
665
+ /**
666
+ whether to avoid rendering component until tab is visible
667
+
668
+ Default: inherited from Global attribute tabEnableRenderOnDemand (default true)
669
+ */
670
+ enableRenderOnDemand?: boolean;
671
+ /**
672
+ if enabled the tab will re-mount when popped out/in
673
+
674
+ Default: false
675
+ */
676
+ enableWindowReMount?: boolean;
677
+ /**
678
+ An optional help text for the tab to be displayed upon tab hover.
679
+
680
+ Default: undefined
681
+ */
682
+ helpText?: string;
683
+ /**
684
+ the tab icon
685
+
686
+ Default: inherited from Global attribute tabIcon (default undefined)
687
+ */
688
+ icon?: string;
689
+ /**
690
+ the unique id of the tab, if left undefined a uuid will be assigned
691
+
692
+ Default: undefined
693
+ */
694
+ id?: string;
695
+ /**
696
+ the max height of this tab
697
+
698
+ Default: inherited from Global attribute tabMaxHeight (default 99999)
699
+ */
700
+ maxHeight?: number;
701
+ /**
702
+ the max width of this tab
703
+
704
+ Default: inherited from Global attribute tabMaxWidth (default 99999)
705
+ */
706
+ maxWidth?: number;
707
+ /**
708
+ the min height of this tab
709
+
710
+ Default: inherited from Global attribute tabMinHeight (default 0)
711
+ */
712
+ minHeight?: number;
713
+ /**
714
+ the min width of this tab
715
+
716
+ Default: inherited from Global attribute tabMinWidth (default 0)
717
+ */
718
+ minWidth?: number;
719
+ /**
720
+ name of tab to be displayed in the tab button
721
+
722
+ Default: "[Unnamed Tab]"
723
+ */
724
+ name?: string;
725
+ /**
726
+ class applied to parent tabset when this is the only tab and it is stretched to fill the tabset
727
+
728
+ Default: undefined
729
+ */
730
+ tabsetClassName?: string;
731
+ /**
732
+
733
+
734
+ Fixed value: "tab"
735
+ */
736
+ type?: string;
737
+ }
738
+ export interface IBorderAttributes {
739
+ /**
740
+ whether to select new/moved tabs in border when the border is currently closed
741
+
742
+ Default: inherited from Global attribute borderAutoSelectTabWhenClosed (default false)
743
+ */
744
+ autoSelectTabWhenClosed?: boolean;
745
+ /**
746
+ whether to select new/moved tabs in border when the border is already open
747
+
748
+ Default: inherited from Global attribute borderAutoSelectTabWhenOpen (default true)
749
+ */
750
+ autoSelectTabWhenOpen?: boolean;
751
+ /**
752
+ class applied to tab button
753
+
754
+ Default: inherited from Global attribute borderClassName (default undefined)
755
+ */
756
+ className?: string;
757
+ /**
758
+ a place to hold json config used in your own code
759
+
760
+ Default: undefined
761
+ */
762
+ config?: any;
763
+ /**
764
+ hide border if it has zero tabs
765
+
766
+ Default: inherited from Global attribute borderEnableAutoHide (default false)
767
+ */
768
+ enableAutoHide?: boolean;
769
+ /**
770
+ whether tabs can be dropped into this border
771
+
772
+ Default: inherited from Global attribute borderEnableDrop (default true)
773
+ */
774
+ enableDrop?: boolean;
775
+ /**
776
+ the maximum size of the tab area
777
+
778
+ Default: inherited from Global attribute borderMaxSize (default 99999)
779
+ */
780
+ maxSize?: number;
781
+ /**
782
+ the minimum size of the tab area
783
+
784
+ Default: inherited from Global attribute borderMinSize (default 0)
785
+ */
786
+ minSize?: number;
787
+ /**
788
+ index of selected/visible tab in border; -1 means no tab selected
789
+
790
+ Default: -1
791
+ */
792
+ selected?: number;
793
+ /**
794
+ show/hide this border
795
+
796
+ Default: true
797
+ */
798
+ show?: boolean;
799
+ /**
800
+ size of the tab area when selected
801
+
802
+ Default: inherited from Global attribute borderSize (default 200)
803
+ */
804
+ size?: number;
805
+ /**
806
+
807
+
808
+ Fixed value: "border"
809
+ */
810
+ type?: string;
811
+ }