@interopio/groups-ui-react 2.2.0 → 2.2.1

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.
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Bounds, ButtonProps, ToggleButtonProps } from "./internal";
2
+ import { Bounds, ButtonProps, OverflowedTabInfo, ToggleButtonProps } from "./internal";
3
3
  import { CustomButtonProps } from "./defaultComponents";
4
4
  export interface ChannelProps {
5
5
  visible: boolean;
@@ -40,6 +40,13 @@ export interface BelowTabsProps {
40
40
  frameId: string;
41
41
  selectedWindow: string;
42
42
  }
43
+ export interface TabOverflowPopupProps {
44
+ frameId: string;
45
+ select: (windowId: string) => void;
46
+ close: (windowId: string) => void;
47
+ hiddenTabsToTheLeft: OverflowedTabInfo[];
48
+ hiddenTabsToTheRight: OverflowedTabInfo[];
49
+ }
43
50
  export interface CaptionEditorProps {
44
51
  show: boolean;
45
52
  text?: string;
@@ -99,6 +106,7 @@ export interface AfterTabsProps {
99
106
  selectedWindow: string;
100
107
  }
101
108
  export interface TabHeaderButtonsProps {
109
+ overflow?: ButtonProps;
102
110
  feedback?: ButtonProps;
103
111
  clone?: ButtonProps;
104
112
  sticky?: ToggleButtonProps;
@@ -138,6 +146,7 @@ export interface GroupProps {
138
146
  After?: React.ComponentType<AfterTabsProps>;
139
147
  Buttons?: React.ComponentType<TabHeaderButtonsProps>;
140
148
  Below?: React.ComponentType<BelowTabsProps>;
149
+ OverflowPopup?: React.ComponentType<TabOverflowPopupProps>;
141
150
  };
142
151
  html?: {
143
152
  Buttons?: React.ComponentType<HtmlButtonsProps>;
@@ -32,6 +32,8 @@ export interface UnlockButtonProps extends ButtonProps {
32
32
  }
33
33
  export interface MinimizeButtonProps extends ButtonProps {
34
34
  }
35
+ export interface OverflowButtonProps extends ButtonProps {
36
+ }
35
37
  export interface MaximizeButtonProps extends ButtonProps {
36
38
  }
37
39
  export interface RestoreButtonProps extends ButtonProps {
@@ -32,6 +32,7 @@ export interface GroupWrapperProps {
32
32
  onCreateAfterTabsComponentRequested?: (options: CreateFrameElementRequestOptions) => void;
33
33
  onUpdateAfterTabsComponentRequested?: (options: CreateFrameElementRequestOptions) => void;
34
34
  onCreateTabHeaderButtonsRequested?: (options: CreateButtonsOptions) => void;
35
+ onCreateTabOverflowPopupRequested?: (options: CreateTabOverflowPopupRequestOptions) => void;
35
36
  onCreateBelowTabsRequested?: (options: CreateFrameElementRequestOptions) => void;
36
37
  onUpdateBelowTabsRequested?: (options: CreateFrameElementRequestOptions) => void;
37
38
  onUpdateFrameRequested?: (options: UpdateFrameRequestOptions) => void;
@@ -50,6 +51,7 @@ export interface GroupWrapperProps {
50
51
  onRemoveTabRequested?: (options: RemoveRequestOptions) => void;
51
52
  onRemoveAfterTabsComponentRequested?: (options: RemoveRequestOptions) => void;
52
53
  onRemoveTabHeaderButtonsRequested?: (options: RemoveRequestOptions) => void;
54
+ onRemoveTabOverflowPopupRequested?: (options: RemoveRequestOptions) => void;
53
55
  onRemoveBelowTabsRequested?: (options: RemoveRequestOptions) => void;
54
56
  onShowCaptionEditorRequested?: (targetType: TargetType, targetId: string, text: string) => void;
55
57
  onCommitCaptionEditingRequested?: (targetType: TargetType, targetId: string) => void;
@@ -128,6 +130,10 @@ export interface UpdateCustomButtonOptions {
128
130
  imageData: string;
129
131
  }
130
132
  export interface CreateButtonsOptions extends CreateFrameElementRequestOptions {
133
+ overflow: {
134
+ tooltip: string;
135
+ visible: boolean;
136
+ };
131
137
  feedback: {
132
138
  tooltip: string;
133
139
  visible: boolean;
@@ -185,6 +191,14 @@ export interface CreateElementRequestOptions extends BaseElementOptions {
185
191
  export interface CreateFrameElementRequestOptions extends CreateElementRequestOptions {
186
192
  selectedWindow: string;
187
193
  }
194
+ export interface OverflowedTabInfo {
195
+ title: string;
196
+ windowId: string;
197
+ }
198
+ export interface CreateTabOverflowPopupRequestOptions extends CreateElementRequestOptions {
199
+ hiddenTabsToTheLeft: OverflowedTabInfo[];
200
+ hiddenTabsToTheRight: OverflowedTabInfo[];
201
+ }
188
202
  export interface CreateFrameLoadingAnimationRequestOptions extends CreateFrameElementRequestOptions {
189
203
  show: boolean;
190
204
  }
@@ -197,6 +211,7 @@ export declare enum TargetType {
197
211
  HtmlButtons = "html"
198
212
  }
199
213
  export declare enum StandardButtons {
214
+ Overflow = "overflow",
200
215
  Feedback = "feedback",
201
216
  Clone = "clone",
202
217
  Sticky = "sticky",
@@ -244,6 +259,9 @@ export interface ElementCreationWrapperState {
244
259
  tabHeaderButtons: {
245
260
  [targetId: string]: CreateButtonsOptions;
246
261
  };
262
+ tabOverflowPopups: {
263
+ [targetId: string]: CreateTabOverflowPopupRequestOptions;
264
+ };
247
265
  belowTabsZones: {
248
266
  [targetId: string]: CreateFrameElementRequestOptions;
249
267
  };
@@ -266,6 +284,7 @@ export interface ExternalLibraryFactory {
266
284
  onCaptionEditorVisibleChanged(targetType: TargetType, targetId: string, visible: boolean): void;
267
285
  onCaptionEditorBoundsChanged(targetType: TargetType, targetId: string, bounds: Bounds): void;
268
286
  commitCaptionEditing(targetType: TargetType, targetId: string, text: string): void;
287
+ selectTab(windowId: string): void;
269
288
  }
270
289
  export interface WebGroupsManager {
271
290
  init: (factory?: any) => void;
@@ -19,6 +19,7 @@ declare class WebGroupsManagerDecorator {
19
19
  onMinimizeButtonClick(targetType: TargetType, targetId: string): void;
20
20
  onLockButtonClick(targetType: TargetType, targetId: string): void;
21
21
  onUnlockButtonClick(targetType: TargetType, targetId: string): void;
22
+ onOverflowButtonClick(targetType: TargetType, targetId: string): void;
22
23
  onFeedbackButtonClick(targetType: TargetType, targetId: string): void;
23
24
  onCloneButtonClick(targetType: TargetType, targetId: string): void;
24
25
  onStickyButtonClick(targetType: TargetType, targetId: string): void;
@@ -34,6 +35,7 @@ declare class WebGroupsManagerDecorator {
34
35
  commitCaptionEditing(targetType: TargetType, targetId: string, text: string): void;
35
36
  onCommitCaptionEditingRequested(targetType: TargetType, targetId: string, callback: () => void): () => void;
36
37
  requestCommitCaptionEditing(targetType: TargetType, targetId: string): void;
38
+ selectTab(windowId: string): void;
37
39
  }
38
40
  declare const _default: WebGroupsManagerDecorator;
39
41
  export default _default;
@@ -1,4 +1,4 @@
1
- import { CreateElementRequestOptions, CreateFrameCaptionBarRequestOptions, CreateFrameElementRequestOptions, CreateGroupCaptionBarRequestOptions, CreateButtonsOptions, CreateTabRequestOptions, ElementCreationWrapperState, RemoveRequestOptions, TargetType, UpdateFrameCaptionBarRequestOptions, UpdateGroupCaptionBarRequestOptions, UpdateStandardButtonRequestOptions, UpdateFrameRequestOptions, CreateFrameLoadingAnimationRequestOptions, UpdateCustomButtonsRequestOptions } from "./types/internal";
1
+ import { CreateElementRequestOptions, CreateFrameCaptionBarRequestOptions, CreateFrameElementRequestOptions, CreateGroupCaptionBarRequestOptions, CreateButtonsOptions, CreateTabRequestOptions, ElementCreationWrapperState, RemoveRequestOptions, TargetType, UpdateFrameCaptionBarRequestOptions, UpdateGroupCaptionBarRequestOptions, UpdateStandardButtonRequestOptions, UpdateFrameRequestOptions, CreateFrameLoadingAnimationRequestOptions, UpdateCustomButtonsRequestOptions, CreateTabOverflowPopupRequestOptions } from "./types/internal";
2
2
  declare class WebGroupsStore {
3
3
  private listeners;
4
4
  private state;
@@ -19,6 +19,7 @@ declare class WebGroupsStore {
19
19
  onCreateTabHeaderButtonsRequested: (options: CreateButtonsOptions) => void;
20
20
  onCreateBelowTabsComponentRequested: (options: CreateFrameElementRequestOptions) => void;
21
21
  onCreateHtmlButtonsRequested: (options: CreateButtonsOptions) => void;
22
+ onCreateTabOverflowPopupRequested: (options: CreateTabOverflowPopupRequestOptions) => void;
22
23
  onUpdateHtmlButtonsRequested: (options: CreateButtonsOptions) => void;
23
24
  onUpdateGroupCaptionBarRequested: (options: UpdateGroupCaptionBarRequestOptions) => void;
24
25
  onUpdateFrameCaptionBarRequested: (options: UpdateFrameCaptionBarRequestOptions) => void;
@@ -45,6 +46,7 @@ declare class WebGroupsStore {
45
46
  onRemoveTabHeaderButtonsRequested: (options: RemoveRequestOptions) => void;
46
47
  onRemoveBelowTabsRequested: (options: RemoveRequestOptions) => void;
47
48
  onRemoveHtmlButtonsRequested: (options: RemoveRequestOptions) => void;
49
+ onRemoveTabOverflowPopupRequested: (options: RemoveRequestOptions) => void;
48
50
  onShowCaptionEditorRequested: (targetType: TargetType, targetId: string, text: string) => void;
49
51
  onCommitCaptionEditingRequested: (targetType: TargetType, targetId: string) => void;
50
52
  onHideCaptionEditorRequested: (targetType: TargetType, targetId: string) => void;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { OverflowButtonProps } from "../../types/defaultComponents";
3
+ declare const OverflowButton: React.FC<OverflowButtonProps>;
4
+ export default OverflowButton;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { TabOverflowPopupProps } from '../../types/api';
3
+ declare const TabOverflowPopup: React.FC<TabOverflowPopupProps>;
4
+ export default TabOverflowPopup;
@@ -23,12 +23,13 @@ import ExtractButton from "./defaultComponents/buttons/ExtractButton";
23
23
  import FeedbackButton from "./defaultComponents/buttons/FeedbackButton";
24
24
  import CloneButton from "./defaultComponents/buttons/CloneButton";
25
25
  import StickyButton from "./defaultComponents/buttons/StickyButton";
26
+ import OverflowButton from "./defaultComponents/buttons/OverflowButton";
26
27
  import useIOConnectWindow from "./useIOConnectWindow";
27
28
  import CustomButton from "./defaultComponents/buttons/CustomButton";
28
29
  import { waitForWindow } from "./utils";
29
30
  import useGroupComponentVisibility from "./useGroupComponentVisibility";
30
- import { CloseButtonProps, ExtractButtonProps, StickyButtonProps, FeedbackButtonProps, FlatButtonsProps, FlatCaptionEditorProps, FlatCaptionProps, FlatChannelSelectorProps, FlatMoveAreaProps, GroupButtonsProps, GroupCaptionEditorProps, GroupMoveAreaProps, LockButtonProps, MaximizeButtonProps, MinimizeButtonProps, RestoreButtonProps, TabCaptionEditorProps, TabCaptionProps, TabChannelSelectorProps, TabCloseButtonProps, UnlockButtonProps, UseCaptionEditorOptions, UseEditableCaptionOptions } from "./types/defaultComponents";
31
- import { AboveTabsProps, AboveWindowProps, AfterTabsProps, BeforeTabsProps, BelowTabsProps, BelowWindowProps, FlatCaptionBarProps, FrameLoadingAnimationProps, FrameWindowOverlayProps, GroupCaptionBarProps, GroupComponentVisibilityState, GroupOverlayProps, GroupProps, HtmlButtonsProps, MoveAreaProps, TabElementProps, TabHeaderButtonsProps, WindowContentOverlayProps } from "./types/api";
31
+ import { CloseButtonProps, ExtractButtonProps, StickyButtonProps, FeedbackButtonProps, FlatButtonsProps, FlatCaptionEditorProps, FlatCaptionProps, FlatChannelSelectorProps, FlatMoveAreaProps, GroupButtonsProps, GroupCaptionEditorProps, GroupMoveAreaProps, LockButtonProps, MaximizeButtonProps, MinimizeButtonProps, RestoreButtonProps, TabCaptionEditorProps, TabCaptionProps, TabChannelSelectorProps, TabCloseButtonProps, UnlockButtonProps, UseCaptionEditorOptions, UseEditableCaptionOptions, OverflowButtonProps } from "./types/defaultComponents";
32
+ import { AboveTabsProps, AboveWindowProps, AfterTabsProps, BeforeTabsProps, BelowTabsProps, BelowWindowProps, FlatCaptionBarProps, FrameLoadingAnimationProps, FrameWindowOverlayProps, GroupCaptionBarProps, GroupComponentVisibilityState, GroupOverlayProps, GroupProps, HtmlButtonsProps, MoveAreaProps, TabElementProps, TabHeaderButtonsProps, TabOverflowPopupProps, WindowContentOverlayProps } from "./types/api";
32
33
  import GroupCaptionEditor from "./defaultComponents/groupCaptionBar/GroupCaptionEditor";
33
34
  import FlatCaptionEditor from "./defaultComponents/flatCaptionBar/FlatCaptionEditor";
34
35
  import TabCaptionEditor from "./defaultComponents/tabs/TabCaptionEditor";
@@ -39,7 +40,8 @@ import useEditableCaption from "./defaultComponents/captionEditor/useEditableCap
39
40
  import useCaptionEditor from "./defaultComponents/captionEditor/useCaptionEditor";
40
41
  import FrameLoadingAnimation from "./defaultComponents/loadingAnimation/FrameLoadingAnimation";
41
42
  import HtmlButtons from "./defaultComponents/htmlButtonsBar/buttons";
42
- export { GroupCaptionBar, GroupMoveArea, GroupButtons, GroupCaptionEditor, Tab, TabChannelSelector, TabCaption, TabCloseButton, TabCaptionEditor, FeedbackButton, CloneButton, StickyButton, ExtractButton, LockButton, UnlockButton, MinimizeButton, RestoreButton, MaximizeButton, CustomButton, CloseButton, FlatCaptionBar, FlatChannelSelector, FlatCaption, FlatMoveArea, FlatButtons, FlatCaptionEditor, TabHeaderButtons, FrameLoadingAnimation, HtmlButtons, GroupComponentVisibilityState, useIOConnectWindow, useGroupComponentVisibility, waitForWindow, useEditableCaption, useCaptionEditor, useCommitGroupCaptionEditingRequested, useCommitFlatCaptionEditingRequested, useCommitTabCaptionEditingRequested, };
43
+ import TabOverflowPopup from "./defaultComponents/popups/TabOverflowPopup";
44
+ export { GroupCaptionBar, GroupMoveArea, GroupButtons, GroupCaptionEditor, Tab, TabChannelSelector, TabCaption, TabCloseButton, TabCaptionEditor, FeedbackButton, CloneButton, StickyButton, ExtractButton, LockButton, UnlockButton, MinimizeButton, RestoreButton, MaximizeButton, CustomButton, CloseButton, FlatCaptionBar, FlatChannelSelector, FlatCaption, FlatMoveArea, FlatButtons, FlatCaptionEditor, TabHeaderButtons, FrameLoadingAnimation, HtmlButtons, TabOverflowPopup, OverflowButton, GroupComponentVisibilityState, useIOConnectWindow, useGroupComponentVisibility, waitForWindow, useEditableCaption, useCaptionEditor, useCommitGroupCaptionEditingRequested, useCommitFlatCaptionEditingRequested, useCommitTabCaptionEditingRequested, };
43
45
  export declare const getGroupId: () => string;
44
46
  export declare const requestPageFocus: () => void;
45
47
  export declare const requestFrameFocus: (frameId: string) => void;
@@ -47,5 +49,5 @@ export declare const requestGroupFocus: () => void;
47
49
  export declare const onCommitGroupCaptionEditingRequested: (targetId: string, cb: () => void) => () => void;
48
50
  export declare const onCommitFlatCaptionEditingRequested: (targetId: string, cb: () => void) => () => void;
49
51
  export declare const onCommitTabCaptionEditingRequested: (targetId: string, cb: () => void) => () => void;
50
- export { MoveAreaProps, GroupProps, GroupCaption, GroupCaptionBarProps, GroupMoveAreaProps, GroupOverlayProps, GroupButtonsProps, GroupCaptionEditorProps, TabElementProps, TabChannelSelectorProps, TabCaptionProps, TabCloseButtonProps, TabHeaderButtonsProps, TabCaptionEditorProps, HtmlButtonsProps, FlatCaptionBarProps, FlatCaptionProps, FrameWindowOverlayProps, FlatMoveAreaProps, FlatChannelSelectorProps, FlatButtonsProps, FlatCaptionEditorProps, StickyButtonProps, FeedbackButtonProps, ExtractButtonProps, LockButtonProps, UnlockButtonProps, MinimizeButtonProps, MaximizeButtonProps, RestoreButtonProps, CloseButtonProps, FrameLoadingAnimationProps, UseCaptionEditorOptions, UseEditableCaptionOptions, AboveWindowProps, BelowWindowProps, AboveTabsProps, BelowTabsProps, BeforeTabsProps, AfterTabsProps, WindowContentOverlayProps };
52
+ export { MoveAreaProps, GroupProps, GroupCaption, GroupCaptionBarProps, GroupMoveAreaProps, GroupOverlayProps, GroupButtonsProps, GroupCaptionEditorProps, TabElementProps, TabChannelSelectorProps, TabCaptionProps, TabCloseButtonProps, TabHeaderButtonsProps, TabCaptionEditorProps, HtmlButtonsProps, FlatCaptionBarProps, FlatCaptionProps, FrameWindowOverlayProps, FlatMoveAreaProps, FlatChannelSelectorProps, FlatButtonsProps, FlatCaptionEditorProps, OverflowButtonProps, StickyButtonProps, FeedbackButtonProps, ExtractButtonProps, LockButtonProps, UnlockButtonProps, MinimizeButtonProps, MaximizeButtonProps, RestoreButtonProps, CloseButtonProps, FrameLoadingAnimationProps, UseCaptionEditorOptions, UseEditableCaptionOptions, AboveWindowProps, BelowWindowProps, AboveTabsProps, BelowTabsProps, BeforeTabsProps, AfterTabsProps, WindowContentOverlayProps, TabOverflowPopupProps, };
51
53
  export default GroupElementCreationWrapper;
package/dist/esm/index.js CHANGED
@@ -64,6 +64,7 @@ var TargetType;
64
64
  })(TargetType || (TargetType = {}));
65
65
  var StandardButtons;
66
66
  (function (StandardButtons) {
67
+ StandardButtons["Overflow"] = "overflow";
67
68
  StandardButtons["Feedback"] = "feedback";
68
69
  StandardButtons["Clone"] = "clone";
69
70
  StandardButtons["Sticky"] = "sticky";
@@ -254,6 +255,9 @@ var WebGroupsManagerDecorator = /** @class */ (function () {
254
255
  WebGroupsManagerDecorator.prototype.onUnlockButtonClick = function (targetType, targetId) {
255
256
  window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(targetType, targetId, StandardButtons.Unlock);
256
257
  };
258
+ WebGroupsManagerDecorator.prototype.onOverflowButtonClick = function (targetType, targetId) {
259
+ window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(targetType, targetId, StandardButtons.Overflow);
260
+ };
257
261
  WebGroupsManagerDecorator.prototype.onFeedbackButtonClick = function (targetType, targetId) {
258
262
  window.webGroupsManager.externalLibraryFactory.onStandardButtonClick(targetType, targetId, StandardButtons.Feedback);
259
263
  };
@@ -315,6 +319,9 @@ var WebGroupsManagerDecorator = /** @class */ (function () {
315
319
  WebGroupsManagerDecorator.prototype.requestCommitCaptionEditing = function (targetType, targetId) {
316
320
  this.registry.execute(targetType + "-" + targetId);
317
321
  };
322
+ WebGroupsManagerDecorator.prototype.selectTab = function (windowId) {
323
+ window.webGroupsManager.externalLibraryFactory.selectTab(windowId);
324
+ };
318
325
  return WebGroupsManagerDecorator;
319
326
  }());
320
327
  var webGroupsManager = new WebGroupsManagerDecorator();
@@ -1823,13 +1830,19 @@ var Tab = function (_a) {
1823
1830
  React.createElement(TabCloseButton, { selected: selected, close: close }));
1824
1831
  };
1825
1832
 
1833
+ var OverflowButton = function (_a) {
1834
+ var onClick = _a.onClick, tooltip = _a.tooltip;
1835
+ return React.createElement(BaseButton, { innerElement: { className: "t42-standard-button t42-standard-button-overflow" }, outerElement: { className: "t42-button t42-caption-bar-button t42-tab-bar-button t42-caption-bar-button-overflow", title: tooltip, onClick: onClick } });
1836
+ };
1837
+
1826
1838
  var TabHeaderButtons = function (_a) {
1827
- var extract = _a.extract, minimize = _a.minimize, maximize = _a.maximize, restore = _a.restore, close = _a.close, lock = _a.lock, unlock = _a.unlock, feedback = _a.feedback, clone = _a.clone, sticky = _a.sticky, customButtons = _a.customButtons;
1839
+ var overflow = _a.overflow, extract = _a.extract, minimize = _a.minimize, maximize = _a.maximize, restore = _a.restore, close = _a.close, lock = _a.lock, unlock = _a.unlock, feedback = _a.feedback, clone = _a.clone, sticky = _a.sticky, customButtons = _a.customButtons;
1828
1840
  return React.createElement("div", { className: "t42-buttons-container t42-tab-bar-element" },
1829
1841
  React.createElement("ul", { className: "t42-buttons t42-tab-bar-element" }, customButtons.map(function (customButton) {
1830
1842
  return customButton.visible && React.createElement(CustomButton, __assign({ key: customButton.buttonId }, customButton));
1831
1843
  })),
1832
1844
  React.createElement("ul", { className: "t42-buttons t42-tab-bar-element" },
1845
+ (overflow === null || overflow === void 0 ? void 0 : overflow.visible) && React.createElement(OverflowButton, __assign({}, overflow)),
1833
1846
  (feedback === null || feedback === void 0 ? void 0 : feedback.visible) && React.createElement(FeedbackButton, __assign({}, feedback)),
1834
1847
  (clone === null || clone === void 0 ? void 0 : clone.visible) && React.createElement(CloneButton, __assign({}, clone)),
1835
1848
  (sticky === null || sticky === void 0 ? void 0 : sticky.visible) && React.createElement(StickyButton, __assign({}, sticky)),
@@ -2136,6 +2149,8 @@ var GroupWrapper = /** @class */ (function (_super) {
2136
2149
  updateBelowTabs: this.props.onUpdateBelowTabsRequested,
2137
2150
  createHtmlButtonsContainerElement: this.props.onCreateHtmlButtonsRequested,
2138
2151
  destroyHtmlButtonsContainerElement: this.props.onRemoveHtmlButtonsRequested,
2152
+ createTabOverflowPopup: this.props.onCreateTabOverflowPopupRequested,
2153
+ destroyTabOverflowPopup: this.props.onRemoveTabOverflowPopupRequested,
2139
2154
  updateFrame: this.props.onUpdateFrameRequested,
2140
2155
  updateStandardButton: this.props.onUpdateStandardButtonRequested,
2141
2156
  updateCustomButtons: this.props.onUpdateCustomButtonsRequested,
@@ -2194,6 +2209,7 @@ var WebGroupsStore = /** @class */ (function () {
2194
2209
  tabElements: {},
2195
2210
  afterTabsZones: {},
2196
2211
  tabHeaderButtons: {},
2212
+ tabOverflowPopups: {},
2197
2213
  belowTabsZones: {},
2198
2214
  frameLoadingAnimations: {},
2199
2215
  htmlButtons: {},
@@ -2345,6 +2361,15 @@ var WebGroupsStore = /** @class */ (function () {
2345
2361
  return __assign(__assign({}, s), { htmlButtons: __assign(__assign({}, s.htmlButtons), (_a = {}, _a[options.targetId] = options, _a)) });
2346
2362
  });
2347
2363
  };
2364
+ this.onCreateTabOverflowPopupRequested = function (options) {
2365
+ if (options === _this.state.tabOverflowPopups[options.targetId] || !options) {
2366
+ return;
2367
+ }
2368
+ _this.setState(function (s) {
2369
+ var _a;
2370
+ return __assign(__assign({}, s), { tabOverflowPopups: __assign(__assign({}, s.tabOverflowPopups), (_a = {}, _a[options.targetId] = options, _a)) });
2371
+ });
2372
+ };
2348
2373
  this.onUpdateHtmlButtonsRequested = function (options) {
2349
2374
  if (options === _this.state.htmlButtons[options.targetId] || !options) {
2350
2375
  return;
@@ -2688,6 +2713,20 @@ var WebGroupsStore = /** @class */ (function () {
2688
2713
  return __assign(__assign({}, s), { htmlButtons: newHtmlObj });
2689
2714
  });
2690
2715
  };
2716
+ this.onRemoveTabOverflowPopupRequested = function (options) {
2717
+ if (!_this.state.tabOverflowPopups[options.targetId]) {
2718
+ return;
2719
+ }
2720
+ _this.setState(function (s) {
2721
+ var newTabOverflowPopupsObj = Object.keys(s.tabOverflowPopups).reduce(function (acc, targetId) {
2722
+ if (targetId != options.targetId) {
2723
+ acc[targetId] = s.tabOverflowPopups[targetId];
2724
+ }
2725
+ return acc;
2726
+ }, {});
2727
+ return __assign(__assign({}, s), { tabOverflowPopups: newTabOverflowPopupsObj });
2728
+ });
2729
+ };
2691
2730
  this.onShowCaptionEditorRequested = function (targetType, targetId, text) {
2692
2731
  if (targetType === TargetType.Group) {
2693
2732
  _this.onShowGroupCaptionEditorRequested(targetId, text);
@@ -2837,7 +2876,7 @@ var FrameLoadingAnimation = function (_a) {
2837
2876
  };
2838
2877
 
2839
2878
  var GroupElementCreationWrapper = function (_a) {
2840
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
2879
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
2841
2880
  var components = _a.components;
2842
2881
  var state = shim.useSyncExternalStore(webGroupsStore.subscribe, webGroupsStore.getSnapshot);
2843
2882
  var LoadingAnimation = (_c = (_b = components === null || components === void 0 ? void 0 : components.frame) === null || _b === void 0 ? void 0 : _b.LoadingAnimation) !== null && _c !== void 0 ? _c : FrameLoadingAnimation;
@@ -3096,6 +3135,9 @@ var GroupElementCreationWrapper = function (_a) {
3096
3135
  return;
3097
3136
  }
3098
3137
  var parentElement = te.parentElement, options = __rest(te, ["parentElement"]);
3138
+ var overflow = __assign({ onClick: function () {
3139
+ webGroupsManager.onOverflowButtonClick(TargetType.TabBar, options.targetId);
3140
+ } }, options.overflow);
3099
3141
  var feedback = __assign({ onClick: function () {
3100
3142
  webGroupsManager.onFeedbackButtonClick(TargetType.TabBar, options.targetId);
3101
3143
  } }, options.feedback);
@@ -3141,7 +3183,25 @@ var GroupElementCreationWrapper = function (_a) {
3141
3183
  });
3142
3184
  }
3143
3185
  return React.createElement(Portal, { key: options.targetId, parentElement: parentElement },
3144
- React.createElement(TabButtonsCustomElement, __assign({}, options, { feedback: feedback, clone: clone, sticky: sticky, extract: extract, lock: lock, unlock: unlock, minimize: minimize, maximize: maximize, restore: restore, close: close, customButtons: customButtonsProps, frameId: options.targetId })));
3186
+ React.createElement(TabButtonsCustomElement, __assign({}, options, { overflow: overflow, feedback: feedback, clone: clone, sticky: sticky, extract: extract, lock: lock, unlock: unlock, minimize: minimize, maximize: maximize, restore: restore, close: close, customButtons: customButtonsProps, frameId: options.targetId })));
3187
+ });
3188
+ };
3189
+ var renderTabOverflowPopups = function () {
3190
+ var _a;
3191
+ var TabOverflowCustomElement = (_a = components === null || components === void 0 ? void 0 : components.tabs) === null || _a === void 0 ? void 0 : _a.OverflowPopup;
3192
+ return Object.values(state.tabOverflowPopups).map(function (top) {
3193
+ if (!TabOverflowCustomElement || !top.parentElement) {
3194
+ return;
3195
+ }
3196
+ var parentElement = top.parentElement, options = __rest(top, ["parentElement"]);
3197
+ var select = function (windowId) {
3198
+ webGroupsManager.selectTab(windowId);
3199
+ };
3200
+ var close = function (windowId) {
3201
+ webGroupsManager.onCloseButtonClick(TargetType.Tab, windowId);
3202
+ };
3203
+ return React.createElement(Portal, { key: options.targetId, parentElement: parentElement },
3204
+ React.createElement(TabOverflowCustomElement, __assign({}, options, { select: select, close: close, frameId: options.targetId })));
3145
3205
  });
3146
3206
  };
3147
3207
  var renderBelowTabs = function () {
@@ -3164,6 +3224,9 @@ var GroupElementCreationWrapper = function (_a) {
3164
3224
  return;
3165
3225
  }
3166
3226
  var parentElement = te.parentElement, options = __rest(te, ["parentElement"]);
3227
+ var overflow = __assign({ onClick: function () {
3228
+ webGroupsManager.onOverflowButtonClick(TargetType.HtmlButtons, options.targetId);
3229
+ } }, options.overflow);
3167
3230
  var feedback = __assign({ onClick: function () {
3168
3231
  webGroupsManager.onFeedbackButtonClick(TargetType.HtmlButtons, options.targetId);
3169
3232
  } }, options.feedback);
@@ -3209,7 +3272,7 @@ var GroupElementCreationWrapper = function (_a) {
3209
3272
  });
3210
3273
  }
3211
3274
  return React.createElement(Portal, { key: options.targetId, parentElement: parentElement },
3212
- React.createElement(HtmlButtonsCustomElement, __assign({}, options, { feedback: feedback, clone: clone, sticky: sticky, extract: extract, lock: lock, unlock: unlock, minimize: minimize, maximize: maximize, restore: restore, close: close, customButtons: customButtonsProps, frameId: options.targetId })));
3275
+ React.createElement(HtmlButtonsCustomElement, __assign({}, options, { overflow: overflow, feedback: feedback, clone: clone, sticky: sticky, extract: extract, lock: lock, unlock: unlock, minimize: minimize, maximize: maximize, restore: restore, close: close, customButtons: customButtonsProps, frameId: options.targetId })));
3213
3276
  });
3214
3277
  };
3215
3278
  return React.createElement(React.Fragment, null,
@@ -3226,9 +3289,10 @@ var GroupElementCreationWrapper = function (_a) {
3226
3289
  renderTabElements(),
3227
3290
  renderAfterTabsZones(),
3228
3291
  renderTabHeaderButtons(),
3292
+ renderTabOverflowPopups(),
3229
3293
  renderBelowTabs(),
3230
3294
  renderHtmlButtons(),
3231
- React.createElement(GroupWrapper, { onCreateGroupCaptionBarRequested: ((_d = components === null || components === void 0 ? void 0 : components.group) === null || _d === void 0 ? void 0 : _d.CaptionBar) ? webGroupsStore.onCreateGroupCaptionBarRequested : undefined, onCreateGroupOverlayRequested: ((_e = components === null || components === void 0 ? void 0 : components.group) === null || _e === void 0 ? void 0 : _e.Overlay) ? webGroupsStore.onCreateGroupOverlayRequested : undefined, onCreateFrameCaptionBarRequested: ((_f = components === null || components === void 0 ? void 0 : components.flat) === null || _f === void 0 ? void 0 : _f.CaptionBar) ? webGroupsStore.onCreateFrameCaptionBarRequested : undefined, onCreateFrameWindowOverlayRequested: ((_g = components === null || components === void 0 ? void 0 : components.frame) === null || _g === void 0 ? void 0 : _g.Overlay) ? webGroupsStore.onCreateFrameWindowOverlayRequested : undefined, onCreateAboveWindowRequested: ((_h = components === null || components === void 0 ? void 0 : components.frame) === null || _h === void 0 ? void 0 : _h.AboveWindow) ? webGroupsStore.onCreateAboveWindowRequested : undefined, onCreateWindowContentOverlayRequested: ((_j = components === null || components === void 0 ? void 0 : components.frame) === null || _j === void 0 ? void 0 : _j.WindowContentOverlay) ? webGroupsStore.onCreateWindowContentOverlayRequested : undefined, onCreateFrameLoadingAnimationRequested: LoadingAnimation ? webGroupsStore.onCreateFrameLoadingAnimationRequested : undefined, onCreateBelowWindowRequested: ((_k = components === null || components === void 0 ? void 0 : components.frame) === null || _k === void 0 ? void 0 : _k.BelowWindow) ? webGroupsStore.onCreateBelowWindowRequested : undefined, onCreateAboveTabsRequested: ((_l = components === null || components === void 0 ? void 0 : components.tabs) === null || _l === void 0 ? void 0 : _l.Above) ? webGroupsStore.onCreateAboveTabsComponentRequested : undefined, onCreateBeforeTabsComponentRequested: ((_m = components === null || components === void 0 ? void 0 : components.tabs) === null || _m === void 0 ? void 0 : _m.Before) ? webGroupsStore.onCreateBeforeTabsComponentRequested : undefined, onCreateTabRequested: ((_o = components === null || components === void 0 ? void 0 : components.tabs) === null || _o === void 0 ? void 0 : _o.Element) ? webGroupsStore.onCreateTabElementRequested : undefined, onCreateAfterTabsComponentRequested: ((_p = components === null || components === void 0 ? void 0 : components.tabs) === null || _p === void 0 ? void 0 : _p.After) ? webGroupsStore.onCreateAfterTabsComponentRequested : undefined, onCreateTabHeaderButtonsRequested: ((_q = components === null || components === void 0 ? void 0 : components.tabs) === null || _q === void 0 ? void 0 : _q.Buttons) ? webGroupsStore.onCreateTabHeaderButtonsRequested : undefined, onCreateBelowTabsRequested: ((_r = components === null || components === void 0 ? void 0 : components.tabs) === null || _r === void 0 ? void 0 : _r.Below) ? webGroupsStore.onCreateBelowTabsComponentRequested : undefined, onCreateHtmlButtonsRequested: ((_s = components === null || components === void 0 ? void 0 : components.html) === null || _s === void 0 ? void 0 : _s.Buttons) ? webGroupsStore.onCreateHtmlButtonsRequested : undefined, onUpdateGroupCaptionBarRequested: ((_t = components === null || components === void 0 ? void 0 : components.group) === null || _t === void 0 ? void 0 : _t.CaptionBar) ? webGroupsStore.onUpdateGroupCaptionBarRequested : undefined, onUpdateFrameWindowOverlayRequested: ((_u = components === null || components === void 0 ? void 0 : components.group) === null || _u === void 0 ? void 0 : _u.Overlay) ? webGroupsStore.onUpdateFrameWindowOverlayRequested : undefined, onUpdateFrameCaptionBarRequested: ((_v = components === null || components === void 0 ? void 0 : components.flat) === null || _v === void 0 ? void 0 : _v.CaptionBar) ? webGroupsStore.onUpdateFrameCaptionBarRequested : undefined, onUpdateFrameRequested: webGroupsStore.onUpdateFrame, onUpdateStandardButtonRequested: webGroupsStore.onUpdateStandardButton, onUpdateCustomButtonsRequested: webGroupsStore.onUpdateCustomButtons, onUpdateAboveTabsRequested: ((_w = components === null || components === void 0 ? void 0 : components.tabs) === null || _w === void 0 ? void 0 : _w.Above) ? webGroupsStore.onUpdateAboveTabsRequested : undefined, onUpdateBeforeTabsComponentRequested: ((_x = components === null || components === void 0 ? void 0 : components.tabs) === null || _x === void 0 ? void 0 : _x.Before) ? webGroupsStore.onUpdateBeforeTabsRequested : undefined, onUpdateTabRequested: ((_y = components === null || components === void 0 ? void 0 : components.tabs) === null || _y === void 0 ? void 0 : _y.Element) ? webGroupsStore.onUpdateTabElementRequested : undefined, onUpdateAfterTabsComponentRequested: ((_z = components === null || components === void 0 ? void 0 : components.tabs) === null || _z === void 0 ? void 0 : _z.After) ? webGroupsStore.onUpdateAfterTabsRequested : undefined, onUpdateBelowTabsRequested: ((_0 = components === null || components === void 0 ? void 0 : components.tabs) === null || _0 === void 0 ? void 0 : _0.Below) ? webGroupsStore.onUpdateBelowTabsRequested : undefined, onRemoveFrameCaptionBarRequested: webGroupsStore.onRemoveFrameCaptionBarRequested, onRemoveFrameWindowOverlayRequested: webGroupsStore.onRemoveFrameWindowOverlayRequested, onRemoveAboveWindowRequested: webGroupsStore.onRemoveAboveWindowRequested, onRemoveWindowContentOverlayRequested: webGroupsStore.onRemoveWindowContentOverlayRequested, onRemoveFrameLoadingAnimationRequested: webGroupsStore.onRemoveFrameLoadingAnimationRequested, onRemoveBelowWindowRequested: webGroupsStore.onRemoveBelowWindowRequested, onRemoveAboveTabsRequested: webGroupsStore.onRemoveAboveTabsRequested, onRemoveBeforeTabsComponentRequested: webGroupsStore.onRemoveBeforeTabsComponentRequested, onRemoveTabRequested: webGroupsStore.onRemoveTabElementRequested, onRemoveAfterTabsComponentRequested: webGroupsStore.onRemoveAfterTabsComponentRequested, onRemoveTabHeaderButtonsRequested: webGroupsStore.onRemoveTabHeaderButtonsRequested, onRemoveBelowTabsRequested: webGroupsStore.onRemoveBelowTabsRequested, onRemoveHtmlButtonsRequested: webGroupsStore.onRemoveHtmlButtonsRequested, onShowCaptionEditorRequested: webGroupsStore.onShowCaptionEditorRequested, onCommitCaptionEditingRequested: webGroupsStore.onCommitCaptionEditingRequested, onHideCaptionEditorRequested: webGroupsStore.onHideCaptionEditorRequested, onShowLoadingAnimationRequested: webGroupsStore.onShowLoadingAnimationRequested, onHideLoadingAnimationRequested: webGroupsStore.onHideLoadingAnimationRequested }));
3295
+ React.createElement(GroupWrapper, { onCreateGroupCaptionBarRequested: ((_d = components === null || components === void 0 ? void 0 : components.group) === null || _d === void 0 ? void 0 : _d.CaptionBar) ? webGroupsStore.onCreateGroupCaptionBarRequested : undefined, onCreateGroupOverlayRequested: ((_e = components === null || components === void 0 ? void 0 : components.group) === null || _e === void 0 ? void 0 : _e.Overlay) ? webGroupsStore.onCreateGroupOverlayRequested : undefined, onCreateFrameCaptionBarRequested: ((_f = components === null || components === void 0 ? void 0 : components.flat) === null || _f === void 0 ? void 0 : _f.CaptionBar) ? webGroupsStore.onCreateFrameCaptionBarRequested : undefined, onCreateFrameWindowOverlayRequested: ((_g = components === null || components === void 0 ? void 0 : components.frame) === null || _g === void 0 ? void 0 : _g.Overlay) ? webGroupsStore.onCreateFrameWindowOverlayRequested : undefined, onCreateAboveWindowRequested: ((_h = components === null || components === void 0 ? void 0 : components.frame) === null || _h === void 0 ? void 0 : _h.AboveWindow) ? webGroupsStore.onCreateAboveWindowRequested : undefined, onCreateWindowContentOverlayRequested: ((_j = components === null || components === void 0 ? void 0 : components.frame) === null || _j === void 0 ? void 0 : _j.WindowContentOverlay) ? webGroupsStore.onCreateWindowContentOverlayRequested : undefined, onCreateFrameLoadingAnimationRequested: LoadingAnimation ? webGroupsStore.onCreateFrameLoadingAnimationRequested : undefined, onCreateBelowWindowRequested: ((_k = components === null || components === void 0 ? void 0 : components.frame) === null || _k === void 0 ? void 0 : _k.BelowWindow) ? webGroupsStore.onCreateBelowWindowRequested : undefined, onCreateAboveTabsRequested: ((_l = components === null || components === void 0 ? void 0 : components.tabs) === null || _l === void 0 ? void 0 : _l.Above) ? webGroupsStore.onCreateAboveTabsComponentRequested : undefined, onCreateBeforeTabsComponentRequested: ((_m = components === null || components === void 0 ? void 0 : components.tabs) === null || _m === void 0 ? void 0 : _m.Before) ? webGroupsStore.onCreateBeforeTabsComponentRequested : undefined, onCreateTabRequested: ((_o = components === null || components === void 0 ? void 0 : components.tabs) === null || _o === void 0 ? void 0 : _o.Element) ? webGroupsStore.onCreateTabElementRequested : undefined, onCreateAfterTabsComponentRequested: ((_p = components === null || components === void 0 ? void 0 : components.tabs) === null || _p === void 0 ? void 0 : _p.After) ? webGroupsStore.onCreateAfterTabsComponentRequested : undefined, onCreateTabHeaderButtonsRequested: ((_q = components === null || components === void 0 ? void 0 : components.tabs) === null || _q === void 0 ? void 0 : _q.Buttons) ? webGroupsStore.onCreateTabHeaderButtonsRequested : undefined, onCreateBelowTabsRequested: ((_r = components === null || components === void 0 ? void 0 : components.tabs) === null || _r === void 0 ? void 0 : _r.Below) ? webGroupsStore.onCreateBelowTabsComponentRequested : undefined, onCreateHtmlButtonsRequested: ((_s = components === null || components === void 0 ? void 0 : components.html) === null || _s === void 0 ? void 0 : _s.Buttons) ? webGroupsStore.onCreateHtmlButtonsRequested : undefined, onCreateTabOverflowPopupRequested: ((_t = components === null || components === void 0 ? void 0 : components.tabs) === null || _t === void 0 ? void 0 : _t.OverflowPopup) ? webGroupsStore.onCreateTabOverflowPopupRequested : undefined, onUpdateGroupCaptionBarRequested: ((_u = components === null || components === void 0 ? void 0 : components.group) === null || _u === void 0 ? void 0 : _u.CaptionBar) ? webGroupsStore.onUpdateGroupCaptionBarRequested : undefined, onUpdateFrameWindowOverlayRequested: ((_v = components === null || components === void 0 ? void 0 : components.group) === null || _v === void 0 ? void 0 : _v.Overlay) ? webGroupsStore.onUpdateFrameWindowOverlayRequested : undefined, onUpdateFrameCaptionBarRequested: ((_w = components === null || components === void 0 ? void 0 : components.flat) === null || _w === void 0 ? void 0 : _w.CaptionBar) ? webGroupsStore.onUpdateFrameCaptionBarRequested : undefined, onUpdateFrameRequested: webGroupsStore.onUpdateFrame, onUpdateStandardButtonRequested: webGroupsStore.onUpdateStandardButton, onUpdateCustomButtonsRequested: webGroupsStore.onUpdateCustomButtons, onUpdateAboveTabsRequested: ((_x = components === null || components === void 0 ? void 0 : components.tabs) === null || _x === void 0 ? void 0 : _x.Above) ? webGroupsStore.onUpdateAboveTabsRequested : undefined, onUpdateBeforeTabsComponentRequested: ((_y = components === null || components === void 0 ? void 0 : components.tabs) === null || _y === void 0 ? void 0 : _y.Before) ? webGroupsStore.onUpdateBeforeTabsRequested : undefined, onUpdateTabRequested: ((_z = components === null || components === void 0 ? void 0 : components.tabs) === null || _z === void 0 ? void 0 : _z.Element) ? webGroupsStore.onUpdateTabElementRequested : undefined, onUpdateAfterTabsComponentRequested: ((_0 = components === null || components === void 0 ? void 0 : components.tabs) === null || _0 === void 0 ? void 0 : _0.After) ? webGroupsStore.onUpdateAfterTabsRequested : undefined, onUpdateBelowTabsRequested: ((_1 = components === null || components === void 0 ? void 0 : components.tabs) === null || _1 === void 0 ? void 0 : _1.Below) ? webGroupsStore.onUpdateBelowTabsRequested : undefined, onRemoveFrameCaptionBarRequested: webGroupsStore.onRemoveFrameCaptionBarRequested, onRemoveFrameWindowOverlayRequested: webGroupsStore.onRemoveFrameWindowOverlayRequested, onRemoveAboveWindowRequested: webGroupsStore.onRemoveAboveWindowRequested, onRemoveWindowContentOverlayRequested: webGroupsStore.onRemoveWindowContentOverlayRequested, onRemoveFrameLoadingAnimationRequested: webGroupsStore.onRemoveFrameLoadingAnimationRequested, onRemoveBelowWindowRequested: webGroupsStore.onRemoveBelowWindowRequested, onRemoveAboveTabsRequested: webGroupsStore.onRemoveAboveTabsRequested, onRemoveBeforeTabsComponentRequested: webGroupsStore.onRemoveBeforeTabsComponentRequested, onRemoveTabRequested: webGroupsStore.onRemoveTabElementRequested, onRemoveAfterTabsComponentRequested: webGroupsStore.onRemoveAfterTabsComponentRequested, onRemoveTabHeaderButtonsRequested: webGroupsStore.onRemoveTabHeaderButtonsRequested, onRemoveBelowTabsRequested: webGroupsStore.onRemoveBelowTabsRequested, onRemoveHtmlButtonsRequested: webGroupsStore.onRemoveHtmlButtonsRequested, onRemoveTabOverflowPopupRequested: webGroupsStore.onRemoveTabOverflowPopupRequested, onShowCaptionEditorRequested: webGroupsStore.onShowCaptionEditorRequested, onCommitCaptionEditingRequested: webGroupsStore.onCommitCaptionEditingRequested, onHideCaptionEditorRequested: webGroupsStore.onHideCaptionEditorRequested, onShowLoadingAnimationRequested: webGroupsStore.onShowLoadingAnimationRequested, onHideLoadingAnimationRequested: webGroupsStore.onHideLoadingAnimationRequested }));
3232
3296
  };
3233
3297
 
3234
3298
  function useIOConnectWindow(windowId) {
@@ -3290,6 +3354,27 @@ var HtmlButtons = function (_a) {
3290
3354
  (close === null || close === void 0 ? void 0 : close.visible) && React.createElement(CloseButton, __assign({}, close))));
3291
3355
  };
3292
3356
 
3357
+ var TabOverflowPopup = function (_a) {
3358
+ var hiddenTabsToTheLeft = _a.hiddenTabsToTheLeft, hiddenTabsToTheRight = _a.hiddenTabsToTheRight, close = _a.close, select = _a.select;
3359
+ var createSection = function (tabs, title) {
3360
+ return (React.createElement("ul", null,
3361
+ React.createElement("li", { className: "title" }, title),
3362
+ tabs.map(function (tab) { return (React.createElement("li", { key: tab.windowId, onClick: function () { return handleTabClick(tab.windowId); } },
3363
+ React.createElement("span", null, tab.title),
3364
+ React.createElement("div", { className: "t42-tab-close-button-content", onClick: function () { return handleTabClose(tab.windowId); } }))); })));
3365
+ };
3366
+ var handleTabClick = function (windowId) {
3367
+ select(windowId);
3368
+ };
3369
+ var handleTabClose = function (windowId) {
3370
+ close(windowId);
3371
+ };
3372
+ return (React.createElement("div", { className: "t42-wg-tab-overflow-popup" },
3373
+ hiddenTabsToTheLeft.length > 0 && createSection(hiddenTabsToTheLeft, "Open left"),
3374
+ hiddenTabsToTheLeft.length > 0 && hiddenTabsToTheRight.length > 0 && React.createElement("hr", null),
3375
+ hiddenTabsToTheRight.length > 0 && createSection(hiddenTabsToTheRight, "Open right")));
3376
+ };
3377
+
3293
3378
  var getGroupId = function () { return webGroupsManager === null || webGroupsManager === void 0 ? void 0 : webGroupsManager.getGroupId(); };
3294
3379
  var requestPageFocus = function () { return webGroupsManager === null || webGroupsManager === void 0 ? void 0 : webGroupsManager.requestPageFocus(); };
3295
3380
  var requestFrameFocus = function (frameId) { return webGroupsManager === null || webGroupsManager === void 0 ? void 0 : webGroupsManager.requestFrameFocus(frameId); };
@@ -3298,5 +3383,5 @@ var onCommitGroupCaptionEditingRequested = function (targetId, cb) { return webG
3298
3383
  var onCommitFlatCaptionEditingRequested = function (targetId, cb) { return webGroupsManager.onCommitCaptionEditingRequested(TargetType.Frame, targetId, cb); };
3299
3384
  var onCommitTabCaptionEditingRequested = function (targetId, cb) { return webGroupsManager.onCommitCaptionEditingRequested(TargetType.Tab, targetId, cb); };
3300
3385
 
3301
- export { CloneButton, CloseButton, CustomButton, ExtractButton, FeedbackButton, FlatButtons, FlatCaption, FlatCaptionBar, FlatCaptionEditor, FlatChannelSelector, FlatMoveArea, FrameLoadingAnimation, GroupButtons, GroupCaption, GroupCaptionBar, GroupCaptionEditor, GroupMoveArea, HtmlButtons, LockButton, MaximizeButton, MinimizeButton, RestoreButton, StickyButton, Tab, TabCaption, TabCaptionEditor, TabChannelSelector, TabCloseButton, TabHeaderButtons, UnlockButton, GroupElementCreationWrapper as default, getGroupId, onCommitFlatCaptionEditingRequested, onCommitGroupCaptionEditingRequested, onCommitTabCaptionEditingRequested, requestFrameFocus, requestGroupFocus, requestPageFocus, useCaptionEditor, useCommitFlatCaptionEditingRequested, useCommitGroupCaptionEditingRequested, useCommitTabCaptionEditingRequested, useEditableCaption, useGroupComponentVisibility, useIOConnectWindow, waitForWindow };
3386
+ export { CloneButton, CloseButton, CustomButton, ExtractButton, FeedbackButton, FlatButtons, FlatCaption, FlatCaptionBar, FlatCaptionEditor, FlatChannelSelector, FlatMoveArea, FrameLoadingAnimation, GroupButtons, GroupCaption, GroupCaptionBar, GroupCaptionEditor, GroupMoveArea, HtmlButtons, LockButton, MaximizeButton, MinimizeButton, OverflowButton, RestoreButton, StickyButton, Tab, TabCaption, TabCaptionEditor, TabChannelSelector, TabCloseButton, TabHeaderButtons, TabOverflowPopup, UnlockButton, GroupElementCreationWrapper as default, getGroupId, onCommitFlatCaptionEditingRequested, onCommitGroupCaptionEditingRequested, onCommitTabCaptionEditingRequested, requestFrameFocus, requestGroupFocus, requestPageFocus, useCaptionEditor, useCommitFlatCaptionEditingRequested, useCommitGroupCaptionEditingRequested, useCommitTabCaptionEditingRequested, useEditableCaption, useGroupComponentVisibility, useIOConnectWindow, waitForWindow };
3302
3387
  //# sourceMappingURL=index.js.map