flexlayout-react 0.8.2 → 0.8.4

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 (60) hide show
  1. package/ChangeLog.txt +10 -0
  2. package/README.md +3 -3
  3. package/declarations/Types.d.ts +3 -1
  4. package/declarations/model/BorderNode.d.ts +1 -0
  5. package/declarations/model/IJsonModel.d.ts +30 -2
  6. package/declarations/model/TabSetNode.d.ts +1 -0
  7. package/declarations/view/Layout.d.ts +1 -1
  8. package/declarations/view/Utils.d.ts +0 -3
  9. package/dist/flexlayout.js +12 -12
  10. package/dist/flexlayout_min.js +1 -1
  11. package/lib/Types.js +2 -0
  12. package/lib/Types.js.map +1 -1
  13. package/lib/model/BorderNode.js +4 -0
  14. package/lib/model/BorderNode.js.map +1 -1
  15. package/lib/model/LayoutWindow.js +1 -3
  16. package/lib/model/LayoutWindow.js.map +1 -1
  17. package/lib/model/Model.js +2 -9
  18. package/lib/model/Model.js.map +1 -1
  19. package/lib/model/TabSetNode.js +5 -1
  20. package/lib/model/TabSetNode.js.map +1 -1
  21. package/lib/view/BorderTabSet.js +17 -13
  22. package/lib/view/BorderTabSet.js.map +1 -1
  23. package/lib/view/Layout.js +2 -2
  24. package/lib/view/Layout.js.map +1 -1
  25. package/lib/view/Splitter.js +2 -2
  26. package/lib/view/Tab.js +5 -0
  27. package/lib/view/Tab.js.map +1 -1
  28. package/lib/view/TabOverflowHook.js +141 -112
  29. package/lib/view/TabOverflowHook.js.map +1 -1
  30. package/lib/view/TabSet.js +14 -20
  31. package/lib/view/TabSet.js.map +1 -1
  32. package/lib/view/Utils.js +0 -17
  33. package/lib/view/Utils.js.map +1 -1
  34. package/package.json +1 -1
  35. package/src/Types.ts +3 -0
  36. package/src/model/BorderNode.ts +7 -0
  37. package/src/model/IJsonModel.ts +34 -2
  38. package/src/model/LayoutWindow.ts +1 -3
  39. package/src/model/Model.ts +2 -9
  40. package/src/model/TabSetNode.ts +10 -1
  41. package/src/view/BorderTabSet.tsx +26 -15
  42. package/src/view/Layout.tsx +2 -2
  43. package/src/view/Splitter.tsx +2 -2
  44. package/src/view/Tab.tsx +6 -0
  45. package/src/view/TabOverflowHook.tsx +165 -127
  46. package/src/view/TabSet.tsx +19 -21
  47. package/src/view/Utils.tsx +0 -24
  48. package/style/_base.scss +26 -3
  49. package/style/dark.css +701 -685
  50. package/style/dark.css.map +1 -1
  51. package/style/gray.css +684 -668
  52. package/style/gray.css.map +1 -1
  53. package/style/light.css +685 -669
  54. package/style/light.css.map +1 -1
  55. package/style/rounded.css +730 -697
  56. package/style/rounded.css.map +1 -1
  57. package/style/rounded.scss +22 -5
  58. package/style/underline.css +705 -690
  59. package/style/underline.css.map +1 -1
  60. package/style/underline.scss +1 -1
@@ -28,25 +28,28 @@ export const TabSet = (props) => {
28
28
  const newContentRect = Rect.getContentRect(contentRef.current).relativeTo(layout.getDomRect());
29
29
  if (!node.getContentRect().equals(newContentRect)) {
30
30
  node.setContentRect(newContentRect);
31
- layout.redrawInternal("tabset content rect " + newContentRect);
31
+ setTimeout(() => {
32
+ layout.redrawInternal("tabset content rect " + newContentRect);
33
+ }, 0);
32
34
  }
33
35
  });
34
36
  // 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);
37
+ const { selfRef, userControlledPositionRef, onScroll, hiddenTabs, onMouseWheel, isTabOverflow } = useTabOverflow(layout, node, Orientation.HORZ, tabStripInnerRef, layout.getClassName(CLASSES.FLEXLAYOUT__TAB_BUTTON));
36
38
  const onOverflowClick = (event) => {
37
39
  const callback = layout.getShowOverflowMenu();
40
+ const items = hiddenTabs.map(h => { return { index: h, node: node.getChildren()[h] }; });
38
41
  if (callback !== undefined) {
39
- callback(node, event, hiddenTabs, onOverflowItemSelect);
42
+ callback(node, event, items, onOverflowItemSelect);
40
43
  }
41
44
  else {
42
45
  const element = overflowbuttonRef.current;
43
- showPopup(element, hiddenTabs, onOverflowItemSelect, layout);
46
+ showPopup(element, items, onOverflowItemSelect, layout);
44
47
  }
45
48
  event.stopPropagation();
46
49
  };
47
50
  const onOverflowItemSelect = (item) => {
48
51
  layout.doAction(Actions.selectTab(item.node.getId()));
49
- userControlledLeft.current = false;
52
+ userControlledPositionRef.current = false;
50
53
  };
51
54
  const onDragStart = (event) => {
52
55
  if (!layout.getEditingTab()) {
@@ -64,13 +67,6 @@ export const TabSet = (props) => {
64
67
  };
65
68
  const onPointerDown = (event) => {
66
69
  if (!isAuxMouseEvent(event)) {
67
- let name = node.getName();
68
- if (name === undefined) {
69
- name = "";
70
- }
71
- else {
72
- name = ": " + name;
73
- }
74
70
  layout.doAction(Actions.setActiveTabset(node.getId(), layout.getWindowId()));
75
71
  }
76
72
  };
@@ -113,10 +109,6 @@ export const TabSet = (props) => {
113
109
  };
114
110
  // Start Render
115
111
  const cm = layout.getClassName;
116
- // tabbar inner can get shifted left via tab rename, this resets scrollleft to 0
117
- if (tabStripInnerRef.current !== null && tabStripInnerRef.current.scrollLeft !== 0) {
118
- tabStripInnerRef.current.scrollLeft = 0;
119
- }
120
112
  const selectedTabNode = node.getSelectedNode();
121
113
  const path = node.getPath();
122
114
  const tabs = [];
@@ -143,7 +135,7 @@ export const TabSet = (props) => {
143
135
  renderState.overflowPosition = stickyButtons.length;
144
136
  }
145
137
  if (stickyButtons.length > 0) {
146
- if (!node.isEnableTabWrap() && (tabsTruncated || isTabStretch)) {
138
+ if (!node.isEnableTabWrap() && (isTabOverflow || isTabStretch)) {
147
139
  buttons = [...stickyButtons, ...buttons];
148
140
  }
149
141
  else {
@@ -155,7 +147,8 @@ export const TabSet = (props) => {
155
147
  const overflowTitle = layout.i18nName(I18nLabel.Overflow_Menu_Tooltip);
156
148
  let overflowContent;
157
149
  if (typeof icons.more === "function") {
158
- overflowContent = icons.more(node, hiddenTabs);
150
+ const items = hiddenTabs.map(h => { return { index: h, node: node.getChildren()[h] }; });
151
+ overflowContent = icons.more(node, items);
159
152
  }
160
153
  else {
161
154
  overflowContent = (React.createElement(React.Fragment, null,
@@ -216,9 +209,10 @@ export const TabSet = (props) => {
216
209
  }
217
210
  else {
218
211
  if (node.isEnableTabStrip()) {
212
+ const miniScrollbarClasses = cm(CLASSES.FLEXLAYOUT__MINI_SCROLLBAR) + (node.isEnableTabScrollbar() ? "" : " " + cm(CLASSES.FLEXLAYOUT__MINI_SCROLLBAR_HIDDEN));
219
213
  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 },
220
- React.createElement("div", { ref: tabStripInnerRef, className: cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER) + " " + cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_ + node.getTabLocation()) },
221
- 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)),
214
+ React.createElement("div", { ref: tabStripInnerRef, className: cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER) + " " + cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_ + node.getTabLocation()) + " " + miniScrollbarClasses, style: { overflowX: 'auto', overflowY: "hidden" }, onScroll: onScroll },
215
+ React.createElement("div", { style: { width: (isTabStretch ? "100%" : "none") }, className: cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER) + " " + cm(CLASSES.FLEXLAYOUT__TABSET_TABBAR_INNER_TAB_CONTAINER_ + node.getTabLocation()) }, tabs)),
222
216
  buttonbar));
223
217
  }
224
218
  }
@@ -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/lib/view/Utils.js CHANGED
@@ -86,23 +86,6 @@ export function canDockToWindow(node) {
86
86
  }
87
87
  return false;
88
88
  }
89
- export function keepOnScreen(rect) {
90
- rect.snap(10);
91
- const availableScreenWidth = window.screen.availWidth;
92
- const availableScreenHeight = window.screen.availHeight;
93
- if (rect.x + rect.width > availableScreenWidth || rect.y + rect.height > availableScreenHeight) {
94
- // Adjust the rectangle to fit within the available screen space
95
- rect.x = Math.max(0, Math.min(rect.x, availableScreenWidth - rect.width));
96
- rect.y = Math.max(0, Math.min(rect.y, availableScreenHeight - rect.height));
97
- }
98
- return rect;
99
- }
100
- export function isOnScreen(rect) {
101
- const availableScreenWidth = window.screen.availWidth;
102
- const availableScreenHeight = window.screen.availHeight;
103
- return (rect.x >= 0 && rect.getRight() <= availableScreenWidth &&
104
- rect.y >= 0 || rect.getBottom() <= availableScreenHeight);
105
- }
106
89
  export function copyInlineStyles(source, target) {
107
90
  // Get the inline style attribute from the source element
108
91
  const sourceStyle = source.getAttribute('style');
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/view/Utils.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/view/Utils.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.8.2",
3
+ "version": "0.8.4",
4
4
  "description": "A multi-tab docking layout manager",
5
5
  "main": "lib/index.js",
6
6
  "types": "./declarations/index.d.ts",
package/src/Types.ts CHANGED
@@ -111,4 +111,7 @@ export enum CLASSES {
111
111
  FLEXLAYOUT__POPUP_MENU_CONTAINER = "flexlayout__popup_menu_container",
112
112
  FLEXLAYOUT__POPUP_MENU_ITEM = "flexlayout__popup_menu_item",
113
113
  FLEXLAYOUT__POPUP_MENU = "flexlayout__popup_menu",
114
+
115
+ FLEXLAYOUT__MINI_SCROLLBAR = "flexlayout__mini_scrollbar",
116
+ FLEXLAYOUT__MINI_SCROLLBAR_HIDDEN = "flexlayout__mini_scrollbar_hidden",
114
117
  }
@@ -159,6 +159,10 @@ export class BorderNode extends Node implements IDropTarget {
159
159
  }
160
160
  }
161
161
 
162
+ isEnableTabScrollbar() {
163
+ return this.getAttr("enableTabScrollbar") as boolean;
164
+ }
165
+
162
166
  /** @internal */
163
167
  setSelected(index: number) {
164
168
  this.attributes.selected = index;
@@ -446,6 +450,9 @@ export class BorderNode extends Node implements IDropTarget {
446
450
  attributeDefinitions.addInherited("enableAutoHide", "borderEnableAutoHide").setType(Attribute.BOOLEAN).setDescription(
447
451
  `hide border if it has zero tabs`
448
452
  );
453
+ attributeDefinitions.addInherited("enableTabScrollbar", "borderEnableTabScrollbar").setType(Attribute.BOOLEAN).setDescription(
454
+ `whether to show a mini scrollbar for the tabs`
455
+ );
449
456
  return attributeDefinitions;
450
457
  }
451
458
  }
@@ -92,6 +92,15 @@ export interface IGlobalAttributes {
92
92
  */
93
93
  borderEnableDrop?: boolean;
94
94
 
95
+ /**
96
+ Value for BorderNode attribute enableTabScrollbar if not overridden
97
+
98
+ whether to show a mini scrollbar for the tabs
99
+
100
+ Default: false
101
+ */
102
+ borderEnableTabScrollbar?: boolean;
103
+
95
104
  /**
96
105
  Value for BorderNode attribute maxSize if not overridden
97
106
 
@@ -412,6 +421,15 @@ export interface IGlobalAttributes {
412
421
  */
413
422
  tabSetEnableSingleTabStretch?: boolean;
414
423
 
424
+ /**
425
+ Value for TabSetNode attribute enableTabScrollbar if not overridden
426
+
427
+ whether to show a mini scrollbar for the tabs
428
+
429
+ Default: false
430
+ */
431
+ tabSetEnableTabScrollbar?: boolean;
432
+
415
433
  /**
416
434
  Value for TabSetNode attribute enableTabStrip if not overridden
417
435
 
@@ -424,7 +442,7 @@ export interface IGlobalAttributes {
424
442
  /**
425
443
  Value for TabSetNode attribute enableTabWrap if not overridden
426
444
 
427
- show tabs in location top or bottom
445
+ wrap tabs onto multiple lines
428
446
 
429
447
  Default: false
430
448
  */
@@ -577,6 +595,13 @@ export interface ITabSetAttributes {
577
595
  */
578
596
  enableSingleTabStretch?: boolean;
579
597
 
598
+ /**
599
+ whether to show a mini scrollbar for the tabs
600
+
601
+ Default: inherited from Global attribute tabSetEnableTabScrollbar (default false)
602
+ */
603
+ enableTabScrollbar?: boolean;
604
+
580
605
  /**
581
606
  enable tab strip and allow multiple tabs in this tabset
582
607
 
@@ -585,7 +610,7 @@ export interface ITabSetAttributes {
585
610
  enableTabStrip?: boolean;
586
611
 
587
612
  /**
588
- show tabs in location top or bottom
613
+ wrap tabs onto multiple lines
589
614
 
590
615
  Default: inherited from Global attribute tabSetEnableTabWrap (default false)
591
616
  */
@@ -890,6 +915,13 @@ export interface IBorderAttributes {
890
915
  */
891
916
  enableDrop?: boolean;
892
917
 
918
+ /**
919
+ whether to show a mini scrollbar for the tabs
920
+
921
+ Default: inherited from Global attribute borderEnableTabScrollbar (default false)
922
+ */
923
+ enableTabScrollbar?: boolean;
924
+
893
925
  /**
894
926
  the maximum size of the tab area
895
927
 
@@ -4,7 +4,6 @@ import { Model } from "./Model";
4
4
  import { RowNode } from "./RowNode";
5
5
  import { Node } from "./Node";
6
6
  import { TabSetNode } from "./TabSetNode";
7
- import { keepOnScreen } from "../view/Utils";
8
7
  import { LayoutInternal } from "../view/Layout";
9
8
 
10
9
  export class LayoutWindow {
@@ -112,8 +111,7 @@ export class LayoutWindow {
112
111
  static fromJson(windowJson: IJsonPopout, model: Model, windowId: string): LayoutWindow {
113
112
  const count = model.getwindowsMap().size;
114
113
  let rect = windowJson.rect ? Rect.fromJson(windowJson.rect) : new Rect(50 + 50 * count, 50 + 50 * count, 600, 400);
115
- rect = keepOnScreen(rect); // snaps to grid of 10x10 and then moves into visible area
116
- // snapping prevents issue where window moves 1 pixel per save/restore on Chrome
114
+ rect.snap(10); // snapping prevents issue where window moves 1 pixel per save/restore on Chrome
117
115
  const layoutWindow = new LayoutWindow(windowId, rect);
118
116
  layoutWindow.root = RowNode.fromJson(windowJson.layout, model, layoutWindow);
119
117
  return layoutWindow;
@@ -16,7 +16,6 @@ import { TabNode } from "./TabNode";
16
16
  import { TabSetNode } from "./TabSetNode";
17
17
  import { randomUUID } from "./Utils";
18
18
  import { LayoutWindow } from "./LayoutWindow";
19
- import { isOnScreen } from "../view/Utils";
20
19
 
21
20
  /** @internal */
22
21
  export const DefaultMin = 0;
@@ -406,18 +405,10 @@ export class Model {
406
405
  model.borders = BorderSet.fromJson(json.borders, model);
407
406
  }
408
407
  if (json.popouts) {
409
- let i= 0;
410
- let top = 100;
411
- let left = 100;
412
408
  for (const windowId in json.popouts) {
413
409
  const windowJson = json.popouts[windowId];
414
410
  const layoutWindow = LayoutWindow.fromJson(windowJson, model, windowId);
415
411
  model.windows.set(windowId, layoutWindow);
416
- // offscreen windows will reload cascaded (since cannot reposition)
417
- if (!isOnScreen(layoutWindow.rect)) {
418
- layoutWindow.rect = new Rect(top + i*50, left+ i*50, 600, 400);
419
- i++;
420
- }
421
412
  }
422
413
  }
423
414
 
@@ -694,6 +685,7 @@ export class Model {
694
685
  attributeDefinitions.add("tabMaxHeight", DefaultMax).setType(Attribute.NUMBER);
695
686
  attributeDefinitions.add("tabSetMaxWidth", DefaultMax).setType(Attribute.NUMBER);
696
687
  attributeDefinitions.add("tabSetMaxHeight", DefaultMax).setType(Attribute.NUMBER);
688
+ attributeDefinitions.add("tabSetEnableTabScrollbar", false).setType(Attribute.BOOLEAN);
697
689
 
698
690
  // border
699
691
  attributeDefinitions.add("borderSize", 200).setType(Attribute.NUMBER);
@@ -704,6 +696,7 @@ export class Model {
704
696
  attributeDefinitions.add("borderAutoSelectTabWhenClosed", false).setType(Attribute.BOOLEAN);
705
697
  attributeDefinitions.add("borderClassName", undefined).setType(Attribute.STRING);
706
698
  attributeDefinitions.add("borderEnableAutoHide", false).setType(Attribute.BOOLEAN);
699
+ attributeDefinitions.add("borderEnableTabScrollbar", false).setType(Attribute.BOOLEAN);
707
700
 
708
701
  return attributeDefinitions;
709
702
  }
@@ -209,6 +209,10 @@ export class TabSetNode extends Node implements IDraggable, IDropTarget {
209
209
  return this.getAttr("autoSelectTab") as boolean;
210
210
  }
211
211
 
212
+ isEnableTabScrollbar() {
213
+ return this.getAttr("enableTabScrollbar") as boolean;
214
+ }
215
+
212
216
  getClassNameTabStrip() {
213
217
  return this.getAttr("classNameTabStrip") as string | undefined;
214
218
  }
@@ -560,7 +564,7 @@ export class TabSetNode extends Node implements IDraggable, IDropTarget {
560
564
  );
561
565
 
562
566
  attributeDefinitions.addInherited("enableTabWrap", "tabSetEnableTabWrap").setDescription(
563
- `show tabs in location top or bottom`
567
+ `wrap tabs onto multiple lines`
564
568
  );
565
569
  attributeDefinitions.addInherited("tabLocation", "tabSetTabLocation").setDescription(
566
570
  `the location of the tabs either top or bottom`
@@ -571,6 +575,11 @@ export class TabSetNode extends Node implements IDraggable, IDropTarget {
571
575
  attributeDefinitions.addInherited("enableActiveIcon", "tabSetEnableActiveIcon").setType(Attribute.BOOLEAN).setDescription(
572
576
  `whether the active icon (*) should be displayed when the tabset is active`
573
577
  );
578
+
579
+ attributeDefinitions.addInherited("enableTabScrollbar", "tabSetEnableTabScrollbar").setType(Attribute.BOOLEAN).setDescription(
580
+ `whether to show a mini scrollbar for the tabs`
581
+ );
582
+
574
583
  return attributeDefinitions;
575
584
  }
576
585
 
@@ -27,6 +27,7 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
27
27
  const toolbarRef = React.useRef<HTMLDivElement | null>(null);
28
28
  const overflowbuttonRef = React.useRef<HTMLButtonElement | null>(null);
29
29
  const stickyButtonsRef = React.useRef<HTMLDivElement | null>(null);
30
+ const tabStripInnerRef = React.useRef<HTMLDivElement | null>(null);
30
31
 
31
32
  const icons = layout.getIcons();
32
33
 
@@ -34,8 +35,10 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
34
35
  border.setTabHeaderRect(Rect.getBoundingClientRect(selfRef.current!).relativeTo(layout.getDomRect()!));
35
36
  });
36
37
 
37
- const { selfRef, position, userControlledLeft, hiddenTabs, onMouseWheel, tabsTruncated }
38
- = useTabOverflow(border, Orientation.flip(border.getOrientation()), toolbarRef, stickyButtonsRef);
38
+ const { selfRef, userControlledPositionRef, onScroll, hiddenTabs, onMouseWheel, isTabOverflow } =
39
+ useTabOverflow(layout, border, Orientation.flip(border.getOrientation()), tabStripInnerRef,
40
+ layout.getClassName(CLASSES.FLEXLAYOUT__BORDER_BUTTON)
41
+ );
39
42
 
40
43
  const onAuxMouseClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {
41
44
  if (isAuxMouseEvent(event)) {
@@ -53,12 +56,14 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
53
56
 
54
57
  const onOverflowClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {
55
58
  const callback = layout.getShowOverflowMenu();
59
+ const items = hiddenTabs.map(h=> {return {index: h, node: (border.getChildren()[h] as TabNode)};});
56
60
  if (callback !== undefined) {
57
- callback(border, event, hiddenTabs, onOverflowItemSelect);
61
+
62
+ callback(border, event, items, onOverflowItemSelect);
58
63
  } else {
59
64
  const element = overflowbuttonRef.current!;
60
65
  showPopup(element,
61
- hiddenTabs,
66
+ items,
62
67
  onOverflowItemSelect,
63
68
  layout);
64
69
  }
@@ -67,7 +72,7 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
67
72
 
68
73
  const onOverflowItemSelect = (item: { node: TabNode; index: number }) => {
69
74
  layout.doAction(Actions.selectTab(item.node.getId()));
70
- userControlledLeft.current = false;
75
+ userControlledPositionRef.current = false;
71
76
  };
72
77
 
73
78
  const onPopoutTab = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {
@@ -125,7 +130,7 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
125
130
  }
126
131
 
127
132
  if (stickyButtons.length > 0) {
128
- if (tabsTruncated) {
133
+ if (isTabOverflow) {
129
134
  buttons = [...stickyButtons, ...buttons];
130
135
  } else {
131
136
  tabButtons.push(<div
@@ -144,7 +149,9 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
144
149
  const overflowTitle = layout.i18nName(I18nLabel.Overflow_Menu_Tooltip);
145
150
  let overflowContent;
146
151
  if (typeof icons.more === "function") {
147
- overflowContent = icons.more(border, hiddenTabs);
152
+ const items = hiddenTabs.map(h=> {return {index: h, node: (border.getChildren()[h] as TabNode)};});
153
+
154
+ overflowContent = icons.more(border, items);
148
155
  } else {
149
156
  overflowContent = (<>
150
157
  {icons.more}
@@ -193,15 +200,17 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
193
200
  let outerStyle = {};
194
201
  const borderHeight = size - 1;
195
202
  if (border.getLocation() === DockLocation.LEFT) {
196
- innerStyle = { right: "100%", top: position };
197
- outerStyle = { width: borderHeight };
203
+ innerStyle = { right: "100%", top:0 };
204
+ outerStyle = { width: borderHeight, overflowY: "auto"};
198
205
  } else if (border.getLocation() === DockLocation.RIGHT) {
199
- innerStyle = { left: "100%" , top:position};
200
- outerStyle = { width: borderHeight };
206
+ innerStyle = { left: "100%", top:0};
207
+ outerStyle = { width: borderHeight, overflowY: "auto" };
201
208
  } else {
202
- innerStyle = { left:position};
203
- outerStyle = { height: borderHeight };
209
+ innerStyle = {left:0 };
210
+ outerStyle = { height: borderHeight, overflowX: "auto" };
204
211
  }
212
+ const miniScrollbarClasses = cm(CLASSES.FLEXLAYOUT__MINI_SCROLLBAR) + (border.isEnableTabScrollbar()?"":" " + cm(CLASSES.FLEXLAYOUT__MINI_SCROLLBAR_HIDDEN));
213
+
205
214
 
206
215
  return (
207
216
  <div
@@ -218,9 +227,11 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
218
227
  onWheel={onMouseWheel}
219
228
  >
220
229
  <div
230
+ ref={tabStripInnerRef}
231
+ className={cm(CLASSES.FLEXLAYOUT__BORDER_INNER) + " " + cm(CLASSES.FLEXLAYOUT__BORDER_INNER_ + border.getLocation().getName()) + " " + miniScrollbarClasses}
221
232
  style={outerStyle}
222
- className={cm(CLASSES.FLEXLAYOUT__BORDER_INNER) + " " + cm(CLASSES.FLEXLAYOUT__BORDER_INNER_ + border.getLocation().getName())}
223
- >
233
+ onScroll={onScroll}
234
+ >
224
235
  <div
225
236
  style={innerStyle}
226
237
  className={cm(CLASSES.FLEXLAYOUT__BORDER_INNER_TAB_CONTAINER) + " " + cm(CLASSES.FLEXLAYOUT__BORDER_INNER_TAB_CONTAINER_ + border.getLocation().getName())}
@@ -406,7 +406,7 @@ export class LayoutInternal extends React.Component<ILayoutInternalProps, ILayou
406
406
  const borderSetContentComponents = new Map<DockLocation, React.ReactNode>();
407
407
  for (const [_, location] of DockLocation.values) {
408
408
  const border = borders.get(location);
409
- const showBorder = border && (
409
+ const showBorder = border && border.isShowing() && (
410
410
  !border.isAutoHide() ||
411
411
  (border.isAutoHide() && (border.getChildren().length > 0 || this.state.showHiddenBorder === location)));
412
412
  if (showBorder) {
@@ -1224,7 +1224,7 @@ export class LayoutInternal extends React.Component<ILayoutInternalProps, ILayou
1224
1224
  // *************************** End Drag Drop *************************************
1225
1225
  }
1226
1226
 
1227
- export const FlexLayoutVersion = "0.8.1";
1227
+ export const FlexLayoutVersion = "0.8.4";
1228
1228
 
1229
1229
  export type DragRectRenderCallback = (
1230
1230
  content: React.ReactNode | undefined,
@@ -35,8 +35,8 @@ export const Splitter = (props: ISplitterProps) => {
35
35
  let extra = node.getModel().getSplitterExtra();
36
36
 
37
37
  if (!isDesktop()) {
38
- // make hit test area on mobile at least 30px
39
- extra = Math.max(30, extra + size) - size;
38
+ // make hit test area on mobile at least 20px
39
+ extra = Math.max(20, extra + size) - size;
40
40
  }
41
41
 
42
42
  React.useEffect(() => {
package/src/view/Tab.tsx CHANGED
@@ -95,6 +95,12 @@ export const Tab = (props: ITabProps) => {
95
95
  }
96
96
  }
97
97
 
98
+ if (parentNode instanceof BorderNode) {
99
+ if (!parentNode.isShowing()) {
100
+ style.display = "none";
101
+ }
102
+ }
103
+
98
104
  let className = cm(CLASSES.FLEXLAYOUT__TAB);
99
105
  if (parentNode instanceof BorderNode) {
100
106
  className += " " + cm(CLASSES.FLEXLAYOUT__TAB_BORDER);