flexlayout-react 0.5.18 → 0.5.19

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 (53) hide show
  1. package/ChangeLog.txt +8 -0
  2. package/README.md +109 -96
  3. package/declarations/Types.d.ts +7 -1
  4. package/declarations/view/Layout.d.ts +5 -0
  5. package/dist/flexlayout.js +12 -12
  6. package/dist/flexlayout_min.js +1 -1
  7. package/lib/PopupMenu.js +14 -9
  8. package/lib/PopupMenu.js.map +1 -1
  9. package/lib/Types.js +6 -0
  10. package/lib/Types.js.map +1 -1
  11. package/lib/model/BorderNode.js +8 -7
  12. package/lib/model/BorderNode.js.map +1 -1
  13. package/lib/model/Model.js +7 -3
  14. package/lib/model/Model.js.map +1 -1
  15. package/lib/model/RowNode.js +19 -5
  16. package/lib/model/RowNode.js.map +1 -1
  17. package/lib/model/TabSetNode.js +8 -4
  18. package/lib/model/TabSetNode.js.map +1 -1
  19. package/lib/view/BorderButton.js +14 -3
  20. package/lib/view/BorderButton.js.map +1 -1
  21. package/lib/view/BorderTabSet.js +15 -4
  22. package/lib/view/BorderTabSet.js.map +1 -1
  23. package/lib/view/Layout.js +81 -48
  24. package/lib/view/Layout.js.map +1 -1
  25. package/lib/view/TabButton.js +11 -2
  26. package/lib/view/TabButton.js.map +1 -1
  27. package/lib/view/TabFloating.js +23 -11
  28. package/lib/view/TabFloating.js.map +1 -1
  29. package/lib/view/TabSet.js +43 -18
  30. package/lib/view/TabSet.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/PopupMenu.tsx +28 -10
  33. package/src/Types.ts +6 -0
  34. package/src/model/BorderNode.ts +8 -7
  35. package/src/model/Model.ts +7 -3
  36. package/src/model/RowNode.ts +8 -5
  37. package/src/model/TabSetNode.ts +8 -4
  38. package/src/view/BorderButton.tsx +22 -3
  39. package/src/view/BorderTabSet.tsx +21 -4
  40. package/src/view/Layout.tsx +100 -58
  41. package/src/view/TabButton.tsx +16 -1
  42. package/src/view/TabFloating.tsx +36 -19
  43. package/src/view/TabSet.tsx +56 -17
  44. package/style/_base.scss +65 -41
  45. package/style/dark.css +81 -59
  46. package/style/dark.css.map +1 -1
  47. package/style/dark.scss +20 -20
  48. package/style/gray.css +81 -59
  49. package/style/gray.css.map +1 -1
  50. package/style/gray.scss +20 -20
  51. package/style/light.css +81 -59
  52. package/style/light.css.map +1 -1
  53. package/style/light.scss +18 -18
@@ -9,6 +9,14 @@ var I18nLabel_1 = require("../I18nLabel");
9
9
  /** @hidden @internal */
10
10
  var TabFloating = function (props) {
11
11
  var layout = props.layout, selected = props.selected, node = props.node;
12
+ var showPopout = function () {
13
+ if (node.getWindow()) {
14
+ node.getWindow().focus();
15
+ }
16
+ };
17
+ var dockPopout = function () {
18
+ layout.doAction(Actions_1.default.unFloatTab(node.getId()));
19
+ };
12
20
  var onMouseDown = function () {
13
21
  var parent = node.getParent();
14
22
  if (parent.getType() === TabSetNode_1.default.TYPE) {
@@ -19,13 +27,11 @@ var TabFloating = function (props) {
19
27
  };
20
28
  var onClickFocus = function (event) {
21
29
  event.preventDefault();
22
- if (node.getWindow()) {
23
- node.getWindow().focus();
24
- }
30
+ showPopout();
25
31
  };
26
32
  var onClickDock = function (event) {
27
33
  event.preventDefault();
28
- layout.doAction(Actions_1.default.unFloatTab(node.getId()));
34
+ dockPopout();
29
35
  };
30
36
  var cm = layout.getClassName;
31
37
  var style = node._styleWithPosition({
@@ -34,13 +40,19 @@ var TabFloating = function (props) {
34
40
  var message = layout.i18nName(I18nLabel_1.I18nLabel.Floating_Window_Message);
35
41
  var showMessage = layout.i18nName(I18nLabel_1.I18nLabel.Floating_Window_Show_Window);
36
42
  var dockMessage = layout.i18nName(I18nLabel_1.I18nLabel.Floating_Window_Dock_Window);
37
- return (React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_FLOATING), onMouseDown: onMouseDown, onTouchStart: onMouseDown, style: style },
38
- React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_FLOATING_INNER) },
39
- React.createElement("div", null, message),
40
- React.createElement("div", null,
41
- React.createElement("a", { href: "#", onClick: onClickFocus }, showMessage)),
42
- React.createElement("div", null,
43
- React.createElement("a", { href: "#", onClick: onClickDock }, dockMessage)))));
43
+ var customRenderCallback = layout.getOnRenderFloatingTabPlaceholder();
44
+ if (customRenderCallback) {
45
+ return (React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_FLOATING), onMouseDown: onMouseDown, onTouchStart: onMouseDown, style: style }, customRenderCallback(dockPopout, showPopout)));
46
+ }
47
+ else {
48
+ return (React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_FLOATING), onMouseDown: onMouseDown, onTouchStart: onMouseDown, style: style },
49
+ React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TAB_FLOATING_INNER) },
50
+ React.createElement("div", null, message),
51
+ React.createElement("div", null,
52
+ React.createElement("a", { href: "#", onClick: onClickFocus }, showMessage)),
53
+ React.createElement("div", null,
54
+ React.createElement("a", { href: "#", onClick: onClickDock }, dockMessage)))));
55
+ }
44
56
  };
45
57
  exports.TabFloating = TabFloating;
46
58
  //# sourceMappingURL=TabFloating.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabFloating.js","sourceRoot":"","sources":["../../src/view/TabFloating.tsx"],"names":[],"mappings":";;;AAAA,6BAA+B;AAC/B,4CAAuC;AAEvC,kDAA6C;AAC7C,kCAAmC;AAEnC,0CAAyC;AASzC,wBAAwB;AACjB,IAAM,WAAW,GAAG,UAAC,KAAwB;IACxC,IAAA,MAAM,GAAqB,KAAK,OAA1B,EAAE,QAAQ,GAAW,KAAK,SAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IAEzC,IAAM,WAAW,GAAG;QAChB,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAgB,CAAC;QAC9C,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,oBAAU,CAAC,IAAI,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;gBACpB,MAAM,CAAC,QAAQ,CAAC,iBAAO,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC5D;SACJ;IACL,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,KAAsD;QACxE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,EAAG,CAAC,KAAK,EAAE,CAAC;SAC7B;IACL,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAC,KAAsD;QACvE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,IAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IAE/B,IAAM,KAAK,GAAwB,IAAI,CAAC,kBAAkB,CAAC;QACvD,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;KACtC,CAAC,CAAC;IAEH,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAS,CAAC,uBAAuB,CAAC,CAAC;IACnE,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAS,CAAC,2BAA2B,CAAC,CAAC;IAC3E,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAS,CAAC,2BAA2B,CAAC,CAAC;IAE3E,OAAO,CACH,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAO,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK;QACnH,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAO,CAAC,8BAA8B,CAAC;YACtD,iCAAM,OAAO,CAAO;YACpB;gBACI,2BAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,YAAY,IAC5B,WAAW,CACZ,CACF;YACN;gBACI,2BAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,WAAW,IAC3B,WAAW,CACZ,CACF,CACJ,CACJ,CACT,CAAC;AACN,CAAC,CAAC;AAnDW,QAAA,WAAW,eAmDtB"}
1
+ {"version":3,"file":"TabFloating.js","sourceRoot":"","sources":["../../src/view/TabFloating.tsx"],"names":[],"mappings":";;;AAAA,6BAA+B;AAC/B,4CAAuC;AAEvC,kDAA6C;AAC7C,kCAAmC;AAEnC,0CAAyC;AASzC,wBAAwB;AACjB,IAAM,WAAW,GAAG,UAAC,KAAwB;IACxC,IAAA,MAAM,GAAqB,KAAK,OAA1B,EAAE,QAAQ,GAAW,KAAK,SAAhB,EAAE,IAAI,GAAK,KAAK,KAAV,CAAW;IAEzC,IAAM,UAAU,GAAG;QACf,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,EAAG,CAAC,KAAK,EAAE,CAAC;SAC7B;IACL,CAAC,CAAA;IAED,IAAM,UAAU,GAAG;QACf,MAAM,CAAC,QAAQ,CAAC,iBAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAA;IAED,IAAM,WAAW,GAAG;QAChB,IAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAgB,CAAC;QAC9C,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,oBAAU,CAAC,IAAI,EAAE;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE;gBACpB,MAAM,CAAC,QAAQ,CAAC,iBAAO,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC5D;SACJ;IACL,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,KAAsD;QACxE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,UAAU,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAC,KAAsD;QACvE,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,UAAU,EAAE,CAAC;IACjB,CAAC,CAAC;IAEF,IAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IAE/B,IAAM,KAAK,GAAwB,IAAI,CAAC,kBAAkB,CAAC;QACvD,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;KACtC,CAAC,CAAC;IAEH,IAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAS,CAAC,uBAAuB,CAAC,CAAC;IACnE,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAS,CAAC,2BAA2B,CAAC,CAAC;IAC3E,IAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,qBAAS,CAAC,2BAA2B,CAAC,CAAC;IAE3E,IAAM,oBAAoB,GAAG,MAAM,CAAC,iCAAiC,EAAE,CAAC;IACxE,IAAI,oBAAoB,EAAE;QACtB,OAAO,CACH,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAO,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,IAClH,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAC3C,CACT,CAAC;KACL;SAAM;QACH,OAAO,CACH,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAO,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK;YACnH,6BAAK,SAAS,EAAE,EAAE,CAAC,eAAO,CAAC,8BAA8B,CAAC;gBACtD,iCAAM,OAAO,CAAO;gBACpB;oBACI,2BAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,YAAY,IAC5B,WAAW,CACZ,CACF;gBACN;oBACI,2BAAG,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,WAAW,IAC3B,WAAW,CACZ,CACF,CACJ,CACJ,CACT,CAAC;KACL;AACL,CAAC,CAAC;AApEW,QAAA,WAAW,eAoEtB"}
@@ -5,7 +5,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
5
5
  return to;
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.TabSet = void 0;
8
+ exports.isAuxMouseEvent = exports.TabSet = void 0;
9
9
  var React = require("react");
10
10
  var I18nLabel_1 = require("../I18nLabel");
11
11
  var Actions_1 = require("../model/Actions");
@@ -22,43 +22,57 @@ var TabSet = function (props) {
22
22
  var tabbarInnerRef = React.useRef(null);
23
23
  var stickyButtonsRef = React.useRef(null);
24
24
  var _a = TabOverflowHook_1.useTabOverflow(node, Orientation_1.default.HORZ, toolbarRef, stickyButtonsRef), selfRef = _a.selfRef, position = _a.position, userControlledLeft = _a.userControlledLeft, hiddenTabs = _a.hiddenTabs, onMouseWheel = _a.onMouseWheel, tabsTruncated = _a.tabsTruncated;
25
- var onOverflowClick = function () {
25
+ var onOverflowClick = function (event) {
26
26
  var element = overflowbuttonRef.current;
27
27
  PopupMenu_1.showPopup(layout.getRootDiv(), element, hiddenTabs, onOverflowItemSelect, layout.getClassName);
28
+ event.stopPropagation();
28
29
  };
29
30
  var onOverflowItemSelect = function (item) {
30
31
  layout.doAction(Actions_1.default.selectTab(item.node.getId()));
31
32
  userControlledLeft.current = false;
32
33
  };
33
34
  var onMouseDown = function (event) {
34
- var name = node.getName();
35
- if (name === undefined) {
36
- name = "";
37
- }
38
- else {
39
- name = ": " + name;
35
+ if (!isAuxMouseEvent(event)) {
36
+ var name_1 = node.getName();
37
+ if (name_1 === undefined) {
38
+ name_1 = "";
39
+ }
40
+ else {
41
+ name_1 = ": " + name_1;
42
+ }
43
+ layout.doAction(Actions_1.default.setActiveTabset(node.getId()));
44
+ if (!layout.getEditingTab()) {
45
+ var message = layout.i18nName(I18nLabel_1.I18nLabel.Move_Tabset, name_1);
46
+ layout.dragStart(event, message, node, node.isEnableDrag(), function (event2) { return undefined; }, onDoubleClick);
47
+ }
40
48
  }
41
- layout.doAction(Actions_1.default.setActiveTabset(node.getId()));
42
- if (!layout.getEditingTab()) {
43
- var message = layout.i18nName(I18nLabel_1.I18nLabel.Move_Tabset, name);
44
- layout.dragStart(event, message, node, node.isEnableDrag(), function (event2) { return undefined; }, onDoubleClick);
49
+ };
50
+ var onAuxMouseClick = function (event) {
51
+ if (isAuxMouseEvent(event)) {
52
+ layout.auxMouseClick(node, event);
45
53
  }
46
54
  };
55
+ var onContextMenu = function (event) {
56
+ layout.showContextMenu(node, event);
57
+ };
47
58
  var onInterceptMouseDown = function (event) {
48
59
  event.stopPropagation();
49
60
  };
50
- var onMaximizeToggle = function () {
61
+ var onMaximizeToggle = function (event) {
51
62
  if (node.canMaximize()) {
52
63
  layout.maximize(node);
53
64
  }
65
+ event.stopPropagation();
54
66
  };
55
- var onClose = function () {
67
+ var onClose = function (event) {
56
68
  layout.doAction(Actions_1.default.deleteTabset(node.getId()));
69
+ event.stopPropagation();
57
70
  };
58
- var onFloatTab = function () {
71
+ var onFloatTab = function (event) {
59
72
  if (selectedTabNode !== undefined) {
60
73
  layout.doAction(Actions_1.default.floatTab(selectedTabNode.getId()));
61
74
  }
75
+ event.stopPropagation();
62
76
  };
63
77
  var onDoubleClick = function (event) {
64
78
  if (node.canMaximize()) {
@@ -151,7 +165,7 @@ var TabSet = function (props) {
151
165
  if (node.getClassNameHeader() !== undefined) {
152
166
  tabHeaderClasses += " " + node.getClassNameHeader();
153
167
  }
154
- header = (React.createElement("div", { className: tabHeaderClasses, style: { height: node.getHeaderHeight() + "px" }, onMouseDown: onMouseDown, onTouchStart: onMouseDown },
168
+ header = (React.createElement("div", { className: tabHeaderClasses, style: { height: node.getHeaderHeight() + "px" }, onMouseDown: onMouseDown, onContextMenu: onContextMenu, onClick: onAuxMouseClick, onAuxClick: onAuxMouseClick, onTouchStart: onMouseDown },
155
169
  React.createElement("div", { className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_HEADER_CONTENT) }, headerContent),
156
170
  headerToolbar));
157
171
  }
@@ -163,14 +177,25 @@ var TabSet = function (props) {
163
177
  else {
164
178
  tabStripStyle["bottom"] = "0px";
165
179
  }
166
- tabStrip = (React.createElement("div", { className: tabStripClasses, style: tabStripStyle, onMouseDown: onMouseDown, onTouchStart: onMouseDown },
180
+ tabStrip = (React.createElement("div", { className: tabStripClasses, style: tabStripStyle, onMouseDown: onMouseDown, onContextMenu: onContextMenu, onClick: onAuxMouseClick, onAuxClick: onAuxMouseClick, onTouchStart: onMouseDown },
167
181
  React.createElement("div", { ref: tabbarInnerRef, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_ + node.getTabLocation()) },
168
182
  React.createElement("div", { style: { left: position }, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER) + " " + cm(Types_1.CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER_ + node.getTabLocation()) }, tabs)),
169
183
  toolbar));
170
184
  style = layout.styleFont(style);
171
- return (React.createElement("div", { ref: selfRef, style: style, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET), onWheel: onMouseWheel },
185
+ return (React.createElement("div", { ref: selfRef, dir: "ltr", style: style, className: cm(Types_1.CLASSES.FLEXLAYOUT__TABSET), onWheel: onMouseWheel },
172
186
  header,
173
187
  tabStrip));
174
188
  };
175
189
  exports.TabSet = TabSet;
190
+ /** @hidden @internal */
191
+ function isAuxMouseEvent(event) {
192
+ var auxEvent = false;
193
+ if (event.nativeEvent instanceof MouseEvent) {
194
+ if (event.nativeEvent.button !== 0 || event.ctrlKey || event.altKey || event.metaKey || event.shiftKey) {
195
+ auxEvent = true;
196
+ }
197
+ }
198
+ return auxEvent;
199
+ }
200
+ exports.isAuxMouseEvent = isAuxMouseEvent;
176
201
  //# 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flexlayout-react",
3
- "version": "0.5.18",
3
+ "version": "0.5.19",
4
4
  "description": "A multi-tab docking layout manager",
5
5
  "main": "lib/index.js",
6
6
  "types": "./declarations/index.d.ts",
package/src/PopupMenu.tsx CHANGED
@@ -1,6 +1,8 @@
1
1
  import * as React from "react";
2
2
  import * as ReactDOM from "react-dom";
3
+ import { DragDrop } from ".";
3
4
  import TabNode from "./model/TabNode";
5
+ import { CLASSES } from "./Types";
4
6
 
5
7
  /** @hidden @internal */
6
8
  export function showPopup(
@@ -15,7 +17,7 @@ export function showPopup(
15
17
  const layoutRect = layoutDiv.getBoundingClientRect();
16
18
 
17
19
  const elm = currentDocument.createElement("div");
18
- elm.className = classNameMapper("flexlayout__popup_menu_container");
20
+ elm.className = classNameMapper(CLASSES.FLEXLAYOUT__POPUP_MENU_CONTAINER);
19
21
  if (triggerRect.left < layoutRect.left + layoutRect.width / 2) {
20
22
  elm.style.left = triggerRect.left - layoutRect.left + "px";
21
23
  } else {
@@ -27,27 +29,37 @@ export function showPopup(
27
29
  } else {
28
30
  elm.style.bottom = layoutRect.bottom - triggerRect.bottom + "px";
29
31
  }
32
+ DragDrop.instance.addGlass(() => onHide());
33
+ DragDrop.instance.setGlassCursorOverride("default");
34
+
30
35
  layoutDiv.appendChild(elm);
31
36
 
32
37
  const onHide = () => {
38
+ DragDrop.instance.hideGlass();
33
39
  layoutDiv.removeChild(elm);
34
40
  ReactDOM.unmountComponentAtNode(elm);
35
- elm.removeEventListener("mouseup", onElementMouseUp);
36
- currentDocument.removeEventListener("mouseup", onDocMouseUp);
41
+ elm.removeEventListener("mousedown", onElementMouseDown);
42
+ currentDocument.removeEventListener("mousedown", onDocMouseDown);
37
43
  };
38
44
 
39
- const onElementMouseUp = (event: Event) => {
45
+ const onElementMouseDown = (event: Event) => {
40
46
  event.stopPropagation();
41
47
  };
42
48
 
43
- const onDocMouseUp = (event: Event) => {
49
+ const onDocMouseDown = (event: Event) => {
44
50
  onHide();
45
51
  };
46
52
 
47
- elm.addEventListener("mouseup", onElementMouseUp);
48
- currentDocument.addEventListener("mouseup", onDocMouseUp);
53
+ elm.addEventListener("mousedown", onElementMouseDown);
54
+ currentDocument.addEventListener("mousedown", onDocMouseDown);
49
55
 
50
- ReactDOM.render(<PopupMenu currentDocument={currentDocument} onSelect={onSelect} onHide={onHide} items={items} classNameMapper={classNameMapper} />, elm);
56
+ ReactDOM.render(<PopupMenu
57
+ currentDocument={currentDocument}
58
+ onSelect={onSelect}
59
+ onHide={onHide}
60
+ items={items}
61
+ classNameMapper={classNameMapper}
62
+ />, elm);
51
63
  }
52
64
 
53
65
  /** @hidden @internal */
@@ -70,10 +82,16 @@ const PopupMenu = (props: IPopupMenuProps) => {
70
82
  };
71
83
 
72
84
  const itemElements = items.map((item) => (
73
- <div key={item.index} className={classNameMapper("flexlayout__popup_menu_item")} onClick={(event) => onItemClick(item, event)} title={item.node.getHelpText()}>
85
+ <div key={item.index}
86
+ className={classNameMapper(CLASSES.FLEXLAYOUT__POPUP_MENU_ITEM)}
87
+ onClick={(event) => onItemClick(item, event)}
88
+ title={item.node.getHelpText()}>
74
89
  {item.node._getRenderedName()}
75
90
  </div>
76
91
  ));
77
92
 
78
- return <div className={classNameMapper("flexlayout__popup_menu")}>{itemElements}</div>;
93
+ return (
94
+ <div className={classNameMapper(CLASSES.FLEXLAYOUT__POPUP_MENU)}>
95
+ {itemElements}
96
+ </div>);
79
97
  };
package/src/Types.ts CHANGED
@@ -9,6 +9,8 @@ export enum CLASSES {
9
9
  FLEXLAYOUT__BORDER_BUTTON_TRAILING = "flexlayout__border_button_trailing",
10
10
  FLEXLAYOUT__BORDER_BUTTON__SELECTED = "flexlayout__border_button--selected",
11
11
  FLEXLAYOUT__BORDER_BUTTON__UNSELECTED = "flexlayout__border_button--unselected",
12
+ FLEXLAYOUT__BORDER_TOOLBAR_BUTTON_OVERFLOW = "flexlayout__border_toolbar_button_overflow",
13
+ FLEXLAYOUT__BORDER_TOOLBAR_BUTTON_OVERFLOW_ = "flexlayout__border_toolbar_button_overflow_",
12
14
 
13
15
  FLEXLAYOUT__BORDER_INNER = "flexlayout__border_inner",
14
16
  FLEXLAYOUT__BORDER_INNER_ = "flexlayout__border_inner_",
@@ -34,6 +36,7 @@ export enum CLASSES {
34
36
  FLEXLAYOUT__LAYOUT = "flexlayout__layout",
35
37
 
36
38
  FLEXLAYOUT__OUTLINE_RECT = "flexlayout__outline_rect",
39
+ FLEXLAYOUT__OUTLINE_RECT_EDGE = "flexlayout__outline_rect_edge",
37
40
 
38
41
  FLEXLAYOUT__SPLITTER = "flexlayout__splitter",
39
42
  FLEXLAYOUT__SPLITTER_EXTRA = "flexlayout__splitter_extra",
@@ -78,4 +81,7 @@ export enum CLASSES {
78
81
  FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER = "flexlayout__tab_toolbar_sticky_buttons_container",
79
82
  FLEXLAYOUT__TAB_TOOLBAR_BUTTON_CLOSE = "flexlayout__tab_toolbar_button-close",
80
83
 
84
+ FLEXLAYOUT__POPUP_MENU_CONTAINER = "flexlayout__popup_menu_container",
85
+ FLEXLAYOUT__POPUP_MENU_ITEM = "flexlayout__popup_menu_item",
86
+ FLEXLAYOUT__POPUP_MENU = "flexlayout__popup_menu",
81
87
  }
@@ -4,6 +4,7 @@ import DockLocation from "../DockLocation";
4
4
  import DropInfo from "../DropInfo";
5
5
  import Orientation from "../Orientation";
6
6
  import Rect from "../Rect";
7
+ import { CLASSES } from "../Types";
7
8
  import IDraggable from "./IDraggable";
8
9
  import IDropTarget from "./IDropTarget";
9
10
  import { IJsonBorderNode } from "./IJsonModel";
@@ -309,18 +310,18 @@ class BorderNode extends Node implements IDropTarget {
309
310
  childCenter = childRect.x + childRect.width / 2;
310
311
  if (x >= pos && x < childCenter) {
311
312
  const outlineRect = new Rect(childRect.x - 2, childY, 3, childHeight);
312
- dropInfo = new DropInfo(this, outlineRect, dockLocation, i, "flexlayout__outline_rect");
313
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, i, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
313
314
  break;
314
315
  }
315
316
  pos = childCenter;
316
317
  }
317
318
  if (dropInfo == null) {
318
319
  const outlineRect = new Rect(childRect.getRight() - 2, childY, 3, childHeight);
319
- dropInfo = new DropInfo(this, outlineRect, dockLocation, this._children.length, "flexlayout__outline_rect");
320
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, this._children.length, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
320
321
  }
321
322
  } else {
322
323
  const outlineRect = new Rect(this._tabHeaderRect!.x + 1, this._tabHeaderRect!.y + 2, 3, 18);
323
- dropInfo = new DropInfo(this, outlineRect, dockLocation, 0, "flexlayout__outline_rect");
324
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, 0, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
324
325
  }
325
326
  } else {
326
327
  if (this._children.length > 0) {
@@ -337,18 +338,18 @@ class BorderNode extends Node implements IDropTarget {
337
338
  childCenter = childRect.y + childRect.height / 2;
338
339
  if (y >= pos && y < childCenter) {
339
340
  const outlineRect = new Rect(childX, childRect.y - 2, childWidth, 3);
340
- dropInfo = new DropInfo(this, outlineRect, dockLocation, i, "flexlayout__outline_rect");
341
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, i, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
341
342
  break;
342
343
  }
343
344
  pos = childCenter;
344
345
  }
345
346
  if (dropInfo == null) {
346
347
  const outlineRect = new Rect(childX, childRect.getBottom() - 2, childWidth, 3);
347
- dropInfo = new DropInfo(this, outlineRect, dockLocation, this._children.length, "flexlayout__outline_rect");
348
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, this._children.length, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
348
349
  }
349
350
  } else {
350
351
  const outlineRect = new Rect(this._tabHeaderRect!.x + 2, this._tabHeaderRect!.y + 1, 18, 3);
351
- dropInfo = new DropInfo(this, outlineRect, dockLocation, 0, "flexlayout__outline_rect");
352
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, 0, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
352
353
  }
353
354
  }
354
355
  if (!dragNode._canDockInto(dragNode, dropInfo)) {
@@ -356,7 +357,7 @@ class BorderNode extends Node implements IDropTarget {
356
357
  }
357
358
  } else if (this.getSelected() !== -1 && this._contentRect!.contains(x, y)) {
358
359
  const outlineRect = this._contentRect;
359
- dropInfo = new DropInfo(this, outlineRect!, dockLocation, -1, "flexlayout__outline_rect");
360
+ dropInfo = new DropInfo(this, outlineRect!, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
360
361
  if (!dragNode._canDockInto(dragNode, dropInfo)) {
361
362
  return undefined;
362
363
  }
@@ -281,13 +281,17 @@ class Model {
281
281
  const node = this._idMap[action.data.node];
282
282
 
283
283
  if (node instanceof TabSetNode) {
284
- // first delete all child tabs
284
+ // first delete all child tabs that are closeable
285
285
  const children = [...node.getChildren()];
286
286
  children.forEach((child, i) => {
287
- (child as TabNode)._delete();
287
+ if ((child as TabNode).isEnableClose()) {
288
+ (child as TabNode)._delete();
289
+ }
288
290
  });
289
291
 
290
- node._delete();
292
+ if (node.getChildren().length === 0) {
293
+ node._delete();
294
+ }
291
295
  this._tidy();
292
296
  }
293
297
  break;
@@ -5,6 +5,7 @@ import DockLocation from "../DockLocation";
5
5
  import DropInfo from "../DropInfo";
6
6
  import Orientation from "../Orientation";
7
7
  import Rect from "../Rect";
8
+ import { CLASSES } from "../Types";
8
9
  import BorderNode from "./BorderNode";
9
10
  import IDraggable from "./IDraggable";
10
11
  import IDropTarget from "./IDropTarget";
@@ -381,7 +382,9 @@ class RowNode extends Node implements IDropTarget {
381
382
  // add tabset into empty root
382
383
  if (this === this._model.getRoot() && this._children.length === 0) {
383
384
  const callback = this._model._getOnCreateTabSet();
384
- const child = new TabSetNode(this._model, callback ? callback() : {});
385
+ let attrs = callback ? callback() : {};
386
+ attrs = {...attrs, selected: -1};
387
+ const child = new TabSetNode(this._model, attrs);
385
388
  this._model._setActiveTabset(child);
386
389
  this._addChild(child);
387
390
  }
@@ -404,24 +407,24 @@ class RowNode extends Node implements IDropTarget {
404
407
  const dockLocation = DockLocation.LEFT;
405
408
  const outlineRect = dockLocation.getDockRect(this._rect);
406
409
  outlineRect.width = outlineRect.width / 2;
407
- dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, "flexlayout__outline_rect_edge");
410
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT_EDGE);
408
411
  } else if (x > this._rect.getRight() - margin && yy > h / 2 - half && yy < h / 2 + half) {
409
412
  const dockLocation = DockLocation.RIGHT;
410
413
  const outlineRect = dockLocation.getDockRect(this._rect);
411
414
  outlineRect.width = outlineRect.width / 2;
412
415
  outlineRect.x += outlineRect.width;
413
- dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, "flexlayout__outline_rect_edge");
416
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT_EDGE);
414
417
  } else if (y < this._rect.y + margin && xx > w / 2 - half && xx < w / 2 + half) {
415
418
  const dockLocation = DockLocation.TOP;
416
419
  const outlineRect = dockLocation.getDockRect(this._rect);
417
420
  outlineRect.height = outlineRect.height / 2;
418
- dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, "flexlayout__outline_rect_edge");
421
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT_EDGE);
419
422
  } else if (y > this._rect.getBottom() - margin && xx > w / 2 - half && xx < w / 2 + half) {
420
423
  const dockLocation = DockLocation.BOTTOM;
421
424
  const outlineRect = dockLocation.getDockRect(this._rect);
422
425
  outlineRect.height = outlineRect.height / 2;
423
426
  outlineRect.y += outlineRect.height;
424
- dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, "flexlayout__outline_rect_edge");
427
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT_EDGE);
425
428
  }
426
429
 
427
430
  if (dropInfo !== undefined) {
@@ -4,6 +4,7 @@ import DockLocation from "../DockLocation";
4
4
  import DropInfo from "../DropInfo";
5
5
  import Orientation from "../Orientation";
6
6
  import Rect from "../Rect";
7
+ import { CLASSES } from "../Types";
7
8
  import BorderNode from "./BorderNode";
8
9
  import IDraggable from "./IDraggable";
9
10
  import IDropTarget from "./IDropTarget";
@@ -27,6 +28,9 @@ class TabSetNode extends Node implements IDraggable, IDropTarget {
27
28
  newLayoutNode._addChild(child);
28
29
  });
29
30
  }
31
+ if (newLayoutNode._children.length === 0) {
32
+ newLayoutNode._setSelected(-1);
33
+ }
30
34
 
31
35
  if (json.maximized && json.maximized === true) {
32
36
  model._setMaximizedTabset(newLayoutNode);
@@ -268,11 +272,11 @@ class TabSetNode extends Node implements IDraggable, IDropTarget {
268
272
  if (dragNode === this) {
269
273
  const dockLocation = DockLocation.CENTER;
270
274
  const outlineRect = this._tabHeaderRect;
271
- dropInfo = new DropInfo(this, outlineRect!, dockLocation, -1, "flexlayout__outline_rect");
275
+ dropInfo = new DropInfo(this, outlineRect!, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
272
276
  } else if (this._contentRect!.contains(x, y)) {
273
277
  const dockLocation = DockLocation.getLocation(this._contentRect!, x, y);
274
278
  const outlineRect = dockLocation.getDockRect(this._rect);
275
- dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, "flexlayout__outline_rect");
279
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
276
280
  } else if (this._tabHeaderRect != null && this._tabHeaderRect.contains(x, y)) {
277
281
  let r: Rect;
278
282
  let yy: number;
@@ -296,7 +300,7 @@ class TabSetNode extends Node implements IDraggable, IDropTarget {
296
300
  if (x >= p && x < childCenter) {
297
301
  const dockLocation = DockLocation.CENTER;
298
302
  const outlineRect = new Rect(r.x - 2, yy, 3, h);
299
- dropInfo = new DropInfo(this, outlineRect, dockLocation, i, "flexlayout__outline_rect");
303
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, i, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
300
304
  break;
301
305
  }
302
306
  p = childCenter;
@@ -305,7 +309,7 @@ class TabSetNode extends Node implements IDraggable, IDropTarget {
305
309
  if (dropInfo == null) {
306
310
  const dockLocation = DockLocation.CENTER;
307
311
  const outlineRect = new Rect(r.getRight() - 2, yy, 3, h);
308
- dropInfo = new DropInfo(this, outlineRect, dockLocation, this._children.length, "flexlayout__outline_rect");
312
+ dropInfo = new DropInfo(this, outlineRect, dockLocation, this._children.length, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
309
313
  }
310
314
  }
311
315
 
@@ -6,6 +6,7 @@ import Rect from "../Rect";
6
6
  import { IIcons, ILayoutCallbacks, ITitleObject } from "./Layout";
7
7
  import { ICloseType } from "../model/ICloseType";
8
8
  import { CLASSES } from "../Types";
9
+ import { isAuxMouseEvent } from "./TabSet";
9
10
 
10
11
  /** @hidden @internal */
11
12
  export interface IBorderButtonProps {
@@ -24,8 +25,20 @@ export const BorderButton = (props: IBorderButtonProps) => {
24
25
  const selfRef = React.useRef<HTMLDivElement | null>(null);
25
26
 
26
27
  const onMouseDown = (event: React.MouseEvent<HTMLDivElement, MouseEvent> | React.TouchEvent<HTMLDivElement>) => {
27
- const message = layout.i18nName(I18nLabel.Move_Tab, node.getName());
28
- props.layout.dragStart(event, message, node, node.isEnableDrag(), onClick, (event2: Event) => undefined);
28
+ if (!isAuxMouseEvent(event)) {
29
+ const message = layout.i18nName(I18nLabel.Move_Tab, node.getName());
30
+ props.layout.dragStart(event, message, node, node.isEnableDrag(), onClick, (event2: Event) => undefined);
31
+ }
32
+ };
33
+
34
+ const onAuxMouseClick = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
35
+ if (isAuxMouseEvent(event)) {
36
+ layout.auxMouseClick(node, event);
37
+ }
38
+ };
39
+
40
+ const onContextMenu = (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
41
+ layout.showContextMenu(node, event);
29
42
  };
30
43
 
31
44
  const onClick = () => {
@@ -129,7 +142,13 @@ export const BorderButton = (props: IBorderButtonProps) => {
129
142
  }
130
143
 
131
144
  return (
132
- <div ref={selfRef} style={{}} className={classNames} onMouseDown={onMouseDown} onTouchStart={onMouseDown} title={node.getHelpText()}>
145
+ <div ref={selfRef} style={{}} className={classNames}
146
+ onMouseDown={onMouseDown}
147
+ onClick={onAuxMouseClick}
148
+ onAuxClick={onAuxMouseClick}
149
+ onContextMenu={onContextMenu}
150
+ onTouchStart={onMouseDown}
151
+ title={node.getHelpText()}>
133
152
  {leading}
134
153
  {content}
135
154
  {buttons}