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