@elliemae/ds-tabs 2.3.0-next.3 → 3.0.0-alpha.0
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/cjs/DSTabs.js +63 -0
- package/dist/cjs/DSTabs.js.map +7 -0
- package/dist/cjs/DSTabsCTX.js +56 -0
- package/dist/cjs/DSTabsCTX.js.map +7 -0
- package/dist/cjs/DSTabsDatatestid.js +46 -0
- package/dist/cjs/DSTabsDatatestid.js.map +7 -0
- package/dist/cjs/DSTabsTypes.js +27 -0
- package/dist/cjs/DSTabsTypes.js.map +7 -0
- package/dist/cjs/config/useCrossRef.js +44 -0
- package/dist/cjs/config/useCrossRef.js.map +7 -0
- package/dist/cjs/config/useTabs.js +68 -0
- package/dist/cjs/config/useTabs.js.map +7 -0
- package/dist/cjs/defaultProps.js +53 -0
- package/dist/cjs/defaultProps.js.map +7 -0
- package/dist/cjs/exportsRelated/DSTab.js +46 -0
- package/dist/cjs/exportsRelated/DSTab.js.map +7 -0
- package/dist/cjs/index.js +38 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/parts/carousel/Carousel.js +77 -0
- package/dist/cjs/parts/carousel/Carousel.js.map +7 -0
- package/dist/cjs/parts/carousel/styles.js +79 -0
- package/dist/cjs/parts/carousel/styles.js.map +7 -0
- package/dist/cjs/parts/carousel/useCarousel.js +80 -0
- package/dist/cjs/parts/carousel/useCarousel.js.map +7 -0
- package/dist/cjs/parts/carousel/useCarouselCallbacks.js +89 -0
- package/dist/cjs/parts/carousel/useCarouselCallbacks.js.map +7 -0
- package/dist/cjs/parts/tabBar/TabBar.js +171 -0
- package/dist/cjs/parts/tabBar/TabBar.js.map +7 -0
- package/dist/cjs/parts/tabBar/styles.js +294 -0
- package/dist/cjs/parts/tabBar/styles.js.map +7 -0
- package/dist/cjs/parts/tabBar/useTabBar.js +100 -0
- package/dist/cjs/parts/tabBar/useTabBar.js.map +7 -0
- package/dist/cjs/parts/tabsContent/TabsContent.js +53 -0
- package/dist/cjs/parts/tabsContent/TabsContent.js.map +7 -0
- package/dist/cjs/parts/tabsContent/styles.js +39 -0
- package/dist/cjs/parts/tabsContent/styles.js.map +7 -0
- package/dist/cjs/parts/tabsPanel/TabsPanels.js +79 -0
- package/dist/cjs/parts/tabsPanel/TabsPanels.js.map +7 -0
- package/dist/cjs/parts/tabsPanel/styles.js +45 -0
- package/dist/cjs/parts/tabsPanel/styles.js.map +7 -0
- package/dist/cjs/propTypes.js +58 -0
- package/dist/cjs/propTypes.js.map +7 -0
- package/dist/cjs/utils/constants.js +56 -0
- package/dist/cjs/utils/constants.js.map +7 -0
- package/dist/cjs/utils/helpers.js +88 -0
- package/dist/cjs/utils/helpers.js.map +7 -0
- package/dist/cjs/utils/hooks/useKeyboardNavigation.js +77 -0
- package/dist/cjs/utils/hooks/useKeyboardNavigation.js.map +7 -0
- package/dist/cjs/utils/hooks/useTabsCallbacks.js +60 -0
- package/dist/cjs/utils/hooks/useTabsCallbacks.js.map +7 -0
- package/dist/esm/DSTabs.js +34 -0
- package/dist/esm/DSTabs.js.map +7 -0
- package/dist/esm/DSTabsCTX.js +27 -0
- package/dist/esm/DSTabsCTX.js.map +7 -0
- package/dist/esm/DSTabsDatatestid.js +17 -0
- package/dist/esm/DSTabsDatatestid.js.map +7 -0
- package/dist/esm/DSTabsTypes.js +2 -0
- package/dist/esm/DSTabsTypes.js.map +7 -0
- package/{esm → dist/esm}/config/useCrossRef.js +6 -4
- package/dist/esm/config/useCrossRef.js.map +7 -0
- package/dist/esm/config/useTabs.js +39 -0
- package/dist/esm/config/useTabs.js.map +7 -0
- package/{esm → dist/esm}/defaultProps.js +9 -8
- package/dist/esm/defaultProps.js.map +7 -0
- package/dist/esm/exportsRelated/DSTab.js +17 -0
- package/dist/esm/exportsRelated/DSTab.js.map +7 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/parts/carousel/Carousel.js +48 -0
- package/dist/esm/parts/carousel/Carousel.js.map +7 -0
- package/dist/esm/parts/carousel/styles.js +50 -0
- package/dist/esm/parts/carousel/styles.js.map +7 -0
- package/{esm → dist/esm}/parts/carousel/useCarousel.js +15 -34
- package/dist/esm/parts/carousel/useCarousel.js.map +7 -0
- package/{esm → dist/esm}/parts/carousel/useCarouselCallbacks.js +20 -28
- package/dist/esm/parts/carousel/useCarouselCallbacks.js.map +7 -0
- package/dist/esm/parts/tabBar/TabBar.js +149 -0
- package/dist/esm/parts/tabBar/TabBar.js.map +7 -0
- package/dist/esm/parts/tabBar/styles.js +265 -0
- package/dist/esm/parts/tabBar/styles.js.map +7 -0
- package/{esm → dist/esm}/parts/tabBar/useTabBar.js +27 -35
- package/dist/esm/parts/tabBar/useTabBar.js.map +7 -0
- package/dist/esm/parts/tabsContent/TabsContent.js +24 -0
- package/dist/esm/parts/tabsContent/TabsContent.js.map +7 -0
- package/dist/esm/parts/tabsContent/styles.js +10 -0
- package/dist/esm/parts/tabsContent/styles.js.map +7 -0
- package/dist/esm/parts/tabsPanel/TabsPanels.js +50 -0
- package/dist/esm/parts/tabsPanel/TabsPanels.js.map +7 -0
- package/dist/esm/parts/tabsPanel/styles.js +16 -0
- package/dist/esm/parts/tabsPanel/styles.js.map +7 -0
- package/dist/esm/propTypes.js +29 -0
- package/dist/esm/propTypes.js.map +7 -0
- package/dist/esm/utils/constants.js +27 -0
- package/dist/esm/utils/constants.js.map +7 -0
- package/{esm → dist/esm}/utils/helpers.js +23 -28
- package/dist/esm/utils/helpers.js.map +7 -0
- package/dist/esm/utils/hooks/useKeyboardNavigation.js +48 -0
- package/dist/esm/utils/hooks/useKeyboardNavigation.js.map +7 -0
- package/dist/esm/utils/hooks/useTabsCallbacks.js +31 -0
- package/dist/esm/utils/hooks/useTabsCallbacks.js.map +7 -0
- package/{types → dist/types}/DSTabs.d.ts +2 -2
- package/{types → dist/types}/DSTabsCTX.d.ts +0 -0
- package/{types → dist/types}/DSTabsDatatestid.d.ts +0 -0
- package/{types → dist/types}/DSTabsTypes.d.ts +0 -0
- package/{types → dist/types}/config/useCrossRef.d.ts +0 -0
- package/{types → dist/types}/config/useTabs.d.ts +0 -0
- package/{types → dist/types}/defaultProps.d.ts +0 -0
- package/{types → dist/types}/exportsRelated/DSTab.d.ts +0 -0
- package/{types → dist/types}/index.d.ts +0 -0
- package/{types → dist/types}/parts/carousel/Carousel.d.ts +0 -0
- package/{types → dist/types}/parts/carousel/styles.d.ts +1 -1
- package/{types → dist/types}/parts/carousel/useCarousel.d.ts +0 -0
- package/{types → dist/types}/parts/carousel/useCarouselCallbacks.d.ts +0 -0
- package/{types → dist/types}/parts/tabBar/TabBar.d.ts +0 -0
- package/{types → dist/types}/parts/tabBar/styles.d.ts +0 -0
- package/{types → dist/types}/parts/tabBar/useTabBar.d.ts +0 -0
- package/{types → dist/types}/parts/tabsContent/TabsContent.d.ts +0 -0
- package/{types → dist/types}/parts/tabsContent/styles.d.ts +0 -0
- package/{types → dist/types}/parts/tabsPanel/TabsPanels.d.ts +0 -0
- package/{types → dist/types}/parts/tabsPanel/styles.d.ts +0 -0
- package/{types → dist/types}/propTypes.d.ts +0 -0
- package/{types → dist/types}/tests/DSTabs.callbacks.test.d.ts +0 -0
- package/{types → dist/types}/tests/DSTabs.func.test.d.ts +0 -0
- package/{types → dist/types}/tests/DSTabs.keyboard.test.d.ts +0 -0
- package/{types → dist/types}/tests/DSTabs.test.d.ts +0 -0
- package/{types → dist/types}/utils/constants.d.ts +0 -0
- package/{types → dist/types}/utils/helpers.d.ts +0 -0
- package/{types → dist/types}/utils/hooks/useKeyboardNavigation.d.ts +0 -0
- package/{types → dist/types}/utils/hooks/useTabsCallbacks.d.ts +0 -0
- package/package.json +77 -69
- package/cjs/DSTabs.js +0 -45
- package/cjs/DSTabsCTX.js +0 -30
- package/cjs/DSTabsDatatestid.js +0 -18
- package/cjs/DSTabsTypes.js +0 -2
- package/cjs/config/useCrossRef.js +0 -17
- package/cjs/config/useTabs.js +0 -51
- package/cjs/defaultProps.js +0 -27
- package/cjs/exportsRelated/DSTab.js +0 -32
- package/cjs/index.js +0 -17
- package/cjs/parts/carousel/Carousel.js +0 -69
- package/cjs/parts/carousel/styles.js +0 -65
- package/cjs/parts/carousel/useCarousel.js +0 -78
- package/cjs/parts/carousel/useCarouselCallbacks.js +0 -72
- package/cjs/parts/tabBar/TabBar.js +0 -168
- package/cjs/parts/tabBar/styles.js +0 -200
- package/cjs/parts/tabBar/useTabBar.js +0 -87
- package/cjs/parts/tabsContent/TabsContent.js +0 -49
- package/cjs/parts/tabsContent/styles.js +0 -15
- package/cjs/parts/tabsPanel/TabsPanels.js +0 -77
- package/cjs/parts/tabsPanel/styles.js +0 -25
- package/cjs/propTypes.js +0 -33
- package/cjs/utils/constants.js +0 -28
- package/cjs/utils/helpers.js +0 -75
- package/cjs/utils/hooks/useKeyboardNavigation.js +0 -61
- package/cjs/utils/hooks/useTabsCallbacks.js +0 -41
- package/esm/DSTabs.js +0 -35
- package/esm/DSTabsCTX.js +0 -25
- package/esm/DSTabsDatatestid.js +0 -14
- package/esm/DSTabsTypes.js +0 -1
- package/esm/config/useTabs.js +0 -47
- package/esm/exportsRelated/DSTab.js +0 -21
- package/esm/index.js +0 -4
- package/esm/parts/carousel/Carousel.js +0 -61
- package/esm/parts/carousel/styles.js +0 -54
- package/esm/parts/tabBar/TabBar.js +0 -159
- package/esm/parts/tabBar/styles.js +0 -186
- package/esm/parts/tabsContent/TabsContent.js +0 -40
- package/esm/parts/tabsContent/styles.js +0 -7
- package/esm/parts/tabsPanel/TabsPanels.js +0 -67
- package/esm/parts/tabsPanel/styles.js +0 -17
- package/esm/propTypes.js +0 -28
- package/esm/utils/constants.js +0 -20
- package/esm/utils/hooks/useKeyboardNavigation.js +0 -57
- package/esm/utils/hooks/useTabsCallbacks.js +0 -37
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
|
|
6
|
-
var styled = require('styled-components');
|
|
7
|
-
var dsSystem = require('@elliemae/ds-system');
|
|
8
|
-
var constants = require('../../utils/constants.js');
|
|
9
|
-
|
|
10
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
11
|
-
|
|
12
|
-
var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
|
|
13
|
-
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
14
|
-
|
|
15
|
-
var _templateObject;
|
|
16
|
-
const StyledSelectionIndicator = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
17
|
-
componentId: "sc-3hla56-0"
|
|
18
|
-
})(["position:absolute;height:3px;top:", ";margin-top:", ";pointer-events:none;transition:200ms cubic-bezier(0.36,0,1,1);z-index:10;", ""], _ref => {
|
|
19
|
-
let {
|
|
20
|
-
tabType,
|
|
21
|
-
isDSMobile
|
|
22
|
-
} = _ref;
|
|
23
|
-
if (isDSMobile) return "35px";
|
|
24
|
-
if (tabType === constants.TabTypes.NORMAL_SMALL) return "15px";
|
|
25
|
-
return "25px";
|
|
26
|
-
}, _ref2 => {
|
|
27
|
-
let {
|
|
28
|
-
theme
|
|
29
|
-
} = _ref2;
|
|
30
|
-
return theme.space.xxxs;
|
|
31
|
-
}, _ref3 => {
|
|
32
|
-
let {
|
|
33
|
-
isDSMobile
|
|
34
|
-
} = _ref3;
|
|
35
|
-
return isDSMobile ? " \n margin-left: 0;\n margin-top: 3px;\n " : "";
|
|
36
|
-
});
|
|
37
|
-
const mobileGradientsSettings = dsSystem.css(_templateObject || (_templateObject = _taggedTemplateLiteral__default["default"](["\n ", "\n"])), _ref4 => {
|
|
38
|
-
let {
|
|
39
|
-
theme,
|
|
40
|
-
mobileGradients,
|
|
41
|
-
isDSMobile,
|
|
42
|
-
fixedTabsHeaders
|
|
43
|
-
} = _ref4;
|
|
44
|
-
|
|
45
|
-
if (isDSMobile && !fixedTabsHeaders) {
|
|
46
|
-
if (mobileGradients.right && mobileGradients.left) return "background: linear-gradient(90deg, rgba(238,238,238,0) 0%, ".concat(theme.colors.brand[200], " 20%, ").concat(theme.colors.brand[200], " 80%, rgba(238,238,238,0) 100%);");
|
|
47
|
-
if (mobileGradients.right) return "background: linear-gradient(90deg, ".concat(theme.colors.brand[200], " 0%, ").concat(theme.colors.brand[200], " 80%, rgba(238,238,238,0) 100%);");
|
|
48
|
-
if (mobileGradients.left) return "background: linear-gradient(90deg, rgba(238,238,238,0) 0%, ".concat(theme.colors.brand[200], " 20%, ").concat(theme.colors.brand[200], " 100%);");
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return "";
|
|
52
|
-
});
|
|
53
|
-
const StyledTabWrapper = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
54
|
-
componentId: "sc-3hla56-1"
|
|
55
|
-
})(["display:flex;flex:1;flex-wrap:nowrap;", " ", ""], _ref5 => {
|
|
56
|
-
let {
|
|
57
|
-
fixedTabsHeaders,
|
|
58
|
-
isDSMobile
|
|
59
|
-
} = _ref5;
|
|
60
|
-
return !fixedTabsHeaders && isDSMobile ? '' : 'overflow-x: hidden;';
|
|
61
|
-
}, _ref6 => {
|
|
62
|
-
let {
|
|
63
|
-
theme,
|
|
64
|
-
isDSMobile
|
|
65
|
-
} = _ref6;
|
|
66
|
-
return isDSMobile ? "border-bottom: 1px solid ".concat(theme.colors.brand[300], ";") : "";
|
|
67
|
-
});
|
|
68
|
-
const StyledTabButton = /*#__PURE__*/styled__default["default"].button.withConfig({
|
|
69
|
-
componentId: "sc-3hla56-2"
|
|
70
|
-
})(["position:relative;background-color:transparent;border:none;cursor:pointer;transition:100ms cubic-bezier(0,0,0.42,1);text-transform:", ";letter-spacing:0px;white-space:nowrap;padding:2px 0;margin-right:", ";margin-left:", ";color:", ";", " ", " ", " ", " ", " ", " ", ""], _ref7 => {
|
|
71
|
-
let {
|
|
72
|
-
tabType
|
|
73
|
-
} = _ref7;
|
|
74
|
-
return tabType === constants.TabTypes.SUBTABS ? "capitalize" : "uppercase";
|
|
75
|
-
}, _ref8 => {
|
|
76
|
-
let {
|
|
77
|
-
fixedTabsHeaders,
|
|
78
|
-
isDSMobile
|
|
79
|
-
} = _ref8;
|
|
80
|
-
if (fixedTabsHeaders) return '0px';
|
|
81
|
-
if (!fixedTabsHeaders && isDSMobile) return '14px';
|
|
82
|
-
return '16px';
|
|
83
|
-
}, _ref9 => {
|
|
84
|
-
let {
|
|
85
|
-
fixedTabsHeaders,
|
|
86
|
-
isDSMobile
|
|
87
|
-
} = _ref9;
|
|
88
|
-
if (fixedTabsHeaders) return '0px';
|
|
89
|
-
if (!fixedTabsHeaders && isDSMobile) return '14px';
|
|
90
|
-
return '16px';
|
|
91
|
-
}, _ref10 => {
|
|
92
|
-
let {
|
|
93
|
-
theme
|
|
94
|
-
} = _ref10;
|
|
95
|
-
return theme.colors.neutral[700];
|
|
96
|
-
}, dsSystem.onlySafariAndFirefox('-webkit-text-stroke: 0.4px transparent;'), _ref11 => {
|
|
97
|
-
let {
|
|
98
|
-
tabType
|
|
99
|
-
} = _ref11;
|
|
100
|
-
return tabType === constants.TabTypes.NORMAL ? "height: 32px;" : "height: 22px;";
|
|
101
|
-
}, _ref12 => {
|
|
102
|
-
let {
|
|
103
|
-
theme,
|
|
104
|
-
isActive,
|
|
105
|
-
disabled
|
|
106
|
-
} = _ref12;
|
|
107
|
-
return isActive && !disabled ? "\n font-weight: ".concat(theme.fontWeights.semibold, ";\n ").concat(dsSystem.safariAndFirefoxBold("#353C46"), "\n\n &:hover {\n ").concat(dsSystem.safariAndFirefoxBold("#1E79C2"), "\n }\n \n ") : "\n \n ";
|
|
108
|
-
}, _ref13 => {
|
|
109
|
-
let {
|
|
110
|
-
theme,
|
|
111
|
-
disabled
|
|
112
|
-
} = _ref13;
|
|
113
|
-
return disabled ? "\n color: ".concat(theme.colors.neutral[500], ";\n cursor: not-allowed;\n ") : "\n &:hover {\n color: ".concat(theme.colors.brand[600], ";\n }\n ");
|
|
114
|
-
}, _ref14 => {
|
|
115
|
-
let {
|
|
116
|
-
theme,
|
|
117
|
-
showSeparator,
|
|
118
|
-
tabType
|
|
119
|
-
} = _ref14;
|
|
120
|
-
return showSeparator ? "\n &:not(:last-of-type):before\n {\n content: \"\";\n position: absolute;\n width: 1px;\n right: -16px;\n top: 50%;\n transform: translateY(-50%);\n height: ".concat(tabType === constants.TabTypes.SUBTABS ? "10px" : "16px", ";\n background: ").concat(theme.colors.neutral[400], ";\n }") : "";
|
|
121
|
-
}, _ref15 => {
|
|
122
|
-
let {
|
|
123
|
-
theme,
|
|
124
|
-
isDSMobile,
|
|
125
|
-
tabType,
|
|
126
|
-
isActive
|
|
127
|
-
} = _ref15;
|
|
128
|
-
return !isDSMobile ? "\n &:focus {\n outline: none;\n &:after {\n position: absolute;\n content: '';\n top: 0;\n left: -16px;\n width: calc(100% + 32px);\n height: 100%;\n z-index: 5;\n border-radius: 2px;\n border: 2px solid ".concat(theme.colors.brand[700], ";\n }\n\n ").concat(tabType !== constants.TabTypes.SUBTABS && isActive ? "\n &:before {\n position: absolute;\n content: '';\n left: -16px;\n right: 0;\n top: calc(100% - 2px);\n transform: none;\n width: calc(100% + 32px);\n height: 2px;\n z-index: 10;\n background: linear-gradient(to right, transparent 0px, transparent 12px, white 12px, white 16px, transparent 16px,transparent calc(100% - 16px), white calc(100% - 16px), white calc(100% - 12px), transparent calc(100% - 12px), transparent 100%);\n }\n " : "", "\n }\n \n ") : "";
|
|
129
|
-
}, _ref16 => {
|
|
130
|
-
let {
|
|
131
|
-
theme,
|
|
132
|
-
isActive,
|
|
133
|
-
disabled,
|
|
134
|
-
isDSMobile
|
|
135
|
-
} = _ref16;
|
|
136
|
-
return isDSMobile ? "\n height: 40px;\n color: ".concat(theme.colors.brand[600], ";\n font-weight: ").concat(theme.fontWeights.regular, ";\n padding: 0;\n font-size: 13px;\n line-height: 1.3;\n ").concat(dsSystem.onlySafariAndFirefox('-webkit-text-stroke: 0.4px transparent;'), " \n\n &:focus {\n font-weight: ").concat(theme.fontWeights.regular, ";\n font-size: 13px;\n ").concat(dsSystem.safariAndFirefoxBold('#006AA9'), "\n }\n\n ").concat(isActive ? "\n font-weight: ".concat(theme.fontWeights.regular, ";\n font-size: 13px;\n ").concat(dsSystem.safariAndFirefoxBold('#006AA9'), "\n ") : "", "\n\n ").concat(isActive && !disabled ? "\n font-size: 13px;\n color: ".concat(theme.colors.brand[700], ";\n line-height: 1.3;\n font-weight: ").concat(theme.fontWeights.regular, ";\n -webkit-font-smoothing: subpixel-antialiased; \n -webkit-text-stroke: 0.4px ").concat(theme.colors.brand[700], ";") : "", "\n\n ").concat(!disabled ? "\n &:hover,\n &:focus {\n outline: none;\n color: ".concat(theme.colors.brand[700], ";\n ").concat(dsSystem.safariAndFirefoxBold('#006AA9'), "\n }") : "", "\n\n ") : "";
|
|
137
|
-
});
|
|
138
|
-
const StyledSubTabsList = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
139
|
-
componentId: "sc-3hla56-3"
|
|
140
|
-
})(["position:relative;display:flex;flex-wrap:nowrap;flex:1;width:100%;", ""], _ref17 => {
|
|
141
|
-
let {
|
|
142
|
-
withCarousel
|
|
143
|
-
} = _ref17;
|
|
144
|
-
return withCarousel ? 'max-width: 100%;' : '';
|
|
145
|
-
});
|
|
146
|
-
const StyledTabList = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
147
|
-
componentId: "sc-3hla56-4"
|
|
148
|
-
})(["position:relative;display:flex;flex-wrap:nowrap;flex:1;width:100%;", " ", " ", "{padding-bottom:0;padding-top:0;}", " ", " ", " ", "{", "}", "{background:", ";}"], _ref18 => {
|
|
149
|
-
let {
|
|
150
|
-
withCarousel,
|
|
151
|
-
isDSMobile
|
|
152
|
-
} = _ref18;
|
|
153
|
-
return withCarousel && !isDSMobile ? "max-width: 100%;" : '';
|
|
154
|
-
}, _ref19 => {
|
|
155
|
-
let {
|
|
156
|
-
theme,
|
|
157
|
-
isDSMobile,
|
|
158
|
-
tabType
|
|
159
|
-
} = _ref19;
|
|
160
|
-
return tabType !== constants.TabTypes.NORMAL_SMALL && !isDSMobile ? "\n &:after {\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n box-shadow: 0px 0px 0px 1px ".concat(theme.colors.neutral[400], ";\n pointer-events: none;\n bottom: 0px;\n }\n ") : "";
|
|
161
|
-
}, StyledTabButton, _ref20 => {
|
|
162
|
-
let {
|
|
163
|
-
theme,
|
|
164
|
-
isDSMobile
|
|
165
|
-
} = _ref20;
|
|
166
|
-
return isDSMobile ? "\n \n background: ".concat(theme.colors.brand[200], ";") : "";
|
|
167
|
-
}, mobileGradientsSettings, _ref21 => {
|
|
168
|
-
let {
|
|
169
|
-
isDSMobile,
|
|
170
|
-
fixedTabsHeaders
|
|
171
|
-
} = _ref21;
|
|
172
|
-
return isDSMobile ? "\n ".concat(!fixedTabsHeaders ? "\n z-index: 0;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n &::-webkit-scrollbar {\n display: none;\n }" : "\n display: flex;\n ".concat(StyledTabButton, " {\n flex: 1;\n overflow-x: hidden;\n }")) : "";
|
|
173
|
-
}, StyledSelectionIndicator, _ref22 => {
|
|
174
|
-
let {
|
|
175
|
-
indicatorStyle
|
|
176
|
-
} = _ref22;
|
|
177
|
-
return "\n width: ".concat(indicatorStyle.width, ";\n left: ").concat(indicatorStyle.left, ";\n ");
|
|
178
|
-
}, StyledSelectionIndicator, _ref23 => {
|
|
179
|
-
let {
|
|
180
|
-
theme,
|
|
181
|
-
indicatorStyle,
|
|
182
|
-
isDSMobile
|
|
183
|
-
} = _ref23;
|
|
184
|
-
return !isDSMobile ? indicatorStyle.backgroundWithTransparent : theme.colors.brand[600];
|
|
185
|
-
});
|
|
186
|
-
const StyledRequiredMark = /*#__PURE__*/styled__default["default"].span.withConfig({
|
|
187
|
-
componentId: "sc-3hla56-5"
|
|
188
|
-
})(["color:", ";font-size:6px;margin-left:2px;position:absolute;top:5px;"], _ref24 => {
|
|
189
|
-
let {
|
|
190
|
-
theme
|
|
191
|
-
} = _ref24;
|
|
192
|
-
return theme.colors.danger[900];
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
exports.StyledRequiredMark = StyledRequiredMark;
|
|
196
|
-
exports.StyledSelectionIndicator = StyledSelectionIndicator;
|
|
197
|
-
exports.StyledSubTabsList = StyledSubTabsList;
|
|
198
|
-
exports.StyledTabButton = StyledTabButton;
|
|
199
|
-
exports.StyledTabList = StyledTabList;
|
|
200
|
-
exports.StyledTabWrapper = StyledTabWrapper;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
require('core-js/modules/web.dom-collections.iterator.js');
|
|
6
|
-
var React = require('react');
|
|
7
|
-
var useResizeObserver = require('@react-hook/resize-observer');
|
|
8
|
-
var helpers = require('../../utils/helpers.js');
|
|
9
|
-
var DSTabsCTX = require('../../DSTabsCTX.js');
|
|
10
|
-
var constants = require('../../utils/constants.js');
|
|
11
|
-
|
|
12
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
13
|
-
|
|
14
|
-
var useResizeObserver__default = /*#__PURE__*/_interopDefaultLegacy(useResizeObserver);
|
|
15
|
-
|
|
16
|
-
const useTabBar = () => {
|
|
17
|
-
const {
|
|
18
|
-
actualActiveTab,
|
|
19
|
-
actualActiveTabRef,
|
|
20
|
-
tabsListRef,
|
|
21
|
-
props: {
|
|
22
|
-
showSelectionIndicator,
|
|
23
|
-
isDSMobile,
|
|
24
|
-
fixedTabsHeaders
|
|
25
|
-
}
|
|
26
|
-
} = React.useContext(DSTabsCTX.DSTabsContext);
|
|
27
|
-
const [mobileGradients, setMobileGradients] = React.useState({
|
|
28
|
-
left: false,
|
|
29
|
-
right: false
|
|
30
|
-
});
|
|
31
|
-
const [indicatorStyle, setIndicatorStyle] = React.useState(constants.defaultIndicatorStyles);
|
|
32
|
-
const getIndicatorStyles = React.useCallback(() => {
|
|
33
|
-
if (tabsListRef.current) {
|
|
34
|
-
const tabList = tabsListRef.current;
|
|
35
|
-
const activeTabButton = actualActiveTabRef.current;
|
|
36
|
-
if (!activeTabButton || !helpers.isElementVisible(activeTabButton, tabList)) return constants.defaultIndicatorStyles; // The missingMargins are to make the selection indicator white marks work properly in desktop, we need
|
|
37
|
-
// the full width of the tab button with margins.
|
|
38
|
-
|
|
39
|
-
const missingMargins = isDSMobile ? 0 : 16;
|
|
40
|
-
const tabClientWidth = isDSMobile && !fixedTabsHeaders ? activeTabButton.clientWidth : activeTabButton.clientWidth + missingMargins * 2; // The reason why we use the tabList.scrollLeft is due to the centerOnTabChange (only in Mobile and FlexibleTabs)
|
|
41
|
-
// behavior that adds scroll to the tabList
|
|
42
|
-
|
|
43
|
-
const position = isDSMobile && !fixedTabsHeaders ? activeTabButton.getBoundingClientRect().left - tabList.getBoundingClientRect().left + tabList.scrollLeft : activeTabButton.getBoundingClientRect().left - tabList.getBoundingClientRect().left - missingMargins;
|
|
44
|
-
const backgroundWithTransparent = "linear-gradient(to right, transparent 0px, transparent 16px, #1E79C2 16px, #1E79C2 ".concat(tabClientWidth - 16, "px,transparent ").concat(tabClientWidth - 16, "px,transparent ").concat(tabClientWidth, "px )");
|
|
45
|
-
return {
|
|
46
|
-
left: "".concat(position, "px"),
|
|
47
|
-
width: "".concat(tabClientWidth, "px"),
|
|
48
|
-
backgroundWithTransparent
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return constants.defaultIndicatorStyles;
|
|
53
|
-
}, [actualActiveTabRef, fixedTabsHeaders, isDSMobile, tabsListRef]);
|
|
54
|
-
const updateIndicatorStyle = React.useCallback(() => setTimeout(() => setIndicatorStyle(getIndicatorStyles()), 100), [getIndicatorStyles, setIndicatorStyle]);
|
|
55
|
-
useResizeObserver__default["default"](tabsListRef, updateIndicatorStyle);
|
|
56
|
-
const updateMobileGradients = React.useCallback(() => {
|
|
57
|
-
if (tabsListRef.current && isDSMobile && !fixedTabsHeaders) {
|
|
58
|
-
const {
|
|
59
|
-
scrollLeft,
|
|
60
|
-
scrollWidth,
|
|
61
|
-
clientWidth
|
|
62
|
-
} = tabsListRef.current;
|
|
63
|
-
setMobileGradients({
|
|
64
|
-
left: helpers.shouldHaveLeftGradient(scrollLeft),
|
|
65
|
-
right: helpers.shouldHaveRightGradient(scrollLeft, clientWidth, scrollWidth)
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}, [fixedTabsHeaders, isDSMobile, tabsListRef]);
|
|
69
|
-
React.useLayoutEffect(() => {
|
|
70
|
-
if (showSelectionIndicator) {
|
|
71
|
-
updateIndicatorStyle();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (isDSMobile && !fixedTabsHeaders) {
|
|
75
|
-
updateMobileGradients();
|
|
76
|
-
}
|
|
77
|
-
}, [updateMobileGradients, showSelectionIndicator, updateIndicatorStyle, isDSMobile, fixedTabsHeaders, actualActiveTab]);
|
|
78
|
-
return {
|
|
79
|
-
updateIndicatorStyle,
|
|
80
|
-
setIndicatorStyle,
|
|
81
|
-
indicatorStyle,
|
|
82
|
-
mobileGradients,
|
|
83
|
-
updateMobileGradients
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
exports.useTabBar = useTabBar;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
require('core-js/modules/esnext.async-iterator.filter.js');
|
|
6
|
-
require('core-js/modules/esnext.iterator.constructor.js');
|
|
7
|
-
require('core-js/modules/esnext.iterator.filter.js');
|
|
8
|
-
require('core-js/modules/esnext.async-iterator.for-each.js');
|
|
9
|
-
require('core-js/modules/esnext.iterator.for-each.js');
|
|
10
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
11
|
-
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
12
|
-
var React = require('react');
|
|
13
|
-
var TabsPanels = require('../tabsPanel/TabsPanels.js');
|
|
14
|
-
var TabBar = require('../tabBar/TabBar.js');
|
|
15
|
-
var styles = require('./styles.js');
|
|
16
|
-
var DSTabsCTX = require('../../DSTabsCTX.js');
|
|
17
|
-
var DSTabsDatatestid = require('../../DSTabsDatatestid.js');
|
|
18
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
19
|
-
|
|
20
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
|
-
|
|
22
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
23
|
-
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
24
|
-
|
|
25
|
-
var _TabBar, _TabsPanels;
|
|
26
|
-
|
|
27
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
-
|
|
29
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
30
|
-
const TabsContent = () => {
|
|
31
|
-
const {
|
|
32
|
-
props: {
|
|
33
|
-
containerProps,
|
|
34
|
-
innerRef,
|
|
35
|
-
tabsListAriaLabel,
|
|
36
|
-
tabBarExtraContent
|
|
37
|
-
}
|
|
38
|
-
} = React.useContext(DSTabsCTX.DSTabsContext);
|
|
39
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({}, containerProps), {}, {
|
|
40
|
-
ref: innerRef,
|
|
41
|
-
"data-testid": DSTabsDatatestid.DSTabsDatatestid.TABS_CONTAINER,
|
|
42
|
-
children: [/*#__PURE__*/_jsx__default["default"](styles.StyledTabBarContainer, {
|
|
43
|
-
"aria-label": tabsListAriaLabel,
|
|
44
|
-
role: "tablist"
|
|
45
|
-
}, void 0, _TabBar || (_TabBar = /*#__PURE__*/_jsx__default["default"](TabBar.TabBar, {})), tabBarExtraContent), _TabsPanels || (_TabsPanels = /*#__PURE__*/_jsx__default["default"](TabsPanels.TabsPanels, {}))]
|
|
46
|
-
}));
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
exports.TabsContent = TabsContent;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var styled = require('styled-components');
|
|
6
|
-
|
|
7
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
-
|
|
9
|
-
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
10
|
-
|
|
11
|
-
const StyledTabBarContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
12
|
-
componentId: "sc-vm3k1y-0"
|
|
13
|
-
})(["display:flex;overflow-x:hidden;"]);
|
|
14
|
-
|
|
15
|
-
exports.StyledTabBarContainer = StyledTabBarContainer;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var _jsx = require('@babel/runtime/helpers/jsx');
|
|
6
|
-
require('core-js/modules/esnext.async-iterator.map.js');
|
|
7
|
-
require('core-js/modules/esnext.iterator.map.js');
|
|
8
|
-
var React = require('react');
|
|
9
|
-
var SwipeableViews = require('react-swipeable-views');
|
|
10
|
-
var helpers = require('../../utils/helpers.js');
|
|
11
|
-
var styles = require('./styles.js');
|
|
12
|
-
var DSTabsCTX = require('../../DSTabsCTX.js');
|
|
13
|
-
var useTabsCallbacks = require('../../utils/hooks/useTabsCallbacks.js');
|
|
14
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
15
|
-
|
|
16
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
-
|
|
18
|
-
var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
|
|
19
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
20
|
-
var SwipeableViews__default = /*#__PURE__*/_interopDefaultLegacy(SwipeableViews);
|
|
21
|
-
|
|
22
|
-
const TabsPanels = () => {
|
|
23
|
-
const {
|
|
24
|
-
actualActiveTab,
|
|
25
|
-
focusableTabsRef,
|
|
26
|
-
props: {
|
|
27
|
-
animated,
|
|
28
|
-
enableMouseEvents,
|
|
29
|
-
onlyRenderActiveTab,
|
|
30
|
-
children: tabs,
|
|
31
|
-
isDSMobile
|
|
32
|
-
}
|
|
33
|
-
} = React.useContext(DSTabsCTX.DSTabsContext);
|
|
34
|
-
const {
|
|
35
|
-
handleOnTabChange,
|
|
36
|
-
handleOnMouseDown
|
|
37
|
-
} = useTabsCallbacks.useTabsCallbacks();
|
|
38
|
-
const handleOnChangeIndex = React.useCallback(index => {
|
|
39
|
-
handleOnTabChange(helpers.getIdByIndex(tabs, index));
|
|
40
|
-
if (focusableTabsRef.current) focusableTabsRef.current[index].click();
|
|
41
|
-
}, [focusableTabsRef, handleOnTabChange, tabs]);
|
|
42
|
-
const panels = React.useMemo(() => React__default["default"].Children.map(tabs, tab => {
|
|
43
|
-
const {
|
|
44
|
-
tabId: panelId = '',
|
|
45
|
-
style,
|
|
46
|
-
children: content
|
|
47
|
-
} = tab.props;
|
|
48
|
-
const isActive = actualActiveTab === panelId;
|
|
49
|
-
const shouldRender = !onlyRenderActiveTab || isActive;
|
|
50
|
-
return shouldRender && /*#__PURE__*/_jsx__default["default"](styles.StyledPanelContainer, {
|
|
51
|
-
id: panelId,
|
|
52
|
-
"aria-labelledby": "".concat(panelId, "-label"),
|
|
53
|
-
"aria-hidden": !isActive,
|
|
54
|
-
"data-panel-id": panelId,
|
|
55
|
-
"data-testid": "ds-tabs-tab-panel",
|
|
56
|
-
hidden: !isActive,
|
|
57
|
-
onMouseDown: handleOnMouseDown,
|
|
58
|
-
role: "tabpanel",
|
|
59
|
-
style: style,
|
|
60
|
-
isDSMobile: isDSMobile
|
|
61
|
-
}, panelId, content);
|
|
62
|
-
}), [actualActiveTab, handleOnMouseDown, isDSMobile, onlyRenderActiveTab, tabs]);
|
|
63
|
-
|
|
64
|
-
if (animated) {
|
|
65
|
-
return /*#__PURE__*/_jsx__default["default"](SwipeableViews__default["default"], {
|
|
66
|
-
enableMouseEvents: enableMouseEvents,
|
|
67
|
-
index: helpers.getIndexById(tabs, actualActiveTab),
|
|
68
|
-
onChangeIndex: handleOnChangeIndex
|
|
69
|
-
}, void 0, panels);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
73
|
-
children: panels
|
|
74
|
-
});
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
exports.TabsPanels = TabsPanels;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var styled = require('styled-components');
|
|
6
|
-
|
|
7
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
|
-
|
|
9
|
-
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
10
|
-
|
|
11
|
-
const StyledPanelContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
|
|
12
|
-
componentId: "sc-oxw5jq-0"
|
|
13
|
-
})(["padding-top:8px;&:focus{outline:none;}", " ", ""], _ref => {
|
|
14
|
-
let {
|
|
15
|
-
hidden
|
|
16
|
-
} = _ref;
|
|
17
|
-
return hidden ? 'visibility: hidden;' : '';
|
|
18
|
-
}, _ref2 => {
|
|
19
|
-
let {
|
|
20
|
-
isDSMobile
|
|
21
|
-
} = _ref2;
|
|
22
|
-
return isDSMobile ? "padding-top: 0;" : "";
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
exports.StyledPanelContainer = StyledPanelContainer;
|
package/cjs/propTypes.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var reactDesc = require('react-desc');
|
|
6
|
-
var constants = require('./utils/constants.js');
|
|
7
|
-
|
|
8
|
-
const tabPropTypes = {
|
|
9
|
-
tabId: reactDesc.PropTypes.string.description('Unique Tab id.').defaultValue(''),
|
|
10
|
-
title: reactDesc.PropTypes.string.description('Tab title.').defaultValue(''),
|
|
11
|
-
required: reactDesc.PropTypes.bool.description('Show a required mark next to the title.').defaultValue(false),
|
|
12
|
-
disabled: reactDesc.PropTypes.bool.description('Disables Tab.').defaultValue(false)
|
|
13
|
-
};
|
|
14
|
-
const tabsPropTypes = {
|
|
15
|
-
animated: reactDesc.PropTypes.bool.description('Whether the Tab transition should animate or not.').defaultValue(true),
|
|
16
|
-
enableMouseEvents: reactDesc.PropTypes.bool.description('Enables Tab transition with mouse drag events.').defaultValue(false),
|
|
17
|
-
allowTextSelection: reactDesc.PropTypes.bool.description('Allows text selection when mouse drag events are active.').defaultValue(false),
|
|
18
|
-
onTabChange: reactDesc.PropTypes.func.description('Handler when a user clicks on a different Tab.').defaultValue('() => {}'),
|
|
19
|
-
type: reactDesc.PropTypes.oneOf(constants.TabTypesValuesAsArray).description('Tab type.').defaultValue(constants.TabTypesValuesAsArray[0]),
|
|
20
|
-
tabBarExtraContent: reactDesc.PropTypes.element.description('Extra content next to the Tab Bar.').defaultValue(undefined),
|
|
21
|
-
onlyRenderActiveTab: reactDesc.PropTypes.bool.description('Only renders the active Tab in the DOM.').defaultValue(false),
|
|
22
|
-
withCarousel: reactDesc.PropTypes.bool.description('Activate carousel behavior.').defaultValue(false),
|
|
23
|
-
activeTab: reactDesc.PropTypes.string.description('Passing a value makes DSTabs a controlled component.').defaultValue('First DSTab children.'),
|
|
24
|
-
children: reactDesc.PropTypes.node.description('Use DSTab component as children.').isRequired,
|
|
25
|
-
tabsListAriaLabel: reactDesc.PropTypes.string.description('Aria label for the list.').defaultValue('Tab list.'),
|
|
26
|
-
containerProps: reactDesc.PropTypes.object.description('Additional properties for the container.').defaultValue({}),
|
|
27
|
-
innerRef: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.func, reactDesc.PropTypes.shape({
|
|
28
|
-
current: reactDesc.PropTypes.any
|
|
29
|
-
})]).description('Ref to the container.').defaultValue(undefined)
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
exports.tabPropTypes = tabPropTypes;
|
|
33
|
-
exports.tabsPropTypes = tabsPropTypes;
|
package/cjs/utils/constants.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const TabTypes = {
|
|
6
|
-
NORMAL: 'normal',
|
|
7
|
-
NORMAL_SMALL: 'normal_small',
|
|
8
|
-
SUBTABS: 'subtabs'
|
|
9
|
-
};
|
|
10
|
-
const TabTypesValuesAsArray = Object.values(TabTypes);
|
|
11
|
-
const MOBILE_GRADIENT_WIDTH = 24;
|
|
12
|
-
const defaultIndicatorStyles = {
|
|
13
|
-
left: '0px',
|
|
14
|
-
width: '0px',
|
|
15
|
-
backgroundWithTransparent: ''
|
|
16
|
-
};
|
|
17
|
-
const gradientOffsetsAccordingType = {
|
|
18
|
-
normal_small: 14,
|
|
19
|
-
normal: 16,
|
|
20
|
-
subtabs: 16,
|
|
21
|
-
fixedTabsHeaders: 0
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
exports.MOBILE_GRADIENT_WIDTH = MOBILE_GRADIENT_WIDTH;
|
|
25
|
-
exports.TabTypes = TabTypes;
|
|
26
|
-
exports.TabTypesValuesAsArray = TabTypesValuesAsArray;
|
|
27
|
-
exports.defaultIndicatorStyles = defaultIndicatorStyles;
|
|
28
|
-
exports.gradientOffsetsAccordingType = gradientOffsetsAccordingType;
|
package/cjs/utils/helpers.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var constants = require('./constants.js');
|
|
6
|
-
|
|
7
|
-
const isElementVisible = (tab, tabList) => {
|
|
8
|
-
const tabDimensions = tab.getBoundingClientRect();
|
|
9
|
-
const tabListDimensions = tabList.getBoundingClientRect();
|
|
10
|
-
return tabDimensions.left <= tabListDimensions.left ? tabListDimensions.left - tabDimensions.left <= tabDimensions.width : tabDimensions.right - tabListDimensions.right <= tabDimensions.width;
|
|
11
|
-
};
|
|
12
|
-
const isElementVisibleCarousel = function (tab, tabContainer) {
|
|
13
|
-
let firstOrLastItem = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
14
|
-
|
|
15
|
-
if (tab && tabContainer) {
|
|
16
|
-
const tabDimensions = tab.getBoundingClientRect();
|
|
17
|
-
const tabContainerDimensions = tabContainer.getBoundingClientRect();
|
|
18
|
-
const offset = firstOrLastItem ? 16 : 32;
|
|
19
|
-
const tabDimensionsLeft = Math.floor(tabDimensions.left - offset);
|
|
20
|
-
const tabDimensionsRight = Math.floor(tabDimensions.right + offset);
|
|
21
|
-
const tabContainerDimensionsLeft = Math.floor(tabContainerDimensions.left);
|
|
22
|
-
const tabContainerDimensionsRight = Math.floor(tabContainerDimensions.right);
|
|
23
|
-
return tabDimensionsLeft >= tabContainerDimensionsLeft && tabDimensionsRight <= tabContainerDimensionsRight;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return false;
|
|
27
|
-
};
|
|
28
|
-
const centerTab = _ref => {
|
|
29
|
-
let {
|
|
30
|
-
e,
|
|
31
|
-
listRef
|
|
32
|
-
} = _ref;
|
|
33
|
-
|
|
34
|
-
if (listRef.current) {
|
|
35
|
-
const {
|
|
36
|
-
offsetLeft
|
|
37
|
-
} = e === null || e === void 0 ? void 0 : e.target;
|
|
38
|
-
const {
|
|
39
|
-
width: tabWidth
|
|
40
|
-
} = (e === null || e === void 0 ? void 0 : e.target).getBoundingClientRect();
|
|
41
|
-
const {
|
|
42
|
-
width: listWidth
|
|
43
|
-
} = listRef.current.getBoundingClientRect();
|
|
44
|
-
const extraSideSpace = listWidth - tabWidth;
|
|
45
|
-
const leftOffsetToCenter = extraSideSpace > 0 ? extraSideSpace / 2 : 0;
|
|
46
|
-
const centeredLeftOffset = offsetLeft > leftOffsetToCenter ? offsetLeft - leftOffsetToCenter : 0;
|
|
47
|
-
listRef.current.scrollTo({
|
|
48
|
-
top: 0,
|
|
49
|
-
left: centeredLeftOffset,
|
|
50
|
-
behavior: 'smooth'
|
|
51
|
-
});
|
|
52
|
-
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const getVisibleDimensions = (node, referenceNode) => {
|
|
56
|
-
const nodeDimensions = node.getBoundingClientRect();
|
|
57
|
-
const referenceNodeDimensions = referenceNode.getBoundingClientRect();
|
|
58
|
-
return {
|
|
59
|
-
width: Math.min(node.clientWidth, referenceNodeDimensions.left + referenceNode.clientWidth - nodeDimensions.left, node.clientWidth - (referenceNodeDimensions.left - nodeDimensions.left)),
|
|
60
|
-
height: Math.min(node.clientHeight, referenceNodeDimensions.top + referenceNode.clientHeight - nodeDimensions.top, node.clientHeight - (referenceNodeDimensions.top - nodeDimensions.top))
|
|
61
|
-
};
|
|
62
|
-
};
|
|
63
|
-
const getIndexById = (children, activeId) => children && children.findIndex(item => item.props.tabId === activeId);
|
|
64
|
-
const getIdByIndex = (children, index) => children && children[index].props.tabId || '';
|
|
65
|
-
const shouldHaveLeftGradient = scrollLeft => Math.abs(scrollLeft) > constants.MOBILE_GRADIENT_WIDTH;
|
|
66
|
-
const shouldHaveRightGradient = (scrollLeft, clientWidth, scrollWidth) => Math.abs(scrollLeft) <= scrollWidth - (clientWidth + constants.MOBILE_GRADIENT_WIDTH);
|
|
67
|
-
|
|
68
|
-
exports.centerTab = centerTab;
|
|
69
|
-
exports.getIdByIndex = getIdByIndex;
|
|
70
|
-
exports.getIndexById = getIndexById;
|
|
71
|
-
exports.getVisibleDimensions = getVisibleDimensions;
|
|
72
|
-
exports.isElementVisible = isElementVisible;
|
|
73
|
-
exports.isElementVisibleCarousel = isElementVisibleCarousel;
|
|
74
|
-
exports.shouldHaveLeftGradient = shouldHaveLeftGradient;
|
|
75
|
-
exports.shouldHaveRightGradient = shouldHaveRightGradient;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var React = require('react');
|
|
6
|
-
var DSTabsCTX = require('../../DSTabsCTX.js');
|
|
7
|
-
|
|
8
|
-
/* eslint-disable max-statements */
|
|
9
|
-
const useKeyboardNavigation = () => {
|
|
10
|
-
const {
|
|
11
|
-
focusableTabsRef
|
|
12
|
-
} = React.useContext(DSTabsCTX.DSTabsContext);
|
|
13
|
-
const {
|
|
14
|
-
firstSubtabInternalRef,
|
|
15
|
-
lastTabInternalRef
|
|
16
|
-
} = React.useContext(DSTabsCTX.DSTabsCrossRefContext);
|
|
17
|
-
const handleOnKeyDown = React.useCallback(e => {
|
|
18
|
-
if (e.key === 'ArrowRight' && focusableTabsRef.current) {
|
|
19
|
-
var _focusableTabsRef$cur, _focusableTabsRef$cur2;
|
|
20
|
-
|
|
21
|
-
e.preventDefault();
|
|
22
|
-
e.stopPropagation();
|
|
23
|
-
const nextTab = focusableTabsRef.current[(focusableTabsRef === null || focusableTabsRef === void 0 ? void 0 : (_focusableTabsRef$cur = focusableTabsRef.current) === null || _focusableTabsRef$cur === void 0 ? void 0 : (_focusableTabsRef$cur2 = _focusableTabsRef$cur.indexOf) === null || _focusableTabsRef$cur2 === void 0 ? void 0 : _focusableTabsRef$cur2.call(_focusableTabsRef$cur, e.target)) + 1];
|
|
24
|
-
if (nextTab) nextTab.focus();
|
|
25
|
-
if (!nextTab) return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (e.key === 'ArrowLeft' && focusableTabsRef.current) {
|
|
29
|
-
var _focusableTabsRef$cur3, _focusableTabsRef$cur4;
|
|
30
|
-
|
|
31
|
-
e.preventDefault();
|
|
32
|
-
e.stopPropagation();
|
|
33
|
-
const prevTab = focusableTabsRef.current[(focusableTabsRef === null || focusableTabsRef === void 0 ? void 0 : (_focusableTabsRef$cur3 = focusableTabsRef.current) === null || _focusableTabsRef$cur3 === void 0 ? void 0 : (_focusableTabsRef$cur4 = _focusableTabsRef$cur3.indexOf) === null || _focusableTabsRef$cur4 === void 0 ? void 0 : _focusableTabsRef$cur4.call(_focusableTabsRef$cur3, e.target)) - 1];
|
|
34
|
-
if (prevTab) prevTab.focus();
|
|
35
|
-
if (!prevTab) return;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (e.key === 'ArrowDown') {
|
|
39
|
-
var _firstSubtabInternalR;
|
|
40
|
-
|
|
41
|
-
e.preventDefault();
|
|
42
|
-
e.stopPropagation();
|
|
43
|
-
const canFocusCrossTabs = (firstSubtabInternalRef === null || firstSubtabInternalRef === void 0 ? void 0 : firstSubtabInternalRef.current) && (lastTabInternalRef === null || lastTabInternalRef === void 0 ? void 0 : lastTabInternalRef.current);
|
|
44
|
-
if (canFocusCrossTabs) (_firstSubtabInternalR = firstSubtabInternalRef.current) === null || _firstSubtabInternalR === void 0 ? void 0 : _firstSubtabInternalR.focus();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (e.key === 'ArrowUp') {
|
|
48
|
-
var _lastTabInternalRef$c;
|
|
49
|
-
|
|
50
|
-
e.preventDefault();
|
|
51
|
-
e.stopPropagation();
|
|
52
|
-
const canFocusCrossTabs = (firstSubtabInternalRef === null || firstSubtabInternalRef === void 0 ? void 0 : firstSubtabInternalRef.current) && (lastTabInternalRef === null || lastTabInternalRef === void 0 ? void 0 : lastTabInternalRef.current);
|
|
53
|
-
if (canFocusCrossTabs) (_lastTabInternalRef$c = lastTabInternalRef.current) === null || _lastTabInternalRef$c === void 0 ? void 0 : _lastTabInternalRef$c.focus();
|
|
54
|
-
}
|
|
55
|
-
}, [firstSubtabInternalRef, lastTabInternalRef, focusableTabsRef]);
|
|
56
|
-
return {
|
|
57
|
-
handleOnKeyDown
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
exports.useKeyboardNavigation = useKeyboardNavigation;
|