@infomaximum/ui-kit 0.10.2 → 0.11.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.
- package/dist/components/Avatar/Avatar.types.d.ts +2 -1
- package/dist/components/Avatar/Avatar.utils.d.ts +1 -0
- package/dist/components/Avatar/Avatar.utils.js +4 -0
- package/dist/components/Avatar/index.d.ts +2 -1
- package/dist/components/Dropdown/Dropdown.js +1 -0
- package/dist/components/Dropdown/Dropdown.types.d.ts +0 -1
- package/dist/components/Dropdown/Dropdown.utils.d.ts +1 -1
- package/dist/components/Dropdown/Dropdown.utils.js +1 -2
- package/dist/components/Dropdown/components/Group/Group.js +5 -7
- package/dist/components/Dropdown/components/Menu/Menu.js +4 -6
- package/dist/components/Dropdown/hooks/useSelectedKeysController.d.ts +2 -1
- package/dist/components/Dropdown/hooks/useSelectedKeysController.js +2 -1
- package/dist/components/InternalPicker/pickers/RangePicker/RangePicker.js +2 -2
- package/dist/components/InternalPicker/pickers/SinglePicker/SinglePicker.js +2 -2
- package/dist/components/InternalPicker/pickers/SinglePicker/SinglePicker.utils.d.ts +1 -0
- package/dist/components/InternalPicker/pickers/SinglePicker/SinglePicker.utils.js +3 -1
- package/dist/components/Tabs/Tabs.d.ts +3 -0
- package/dist/components/Tabs/Tabs.js +60 -0
- package/dist/components/Tabs/Tabs.styles.d.ts +6 -0
- package/dist/components/Tabs/Tabs.styles.js +9 -0
- package/dist/components/Tabs/Tabs.tokens.d.ts +14 -0
- package/dist/components/Tabs/Tabs.tokens.js +15 -0
- package/dist/components/Tabs/Tabs.types.d.ts +28 -0
- package/dist/components/Tabs/components/TabBar/TabBar.d.ts +3 -0
- package/dist/components/Tabs/components/TabBar/TabBar.js +88 -0
- package/dist/components/Tabs/components/TabBar/TabBar.styles.d.ts +46 -0
- package/dist/components/Tabs/components/TabBar/TabBar.styles.js +70 -0
- package/dist/components/Tabs/components/TabBar/TabBar.types.d.ts +14 -0
- package/dist/components/Tabs/components/TabItem/TabItem.d.ts +3 -0
- package/dist/components/Tabs/components/TabItem/TabItem.js +94 -0
- package/dist/components/Tabs/components/TabItem/TabItem.styles.d.ts +42 -0
- package/dist/components/Tabs/components/TabItem/TabItem.styles.js +69 -0
- package/dist/components/Tabs/components/TabItem/TabItem.types.d.ts +32 -0
- package/dist/components/Tabs/forStories/items.d.ts +50 -0
- package/dist/components/Tabs/hooks/useMoreTabsController.d.ts +17 -0
- package/dist/components/Tabs/hooks/useMoreTabsController.js +68 -0
- package/dist/components/Tabs/hooks/useTabsDndController.d.ts +10 -0
- package/dist/components/Tabs/hooks/useTabsDndController.js +36 -0
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -0
- package/package.json +10 -3
- package/dist/docComponents/Demonstration/Demonstration.d.ts +0 -4
- package/dist/docComponents/Demonstration/Demonstration.styles.d.ts +0 -9
- package/dist/docComponents/Demonstration/Demonstration.types.d.ts +0 -5
- package/dist/docComponents/Description/Description.d.ts +0 -5
- package/dist/docComponents/Description/Description.style.d.ts +0 -26
- package/dist/docComponents/Doc/Doc.d.ts +0 -4
- package/dist/docComponents/Doc/Doc.style.d.ts +0 -13
- package/dist/docComponents/Example/Example.d.ts +0 -4
- package/dist/docComponents/Example/Example.styles.d.ts +0 -9
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { createElement } from "@emotion/react";
|
|
3
|
+
import { memo, useState, useRef, useMemo } from "react";
|
|
4
|
+
import { TabItem } from "../TabItem/TabItem.js";
|
|
5
|
+
import { getTabBarStyle } from "./TabBar.styles.js";
|
|
6
|
+
import { EllipsisOutlined } from "@infomaximum/icons";
|
|
7
|
+
import { isFunction, isUndefined } from "lodash-es";
|
|
8
|
+
import { useSensor, PointerSensor, DndContext, closestCenter } from "@dnd-kit/core";
|
|
9
|
+
import { SortableContext, horizontalListSortingStrategy } from "@dnd-kit/sortable";
|
|
10
|
+
import { useTabsDndController } from "../../hooks/useTabsDndController.js";
|
|
11
|
+
import { useMoreTabsController } from "../../hooks/useMoreTabsController.js";
|
|
12
|
+
import { useTheme } from "../../../../hooks/useTheme/useTheme.js";
|
|
13
|
+
import { Dropdown } from "../../../Dropdown/Dropdown.js";
|
|
14
|
+
const TabBar = memo(({
|
|
15
|
+
items = [],
|
|
16
|
+
iconOnly = false,
|
|
17
|
+
draggable = false,
|
|
18
|
+
size = "middle",
|
|
19
|
+
border = true,
|
|
20
|
+
currentActiveKey,
|
|
21
|
+
contentWrapper,
|
|
22
|
+
extra,
|
|
23
|
+
more,
|
|
24
|
+
popupClassName,
|
|
25
|
+
styles,
|
|
26
|
+
changeActiveKey,
|
|
27
|
+
onChange,
|
|
28
|
+
onTabClick,
|
|
29
|
+
onTabScroll
|
|
30
|
+
}) => {
|
|
31
|
+
var _a;
|
|
32
|
+
const theme = useTheme();
|
|
33
|
+
const [currentTabElement, setCurrentTabElement] = useState(null);
|
|
34
|
+
const prevScrollPosition = useRef(0);
|
|
35
|
+
const itemsMap = useMemo(() => new Map(items.map((item) => [item.key, item])), [items]);
|
|
36
|
+
const {
|
|
37
|
+
tabsOrder,
|
|
38
|
+
isDragging,
|
|
39
|
+
dndEvents
|
|
40
|
+
} = useTabsDndController(items);
|
|
41
|
+
const {
|
|
42
|
+
tabsRef,
|
|
43
|
+
dropdownMenu,
|
|
44
|
+
addHiddenTab,
|
|
45
|
+
deleteHiddenTab,
|
|
46
|
+
scrollToTab
|
|
47
|
+
} = useMoreTabsController(items, currentActiveKey, currentTabElement, onTabClick, onChange, changeActiveKey);
|
|
48
|
+
const handleScroll = () => {
|
|
49
|
+
if (tabsRef.current && isFunction(onTabScroll)) {
|
|
50
|
+
const scrollPosition = tabsRef.current.scrollLeft;
|
|
51
|
+
const scrollDirection = scrollPosition > prevScrollPosition.current ? "right" : "left";
|
|
52
|
+
onTabScroll(scrollDirection);
|
|
53
|
+
prevScrollPosition.current = scrollPosition;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const sensor = useSensor(PointerSensor, {
|
|
57
|
+
activationConstraint: {
|
|
58
|
+
distance: 10
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
const tabBarStyle = getTabBarStyle(size, border, iconOnly, isDragging);
|
|
62
|
+
const renderTabs = () => {
|
|
63
|
+
return tabsOrder.map((key) => {
|
|
64
|
+
const item = itemsMap.get(key);
|
|
65
|
+
if (isUndefined(item)) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return /* @__PURE__ */ createElement(TabItem, { ...item, itemKey: item.key, iconOnly, size, selected: currentActiveKey === item.key, changeActiveKey, addHiddenTab, deleteHiddenTab, setCurrentTabElement, scrollToTab, contentWrapper, key: item.key, styles: styles == null ? void 0 : styles.tabItem, onChange, onTabClick });
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
const renderTabsContainer = () => {
|
|
72
|
+
var _a2;
|
|
73
|
+
return /* @__PURE__ */ jsx("div", { ref: tabsRef, onScroll: handleScroll, css: [tabBarStyle.tabs(theme), (_a2 = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _a2.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:renderTabsContainer;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkJhci9UYWJCYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlHVSIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJCYXIvVGFiQmFyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHR5cGUgRkMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiQmFyUHJvcHMgfSBmcm9tIFwiLi9UYWJCYXIudHlwZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBUYWJJdGVtIH0gZnJvbSBcIi4uL1RhYkl0ZW0vVGFiSXRlbVwiO1xuaW1wb3J0IHsgZ2V0VGFiQmFyU3R5bGUgfSBmcm9tIFwiLi9UYWJCYXIuc3R5bGVzXCI7XG5pbXBvcnQgeyBEcm9wZG93biB9IGZyb20gXCJjb21wb25lbnRzL0Ryb3Bkb3duXCI7XG5pbXBvcnQgeyBFbGxpcHNpc091dGxpbmVkIH0gZnJvbSBcIkBpbmZvbWF4aW11bS9pY29uc1wiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBjbG9zZXN0Q2VudGVyLCBEbmRDb250ZXh0LCBQb2ludGVyU2Vuc29yLCB1c2VTZW5zb3IgfSBmcm9tIFwiQGRuZC1raXQvY29yZVwiO1xuaW1wb3J0IHsgaG9yaXpvbnRhbExpc3RTb3J0aW5nU3RyYXRlZ3ksIFNvcnRhYmxlQ29udGV4dCB9IGZyb20gXCJAZG5kLWtpdC9zb3J0YWJsZVwiO1xuaW1wb3J0IHsgdXNlVGFic0RuZENvbnRyb2xsZXIgfSBmcm9tIFwiY29tcG9uZW50cy9UYWJzL2hvb2tzL3VzZVRhYnNEbmRDb250cm9sbGVyXCI7XG5pbXBvcnQgeyB1c2VNb3JlVGFic0NvbnRyb2xsZXIgfSBmcm9tIFwiY29tcG9uZW50cy9UYWJzL2hvb2tzL3VzZU1vcmVUYWJzQ29udHJvbGxlclwiO1xuXG5leHBvcnQgY29uc3QgVGFiQmFyOiBGQzxUYWJCYXJQcm9wcz4gPSBtZW1vKFxuICAoe1xuICAgIGl0ZW1zID0gW10sXG4gICAgaWNvbk9ubHkgPSBmYWxzZSxcbiAgICBkcmFnZ2FibGUgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBib3JkZXIgPSB0cnVlLFxuICAgIGN1cnJlbnRBY3RpdmVLZXksXG4gICAgY29udGVudFdyYXBwZXIsXG4gICAgZXh0cmEsXG4gICAgbW9yZSxcbiAgICBwb3B1cENsYXNzTmFtZSxcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIG9uQ2hhbmdlLFxuICAgIG9uVGFiQ2xpY2ssXG4gICAgb25UYWJTY3JvbGwsXG4gIH0pID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cbiAgICBjb25zdCBbY3VycmVudFRhYkVsZW1lbnQsIHNldEN1cnJlbnRUYWJFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgcHJldlNjcm9sbFBvc2l0aW9uID0gdXNlUmVmKDApO1xuXG4gICAgY29uc3QgaXRlbXNNYXAgPSB1c2VNZW1vKCgpID0+IG5ldyBNYXAoaXRlbXMubWFwKChpdGVtKSA9PiBbaXRlbS5rZXksIGl0ZW1dKSksIFtpdGVtc10pO1xuICAgIGNvbnN0IHsgdGFic09yZGVyLCBpc0RyYWdnaW5nLCBkbmRFdmVudHMgfSA9IHVzZVRhYnNEbmRDb250cm9sbGVyKGl0ZW1zKTtcbiAgICBjb25zdCB7IHRhYnNSZWYsIGRyb3Bkb3duTWVudSwgYWRkSGlkZGVuVGFiLCBkZWxldGVIaWRkZW5UYWIsIHNjcm9sbFRvVGFiIH0gPVxuICAgICAgdXNlTW9yZVRhYnNDb250cm9sbGVyKFxuICAgICAgICBpdGVtcyxcbiAgICAgICAgY3VycmVudEFjdGl2ZUtleSxcbiAgICAgICAgY3VycmVudFRhYkVsZW1lbnQsXG4gICAgICAgIG9uVGFiQ2xpY2ssXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICBjaGFuZ2VBY3RpdmVLZXlcbiAgICAgICk7XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAodGFic1JlZi5jdXJyZW50ICYmIGlzRnVuY3Rpb24ob25UYWJTY3JvbGwpKSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gdGFic1JlZi5jdXJyZW50LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbERpcmVjdGlvbiA9IHNjcm9sbFBvc2l0aW9uID4gcHJldlNjcm9sbFBvc2l0aW9uLmN1cnJlbnQgPyBcInJpZ2h0XCIgOiBcImxlZnRcIjtcbiAgICAgICAgb25UYWJTY3JvbGwoc2Nyb2xsRGlyZWN0aW9uKTtcblxuICAgICAgICBwcmV2U2Nyb2xsUG9zaXRpb24uY3VycmVudCA9IHNjcm9sbFBvc2l0aW9uO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZW5zb3IgPSB1c2VTZW5zb3IoUG9pbnRlclNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludDogeyBkaXN0YW5jZTogMTAgfSB9KTtcblxuICAgIGNvbnN0IHRhYkJhclN0eWxlID0gZ2V0VGFiQmFyU3R5bGUoc2l6ZSwgYm9yZGVyLCBpY29uT25seSwgaXNEcmFnZ2luZyk7XG5cbiAgICBjb25zdCByZW5kZXJUYWJzID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYnNPcmRlci5tYXAoKGtleSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNNYXAuZ2V0KGtleSk7XG5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGl0ZW0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxUYWJJdGVtXG4gICAgICAgICAgICB7Li4uaXRlbX1cbiAgICAgICAgICAgIGl0ZW1LZXk9e2l0ZW0ua2V5fVxuICAgICAgICAgICAgaWNvbk9ubHk9e2ljb25Pbmx5fVxuICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgIHNlbGVjdGVkPXtjdXJyZW50QWN0aXZlS2V5ID09PSBpdGVtLmtleX1cbiAgICAgICAgICAgIGNoYW5nZUFjdGl2ZUtleT17Y2hhbmdlQWN0aXZlS2V5fVxuICAgICAgICAgICAgYWRkSGlkZGVuVGFiPXthZGRIaWRkZW5UYWJ9XG4gICAgICAgICAgICBkZWxldGVIaWRkZW5UYWI9e2RlbGV0ZUhpZGRlblRhYn1cbiAgICAgICAgICAgIHNldEN1cnJlbnRUYWJFbGVtZW50PXtzZXRDdXJyZW50VGFiRWxlbWVudH1cbiAgICAgICAgICAgIHNjcm9sbFRvVGFiPXtzY3JvbGxUb1RhYn1cbiAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyPXtjb250ZW50V3JhcHBlcn1cbiAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICBzdHlsZXM9e3N0eWxlcz8udGFiSXRlbX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIG9uVGFiQ2xpY2s9e29uVGFiQ2xpY2t9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJUYWJzQ29udGFpbmVyID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIHJlZj17dGFic1JlZn1cbiAgICAgICAgICBvblNjcm9sbD17aGFuZGxlU2Nyb2xsfVxuICAgICAgICAgIGNzcz17W3RhYkJhclN0eWxlLnRhYnModGhlbWUpLCBzdHlsZXM/LndyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICA+XG4gICAgICAgICAge3JlbmRlclRhYnMoKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJEbmRUYWJzID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERuZENvbnRleHQgc2Vuc29ycz17W3NlbnNvcl19IHsuLi5kbmRFdmVudHN9IGNvbGxpc2lvbkRldGVjdGlvbj17Y2xvc2VzdENlbnRlcn0+XG4gICAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17dGFic09yZGVyfSBzdHJhdGVneT17aG9yaXpvbnRhbExpc3RTb3J0aW5nU3RyYXRlZ3l9PlxuICAgICAgICAgICAge3JlbmRlclRhYnNDb250YWluZXIoKX1cbiAgICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgICAgPC9EbmRDb250ZXh0PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY3NzPXtbdGFiQmFyU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19PlxuICAgICAgICA8ZGl2IGNzcz17dGFiQmFyU3R5bGUuY29udGVudCgpfT5cbiAgICAgICAgICB7ZHJhZ2dhYmxlID8gcmVuZGVyRG5kVGFicygpIDogcmVuZGVyVGFic0NvbnRhaW5lcigpfVxuICAgICAgICAgIHtkcm9wZG93bk1lbnUuaXRlbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNzcz17dGFiQmFyU3R5bGUubW9yZSh0aGVtZSl9PlxuICAgICAgICAgICAgICA8RHJvcGRvd24gey4uLm1vcmV9IG1lbnU9e2Ryb3Bkb3duTWVudX0gY2xhc3NOYW1lPXtwb3B1cENsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgPEVsbGlwc2lzT3V0bGluZWQgLz5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtleHRyYX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG4iXX0= */"], children: renderTabs() });
|
|
74
|
+
};
|
|
75
|
+
const renderDndTabs = () => {
|
|
76
|
+
return /* @__PURE__ */ jsx(DndContext, { sensors: [sensor], ...dndEvents, collisionDetection: closestCenter, children: /* @__PURE__ */ jsx(SortableContext, { items: tabsOrder, strategy: horizontalListSortingStrategy, children: renderTabsContainer() }) });
|
|
77
|
+
};
|
|
78
|
+
return /* @__PURE__ */ jsxs("div", { css: [tabBarStyle.wrapper(theme), (_a = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _a.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:TabBar;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkJhci9UYWJCYXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1IVyIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJCYXIvVGFiQmFyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUsIHR5cGUgRkMgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiQmFyUHJvcHMgfSBmcm9tIFwiLi9UYWJCYXIudHlwZXNcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcImhvb2tzL3VzZVRoZW1lXCI7XG5pbXBvcnQgeyBUYWJJdGVtIH0gZnJvbSBcIi4uL1RhYkl0ZW0vVGFiSXRlbVwiO1xuaW1wb3J0IHsgZ2V0VGFiQmFyU3R5bGUgfSBmcm9tIFwiLi9UYWJCYXIuc3R5bGVzXCI7XG5pbXBvcnQgeyBEcm9wZG93biB9IGZyb20gXCJjb21wb25lbnRzL0Ryb3Bkb3duXCI7XG5pbXBvcnQgeyBFbGxpcHNpc091dGxpbmVkIH0gZnJvbSBcIkBpbmZvbWF4aW11bS9pY29uc1wiO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBjbG9zZXN0Q2VudGVyLCBEbmRDb250ZXh0LCBQb2ludGVyU2Vuc29yLCB1c2VTZW5zb3IgfSBmcm9tIFwiQGRuZC1raXQvY29yZVwiO1xuaW1wb3J0IHsgaG9yaXpvbnRhbExpc3RTb3J0aW5nU3RyYXRlZ3ksIFNvcnRhYmxlQ29udGV4dCB9IGZyb20gXCJAZG5kLWtpdC9zb3J0YWJsZVwiO1xuaW1wb3J0IHsgdXNlVGFic0RuZENvbnRyb2xsZXIgfSBmcm9tIFwiY29tcG9uZW50cy9UYWJzL2hvb2tzL3VzZVRhYnNEbmRDb250cm9sbGVyXCI7XG5pbXBvcnQgeyB1c2VNb3JlVGFic0NvbnRyb2xsZXIgfSBmcm9tIFwiY29tcG9uZW50cy9UYWJzL2hvb2tzL3VzZU1vcmVUYWJzQ29udHJvbGxlclwiO1xuXG5leHBvcnQgY29uc3QgVGFiQmFyOiBGQzxUYWJCYXJQcm9wcz4gPSBtZW1vKFxuICAoe1xuICAgIGl0ZW1zID0gW10sXG4gICAgaWNvbk9ubHkgPSBmYWxzZSxcbiAgICBkcmFnZ2FibGUgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBib3JkZXIgPSB0cnVlLFxuICAgIGN1cnJlbnRBY3RpdmVLZXksXG4gICAgY29udGVudFdyYXBwZXIsXG4gICAgZXh0cmEsXG4gICAgbW9yZSxcbiAgICBwb3B1cENsYXNzTmFtZSxcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIG9uQ2hhbmdlLFxuICAgIG9uVGFiQ2xpY2ssXG4gICAgb25UYWJTY3JvbGwsXG4gIH0pID0+IHtcbiAgICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cbiAgICBjb25zdCBbY3VycmVudFRhYkVsZW1lbnQsIHNldEN1cnJlbnRUYWJFbGVtZW50XSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgcHJldlNjcm9sbFBvc2l0aW9uID0gdXNlUmVmKDApO1xuXG4gICAgY29uc3QgaXRlbXNNYXAgPSB1c2VNZW1vKCgpID0+IG5ldyBNYXAoaXRlbXMubWFwKChpdGVtKSA9PiBbaXRlbS5rZXksIGl0ZW1dKSksIFtpdGVtc10pO1xuICAgIGNvbnN0IHsgdGFic09yZGVyLCBpc0RyYWdnaW5nLCBkbmRFdmVudHMgfSA9IHVzZVRhYnNEbmRDb250cm9sbGVyKGl0ZW1zKTtcbiAgICBjb25zdCB7IHRhYnNSZWYsIGRyb3Bkb3duTWVudSwgYWRkSGlkZGVuVGFiLCBkZWxldGVIaWRkZW5UYWIsIHNjcm9sbFRvVGFiIH0gPVxuICAgICAgdXNlTW9yZVRhYnNDb250cm9sbGVyKFxuICAgICAgICBpdGVtcyxcbiAgICAgICAgY3VycmVudEFjdGl2ZUtleSxcbiAgICAgICAgY3VycmVudFRhYkVsZW1lbnQsXG4gICAgICAgIG9uVGFiQ2xpY2ssXG4gICAgICAgIG9uQ2hhbmdlLFxuICAgICAgICBjaGFuZ2VBY3RpdmVLZXlcbiAgICAgICk7XG5cbiAgICBjb25zdCBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgICBpZiAodGFic1JlZi5jdXJyZW50ICYmIGlzRnVuY3Rpb24ob25UYWJTY3JvbGwpKSB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gdGFic1JlZi5jdXJyZW50LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNjcm9sbERpcmVjdGlvbiA9IHNjcm9sbFBvc2l0aW9uID4gcHJldlNjcm9sbFBvc2l0aW9uLmN1cnJlbnQgPyBcInJpZ2h0XCIgOiBcImxlZnRcIjtcbiAgICAgICAgb25UYWJTY3JvbGwoc2Nyb2xsRGlyZWN0aW9uKTtcblxuICAgICAgICBwcmV2U2Nyb2xsUG9zaXRpb24uY3VycmVudCA9IHNjcm9sbFBvc2l0aW9uO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZW5zb3IgPSB1c2VTZW5zb3IoUG9pbnRlclNlbnNvciwgeyBhY3RpdmF0aW9uQ29uc3RyYWludDogeyBkaXN0YW5jZTogMTAgfSB9KTtcblxuICAgIGNvbnN0IHRhYkJhclN0eWxlID0gZ2V0VGFiQmFyU3R5bGUoc2l6ZSwgYm9yZGVyLCBpY29uT25seSwgaXNEcmFnZ2luZyk7XG5cbiAgICBjb25zdCByZW5kZXJUYWJzID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRhYnNPcmRlci5tYXAoKGtleSkgPT4ge1xuICAgICAgICBjb25zdCBpdGVtID0gaXRlbXNNYXAuZ2V0KGtleSk7XG5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGl0ZW0pKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxUYWJJdGVtXG4gICAgICAgICAgICB7Li4uaXRlbX1cbiAgICAgICAgICAgIGl0ZW1LZXk9e2l0ZW0ua2V5fVxuICAgICAgICAgICAgaWNvbk9ubHk9e2ljb25Pbmx5fVxuICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgIHNlbGVjdGVkPXtjdXJyZW50QWN0aXZlS2V5ID09PSBpdGVtLmtleX1cbiAgICAgICAgICAgIGNoYW5nZUFjdGl2ZUtleT17Y2hhbmdlQWN0aXZlS2V5fVxuICAgICAgICAgICAgYWRkSGlkZGVuVGFiPXthZGRIaWRkZW5UYWJ9XG4gICAgICAgICAgICBkZWxldGVIaWRkZW5UYWI9e2RlbGV0ZUhpZGRlblRhYn1cbiAgICAgICAgICAgIHNldEN1cnJlbnRUYWJFbGVtZW50PXtzZXRDdXJyZW50VGFiRWxlbWVudH1cbiAgICAgICAgICAgIHNjcm9sbFRvVGFiPXtzY3JvbGxUb1RhYn1cbiAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyPXtjb250ZW50V3JhcHBlcn1cbiAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICBzdHlsZXM9e3N0eWxlcz8udGFiSXRlbX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIG9uVGFiQ2xpY2s9e29uVGFiQ2xpY2t9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJUYWJzQ29udGFpbmVyID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIHJlZj17dGFic1JlZn1cbiAgICAgICAgICBvblNjcm9sbD17aGFuZGxlU2Nyb2xsfVxuICAgICAgICAgIGNzcz17W3RhYkJhclN0eWxlLnRhYnModGhlbWUpLCBzdHlsZXM/LndyYXBwZXI/Lih0aGVtZSldfVxuICAgICAgICA+XG4gICAgICAgICAge3JlbmRlclRhYnMoKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJEbmRUYWJzID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERuZENvbnRleHQgc2Vuc29ycz17W3NlbnNvcl19IHsuLi5kbmRFdmVudHN9IGNvbGxpc2lvbkRldGVjdGlvbj17Y2xvc2VzdENlbnRlcn0+XG4gICAgICAgICAgPFNvcnRhYmxlQ29udGV4dCBpdGVtcz17dGFic09yZGVyfSBzdHJhdGVneT17aG9yaXpvbnRhbExpc3RTb3J0aW5nU3RyYXRlZ3l9PlxuICAgICAgICAgICAge3JlbmRlclRhYnNDb250YWluZXIoKX1cbiAgICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgICAgPC9EbmRDb250ZXh0PlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY3NzPXtbdGFiQmFyU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19PlxuICAgICAgICA8ZGl2IGNzcz17dGFiQmFyU3R5bGUuY29udGVudCgpfT5cbiAgICAgICAgICB7ZHJhZ2dhYmxlID8gcmVuZGVyRG5kVGFicygpIDogcmVuZGVyVGFic0NvbnRhaW5lcigpfVxuICAgICAgICAgIHtkcm9wZG93bk1lbnUuaXRlbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICA8ZGl2IGNzcz17dGFiQmFyU3R5bGUubW9yZSh0aGVtZSl9PlxuICAgICAgICAgICAgICA8RHJvcGRvd24gey4uLm1vcmV9IG1lbnU9e2Ryb3Bkb3duTWVudX0gY2xhc3NOYW1lPXtwb3B1cENsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgPEVsbGlwc2lzT3V0bGluZWQgLz5cbiAgICAgICAgICAgICAgPC9Ecm9wZG93bj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIHtleHRyYX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG4iXX0= */"], children: [
|
|
79
|
+
/* @__PURE__ */ jsxs("div", { css: tabBarStyle.content(), children: [
|
|
80
|
+
draggable ? renderDndTabs() : renderTabsContainer(),
|
|
81
|
+
dropdownMenu.items.length > 0 && /* @__PURE__ */ jsx("div", { css: tabBarStyle.more(theme), children: /* @__PURE__ */ jsx(Dropdown, { ...more, menu: dropdownMenu, className: popupClassName, children: /* @__PURE__ */ jsx(EllipsisOutlined, {}) }) })
|
|
82
|
+
] }),
|
|
83
|
+
extra
|
|
84
|
+
] });
|
|
85
|
+
});
|
|
86
|
+
export {
|
|
87
|
+
TabBar
|
|
88
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TabsSizeType } from 'components/Tabs/Tabs.types';
|
|
2
|
+
import { Theme } from 'themes';
|
|
3
|
+
export declare const getTabBarStyle: (size: TabsSizeType, border: boolean, iconOnly: boolean, isDragging: boolean) => {
|
|
4
|
+
wrapper: (theme: Theme) => {
|
|
5
|
+
readonly position: "relative";
|
|
6
|
+
readonly display: "flex";
|
|
7
|
+
readonly gap: number;
|
|
8
|
+
readonly flex: "1 1 auto";
|
|
9
|
+
readonly alignItems: "center";
|
|
10
|
+
readonly "::before": {
|
|
11
|
+
readonly content: "unset" | "''";
|
|
12
|
+
readonly position: "absolute";
|
|
13
|
+
readonly width: "100%";
|
|
14
|
+
readonly borderBottom: "1px solid #D9D9D9";
|
|
15
|
+
readonly bottom: 0;
|
|
16
|
+
readonly zIndex: 0;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
content: () => {
|
|
20
|
+
readonly display: "flex";
|
|
21
|
+
readonly flex: "1 1 auto";
|
|
22
|
+
readonly overflowX: "hidden";
|
|
23
|
+
};
|
|
24
|
+
tabs: (theme: Theme) => {
|
|
25
|
+
readonly display: "flex";
|
|
26
|
+
readonly gap: number;
|
|
27
|
+
readonly flex: "1 1 auto";
|
|
28
|
+
readonly zIndex: 1;
|
|
29
|
+
readonly overflowY: "hidden";
|
|
30
|
+
readonly overflowX: "hidden" | "scroll";
|
|
31
|
+
readonly "::-webkit-scrollbar": {
|
|
32
|
+
readonly display: "none";
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
more: (theme: Theme) => {
|
|
36
|
+
height: number;
|
|
37
|
+
width: number;
|
|
38
|
+
display: string;
|
|
39
|
+
alignItems: string;
|
|
40
|
+
justifyContent: string;
|
|
41
|
+
flex: string;
|
|
42
|
+
svg: {
|
|
43
|
+
cursor: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { getTabsTokens } from "../../Tabs.tokens.js";
|
|
2
|
+
const getTabsGap = (tabsTokens, iconOnly, isMiddleSize) => {
|
|
3
|
+
if (iconOnly) {
|
|
4
|
+
return 0;
|
|
5
|
+
}
|
|
6
|
+
if (isMiddleSize) {
|
|
7
|
+
return tabsTokens.tabsGapM;
|
|
8
|
+
}
|
|
9
|
+
return tabsTokens.tabsGapS;
|
|
10
|
+
};
|
|
11
|
+
const getTabBarStyle = (size, border, iconOnly, isDragging) => {
|
|
12
|
+
const isMiddleSize = size === "middle";
|
|
13
|
+
return {
|
|
14
|
+
wrapper: (theme) => {
|
|
15
|
+
const tabsTokens = getTabsTokens(theme);
|
|
16
|
+
return {
|
|
17
|
+
position: "relative",
|
|
18
|
+
display: "flex",
|
|
19
|
+
gap: isMiddleSize ? tabsTokens.tabsGapM : tabsTokens.tabsGapS,
|
|
20
|
+
flex: "1 1 auto",
|
|
21
|
+
alignItems: "center",
|
|
22
|
+
"::before": {
|
|
23
|
+
content: border ? "''" : "unset",
|
|
24
|
+
position: "absolute",
|
|
25
|
+
width: "100%",
|
|
26
|
+
borderBottom: `1px solid ${tabsTokens.tabsBorder}`,
|
|
27
|
+
bottom: 0,
|
|
28
|
+
zIndex: 0
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
content: () => ({
|
|
33
|
+
display: "flex",
|
|
34
|
+
flex: "1 1 auto",
|
|
35
|
+
overflowX: "hidden"
|
|
36
|
+
}),
|
|
37
|
+
tabs: (theme) => {
|
|
38
|
+
const tabsTokens = getTabsTokens(theme);
|
|
39
|
+
return {
|
|
40
|
+
display: "flex",
|
|
41
|
+
gap: getTabsGap(tabsTokens, iconOnly, isMiddleSize),
|
|
42
|
+
flex: "1 1 auto",
|
|
43
|
+
zIndex: 1,
|
|
44
|
+
overflowY: "hidden",
|
|
45
|
+
overflowX: isDragging ? "hidden" : "scroll",
|
|
46
|
+
"::-webkit-scrollbar": {
|
|
47
|
+
display: "none"
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
more: (theme) => {
|
|
52
|
+
const tabsTokens = getTabsTokens(theme);
|
|
53
|
+
const moreItemSize = isMiddleSize ? tabsTokens.tabsSizeM : tabsTokens.tabsSizeM;
|
|
54
|
+
return {
|
|
55
|
+
height: moreItemSize,
|
|
56
|
+
width: moreItemSize,
|
|
57
|
+
display: "flex",
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
justifyContent: "center",
|
|
60
|
+
flex: "0 0 auto",
|
|
61
|
+
svg: {
|
|
62
|
+
cursor: "pointer"
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
export {
|
|
69
|
+
getTabBarStyle
|
|
70
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Interpolation } from '@emotion/react';
|
|
2
|
+
import { TabsProps } from 'components/Tabs/Tabs.types';
|
|
3
|
+
import { Theme } from 'themes';
|
|
4
|
+
import { TabItemProps } from '../TabItem/TabItem.types';
|
|
5
|
+
export interface TabBarProps extends Omit<TabsProps, "activeKey" | "defaultActiveKey" | "styles" | "renderTabBar"> {
|
|
6
|
+
currentActiveKey: string | undefined;
|
|
7
|
+
contentWrapper: HTMLDivElement | null;
|
|
8
|
+
styles?: {
|
|
9
|
+
wrapper?: (theme: Theme) => Interpolation;
|
|
10
|
+
tabs?: (theme: Theme) => Interpolation;
|
|
11
|
+
tabItem?: TabItemProps["styles"];
|
|
12
|
+
};
|
|
13
|
+
changeActiveKey: (key: string) => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsxs, jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { memo, useRef, useEffect, useCallback } from "react";
|
|
3
|
+
import { isUndefined } from "lodash-es";
|
|
4
|
+
import { getTabItemStyle } from "./TabItem.styles.js";
|
|
5
|
+
import { createPortal } from "react-dom";
|
|
6
|
+
import { useInView } from "react-intersection-observer";
|
|
7
|
+
import { CSS } from "@dnd-kit/utilities";
|
|
8
|
+
import { useSortable } from "@dnd-kit/sortable";
|
|
9
|
+
import { useTheme } from "../../../../hooks/useTheme/useTheme.js";
|
|
10
|
+
const TabItem = memo(({
|
|
11
|
+
icon,
|
|
12
|
+
label,
|
|
13
|
+
iconOnly,
|
|
14
|
+
disabled = false,
|
|
15
|
+
size = "middle",
|
|
16
|
+
itemKey,
|
|
17
|
+
selected,
|
|
18
|
+
forceRender,
|
|
19
|
+
contentWrapper,
|
|
20
|
+
children,
|
|
21
|
+
styles,
|
|
22
|
+
changeActiveKey,
|
|
23
|
+
addHiddenTab,
|
|
24
|
+
deleteHiddenTab,
|
|
25
|
+
setCurrentTabElement,
|
|
26
|
+
scrollToTab,
|
|
27
|
+
onChange,
|
|
28
|
+
onTabClick
|
|
29
|
+
}) => {
|
|
30
|
+
var _a, _b, _c, _d;
|
|
31
|
+
const theme = useTheme();
|
|
32
|
+
const itemRef = useRef(null);
|
|
33
|
+
const {
|
|
34
|
+
ref,
|
|
35
|
+
inView
|
|
36
|
+
} = useInView({
|
|
37
|
+
threshold: 0.95
|
|
38
|
+
});
|
|
39
|
+
const {
|
|
40
|
+
isDragging,
|
|
41
|
+
attributes,
|
|
42
|
+
listeners,
|
|
43
|
+
setNodeRef,
|
|
44
|
+
transform,
|
|
45
|
+
transition
|
|
46
|
+
} = useSortable({
|
|
47
|
+
id: itemKey
|
|
48
|
+
});
|
|
49
|
+
const style = {
|
|
50
|
+
transform: CSS.Translate.toString(transform),
|
|
51
|
+
transition
|
|
52
|
+
};
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (inView) {
|
|
55
|
+
deleteHiddenTab(itemKey);
|
|
56
|
+
} else {
|
|
57
|
+
addHiddenTab(itemKey);
|
|
58
|
+
}
|
|
59
|
+
}, [addHiddenTab, deleteHiddenTab, inView, itemKey]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!selected || isUndefined(itemRef.current)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
setCurrentTabElement(itemRef.current);
|
|
65
|
+
if (inView) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
scrollToTab(itemRef.current);
|
|
69
|
+
}, [selected]);
|
|
70
|
+
const handleClick = useCallback((e) => {
|
|
71
|
+
onTabClick == null ? void 0 : onTabClick(itemKey, e);
|
|
72
|
+
if (disabled || selected) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
onChange == null ? void 0 : onChange(itemKey);
|
|
76
|
+
changeActiveKey(itemKey);
|
|
77
|
+
}, [changeActiveKey, disabled, itemKey, onChange, onTabClick, selected]);
|
|
78
|
+
const consolidatedRef = (node) => {
|
|
79
|
+
ref(node);
|
|
80
|
+
itemRef.current = node;
|
|
81
|
+
setNodeRef(node);
|
|
82
|
+
};
|
|
83
|
+
const withIconOnly = iconOnly || isUndefined(label);
|
|
84
|
+
const withContent = (selected || forceRender) && contentWrapper && children;
|
|
85
|
+
const tabItemStyle = getTabItemStyle(withIconOnly, disabled, selected, size, isDragging);
|
|
86
|
+
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), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0dRIiwiZmlsZSI6Ii9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHR5cGUgRkMsIHR5cGUgTW91c2VFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBUYWJJdGVtUHJvcHMgfSBmcm9tIFwiLi9UYWJJdGVtLnR5cGVzXCI7XG5pbXBvcnQgeyBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IGdldFRhYkl0ZW1TdHlsZSB9IGZyb20gXCIuL1RhYkl0ZW0uc3R5bGVzXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IHsgdXNlSW5WaWV3IH0gZnJvbSBcInJlYWN0LWludGVyc2VjdGlvbi1vYnNlcnZlclwiO1xuaW1wb3J0IHsgQ1NTIH0gZnJvbSBcIkBkbmQta2l0L3V0aWxpdGllc1wiO1xuaW1wb3J0IHsgdXNlU29ydGFibGUgfSBmcm9tIFwiQGRuZC1raXQvc29ydGFibGVcIjtcblxuZXhwb3J0IGNvbnN0IFRhYkl0ZW06IEZDPFRhYkl0ZW1Qcm9wcz4gPSBtZW1vKFxuICAoe1xuICAgIGljb24sXG4gICAgbGFiZWwsXG4gICAgaWNvbk9ubHksXG4gICAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBpdGVtS2V5LFxuICAgIHNlbGVjdGVkLFxuICAgIGZvcmNlUmVuZGVyLFxuICAgIGNvbnRlbnRXcmFwcGVyLFxuICAgIGNoaWxkcmVuLFxuICAgIHN0eWxlcyxcbiAgICBjaGFuZ2VBY3RpdmVLZXksXG4gICAgYWRkSGlkZGVuVGFiLFxuICAgIGRlbGV0ZUhpZGRlblRhYixcbiAgICBzZXRDdXJyZW50VGFiRWxlbWVudCxcbiAgICBzY3JvbGxUb1RhYixcbiAgICBvbkNoYW5nZSxcbiAgICBvblRhYkNsaWNrLFxuICB9KSA9PiB7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGl0ZW1SZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IHsgcmVmLCBpblZpZXcgfSA9IHVzZUluVmlldyh7IHRocmVzaG9sZDogMC45NSB9KTtcblxuICAgIGNvbnN0IHsgaXNEcmFnZ2luZywgYXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24gfSA9IHVzZVNvcnRhYmxlKHtcbiAgICAgIGlkOiBpdGVtS2V5LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3R5bGUgPSB7XG4gICAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2xhdGUudG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICAgIHRyYW5zaXRpb24sXG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaW5WaWV3KSB7XG4gICAgICAgIGRlbGV0ZUhpZGRlblRhYihpdGVtS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFkZEhpZGRlblRhYihpdGVtS2V5KTtcbiAgICAgIH1cbiAgICB9LCBbYWRkSGlkZGVuVGFiLCBkZWxldGVIaWRkZW5UYWIsIGluVmlldywgaXRlbUtleV0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghc2VsZWN0ZWQgfHwgaXNVbmRlZmluZWQoaXRlbVJlZi5jdXJyZW50KSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNldEN1cnJlbnRUYWJFbGVtZW50KGl0ZW1SZWYuY3VycmVudCk7XG5cbiAgICAgIGlmIChpblZpZXcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzY3JvbGxUb1RhYihpdGVtUmVmLmN1cnJlbnQpO1xuICAgIH0sIFtzZWxlY3RlZF0pO1xuXG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAgIChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIG9uVGFiQ2xpY2s/LihpdGVtS2V5LCBlKTtcblxuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgc2VsZWN0ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBvbkNoYW5nZT8uKGl0ZW1LZXkpO1xuICAgICAgICBjaGFuZ2VBY3RpdmVLZXkoaXRlbUtleSk7XG4gICAgICB9LFxuICAgICAgW2NoYW5nZUFjdGl2ZUtleSwgZGlzYWJsZWQsIGl0ZW1LZXksIG9uQ2hhbmdlLCBvblRhYkNsaWNrLCBzZWxlY3RlZF1cbiAgICApO1xuXG4gICAgY29uc3QgY29uc29saWRhdGVkUmVmID0gKG5vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgcmVmKG5vZGUpO1xuICAgICAgaXRlbVJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgIHNldE5vZGVSZWYobm9kZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHdpdGhJY29uT25seSA9IGljb25Pbmx5IHx8IGlzVW5kZWZpbmVkKGxhYmVsKTtcbiAgICBjb25zdCB3aXRoQ29udGVudCA9IChzZWxlY3RlZCB8fCBmb3JjZVJlbmRlcikgJiYgY29udGVudFdyYXBwZXIgJiYgY2hpbGRyZW47XG5cbiAgICBjb25zdCB0YWJJdGVtU3R5bGUgPSBnZXRUYWJJdGVtU3R5bGUod2l0aEljb25Pbmx5LCBkaXNhYmxlZCwgc2VsZWN0ZWQsIHNpemUsIGlzRHJhZ2dpbmcpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtjb25zb2xpZGF0ZWRSZWZ9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgey4uLmxpc3RlbmVyc31cbiAgICAgICAgey4uLmF0dHJpYnV0ZXN9XG4gICAgICAgIGNzcz17W3RhYkl0ZW1TdHlsZS53cmFwcGVyKHRoZW1lKSwgc3R5bGVzPy53cmFwcGVyPy4odGhlbWUpXX1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICA+XG4gICAgICAgIHtpY29uICYmIChcbiAgICAgICAgICA8c3BhbiBjc3M9e1t0YWJJdGVtU3R5bGUuaWNvbldyYXBwZXIodGhlbWUpLCBzdHlsZXM/Lmljb25XcmFwcGVyPy4odGhlbWUpXX0+e2ljb259PC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7IWljb25Pbmx5ICYmIGxhYmVsICYmIChcbiAgICAgICAgICA8c3BhbiBjc3M9e1t0YWJJdGVtU3R5bGUubGFiZWxXcmFwcGVyKHRoZW1lKSwgc3R5bGVzPy5sYWJlbFdyYXBwZXI/Lih0aGVtZSldfT5cbiAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICl9XG4gICAgICAgIHt3aXRoQ29udGVudCAmJlxuICAgICAgICAgIGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxkaXYgY3NzPXtbdGFiSXRlbVN0eWxlLmNoaWxkcmVuV3JhcHBlcih0aGVtZSksIHN0eWxlcz8uY2hpbGRyZW5XcmFwcGVyPy4odGhlbWUpXX0+XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvZGl2PixcbiAgICAgICAgICAgIGNvbnRlbnRXcmFwcGVyXG4gICAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG4iXX0= */"], onClick: handleClick, children: [
|
|
87
|
+
icon && /* @__PURE__ */ jsx("span", { css: [tabItemStyle.iconWrapper(theme), (_b = styles == null ? void 0 : styles.iconWrapper) == null ? void 0 : _b.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0dnQiIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJJdGVtL1RhYkl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB0eXBlIEZDLCB0eXBlIE1vdXNlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiSXRlbVByb3BzIH0gZnJvbSBcIi4vVGFiSXRlbS50eXBlc1wiO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBnZXRUYWJJdGVtU3R5bGUgfSBmcm9tIFwiLi9UYWJJdGVtLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZUluVmlldyB9IGZyb20gXCJyZWFjdC1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXJcIjtcbmltcG9ydCB7IENTUyB9IGZyb20gXCJAZG5kLWtpdC91dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVNvcnRhYmxlIH0gZnJvbSBcIkBkbmQta2l0L3NvcnRhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBUYWJJdGVtOiBGQzxUYWJJdGVtUHJvcHM+ID0gbWVtbyhcbiAgKHtcbiAgICBpY29uLFxuICAgIGxhYmVsLFxuICAgIGljb25Pbmx5LFxuICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgc2l6ZSA9IFwibWlkZGxlXCIsXG4gICAgaXRlbUtleSxcbiAgICBzZWxlY3RlZCxcbiAgICBmb3JjZVJlbmRlcixcbiAgICBjb250ZW50V3JhcHBlcixcbiAgICBjaGlsZHJlbixcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIGFkZEhpZGRlblRhYixcbiAgICBkZWxldGVIaWRkZW5UYWIsXG4gICAgc2V0Q3VycmVudFRhYkVsZW1lbnQsXG4gICAgc2Nyb2xsVG9UYWIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBpdGVtUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICBjb25zdCB7IHJlZiwgaW5WaWV3IH0gPSB1c2VJblZpZXcoeyB0aHJlc2hvbGQ6IDAuOTUgfSk7XG5cbiAgICBjb25zdCB7IGlzRHJhZ2dpbmcsIGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogaXRlbUtleSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICB0cmFuc2l0aW9uLFxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICBkZWxldGVIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9XG4gICAgfSwgW2FkZEhpZGRlblRhYiwgZGVsZXRlSGlkZGVuVGFiLCBpblZpZXcsIGl0ZW1LZXldKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXNlbGVjdGVkIHx8IGlzVW5kZWZpbmVkKGl0ZW1SZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50VGFiRWxlbWVudChpdGVtUmVmLmN1cnJlbnQpO1xuXG4gICAgICBpZiAoaW5WaWV3KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsVG9UYWIoaXRlbVJlZi5jdXJyZW50KTtcbiAgICB9LCBbc2VsZWN0ZWRdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBvblRhYkNsaWNrPy4oaXRlbUtleSwgZSk7XG5cbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2U/LihpdGVtS2V5KTtcbiAgICAgICAgY2hhbmdlQWN0aXZlS2V5KGl0ZW1LZXkpO1xuICAgICAgfSxcbiAgICAgIFtjaGFuZ2VBY3RpdmVLZXksIGRpc2FibGVkLCBpdGVtS2V5LCBvbkNoYW5nZSwgb25UYWJDbGljaywgc2VsZWN0ZWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFJlZiA9IChub2RlOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIHJlZihub2RlKTtcbiAgICAgIGl0ZW1SZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBzZXROb2RlUmVmKG5vZGUpO1xuICAgIH07XG5cbiAgICBjb25zdCB3aXRoSWNvbk9ubHkgPSBpY29uT25seSB8fCBpc1VuZGVmaW5lZChsYWJlbCk7XG4gICAgY29uc3Qgd2l0aENvbnRlbnQgPSAoc2VsZWN0ZWQgfHwgZm9yY2VSZW5kZXIpICYmIGNvbnRlbnRXcmFwcGVyICYmIGNoaWxkcmVuO1xuXG4gICAgY29uc3QgdGFiSXRlbVN0eWxlID0gZ2V0VGFiSXRlbVN0eWxlKHdpdGhJY29uT25seSwgZGlzYWJsZWQsIHNlbGVjdGVkLCBzaXplLCBpc0RyYWdnaW5nKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17Y29uc29saWRhdGVkUmVmfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHsuLi5saXN0ZW5lcnN9XG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBjc3M9e1t0YWJJdGVtU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgPlxuICAgICAgICB7aWNvbiAmJiAoXG4gICAgICAgICAgPHNwYW4gY3NzPXtbdGFiSXRlbVN0eWxlLmljb25XcmFwcGVyKHRoZW1lKSwgc3R5bGVzPy5pY29uV3JhcHBlcj8uKHRoZW1lKV19PntpY29ufTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpY29uT25seSAmJiBsYWJlbCAmJiAoXG4gICAgICAgICAgPHNwYW4gY3NzPXtbdGFiSXRlbVN0eWxlLmxhYmVsV3JhcHBlcih0aGVtZSksIHN0eWxlcz8ubGFiZWxXcmFwcGVyPy4odGhlbWUpXX0+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7d2l0aENvbnRlbnQgJiZcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2IGNzcz17W3RhYkl0ZW1TdHlsZS5jaGlsZHJlbldyYXBwZXIodGhlbWUpLCBzdHlsZXM/LmNoaWxkcmVuV3JhcHBlcj8uKHRoZW1lKV19PlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBjb250ZW50V3JhcHBlclxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], children: icon }),
|
|
88
|
+
!iconOnly && label && /* @__PURE__ */ jsx("span", { css: [tabItemStyle.labelWrapper(theme), (_c = styles == null ? void 0 : styles.labelWrapper) == null ? void 0 : _c.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUdnQiIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJJdGVtL1RhYkl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB0eXBlIEZDLCB0eXBlIE1vdXNlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiSXRlbVByb3BzIH0gZnJvbSBcIi4vVGFiSXRlbS50eXBlc1wiO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBnZXRUYWJJdGVtU3R5bGUgfSBmcm9tIFwiLi9UYWJJdGVtLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZUluVmlldyB9IGZyb20gXCJyZWFjdC1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXJcIjtcbmltcG9ydCB7IENTUyB9IGZyb20gXCJAZG5kLWtpdC91dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVNvcnRhYmxlIH0gZnJvbSBcIkBkbmQta2l0L3NvcnRhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBUYWJJdGVtOiBGQzxUYWJJdGVtUHJvcHM+ID0gbWVtbyhcbiAgKHtcbiAgICBpY29uLFxuICAgIGxhYmVsLFxuICAgIGljb25Pbmx5LFxuICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgc2l6ZSA9IFwibWlkZGxlXCIsXG4gICAgaXRlbUtleSxcbiAgICBzZWxlY3RlZCxcbiAgICBmb3JjZVJlbmRlcixcbiAgICBjb250ZW50V3JhcHBlcixcbiAgICBjaGlsZHJlbixcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIGFkZEhpZGRlblRhYixcbiAgICBkZWxldGVIaWRkZW5UYWIsXG4gICAgc2V0Q3VycmVudFRhYkVsZW1lbnQsXG4gICAgc2Nyb2xsVG9UYWIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBpdGVtUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICBjb25zdCB7IHJlZiwgaW5WaWV3IH0gPSB1c2VJblZpZXcoeyB0aHJlc2hvbGQ6IDAuOTUgfSk7XG5cbiAgICBjb25zdCB7IGlzRHJhZ2dpbmcsIGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogaXRlbUtleSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICB0cmFuc2l0aW9uLFxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICBkZWxldGVIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9XG4gICAgfSwgW2FkZEhpZGRlblRhYiwgZGVsZXRlSGlkZGVuVGFiLCBpblZpZXcsIGl0ZW1LZXldKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXNlbGVjdGVkIHx8IGlzVW5kZWZpbmVkKGl0ZW1SZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50VGFiRWxlbWVudChpdGVtUmVmLmN1cnJlbnQpO1xuXG4gICAgICBpZiAoaW5WaWV3KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsVG9UYWIoaXRlbVJlZi5jdXJyZW50KTtcbiAgICB9LCBbc2VsZWN0ZWRdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBvblRhYkNsaWNrPy4oaXRlbUtleSwgZSk7XG5cbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2U/LihpdGVtS2V5KTtcbiAgICAgICAgY2hhbmdlQWN0aXZlS2V5KGl0ZW1LZXkpO1xuICAgICAgfSxcbiAgICAgIFtjaGFuZ2VBY3RpdmVLZXksIGRpc2FibGVkLCBpdGVtS2V5LCBvbkNoYW5nZSwgb25UYWJDbGljaywgc2VsZWN0ZWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFJlZiA9IChub2RlOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIHJlZihub2RlKTtcbiAgICAgIGl0ZW1SZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBzZXROb2RlUmVmKG5vZGUpO1xuICAgIH07XG5cbiAgICBjb25zdCB3aXRoSWNvbk9ubHkgPSBpY29uT25seSB8fCBpc1VuZGVmaW5lZChsYWJlbCk7XG4gICAgY29uc3Qgd2l0aENvbnRlbnQgPSAoc2VsZWN0ZWQgfHwgZm9yY2VSZW5kZXIpICYmIGNvbnRlbnRXcmFwcGVyICYmIGNoaWxkcmVuO1xuXG4gICAgY29uc3QgdGFiSXRlbVN0eWxlID0gZ2V0VGFiSXRlbVN0eWxlKHdpdGhJY29uT25seSwgZGlzYWJsZWQsIHNlbGVjdGVkLCBzaXplLCBpc0RyYWdnaW5nKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17Y29uc29saWRhdGVkUmVmfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHsuLi5saXN0ZW5lcnN9XG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBjc3M9e1t0YWJJdGVtU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgPlxuICAgICAgICB7aWNvbiAmJiAoXG4gICAgICAgICAgPHNwYW4gY3NzPXtbdGFiSXRlbVN0eWxlLmljb25XcmFwcGVyKHRoZW1lKSwgc3R5bGVzPy5pY29uV3JhcHBlcj8uKHRoZW1lKV19PntpY29ufTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpY29uT25seSAmJiBsYWJlbCAmJiAoXG4gICAgICAgICAgPHNwYW4gY3NzPXtbdGFiSXRlbVN0eWxlLmxhYmVsV3JhcHBlcih0aGVtZSksIHN0eWxlcz8ubGFiZWxXcmFwcGVyPy4odGhlbWUpXX0+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7d2l0aENvbnRlbnQgJiZcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2IGNzcz17W3RhYkl0ZW1TdHlsZS5jaGlsZHJlbldyYXBwZXIodGhlbWUpLCBzdHlsZXM/LmNoaWxkcmVuV3JhcHBlcj8uKHRoZW1lKV19PlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBjb250ZW50V3JhcHBlclxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], children: label }),
|
|
89
|
+
withContent && createPortal(/* @__PURE__ */ jsx("div", { css: [tabItemStyle.childrenWrapper(theme), (_d = styles == null ? void 0 : styles.childrenWrapper) == null ? void 0 : _d.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:TabItem;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9jb21wb25lbnRzL1RhYkl0ZW0vVGFiSXRlbS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0dpQiIsImZpbGUiOiIvYnVpbGRzL2Zyb250ZW5kL2xpYnMvdWkta2l0L3NyYy9jb21wb25lbnRzL1RhYnMvY29tcG9uZW50cy9UYWJJdGVtL1RhYkl0ZW0udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB0eXBlIEZDLCB0eXBlIE1vdXNlRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGFiSXRlbVByb3BzIH0gZnJvbSBcIi4vVGFiSXRlbS50eXBlc1wiO1xuaW1wb3J0IHsgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBnZXRUYWJJdGVtU3R5bGUgfSBmcm9tIFwiLi9UYWJJdGVtLnN0eWxlc1wiO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tIFwiaG9va3MvdXNlVGhlbWVcIjtcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gXCJyZWFjdC1kb21cIjtcbmltcG9ydCB7IHVzZUluVmlldyB9IGZyb20gXCJyZWFjdC1pbnRlcnNlY3Rpb24tb2JzZXJ2ZXJcIjtcbmltcG9ydCB7IENTUyB9IGZyb20gXCJAZG5kLWtpdC91dGlsaXRpZXNcIjtcbmltcG9ydCB7IHVzZVNvcnRhYmxlIH0gZnJvbSBcIkBkbmQta2l0L3NvcnRhYmxlXCI7XG5cbmV4cG9ydCBjb25zdCBUYWJJdGVtOiBGQzxUYWJJdGVtUHJvcHM+ID0gbWVtbyhcbiAgKHtcbiAgICBpY29uLFxuICAgIGxhYmVsLFxuICAgIGljb25Pbmx5LFxuICAgIGRpc2FibGVkID0gZmFsc2UsXG4gICAgc2l6ZSA9IFwibWlkZGxlXCIsXG4gICAgaXRlbUtleSxcbiAgICBzZWxlY3RlZCxcbiAgICBmb3JjZVJlbmRlcixcbiAgICBjb250ZW50V3JhcHBlcixcbiAgICBjaGlsZHJlbixcbiAgICBzdHlsZXMsXG4gICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgIGFkZEhpZGRlblRhYixcbiAgICBkZWxldGVIaWRkZW5UYWIsXG4gICAgc2V0Q3VycmVudFRhYkVsZW1lbnQsXG4gICAgc2Nyb2xsVG9UYWIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBpdGVtUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgICBjb25zdCB7IHJlZiwgaW5WaWV3IH0gPSB1c2VJblZpZXcoeyB0aHJlc2hvbGQ6IDAuOTUgfSk7XG5cbiAgICBjb25zdCB7IGlzRHJhZ2dpbmcsIGF0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uIH0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogaXRlbUtleSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKHRyYW5zZm9ybSksXG4gICAgICB0cmFuc2l0aW9uLFxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGluVmlldykge1xuICAgICAgICBkZWxldGVIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZGRIaWRkZW5UYWIoaXRlbUtleSk7XG4gICAgICB9XG4gICAgfSwgW2FkZEhpZGRlblRhYiwgZGVsZXRlSGlkZGVuVGFiLCBpblZpZXcsIGl0ZW1LZXldKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXNlbGVjdGVkIHx8IGlzVW5kZWZpbmVkKGl0ZW1SZWYuY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZXRDdXJyZW50VGFiRWxlbWVudChpdGVtUmVmLmN1cnJlbnQpO1xuXG4gICAgICBpZiAoaW5WaWV3KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsVG9UYWIoaXRlbVJlZi5jdXJyZW50KTtcbiAgICB9LCBbc2VsZWN0ZWRdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBvblRhYkNsaWNrPy4oaXRlbUtleSwgZSk7XG5cbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHNlbGVjdGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgb25DaGFuZ2U/LihpdGVtS2V5KTtcbiAgICAgICAgY2hhbmdlQWN0aXZlS2V5KGl0ZW1LZXkpO1xuICAgICAgfSxcbiAgICAgIFtjaGFuZ2VBY3RpdmVLZXksIGRpc2FibGVkLCBpdGVtS2V5LCBvbkNoYW5nZSwgb25UYWJDbGljaywgc2VsZWN0ZWRdXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFJlZiA9IChub2RlOiBIVE1MRWxlbWVudCB8IG51bGwpID0+IHtcbiAgICAgIHJlZihub2RlKTtcbiAgICAgIGl0ZW1SZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICBzZXROb2RlUmVmKG5vZGUpO1xuICAgIH07XG5cbiAgICBjb25zdCB3aXRoSWNvbk9ubHkgPSBpY29uT25seSB8fCBpc1VuZGVmaW5lZChsYWJlbCk7XG4gICAgY29uc3Qgd2l0aENvbnRlbnQgPSAoc2VsZWN0ZWQgfHwgZm9yY2VSZW5kZXIpICYmIGNvbnRlbnRXcmFwcGVyICYmIGNoaWxkcmVuO1xuXG4gICAgY29uc3QgdGFiSXRlbVN0eWxlID0gZ2V0VGFiSXRlbVN0eWxlKHdpdGhJY29uT25seSwgZGlzYWJsZWQsIHNlbGVjdGVkLCBzaXplLCBpc0RyYWdnaW5nKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17Y29uc29saWRhdGVkUmVmfVxuICAgICAgICBzdHlsZT17c3R5bGV9XG4gICAgICAgIHsuLi5saXN0ZW5lcnN9XG4gICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICBjc3M9e1t0YWJJdGVtU3R5bGUud3JhcHBlcih0aGVtZSksIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19XG4gICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgPlxuICAgICAgICB7aWNvbiAmJiAoXG4gICAgICAgICAgPHNwYW4gY3NzPXtbdGFiSXRlbVN0eWxlLmljb25XcmFwcGVyKHRoZW1lKSwgc3R5bGVzPy5pY29uV3JhcHBlcj8uKHRoZW1lKV19PntpY29ufTwvc3Bhbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyFpY29uT25seSAmJiBsYWJlbCAmJiAoXG4gICAgICAgICAgPHNwYW4gY3NzPXtbdGFiSXRlbVN0eWxlLmxhYmVsV3JhcHBlcih0aGVtZSksIHN0eWxlcz8ubGFiZWxXcmFwcGVyPy4odGhlbWUpXX0+XG4gICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICApfVxuICAgICAgICB7d2l0aENvbnRlbnQgJiZcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2IGNzcz17W3RhYkl0ZW1TdHlsZS5jaGlsZHJlbldyYXBwZXIodGhlbWUpLCBzdHlsZXM/LmNoaWxkcmVuV3JhcHBlcj8uKHRoZW1lKV19PlxuICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBjb250ZW50V3JhcHBlclxuICAgICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], children }), contentWrapper)
|
|
90
|
+
] });
|
|
91
|
+
});
|
|
92
|
+
export {
|
|
93
|
+
TabItem
|
|
94
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TabsSizeType } from 'components/Tabs/Tabs.types';
|
|
2
|
+
import { Theme } from 'themes';
|
|
3
|
+
export declare const getTabItemStyle: (iconOnly: boolean, disabled: boolean, selected: boolean, size: TabsSizeType, isDragging: boolean) => {
|
|
4
|
+
wrapper: (theme: Theme) => {
|
|
5
|
+
readonly display: "flex";
|
|
6
|
+
readonly flexWrap: "nowrap";
|
|
7
|
+
readonly alignItems: "center";
|
|
8
|
+
readonly justifyContent: "unset" | "center";
|
|
9
|
+
readonly gap: 4;
|
|
10
|
+
readonly padding: `4px 0 ${number}px` | `8px 0 ${number}px`;
|
|
11
|
+
readonly color: "#262626" | "#595959" | "#8C8C8C" | "#BFBFBF";
|
|
12
|
+
readonly height: number;
|
|
13
|
+
readonly width: number | "fit-content";
|
|
14
|
+
readonly boxSizing: "border-box";
|
|
15
|
+
readonly cursor: "default" | "pointer" | "move";
|
|
16
|
+
readonly borderBottom: "2px solid #0CB3B3" | "2px solid transparent";
|
|
17
|
+
readonly ":hover": {
|
|
18
|
+
readonly color: "#262626" | "#595959" | "#8C8C8C" | "#BFBFBF";
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
iconWrapper: (theme: Theme) => {
|
|
22
|
+
display: string;
|
|
23
|
+
alignItems: string;
|
|
24
|
+
justifyContent: string;
|
|
25
|
+
fontSize: 16;
|
|
26
|
+
};
|
|
27
|
+
labelWrapper: (theme: Theme) => {
|
|
28
|
+
whiteSpace: string;
|
|
29
|
+
fontFamily: "Roboto";
|
|
30
|
+
fontSize: 14;
|
|
31
|
+
lineHeight: "20px";
|
|
32
|
+
};
|
|
33
|
+
childrenWrapper: (theme: Theme) => {
|
|
34
|
+
readonly color: "#262626";
|
|
35
|
+
readonly padding: "12px 0";
|
|
36
|
+
readonly visibility: "hidden" | "visible";
|
|
37
|
+
readonly position: "absolute" | "relative";
|
|
38
|
+
readonly fontFamily: "Roboto";
|
|
39
|
+
readonly fontSize: 14;
|
|
40
|
+
readonly lineHeight: "20px";
|
|
41
|
+
};
|
|
42
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { getTabsTokens } from "../../Tabs.tokens.js";
|
|
2
|
+
const getColor = (tabsTokens, disabled, selected, isHover = false) => {
|
|
3
|
+
if (disabled) {
|
|
4
|
+
return tabsTokens.tabsTextDisabled;
|
|
5
|
+
}
|
|
6
|
+
if (selected) {
|
|
7
|
+
return tabsTokens.tabsTextSelected;
|
|
8
|
+
}
|
|
9
|
+
if (isHover) {
|
|
10
|
+
return tabsTokens.tabsTextHover;
|
|
11
|
+
}
|
|
12
|
+
return tabsTokens.tabsText;
|
|
13
|
+
};
|
|
14
|
+
const getCursor = (isDragging, disabled, selected) => {
|
|
15
|
+
if (isDragging) {
|
|
16
|
+
return "move";
|
|
17
|
+
}
|
|
18
|
+
if (disabled || selected) {
|
|
19
|
+
return "default";
|
|
20
|
+
}
|
|
21
|
+
return "pointer";
|
|
22
|
+
};
|
|
23
|
+
const getTabItemStyle = (iconOnly, disabled, selected, size, isDragging) => {
|
|
24
|
+
const isMiddleSize = size === "middle";
|
|
25
|
+
return {
|
|
26
|
+
wrapper: (theme) => {
|
|
27
|
+
const tabsTokens = getTabsTokens(theme);
|
|
28
|
+
const tabBarSize = isMiddleSize ? tabsTokens.tabsSizeM : tabsTokens.tabsSizeS;
|
|
29
|
+
const tabPadding = isMiddleSize ? theme.paddingM : theme.paddingXS;
|
|
30
|
+
return {
|
|
31
|
+
display: "flex",
|
|
32
|
+
flexWrap: "nowrap",
|
|
33
|
+
alignItems: "center",
|
|
34
|
+
justifyContent: iconOnly ? "center" : "unset",
|
|
35
|
+
gap: theme.marginXS,
|
|
36
|
+
padding: `${tabPadding}px 0 ${tabPadding - 2}px`,
|
|
37
|
+
color: getColor(tabsTokens, disabled, selected),
|
|
38
|
+
height: tabBarSize,
|
|
39
|
+
width: iconOnly ? tabBarSize : "fit-content",
|
|
40
|
+
boxSizing: "border-box",
|
|
41
|
+
cursor: getCursor(isDragging, disabled, selected),
|
|
42
|
+
borderBottom: `2px solid ${selected ? tabsTokens.tabsIndicator : "transparent"}`,
|
|
43
|
+
":hover": {
|
|
44
|
+
color: getColor(tabsTokens, disabled, selected, true)
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
iconWrapper: (theme) => ({
|
|
49
|
+
display: "flex",
|
|
50
|
+
alignItems: "center",
|
|
51
|
+
justifyContent: "center",
|
|
52
|
+
fontSize: theme.iconM
|
|
53
|
+
}),
|
|
54
|
+
labelWrapper: (theme) => ({
|
|
55
|
+
...theme.typography.body2,
|
|
56
|
+
whiteSpace: "nowrap"
|
|
57
|
+
}),
|
|
58
|
+
childrenWrapper: (theme) => ({
|
|
59
|
+
...theme.typography.body2,
|
|
60
|
+
color: theme.textPrimary,
|
|
61
|
+
padding: "12px 0",
|
|
62
|
+
visibility: selected ? "visible" : "hidden",
|
|
63
|
+
position: selected ? "relative" : "absolute"
|
|
64
|
+
})
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export {
|
|
68
|
+
getTabItemStyle
|
|
69
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Interpolation } from '@emotion/react';
|
|
2
|
+
import { TabsSizeType } from 'components/Tabs/Tabs.types';
|
|
3
|
+
import { MouseEvent, ReactNode } from 'react';
|
|
4
|
+
import { Theme } from 'themes';
|
|
5
|
+
export interface TabItem {
|
|
6
|
+
key: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
forceRender?: boolean;
|
|
9
|
+
label?: ReactNode;
|
|
10
|
+
icon?: ReactNode;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
export interface TabItemProps extends Omit<TabItem, "key"> {
|
|
14
|
+
itemKey: string;
|
|
15
|
+
selected: boolean;
|
|
16
|
+
contentWrapper: HTMLDivElement | null;
|
|
17
|
+
changeActiveKey: (key: string) => void;
|
|
18
|
+
addHiddenTab: (itemKey: string) => void;
|
|
19
|
+
deleteHiddenTab: (itemKey: string) => void;
|
|
20
|
+
setCurrentTabElement: (tab: HTMLElement | null) => void;
|
|
21
|
+
scrollToTab: (element: HTMLElement | null) => void;
|
|
22
|
+
size?: TabsSizeType;
|
|
23
|
+
iconOnly?: boolean;
|
|
24
|
+
styles?: {
|
|
25
|
+
wrapper?: (theme: Theme) => Interpolation;
|
|
26
|
+
iconWrapper?: (theme: Theme) => Interpolation;
|
|
27
|
+
labelWrapper?: (theme: Theme) => Interpolation;
|
|
28
|
+
childrenWrapper?: (theme: Theme) => Interpolation;
|
|
29
|
+
};
|
|
30
|
+
onChange?: (activeKey: string) => void;
|
|
31
|
+
onTabClick?: (activeKey: string, event: MouseEvent) => void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export declare const baseItems: {
|
|
2
|
+
key: string;
|
|
3
|
+
label: string;
|
|
4
|
+
children: string;
|
|
5
|
+
}[];
|
|
6
|
+
export declare const disabledItems: ({
|
|
7
|
+
key: string;
|
|
8
|
+
label: string;
|
|
9
|
+
disabled?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
key: string;
|
|
12
|
+
label: string;
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
})[];
|
|
15
|
+
export declare const iconItems: ({
|
|
16
|
+
key: string;
|
|
17
|
+
label: string;
|
|
18
|
+
icon: import("@emotion/react/jsx-runtime").JSX.Element;
|
|
19
|
+
disabled?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
key: string;
|
|
22
|
+
label: string;
|
|
23
|
+
icon: import("@emotion/react/jsx-runtime").JSX.Element;
|
|
24
|
+
disabled: boolean;
|
|
25
|
+
})[];
|
|
26
|
+
export declare const iconOnlyItems: {
|
|
27
|
+
key: string;
|
|
28
|
+
label: string;
|
|
29
|
+
icon: import("@emotion/react/jsx-runtime").JSX.Element;
|
|
30
|
+
}[];
|
|
31
|
+
export declare const moreTabsItems: {
|
|
32
|
+
key: string;
|
|
33
|
+
label: string;
|
|
34
|
+
}[];
|
|
35
|
+
export declare const extraContentItems: {
|
|
36
|
+
key: string;
|
|
37
|
+
label: string;
|
|
38
|
+
}[];
|
|
39
|
+
export declare const sizeItems: {
|
|
40
|
+
key: string;
|
|
41
|
+
label: string;
|
|
42
|
+
}[];
|
|
43
|
+
export declare const sizeItemsIcon: {
|
|
44
|
+
key: string;
|
|
45
|
+
icon: import("@emotion/react/jsx-runtime").JSX.Element;
|
|
46
|
+
}[];
|
|
47
|
+
export declare const borderItems: {
|
|
48
|
+
key: string;
|
|
49
|
+
label: string;
|
|
50
|
+
}[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MouseEvent } from 'react';
|
|
2
|
+
import { TabItem } from '../components/TabItem/TabItem.types';
|
|
3
|
+
import { ItemType, MenuItem } from 'components/Dropdown/Dropdown.types';
|
|
4
|
+
export declare const useMoreTabsController: (items: TabItem[], currentActiveKey: string | undefined, currentTabElement: HTMLElement | null, onTabClick: ((activeKey: string, event: MouseEvent) => void) | undefined, onChange: ((activeKey: string) => void) | undefined, changeActiveKey: (key: string) => void) => {
|
|
5
|
+
tabsRef: import('react').MutableRefObject<HTMLDivElement | null>;
|
|
6
|
+
dropdownMenu: {
|
|
7
|
+
items: MenuItem[];
|
|
8
|
+
onClick: (props: {
|
|
9
|
+
item: ItemType;
|
|
10
|
+
key: string;
|
|
11
|
+
e: MouseEvent;
|
|
12
|
+
}) => void;
|
|
13
|
+
};
|
|
14
|
+
addHiddenTab: (itemKey: string) => void;
|
|
15
|
+
deleteHiddenTab: (itemKey: string) => void;
|
|
16
|
+
scrollToTab: (element: HTMLElement | null) => void;
|
|
17
|
+
};
|