flexlayout-react 0.7.10 → 0.7.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/ChangeLog.txt +11 -0
  2. package/README.md +25 -92
  3. package/declarations/Types.d.ts +4 -0
  4. package/declarations/model/Actions.d.ts +1 -1
  5. package/declarations/model/IJsonModel.d.ts +5 -0
  6. package/declarations/model/Model.d.ts +7 -0
  7. package/declarations/model/TabNode.d.ts +1 -0
  8. package/declarations/view/Layout.d.ts +1 -0
  9. package/dist/flexlayout.js +9 -9
  10. package/dist/flexlayout_min.js +1 -1
  11. package/lib/Types.js +4 -0
  12. package/lib/Types.js.map +1 -1
  13. package/lib/model/Actions.js.map +1 -1
  14. package/lib/model/Model.js +30 -6
  15. package/lib/model/Model.js.map +1 -1
  16. package/lib/model/TabNode.js +4 -0
  17. package/lib/model/TabNode.js.map +1 -1
  18. package/lib/view/BorderButton.js +10 -1
  19. package/lib/view/BorderButton.js.map +1 -1
  20. package/lib/view/BorderTabSet.js +13 -10
  21. package/lib/view/BorderTabSet.js.map +1 -1
  22. package/lib/view/Layout.js +4 -4
  23. package/lib/view/Layout.js.map +1 -1
  24. package/lib/view/Tab.js +3 -0
  25. package/lib/view/Tab.js.map +1 -1
  26. package/lib/view/TabSet.js +13 -10
  27. package/lib/view/TabSet.js.map +1 -1
  28. package/lib/view/Utils.js +10 -2
  29. package/lib/view/Utils.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/Types.ts +5 -0
  32. package/src/model/Actions.ts +1 -1
  33. package/src/model/IJsonModel.ts +7 -0
  34. package/src/model/Model.ts +35 -7
  35. package/src/model/TabNode.ts +5 -0
  36. package/src/view/BorderButton.tsx +10 -1
  37. package/src/view/BorderTabSet.tsx +24 -20
  38. package/src/view/Layout.tsx +9 -6
  39. package/src/view/Tab.tsx +4 -0
  40. package/src/view/TabSet.tsx +24 -20
  41. package/src/view/Utils.tsx +10 -2
  42. package/style/light.css +544 -544
@@ -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
@@ -3,10 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isAuxMouseEvent = exports.hideElement = exports.getRenderStateEx = void 0;
4
4
  const React = require("react");
5
5
  /** @internal */
6
- function getRenderStateEx(layout, node, iconFactory, titleFactory) {
6
+ function getRenderStateEx(layout, node, iconFactory, titleFactory, iconAngle) {
7
7
  let leadingContent = iconFactory ? iconFactory(node) : undefined;
8
8
  let titleContent = node.getName();
9
9
  let name = node.getName();
10
+ if (iconAngle === undefined) {
11
+ iconAngle = 0;
12
+ }
10
13
  function isTitleObject(obj) {
11
14
  return obj.titleContent !== undefined;
12
15
  }
@@ -27,7 +30,12 @@ function getRenderStateEx(layout, node, iconFactory, titleFactory) {
27
30
  }
28
31
  }
29
32
  if (leadingContent === undefined && node.getIcon() !== undefined) {
30
- leadingContent = React.createElement("img", { style: { width: "1em", height: "1em" }, src: node.getIcon(), alt: "leadingContent" });
33
+ if (iconAngle !== 0) {
34
+ leadingContent = React.createElement("img", { style: { width: "1em", height: "1em", transform: "rotate(" + iconAngle + "deg)" }, src: node.getIcon(), alt: "leadingContent" });
35
+ }
36
+ else {
37
+ leadingContent = React.createElement("img", { style: { width: "1em", height: "1em" }, src: node.getIcon(), alt: "leadingContent" });
38
+ }
31
39
  }
32
40
  let buttons = [];
33
41
  // allow customization of leading contents (icon) and contents
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../src/view/Utils.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAI/B,gBAAgB;AAChB,SAAgB,gBAAgB,CAC5B,MAAwB,EACxB,IAAa,EACb,WAAyB,EACzB,YAA2B;IAE3B,IAAI,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,IAAI,YAAY,GAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnD,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAE1B,SAAS,aAAa,CAAC,GAAQ;QAC3B,OAAO,GAAG,CAAC,YAAY,KAAK,SAAS,CAAA;IACzC,CAAC;IAED,IAAI,YAAY,KAAK,SAAS,EAAE;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE;YACxB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;gBAC9B,YAAY,GAAG,QAAkB,CAAC;gBAClC,IAAI,GAAG,QAAkB,CAAC;aAC7B;iBAAM,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;gBAChC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;gBACrC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;aACxB;iBAAM;gBACH,YAAY,GAAG,QAAQ,CAAC;aAC3B;SACJ;KACJ;IAED,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE;QAC9D,cAAc,GAAG,6BAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAC,gBAAgB,GAAG,CAAC;KAC9G;IAED,IAAI,OAAO,GAAU,EAAE,CAAC;IAExB,8DAA8D;IAC9D,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACtF,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAEvC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAExC,OAAO,WAAW,CAAC;AAEvB,CAAC;AA3CD,4CA2CC;AAED,gBAAgB;AAChB,SAAgB,WAAW,CAAC,KAA0B,EAAE,aAA+B;IACnF,IAAI,aAAa,EAAE;QACf,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;KAC/B;SAAM;QACH,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;KAC1B;AACL,CAAC;AAND,kCAMC;AAGD,gBAAgB;AAChB,SAAgB,eAAe,CAAC,KAAsF;IAClH,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,CAAC,WAAW,YAAY,UAAU,EAAE;QACzC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;YACpG,QAAQ,GAAG,IAAI,CAAC;SACnB;KACJ;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AARD,0CAQC"}
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.7.10",
3
+ "version": "0.7.12",
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
@@ -26,7 +26,12 @@ export enum CLASSES {
26
26
  FLEXLAYOUT__BORDER_TOOLBAR_BUTTON_FLOAT = "flexlayout__border_toolbar_button-float",
27
27
 
28
28
  FLEXLAYOUT__DRAG_RECT = "flexlayout__drag_rect",
29
+
29
30
  FLEXLAYOUT__EDGE_RECT = "flexlayout__edge_rect",
31
+ FLEXLAYOUT__EDGE_RECT_TOP = "flexlayout__edge_rect_top",
32
+ FLEXLAYOUT__EDGE_RECT_LEFT = "flexlayout__edge_rect_left",
33
+ FLEXLAYOUT__EDGE_RECT_BOTTOM = "flexlayout__edge_rect_bottom",
34
+ FLEXLAYOUT__EDGE_RECT_RIGHT = "flexlayout__edge_rect_right",
30
35
 
31
36
  FLEXLAYOUT__ERROR_BOUNDARY_CONTAINER = "flexlayout__error_boundary_container",
32
37
  FLEXLAYOUT__ERROR_BOUNDARY_CONTENT = "flexlayout__error_boundary_content",
@@ -100,7 +100,7 @@ export class Actions {
100
100
  * @param tabsetNodeId the id of the tabset node to set as active
101
101
  * @returns {Action} the action
102
102
  */
103
- static setActiveTabset(tabsetNodeId: string): Action {
103
+ static setActiveTabset(tabsetNodeId: string | undefined): Action {
104
104
  return new Action(Actions.SET_ACTIVE_TABSET, { tabsetNode: tabsetNodeId });
105
105
  }
106
106
 
@@ -40,6 +40,7 @@ export interface IGlobalAttributes {
40
40
  borderMinSize?: number; // default: 0
41
41
  borderSize?: number; // default: 200
42
42
  enableEdgeDock?: boolean; // default: true
43
+ enableRotateBorderIcons?: boolean; // default: true
43
44
  enableUseVisibility?: boolean; // default: false
44
45
  legacyOverflowMenu?: boolean; // default: false
45
46
  marginInsets?: IInsets; // default: {"top":0,"right":0,"bottom":0,"left":0}
@@ -50,6 +51,7 @@ export interface IGlobalAttributes {
50
51
  tabBorderWidth?: number; // default: -1
51
52
  tabClassName?: string;
52
53
  tabCloseType?: ICloseType; // default: 1
54
+ tabContentClassName?: string;
53
55
  tabDragSpeed?: number; // default: 0.3
54
56
  tabEnableClose?: boolean; // default: true
55
57
  tabEnableDrag?: boolean; // default: true
@@ -108,6 +110,10 @@ export interface ITabSetAttributes {
108
110
  type: "tabset";
109
111
  weight?: number; // default: 100
110
112
  width?: number;
113
+
114
+ // special attributes are read from initial json but must subseqently be set on the model
115
+ maximized?: boolean; // default false
116
+ active?:boolean; // default false
111
117
  }
112
118
  export interface ITabAttributes {
113
119
  altName?: string;
@@ -117,6 +123,7 @@ export interface ITabAttributes {
117
123
  closeType?: ICloseType; // default: 1 - inherited from global tabCloseType
118
124
  component?: string;
119
125
  config?: any;
126
+ contentClassName?: string;
120
127
  enableClose?: boolean; // default: true - inherited from global tabEnableClose
121
128
  enableDrag?: boolean; // default: true - inherited from global tabEnableDrag
122
129
  enableFloat?: boolean; // default: false - inherited from global tabEnableFloat
@@ -52,15 +52,16 @@ export class Model {
52
52
  const attributeDefinitions = new AttributeDefinitions();
53
53
 
54
54
  attributeDefinitions.add("legacyOverflowMenu", false).setType(Attribute.BOOLEAN);
55
-
56
- // splitter
57
- attributeDefinitions.add("splitterSize", -1).setType(Attribute.NUMBER);
58
- attributeDefinitions.add("splitterExtra", 0).setType(Attribute.NUMBER);
59
55
  attributeDefinitions.add("enableEdgeDock", true).setType(Attribute.BOOLEAN);
60
56
  attributeDefinitions.add("rootOrientationVertical", false).setType(Attribute.BOOLEAN);
61
57
  attributeDefinitions.add("marginInsets", { top: 0, right: 0, bottom: 0, left: 0 })
62
58
  .setType("IInsets");
63
59
  attributeDefinitions.add("enableUseVisibility", false).setType(Attribute.BOOLEAN);
60
+ attributeDefinitions.add("enableRotateBorderIcons", true).setType(Attribute.BOOLEAN);
61
+
62
+ // splitter
63
+ attributeDefinitions.add("splitterSize", -1).setType(Attribute.NUMBER);
64
+ attributeDefinitions.add("splitterExtra", 0).setType(Attribute.NUMBER);
64
65
 
65
66
  // tab
66
67
  attributeDefinitions.add("tabEnableClose", true).setType(Attribute.BOOLEAN);
@@ -68,6 +69,7 @@ export class Model {
68
69
  attributeDefinitions.add("tabEnableFloat", false).setType(Attribute.BOOLEAN);
69
70
  attributeDefinitions.add("tabEnableDrag", true).setType(Attribute.BOOLEAN);
70
71
  attributeDefinitions.add("tabEnableRename", true).setType(Attribute.BOOLEAN);
72
+ attributeDefinitions.add("tabContentClassName", undefined).setType(Attribute.STRING);
71
73
  attributeDefinitions.add("tabClassName", undefined).setType(Attribute.STRING);
72
74
  attributeDefinitions.add("tabIcon", undefined).setType(Attribute.STRING);
73
75
  attributeDefinitions.add("tabEnableRenderOnDemand", true).setType(Attribute.BOOLEAN);
@@ -207,6 +209,10 @@ export class Model {
207
209
  return this._attributes.enableUseVisibility as boolean;
208
210
  }
209
211
 
212
+ isEnableRotateBorderIcons() {
213
+ return this._attributes.enableRotateBorderIcons as boolean;
214
+ }
215
+
210
216
  /**
211
217
  * Gets the
212
218
  * @returns {BorderSet|*}
@@ -247,6 +253,24 @@ export class Model {
247
253
  return this._idMap[id];
248
254
  }
249
255
 
256
+ /**
257
+ * Finds the first/top left tab set of the given node.
258
+ * @param node The top node you want to begin searching from, deafults to the root node
259
+ * @returns The first Tab Set
260
+ */
261
+ getFirstTabSet(node = this._root as Node): Node
262
+ {
263
+ const child = node.getChildren()[0];
264
+ if (child instanceof TabSetNode)
265
+ {
266
+ return child;
267
+ }
268
+ else
269
+ {
270
+ return this.getFirstTabSet(child);
271
+ }
272
+ }
273
+
250
274
  /**
251
275
  * Update the node tree by performing the given action,
252
276
  * Actions should be generated via static methods on the Actions class
@@ -348,9 +372,13 @@ export class Model {
348
372
  break;
349
373
  }
350
374
  case Actions.SET_ACTIVE_TABSET: {
351
- const tabsetNode = this._idMap[action.data.tabsetNode];
352
- if (tabsetNode instanceof TabSetNode) {
353
- this._activeTabSet = tabsetNode;
375
+ if (action.data.tabsetNode === undefined) {
376
+ this._activeTabSet = undefined;
377
+ } else {
378
+ const tabsetNode = this._idMap[action.data.tabsetNode];
379
+ if (tabsetNode instanceof TabSetNode) {
380
+ this._activeTabSet = tabsetNode;
381
+ }
354
382
  }
355
383
  break;
356
384
  }
@@ -37,6 +37,7 @@ export class TabNode extends Node implements IDraggable {
37
37
  attributeDefinitions.addInherited("enableDrag", "tabEnableDrag").setType(Attribute.BOOLEAN);
38
38
  attributeDefinitions.addInherited("enableRename", "tabEnableRename").setType(Attribute.BOOLEAN);
39
39
  attributeDefinitions.addInherited("className", "tabClassName").setType(Attribute.STRING);
40
+ attributeDefinitions.addInherited("contentClassName", "tabContentClassName").setType(Attribute.STRING);
40
41
  attributeDefinitions.addInherited("icon", "tabIcon").setType(Attribute.STRING);
41
42
  attributeDefinitions.addInherited("enableRenderOnDemand", "tabEnableRenderOnDemand").setType(Attribute.BOOLEAN);
42
43
  attributeDefinitions.addInherited("enableFloat", "tabEnableFloat").setType(Attribute.BOOLEAN);
@@ -155,6 +156,10 @@ export class TabNode extends Node implements IDraggable {
155
156
  getClassName() {
156
157
  return this._getAttr("className") as string | undefined;
157
158
  }
159
+
160
+ getContentClassName() {
161
+ return this._getAttr("contentClassName") as string | undefined;
162
+ }
158
163
 
159
164
  isEnableRenderOnDemand() {
160
165
  return this._getAttr("enableRenderOnDemand") as boolean;
@@ -137,7 +137,16 @@ export const BorderButton = (props: IBorderButtonProps) => {
137
137
  classNames += " " + node.getClassName();
138
138
  }
139
139
 
140
- const renderState = getRenderStateEx(layout, node, iconFactory, titleFactory);
140
+ let iconAngle = 0;
141
+ if (node.getModel().isEnableRotateBorderIcons() === false) {
142
+ if (border === "left") {
143
+ iconAngle = 90;
144
+ } else if (border === "right") {
145
+ iconAngle = -90;
146
+ }
147
+ }
148
+
149
+ const renderState = getRenderStateEx(layout, node, iconFactory, titleFactory, iconAngle);
141
150
 
142
151
  let content = renderState.content ? (
143
152
  <div className={cm(CLASSES.FLEXLAYOUT__BORDER_BUTTON_CONTENT)}>
@@ -3,7 +3,7 @@ import { DockLocation } from "../DockLocation";
3
3
  import { BorderNode } from "../model/BorderNode";
4
4
  import { TabNode } from "../model/TabNode";
5
5
  import { BorderButton } from "./BorderButton";
6
- import { IIcons, ILayoutCallbacks, ITitleObject } from "./Layout";
6
+ import { IIcons, ILayoutCallbacks, ITabSetRenderValues, ITitleObject } from "./Layout";
7
7
  import { showPopup } from "../PopupMenu";
8
8
  import { Actions } from "../model/Actions";
9
9
  import { I18nLabel } from "../I18nLabel";
@@ -117,9 +117,30 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
117
117
  // allow customization of tabset right/bottom buttons
118
118
  let buttons: any[] = [];
119
119
  let stickyButtons: any[] = [];
120
- const renderState = { headerContent: undefined, buttons, stickyButtons: stickyButtons, headerButtons: [] };
120
+ const renderState : ITabSetRenderValues= { headerContent: undefined, buttons, stickyButtons: stickyButtons, headerButtons: [], overflowPosition: undefined };
121
121
  layout.customizeTabSet(border, renderState);
122
122
  buttons = renderState.buttons;
123
+
124
+ if (renderState.overflowPosition === undefined) {
125
+ renderState.overflowPosition = stickyButtons.length;
126
+ }
127
+
128
+ if (stickyButtons.length > 0) {
129
+ if (tabsTruncated) {
130
+ buttons = [...stickyButtons, ...buttons];
131
+ } else {
132
+ tabs.push(<div
133
+ ref={stickyButtonsRef}
134
+ key="sticky_buttons_container"
135
+ onMouseDown={onInterceptMouseDown}
136
+ onTouchStart={onInterceptMouseDown}
137
+ onDragStart={(e) => { e.preventDefault() }}
138
+ className={cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER)}
139
+ >
140
+ {stickyButtons}
141
+ </div>);
142
+ }
143
+ }
123
144
 
124
145
  if (hiddenTabs.length > 0) {
125
146
  const overflowTitle = layout.i18nName(I18nLabel.Overflow_Menu_Tooltip);
@@ -132,7 +153,7 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
132
153
  <div className={cm(CLASSES.FLEXLAYOUT__TAB_BUTTON_OVERFLOW_COUNT)}>{hiddenTabs.length}</div>
133
154
  </>);
134
155
  }
135
- buttons.unshift(
156
+ buttons.splice(Math.min(renderState.overflowPosition, buttons.length), 0,
136
157
  <button
137
158
  key="overflowbutton"
138
159
  ref={overflowbuttonRef}
@@ -146,23 +167,6 @@ export const BorderTabSet = (props: IBorderTabSetProps) => {
146
167
  </button>
147
168
  );
148
169
  }
149
-
150
- if (stickyButtons.length > 0) {
151
- if (tabsTruncated) {
152
- buttons = [...stickyButtons, ...buttons];
153
- } else {
154
- tabs.push(<div
155
- ref={stickyButtonsRef}
156
- key="sticky_buttons_container"
157
- onMouseDown={onInterceptMouseDown}
158
- onTouchStart={onInterceptMouseDown}
159
- onDragStart={(e) => { e.preventDefault() }}
160
- className={cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER)}
161
- >
162
- {stickyButtons}
163
- </div>);
164
- }
165
- }
166
170
 
167
171
  const selectedIndex = border.getSelected();
168
172
  if (selectedIndex !== -1) {
@@ -101,6 +101,9 @@ export interface ITabSetRenderValues {
101
101
  stickyButtons: React.ReactNode[];
102
102
  buttons: React.ReactNode[];
103
103
  headerButtons: React.ReactNode[];
104
+ // position to insert overflow button within [...stickyButtons, ...buttons]
105
+ // if left undefined position will be after the sticky buttons (if any)
106
+ overflowPosition: number | undefined;
104
107
  }
105
108
 
106
109
  export interface ITabRenderValues {
@@ -510,10 +513,10 @@ export class Layout extends React.Component<ILayoutProps, ILayoutState> {
510
513
  const offset = this.edgeRectLength / 2;
511
514
  const className = this.getClassName(CLASSES.FLEXLAYOUT__EDGE_RECT);
512
515
  const radius = 50;
513
- edges.push(<div key="North" style={{ top: r.y, left: r.x + r.width / 2 - offset, width: length, height: width, borderBottomLeftRadius: radius, borderBottomRightRadius: radius }} className={className}></div>)
514
- edges.push(<div key="West" style={{ top: r.y + r.height / 2 - offset, left: r.x, width: width, height: length, borderTopRightRadius: radius, borderBottomRightRadius: radius }} className={className}></div>)
515
- edges.push(<div key="South" style={{ top: r.y + r.height - width, left: r.x + r.width / 2 - offset, width: length, height: width, borderTopLeftRadius: radius, borderTopRightRadius: radius }} className={className}></div>)
516
- edges.push(<div key="East" style={{ top: r.y + r.height / 2 - offset, left: r.x + r.width - width, width: width, height: length, borderTopLeftRadius: radius, borderBottomLeftRadius: radius }} className={className}></div>)
516
+ edges.push(<div key="North" style={{ top: r.y, left: r.x + r.width / 2 - offset, width: length, height: width, borderBottomLeftRadius: radius, borderBottomRightRadius: radius }} className={className + " " + this.getClassName(CLASSES.FLEXLAYOUT__EDGE_RECT_TOP)}></div>);
517
+ edges.push(<div key="West" style={{ top: r.y + r.height / 2 - offset, left: r.x, width: width, height: length, borderTopRightRadius: radius, borderBottomRightRadius: radius }} className={className + " " + this.getClassName(CLASSES.FLEXLAYOUT__EDGE_RECT_LEFT)}></div>);
518
+ edges.push(<div key="South" style={{ top: r.y + r.height - width, left: r.x + r.width / 2 - offset, width: length, height: width, borderTopLeftRadius: radius, borderTopRightRadius: radius }} className={className + " " + this.getClassName(CLASSES.FLEXLAYOUT__EDGE_RECT_BOTTOM)}></div>);
519
+ edges.push(<div key="East" style={{ top: r.y + r.height / 2 - offset, left: r.x + r.width - width, width: width, height: length, borderTopLeftRadius: radius, borderBottomLeftRadius: radius }} className={className + " " + this.getClassName(CLASSES.FLEXLAYOUT__EDGE_RECT_RIGHT)}></div>);
517
520
  }
518
521
 
519
522
  // this.layoutTime = (Date.now() - this.start);
@@ -596,8 +599,8 @@ export class Layout extends React.Component<ILayoutProps, ILayoutState> {
596
599
  if (this.supportsPopout && child.isFloating()) {
597
600
  const rect = this._getScreenRect(child);
598
601
 
599
- const tabBorderWidth= child._getAttr("borderWidth");
600
- const tabBorderHeight= child._getAttr("borderHeight");
602
+ const tabBorderWidth = child._getAttr("borderWidth");
603
+ const tabBorderHeight = child._getAttr("borderHeight");
601
604
  if (tabBorderWidth !== -1 && border.getLocation().getOrientation() === Orientation.HORZ) {
602
605
  rect.width = tabBorderWidth;
603
606
  } else if (tabBorderHeight !== -1 && border.getLocation().getOrientation() === Orientation.VERT) {
package/src/view/Tab.tsx CHANGED
@@ -66,6 +66,10 @@ export const Tab = (props: ITabProps) => {
66
66
  className += " " + cm(CLASSES.FLEXLAYOUT__TAB_BORDER);
67
67
  className += " " + cm(CLASSES.FLEXLAYOUT__TAB_BORDER_ + parentNode.getLocation().getName());
68
68
  }
69
+
70
+ if (node.getContentClassName() !== undefined) {
71
+ className += " " + node.getContentClassName();
72
+ }
69
73
 
70
74
  return (
71
75
  <div
@@ -4,7 +4,7 @@ import { Actions } from "../model/Actions";
4
4
  import { TabNode } from "../model/TabNode";
5
5
  import { TabSetNode } from "../model/TabSetNode";
6
6
  import { showPopup } from "../PopupMenu";
7
- import { IIcons, ILayoutCallbacks, ITitleObject } from "./Layout";
7
+ import { IIcons, ILayoutCallbacks, ITabSetRenderValues, ITitleObject } from "./Layout";
8
8
  import { TabButton } from "./TabButton";
9
9
  import { useTabOverflow } from "./TabOverflowHook";
10
10
  import { Orientation } from "../Orientation";
@@ -160,13 +160,34 @@ export const TabSet = (props: ITabSetProps) => {
160
160
  let headerButtons: React.ReactNode[] = [];
161
161
 
162
162
  // allow customization of header contents and buttons
163
- const renderState = { headerContent: node.getName(), stickyButtons, buttons, headerButtons };
163
+ const renderState : ITabSetRenderValues = { headerContent: node.getName(), stickyButtons, buttons, headerButtons, overflowPosition: undefined };
164
164
  layout.customizeTabSet(node, renderState);
165
165
  const headerContent = renderState.headerContent;
166
166
  stickyButtons = renderState.stickyButtons;
167
167
  buttons = renderState.buttons;
168
168
  headerButtons = renderState.headerButtons;
169
169
 
170
+ if (renderState.overflowPosition === undefined) {
171
+ renderState.overflowPosition = stickyButtons.length;
172
+ }
173
+
174
+ if (stickyButtons.length > 0) {
175
+ if (tabsTruncated) {
176
+ buttons = [...stickyButtons, ...buttons];
177
+ } else {
178
+ tabs.push(<div
179
+ ref={stickyButtonsRef}
180
+ key="sticky_buttons_container"
181
+ onMouseDown={onInterceptMouseDown}
182
+ onTouchStart={onInterceptMouseDown}
183
+ onDragStart={(e) => { e.preventDefault() }}
184
+ className={cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER)}
185
+ >
186
+ {stickyButtons}
187
+ </div>);
188
+ }
189
+ }
190
+
170
191
  if (hiddenTabs.length > 0) {
171
192
  const overflowTitle = layout.i18nName(I18nLabel.Overflow_Menu_Tooltip);
172
193
  let overflowContent;
@@ -178,7 +199,7 @@ export const TabSet = (props: ITabSetProps) => {
178
199
  <div className={cm(CLASSES.FLEXLAYOUT__TAB_BUTTON_OVERFLOW_COUNT)}>{hiddenTabs.length}</div>
179
200
  </>);
180
201
  }
181
- buttons.unshift(
202
+ buttons.splice(Math.min(renderState.overflowPosition, buttons.length), 0,
182
203
  <button
183
204
  key="overflowbutton"
184
205
  data-layout-path={path + "/button/overflow"}
@@ -195,23 +216,6 @@ export const TabSet = (props: ITabSetProps) => {
195
216
  );
196
217
  }
197
218
 
198
- if (stickyButtons.length > 0) {
199
- if (tabsTruncated) {
200
- buttons = [...stickyButtons, ...buttons];
201
- } else {
202
- tabs.push(<div
203
- ref={stickyButtonsRef}
204
- key="sticky_buttons_container"
205
- onMouseDown={onInterceptMouseDown}
206
- onTouchStart={onInterceptMouseDown}
207
- onDragStart={(e) => { e.preventDefault() }}
208
- className={cm(CLASSES.FLEXLAYOUT__TAB_TOOLBAR_STICKY_BUTTONS_CONTAINER)}
209
- >
210
- {stickyButtons}
211
- </div>);
212
- }
213
- }
214
-
215
219
  if (selectedTabNode !== undefined && layout.isSupportsPopout() && selectedTabNode.isEnableFloat() && !selectedTabNode.isFloating()) {
216
220
  const floatTitle = layout.i18nName(I18nLabel.Float_Tab);
217
221
  buttons.push(
@@ -7,11 +7,15 @@ export function getRenderStateEx(
7
7
  layout: ILayoutCallbacks,
8
8
  node: TabNode,
9
9
  iconFactory?: IconFactory,
10
- titleFactory?: TitleFactory
10
+ titleFactory?: TitleFactory,
11
+ iconAngle?: number
11
12
  ) {
12
13
  let leadingContent = iconFactory ? iconFactory(node) : undefined;
13
14
  let titleContent: React.ReactNode = node.getName();
14
15
  let name = node.getName();
16
+ if (iconAngle === undefined) {
17
+ iconAngle = 0;
18
+ }
15
19
 
16
20
  function isTitleObject(obj: any): obj is ITitleObject {
17
21
  return obj.titleContent !== undefined
@@ -33,7 +37,11 @@ export function getRenderStateEx(
33
37
  }
34
38
 
35
39
  if (leadingContent === undefined && node.getIcon() !== undefined) {
36
- leadingContent = <img style={{ width: "1em", height: "1em" }} src={node.getIcon()} alt="leadingContent" />;
40
+ if (iconAngle !== 0) {
41
+ leadingContent = <img style={{ width: "1em", height: "1em", transform: "rotate(" + iconAngle + "deg)" }} src={node.getIcon()} alt="leadingContent" />;
42
+ } else {
43
+ leadingContent = <img style={{ width: "1em", height: "1em" }} src={node.getIcon()} alt="leadingContent" />;
44
+ }
37
45
  }
38
46
 
39
47
  let buttons: any[] = [];