flexlayout-react 0.7.14 → 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.
- package/ChangeLog.txt +26 -0
- package/README.md +157 -330
- package/Screenshot_light.png +0 -0
- package/Screenshot_rounded.png +0 -0
- package/declarations/Attribute.d.ts +1 -1
- package/declarations/AttributeDefinitions.d.ts +1 -1
- package/declarations/DockLocation.d.ts +12 -12
- package/declarations/DropInfo.d.ts +12 -12
- package/declarations/I18nLabel.d.ts +12 -14
- package/declarations/Orientation.d.ts +7 -7
- package/declarations/PopupMenu.d.ts +1 -1
- package/declarations/Rect.d.ts +41 -28
- package/declarations/Types.d.ts +95 -79
- package/declarations/examples/demo/Utils.d.ts +4 -0
- package/declarations/index.d.ts +21 -22
- package/declarations/model/Action.d.ts +5 -5
- package/declarations/model/Actions.d.ts +127 -110
- package/declarations/model/BorderNode.d.ts +30 -34
- package/declarations/model/BorderSet.d.ts +3 -4
- package/declarations/model/ICloseType.d.ts +5 -5
- package/declarations/model/IDraggable.d.ts +2 -2
- package/declarations/model/IDropTarget.d.ts +2 -2
- package/declarations/model/IJsonModel.d.ts +811 -149
- package/declarations/model/LayoutWindow.d.ts +28 -0
- package/declarations/model/Model.d.ts +91 -86
- package/declarations/model/Node.d.ts +17 -17
- package/declarations/model/RowNode.d.ts +10 -11
- package/declarations/model/TabNode.d.ts +44 -37
- package/declarations/model/TabSetNode.d.ts +44 -41
- package/declarations/model/Utils.d.ts +1 -1
- package/declarations/model/WindowLayout.d.ts +24 -0
- package/declarations/src/Attribute.d.ts +1 -0
- package/declarations/src/AttributeDefinitions.d.ts +1 -0
- package/declarations/src/DockLocation.d.ts +12 -0
- package/declarations/src/DropInfo.d.ts +12 -0
- package/declarations/src/I18nLabel.d.ts +10 -0
- package/declarations/src/Orientation.d.ts +7 -0
- package/declarations/src/PopupMenu.d.ts +1 -0
- package/declarations/src/Rect.d.ts +31 -0
- package/declarations/src/Types.d.ts +92 -0
- package/declarations/src/index.d.ts +20 -0
- package/declarations/src/model/Action.d.ts +5 -0
- package/declarations/src/model/Actions.d.ts +110 -0
- package/declarations/src/model/BorderNode.d.ts +28 -0
- package/declarations/src/model/BorderSet.d.ts +3 -0
- package/declarations/src/model/ICloseType.d.ts +5 -0
- package/declarations/src/model/IDraggable.d.ts +2 -0
- package/declarations/src/model/IDropTarget.d.ts +2 -0
- package/declarations/src/model/IJsonModel.d.ts +153 -0
- package/declarations/src/model/Model.d.ts +98 -0
- package/declarations/src/model/Node.d.ts +16 -0
- package/declarations/src/model/RowNode.d.ts +11 -0
- package/declarations/src/model/TabNode.d.ts +36 -0
- package/declarations/src/model/TabSetNode.d.ts +37 -0
- package/declarations/src/model/Utils.d.ts +1 -0
- package/declarations/src/view/BorderButton.d.ts +1 -0
- package/declarations/src/view/BorderTab.d.ts +2 -0
- package/declarations/src/view/BorderTabSet.d.ts +1 -0
- package/declarations/src/view/DragContainer.d.ts +1 -0
- package/declarations/src/view/ErrorBoundary.d.ts +1 -0
- package/declarations/src/view/FloatingWindow.d.ts +1 -0
- package/declarations/src/view/Icons.d.ts +7 -0
- package/declarations/src/view/Layout.d.ts +113 -0
- package/declarations/src/view/Overlay.d.ts +1 -0
- package/declarations/src/view/PopupMenu.d.ts +1 -0
- package/declarations/src/view/Row.d.ts +1 -0
- package/declarations/src/view/Splitter.d.ts +1 -0
- package/declarations/src/view/Tab.d.ts +1 -0
- package/declarations/src/view/TabButton.d.ts +1 -0
- package/declarations/src/view/TabButtonStamp.d.ts +1 -0
- package/declarations/src/view/TabOverflowHook.d.ts +1 -0
- package/declarations/src/view/TabSet.d.ts +1 -0
- package/declarations/src/view/Utils.d.ts +4 -0
- package/declarations/view/BorderButton.d.ts +1 -1
- package/declarations/view/BorderTab.d.ts +2 -0
- package/declarations/view/BorderTabSet.d.ts +1 -1
- package/declarations/view/DragContainer.d.ts +1 -0
- package/declarations/view/ErrorBoundary.d.ts +1 -1
- package/declarations/view/ExtendedResizeObserver.d.ts +23 -0
- package/declarations/view/FloatingWindow.d.ts +1 -1
- package/declarations/view/Icons.d.ts +8 -6
- package/declarations/view/Layout.d.ts +139 -160
- package/declarations/view/Overlay.d.ts +1 -0
- package/declarations/view/PopoutWindow.d.ts +1 -0
- package/declarations/view/PopupMenu.d.ts +1 -0
- package/declarations/view/Row.d.ts +1 -0
- package/declarations/view/SizeTracker.d.ts +10 -0
- package/declarations/view/Splitter.d.ts +1 -1
- package/declarations/view/Tab.d.ts +1 -1
- package/declarations/view/TabButton.d.ts +1 -1
- package/declarations/view/TabButtonStamp.d.ts +1 -1
- package/declarations/view/TabOverflowHook.d.ts +1 -1
- package/declarations/view/TabSet.d.ts +1 -1
- package/declarations/view/Utils.d.ts +11 -1
- package/dist/bundles/demo.js +232052 -0
- package/dist/bundles/demo.js.map +1 -0
- package/dist/flexlayout.js +122 -92
- package/dist/flexlayout_min.js +1 -1
- package/lib/Attribute.js +42 -31
- package/lib/Attribute.js.map +1 -1
- package/lib/AttributeDefinitions.js +131 -108
- package/lib/AttributeDefinitions.js.map +1 -1
- package/lib/DockLocation.js +120 -124
- package/lib/DockLocation.js.map +1 -1
- package/lib/DropInfo.js +9 -13
- package/lib/DropInfo.js.map +1 -1
- package/lib/I18nLabel.js +13 -18
- package/lib/I18nLabel.js.map +1 -1
- package/lib/Orientation.js +22 -26
- package/lib/Orientation.js.map +1 -1
- package/lib/Rect.js +104 -72
- package/lib/Rect.js.map +1 -1
- package/lib/Types.js +96 -83
- package/lib/Types.js.map +1 -1
- package/lib/index.js +21 -38
- package/lib/index.js.map +1 -1
- package/lib/model/Action.js +6 -10
- package/lib/model/Action.js.map +1 -1
- package/lib/model/Actions.js +169 -155
- package/lib/model/Actions.js.map +1 -1
- package/lib/model/BorderNode.js +385 -406
- package/lib/model/BorderNode.js.map +1 -1
- package/lib/model/BorderSet.js +66 -121
- package/lib/model/BorderSet.js.map +1 -1
- package/lib/model/ICloseType.js +6 -9
- package/lib/model/ICloseType.js.map +1 -1
- package/lib/model/IDraggable.js +1 -2
- package/lib/model/IDropTarget.js +1 -2
- package/lib/model/IJsonModel.js +1 -2
- package/lib/model/LayoutWindow.js +83 -0
- package/lib/model/LayoutWindow.js.map +1 -0
- package/lib/model/Model.js +614 -496
- package/lib/model/Model.js.map +1 -1
- package/lib/model/Node.js +217 -228
- package/lib/model/Node.js.map +1 -1
- package/lib/model/RowNode.js +491 -504
- package/lib/model/RowNode.js.map +1 -1
- package/lib/model/TabNode.js +289 -184
- package/lib/model/TabNode.js.map +1 -1
- package/lib/model/TabSetNode.js +457 -446
- package/lib/model/TabSetNode.js.map +1 -1
- package/lib/model/Utils.js +47 -82
- package/lib/model/Utils.js.map +1 -1
- package/lib/view/BorderButton.js +124 -138
- package/lib/view/BorderButton.js.map +1 -1
- package/lib/view/BorderTab.js +47 -0
- package/lib/view/BorderTab.js.map +1 -0
- package/lib/view/BorderTabSet.js +134 -128
- package/lib/view/BorderTabSet.js.map +1 -1
- package/lib/view/DragContainer.js +16 -0
- package/lib/view/DragContainer.js.map +1 -0
- package/lib/view/ErrorBoundary.js +23 -27
- package/lib/view/ErrorBoundary.js.map +1 -1
- package/lib/view/Icons.js +40 -40
- package/lib/view/Icons.js.map +1 -1
- package/lib/view/Layout.js +918 -901
- package/lib/view/Layout.js.map +1 -1
- package/lib/view/Overlay.js +9 -0
- package/lib/view/Overlay.js.map +1 -0
- package/lib/view/PopoutWindow.js +129 -0
- package/lib/view/PopoutWindow.js.map +1 -0
- package/lib/view/PopupMenu.js +71 -0
- package/lib/view/PopupMenu.js.map +1 -0
- package/lib/view/Row.js +45 -0
- package/lib/view/Row.js.map +1 -0
- package/lib/view/SizeTracker.js +11 -0
- package/lib/view/SizeTracker.js.map +1 -0
- package/lib/view/Splitter.js +191 -147
- package/lib/view/Splitter.js.map +1 -1
- package/lib/view/Tab.js +86 -60
- package/lib/view/Tab.js.map +1 -1
- package/lib/view/TabButton.js +122 -135
- package/lib/view/TabButton.js.map +1 -1
- package/lib/view/TabButtonStamp.js +16 -21
- package/lib/view/TabButtonStamp.js.map +1 -1
- package/lib/view/TabOverflowHook.js +150 -149
- package/lib/view/TabOverflowHook.js.map +1 -1
- package/lib/view/TabSet.js +267 -234
- package/lib/view/TabSet.js.map +1 -1
- package/lib/view/Utils.js +126 -68
- package/lib/view/Utils.js.map +1 -1
- package/package.json +36 -30
- package/src/Attribute.ts +23 -0
- package/src/AttributeDefinitions.ts +38 -15
- package/src/DockLocation.ts +13 -13
- package/src/I18nLabel.ts +7 -9
- package/src/Rect.ts +53 -1
- package/src/Types.ts +16 -0
- package/src/index.ts +1 -2
- package/src/model/Actions.ts +49 -29
- package/src/model/BorderNode.ts +208 -214
- package/src/model/BorderSet.ts +42 -91
- package/src/model/IJsonModel.ts +883 -103
- package/src/model/LayoutWindow.ts +121 -0
- package/src/model/Model.ts +488 -366
- package/src/model/Node.ts +98 -111
- package/src/model/RowNode.ts +323 -319
- package/src/model/TabNode.ts +294 -110
- package/src/model/TabSetNode.ts +300 -242
- package/src/model/Utils.ts +6 -32
- package/src/view/BorderButton.tsx +32 -52
- package/src/view/BorderTab.tsx +70 -0
- package/src/view/BorderTabSet.tsx +64 -52
- package/src/view/DragContainer.tsx +32 -0
- package/src/view/Icons.tsx +13 -0
- package/src/view/Layout.tsx +1071 -1047
- package/src/view/Overlay.tsx +22 -0
- package/src/view/PopoutWindow.tsx +152 -0
- package/src/{PopupMenu.tsx → view/PopupMenu.tsx} +36 -31
- package/src/view/Row.tsx +68 -0
- package/src/view/SizeTracker.tsx +20 -0
- package/src/view/Splitter.tsx +167 -112
- package/src/view/Tab.tsx +76 -42
- package/src/view/TabButton.tsx +36 -55
- package/src/view/TabButtonStamp.tsx +5 -9
- package/src/view/TabOverflowHook.tsx +14 -9
- package/src/view/TabSet.tsx +217 -176
- package/src/view/Utils.tsx +119 -39
- package/style/_base.scss +143 -35
- package/style/dark.css +685 -577
- package/style/dark.css.map +1 -1
- package/style/dark.scss +4 -1
- package/style/gray.css +668 -560
- package/style/gray.css.map +1 -1
- package/style/gray.scss +4 -1
- package/style/light.css +669 -561
- package/style/light.css.map +1 -1
- package/style/light.scss +6 -3
- package/style/rounded.css +697 -0
- package/style/rounded.css.map +1 -0
- package/style/rounded.scss +194 -0
- package/style/underline.css +690 -582
- package/style/underline.css.map +1 -1
- package/style/underline.scss +4 -1
- package/cypress.config.ts +0 -16
- package/lib/DragDrop.js +0 -316
- package/lib/DragDrop.js.map +0 -1
- package/lib/PopupMenu.js +0 -68
- package/lib/PopupMenu.js.map +0 -1
- package/lib/model/SplitterNode.js +0 -72
- package/lib/model/SplitterNode.js.map +0 -1
- package/lib/view/FloatingWindow.js +0 -123
- package/lib/view/FloatingWindow.js.map +0 -1
- package/lib/view/FloatingWindowTab.js +0 -19
- package/lib/view/FloatingWindowTab.js.map +0 -1
- package/lib/view/TabFloating.js +0 -66
- package/lib/view/TabFloating.js.map +0 -1
- package/src/DragDrop.ts +0 -392
- package/src/model/SplitterNode.ts +0 -78
- package/src/view/FloatingWindow.tsx +0 -140
- package/src/view/FloatingWindowTab.tsx +0 -29
- package/src/view/TabFloating.tsx +0 -101
package/lib/model/TabSetNode.js
CHANGED
|
@@ -1,447 +1,458 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
attributeDefinitions.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
this.
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return this.
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
this.
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
return
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
if (
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
if (
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
newRow.
|
|
399
|
-
this.
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
return
|
|
421
|
-
}
|
|
422
|
-
/** @internal */
|
|
423
|
-
|
|
424
|
-
TabSetNode.
|
|
425
|
-
}
|
|
426
|
-
/** @internal */
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
1
|
+
import { Attribute } from "../Attribute";
|
|
2
|
+
import { AttributeDefinitions } from "../AttributeDefinitions";
|
|
3
|
+
import { DockLocation } from "../DockLocation";
|
|
4
|
+
import { DropInfo } from "../DropInfo";
|
|
5
|
+
import { Orientation } from "../Orientation";
|
|
6
|
+
import { Rect } from "../Rect";
|
|
7
|
+
import { CLASSES } from "../Types";
|
|
8
|
+
import { canDockToWindow } from "../view/Utils";
|
|
9
|
+
import { BorderNode } from "./BorderNode";
|
|
10
|
+
import { Model } from "./Model";
|
|
11
|
+
import { Node } from "./Node";
|
|
12
|
+
import { RowNode } from "./RowNode";
|
|
13
|
+
import { TabNode } from "./TabNode";
|
|
14
|
+
import { adjustSelectedIndex } from "./Utils";
|
|
15
|
+
export class TabSetNode extends Node {
|
|
16
|
+
/** @internal */
|
|
17
|
+
static fromJson(json, model, layoutWindow) {
|
|
18
|
+
const newLayoutNode = new TabSetNode(model, json);
|
|
19
|
+
if (json.children != null) {
|
|
20
|
+
for (const jsonChild of json.children) {
|
|
21
|
+
const child = TabNode.fromJson(jsonChild, model);
|
|
22
|
+
newLayoutNode.addChild(child);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (newLayoutNode.children.length === 0) {
|
|
26
|
+
newLayoutNode.setSelected(-1);
|
|
27
|
+
}
|
|
28
|
+
if (json.maximized && json.maximized === true) {
|
|
29
|
+
layoutWindow.maximizedTabSet = newLayoutNode;
|
|
30
|
+
}
|
|
31
|
+
if (json.active && json.active === true) {
|
|
32
|
+
layoutWindow.activeTabSet = newLayoutNode;
|
|
33
|
+
}
|
|
34
|
+
return newLayoutNode;
|
|
35
|
+
}
|
|
36
|
+
/** @internal */
|
|
37
|
+
constructor(model, json) {
|
|
38
|
+
super(model);
|
|
39
|
+
/** @internal */
|
|
40
|
+
this.tabStripRect = Rect.empty();
|
|
41
|
+
/** @internal */
|
|
42
|
+
this.contentRect = Rect.empty();
|
|
43
|
+
this.calculatedMinHeight = 0;
|
|
44
|
+
this.calculatedMinWidth = 0;
|
|
45
|
+
this.calculatedMaxHeight = 0;
|
|
46
|
+
this.calculatedMaxWidth = 0;
|
|
47
|
+
TabSetNode.attributeDefinitions.fromJson(json, this.attributes);
|
|
48
|
+
model.addNode(this);
|
|
49
|
+
}
|
|
50
|
+
getName() {
|
|
51
|
+
return this.getAttr("name");
|
|
52
|
+
}
|
|
53
|
+
isEnableActiveIcon() {
|
|
54
|
+
return this.getAttr("enableActiveIcon");
|
|
55
|
+
}
|
|
56
|
+
getSelected() {
|
|
57
|
+
const selected = this.attributes.selected;
|
|
58
|
+
if (selected !== undefined) {
|
|
59
|
+
return selected;
|
|
60
|
+
}
|
|
61
|
+
return -1;
|
|
62
|
+
}
|
|
63
|
+
getSelectedNode() {
|
|
64
|
+
const selected = this.getSelected();
|
|
65
|
+
if (selected !== -1) {
|
|
66
|
+
return this.children[selected];
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
getWeight() {
|
|
71
|
+
return this.getAttr("weight");
|
|
72
|
+
}
|
|
73
|
+
getAttrMinWidth() {
|
|
74
|
+
return this.getAttr("minWidth");
|
|
75
|
+
}
|
|
76
|
+
getAttrMinHeight() {
|
|
77
|
+
return this.getAttr("minHeight");
|
|
78
|
+
}
|
|
79
|
+
getMinWidth() {
|
|
80
|
+
return this.calculatedMinWidth;
|
|
81
|
+
}
|
|
82
|
+
getMinHeight() {
|
|
83
|
+
return this.calculatedMinHeight;
|
|
84
|
+
}
|
|
85
|
+
/** @internal */
|
|
86
|
+
getMinSize(orientation) {
|
|
87
|
+
if (orientation === Orientation.HORZ) {
|
|
88
|
+
return this.getMinWidth();
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return this.getMinHeight();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
getAttrMaxWidth() {
|
|
95
|
+
return this.getAttr("maxWidth");
|
|
96
|
+
}
|
|
97
|
+
getAttrMaxHeight() {
|
|
98
|
+
return this.getAttr("maxHeight");
|
|
99
|
+
}
|
|
100
|
+
getMaxWidth() {
|
|
101
|
+
return this.calculatedMaxWidth;
|
|
102
|
+
}
|
|
103
|
+
getMaxHeight() {
|
|
104
|
+
return this.calculatedMaxHeight;
|
|
105
|
+
}
|
|
106
|
+
/** @internal */
|
|
107
|
+
getMaxSize(orientation) {
|
|
108
|
+
if (orientation === Orientation.HORZ) {
|
|
109
|
+
return this.getMaxWidth();
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
return this.getMaxHeight();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns the config attribute that can be used to store node specific data that
|
|
117
|
+
* WILL be saved to the json. The config attribute should be changed via the action Actions.updateNodeAttributes rather
|
|
118
|
+
* than directly, for example:
|
|
119
|
+
* this.state.model.doAction(
|
|
120
|
+
* FlexLayout.Actions.updateNodeAttributes(node.getId(), {config:myConfigObject}));
|
|
121
|
+
*/
|
|
122
|
+
getConfig() {
|
|
123
|
+
return this.attributes.config;
|
|
124
|
+
}
|
|
125
|
+
isMaximized() {
|
|
126
|
+
return this.model.getMaximizedTabset(this.getWindowId()) === this;
|
|
127
|
+
}
|
|
128
|
+
isActive() {
|
|
129
|
+
return this.model.getActiveTabset(this.getWindowId()) === this;
|
|
130
|
+
}
|
|
131
|
+
isEnableDeleteWhenEmpty() {
|
|
132
|
+
return this.getAttr("enableDeleteWhenEmpty");
|
|
133
|
+
}
|
|
134
|
+
isEnableDrop() {
|
|
135
|
+
return this.getAttr("enableDrop");
|
|
136
|
+
}
|
|
137
|
+
isEnableTabWrap() {
|
|
138
|
+
return this.getAttr("enableTabWrap");
|
|
139
|
+
}
|
|
140
|
+
isEnableDrag() {
|
|
141
|
+
return this.getAttr("enableDrag");
|
|
142
|
+
}
|
|
143
|
+
isEnableDivide() {
|
|
144
|
+
return this.getAttr("enableDivide");
|
|
145
|
+
}
|
|
146
|
+
isEnableMaximize() {
|
|
147
|
+
return this.getAttr("enableMaximize");
|
|
148
|
+
}
|
|
149
|
+
isEnableClose() {
|
|
150
|
+
return this.getAttr("enableClose");
|
|
151
|
+
}
|
|
152
|
+
isEnableSingleTabStretch() {
|
|
153
|
+
return this.getAttr("enableSingleTabStretch");
|
|
154
|
+
}
|
|
155
|
+
isEnableTabStrip() {
|
|
156
|
+
return this.getAttr("enableTabStrip");
|
|
157
|
+
}
|
|
158
|
+
isAutoSelectTab() {
|
|
159
|
+
return this.getAttr("autoSelectTab");
|
|
160
|
+
}
|
|
161
|
+
getClassNameTabStrip() {
|
|
162
|
+
return this.getAttr("classNameTabStrip");
|
|
163
|
+
}
|
|
164
|
+
getTabLocation() {
|
|
165
|
+
return this.getAttr("tabLocation");
|
|
166
|
+
}
|
|
167
|
+
toJson() {
|
|
168
|
+
const json = {};
|
|
169
|
+
TabSetNode.attributeDefinitions.toJson(json, this.attributes);
|
|
170
|
+
json.children = this.children.map((child) => child.toJson());
|
|
171
|
+
if (this.isActive()) {
|
|
172
|
+
json.active = true;
|
|
173
|
+
}
|
|
174
|
+
if (this.isMaximized()) {
|
|
175
|
+
json.maximized = true;
|
|
176
|
+
}
|
|
177
|
+
return json;
|
|
178
|
+
}
|
|
179
|
+
/** @internal */
|
|
180
|
+
calcMinMaxSize() {
|
|
181
|
+
this.calculatedMinHeight = this.getAttrMinHeight();
|
|
182
|
+
this.calculatedMinWidth = this.getAttrMinWidth();
|
|
183
|
+
this.calculatedMaxHeight = this.getAttrMaxHeight();
|
|
184
|
+
this.calculatedMaxWidth = this.getAttrMaxWidth();
|
|
185
|
+
for (const child of this.children) {
|
|
186
|
+
const c = child;
|
|
187
|
+
this.calculatedMinWidth = Math.max(this.calculatedMinWidth, c.getMinWidth());
|
|
188
|
+
this.calculatedMinHeight = Math.max(this.calculatedMinHeight, c.getMinHeight());
|
|
189
|
+
this.calculatedMaxWidth = Math.min(this.calculatedMaxWidth, c.getMaxWidth());
|
|
190
|
+
this.calculatedMaxHeight = Math.min(this.calculatedMaxHeight, c.getMaxHeight());
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** @internal */
|
|
194
|
+
canMaximize() {
|
|
195
|
+
if (this.isEnableMaximize()) {
|
|
196
|
+
// always allow maximize toggle if already maximized
|
|
197
|
+
if (this.getModel().getMaximizedTabset(this.getWindowId()) === this) {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
// only one tabset, so disable
|
|
201
|
+
if (this.getParent() === this.getModel().getRoot(this.getWindowId()) && this.getModel().getRoot(this.getWindowId()).getChildren().length === 1) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
/** @internal */
|
|
209
|
+
setContentRect(rect) {
|
|
210
|
+
this.contentRect = rect;
|
|
211
|
+
}
|
|
212
|
+
/** @internal */
|
|
213
|
+
getContentRect() {
|
|
214
|
+
return this.contentRect;
|
|
215
|
+
}
|
|
216
|
+
/** @internal */
|
|
217
|
+
setTabStripRect(rect) {
|
|
218
|
+
this.tabStripRect = rect;
|
|
219
|
+
}
|
|
220
|
+
/** @internal */
|
|
221
|
+
setWeight(weight) {
|
|
222
|
+
this.attributes.weight = weight;
|
|
223
|
+
}
|
|
224
|
+
/** @internal */
|
|
225
|
+
setSelected(index) {
|
|
226
|
+
this.attributes.selected = index;
|
|
227
|
+
}
|
|
228
|
+
getWindowId() {
|
|
229
|
+
return this.parent.getWindowId();
|
|
230
|
+
}
|
|
231
|
+
/** @internal */
|
|
232
|
+
canDrop(dragNode, x, y) {
|
|
233
|
+
let dropInfo;
|
|
234
|
+
if (dragNode === this) {
|
|
235
|
+
const dockLocation = DockLocation.CENTER;
|
|
236
|
+
const outlineRect = this.tabStripRect;
|
|
237
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
238
|
+
}
|
|
239
|
+
else if (this.getWindowId() !== Model.MAIN_WINDOW_ID && !canDockToWindow(dragNode)) {
|
|
240
|
+
return undefined;
|
|
241
|
+
}
|
|
242
|
+
else if (this.contentRect.contains(x, y)) {
|
|
243
|
+
let dockLocation = DockLocation.CENTER;
|
|
244
|
+
if (this.model.getMaximizedTabset(this.parent.getWindowId()) === undefined) {
|
|
245
|
+
dockLocation = DockLocation.getLocation(this.contentRect, x, y);
|
|
246
|
+
}
|
|
247
|
+
const outlineRect = dockLocation.getDockRect(this.rect);
|
|
248
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
249
|
+
}
|
|
250
|
+
else if (this.tabStripRect != null && this.tabStripRect.contains(x, y)) {
|
|
251
|
+
let r;
|
|
252
|
+
let yy;
|
|
253
|
+
let h;
|
|
254
|
+
if (this.children.length === 0) {
|
|
255
|
+
r = this.tabStripRect.clone();
|
|
256
|
+
yy = r.y + 3;
|
|
257
|
+
h = r.height - 4;
|
|
258
|
+
r.width = 2;
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
let child = this.children[0];
|
|
262
|
+
r = child.getTabRect();
|
|
263
|
+
yy = r.y;
|
|
264
|
+
h = r.height;
|
|
265
|
+
let p = this.tabStripRect.x;
|
|
266
|
+
let childCenter = 0;
|
|
267
|
+
for (let i = 0; i < this.children.length; i++) {
|
|
268
|
+
child = this.children[i];
|
|
269
|
+
r = child.getTabRect();
|
|
270
|
+
if (r.y !== yy) {
|
|
271
|
+
yy = r.y;
|
|
272
|
+
p = this.tabStripRect.x;
|
|
273
|
+
}
|
|
274
|
+
childCenter = r.x + r.width / 2;
|
|
275
|
+
if (x >= p && x < childCenter && y > r.y && y < r.getBottom()) {
|
|
276
|
+
const dockLocation = DockLocation.CENTER;
|
|
277
|
+
const outlineRect = new Rect(r.x - 2, r.y, 3, r.height);
|
|
278
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, i, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
279
|
+
break;
|
|
280
|
+
}
|
|
281
|
+
p = childCenter;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (dropInfo == null) {
|
|
285
|
+
const dockLocation = DockLocation.CENTER;
|
|
286
|
+
const outlineRect = new Rect(r.getRight() - 2, yy, 3, h);
|
|
287
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, this.children.length, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (!dragNode.canDockInto(dragNode, dropInfo)) {
|
|
291
|
+
return undefined;
|
|
292
|
+
}
|
|
293
|
+
return dropInfo;
|
|
294
|
+
}
|
|
295
|
+
/** @internal */
|
|
296
|
+
delete() {
|
|
297
|
+
this.parent.removeChild(this);
|
|
298
|
+
}
|
|
299
|
+
/** @internal */
|
|
300
|
+
remove(node) {
|
|
301
|
+
const removedIndex = this.removeChild(node);
|
|
302
|
+
this.model.tidy();
|
|
303
|
+
adjustSelectedIndex(this, removedIndex);
|
|
304
|
+
}
|
|
305
|
+
/** @internal */
|
|
306
|
+
drop(dragNode, location, index, select) {
|
|
307
|
+
const dockLocation = location;
|
|
308
|
+
if (this === dragNode) {
|
|
309
|
+
// tabset drop into itself
|
|
310
|
+
return; // dock back to itself
|
|
311
|
+
}
|
|
312
|
+
let dragParent = dragNode.getParent();
|
|
313
|
+
let fromIndex = 0;
|
|
314
|
+
if (dragParent !== undefined) {
|
|
315
|
+
fromIndex = dragParent.removeChild(dragNode);
|
|
316
|
+
// if selected node in border is being docked into tabset then deselect border tabs
|
|
317
|
+
if (dragParent instanceof BorderNode && dragParent.getSelected() === fromIndex) {
|
|
318
|
+
dragParent.setSelected(-1);
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
adjustSelectedIndex(dragParent, fromIndex);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// if dropping a tab back to same tabset and moving to forward position then reduce insertion index
|
|
325
|
+
if (dragNode instanceof TabNode && dragParent === this && fromIndex < index && index > 0) {
|
|
326
|
+
index--;
|
|
327
|
+
}
|
|
328
|
+
// simple_bundled dock to existing tabset
|
|
329
|
+
if (dockLocation === DockLocation.CENTER) {
|
|
330
|
+
let insertPos = index;
|
|
331
|
+
if (insertPos === -1) {
|
|
332
|
+
insertPos = this.children.length;
|
|
333
|
+
}
|
|
334
|
+
if (dragNode instanceof TabNode) {
|
|
335
|
+
this.addChild(dragNode, insertPos);
|
|
336
|
+
if (select || (select !== false && this.isAutoSelectTab())) {
|
|
337
|
+
this.setSelected(insertPos);
|
|
338
|
+
}
|
|
339
|
+
// console.log("added child at : " + insertPos);
|
|
340
|
+
}
|
|
341
|
+
else if (dragNode instanceof RowNode) {
|
|
342
|
+
dragNode.forEachNode((child, level) => {
|
|
343
|
+
if (child instanceof TabNode) {
|
|
344
|
+
this.addChild(child, insertPos);
|
|
345
|
+
// console.log("added child at : " + insertPos);
|
|
346
|
+
insertPos++;
|
|
347
|
+
}
|
|
348
|
+
}, 0);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
for (let i = 0; i < dragNode.getChildren().length; i++) {
|
|
352
|
+
const child = dragNode.getChildren()[i];
|
|
353
|
+
this.addChild(child, insertPos);
|
|
354
|
+
// console.log("added child at : " + insertPos);
|
|
355
|
+
insertPos++;
|
|
356
|
+
}
|
|
357
|
+
if (this.getSelected() === -1 && this.children.length > 0) {
|
|
358
|
+
this.setSelected(0);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
this.model.setActiveTabset(this, this.parent.getWindowId());
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
let moveNode = dragNode;
|
|
365
|
+
if (dragNode instanceof TabNode) {
|
|
366
|
+
// create new tabset parent
|
|
367
|
+
// console.log("create a new tabset");
|
|
368
|
+
const callback = this.model.getOnCreateTabSet();
|
|
369
|
+
moveNode = new TabSetNode(this.model, callback ? callback(dragNode) : {});
|
|
370
|
+
moveNode.addChild(dragNode);
|
|
371
|
+
// console.log("added child at end");
|
|
372
|
+
dragParent = moveNode;
|
|
373
|
+
}
|
|
374
|
+
else if (dragNode instanceof RowNode) {
|
|
375
|
+
const parent = this.getParent();
|
|
376
|
+
// need to turn round if same orientation unless docking oposite direction
|
|
377
|
+
if (dragNode.getOrientation() === parent.getOrientation() &&
|
|
378
|
+
(location.getOrientation() === parent.getOrientation() || location === DockLocation.CENTER)) {
|
|
379
|
+
const node = new RowNode(this.model, this.getWindowId(), {});
|
|
380
|
+
node.addChild(dragNode);
|
|
381
|
+
moveNode = node;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
moveNode = dragNode;
|
|
386
|
+
}
|
|
387
|
+
const parentRow = this.parent;
|
|
388
|
+
const pos = parentRow.getChildren().indexOf(this);
|
|
389
|
+
if (parentRow.getOrientation() === dockLocation.orientation) {
|
|
390
|
+
moveNode.setWeight(this.getWeight() / 2);
|
|
391
|
+
this.setWeight(this.getWeight() / 2);
|
|
392
|
+
// console.log("added child 50% size at: " + pos + dockLocation.indexPlus);
|
|
393
|
+
parentRow.addChild(moveNode, pos + dockLocation.indexPlus);
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
// create a new row to host the new tabset (it will go in the opposite direction)
|
|
397
|
+
// console.log("create a new row");
|
|
398
|
+
const newRow = new RowNode(this.model, this.getWindowId(), {});
|
|
399
|
+
newRow.setWeight(this.getWeight());
|
|
400
|
+
newRow.addChild(this);
|
|
401
|
+
this.setWeight(50);
|
|
402
|
+
moveNode.setWeight(50);
|
|
403
|
+
// console.log("added child 50% size at: " + dockLocation.indexPlus);
|
|
404
|
+
newRow.addChild(moveNode, dockLocation.indexPlus);
|
|
405
|
+
parentRow.removeChild(this);
|
|
406
|
+
parentRow.addChild(newRow, pos);
|
|
407
|
+
}
|
|
408
|
+
if (moveNode instanceof TabSetNode) {
|
|
409
|
+
this.model.setActiveTabset(moveNode, this.getWindowId());
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
this.model.tidy();
|
|
413
|
+
}
|
|
414
|
+
/** @internal */
|
|
415
|
+
updateAttrs(json) {
|
|
416
|
+
TabSetNode.attributeDefinitions.update(json, this.attributes);
|
|
417
|
+
}
|
|
418
|
+
/** @internal */
|
|
419
|
+
getAttributeDefinitions() {
|
|
420
|
+
return TabSetNode.attributeDefinitions;
|
|
421
|
+
}
|
|
422
|
+
/** @internal */
|
|
423
|
+
static getAttributeDefinitions() {
|
|
424
|
+
return TabSetNode.attributeDefinitions;
|
|
425
|
+
}
|
|
426
|
+
/** @internal */
|
|
427
|
+
static createAttributeDefinitions() {
|
|
428
|
+
const attributeDefinitions = new AttributeDefinitions();
|
|
429
|
+
attributeDefinitions.add("type", TabSetNode.TYPE, true).setType(Attribute.STRING).setFixed();
|
|
430
|
+
attributeDefinitions.add("id", undefined).setType(Attribute.STRING).setDescription(`the unique id of the tab set, if left undefined a uuid will be assigned`);
|
|
431
|
+
attributeDefinitions.add("weight", 100).setType(Attribute.NUMBER).setDescription(`relative weight for sizing of this tabset in parent row`);
|
|
432
|
+
attributeDefinitions.add("selected", 0).setType(Attribute.NUMBER).setDescription(`index of selected/visible tab in tabset`);
|
|
433
|
+
attributeDefinitions.add("name", undefined).setType(Attribute.STRING);
|
|
434
|
+
attributeDefinitions.add("config", undefined).setType("any").setDescription(`a place to hold json config used in your own code`);
|
|
435
|
+
attributeDefinitions.addInherited("enableDeleteWhenEmpty", "tabSetEnableDeleteWhenEmpty").setDescription(`whether to delete this tabset when is has no tabs`);
|
|
436
|
+
attributeDefinitions.addInherited("enableDrop", "tabSetEnableDrop").setDescription(`allow user to drag tabs into this tabset`);
|
|
437
|
+
attributeDefinitions.addInherited("enableDrag", "tabSetEnableDrag").setDescription(`allow user to drag tabs out this tabset`);
|
|
438
|
+
attributeDefinitions.addInherited("enableDivide", "tabSetEnableDivide").setDescription(`allow user to drag tabs to region of this tabset, splitting into new tabset`);
|
|
439
|
+
attributeDefinitions.addInherited("enableMaximize", "tabSetEnableMaximize").setDescription(`allow user to maximize tabset to fill view via maximize button`);
|
|
440
|
+
attributeDefinitions.addInherited("enableClose", "tabSetEnableClose").setDescription(`allow user to close tabset via a close button`);
|
|
441
|
+
attributeDefinitions.addInherited("enableSingleTabStretch", "tabSetEnableSingleTabStretch").setDescription(`if the tabset has only a single tab then stretch the single tab to fill area and display in a header style`);
|
|
442
|
+
attributeDefinitions.addInherited("classNameTabStrip", "tabSetClassNameTabStrip").setDescription(`a class name to apply to the tab strip`);
|
|
443
|
+
attributeDefinitions.addInherited("enableTabStrip", "tabSetEnableTabStrip").setDescription(`enable tab strip and allow multiple tabs in this tabset`);
|
|
444
|
+
attributeDefinitions.addInherited("minWidth", "tabSetMinWidth").setDescription(`minimum width (in px) for this tabset`);
|
|
445
|
+
attributeDefinitions.addInherited("minHeight", "tabSetMinHeight").setDescription(`minimum height (in px) for this tabset`);
|
|
446
|
+
attributeDefinitions.addInherited("maxWidth", "tabSetMaxWidth").setDescription(`maximum width (in px) for this tabset`);
|
|
447
|
+
attributeDefinitions.addInherited("maxHeight", "tabSetMaxHeight").setDescription(`maximum height (in px) for this tabset`);
|
|
448
|
+
attributeDefinitions.addInherited("enableTabWrap", "tabSetEnableTabWrap").setDescription(`show tabs in location top or bottom`);
|
|
449
|
+
attributeDefinitions.addInherited("tabLocation", "tabSetTabLocation").setDescription(`the location of the tabs either top or bottom`);
|
|
450
|
+
attributeDefinitions.addInherited("autoSelectTab", "tabSetAutoSelectTab").setType(Attribute.BOOLEAN).setDescription(`whether to select new/moved tabs in tabset`);
|
|
451
|
+
attributeDefinitions.addInherited("enableActiveIcon", "tabSetEnableActiveIcon").setType(Attribute.BOOLEAN).setDescription(`whether the active icon (*) should be displayed when the tabset is active`);
|
|
452
|
+
return attributeDefinitions;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
TabSetNode.TYPE = "tabset";
|
|
456
|
+
/** @internal */
|
|
457
|
+
TabSetNode.attributeDefinitions = TabSetNode.createAttributeDefinitions();
|
|
447
458
|
//# sourceMappingURL=TabSetNode.js.map
|