flexlayout-react 0.8.10 → 0.8.12

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 (138) hide show
  1. package/ChangeLog.txt +9 -0
  2. package/README.md +28 -20
  3. package/declarations/view/BorderTab.d.ts +1 -2
  4. package/declarations/view/Icons.d.ts +7 -8
  5. package/declarations/view/Layout.d.ts +1 -1
  6. package/declarations/view/SizeTracker.d.ts +1 -1
  7. package/dist/flexlayout.js +49 -29
  8. package/dist/flexlayout_min.js +1 -1
  9. package/dist/flexlayout_min.js.LICENSE.txt +10 -0
  10. package/dist/src/Attribute.js +43 -0
  11. package/dist/src/Attribute.js.map +1 -0
  12. package/dist/src/AttributeDefinitions.js +132 -0
  13. package/dist/src/AttributeDefinitions.js.map +1 -0
  14. package/dist/src/DockLocation.js +121 -0
  15. package/dist/src/DockLocation.js.map +1 -0
  16. package/dist/src/DropInfo.js +10 -0
  17. package/dist/src/DropInfo.js.map +1 -0
  18. package/dist/src/I18nLabel.js +14 -0
  19. package/dist/src/I18nLabel.js.map +1 -0
  20. package/dist/src/Orientation.js +23 -0
  21. package/dist/src/Orientation.js.map +1 -0
  22. package/dist/src/Rect.js +111 -0
  23. package/dist/src/Rect.js.map +1 -0
  24. package/dist/src/Types.js +95 -0
  25. package/dist/src/Types.js.map +1 -0
  26. package/dist/src/index.js +22 -0
  27. package/dist/src/index.js.map +1 -0
  28. package/dist/src/model/Action.js +7 -0
  29. package/dist/src/model/Action.js.map +1 -0
  30. package/dist/src/model/Actions.js +170 -0
  31. package/dist/src/model/Actions.js.map +1 -0
  32. package/dist/src/model/BorderNode.js +390 -0
  33. package/dist/src/model/BorderNode.js.map +1 -0
  34. package/dist/src/model/BorderSet.js +67 -0
  35. package/dist/src/model/BorderSet.js.map +1 -0
  36. package/dist/src/model/ICloseType.js +7 -0
  37. package/dist/src/model/ICloseType.js.map +1 -0
  38. package/dist/src/model/IDraggable.js +2 -0
  39. package/dist/src/model/IDraggable.js.map +1 -0
  40. package/dist/src/model/IDropTarget.js +2 -0
  41. package/dist/src/model/IDropTarget.js.map +1 -0
  42. package/dist/src/model/IJsonModel.js +2 -0
  43. package/dist/src/model/IJsonModel.js.map +1 -0
  44. package/dist/src/model/LayoutWindow.js +81 -0
  45. package/dist/src/model/LayoutWindow.js.map +1 -0
  46. package/dist/src/model/Model.js +608 -0
  47. package/dist/src/model/Model.js.map +1 -0
  48. package/dist/src/model/Node.js +218 -0
  49. package/dist/src/model/Node.js.map +1 -0
  50. package/dist/src/model/RowNode.js +492 -0
  51. package/dist/src/model/RowNode.js.map +1 -0
  52. package/dist/src/model/TabNode.js +293 -0
  53. package/dist/src/model/TabNode.js.map +1 -0
  54. package/dist/src/model/TabSetNode.js +469 -0
  55. package/dist/src/model/TabSetNode.js.map +1 -0
  56. package/dist/src/model/Utils.js +48 -0
  57. package/dist/src/model/Utils.js.map +1 -0
  58. package/dist/src/view/BorderButton.js +126 -0
  59. package/dist/src/view/BorderButton.js.map +1 -0
  60. package/dist/src/view/BorderTab.js +44 -0
  61. package/dist/src/view/BorderTab.js.map +1 -0
  62. package/dist/src/view/BorderTabSet.js +138 -0
  63. package/dist/src/view/BorderTabSet.js.map +1 -0
  64. package/dist/src/view/DragContainer.js +16 -0
  65. package/dist/src/view/DragContainer.js.map +1 -0
  66. package/dist/src/view/ErrorBoundary.js +24 -0
  67. package/dist/src/view/ErrorBoundary.js.map +1 -0
  68. package/dist/src/view/Icons.js +29 -0
  69. package/dist/src/view/Icons.js.map +1 -0
  70. package/dist/src/view/Layout.js +881 -0
  71. package/dist/src/view/Layout.js.map +1 -0
  72. package/dist/src/view/Overlay.js +9 -0
  73. package/dist/src/view/Overlay.js.map +1 -0
  74. package/dist/src/view/PopoutWindow.js +129 -0
  75. package/dist/src/view/PopoutWindow.js.map +1 -0
  76. package/dist/src/view/PopupMenu.js +89 -0
  77. package/dist/src/view/PopupMenu.js.map +1 -0
  78. package/dist/src/view/Row.js +46 -0
  79. package/dist/src/view/Row.js.map +1 -0
  80. package/dist/src/view/SizeTracker.js +12 -0
  81. package/dist/src/view/SizeTracker.js.map +1 -0
  82. package/dist/src/view/Splitter.js +192 -0
  83. package/dist/src/view/Splitter.js.map +1 -0
  84. package/dist/src/view/Tab.js +91 -0
  85. package/dist/src/view/Tab.js.map +1 -0
  86. package/dist/src/view/TabButton.js +124 -0
  87. package/dist/src/view/TabButton.js.map +1 -0
  88. package/dist/src/view/TabButtonStamp.js +15 -0
  89. package/dist/src/view/TabButtonStamp.js.map +1 -0
  90. package/dist/src/view/TabOverflowHook.js +266 -0
  91. package/dist/src/view/TabOverflowHook.js.map +1 -0
  92. package/dist/src/view/TabSet.js +256 -0
  93. package/dist/src/view/TabSet.js.map +1 -0
  94. package/dist/src/view/Utils.js +110 -0
  95. package/dist/src/view/Utils.js.map +1 -0
  96. package/lib/view/BorderButton.js +6 -8
  97. package/lib/view/BorderButton.js.map +1 -1
  98. package/lib/view/BorderTab.js +18 -9
  99. package/lib/view/BorderTab.js.map +1 -1
  100. package/lib/view/BorderTabSet.js +11 -17
  101. package/lib/view/BorderTabSet.js.map +1 -1
  102. package/lib/view/DragContainer.js +2 -2
  103. package/lib/view/DragContainer.js.map +1 -1
  104. package/lib/view/ErrorBoundary.js +2 -2
  105. package/lib/view/ErrorBoundary.js.map +1 -1
  106. package/lib/view/Icons.js +8 -20
  107. package/lib/view/Icons.js.map +1 -1
  108. package/lib/view/Layout.js +36 -79
  109. package/lib/view/Layout.js.map +1 -1
  110. package/lib/view/Overlay.js +2 -2
  111. package/lib/view/Overlay.js.map +1 -1
  112. package/lib/view/PopupMenu.js +4 -5
  113. package/lib/view/PopupMenu.js.map +1 -1
  114. package/lib/view/Row.js +5 -4
  115. package/lib/view/Row.js.map +1 -1
  116. package/lib/view/SizeTracker.js +2 -1
  117. package/lib/view/SizeTracker.js.map +1 -1
  118. package/lib/view/Splitter.js +9 -4
  119. package/lib/view/Splitter.js.map +1 -1
  120. package/lib/view/Tab.js +3 -4
  121. package/lib/view/Tab.js.map +1 -1
  122. package/lib/view/TabButton.js +6 -8
  123. package/lib/view/TabButton.js.map +1 -1
  124. package/lib/view/TabButtonStamp.js +4 -6
  125. package/lib/view/TabButtonStamp.js.map +1 -1
  126. package/lib/view/TabSet.js +38 -42
  127. package/lib/view/TabSet.js.map +1 -1
  128. package/lib/view/Utils.js +3 -3
  129. package/lib/view/Utils.js.map +1 -1
  130. package/package.json +87 -82
  131. package/src/view/BorderTab.tsx +18 -7
  132. package/src/view/Icons.tsx +0 -2
  133. package/src/view/Layout.tsx +2 -2
  134. package/src/view/Overlay.tsx +0 -1
  135. package/src/view/Splitter.tsx +6 -0
  136. package/src/view/TabButtonStamp.tsx +0 -1
  137. package/src/view/TabSet.tsx +16 -7
  138. package/eslint.config.mjs +0 -19
@@ -0,0 +1,293 @@
1
+ import { Attribute } from "../Attribute";
2
+ import { AttributeDefinitions } from "../AttributeDefinitions";
3
+ import { Rect } from "../Rect";
4
+ import { Model } from "./Model";
5
+ import { Node } from "./Node";
6
+ import { TabSetNode } from "./TabSetNode";
7
+ export class TabNode extends Node {
8
+ /** @internal */
9
+ static fromJson(json, model, addToModel = true) {
10
+ const newLayoutNode = new TabNode(model, json, addToModel);
11
+ return newLayoutNode;
12
+ }
13
+ /** @internal */
14
+ constructor(model, json, addToModel = true) {
15
+ super(model);
16
+ /** @internal */
17
+ this.tabRect = Rect.empty();
18
+ this.extra = {}; // extra data added to node not saved in json
19
+ this.moveableElement = null;
20
+ this.tabStamp = null;
21
+ this.rendered = false;
22
+ this.visible = false;
23
+ TabNode.attributeDefinitions.fromJson(json, this.attributes);
24
+ if (addToModel === true) {
25
+ model.addNode(this);
26
+ }
27
+ }
28
+ getName() {
29
+ return this.getAttr("name");
30
+ }
31
+ getHelpText() {
32
+ return this.getAttr("helpText");
33
+ }
34
+ getComponent() {
35
+ return this.getAttr("component");
36
+ }
37
+ getWindowId() {
38
+ if (this.parent instanceof TabSetNode) {
39
+ return this.parent.getWindowId();
40
+ }
41
+ return Model.MAIN_WINDOW_ID;
42
+ }
43
+ getWindow() {
44
+ const layoutWindow = this.model.getwindowsMap().get(this.getWindowId());
45
+ if (layoutWindow) {
46
+ return layoutWindow.window;
47
+ }
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Returns the config attribute that can be used to store node specific data that
52
+ * WILL be saved to the json. The config attribute should be changed via the action Actions.updateNodeAttributes rather
53
+ * than directly, for example:
54
+ * this.state.model.doAction(
55
+ * FlexLayout.Actions.updateNodeAttributes(node.getId(), {config:myConfigObject}));
56
+ */
57
+ getConfig() {
58
+ return this.attributes.config;
59
+ }
60
+ /**
61
+ * Returns an object that can be used to store transient node specific data that will
62
+ * NOT be saved in the json.
63
+ */
64
+ getExtraData() {
65
+ return this.extra;
66
+ }
67
+ isPoppedOut() {
68
+ return this.getWindowId() !== Model.MAIN_WINDOW_ID;
69
+ }
70
+ isSelected() {
71
+ return this.getParent().getSelectedNode() === this;
72
+ }
73
+ getIcon() {
74
+ return this.getAttr("icon");
75
+ }
76
+ isEnableClose() {
77
+ return this.getAttr("enableClose");
78
+ }
79
+ getCloseType() {
80
+ return this.getAttr("closeType");
81
+ }
82
+ isEnablePopout() {
83
+ return this.getAttr("enablePopout");
84
+ }
85
+ isEnablePopoutIcon() {
86
+ return this.getAttr("enablePopoutIcon");
87
+ }
88
+ isEnablePopoutOverlay() {
89
+ return this.getAttr("enablePopoutOverlay");
90
+ }
91
+ isEnableDrag() {
92
+ return this.getAttr("enableDrag");
93
+ }
94
+ isEnableRename() {
95
+ return this.getAttr("enableRename");
96
+ }
97
+ isEnableWindowReMount() {
98
+ return this.getAttr("enableWindowReMount");
99
+ }
100
+ getClassName() {
101
+ return this.getAttr("className");
102
+ }
103
+ getContentClassName() {
104
+ return this.getAttr("contentClassName");
105
+ }
106
+ getTabSetClassName() {
107
+ return this.getAttr("tabsetClassName");
108
+ }
109
+ isEnableRenderOnDemand() {
110
+ return this.getAttr("enableRenderOnDemand");
111
+ }
112
+ getMinWidth() {
113
+ return this.getAttr("minWidth");
114
+ }
115
+ getMinHeight() {
116
+ return this.getAttr("minHeight");
117
+ }
118
+ getMaxWidth() {
119
+ return this.getAttr("maxWidth");
120
+ }
121
+ getMaxHeight() {
122
+ return this.getAttr("maxHeight");
123
+ }
124
+ isVisible() {
125
+ return this.visible;
126
+ }
127
+ toJson() {
128
+ const json = {};
129
+ TabNode.attributeDefinitions.toJson(json, this.attributes);
130
+ return json;
131
+ }
132
+ /** @internal */
133
+ saveScrollPosition() {
134
+ if (this.moveableElement) {
135
+ this.scrollLeft = this.moveableElement.scrollLeft;
136
+ this.scrollTop = this.moveableElement.scrollTop;
137
+ // console.log("save", this.getName(), this.scrollTop);
138
+ }
139
+ }
140
+ /** @internal */
141
+ restoreScrollPosition() {
142
+ if (this.scrollTop) {
143
+ requestAnimationFrame(() => {
144
+ if (this.moveableElement) {
145
+ if (this.scrollTop) {
146
+ // console.log("restore", this.getName(), this.scrollTop);
147
+ this.moveableElement.scrollTop = this.scrollTop;
148
+ this.moveableElement.scrollLeft = this.scrollLeft;
149
+ }
150
+ }
151
+ });
152
+ }
153
+ }
154
+ /** @internal */
155
+ setRect(rect) {
156
+ if (!rect.equals(this.rect)) {
157
+ this.fireEvent("resize", { rect });
158
+ this.rect = rect;
159
+ }
160
+ }
161
+ /** @internal */
162
+ setVisible(visible) {
163
+ if (visible !== this.visible) {
164
+ this.visible = visible;
165
+ this.fireEvent("visibility", { visible });
166
+ }
167
+ }
168
+ /** @internal */
169
+ getScrollTop() {
170
+ return this.scrollTop;
171
+ }
172
+ /** @internal */
173
+ setScrollTop(scrollTop) {
174
+ this.scrollTop = scrollTop;
175
+ }
176
+ /** @internal */
177
+ getScrollLeft() {
178
+ return this.scrollLeft;
179
+ }
180
+ /** @internal */
181
+ setScrollLeft(scrollLeft) {
182
+ this.scrollLeft = scrollLeft;
183
+ }
184
+ /** @internal */
185
+ isRendered() {
186
+ return this.rendered;
187
+ }
188
+ /** @internal */
189
+ setRendered(rendered) {
190
+ this.rendered = rendered;
191
+ }
192
+ /** @internal */
193
+ getTabRect() {
194
+ return this.tabRect;
195
+ }
196
+ /** @internal */
197
+ setTabRect(rect) {
198
+ this.tabRect = rect;
199
+ }
200
+ /** @internal */
201
+ getTabStamp() {
202
+ return this.tabStamp;
203
+ }
204
+ /** @internal */
205
+ setTabStamp(stamp) {
206
+ this.tabStamp = stamp;
207
+ }
208
+ /** @internal */
209
+ getMoveableElement() {
210
+ return this.moveableElement;
211
+ }
212
+ /** @internal */
213
+ setMoveableElement(element) {
214
+ this.moveableElement = element;
215
+ }
216
+ /** @internal */
217
+ setRenderedName(name) {
218
+ this.renderedName = name;
219
+ }
220
+ /** @internal */
221
+ getNameForOverflowMenu() {
222
+ const altName = this.getAttr("altName");
223
+ if (altName !== undefined) {
224
+ return altName;
225
+ }
226
+ return this.renderedName;
227
+ }
228
+ /** @internal */
229
+ setName(name) {
230
+ this.attributes.name = name;
231
+ }
232
+ /** @internal */
233
+ delete() {
234
+ this.parent.remove(this);
235
+ this.fireEvent("close", {});
236
+ }
237
+ /** @internal */
238
+ updateAttrs(json) {
239
+ TabNode.attributeDefinitions.update(json, this.attributes);
240
+ }
241
+ /** @internal */
242
+ getAttributeDefinitions() {
243
+ return TabNode.attributeDefinitions;
244
+ }
245
+ /** @internal */
246
+ setBorderWidth(width) {
247
+ this.attributes.borderWidth = width;
248
+ }
249
+ /** @internal */
250
+ setBorderHeight(height) {
251
+ this.attributes.borderHeight = height;
252
+ }
253
+ /** @internal */
254
+ static getAttributeDefinitions() {
255
+ return TabNode.attributeDefinitions;
256
+ }
257
+ /** @internal */
258
+ static createAttributeDefinitions() {
259
+ const attributeDefinitions = new AttributeDefinitions();
260
+ attributeDefinitions.add("type", TabNode.TYPE, true).setType(Attribute.STRING).setFixed();
261
+ attributeDefinitions.add("id", undefined).setType(Attribute.STRING).setDescription(`the unique id of the tab, if left undefined a uuid will be assigned`);
262
+ attributeDefinitions.add("name", "[Unnamed Tab]").setType(Attribute.STRING).setDescription(`name of tab to be displayed in the tab button`);
263
+ attributeDefinitions.add("altName", undefined).setType(Attribute.STRING).setDescription(`if there is no name specifed then this value will be used in the overflow menu`);
264
+ attributeDefinitions.add("helpText", undefined).setType(Attribute.STRING).setDescription(`An optional help text for the tab to be displayed upon tab hover.`);
265
+ attributeDefinitions.add("component", undefined).setType(Attribute.STRING).setDescription(`string identifying which component to run (for factory)`);
266
+ attributeDefinitions.add("config", undefined).setType("any").setDescription(`a place to hold json config for the hosted component`);
267
+ attributeDefinitions.add("tabsetClassName", undefined).setType(Attribute.STRING).setDescription(`class applied to parent tabset when this is the only tab and it is stretched to fill the tabset`);
268
+ attributeDefinitions.add("enableWindowReMount", false).setType(Attribute.BOOLEAN).setDescription(`if enabled the tab will re-mount when popped out/in`);
269
+ attributeDefinitions.addInherited("enableClose", "tabEnableClose").setType(Attribute.BOOLEAN).setDescription(`allow user to close tab via close button`);
270
+ attributeDefinitions.addInherited("closeType", "tabCloseType").setType("ICloseType").setDescription(`see values in ICloseType`);
271
+ attributeDefinitions.addInherited("enableDrag", "tabEnableDrag").setType(Attribute.BOOLEAN).setDescription(`allow user to drag tab to new location`);
272
+ attributeDefinitions.addInherited("enableRename", "tabEnableRename").setType(Attribute.BOOLEAN).setDescription(`allow user to rename tabs by double clicking`);
273
+ attributeDefinitions.addInherited("className", "tabClassName").setType(Attribute.STRING).setDescription(`class applied to tab button`);
274
+ attributeDefinitions.addInherited("contentClassName", "tabContentClassName").setType(Attribute.STRING).setDescription(`class applied to tab content`);
275
+ attributeDefinitions.addInherited("icon", "tabIcon").setType(Attribute.STRING).setDescription(`the tab icon`);
276
+ attributeDefinitions.addInherited("enableRenderOnDemand", "tabEnableRenderOnDemand").setType(Attribute.BOOLEAN).setDescription(`whether to avoid rendering component until tab is visible`);
277
+ attributeDefinitions.addInherited("enablePopout", "tabEnablePopout").setType(Attribute.BOOLEAN).setAlias("enableFloat").setDescription(`enable popout (in popout capable browser)`);
278
+ attributeDefinitions.addInherited("enablePopoutIcon", "tabEnablePopoutIcon").setType(Attribute.BOOLEAN).setDescription(`whether to show the popout icon in the tabset header if this tab enables popouts`);
279
+ attributeDefinitions.addInherited("enablePopoutOverlay", "tabEnablePopoutOverlay").setType(Attribute.BOOLEAN).setDescription(`if this tab will not work correctly in a popout window when the main window is backgrounded (inactive)
280
+ then enabling this option will gray out this tab`);
281
+ attributeDefinitions.addInherited("borderWidth", "tabBorderWidth").setType(Attribute.NUMBER).setDescription(`width when added to border, -1 will use border size`);
282
+ attributeDefinitions.addInherited("borderHeight", "tabBorderHeight").setType(Attribute.NUMBER).setDescription(`height when added to border, -1 will use border size`);
283
+ attributeDefinitions.addInherited("minWidth", "tabMinWidth").setType(Attribute.NUMBER).setDescription(`the min width of this tab`);
284
+ attributeDefinitions.addInherited("minHeight", "tabMinHeight").setType(Attribute.NUMBER).setDescription(`the min height of this tab`);
285
+ attributeDefinitions.addInherited("maxWidth", "tabMaxWidth").setType(Attribute.NUMBER).setDescription(`the max width of this tab`);
286
+ attributeDefinitions.addInherited("maxHeight", "tabMaxHeight").setType(Attribute.NUMBER).setDescription(`the max height of this tab`);
287
+ return attributeDefinitions;
288
+ }
289
+ }
290
+ TabNode.TYPE = "tab";
291
+ /** @internal */
292
+ TabNode.attributeDefinitions = TabNode.createAttributeDefinitions();
293
+ //# sourceMappingURL=TabNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabNode.js","sourceRoot":"","sources":["../../../src/model/TabNode.ts"],"names":[],"mappings":"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"}