@infomaximum/ui-kit 0.17.1 → 0.17.3
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.
- package/dist/components/BaseTooltip/BaseTooltip.js +14 -4
- package/dist/components/BaseTooltip/BaseTooltip.utils.d.ts +2 -1
- package/dist/components/BaseTooltip/BaseTooltip.utils.js +15 -2
- package/dist/components/Button/Button.types.d.ts +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js +11 -4
- package/dist/components/Dropdown/Dropdown.js +2 -1
- package/dist/components/Dropdown/components/Menu/Menu.js +10 -7
- package/dist/components/Dropdown/contexts/dropdownContext.d.ts +0 -1
- package/dist/components/Dropdown/hooks/useSelectedKeysController.d.ts +0 -1
- package/dist/components/Dropdown/hooks/useSelectedKeysController.js +0 -4
- package/dist/components/Empty/components/images/BookmarkImg.js +8 -4
- package/dist/components/Empty/components/images/DefaultImg.js +8 -4
- package/dist/components/Empty/components/images/FilterImg.js +8 -4
- package/dist/components/Empty/components/images/LockedImg.js +8 -4
- package/dist/components/Empty/components/images/SearchImg.js +8 -4
- package/dist/components/Empty/components/images/TestingImg.js +8 -4
- package/dist/components/Empty/components/images/_404Img.js +8 -4
- package/dist/components/Spin/Spin.js +19 -32
- package/dist/components/Switch/Switch.js +4 -4
- package/dist/components/Switch/Switch.styles.js +7 -3
- package/dist/components/Switch/Switch.types.d.ts +1 -1
- package/dist/components/Table/Table.js +35 -37
- package/dist/components/Table/Table.styles.d.ts +1 -1
- package/dist/components/Table/Table.styles.js +2 -2
- package/dist/components/Table/Table.types.d.ts +29 -8
- package/dist/components/Table/components/Body/Body.js +19 -10
- package/dist/components/Table/components/Body/Body.types.d.ts +1 -0
- package/dist/components/Table/components/Body/components/BodyCell/BodyCell.js +25 -18
- package/dist/components/Table/components/Body/components/BodyCell/BodyCell.styles.d.ts +2 -2
- package/dist/components/Table/components/Body/components/BodyCell/BodyCell.styles.js +3 -3
- package/dist/components/Table/components/Body/components/MeasureCell/MeasureCell.js +13 -4
- package/dist/components/Table/components/Body/components/MeasureCell/MeasureCell.types.d.ts +1 -0
- package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.js +24 -18
- package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.utils.d.ts +1 -0
- package/dist/components/Table/components/Body/components/MeasureRow/MeasureRow.utils.js +3 -1
- package/dist/components/Table/components/Cell/Cell.d.ts +1 -2
- package/dist/components/Table/components/Cell/Cell.js +4 -3
- package/dist/components/Table/components/Cell/Cell.styles.d.ts +8 -2
- package/dist/components/Table/components/Cell/Cell.styles.js +9 -3
- package/dist/components/Table/components/Cell/Cell.types.d.ts +2 -2
- package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.js +5 -5
- package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.styles.d.ts +3 -2
- package/dist/components/Table/components/EmptyDataRow/EmptyDataRow.styles.js +5 -9
- package/dist/components/Table/components/FixedHeader/FixedHeader.js +1 -1
- package/dist/components/Table/components/FixedHeader/components/FixedHeaderColGroup/FixedHeaderColGroup.js +18 -12
- package/dist/components/Table/components/Footer/FooterWrapper.d.ts +3 -0
- package/dist/components/Table/components/Footer/FooterWrapper.js +36 -0
- package/dist/components/Table/components/Footer/FooterWrapper.types.d.ts +5 -0
- package/dist/components/Table/components/Header/Header.js +1 -1
- package/dist/components/Table/components/Header/components/HeaderCell/HeaderCell.js +2 -2
- package/dist/components/Table/components/Header/components/HeaderCell/HeaderCell.styles.d.ts +2 -2
- package/dist/components/Table/components/Header/components/HeaderCell/HeaderCell.styles.js +3 -3
- package/dist/components/Table/contexts/tableContext/TableContext.js +9 -1
- package/dist/components/Table/contexts/tableContext/TableContext.types.d.ts +3 -2
- package/dist/components/Table/features/tableRowSelection/components/CheckboxCellContentWrapper/CheckboxCellContentWrapper.js +3 -2
- package/dist/components/Table/features/tableRowSelection/components/HeaderCheckboxCellContentWrapper/HeaderCheckboxCellContentWrapper.js +1 -1
- package/dist/components/Table/features/tableRowSelection/components/RadioCellContentWrapper/RadioCellContentWrapper.js +3 -2
- package/dist/components/Table/features/tableRowSelection/hooks/useTransformColumns/useTransformColumns.js +51 -40
- package/dist/components/Table/features/tableRowSelection/types.d.ts +3 -2
- package/dist/components/Table/features/tableSort/components/HeaderCellWithSort/HeaderCellWithSort.js +2 -2
- package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.d.ts +2 -0
- package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.js +3 -1
- package/dist/components/Table/features/tableStaticContext/contexts/tableStaticContext/TableStaticContext.types.d.ts +3 -0
- package/dist/components/Table/features/tableStaticContext/hocs/withTableStaticContext.js +6 -1
- package/dist/components/Table/hooks/useBodyCellRender/useBodyCellRender.js +5 -2
- package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.js +20 -22
- package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.styles.d.ts +4 -2
- package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.styles.js +4 -3
- package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.utils.d.ts +12 -1
- package/dist/components/Table/hooks/useCellFixedInfo/useCellFixedInfo.utils.js +43 -1
- package/dist/components/Table/hooks/useCellHover/useCellHover.d.ts +0 -4
- package/dist/components/Table/hooks/useCellHover/useCellHover.js +2 -4
- package/dist/components/Table/hooks/useTableBordered/getBorderedInfo.d.ts +3 -0
- package/dist/components/Table/hooks/useTableBordered/getBorderedInfo.js +41 -0
- package/dist/components/Table/hooks/useTableBordered/index.d.ts +1 -0
- package/dist/components/Table/hooks/useTableBordered/useTableBordered.d.ts +4 -0
- package/dist/components/Table/hooks/useTableBordered/useTableBordered.js +14 -0
- package/dist/components/Table/hooks/useTableBordered/useTableBordered.types.d.ts +3 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/index.d.ts +1 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/types.d.ts +6 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/useTableVisualParamsChange.js +25 -8
- package/dist/components/Table/hooks/useTableVisualParamsChange/utils.d.ts +1 -0
- package/dist/components/Table/hooks/useTableVisualParamsChange/utils.js +3 -1
- package/dist/components/Tabs/Tabs.js +2 -2
- package/dist/components/Tabs/Tabs.types.d.ts +3 -1
- package/dist/components/Tabs/Tabs.utils.d.ts +3 -0
- package/dist/components/Tabs/Tabs.utils.js +29 -1
- package/dist/components/Tabs/components/TabBar/TabBar.js +12 -10
- package/dist/components/Tabs/components/TabBar/TabBar.styles.d.ts +1 -1
- package/dist/components/Tabs/components/TabBar/TabBar.styles.js +3 -9
- package/dist/components/Tabs/components/TabItem/TabItem.js +24 -8
- package/dist/components/Tabs/components/TabItem/TabItem.types.d.ts +2 -0
- package/dist/components/Tabs/hooks/useMoreTabsController.d.ts +4 -1
- package/dist/components/Tabs/hooks/useMoreTabsController.js +37 -6
- package/dist/components/Tabs/hooks/useTabsDndController.d.ts +1 -2
- package/dist/components/Tabs/hooks/useTabsDndController.js +7 -4
- package/dist/utils/eventBus/eventBus.d.ts +2 -1
- package/dist/utils/eventBus/eventBus.js +3 -0
- package/package.json +1 -1
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { getTabsTokens } from "../../Tabs.tokens.js";
|
|
2
|
-
import { isUndefined } from "lodash-es";
|
|
3
2
|
const getTabsGap = (tabsTokens, iconOnly, isMiddleSize) => {
|
|
4
3
|
if (iconOnly) {
|
|
5
4
|
return 0;
|
|
@@ -9,12 +8,7 @@ const getTabsGap = (tabsTokens, iconOnly, isMiddleSize) => {
|
|
|
9
8
|
}
|
|
10
9
|
return tabsTokens.tabsGapS;
|
|
11
10
|
};
|
|
12
|
-
const getDropdownDisplay = (
|
|
13
|
-
if (isUndefined(elementWidth) || isUndefined(elementScrollWidth)) {
|
|
14
|
-
return "none";
|
|
15
|
-
}
|
|
16
|
-
return elementScrollWidth > elementWidth ? "inline-block" : "none";
|
|
17
|
-
};
|
|
11
|
+
const getDropdownDisplay = (hasHiddenTabs) => hasHiddenTabs ? "inline-block" : "none";
|
|
18
12
|
const getTabBarStyle = (size, border, iconOnly, isDragging) => {
|
|
19
13
|
const isMiddleSize = size === "middle";
|
|
20
14
|
return {
|
|
@@ -75,8 +69,8 @@ const getTabBarStyle = (size, border, iconOnly, isDragging) => {
|
|
|
75
69
|
}
|
|
76
70
|
};
|
|
77
71
|
},
|
|
78
|
-
dropdown: (
|
|
79
|
-
display: getDropdownDisplay(
|
|
72
|
+
dropdown: (hasHiddenTabs) => () => ({
|
|
73
|
+
display: getDropdownDisplay(hasHiddenTabs)
|
|
80
74
|
})
|
|
81
75
|
};
|
|
82
76
|
};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { memo, useRef, useEffect, useCallback } from "react";
|
|
2
|
+
import { memo, useRef, useLayoutEffect, useEffect, useCallback } from "react";
|
|
3
3
|
import { isUndefined } from "lodash-es";
|
|
4
4
|
import { getTabItemStyle } from "./TabItem.styles.js";
|
|
5
5
|
import { createPortal } from "react-dom";
|
|
6
6
|
import { useInView } from "react-intersection-observer";
|
|
7
7
|
import { CSS } from "@dnd-kit/utilities";
|
|
8
8
|
import { useSortable } from "@dnd-kit/sortable";
|
|
9
|
+
import { intersectionThreshold } from "../../Tabs.utils.js";
|
|
9
10
|
import { useTheme } from "../../../../hooks/useTheme/useTheme.js";
|
|
10
11
|
const TabItem = memo(({
|
|
11
12
|
icon,
|
|
@@ -18,6 +19,7 @@ const TabItem = memo(({
|
|
|
18
19
|
forceRender,
|
|
19
20
|
contentWrapper,
|
|
20
21
|
children,
|
|
22
|
+
tabItemsRefsMap,
|
|
21
23
|
styles,
|
|
22
24
|
changeActiveKey,
|
|
23
25
|
addHiddenTab,
|
|
@@ -32,11 +34,12 @@ const TabItem = memo(({
|
|
|
32
34
|
const itemRef = useRef(null);
|
|
33
35
|
const {
|
|
34
36
|
ref,
|
|
35
|
-
|
|
37
|
+
entry
|
|
36
38
|
} = useInView({
|
|
37
|
-
threshold:
|
|
38
|
-
initialInView: true
|
|
39
|
+
threshold: intersectionThreshold
|
|
39
40
|
});
|
|
41
|
+
const intersectionRatio = entry == null ? void 0 : entry.intersectionRatio;
|
|
42
|
+
const inView = isUndefined(intersectionRatio) ? void 0 : intersectionRatio >= intersectionThreshold;
|
|
40
43
|
const {
|
|
41
44
|
isDragging,
|
|
42
45
|
attributes,
|
|
@@ -51,7 +54,20 @@ const TabItem = memo(({
|
|
|
51
54
|
transform: CSS.Translate.toString(transform),
|
|
52
55
|
transition
|
|
53
56
|
};
|
|
57
|
+
useLayoutEffect(() => {
|
|
58
|
+
const item = itemRef.current;
|
|
59
|
+
if (!item) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
tabItemsRefsMap.set(itemKey, item);
|
|
63
|
+
return () => {
|
|
64
|
+
tabItemsRefsMap.delete(itemKey);
|
|
65
|
+
};
|
|
66
|
+
}, [itemKey, tabItemsRefsMap]);
|
|
54
67
|
useEffect(() => {
|
|
68
|
+
if (isUndefined(inView)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
55
71
|
if (inView) {
|
|
56
72
|
deleteHiddenTab(itemKey);
|
|
57
73
|
} else {
|
|
@@ -84,10 +100,10 @@ const TabItem = memo(({
|
|
|
84
100
|
const withIconOnly = iconOnly || isUndefined(label);
|
|
85
101
|
const withContent = (selected || forceRender) && contentWrapper && children;
|
|
86
102
|
const tabItemStyle = getTabItemStyle(withIconOnly, disabled, selected, size, isDragging);
|
|
87
|
-
return /* @__PURE__ */ jsxs("div", { ref: consolidatedRef, style, ...listeners, ...attributes, css: [tabItemStyle.wrapper(theme), (_a = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _a.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
88
|
-
icon && /* @__PURE__ */ jsx("span", { css: [tabItemStyle.iconWrapper(theme), (_b = styles == null ? void 0 : styles.iconWrapper) == null ? void 0 : _b.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
89
|
-
!iconOnly && label && /* @__PURE__ */ jsx("span", { css: [tabItemStyle.labelWrapper(theme), (_c = styles == null ? void 0 : styles.labelWrapper) == null ? void 0 : _c.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
90
|
-
withContent && createPortal(/* @__PURE__ */ jsx("div", { css: [tabItemStyle.childrenWrapper(theme), (_d = styles == null ? void 0 : styles.childrenWrapper) == null ? void 0 : _d.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
103
|
+
return /* @__PURE__ */ jsxs("div", { ref: consolidatedRef, style, ...listeners, ...attributes, css: [tabItemStyle.wrapper(theme), (_a = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _a.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUlRIiwiZmlsZSI6Ii9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBtZW1vLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZVJlZixcbiAgdHlwZSBGQyxcbiAgdHlwZSBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiSXRlbVByb3BzIH0gZnJvbSBcIi4vVGFiSXRlbS50eXBlc1wiO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBnZXRUYWJJdGVtU3R5bGUgfSBmcm9tIFwiLi9UYWJJdGVtLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZUluVmlldyB9IGZyb20gXCJyZWFjdC1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXJcIjtcblxuaW1wb3J0IHsgQ1NTIH0gZnJvbSBcIkBkbmQta2l0L3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgdXNlU29ydGFibGUgfSBmcm9tIFwiQGRuZC1raXQvc29ydGFibGVcIjtcbmltcG9ydCB7IGludGVyc2VjdGlvblRocmVzaG9sZCB9IGZyb20gXCJjb21wb25lbnRzL1RhYnMvVGFicy51dGlsc1wiO1xuXG5leHBvcnQgY29uc3QgVGFiSXRlbTogRkM8VGFiSXRlbVByb3BzPiA9IG1lbW8oXG4gICh7XG4gICAgaWNvbixcbiAgICBsYWJlbCxcbiAgICBpY29uT25seSxcbiAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgIHNpemUgPSBcIm1pZGRsZVwiLFxuICAgIGl0ZW1LZXksXG4gICAgc2VsZWN0ZWQsXG4gICAgZm9yY2VSZW5kZXIsXG4gICAgY29udGVudFdyYXBwZXIsXG4gICAgY2hpbGRyZW4sXG4gICAgdGFiSXRlbXNSZWZzTWFwLFxuICAgIHN0eWxlcyxcbiAgICBjaGFuZ2VBY3RpdmVLZXksXG4gICAgYWRkSGlkZGVuVGFiLFxuICAgIGRlbGV0ZUhpZGRlblRhYixcbiAgICBzZXRDdXJyZW50VGFiRWxlbWVudCxcbiAgICBzY3JvbGxUb1RhYixcbiAgICBvbkNoYW5nZSxcbiAgICBvblRhYkNsaWNrLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGl0ZW1SZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IHsgcmVmLCBlbnRyeSB9ID0gdXNlSW5WaWV3KHsgdGhyZXNob2xkOiBpbnRlcnNlY3Rpb25UaHJlc2hvbGQgfSk7XG4gICAgY29uc3QgaW50ZXJzZWN0aW9uUmF0aW8gPSBlbnRyeT8uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgY29uc3QgaW5WaWV3ID0gaXNVbmRlZmluZWQoaW50ZXJzZWN0aW9uUmF0aW8pXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBpbnRlcnNlY3Rpb25SYXRpbyA+PSBpbnRlcnNlY3Rpb25UaHJlc2hvbGQ7XG5cbiAgICBjb25zdCB7IGlzRHJhZ2dpbmcsIGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogaXRlbUtleSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICB0cmFuc2l0aW9uLFxuICAgIH07XG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGl0ZW1SZWYuY3VycmVudDtcblxuICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGFiSXRlbXNSZWZzTWFwLnNldChpdGVtS2V5LCBpdGVtKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGFiSXRlbXNSZWZzTWFwLmRlbGV0ZShpdGVtS2V5KTtcbiAgICAgIH07XG4gICAgfSwgW2l0ZW1LZXksIHRhYkl0ZW1zUmVmc01hcF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1VuZGVmaW5lZChpblZpZXcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICBkZWxldGVIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9XG4gICAgfSwgW2FkZEhpZGRlblRhYiwgZGVsZXRlSGlkZGVuVGFiLCBpblZpZXcsIGl0ZW1LZXldKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXNlbGVjdGVkIHx8IGlzVW5kZWZpbmVkKGl0ZW1SZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50VGFiRWxlbWVudChpdGVtUmVmLmN1cnJlbnQpO1xuXG4gICAgICBpZiAoaW5WaWV3KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsVG9UYWIoaXRlbVJlZi5jdXJyZW50KTtcbiAgICB9LCBbc2VsZWN0ZWRdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBvblRhYkNsaWNrPy4oaXRlbUtleSwgZSk7XG5cbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2U/LihpdGVtS2V5KTtcbiAgICAgICAgY2hhbmdlQWN0aXZlS2V5KGl0ZW1LZXkpO1xuICAgICAgfSxcbiAgICAgIFtjaGFuZ2VBY3RpdmVLZXksIGRpc2FibGVkLCBpdGVtS2V5LCBvbkNoYW5nZSwgb25UYWJDbGljaywgc2VsZWN0ZWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFJlZiA9IChub2RlOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIHJlZihub2RlKTtcbiAgICAgIGl0ZW1SZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBzZXROb2RlUmVmKG5vZGUpO1xuICAgIH07XG5cbiAgICBjb25zdCB3aXRoSWNvbk9ubHkgPSBpY29uT25seSB8fCBpc1VuZGVmaW5lZChsYWJlbCk7XG4gICAgY29uc3Qgd2l0aENvbnRlbnQgPSAoc2VsZWN0ZWQgfHwgZm9yY2VSZW5kZXIpICYmIGNvbnRlbnRXcmFwcGVyICYmIGNoaWxkcmVuO1xuXG4gICAgY29uc3QgdGFiSXRlbVN0eWxlID0gZ2V0VGFiSXRlbVN0eWxlKHdpdGhJY29uT25seSwgZGlzYWJsZWQsIHNlbGVjdGVkLCBzaXplLCBpc0RyYWdnaW5nKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17Y29uc29saWRhdGVkUmVmfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHsuLi5saXN0ZW5lcnN9XG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBjc3M9e1t0YWJJdGVtU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lLCBzZWxlY3RlZCldfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgID5cbiAgICAgICAge2ljb24gJiYgKFxuICAgICAgICAgIDxzcGFuIGNzcz17W3RhYkl0ZW1TdHlsZS5pY29uV3JhcHBlcih0aGVtZSksIHN0eWxlcz8uaWNvbldyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpXX0+XG4gICAgICAgICAgICB7aWNvbn1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIHshaWNvbk9ubHkgJiYgbGFiZWwgJiYgKFxuICAgICAgICAgIDxzcGFuIGNzcz17W3RhYkl0ZW1TdHlsZS5sYWJlbFdyYXBwZXIodGhlbWUpLCBzdHlsZXM/LmxhYmVsV3JhcHBlcj8uKHRoZW1lLCBzZWxlY3RlZCldfT5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIHt3aXRoQ29udGVudCAmJlxuICAgICAgICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgdGFiSXRlbVN0eWxlLmNoaWxkcmVuV3JhcHBlcih0aGVtZSksXG4gICAgICAgICAgICAgICAgc3R5bGVzPy5jaGlsZHJlbldyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpLFxuICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBjb250ZW50V3JhcHBlclxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], onClick: handleClick, children: [
|
|
104
|
+
icon && /* @__PURE__ */ jsx("span", { css: [tabItemStyle.iconWrapper(theme), (_b = styles == null ? void 0 : styles.iconWrapper) == null ? void 0 : _b.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUlnQiIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJJdGVtL1RhYkl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG4gIHR5cGUgRkMsXG4gIHR5cGUgTW91c2VFdmVudCxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYkl0ZW1Qcm9wcyB9IGZyb20gXCIuL1RhYkl0ZW0udHlwZXNcIjtcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgZ2V0VGFiSXRlbVN0eWxlIH0gZnJvbSBcIi4vVGFiSXRlbS5zdHlsZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VJblZpZXcgfSBmcm9tIFwicmVhY3QtaW50ZXJzZWN0aW9uLW9ic2VydmVyXCI7XG5cbmltcG9ydCB7IENTUyB9IGZyb20gXCJAZG5kLWtpdC91dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVNvcnRhYmxlIH0gZnJvbSBcIkBkbmQta2l0L3NvcnRhYmxlXCI7XG5pbXBvcnQgeyBpbnRlcnNlY3Rpb25UaHJlc2hvbGQgfSBmcm9tIFwiY29tcG9uZW50cy9UYWJzL1RhYnMudXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IFRhYkl0ZW06IEZDPFRhYkl0ZW1Qcm9wcz4gPSBtZW1vKFxuICAoe1xuICAgIGljb24sXG4gICAgbGFiZWwsXG4gICAgaWNvbk9ubHksXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBpdGVtS2V5LFxuICAgIHNlbGVjdGVkLFxuICAgIGZvcmNlUmVuZGVyLFxuICAgIGNvbnRlbnRXcmFwcGVyLFxuICAgIGNoaWxkcmVuLFxuICAgIHRhYkl0ZW1zUmVmc01hcCxcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIGFkZEhpZGRlblRhYixcbiAgICBkZWxldGVIaWRkZW5UYWIsXG4gICAgc2V0Q3VycmVudFRhYkVsZW1lbnQsXG4gICAgc2Nyb2xsVG9UYWIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBpdGVtUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICBjb25zdCB7IHJlZiwgZW50cnkgfSA9IHVzZUluVmlldyh7IHRocmVzaG9sZDogaW50ZXJzZWN0aW9uVGhyZXNob2xkIH0pO1xuICAgIGNvbnN0IGludGVyc2VjdGlvblJhdGlvID0gZW50cnk/LmludGVyc2VjdGlvblJhdGlvO1xuICAgIGNvbnN0IGluVmlldyA9IGlzVW5kZWZpbmVkKGludGVyc2VjdGlvblJhdGlvKVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogaW50ZXJzZWN0aW9uUmF0aW8gPj0gaW50ZXJzZWN0aW9uVGhyZXNob2xkO1xuXG4gICAgY29uc3QgeyBpc0RyYWdnaW5nLCBhdHRyaWJ1dGVzLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbiB9ID0gdXNlU29ydGFibGUoe1xuICAgICAgaWQ6IGl0ZW1LZXksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zbGF0ZS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgICAgdHJhbnNpdGlvbixcbiAgICB9O1xuXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmICghaXRlbSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRhYkl0ZW1zUmVmc01hcC5zZXQoaXRlbUtleSwgaXRlbSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHRhYkl0ZW1zUmVmc01hcC5kZWxldGUoaXRlbUtleSk7XG4gICAgICB9O1xuICAgIH0sIFtpdGVtS2V5LCB0YWJJdGVtc1JlZnNNYXBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNVbmRlZmluZWQoaW5WaWV3KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpblZpZXcpIHtcbiAgICAgICAgZGVsZXRlSGlkZGVuVGFiKGl0ZW1LZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkSGlkZGVuVGFiKGl0ZW1LZXkpO1xuICAgICAgfVxuICAgIH0sIFthZGRIaWRkZW5UYWIsIGRlbGV0ZUhpZGRlblRhYiwgaW5WaWV3LCBpdGVtS2V5XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFzZWxlY3RlZCB8fCBpc1VuZGVmaW5lZChpdGVtUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2V0Q3VycmVudFRhYkVsZW1lbnQoaXRlbVJlZi5jdXJyZW50KTtcblxuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNjcm9sbFRvVGFiKGl0ZW1SZWYuY3VycmVudCk7XG4gICAgfSwgW3NlbGVjdGVkXSk7XG5cbiAgICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgb25UYWJDbGljaz8uKGl0ZW1LZXksIGUpO1xuXG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCBzZWxlY3RlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9uQ2hhbmdlPy4oaXRlbUtleSk7XG4gICAgICAgIGNoYW5nZUFjdGl2ZUtleShpdGVtS2V5KTtcbiAgICAgIH0sXG4gICAgICBbY2hhbmdlQWN0aXZlS2V5LCBkaXNhYmxlZCwgaXRlbUtleSwgb25DaGFuZ2UsIG9uVGFiQ2xpY2ssIHNlbGVjdGVkXVxuICAgICk7XG5cbiAgICBjb25zdCBjb25zb2xpZGF0ZWRSZWYgPSAobm9kZTogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICByZWYobm9kZSk7XG4gICAgICBpdGVtUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgc2V0Tm9kZVJlZihub2RlKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgd2l0aEljb25Pbmx5ID0gaWNvbk9ubHkgfHwgaXNVbmRlZmluZWQobGFiZWwpO1xuICAgIGNvbnN0IHdpdGhDb250ZW50ID0gKHNlbGVjdGVkIHx8IGZvcmNlUmVuZGVyKSAmJiBjb250ZW50V3JhcHBlciAmJiBjaGlsZHJlbjtcblxuICAgIGNvbnN0IHRhYkl0ZW1TdHlsZSA9IGdldFRhYkl0ZW1TdHlsZSh3aXRoSWNvbk9ubHksIGRpc2FibGVkLCBzZWxlY3RlZCwgc2l6ZSwgaXNEcmFnZ2luZyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICByZWY9e2NvbnNvbGlkYXRlZFJlZn1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICB7Li4ubGlzdGVuZXJzfVxuICAgICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgICAgY3NzPXtbdGFiSXRlbVN0eWxlLndyYXBwZXIodGhlbWUpLCBzdHlsZXM/LndyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpXX1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICA+XG4gICAgICAgIHtpY29uICYmIChcbiAgICAgICAgICA8c3BhbiBjc3M9e1t0YWJJdGVtU3R5bGUuaWNvbldyYXBwZXIodGhlbWUpLCBzdHlsZXM/Lmljb25XcmFwcGVyPy4odGhlbWUsIHNlbGVjdGVkKV19PlxuICAgICAgICAgICAge2ljb259XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7IWljb25Pbmx5ICYmIGxhYmVsICYmIChcbiAgICAgICAgICA8c3BhbiBjc3M9e1t0YWJJdGVtU3R5bGUubGFiZWxXcmFwcGVyKHRoZW1lKSwgc3R5bGVzPy5sYWJlbFdyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpXX0+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7d2l0aENvbnRlbnQgJiZcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgIHRhYkl0ZW1TdHlsZS5jaGlsZHJlbldyYXBwZXIodGhlbWUpLFxuICAgICAgICAgICAgICAgIHN0eWxlcz8uY2hpbGRyZW5XcmFwcGVyPy4odGhlbWUsIHNlbGVjdGVkKSxcbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgY29udGVudFdyYXBwZXJcbiAgICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */"], children: icon }),
|
|
105
|
+
!iconOnly && label && /* @__PURE__ */ jsx("span", { css: [tabItemStyle.labelWrapper(theme), (_c = styles == null ? void 0 : styles.labelWrapper) == null ? void 0 : _c.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNElnQiIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJJdGVtL1RhYkl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgbWVtbyxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VSZWYsXG4gIHR5cGUgRkMsXG4gIHR5cGUgTW91c2VFdmVudCxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYkl0ZW1Qcm9wcyB9IGZyb20gXCIuL1RhYkl0ZW0udHlwZXNcIjtcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgZ2V0VGFiSXRlbVN0eWxlIH0gZnJvbSBcIi4vVGFiSXRlbS5zdHlsZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgeyB1c2VJblZpZXcgfSBmcm9tIFwicmVhY3QtaW50ZXJzZWN0aW9uLW9ic2VydmVyXCI7XG5cbmltcG9ydCB7IENTUyB9IGZyb20gXCJAZG5kLWtpdC91dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVNvcnRhYmxlIH0gZnJvbSBcIkBkbmQta2l0L3NvcnRhYmxlXCI7XG5pbXBvcnQgeyBpbnRlcnNlY3Rpb25UaHJlc2hvbGQgfSBmcm9tIFwiY29tcG9uZW50cy9UYWJzL1RhYnMudXRpbHNcIjtcblxuZXhwb3J0IGNvbnN0IFRhYkl0ZW06IEZDPFRhYkl0ZW1Qcm9wcz4gPSBtZW1vKFxuICAoe1xuICAgIGljb24sXG4gICAgbGFiZWwsXG4gICAgaWNvbk9ubHksXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBpdGVtS2V5LFxuICAgIHNlbGVjdGVkLFxuICAgIGZvcmNlUmVuZGVyLFxuICAgIGNvbnRlbnRXcmFwcGVyLFxuICAgIGNoaWxkcmVuLFxuICAgIHRhYkl0ZW1zUmVmc01hcCxcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIGFkZEhpZGRlblRhYixcbiAgICBkZWxldGVIaWRkZW5UYWIsXG4gICAgc2V0Q3VycmVudFRhYkVsZW1lbnQsXG4gICAgc2Nyb2xsVG9UYWIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBpdGVtUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICBjb25zdCB7IHJlZiwgZW50cnkgfSA9IHVzZUluVmlldyh7IHRocmVzaG9sZDogaW50ZXJzZWN0aW9uVGhyZXNob2xkIH0pO1xuICAgIGNvbnN0IGludGVyc2VjdGlvblJhdGlvID0gZW50cnk/LmludGVyc2VjdGlvblJhdGlvO1xuICAgIGNvbnN0IGluVmlldyA9IGlzVW5kZWZpbmVkKGludGVyc2VjdGlvblJhdGlvKVxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogaW50ZXJzZWN0aW9uUmF0aW8gPj0gaW50ZXJzZWN0aW9uVGhyZXNob2xkO1xuXG4gICAgY29uc3QgeyBpc0RyYWdnaW5nLCBhdHRyaWJ1dGVzLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbiB9ID0gdXNlU29ydGFibGUoe1xuICAgICAgaWQ6IGl0ZW1LZXksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zbGF0ZS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgICAgdHJhbnNpdGlvbixcbiAgICB9O1xuXG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmICghaXRlbSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRhYkl0ZW1zUmVmc01hcC5zZXQoaXRlbUtleSwgaXRlbSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHRhYkl0ZW1zUmVmc01hcC5kZWxldGUoaXRlbUtleSk7XG4gICAgICB9O1xuICAgIH0sIFtpdGVtS2V5LCB0YWJJdGVtc1JlZnNNYXBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNVbmRlZmluZWQoaW5WaWV3KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpblZpZXcpIHtcbiAgICAgICAgZGVsZXRlSGlkZGVuVGFiKGl0ZW1LZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWRkSGlkZGVuVGFiKGl0ZW1LZXkpO1xuICAgICAgfVxuICAgIH0sIFthZGRIaWRkZW5UYWIsIGRlbGV0ZUhpZGRlblRhYiwgaW5WaWV3LCBpdGVtS2V5XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCFzZWxlY3RlZCB8fCBpc1VuZGVmaW5lZChpdGVtUmVmLmN1cnJlbnQpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2V0Q3VycmVudFRhYkVsZW1lbnQoaXRlbVJlZi5jdXJyZW50KTtcblxuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNjcm9sbFRvVGFiKGl0ZW1SZWYuY3VycmVudCk7XG4gICAgfSwgW3NlbGVjdGVkXSk7XG5cbiAgICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgb25UYWJDbGljaz8uKGl0ZW1LZXksIGUpO1xuXG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCBzZWxlY3RlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG9uQ2hhbmdlPy4oaXRlbUtleSk7XG4gICAgICAgIGNoYW5nZUFjdGl2ZUtleShpdGVtS2V5KTtcbiAgICAgIH0sXG4gICAgICBbY2hhbmdlQWN0aXZlS2V5LCBkaXNhYmxlZCwgaXRlbUtleSwgb25DaGFuZ2UsIG9uVGFiQ2xpY2ssIHNlbGVjdGVkXVxuICAgICk7XG5cbiAgICBjb25zdCBjb25zb2xpZGF0ZWRSZWYgPSAobm9kZTogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICByZWYobm9kZSk7XG4gICAgICBpdGVtUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgc2V0Tm9kZVJlZihub2RlKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgd2l0aEljb25Pbmx5ID0gaWNvbk9ubHkgfHwgaXNVbmRlZmluZWQobGFiZWwpO1xuICAgIGNvbnN0IHdpdGhDb250ZW50ID0gKHNlbGVjdGVkIHx8IGZvcmNlUmVuZGVyKSAmJiBjb250ZW50V3JhcHBlciAmJiBjaGlsZHJlbjtcblxuICAgIGNvbnN0IHRhYkl0ZW1TdHlsZSA9IGdldFRhYkl0ZW1TdHlsZSh3aXRoSWNvbk9ubHksIGRpc2FibGVkLCBzZWxlY3RlZCwgc2l6ZSwgaXNEcmFnZ2luZyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdlxuICAgICAgICByZWY9e2NvbnNvbGlkYXRlZFJlZn1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICB7Li4ubGlzdGVuZXJzfVxuICAgICAgICB7Li4uYXR0cmlidXRlc31cbiAgICAgICAgY3NzPXtbdGFiSXRlbVN0eWxlLndyYXBwZXIodGhlbWUpLCBzdHlsZXM/LndyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpXX1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICA+XG4gICAgICAgIHtpY29uICYmIChcbiAgICAgICAgICA8c3BhbiBjc3M9e1t0YWJJdGVtU3R5bGUuaWNvbldyYXBwZXIodGhlbWUpLCBzdHlsZXM/Lmljb25XcmFwcGVyPy4odGhlbWUsIHNlbGVjdGVkKV19PlxuICAgICAgICAgICAge2ljb259XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7IWljb25Pbmx5ICYmIGxhYmVsICYmIChcbiAgICAgICAgICA8c3BhbiBjc3M9e1t0YWJJdGVtU3R5bGUubGFiZWxXcmFwcGVyKHRoZW1lKSwgc3R5bGVzPy5sYWJlbFdyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpXX0+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7d2l0aENvbnRlbnQgJiZcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgIHRhYkl0ZW1TdHlsZS5jaGlsZHJlbldyYXBwZXIodGhlbWUpLFxuICAgICAgICAgICAgICAgIHN0eWxlcz8uY2hpbGRyZW5XcmFwcGVyPy4odGhlbWUsIHNlbGVjdGVkKSxcbiAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgY29udGVudFdyYXBwZXJcbiAgICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcbiJdfQ== */"], children: label }),
|
|
106
|
+
withContent && createPortal(/* @__PURE__ */ jsx("div", { css: [tabItemStyle.childrenWrapper(theme), (_d = styles == null ? void 0 : styles.childrenWrapper) == null ? void 0 : _d.call(styles, theme, selected), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUpjIiwiZmlsZSI6Ii9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBtZW1vLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZVJlZixcbiAgdHlwZSBGQyxcbiAgdHlwZSBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiSXRlbVByb3BzIH0gZnJvbSBcIi4vVGFiSXRlbS50eXBlc1wiO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBnZXRUYWJJdGVtU3R5bGUgfSBmcm9tIFwiLi9UYWJJdGVtLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZUluVmlldyB9IGZyb20gXCJyZWFjdC1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXJcIjtcblxuaW1wb3J0IHsgQ1NTIH0gZnJvbSBcIkBkbmQta2l0L3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgdXNlU29ydGFibGUgfSBmcm9tIFwiQGRuZC1raXQvc29ydGFibGVcIjtcbmltcG9ydCB7IGludGVyc2VjdGlvblRocmVzaG9sZCB9IGZyb20gXCJjb21wb25lbnRzL1RhYnMvVGFicy51dGlsc1wiO1xuXG5leHBvcnQgY29uc3QgVGFiSXRlbTogRkM8VGFiSXRlbVByb3BzPiA9IG1lbW8oXG4gICh7XG4gICAgaWNvbixcbiAgICBsYWJlbCxcbiAgICBpY29uT25seSxcbiAgICBkaXNhYmxlZCA9IGZhbHNlLFxuICAgIHNpemUgPSBcIm1pZGRsZVwiLFxuICAgIGl0ZW1LZXksXG4gICAgc2VsZWN0ZWQsXG4gICAgZm9yY2VSZW5kZXIsXG4gICAgY29udGVudFdyYXBwZXIsXG4gICAgY2hpbGRyZW4sXG4gICAgdGFiSXRlbXNSZWZzTWFwLFxuICAgIHN0eWxlcyxcbiAgICBjaGFuZ2VBY3RpdmVLZXksXG4gICAgYWRkSGlkZGVuVGFiLFxuICAgIGRlbGV0ZUhpZGRlblRhYixcbiAgICBzZXRDdXJyZW50VGFiRWxlbWVudCxcbiAgICBzY3JvbGxUb1RhYixcbiAgICBvbkNoYW5nZSxcbiAgICBvblRhYkNsaWNrLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGl0ZW1SZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IHsgcmVmLCBlbnRyeSB9ID0gdXNlSW5WaWV3KHsgdGhyZXNob2xkOiBpbnRlcnNlY3Rpb25UaHJlc2hvbGQgfSk7XG4gICAgY29uc3QgaW50ZXJzZWN0aW9uUmF0aW8gPSBlbnRyeT8uaW50ZXJzZWN0aW9uUmF0aW87XG4gICAgY29uc3QgaW5WaWV3ID0gaXNVbmRlZmluZWQoaW50ZXJzZWN0aW9uUmF0aW8pXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiBpbnRlcnNlY3Rpb25SYXRpbyA+PSBpbnRlcnNlY3Rpb25UaHJlc2hvbGQ7XG5cbiAgICBjb25zdCB7IGlzRHJhZ2dpbmcsIGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogaXRlbUtleSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICB0cmFuc2l0aW9uLFxuICAgIH07XG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGl0ZW1SZWYuY3VycmVudDtcblxuICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGFiSXRlbXNSZWZzTWFwLnNldChpdGVtS2V5LCBpdGVtKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGFiSXRlbXNSZWZzTWFwLmRlbGV0ZShpdGVtS2V5KTtcbiAgICAgIH07XG4gICAgfSwgW2l0ZW1LZXksIHRhYkl0ZW1zUmVmc01hcF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChpc1VuZGVmaW5lZChpblZpZXcpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICBkZWxldGVIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9XG4gICAgfSwgW2FkZEhpZGRlblRhYiwgZGVsZXRlSGlkZGVuVGFiLCBpblZpZXcsIGl0ZW1LZXldKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXNlbGVjdGVkIHx8IGlzVW5kZWZpbmVkKGl0ZW1SZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50VGFiRWxlbWVudChpdGVtUmVmLmN1cnJlbnQpO1xuXG4gICAgICBpZiAoaW5WaWV3KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsVG9UYWIoaXRlbVJlZi5jdXJyZW50KTtcbiAgICB9LCBbc2VsZWN0ZWRdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBvblRhYkNsaWNrPy4oaXRlbUtleSwgZSk7XG5cbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2U/LihpdGVtS2V5KTtcbiAgICAgICAgY2hhbmdlQWN0aXZlS2V5KGl0ZW1LZXkpO1xuICAgICAgfSxcbiAgICAgIFtjaGFuZ2VBY3RpdmVLZXksIGRpc2FibGVkLCBpdGVtS2V5LCBvbkNoYW5nZSwgb25UYWJDbGljaywgc2VsZWN0ZWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFJlZiA9IChub2RlOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIHJlZihub2RlKTtcbiAgICAgIGl0ZW1SZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBzZXROb2RlUmVmKG5vZGUpO1xuICAgIH07XG5cbiAgICBjb25zdCB3aXRoSWNvbk9ubHkgPSBpY29uT25seSB8fCBpc1VuZGVmaW5lZChsYWJlbCk7XG4gICAgY29uc3Qgd2l0aENvbnRlbnQgPSAoc2VsZWN0ZWQgfHwgZm9yY2VSZW5kZXIpICYmIGNvbnRlbnRXcmFwcGVyICYmIGNoaWxkcmVuO1xuXG4gICAgY29uc3QgdGFiSXRlbVN0eWxlID0gZ2V0VGFiSXRlbVN0eWxlKHdpdGhJY29uT25seSwgZGlzYWJsZWQsIHNlbGVjdGVkLCBzaXplLCBpc0RyYWdnaW5nKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17Y29uc29saWRhdGVkUmVmfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHsuLi5saXN0ZW5lcnN9XG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBjc3M9e1t0YWJJdGVtU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lLCBzZWxlY3RlZCldfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgID5cbiAgICAgICAge2ljb24gJiYgKFxuICAgICAgICAgIDxzcGFuIGNzcz17W3RhYkl0ZW1TdHlsZS5pY29uV3JhcHBlcih0aGVtZSksIHN0eWxlcz8uaWNvbldyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpXX0+XG4gICAgICAgICAgICB7aWNvbn1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIHshaWNvbk9ubHkgJiYgbGFiZWwgJiYgKFxuICAgICAgICAgIDxzcGFuIGNzcz17W3RhYkl0ZW1TdHlsZS5sYWJlbFdyYXBwZXIodGhlbWUpLCBzdHlsZXM/LmxhYmVsV3JhcHBlcj8uKHRoZW1lLCBzZWxlY3RlZCldfT5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIHt3aXRoQ29udGVudCAmJlxuICAgICAgICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgdGFiSXRlbVN0eWxlLmNoaWxkcmVuV3JhcHBlcih0aGVtZSksXG4gICAgICAgICAgICAgICAgc3R5bGVzPy5jaGlsZHJlbldyYXBwZXI/Lih0aGVtZSwgc2VsZWN0ZWQpLFxuICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBjb250ZW50V3JhcHBlclxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], children }), contentWrapper)
|
|
91
107
|
] });
|
|
92
108
|
});
|
|
93
109
|
export {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Interpolation } from '@emotion/react';
|
|
2
2
|
import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
|
|
3
|
+
import { useMoreTabsController } from 'components/Tabs/hooks/useMoreTabsController';
|
|
3
4
|
import { TabsSizeType } from 'components/Tabs/Tabs.types';
|
|
4
5
|
import { MouseEvent, ReactNode } from 'react';
|
|
5
6
|
import { Theme } from 'themes';
|
|
@@ -15,6 +16,7 @@ export interface TabItemProps extends Omit<TabItem, "key"> {
|
|
|
15
16
|
itemKey: DropdownItemKeyType;
|
|
16
17
|
selected: boolean;
|
|
17
18
|
contentWrapper: HTMLDivElement | null;
|
|
19
|
+
tabItemsRefsMap: ReturnType<typeof useMoreTabsController>["tabItemsRefsMap"];
|
|
18
20
|
changeActiveKey: (key: DropdownItemKeyType) => void;
|
|
19
21
|
addHiddenTab: (itemKey: DropdownItemKeyType) => void;
|
|
20
22
|
deleteHiddenTab: (itemKey: DropdownItemKeyType) => void;
|
|
@@ -2,7 +2,7 @@ import { MouseEvent } from 'react';
|
|
|
2
2
|
import { TabItem } from '../components/TabItem/TabItem.types';
|
|
3
3
|
import { DropdownItemKeyType, ItemType, MenuItem } from 'components/Dropdown/Dropdown.types';
|
|
4
4
|
export declare const useMoreTabsController: (items: TabItem[], currentActiveKey: DropdownItemKeyType | undefined, currentTabElement: HTMLElement | null, onTabClick: ((activeKey: DropdownItemKeyType, event: MouseEvent) => void) | undefined, onChange: ((activeKey: DropdownItemKeyType) => void) | undefined, changeActiveKey: (key: DropdownItemKeyType) => void) => {
|
|
5
|
-
tabsRef: import('react').
|
|
5
|
+
tabsRef: import('react').RefObject<HTMLDivElement>;
|
|
6
6
|
dropdownMenu: {
|
|
7
7
|
items: MenuItem[];
|
|
8
8
|
onClick: (props: {
|
|
@@ -14,4 +14,7 @@ export declare const useMoreTabsController: (items: TabItem[], currentActiveKey:
|
|
|
14
14
|
addHiddenTab: (itemKey: DropdownItemKeyType) => void;
|
|
15
15
|
deleteHiddenTab: (itemKey: DropdownItemKeyType) => void;
|
|
16
16
|
scrollToTab: (element: HTMLElement | null) => void;
|
|
17
|
+
updateHiddenTabs: () => void;
|
|
18
|
+
hasHiddenTabs: boolean;
|
|
19
|
+
tabItemsRefsMap: Map<DropdownItemKeyType, HTMLElement>;
|
|
17
20
|
};
|
|
@@ -1,18 +1,46 @@
|
|
|
1
|
-
import { useState, useRef, useCallback, useMemo } from "react";
|
|
1
|
+
import { useState, useRef, useCallback, useLayoutEffect, useMemo } from "react";
|
|
2
2
|
import { isMenuItem } from "../../Dropdown/Dropdown.types.js";
|
|
3
3
|
import { isFunction } from "lodash-es";
|
|
4
|
+
import { useStatic } from "../../../hooks/useStatic/useStatic.js";
|
|
5
|
+
import { getIntersectionRatio, intersectionThreshold } from "../Tabs.utils.js";
|
|
4
6
|
const useMoreTabsController = (items, currentActiveKey, currentTabElement, onTabClick, onChange, changeActiveKey) => {
|
|
5
|
-
const [hiddenTabs, setHiddenTabs] = useState(
|
|
7
|
+
const [hiddenTabs, setHiddenTabs] = useState(() => /* @__PURE__ */ new Set());
|
|
6
8
|
const tabsRef = useRef(null);
|
|
9
|
+
const tabItemsRefsMap = useStatic(() => /* @__PURE__ */ new Map());
|
|
10
|
+
const updateHiddenTabs = useCallback(() => {
|
|
11
|
+
const tabs = tabsRef.current;
|
|
12
|
+
if (!tabs) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const tabsRect = tabs.getBoundingClientRect();
|
|
16
|
+
const updatedHiddenTabs = /* @__PURE__ */ new Set();
|
|
17
|
+
tabItemsRefsMap.forEach((tabItem, tabItemKey) => {
|
|
18
|
+
const tabItemRect = tabItem.getBoundingClientRect();
|
|
19
|
+
const intersectionRatio = getIntersectionRatio(tabItemRect, tabsRect);
|
|
20
|
+
if (intersectionRatio < intersectionThreshold) {
|
|
21
|
+
updatedHiddenTabs.add(tabItemKey);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
if (updatedHiddenTabs.size) {
|
|
25
|
+
setHiddenTabs(updatedHiddenTabs);
|
|
26
|
+
}
|
|
27
|
+
}, [tabItemsRefsMap]);
|
|
28
|
+
useLayoutEffect(() => {
|
|
29
|
+
updateHiddenTabs();
|
|
30
|
+
}, [updateHiddenTabs]);
|
|
7
31
|
const addHiddenTab = useCallback((itemKey) => {
|
|
8
|
-
setHiddenTabs((prev) =>
|
|
32
|
+
setHiddenTabs((prev) => new Set(prev).add(itemKey));
|
|
9
33
|
}, []);
|
|
10
34
|
const deleteHiddenTab = useCallback((itemKey) => {
|
|
11
|
-
setHiddenTabs((prev) =>
|
|
35
|
+
setHiddenTabs((prev) => {
|
|
36
|
+
const next = new Set(prev);
|
|
37
|
+
next.delete(itemKey);
|
|
38
|
+
return next;
|
|
39
|
+
});
|
|
12
40
|
}, []);
|
|
13
41
|
const dropdownItems = useMemo(() => {
|
|
14
42
|
return items.reduce((acc, item) => {
|
|
15
|
-
if (!hiddenTabs.
|
|
43
|
+
if (!hiddenTabs.has(item.key)) {
|
|
16
44
|
return acc;
|
|
17
45
|
}
|
|
18
46
|
const dropdownItem = {
|
|
@@ -61,7 +89,10 @@ const useMoreTabsController = (items, currentActiveKey, currentTabElement, onTab
|
|
|
61
89
|
dropdownMenu,
|
|
62
90
|
addHiddenTab,
|
|
63
91
|
deleteHiddenTab,
|
|
64
|
-
scrollToTab
|
|
92
|
+
scrollToTab,
|
|
93
|
+
updateHiddenTabs,
|
|
94
|
+
hasHiddenTabs: Boolean(hiddenTabs.size),
|
|
95
|
+
tabItemsRefsMap
|
|
65
96
|
};
|
|
66
97
|
};
|
|
67
98
|
export {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { TabItem } from '../components/TabItem/TabItem.types';
|
|
2
2
|
import { DragEndEvent } from '@dnd-kit/core';
|
|
3
|
-
import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
|
|
4
3
|
export declare const useTabsDndController: (items: TabItem[], draggable: boolean) => {
|
|
5
|
-
tabsOrder: DropdownItemKeyType[];
|
|
4
|
+
tabsOrder: import('../../Dropdown/Dropdown.types').DropdownItemKeyType[];
|
|
6
5
|
isDragging: boolean;
|
|
7
6
|
dndEvents: {
|
|
8
7
|
onDragStart: () => void;
|
|
@@ -2,13 +2,16 @@ import { useState, useRef, useEffect, useCallback } from "react";
|
|
|
2
2
|
import { arrayMove } from "@dnd-kit/sortable";
|
|
3
3
|
import { getTabKeysWithoutOrdering, getOrderedTabKeys } from "../Tabs.utils.js";
|
|
4
4
|
const useTabsDndController = (items, draggable) => {
|
|
5
|
-
const [tabsOrder, setTabsOrder] = useState(
|
|
5
|
+
const [tabsOrder, setTabsOrder] = useState(() => getTabKeysWithoutOrdering(items));
|
|
6
6
|
const [isDragging, setIsDragging] = useState(false);
|
|
7
|
-
const
|
|
7
|
+
const isInitialMountRef = useRef(true);
|
|
8
8
|
useEffect(() => {
|
|
9
|
+
if (isInitialMountRef.current) {
|
|
10
|
+
isInitialMountRef.current = false;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
9
13
|
const newTabKeys = getTabKeysWithoutOrdering(items);
|
|
10
|
-
if (!draggable
|
|
11
|
-
isInitialMount.current = false;
|
|
14
|
+
if (!draggable) {
|
|
12
15
|
setTabsOrder(newTabKeys);
|
|
13
16
|
return;
|
|
14
17
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { EventCallback, EventMap } from './types';
|
|
1
|
+
import { EventCallback, EventMap, Subscribers } from './types';
|
|
2
2
|
export declare class EventBus<EM extends EventMap> {
|
|
3
3
|
private subscribers;
|
|
4
4
|
on<K extends keyof EM>(event: K, callback: EventCallback<EM[K]>): () => void;
|
|
5
5
|
off<K extends keyof EM>(event: K, callback: EventCallback<EM[K]>): void;
|
|
6
6
|
emit<K extends keyof EM>(event: K, payload: EM[K]): void;
|
|
7
7
|
subscriberCount<K extends keyof EM>(event: K): number;
|
|
8
|
+
getSubscribers(): Subscribers<EM>;
|
|
8
9
|
clearEvent<K extends keyof EM>(event: K): void;
|
|
9
10
|
clearAll(): void;
|
|
10
11
|
}
|