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,235 +1,268 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TabSet = void 0;
4
- const React = require("react");
5
- const I18nLabel_1 = require("../I18nLabel");
6
- const Actions_1 = require("../model/Actions");
7
- const PopupMenu_1 = require("../PopupMenu");
8
- const TabButton_1 = require("./TabButton");
9
- const TabOverflowHook_1 = require("./TabOverflowHook");
10
- const Orientation_1 = require("../Orientation");
11
- const Types_1 = require("../Types");
12
- const Utils_1 = require("./Utils");
13
- /** @internal */
14
- const TabSet = (props) => {
15
- const { node, layout, iconFactory, titleFactory, icons, path } = props;
16
- const toolbarRef = React.useRef(null);
17
- const overflowbuttonRef = React.useRef(null);
18
- const tabbarInnerRef = React.useRef(null);
19
- const stickyButtonsRef = React.useRef(null);
20
- const { selfRef, position, userControlledLeft, hiddenTabs, onMouseWheel, tabsTruncated } = (0, TabOverflowHook_1.useTabOverflow)(node, Orientation_1.Orientation.HORZ, toolbarRef, stickyButtonsRef);
21
- const onOverflowClick = (event) => {
22
- const callback = layout.getShowOverflowMenu();
23
- if (callback !== undefined) {
24
- callback(node, event, hiddenTabs, onOverflowItemSelect);
25
- }
26
- else {
27
- const element = overflowbuttonRef.current;
28
- (0, PopupMenu_1.showPopup)(element, hiddenTabs, onOverflowItemSelect, layout, iconFactory, titleFactory);
29
- }
30
- event.stopPropagation();
31
- };
32
- const onOverflowItemSelect = (item) => {
33
- layout.doAction(Actions_1.Actions.selectTab(item.node.getId()));
34
- userControlledLeft.current = false;
35
- };
36
- const onMouseDown = (event) => {
37
- if (!(0, Utils_1.isAuxMouseEvent)(event)) {
38
- let name = node.getName();
39
- if (name === undefined) {
40
- name = "";
41
- }
42
- else {
43
- name = ": " + name;
44
- }
45
- layout.doAction(Actions_1.Actions.setActiveTabset(node.getId()));
46
- if (!layout.getEditingTab()) {
47
- const message = layout.i18nName(I18nLabel_1.I18nLabel.Move_Tabset, name);
48
- if (node.getModel().getMaximizedTabset() !== undefined) {
49
- layout.dragStart(event, message, node, false, (event2) => undefined, onDoubleClick);
50
- }
51
- else {
52
- layout.dragStart(event, message, node, node.isEnableDrag(), (event2) => undefined, onDoubleClick);
53
- }
54
- }
55
- }
56
- };
57
- const onAuxMouseClick = (event) => {
58
- if ((0, Utils_1.isAuxMouseEvent)(event)) {
59
- layout.auxMouseClick(node, event);
60
- }
61
- };
62
- const onContextMenu = (event) => {
63
- layout.showContextMenu(node, event);
64
- };
65
- const onInterceptMouseDown = (event) => {
66
- event.stopPropagation();
67
- };
68
- const onMaximizeToggle = (event) => {
69
- if (node.canMaximize()) {
70
- layout.maximize(node);
71
- }
72
- event.stopPropagation();
73
- };
74
- const onClose = (event) => {
75
- layout.doAction(Actions_1.Actions.deleteTabset(node.getId()));
76
- event.stopPropagation();
77
- };
78
- const onCloseTab = (event) => {
79
- layout.doAction(Actions_1.Actions.deleteTab(node.getChildren()[0].getId()));
80
- event.stopPropagation();
81
- };
82
- const onFloatTab = (event) => {
83
- if (selectedTabNode !== undefined) {
84
- layout.doAction(Actions_1.Actions.floatTab(selectedTabNode.getId()));
85
- }
86
- event.stopPropagation();
87
- };
88
- const onDoubleClick = (event) => {
89
- if (node.canMaximize()) {
90
- layout.maximize(node);
91
- }
92
- };
93
- // Start Render
94
- const cm = layout.getClassName;
95
- // tabbar inner can get shifted left via tab rename, this resets scrollleft to 0
96
- if (tabbarInnerRef.current !== null && tabbarInnerRef.current.scrollLeft !== 0) {
97
- tabbarInnerRef.current.scrollLeft = 0;
98
- }
99
- const selectedTabNode = node.getSelectedNode();
100
- let style = node._styleWithPosition();
101
- if (node.getModel().getMaximizedTabset() !== undefined && !node.isMaximized()) {
102
- (0, Utils_1.hideElement)(style, node.getModel().isUseVisibility());
103
- }
104
- const tabs = [];
105
- if (node.isEnableTabStrip()) {
106
- for (let i = 0; i < node.getChildren().length; i++) {
107
- const child = node.getChildren()[i];
108
- let isSelected = node.getSelected() === i;
109
- tabs.push(React.createElement(TabButton_1.TabButton, { layout: layout, node: child, path: path + "/tb" + i, key: child.getId(), selected: isSelected, iconFactory: iconFactory, titleFactory: titleFactory, icons: icons }));
110
- if (i < node.getChildren().length - 1) {
111
- tabs.push(React.createElement("div", { key: "divider" + i, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TAB_DIVIDER) }));
112
- }
113
- }
114
- }
115
- const showHeader = node.getName() !== undefined;
116
- let stickyButtons = [];
117
- let buttons = [];
118
- let headerButtons = [];
119
- // allow customization of header contents and buttons
120
- const renderState = { headerContent: node.getName(), stickyButtons, buttons, headerButtons, overflowPosition: undefined };
121
- layout.customizeTabSet(node, renderState);
122
- const headerContent = renderState.headerContent;
123
- stickyButtons = renderState.stickyButtons;
124
- buttons = renderState.buttons;
125
- headerButtons = renderState.headerButtons;
126
- const isTabStretch = node.isEnableSingleTabStretch() && node.getChildren().length === 1;
127
- const showClose = (isTabStretch && (node.getChildren()[0].isEnableClose())) || node.isEnableClose();
128
- if (renderState.overflowPosition === undefined) {
129
- renderState.overflowPosition = stickyButtons.length;
130
- }
131
- if (stickyButtons.length > 0) {
132
- if (tabsTruncated || isTabStretch) {
133
- buttons = [...stickyButtons, ...buttons];
134
- }
135
- else {
136
- tabs.push(React.createElement("div", { ref: stickyButtonsRef, key: "sticky_buttons_container", onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown, onDragStart: (e) => { e.preventDefault(); }, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER) }, stickyButtons));
137
- }
138
- }
139
- if (hiddenTabs.length > 0) {
140
- const overflowTitle = layout.i18nName(I18nLabel_1.I18nLabel.Overflow_Menu_Tooltip);
141
- let overflowContent;
142
- if (typeof icons.more === "function") {
143
- overflowContent = icons.more(node, hiddenTabs);
144
- }
145
- else {
146
- overflowContent = (React.createElement(React.Fragment, null,
147
- icons.more,
148
- React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_BUTTON_OVERFLOW_COUNT) }, hiddenTabs.length)));
149
- }
150
- buttons.splice(Math.min(renderState.overflowPosition, buttons.length), 0, React.createElement("button", { key: "overflowbutton", "data-layout-path": path + "/button/overflow", ref: overflowbuttonRef, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TAB_BUTTON_OVERFLOW), title: overflowTitle, onClick: onOverflowClick, onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown }, overflowContent));
151
- }
152
- if (selectedTabNode !== undefined && layout.isSupportsPopout() && selectedTabNode.isEnableFloat() && !selectedTabNode.isFloating()) {
153
- const floatTitle = layout.i18nName(I18nLabel_1.I18nLabel.Float_Tab);
154
- buttons.push(React.createElement("button", { key: "float", "data-layout-path": path + "/button/float", title: floatTitle, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON_FLOAT), onClick: onFloatTab, onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown }, (typeof icons.popout === "function") ? icons.popout(selectedTabNode) : icons.popout));
155
- }
156
- if (node.canMaximize()) {
157
- const minTitle = layout.i18nName(I18nLabel_1.I18nLabel.Restore);
158
- const maxTitle = layout.i18nName(I18nLabel_1.I18nLabel.Maximize);
159
- const btns = showHeader ? headerButtons : buttons;
160
- btns.push(React.createElement("button", { key: "max", "data-layout-path": path + "/button/max", title: node.isMaximized() ? minTitle : maxTitle, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON_ + (node.isMaximized() ? "max" : "min")), onClick: onMaximizeToggle, onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown }, node.isMaximized() ?
161
- (typeof icons.restore === "function") ? icons.restore(node) : icons.restore :
162
- (typeof icons.maximize === "function") ? icons.maximize(node) : icons.maximize));
163
- }
164
- if (!node.isMaximized() && showClose) {
165
- const title = isTabStretch ? layout.i18nName(I18nLabel_1.I18nLabel.Close_Tab) : layout.i18nName(I18nLabel_1.I18nLabel.Close_Tabset);
166
- const btns = showHeader ? headerButtons : buttons;
167
- btns.push(React.createElement("button", { key: "close", "data-layout-path": path + "/button/close", title: title, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON_CLOSE), onClick: isTabStretch ? onCloseTab : onClose, onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown }, (typeof icons.closeTabset === "function") ? icons.closeTabset(node) : icons.closeTabset));
168
- }
169
- const toolbar = (React.createElement("div", { key: "toolbar", ref: toolbarRef, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR), onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown, onDragStart: (e) => { e.preventDefault(); } }, buttons));
170
- let header;
171
- let tabStrip;
172
- let tabStripClasses = cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_OUTER);
173
- if (node.getClassNameTabStrip() !== undefined) {
174
- tabStripClasses += " " + node.getClassNameTabStrip();
175
- }
176
- tabStripClasses += " " + Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_OUTER_ + node.getTabLocation();
177
- if (node.isActive() && !showHeader) {
178
- tabStripClasses += " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_SELECTED);
179
- }
180
- if (node.isMaximized() && !showHeader) {
181
- tabStripClasses += " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_MAXIMIZED);
182
- }
183
- if (isTabStretch) {
184
- const tabNode = node.getChildren()[0];
185
- if (tabNode.getTabSetClassName() !== undefined) {
186
- tabStripClasses += " " + tabNode.getTabSetClassName();
187
- }
188
- }
189
- if (showHeader) {
190
- const headerToolbar = (React.createElement("div", { key: "toolbar", ref: toolbarRef, className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_TOOLBAR), onMouseDown: onInterceptMouseDown, onTouchStart: onInterceptMouseDown, onDragStart: (e) => { e.preventDefault(); } }, headerButtons));
191
- let tabHeaderClasses = cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_HEADER);
192
- if (node.isActive()) {
193
- tabHeaderClasses += " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_SELECTED);
194
- }
195
- if (node.isMaximized()) {
196
- tabHeaderClasses += " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_MAXIMIZED);
197
- }
198
- if (node.getClassNameHeader() !== undefined) {
199
- tabHeaderClasses += " " + node.getClassNameHeader();
200
- }
201
- header = (React.createElement("div", { className: tabHeaderClasses, style: { height: node.getHeaderHeight() + "px" }, "data-layout-path": path + "/header", onMouseDown: onMouseDown, onContextMenu: onContextMenu, onClick: onAuxMouseClick, onAuxClick: onAuxMouseClick, onTouchStart: onMouseDown },
202
- React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_HEADER_CONTENT) }, headerContent),
203
- headerToolbar));
204
- }
205
- const tabStripStyle = { height: node.getTabStripHeight() + "px" };
206
- tabStrip = (React.createElement("div", { className: tabStripClasses, style: tabStripStyle, "data-layout-path": path + "/tabstrip", onMouseDown: onMouseDown, onContextMenu: onContextMenu, onClick: onAuxMouseClick, onAuxClick: onAuxMouseClick, onTouchStart: onMouseDown },
207
- React.createElement("div", { ref: tabbarInnerRef, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_ + node.getTabLocation()) },
208
- React.createElement("div", { style: { left: position, width: (isTabStretch ? "100%" : "10000px") }, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER_ + node.getTabLocation()) }, tabs)),
209
- toolbar));
210
- style = layout.styleFont(style);
211
- var placeHolder = undefined;
212
- if (node.getChildren().length === 0) {
213
- const placeHolderCallback = layout.getTabSetPlaceHolderCallback();
214
- if (placeHolderCallback) {
215
- placeHolder = placeHolderCallback(node);
216
- }
217
- }
218
- const center = React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_CONTENT) }, placeHolder);
219
- var content;
220
- if (node.getTabLocation() === "top") {
221
- content = React.createElement(React.Fragment, null,
222
- header,
223
- tabStrip,
224
- center);
225
- }
226
- else {
227
- content = React.createElement(React.Fragment, null,
228
- header,
229
- center,
230
- tabStrip);
231
- }
232
- return (React.createElement("div", { ref: selfRef, dir: "ltr", "data-layout-path": path, style: style, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET), onWheel: onMouseWheel }, content));
233
- };
234
- exports.TabSet = TabSet;
1
+ import * as React from "react";
2
+ import { I18nLabel } from "../I18nLabel";
3
+ import { Actions } from "../model/Actions";
4
+ import { showPopup } from "./PopupMenu";
5
+ import { TabButton } from "./TabButton";
6
+ import { useTabOverflow } from "./TabOverflowHook";
7
+ import { Orientation } from "../Orientation";
8
+ import { CLASSES } from "../Types";
9
+ import { isAuxMouseEvent } from "./Utils";
10
+ import { createPortal } from "react-dom";
11
+ import { Rect } from "../Rect";
12
+ /** @internal */
13
+ export const TabSet = (props) => {
14
+ const { node, layout } = props;
15
+ const tabStripRef = React.useRef(null);
16
+ const tabStripInnerRef = React.useRef(null);
17
+ const contentRef = React.useRef(null);
18
+ const buttonBarRef = React.useRef(null);
19
+ const overflowbuttonRef = React.useRef(null);
20
+ const stickyButtonsRef = React.useRef(null);
21
+ const icons = layout.getIcons();
22
+ // must use useEffect (rather than useLayoutEffect) otherwise contentrect not set correctly (has height 0 when changing theme in demo)
23
+ React.useEffect(() => {
24
+ node.setRect(layout.getBoundingClientRect(selfRef.current));
25
+ if (tabStripRef.current) {
26
+ node.setTabStripRect(layout.getBoundingClientRect(tabStripRef.current));
27
+ }
28
+ const newContentRect = Rect.getContentRect(contentRef.current).relativeTo(layout.getDomRect());
29
+ if (!node.getContentRect().equals(newContentRect)) {
30
+ node.setContentRect(newContentRect);
31
+ layout.redrawInternal("tabset content rect " + newContentRect);
32
+ }
33
+ });
34
+ // this must be after the useEffect, so the node rect is already set (else window popin will not position tabs correctly)
35
+ const { selfRef, position, userControlledLeft, hiddenTabs, onMouseWheel, tabsTruncated } = useTabOverflow(node, Orientation.HORZ, buttonBarRef, stickyButtonsRef);
36
+ const onOverflowClick = (event) => {
37
+ const callback = layout.getShowOverflowMenu();
38
+ if (callback !== undefined) {
39
+ callback(node, event, hiddenTabs, onOverflowItemSelect);
40
+ }
41
+ else {
42
+ const element = overflowbuttonRef.current;
43
+ showPopup(element, hiddenTabs, onOverflowItemSelect, layout);
44
+ }
45
+ event.stopPropagation();
46
+ };
47
+ const onOverflowItemSelect = (item) => {
48
+ layout.doAction(Actions.selectTab(item.node.getId()));
49
+ userControlledLeft.current = false;
50
+ };
51
+ const onDragStart = (event) => {
52
+ if (!layout.getEditingTab()) {
53
+ event.stopPropagation();
54
+ layout.setDragNode(event.nativeEvent, node);
55
+ }
56
+ else {
57
+ event.preventDefault();
58
+ }
59
+ };
60
+ const onPointerDown = (event) => {
61
+ if (!isAuxMouseEvent(event)) {
62
+ let name = node.getName();
63
+ if (name === undefined) {
64
+ name = "";
65
+ }
66
+ else {
67
+ name = ": " + name;
68
+ }
69
+ layout.doAction(Actions.setActiveTabset(node.getId(), layout.getWindowId()));
70
+ }
71
+ };
72
+ const onAuxMouseClick = (event) => {
73
+ if (isAuxMouseEvent(event)) {
74
+ layout.auxMouseClick(node, event);
75
+ }
76
+ };
77
+ const onContextMenu = (event) => {
78
+ layout.showContextMenu(node, event);
79
+ };
80
+ const onInterceptPointerDown = (event) => {
81
+ event.stopPropagation();
82
+ };
83
+ const onMaximizeToggle = (event) => {
84
+ if (node.canMaximize()) {
85
+ layout.maximize(node);
86
+ }
87
+ event.stopPropagation();
88
+ };
89
+ const onClose = (event) => {
90
+ layout.doAction(Actions.deleteTabset(node.getId()));
91
+ event.stopPropagation();
92
+ };
93
+ const onCloseTab = (event) => {
94
+ layout.doAction(Actions.deleteTab(node.getChildren()[0].getId()));
95
+ event.stopPropagation();
96
+ };
97
+ const onPopoutTab = (event) => {
98
+ if (selectedTabNode !== undefined) {
99
+ layout.doAction(Actions.popoutTab(selectedTabNode.getId()));
100
+ // layout.doAction(Actions.popoutTabset(node.getId()));
101
+ }
102
+ event.stopPropagation();
103
+ };
104
+ const onDoubleClick = (event) => {
105
+ if (node.canMaximize()) {
106
+ layout.maximize(node);
107
+ }
108
+ };
109
+ // Start Render
110
+ const cm = layout.getClassName;
111
+ // tabbar inner can get shifted left via tab rename, this resets scrollleft to 0
112
+ if (tabStripInnerRef.current !== null && tabStripInnerRef.current.scrollLeft !== 0) {
113
+ tabStripInnerRef.current.scrollLeft = 0;
114
+ }
115
+ const selectedTabNode = node.getSelectedNode();
116
+ const path = node.getPath();
117
+ const tabs = [];
118
+ if (node.isEnableTabStrip()) {
119
+ for (let i = 0; i < node.getChildren().length; i++) {
120
+ const child = node.getChildren()[i];
121
+ let isSelected = node.getSelected() === i;
122
+ tabs.push(React.createElement(TabButton, { layout: layout, node: child, path: path + "/tb" + i, key: child.getId(), selected: isSelected }));
123
+ if (i < node.getChildren().length - 1) {
124
+ tabs.push(React.createElement("div", { key: "divider" + i, className: cm(CLASSES.FLEXLAYOUT__TABSET_TAB_DIVIDER) }));
125
+ }
126
+ }
127
+ }
128
+ let stickyButtons = [];
129
+ let buttons = [];
130
+ // allow customization of header contents and buttons
131
+ const renderState = { stickyButtons, buttons, overflowPosition: undefined };
132
+ layout.customizeTabSet(node, renderState);
133
+ stickyButtons = renderState.stickyButtons;
134
+ buttons = renderState.buttons;
135
+ const isTabStretch = node.isEnableSingleTabStretch() && node.getChildren().length === 1;
136
+ const showClose = (isTabStretch && (node.getChildren()[0].isEnableClose())) || node.isEnableClose();
137
+ if (renderState.overflowPosition === undefined) {
138
+ renderState.overflowPosition = stickyButtons.length;
139
+ }
140
+ if (stickyButtons.length > 0) {
141
+ if (!node.isEnableTabWrap() && (tabsTruncated || isTabStretch)) {
142
+ buttons = [...stickyButtons, ...buttons];
143
+ }
144
+ else {
145
+ tabs.push(React.createElement("div", { ref: stickyButtonsRef, key: "sticky_buttons_container", onPointerDown: onInterceptPointerDown, onDragStart: (e) => { e.preventDefault(); }, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER) }, stickyButtons));
146
+ }
147
+ }
148
+ if (!node.isEnableTabWrap()) {
149
+ if (hiddenTabs.length > 0) {
150
+ const overflowTitle = layout.i18nName(I18nLabel.Overflow_Menu_Tooltip);
151
+ let overflowContent;
152
+ if (typeof icons.more === "function") {
153
+ overflowContent = icons.more(node, hiddenTabs);
154
+ }
155
+ else {
156
+ overflowContent = (React.createElement(React.Fragment, null,
157
+ icons.more,
158
+ React.createElement("div", { className: cm(CLASSES.FLEXLAYOUT__TAB_BUTTON_OVERFLOW_COUNT) }, hiddenTabs.length)));
159
+ }
160
+ buttons.splice(Math.min(renderState.overflowPosition, buttons.length), 0, React.createElement("button", { key: "overflowbutton", "data-layout-path": path + "/button/overflow", ref: overflowbuttonRef, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(CLASSES.FLEXLAYOUT__TAB_BUTTON_OVERFLOW), title: overflowTitle, onClick: onOverflowClick, onPointerDown: onInterceptPointerDown }, overflowContent));
161
+ }
162
+ }
163
+ if (selectedTabNode !== undefined &&
164
+ layout.isSupportsPopout() &&
165
+ selectedTabNode.isEnablePopout() &&
166
+ selectedTabNode.isEnablePopoutIcon()) {
167
+ const popoutTitle = layout.i18nName(I18nLabel.Popout_Tab);
168
+ buttons.push(React.createElement("button", { key: "popout", "data-layout-path": path + "/button/popout", title: popoutTitle, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON_FLOAT), onClick: onPopoutTab, onPointerDown: onInterceptPointerDown }, (typeof icons.popout === "function") ? icons.popout(selectedTabNode) : icons.popout));
169
+ }
170
+ if (node.canMaximize()) {
171
+ const minTitle = layout.i18nName(I18nLabel.Restore);
172
+ const maxTitle = layout.i18nName(I18nLabel.Maximize);
173
+ buttons.push(React.createElement("button", { key: "max", "data-layout-path": path + "/button/max", title: node.isMaximized() ? minTitle : maxTitle, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON_ + (node.isMaximized() ? "max" : "min")), onClick: onMaximizeToggle, onPointerDown: onInterceptPointerDown }, node.isMaximized() ?
174
+ (typeof icons.restore === "function") ? icons.restore(node) : icons.restore :
175
+ (typeof icons.maximize === "function") ? icons.maximize(node) : icons.maximize));
176
+ }
177
+ if (!node.isMaximized() && showClose) {
178
+ const title = isTabStretch ? layout.i18nName(I18nLabel.Close_Tab) : layout.i18nName(I18nLabel.Close_Tabset);
179
+ buttons.push(React.createElement("button", { key: "close", "data-layout-path": path + "/button/close", title: title, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON) + " " + cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_BUTTON_CLOSE), onClick: isTabStretch ? onCloseTab : onClose, onPointerDown: onInterceptPointerDown }, (typeof icons.closeTabset === "function") ? icons.closeTabset(node) : icons.closeTabset));
180
+ }
181
+ if (node.isActive() && node.isEnableActiveIcon()) {
182
+ const title = layout.i18nName(I18nLabel.Active_Tabset);
183
+ buttons.push(React.createElement("div", { key: "active", "data-layout-path": path + "/button/active", title: title, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_ICON) }, (typeof icons.activeTabset === "function") ? icons.activeTabset(node) : icons.activeTabset));
184
+ }
185
+ const buttonbar = (React.createElement("div", { key: "buttonbar", ref: buttonBarRef, className: cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR), onPointerDown: onInterceptPointerDown, onDragStart: (e) => { e.preventDefault(); } }, buttons));
186
+ let tabStrip;
187
+ let tabStripClasses = cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_OUTER);
188
+ if (node.getClassNameTabStrip() !== undefined) {
189
+ tabStripClasses += " " + node.getClassNameTabStrip();
190
+ }
191
+ tabStripClasses += " " + CLASSES.FLEXLAYOUT__TABSET_TABBAR_OUTER_ + node.getTabLocation();
192
+ if (node.isActive()) {
193
+ tabStripClasses += " " + cm(CLASSES.FLEXLAYOUT__TABSET_SELECTED);
194
+ }
195
+ if (node.isMaximized()) {
196
+ tabStripClasses += " " + cm(CLASSES.FLEXLAYOUT__TABSET_MAXIMIZED);
197
+ }
198
+ if (isTabStretch) {
199
+ const tabNode = node.getChildren()[0];
200
+ if (tabNode.getTabSetClassName() !== undefined) {
201
+ tabStripClasses += " " + tabNode.getTabSetClassName();
202
+ }
203
+ }
204
+ if (node.isEnableTabWrap()) {
205
+ if (node.isEnableTabStrip()) {
206
+ tabStrip = (React.createElement("div", { className: tabStripClasses, style: { flexWrap: "wrap", gap: "1px", marginTop: "2px" }, ref: tabStripRef, "data-layout-path": path + "/tabstrip", onPointerDown: onPointerDown, onDoubleClick: onDoubleClick, onContextMenu: onContextMenu, onClick: onAuxMouseClick, onAuxClick: onAuxMouseClick, draggable: true, onDragStart: onDragStart },
207
+ tabs,
208
+ React.createElement("div", { style: { flexGrow: 1 } }),
209
+ buttonbar));
210
+ }
211
+ }
212
+ else {
213
+ if (node.isEnableTabStrip()) {
214
+ tabStrip = (React.createElement("div", { className: tabStripClasses, ref: tabStripRef, "data-layout-path": path + "/tabstrip", onPointerDown: onPointerDown, onDoubleClick: onDoubleClick, onContextMenu: onContextMenu, onClick: onAuxMouseClick, onAuxClick: onAuxMouseClick, draggable: true, onWheel: onMouseWheel, onDragStart: onDragStart },
215
+ React.createElement("div", { ref: tabStripInnerRef, className: cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER) + " " + cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_ + node.getTabLocation()) },
216
+ React.createElement("div", { style: { left: position, width: (isTabStretch ? "100%" : "10000px") }, className: cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER) + " " + cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER_ + node.getTabLocation()) }, tabs)),
217
+ buttonbar));
218
+ }
219
+ }
220
+ var emptyTabset;
221
+ if (node.getChildren().length === 0) {
222
+ const placeHolderCallback = layout.getTabSetPlaceHolderCallback();
223
+ if (placeHolderCallback) {
224
+ emptyTabset = placeHolderCallback(node);
225
+ }
226
+ }
227
+ let content = React.createElement("div", { ref: contentRef, className: cm(CLASSES.FLEXLAYOUT__TABSET_CONTENT) }, emptyTabset);
228
+ if (node.getTabLocation() === "top") {
229
+ content = React.createElement(React.Fragment, null,
230
+ tabStrip,
231
+ content);
232
+ }
233
+ else {
234
+ content = React.createElement(React.Fragment, null,
235
+ content,
236
+ tabStrip);
237
+ }
238
+ let style = {
239
+ flexGrow: Math.max(1, node.getWeight() * 1000),
240
+ minWidth: node.getMinWidth(),
241
+ minHeight: node.getMinHeight(),
242
+ maxWidth: node.getMaxWidth(),
243
+ maxHeight: node.getMaxHeight()
244
+ };
245
+ if (node.getModel().getMaximizedTabset(layout.getWindowId()) !== undefined && !node.isMaximized()) {
246
+ style.display = "none";
247
+ }
248
+ // note: tabset container is needed to allow flexbox to size without border/padding/margin
249
+ // then inner tabset can have border/padding/margin for styling
250
+ const tabset = (React.createElement("div", { ref: selfRef, className: cm(CLASSES.FLEXLAYOUT__TABSET_CONTAINER), style: style },
251
+ React.createElement("div", { className: cm(CLASSES.FLEXLAYOUT__TABSET), "data-layout-path": path }, content)));
252
+ if (node.isMaximized()) {
253
+ if (layout.getMainElement()) {
254
+ return createPortal(React.createElement("div", { style: {
255
+ position: "absolute",
256
+ display: "flex",
257
+ top: 0, left: 0, bottom: 0, right: 0
258
+ } }, tabset), layout.getMainElement());
259
+ }
260
+ else {
261
+ return tabset;
262
+ }
263
+ }
264
+ else {
265
+ return tabset;
266
+ }
267
+ };
235
268
  //# sourceMappingURL=TabSet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabSet.js","sourceRoot":"","sources":["../../src/view/TabSet.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TabSet.js","sourceRoot":"","sources":["../../src/view/TabSet.tsx"],"names":[],"mappings":"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"}