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,148 +1,192 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Splitter = void 0;
4
- const React = require("react");
5
- const DragDrop_1 = require("../DragDrop");
6
- const Actions_1 = require("../model/Actions");
7
- const BorderNode_1 = require("../model/BorderNode");
8
- const Orientation_1 = require("../Orientation");
9
- const Types_1 = require("../Types");
10
- /** @internal */
11
- const Splitter = (props) => {
12
- const { layout, node, path } = props;
13
- const pBounds = React.useRef([]);
14
- const outlineDiv = React.useRef(undefined);
15
- const parentNode = node.getParent();
16
- const onMouseDown = (event) => {
17
- var _a;
18
- DragDrop_1.DragDrop.instance.setGlassCursorOverride(node.getOrientation() === Orientation_1.Orientation.HORZ
19
- ? "ns-resize"
20
- : "ew-resize");
21
- DragDrop_1.DragDrop.instance.startDrag(event, onDragStart, onDragMove, onDragEnd, onDragCancel, undefined, undefined, layout.getCurrentDocument(), (_a = layout.getRootDiv()) !== null && _a !== void 0 ? _a : undefined);
22
- pBounds.current = parentNode._getSplitterBounds(node, true);
23
- const rootdiv = layout.getRootDiv();
24
- outlineDiv.current = layout.getCurrentDocument().createElement("div");
25
- outlineDiv.current.style.position = "absolute";
26
- outlineDiv.current.className = layout.getClassName(Types_1.CLASSES.FLEXLAYOUT__SPLITTER_DRAG);
27
- outlineDiv.current.style.cursor = node.getOrientation() === Orientation_1.Orientation.HORZ ? "ns-resize" : "ew-resize";
28
- const r = node.getRect();
29
- if (node.getOrientation() === Orientation_1.Orientation.VERT && r.width < 2) {
30
- r.width = 2;
31
- }
32
- else if (node.getOrientation() === Orientation_1.Orientation.HORZ && r.height < 2) {
33
- r.height = 2;
34
- }
35
- r.positionElement(outlineDiv.current);
36
- if (rootdiv) {
37
- rootdiv.appendChild(outlineDiv.current);
38
- }
39
- };
40
- const onDragCancel = (_wasDragging) => {
41
- const rootdiv = layout.getRootDiv();
42
- if (rootdiv) {
43
- rootdiv.removeChild(outlineDiv.current);
44
- }
45
- };
46
- const onDragStart = () => {
47
- return true;
48
- };
49
- const onDragMove = (event) => {
50
- const clientRect = layout.getDomRect();
51
- if (!clientRect) {
52
- return;
53
- }
54
- const pos = {
55
- x: event.clientX - clientRect.left,
56
- y: event.clientY - clientRect.top,
57
- };
58
- if (outlineDiv) {
59
- if (node.getOrientation() === Orientation_1.Orientation.HORZ) {
60
- outlineDiv.current.style.top = getBoundPosition(pos.y - 4) + "px";
61
- }
62
- else {
63
- outlineDiv.current.style.left = getBoundPosition(pos.x - 4) + "px";
64
- }
65
- }
66
- if (layout.isRealtimeResize()) {
67
- updateLayout();
68
- }
69
- };
70
- const updateLayout = () => {
71
- let value = 0;
72
- if (outlineDiv) {
73
- if (node.getOrientation() === Orientation_1.Orientation.HORZ) {
74
- value = outlineDiv.current.offsetTop;
75
- }
76
- else {
77
- value = outlineDiv.current.offsetLeft;
78
- }
79
- }
80
- if (parentNode instanceof BorderNode_1.BorderNode) {
81
- const pos = parentNode._calculateSplit(node, value);
82
- layout.doAction(Actions_1.Actions.adjustBorderSplit(node.getParent().getId(), pos));
83
- }
84
- else {
85
- const splitSpec = parentNode._calculateSplit(node, value);
86
- if (splitSpec !== undefined) {
87
- layout.doAction(Actions_1.Actions.adjustSplit(splitSpec));
88
- }
89
- }
90
- };
91
- const onDragEnd = () => {
92
- updateLayout();
93
- const rootdiv = layout.getRootDiv();
94
- if (rootdiv) {
95
- rootdiv.removeChild(outlineDiv.current);
96
- }
97
- };
98
- const getBoundPosition = (p) => {
99
- const bounds = pBounds.current;
100
- let rtn = p;
101
- if (p < bounds[0]) {
102
- rtn = bounds[0];
103
- }
104
- if (p > bounds[1]) {
105
- rtn = bounds[1];
106
- }
107
- return rtn;
108
- };
109
- const cm = layout.getClassName;
110
- let r = node.getRect();
111
- const style = r.styleWithPosition({
112
- cursor: node.getOrientation() === Orientation_1.Orientation.HORZ ? "ns-resize" : "ew-resize",
113
- });
114
- let className = cm(Types_1.CLASSES.FLEXLAYOUT__SPLITTER) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__SPLITTER_ + node.getOrientation().getName());
115
- if (parentNode instanceof BorderNode_1.BorderNode) {
116
- className += " " + cm(Types_1.CLASSES.FLEXLAYOUT__SPLITTER_BORDER);
117
- }
118
- else {
119
- if (node.getModel().getMaximizedTabset() !== undefined) {
120
- style.display = "none";
121
- }
122
- }
123
- const extra = node.getModel().getSplitterExtra();
124
- if (extra === 0) {
125
- return (React.createElement("div", { style: style, "data-layout-path": path, className: className, onTouchStart: onMouseDown, onMouseDown: onMouseDown }));
126
- }
127
- else {
128
- // add extended transparent div for hit testing
129
- // extends forward only, so as not to interfere with scrollbars
130
- let r2 = r.clone();
131
- r2.x = 0;
132
- r2.y = 0;
133
- if (node.getOrientation() === Orientation_1.Orientation.VERT) {
134
- r2.width += extra;
135
- }
136
- else {
137
- r2.height += extra;
138
- }
139
- const style2 = r2.styleWithPosition({
140
- cursor: node.getOrientation() === Orientation_1.Orientation.HORZ ? "ns-resize" : "ew-resize"
141
- });
142
- const className2 = cm(Types_1.CLASSES.FLEXLAYOUT__SPLITTER_EXTRA);
143
- return (React.createElement("div", { style: style, "data-layout-path": path, className: className },
144
- React.createElement("div", { style: style2, className: className2, onTouchStart: onMouseDown, onMouseDown: onMouseDown })));
145
- }
146
- };
147
- exports.Splitter = Splitter;
1
+ import * as React from "react";
2
+ import { Actions } from "../model/Actions";
3
+ import { BorderNode } from "../model/BorderNode";
4
+ import { RowNode } from "../model/RowNode";
5
+ import { Orientation } from "../Orientation";
6
+ import { CLASSES } from "../Types";
7
+ import { enablePointerOnIFrames, isDesktop, startDrag } from "./Utils";
8
+ import { Rect } from "../Rect";
9
+ /** @internal */
10
+ export const Splitter = (props) => {
11
+ const { layout, node, index, horizontal } = props;
12
+ const [dragging, setDragging] = React.useState(false);
13
+ const selfRef = React.useRef(null);
14
+ const extendedRef = React.useRef(null);
15
+ const pBounds = React.useRef([]);
16
+ const outlineDiv = React.useRef(undefined);
17
+ const handleDiv = React.useRef(undefined);
18
+ const dragStartX = React.useRef(0);
19
+ const dragStartY = React.useRef(0);
20
+ const initalSizes = React.useRef({ initialSizes: [], sum: 0, startPosition: 0 });
21
+ // const throttleTimer = React.useRef<NodeJS.Timeout | undefined>(undefined);
22
+ const size = node.getModel().getSplitterSize();
23
+ let extra = node.getModel().getSplitterExtra();
24
+ if (!isDesktop()) {
25
+ // make hit test area on mobile at least 30px
26
+ extra = Math.max(30, extra + size) - size;
27
+ }
28
+ React.useEffect(() => {
29
+ var _a, _b;
30
+ // Android fix: must have passive touchstart handler to prevent default handling
31
+ (_a = selfRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener("touchstart", onTouchStart, { passive: false });
32
+ (_b = extendedRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener("touchstart", onTouchStart, { passive: false });
33
+ return () => {
34
+ var _a, _b;
35
+ (_a = selfRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("touchstart", onTouchStart);
36
+ (_b = extendedRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener("touchstart", onTouchStart);
37
+ };
38
+ }, []);
39
+ const onTouchStart = (event) => {
40
+ event.preventDefault();
41
+ event.stopImmediatePropagation();
42
+ };
43
+ const onPointerDown = (event) => {
44
+ var _a;
45
+ event.stopPropagation();
46
+ if (node instanceof RowNode) {
47
+ initalSizes.current = node.getSplitterInitials(index);
48
+ }
49
+ enablePointerOnIFrames(false, layout.getCurrentDocument());
50
+ startDrag(event.currentTarget.ownerDocument, event, onDragMove, onDragEnd, onDragCancel);
51
+ pBounds.current = node.getSplitterBounds(index, true);
52
+ const rootdiv = layout.getRootDiv();
53
+ outlineDiv.current = layout.getCurrentDocument().createElement("div");
54
+ outlineDiv.current.style.flexDirection = horizontal ? "row" : "column";
55
+ outlineDiv.current.className = layout.getClassName(CLASSES.FLEXLAYOUT__SPLITTER_DRAG);
56
+ outlineDiv.current.style.cursor = node.getOrientation() === Orientation.VERT ? "ns-resize" : "ew-resize";
57
+ if (node.getModel().isSplitterEnableHandle()) {
58
+ handleDiv.current = layout.getCurrentDocument().createElement("div");
59
+ handleDiv.current.className = cm(CLASSES.FLEXLAYOUT__SPLITTER_HANDLE) + " " +
60
+ (horizontal ? cm(CLASSES.FLEXLAYOUT__SPLITTER_HANDLE_HORZ) : cm(CLASSES.FLEXLAYOUT__SPLITTER_HANDLE_VERT));
61
+ outlineDiv.current.appendChild(handleDiv.current);
62
+ }
63
+ const r = (_a = selfRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
64
+ const rect = new Rect(r.x - layout.getDomRect().x, r.y - layout.getDomRect().y, r.width, r.height);
65
+ dragStartX.current = event.clientX - r.x;
66
+ dragStartY.current = event.clientY - r.y;
67
+ rect.positionElement(outlineDiv.current);
68
+ if (rootdiv) {
69
+ rootdiv.appendChild(outlineDiv.current);
70
+ }
71
+ setDragging(true);
72
+ };
73
+ const onDragCancel = () => {
74
+ const rootdiv = layout.getRootDiv();
75
+ if (rootdiv && outlineDiv.current) {
76
+ rootdiv.removeChild(outlineDiv.current);
77
+ }
78
+ outlineDiv.current = undefined;
79
+ setDragging(false);
80
+ };
81
+ const onDragMove = (x, y) => {
82
+ if (outlineDiv.current) {
83
+ const clientRect = layout.getDomRect();
84
+ if (!clientRect) {
85
+ return;
86
+ }
87
+ if (node.getOrientation() === Orientation.VERT) {
88
+ outlineDiv.current.style.top = getBoundPosition(y - clientRect.y - dragStartY.current) + "px";
89
+ }
90
+ else {
91
+ outlineDiv.current.style.left = getBoundPosition(x - clientRect.x - dragStartX.current) + "px";
92
+ }
93
+ if (layout.isRealtimeResize()) {
94
+ updateLayout(true);
95
+ }
96
+ }
97
+ };
98
+ const onDragEnd = () => {
99
+ if (outlineDiv.current) {
100
+ updateLayout(false);
101
+ const rootdiv = layout.getRootDiv();
102
+ if (rootdiv && outlineDiv.current) {
103
+ rootdiv.removeChild(outlineDiv.current);
104
+ }
105
+ outlineDiv.current = undefined;
106
+ }
107
+ enablePointerOnIFrames(true, layout.getCurrentDocument());
108
+ setDragging(false);
109
+ };
110
+ const updateLayout = (realtime) => {
111
+ const redraw = () => {
112
+ if (outlineDiv.current) {
113
+ let value = 0;
114
+ if (node.getOrientation() === Orientation.VERT) {
115
+ value = outlineDiv.current.offsetTop;
116
+ }
117
+ else {
118
+ value = outlineDiv.current.offsetLeft;
119
+ }
120
+ if (node instanceof BorderNode) {
121
+ const pos = node.calculateSplit(node, value);
122
+ layout.doAction(Actions.adjustBorderSplit(node.getId(), pos));
123
+ }
124
+ else {
125
+ const init = initalSizes.current;
126
+ const weights = node.calculateSplit(index, value, init.initialSizes, init.sum, init.startPosition);
127
+ layout.doAction(Actions.adjustWeights(node.getId(), weights));
128
+ }
129
+ }
130
+ };
131
+ redraw();
132
+ };
133
+ const getBoundPosition = (p) => {
134
+ const bounds = pBounds.current;
135
+ let rtn = p;
136
+ if (p < bounds[0]) {
137
+ rtn = bounds[0];
138
+ }
139
+ if (p > bounds[1]) {
140
+ rtn = bounds[1];
141
+ }
142
+ return rtn;
143
+ };
144
+ const cm = layout.getClassName;
145
+ const style = {
146
+ cursor: horizontal ? "ew-resize" : "ns-resize",
147
+ flexDirection: horizontal ? "column" : "row"
148
+ };
149
+ let className = cm(CLASSES.FLEXLAYOUT__SPLITTER) + " " + cm(CLASSES.FLEXLAYOUT__SPLITTER_ + node.getOrientation().getName());
150
+ if (node instanceof BorderNode) {
151
+ className += " " + cm(CLASSES.FLEXLAYOUT__SPLITTER_BORDER);
152
+ }
153
+ else {
154
+ if (node.getModel().getMaximizedTabset(layout.getWindowId()) !== undefined) {
155
+ style.display = "none";
156
+ }
157
+ }
158
+ if (horizontal) {
159
+ style.width = size + "px";
160
+ style.minWidth = size + "px";
161
+ }
162
+ else {
163
+ style.height = size + "px";
164
+ style.minHeight = size + "px";
165
+ }
166
+ let handle;
167
+ if (!dragging && node.getModel().isSplitterEnableHandle()) {
168
+ handle = (React.createElement("div", { className: cm(CLASSES.FLEXLAYOUT__SPLITTER_HANDLE) + " " +
169
+ (horizontal ? cm(CLASSES.FLEXLAYOUT__SPLITTER_HANDLE_HORZ) : cm(CLASSES.FLEXLAYOUT__SPLITTER_HANDLE_VERT)) }));
170
+ }
171
+ if (extra === 0) {
172
+ return (React.createElement("div", { className: className, style: style, ref: selfRef, "data-layout-path": node.getPath() + "/s" + (index - 1), onPointerDown: onPointerDown }, handle));
173
+ }
174
+ else {
175
+ // add extended transparent div for hit testing
176
+ const style2 = {};
177
+ if (node.getOrientation() === Orientation.HORZ) {
178
+ style2.height = "100%";
179
+ style2.width = size + extra + "px";
180
+ style2.cursor = "ew-resize";
181
+ }
182
+ else {
183
+ style2.height = size + extra + "px";
184
+ style2.width = "100%";
185
+ style2.cursor = "ns-resize";
186
+ }
187
+ const className2 = cm(CLASSES.FLEXLAYOUT__SPLITTER_EXTRA);
188
+ return (React.createElement("div", { className: className, style: style, ref: selfRef, "data-layout-path": node.getPath() + "/s" + (index - 1), onPointerDown: onPointerDown },
189
+ React.createElement("div", { style: style2, ref: extendedRef, className: className2, onPointerDown: onPointerDown })));
190
+ }
191
+ };
148
192
  //# sourceMappingURL=Splitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Splitter.js","sourceRoot":"","sources":["../../src/view/Splitter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Splitter.js","sourceRoot":"","sources":["../../src/view/Splitter.tsx"],"names":[],"mappings":"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"}
package/lib/view/Tab.js CHANGED
@@ -1,61 +1,87 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Tab = void 0;
4
- const React = require("react");
5
- const react_1 = require("react");
6
- const Actions_1 = require("../model/Actions");
7
- const TabSetNode_1 = require("../model/TabSetNode");
8
- const Types_1 = require("../Types");
9
- const ErrorBoundary_1 = require("./ErrorBoundary");
10
- const I18nLabel_1 = require("../I18nLabel");
11
- const BorderNode_1 = require("../model/BorderNode");
12
- const Utils_1 = require("./Utils");
13
- /** @internal */
14
- const Tab = (props) => {
15
- const { layout, selected, node, factory, path } = props;
16
- const [renderComponent, setRenderComponent] = React.useState(!props.node.isEnableRenderOnDemand() || props.selected);
17
- React.useLayoutEffect(() => {
18
- if (!renderComponent && selected) {
19
- // load on demand
20
- // console.log("load on demand: " + node.getName());
21
- setRenderComponent(true);
22
- }
23
- });
24
- const onMouseDown = () => {
25
- const parent = node.getParent();
26
- if (parent.getType() === TabSetNode_1.TabSetNode.TYPE) {
27
- if (!parent.isActive()) {
28
- layout.doAction(Actions_1.Actions.setActiveTabset(parent.getId()));
29
- }
30
- }
31
- };
32
- const cm = layout.getClassName;
33
- const useVisibility = node.getModel().isUseVisibility();
34
- const parentNode = node.getParent();
35
- const style = node._styleWithPosition();
36
- if (!selected) {
37
- (0, Utils_1.hideElement)(style, useVisibility);
38
- }
39
- if (parentNode instanceof TabSetNode_1.TabSetNode) {
40
- if (node.getModel().getMaximizedTabset() !== undefined && !parentNode.isMaximized()) {
41
- (0, Utils_1.hideElement)(style, useVisibility);
42
- }
43
- }
44
- let child;
45
- if (renderComponent) {
46
- child = factory(node);
47
- }
48
- let className = cm(Types_1.CLASSES.FLEXLAYOUT__TAB);
49
- if (parentNode instanceof BorderNode_1.BorderNode) {
50
- className += " " + cm(Types_1.CLASSES.FLEXLAYOUT__TAB_BORDER);
51
- className += " " + cm(Types_1.CLASSES.FLEXLAYOUT__TAB_BORDER_ + parentNode.getLocation().getName());
52
- }
53
- if (node.getContentClassName() !== undefined) {
54
- className += " " + node.getContentClassName();
55
- }
56
- return (React.createElement("div", { className: className, "data-layout-path": path, onMouseDown: onMouseDown, onTouchStart: onMouseDown, style: style },
57
- React.createElement(ErrorBoundary_1.ErrorBoundary, { message: props.layout.i18nName(I18nLabel_1.I18nLabel.Error_rendering_component) },
58
- React.createElement(react_1.Fragment, null, child))));
59
- };
60
- exports.Tab = Tab;
1
+ import * as React from "react";
2
+ import { TabSetNode } from "../model/TabSetNode";
3
+ import { CLASSES } from "../Types";
4
+ import { BorderNode } from "../model/BorderNode";
5
+ import { Actions } from "../model/Actions";
6
+ /** @internal */
7
+ export const Tab = (props) => {
8
+ const { layout, selected, node, path } = props;
9
+ const selfRef = React.useRef(null);
10
+ const firstSelect = React.useRef(true);
11
+ const parentNode = node.getParent();
12
+ const rect = parentNode.getContentRect();
13
+ React.useLayoutEffect(() => {
14
+ const element = node.getMoveableElement();
15
+ selfRef.current.appendChild(element);
16
+ node.setMoveableElement(element);
17
+ const handleScroll = () => {
18
+ node.saveScrollPosition();
19
+ };
20
+ // keep scroll position
21
+ element.addEventListener('scroll', handleScroll);
22
+ // listen for clicks to change active tabset
23
+ selfRef.current.addEventListener("pointerdown", onPointerDown);
24
+ return () => {
25
+ element.removeEventListener('scroll', handleScroll);
26
+ if (selfRef.current) {
27
+ selfRef.current.removeEventListener("pointerdown", onPointerDown);
28
+ }
29
+ node.setVisible(false);
30
+ };
31
+ }, []);
32
+ React.useEffect(() => {
33
+ if (node.isSelected()) {
34
+ if (firstSelect.current) {
35
+ node.restoreScrollPosition(); // if window docked back in
36
+ firstSelect.current = false;
37
+ }
38
+ }
39
+ });
40
+ const onPointerDown = () => {
41
+ const parent = node.getParent(); // cannot use parentNode here since will be out of date
42
+ if (parent instanceof TabSetNode) {
43
+ if (!parent.isActive()) {
44
+ layout.doAction(Actions.setActiveTabset(parent.getId(), layout.getWindowId()));
45
+ }
46
+ }
47
+ };
48
+ node.setRect(rect); // needed for resize event
49
+ const cm = layout.getClassName;
50
+ const style = {};
51
+ rect.styleWithPosition(style);
52
+ let overlay = null;
53
+ if (selected) {
54
+ node.setVisible(true);
55
+ if (document.hidden && node.isEnablePopoutOverlay()) {
56
+ const overlayStyle = {};
57
+ rect.styleWithPosition(overlayStyle);
58
+ overlay = (React.createElement("div", { style: overlayStyle, className: cm(CLASSES.FLEXLAYOUT__TAB_OVERLAY) }));
59
+ }
60
+ }
61
+ else {
62
+ style.display = "none";
63
+ node.setVisible(false);
64
+ }
65
+ if (parentNode instanceof TabSetNode) {
66
+ if (node.getModel().getMaximizedTabset(layout.getWindowId()) !== undefined) {
67
+ if (parentNode.isMaximized()) {
68
+ style.zIndex = 10;
69
+ }
70
+ else {
71
+ style.display = "none";
72
+ }
73
+ }
74
+ }
75
+ let className = cm(CLASSES.FLEXLAYOUT__TAB);
76
+ if (parentNode instanceof BorderNode) {
77
+ className += " " + cm(CLASSES.FLEXLAYOUT__TAB_BORDER);
78
+ className += " " + cm(CLASSES.FLEXLAYOUT__TAB_BORDER_ + parentNode.getLocation().getName());
79
+ }
80
+ if (node.getContentClassName() !== undefined) {
81
+ className += " " + node.getContentClassName();
82
+ }
83
+ return (React.createElement(React.Fragment, null,
84
+ overlay,
85
+ React.createElement("div", { ref: selfRef, style: style, className: className, "data-layout-path": path })));
86
+ };
61
87
  //# sourceMappingURL=Tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/view/Tab.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/view/Tab.tsx"],"names":[],"mappings":"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"}