@cleartrip/ct-design-tabs 1.1.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/StyledCounter/StyledCounter.d.ts +9 -0
- package/dist/StyledCounter/StyledCounter.d.ts.map +1 -0
- package/dist/StyledCounter/index.d.ts +2 -0
- package/dist/StyledCounter/index.d.ts.map +1 -0
- package/dist/StyledCounter/style.d.ts +10 -0
- package/dist/StyledCounter/style.d.ts.map +1 -0
- package/dist/StyledCounter/type.d.ts +4 -0
- package/dist/StyledCounter/type.d.ts.map +1 -0
- package/dist/TabItem/TabItem.d.ts +26 -0
- package/dist/TabItem/TabItem.d.ts.map +1 -0
- package/dist/TabItem/index.d.ts +3 -0
- package/dist/TabItem/index.d.ts.map +1 -0
- package/dist/TabItem/type.d.ts +23 -0
- package/dist/TabItem/type.d.ts.map +1 -0
- package/dist/Tabs.d.ts +6 -0
- package/dist/Tabs.d.ts.map +1 -0
- package/dist/ct-design-tabs.browser.cjs.js +232 -0
- package/dist/ct-design-tabs.browser.cjs.js.map +1 -0
- package/dist/ct-design-tabs.browser.esm.js +217 -0
- package/dist/ct-design-tabs.browser.esm.js.map +1 -0
- package/dist/ct-design-tabs.cjs.js +288 -0
- package/dist/ct-design-tabs.cjs.js.map +1 -0
- package/dist/ct-design-tabs.esm.js +271 -0
- package/dist/ct-design-tabs.esm.js.map +1 -0
- package/dist/ct-design-tabs.umd.js +374 -0
- package/dist/ct-design-tabs.umd.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/stats.html +6303 -0
- package/dist/style.d.ts +11 -0
- package/dist/style.d.ts.map +1 -0
- package/dist/type.d.ts +25 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/useEventCallback.d.ts +4 -0
- package/dist/useEventCallback.d.ts.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var styled = require('styled-components');
|
|
6
|
+
var react = require('react');
|
|
7
|
+
var ctDesignButton = require('@cleartrip/ct-design-button');
|
|
8
|
+
var useTheme = require('@cleartrip/ct-design-use-theme');
|
|
9
|
+
var ctDesignTypography = require('@cleartrip/ct-design-typography');
|
|
10
|
+
var useMergeRefs = require('@cleartrip/ct-design-use-merge-refs');
|
|
11
|
+
var usePropState = require('@cleartrip/ct-design-use-props-state');
|
|
12
|
+
|
|
13
|
+
function _interopDefault(e) {
|
|
14
|
+
return e && e.__esModule ? e : { default: e };
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
var styled__default = /*#__PURE__*/ _interopDefault(styled);
|
|
18
|
+
var useTheme__default = /*#__PURE__*/ _interopDefault(useTheme);
|
|
19
|
+
var useMergeRefs__default = /*#__PURE__*/ _interopDefault(useMergeRefs);
|
|
20
|
+
var usePropState__default = /*#__PURE__*/ _interopDefault(usePropState);
|
|
21
|
+
|
|
22
|
+
var getTabStyles = function (_a) {
|
|
23
|
+
var theme = _a.theme,
|
|
24
|
+
isHorizontal = _a.isHorizontal,
|
|
25
|
+
width = _a.width,
|
|
26
|
+
height = _a.height,
|
|
27
|
+
rest = tslib.__rest(_a, ['theme', 'isHorizontal', 'width', 'height']);
|
|
28
|
+
return tslib.__assign(
|
|
29
|
+
{
|
|
30
|
+
display: 'flex',
|
|
31
|
+
flexDirection: isHorizontal ? 'row' : 'column',
|
|
32
|
+
width: width || isHorizontal ? '100%' : '',
|
|
33
|
+
height: height || !isHorizontal ? '100%' : '',
|
|
34
|
+
justifyContent: 'space-between',
|
|
35
|
+
borderBottomWidth: theme.border.width.sm,
|
|
36
|
+
borderColor: theme.color.border.default,
|
|
37
|
+
borderBottomStyle: theme.border.style.solid,
|
|
38
|
+
cursor: 'pointer',
|
|
39
|
+
position: 'relative',
|
|
40
|
+
},
|
|
41
|
+
rest
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var getTabItemStyles = function (_a) {
|
|
46
|
+
_a.theme;
|
|
47
|
+
var rest = tslib.__rest(_a, ['theme']);
|
|
48
|
+
return tslib.__assign({ backgroundColor: 'transparent', outline: 0, border: 0 }, rest);
|
|
49
|
+
};
|
|
50
|
+
var getLabelVariant = function (_a) {
|
|
51
|
+
var size = _a.size;
|
|
52
|
+
switch (size) {
|
|
53
|
+
case 'small': {
|
|
54
|
+
return ctDesignTypography.TypographyVariant.B2;
|
|
55
|
+
}
|
|
56
|
+
case 'medium': {
|
|
57
|
+
return ctDesignTypography.TypographyVariant.B1;
|
|
58
|
+
}
|
|
59
|
+
case 'large': {
|
|
60
|
+
return ctDesignTypography.TypographyVariant.B1;
|
|
61
|
+
}
|
|
62
|
+
default: {
|
|
63
|
+
return ctDesignTypography.TypographyVariant.B2;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var getTabLabelColor = function (_a) {
|
|
68
|
+
var selected = _a.selected,
|
|
69
|
+
theme = _a.theme,
|
|
70
|
+
focusColor = _a.focusColor,
|
|
71
|
+
color = _a.color;
|
|
72
|
+
if (selected) {
|
|
73
|
+
return focusColor || color || theme.color.tab.selectedPrimaryLabel;
|
|
74
|
+
} else {
|
|
75
|
+
return color || theme.color.tab.nonSelectedPrimaryLabel;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var TabItem = react.forwardRef(function (props) {
|
|
79
|
+
var tabKey = props.tabKey,
|
|
80
|
+
onClick = props.onClick,
|
|
81
|
+
tabIndex = props.tabIndex,
|
|
82
|
+
_a = props.selected,
|
|
83
|
+
selected = _a === void 0 ? false : _a,
|
|
84
|
+
label = props.label,
|
|
85
|
+
disabled = props.disabled,
|
|
86
|
+
size = props.size,
|
|
87
|
+
_b = props.tabItemCSS,
|
|
88
|
+
tabItemCSS = _b === void 0 ? { label: {}, Root: {} } : _b,
|
|
89
|
+
css = props.css,
|
|
90
|
+
focusColor = props.focusColor,
|
|
91
|
+
children = props.children;
|
|
92
|
+
var theme = useTheme__default.default();
|
|
93
|
+
var tabItemStyles = getTabItemStyles(
|
|
94
|
+
tslib.__assign(
|
|
95
|
+
tslib.__assign({ theme: theme }, css),
|
|
96
|
+
tabItemCSS === null || tabItemCSS === void 0 ? void 0 : tabItemCSS.Root
|
|
97
|
+
)
|
|
98
|
+
);
|
|
99
|
+
var handleClick = react.useCallback(
|
|
100
|
+
function (event) {
|
|
101
|
+
if (!disabled) {
|
|
102
|
+
onClick(event, props);
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
[tabKey, onClick]
|
|
106
|
+
);
|
|
107
|
+
var _c = tabItemCSS.label,
|
|
108
|
+
color = _c.color;
|
|
109
|
+
tslib.__rest(_c, ['color']);
|
|
110
|
+
return jsxRuntime.jsx(
|
|
111
|
+
ctDesignButton.Button,
|
|
112
|
+
tslib.__assign(
|
|
113
|
+
{ disabled: disabled, css: tabItemStyles, onClick: handleClick, tabIndex: tabIndex },
|
|
114
|
+
{
|
|
115
|
+
children: label
|
|
116
|
+
? jsxRuntime.jsx(
|
|
117
|
+
ctDesignTypography.Typography,
|
|
118
|
+
tslib.__assign(
|
|
119
|
+
{
|
|
120
|
+
variant: getLabelVariant({ size: size }),
|
|
121
|
+
colorCode: getTabLabelColor({
|
|
122
|
+
selected: selected,
|
|
123
|
+
theme: theme,
|
|
124
|
+
focusColor: focusColor,
|
|
125
|
+
color: color,
|
|
126
|
+
}),
|
|
127
|
+
},
|
|
128
|
+
{ children: label }
|
|
129
|
+
)
|
|
130
|
+
)
|
|
131
|
+
: children,
|
|
132
|
+
}
|
|
133
|
+
)
|
|
134
|
+
);
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
var useMounted = function () {
|
|
138
|
+
var _a = react.useState(false),
|
|
139
|
+
isMounted = _a[0],
|
|
140
|
+
setIsMounted = _a[1];
|
|
141
|
+
react.useEffect(function () {
|
|
142
|
+
setIsMounted(true);
|
|
143
|
+
}, []);
|
|
144
|
+
return isMounted;
|
|
145
|
+
};
|
|
146
|
+
var StyledTab = styled__default.default.div(function (_a) {
|
|
147
|
+
var css = _a.css,
|
|
148
|
+
theme = _a.theme,
|
|
149
|
+
_b = _a.isHorizontal,
|
|
150
|
+
isHorizontal = _b === void 0 ? true : _b,
|
|
151
|
+
width = _a.width,
|
|
152
|
+
height = _a.height;
|
|
153
|
+
return getTabStyles(
|
|
154
|
+
tslib.__assign({ theme: theme, isHorizontal: isHorizontal, width: width, height: height }, css)
|
|
155
|
+
);
|
|
156
|
+
});
|
|
157
|
+
var StyledFlexContainer = styled__default.default.div(function (_a) {
|
|
158
|
+
_a.theme;
|
|
159
|
+
return {
|
|
160
|
+
display: 'flex',
|
|
161
|
+
flexDirection: 'row',
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
var Indicator = styled__default.default.div(function (_a) {
|
|
165
|
+
var theme = _a.theme,
|
|
166
|
+
width = _a.width,
|
|
167
|
+
left = _a.left,
|
|
168
|
+
color = _a.color;
|
|
169
|
+
return {
|
|
170
|
+
position: 'absolute',
|
|
171
|
+
height: '2px',
|
|
172
|
+
bottom: 0,
|
|
173
|
+
transition: 'all ease-in 0.3s',
|
|
174
|
+
backgroundColor: color || theme.color.background.primary,
|
|
175
|
+
width: width,
|
|
176
|
+
left: left,
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
var Tab = react.forwardRef(function (_a, forwardedRef) {
|
|
180
|
+
_a.children;
|
|
181
|
+
var tabList = _a.tabList,
|
|
182
|
+
_b = _a.selectedTabIndex,
|
|
183
|
+
selectedTabIndex = _b === void 0 ? 0 : _b,
|
|
184
|
+
onClick = _a.onClick,
|
|
185
|
+
_c = _a.isHorizontal,
|
|
186
|
+
isHorizontal = _c === void 0 ? true : _c,
|
|
187
|
+
css = _a.css,
|
|
188
|
+
tabCSS = _a.tabCSS,
|
|
189
|
+
focusColor = _a.focusColor,
|
|
190
|
+
props = tslib.__rest(_a, [
|
|
191
|
+
'children',
|
|
192
|
+
'tabList',
|
|
193
|
+
'selectedTabIndex',
|
|
194
|
+
'onClick',
|
|
195
|
+
'isHorizontal',
|
|
196
|
+
'css',
|
|
197
|
+
'tabCSS',
|
|
198
|
+
'focusColor',
|
|
199
|
+
]);
|
|
200
|
+
var theme = styled.useTheme();
|
|
201
|
+
var isMounted = useMounted();
|
|
202
|
+
var _d = usePropState__default.default(selectedTabIndex),
|
|
203
|
+
selectedIndex = _d[0],
|
|
204
|
+
setSelectedIndex = _d[1];
|
|
205
|
+
var _e = react.useState({ width: 0, left: 0 }),
|
|
206
|
+
indicatorStyle = _e[0],
|
|
207
|
+
setIndicatorStyle = _e[1];
|
|
208
|
+
var listRef = react.useRef(null);
|
|
209
|
+
var tabsRef = react.useRef(null);
|
|
210
|
+
var handleRef = useMergeRefs__default.default(react.forwardRef, tabsRef);
|
|
211
|
+
var updateIndicatorState = function () {
|
|
212
|
+
var _a, _b;
|
|
213
|
+
if (listRef.current && selectedIndex !== undefined) {
|
|
214
|
+
var children = listRef.current.children;
|
|
215
|
+
var tab = children[selectedIndex];
|
|
216
|
+
var tabMeta = tab ? tab.getBoundingClientRect() : { left: 0, width: 0 };
|
|
217
|
+
var rect = (_a = tabsRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
218
|
+
var tabsMeta = {
|
|
219
|
+
scrollLeft: ((_b = tabsRef.current) === null || _b === void 0 ? void 0 : _b.scrollLeft) || 0,
|
|
220
|
+
left: (rect === null || rect === void 0 ? void 0 : rect.left) || 0,
|
|
221
|
+
};
|
|
222
|
+
var correction = tabsMeta.scrollLeft;
|
|
223
|
+
var startValue = tabMeta.left - tabsMeta.left + correction;
|
|
224
|
+
var newIndicatorStyle = { left: startValue, width: tabMeta.width };
|
|
225
|
+
var dStart = Math.abs(indicatorStyle.left - newIndicatorStyle.left);
|
|
226
|
+
var dSize = Math.abs(indicatorStyle.width - newIndicatorStyle.width);
|
|
227
|
+
if (dStart >= 1 || dSize >= 1) {
|
|
228
|
+
setIndicatorStyle(newIndicatorStyle);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
react.useEffect(
|
|
233
|
+
function () {
|
|
234
|
+
updateIndicatorState();
|
|
235
|
+
},
|
|
236
|
+
[selectedIndex]
|
|
237
|
+
);
|
|
238
|
+
var handleClick = function (e, tabItem) {
|
|
239
|
+
setSelectedIndex(tabItem.tabIndex || 0);
|
|
240
|
+
if (onClick) {
|
|
241
|
+
onClick(e, tabItem);
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
var tabItemList = tabList.map(function (item, index) {
|
|
245
|
+
return jsxRuntime.jsx(
|
|
246
|
+
TabItem,
|
|
247
|
+
{
|
|
248
|
+
selected: index === selectedIndex,
|
|
249
|
+
tabIndex: index,
|
|
250
|
+
tabKey: index,
|
|
251
|
+
onClick: handleClick,
|
|
252
|
+
label: item.label,
|
|
253
|
+
tabItemCSS: tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.TabItemCSS,
|
|
254
|
+
focusColor: focusColor,
|
|
255
|
+
},
|
|
256
|
+
index
|
|
257
|
+
);
|
|
258
|
+
});
|
|
259
|
+
var indicatorStyles = tslib.__assign(
|
|
260
|
+
tslib.__assign({}, indicatorStyle),
|
|
261
|
+
tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.IndicatorCSS
|
|
262
|
+
);
|
|
263
|
+
return jsxRuntime.jsxs(
|
|
264
|
+
StyledTab,
|
|
265
|
+
tslib.__assign(
|
|
266
|
+
{
|
|
267
|
+
ref: handleRef,
|
|
268
|
+
theme: theme,
|
|
269
|
+
isHorizontal: isHorizontal,
|
|
270
|
+
css: tslib.__assign(
|
|
271
|
+
tslib.__assign({}, css),
|
|
272
|
+
tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.Root
|
|
273
|
+
),
|
|
274
|
+
},
|
|
275
|
+
props,
|
|
276
|
+
{
|
|
277
|
+
children: [
|
|
278
|
+
jsxRuntime.jsx(StyledFlexContainer, tslib.__assign({ ref: listRef }, { children: tabItemList })),
|
|
279
|
+
isMounted && jsxRuntime.jsx(Indicator, tslib.__assign({ color: focusColor }, indicatorStyles)),
|
|
280
|
+
],
|
|
281
|
+
}
|
|
282
|
+
)
|
|
283
|
+
);
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
exports.TabItem = TabItem;
|
|
287
|
+
exports.Tabs = Tab;
|
|
288
|
+
//# sourceMappingURL=ct-design-tabs.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ct-design-tabs.cjs.js","sources":["../packages/components/Tabs/src/style.ts","../packages/components/Tabs/src/TabItem/TabItem.tsx","../packages/components/Tabs/src/Tabs.tsx"],"sourcesContent":[null,null,null],"names":["__rest","__assign","TypographyVariant","forwardRef","useTheme","useCallback","_jsx","Button","Typography","useState","useEffect","styled","usePropState","useRef","useMergeRefs","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import styled, { useTheme as useTheme$1 } from 'styled-components';
|
|
4
|
+
import { forwardRef, useCallback, useState, useRef, useEffect } from 'react';
|
|
5
|
+
import { Button } from '@cleartrip/ct-design-button';
|
|
6
|
+
import useTheme from '@cleartrip/ct-design-use-theme';
|
|
7
|
+
import { Typography, TypographyVariant } from '@cleartrip/ct-design-typography';
|
|
8
|
+
import useMergeRefs from '@cleartrip/ct-design-use-merge-refs';
|
|
9
|
+
import usePropState from '@cleartrip/ct-design-use-props-state';
|
|
10
|
+
|
|
11
|
+
var getTabStyles = function (_a) {
|
|
12
|
+
var theme = _a.theme,
|
|
13
|
+
isHorizontal = _a.isHorizontal,
|
|
14
|
+
width = _a.width,
|
|
15
|
+
height = _a.height,
|
|
16
|
+
rest = __rest(_a, ['theme', 'isHorizontal', 'width', 'height']);
|
|
17
|
+
return __assign(
|
|
18
|
+
{
|
|
19
|
+
display: 'flex',
|
|
20
|
+
flexDirection: isHorizontal ? 'row' : 'column',
|
|
21
|
+
width: width || isHorizontal ? '100%' : '',
|
|
22
|
+
height: height || !isHorizontal ? '100%' : '',
|
|
23
|
+
justifyContent: 'space-between',
|
|
24
|
+
borderBottomWidth: theme.border.width.sm,
|
|
25
|
+
borderColor: theme.color.border.default,
|
|
26
|
+
borderBottomStyle: theme.border.style.solid,
|
|
27
|
+
cursor: 'pointer',
|
|
28
|
+
position: 'relative',
|
|
29
|
+
},
|
|
30
|
+
rest
|
|
31
|
+
);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var getTabItemStyles = function (_a) {
|
|
35
|
+
_a.theme;
|
|
36
|
+
var rest = __rest(_a, ['theme']);
|
|
37
|
+
return __assign({ backgroundColor: 'transparent', outline: 0, border: 0 }, rest);
|
|
38
|
+
};
|
|
39
|
+
var getLabelVariant = function (_a) {
|
|
40
|
+
var size = _a.size;
|
|
41
|
+
switch (size) {
|
|
42
|
+
case 'small': {
|
|
43
|
+
return TypographyVariant.B2;
|
|
44
|
+
}
|
|
45
|
+
case 'medium': {
|
|
46
|
+
return TypographyVariant.B1;
|
|
47
|
+
}
|
|
48
|
+
case 'large': {
|
|
49
|
+
return TypographyVariant.B1;
|
|
50
|
+
}
|
|
51
|
+
default: {
|
|
52
|
+
return TypographyVariant.B2;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
var getTabLabelColor = function (_a) {
|
|
57
|
+
var selected = _a.selected,
|
|
58
|
+
theme = _a.theme,
|
|
59
|
+
focusColor = _a.focusColor,
|
|
60
|
+
color = _a.color;
|
|
61
|
+
if (selected) {
|
|
62
|
+
return focusColor || color || theme.color.tab.selectedPrimaryLabel;
|
|
63
|
+
} else {
|
|
64
|
+
return color || theme.color.tab.nonSelectedPrimaryLabel;
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
var TabItem = forwardRef(function (props) {
|
|
68
|
+
var tabKey = props.tabKey,
|
|
69
|
+
onClick = props.onClick,
|
|
70
|
+
tabIndex = props.tabIndex,
|
|
71
|
+
_a = props.selected,
|
|
72
|
+
selected = _a === void 0 ? false : _a,
|
|
73
|
+
label = props.label,
|
|
74
|
+
disabled = props.disabled,
|
|
75
|
+
size = props.size,
|
|
76
|
+
_b = props.tabItemCSS,
|
|
77
|
+
tabItemCSS = _b === void 0 ? { label: {}, Root: {} } : _b,
|
|
78
|
+
css = props.css,
|
|
79
|
+
focusColor = props.focusColor,
|
|
80
|
+
children = props.children;
|
|
81
|
+
var theme = useTheme();
|
|
82
|
+
var tabItemStyles = getTabItemStyles(
|
|
83
|
+
__assign(
|
|
84
|
+
__assign({ theme: theme }, css),
|
|
85
|
+
tabItemCSS === null || tabItemCSS === void 0 ? void 0 : tabItemCSS.Root
|
|
86
|
+
)
|
|
87
|
+
);
|
|
88
|
+
var handleClick = useCallback(
|
|
89
|
+
function (event) {
|
|
90
|
+
if (!disabled) {
|
|
91
|
+
onClick(event, props);
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
[tabKey, onClick]
|
|
95
|
+
);
|
|
96
|
+
var _c = tabItemCSS.label,
|
|
97
|
+
color = _c.color;
|
|
98
|
+
__rest(_c, ['color']);
|
|
99
|
+
return jsx(
|
|
100
|
+
Button,
|
|
101
|
+
__assign(
|
|
102
|
+
{ disabled: disabled, css: tabItemStyles, onClick: handleClick, tabIndex: tabIndex },
|
|
103
|
+
{
|
|
104
|
+
children: label
|
|
105
|
+
? jsx(
|
|
106
|
+
Typography,
|
|
107
|
+
__assign(
|
|
108
|
+
{
|
|
109
|
+
variant: getLabelVariant({ size: size }),
|
|
110
|
+
colorCode: getTabLabelColor({
|
|
111
|
+
selected: selected,
|
|
112
|
+
theme: theme,
|
|
113
|
+
focusColor: focusColor,
|
|
114
|
+
color: color,
|
|
115
|
+
}),
|
|
116
|
+
},
|
|
117
|
+
{ children: label }
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
: children,
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
var useMounted = function () {
|
|
127
|
+
var _a = useState(false),
|
|
128
|
+
isMounted = _a[0],
|
|
129
|
+
setIsMounted = _a[1];
|
|
130
|
+
useEffect(function () {
|
|
131
|
+
setIsMounted(true);
|
|
132
|
+
}, []);
|
|
133
|
+
return isMounted;
|
|
134
|
+
};
|
|
135
|
+
var StyledTab = styled.div(function (_a) {
|
|
136
|
+
var css = _a.css,
|
|
137
|
+
theme = _a.theme,
|
|
138
|
+
_b = _a.isHorizontal,
|
|
139
|
+
isHorizontal = _b === void 0 ? true : _b,
|
|
140
|
+
width = _a.width,
|
|
141
|
+
height = _a.height;
|
|
142
|
+
return getTabStyles(__assign({ theme: theme, isHorizontal: isHorizontal, width: width, height: height }, css));
|
|
143
|
+
});
|
|
144
|
+
var StyledFlexContainer = styled.div(function (_a) {
|
|
145
|
+
_a.theme;
|
|
146
|
+
return {
|
|
147
|
+
display: 'flex',
|
|
148
|
+
flexDirection: 'row',
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
var Indicator = styled.div(function (_a) {
|
|
152
|
+
var theme = _a.theme,
|
|
153
|
+
width = _a.width,
|
|
154
|
+
left = _a.left,
|
|
155
|
+
color = _a.color;
|
|
156
|
+
return {
|
|
157
|
+
position: 'absolute',
|
|
158
|
+
height: '2px',
|
|
159
|
+
bottom: 0,
|
|
160
|
+
transition: 'all ease-in 0.3s',
|
|
161
|
+
backgroundColor: color || theme.color.background.primary,
|
|
162
|
+
width: width,
|
|
163
|
+
left: left,
|
|
164
|
+
};
|
|
165
|
+
});
|
|
166
|
+
var Tab = forwardRef(function (_a, forwardedRef) {
|
|
167
|
+
_a.children;
|
|
168
|
+
var tabList = _a.tabList,
|
|
169
|
+
_b = _a.selectedTabIndex,
|
|
170
|
+
selectedTabIndex = _b === void 0 ? 0 : _b,
|
|
171
|
+
onClick = _a.onClick,
|
|
172
|
+
_c = _a.isHorizontal,
|
|
173
|
+
isHorizontal = _c === void 0 ? true : _c,
|
|
174
|
+
css = _a.css,
|
|
175
|
+
tabCSS = _a.tabCSS,
|
|
176
|
+
focusColor = _a.focusColor,
|
|
177
|
+
props = __rest(_a, [
|
|
178
|
+
'children',
|
|
179
|
+
'tabList',
|
|
180
|
+
'selectedTabIndex',
|
|
181
|
+
'onClick',
|
|
182
|
+
'isHorizontal',
|
|
183
|
+
'css',
|
|
184
|
+
'tabCSS',
|
|
185
|
+
'focusColor',
|
|
186
|
+
]);
|
|
187
|
+
var theme = useTheme$1();
|
|
188
|
+
var isMounted = useMounted();
|
|
189
|
+
var _d = usePropState(selectedTabIndex),
|
|
190
|
+
selectedIndex = _d[0],
|
|
191
|
+
setSelectedIndex = _d[1];
|
|
192
|
+
var _e = useState({ width: 0, left: 0 }),
|
|
193
|
+
indicatorStyle = _e[0],
|
|
194
|
+
setIndicatorStyle = _e[1];
|
|
195
|
+
var listRef = useRef(null);
|
|
196
|
+
var tabsRef = useRef(null);
|
|
197
|
+
var handleRef = useMergeRefs(forwardRef, tabsRef);
|
|
198
|
+
var updateIndicatorState = function () {
|
|
199
|
+
var _a, _b;
|
|
200
|
+
if (listRef.current && selectedIndex !== undefined) {
|
|
201
|
+
var children = listRef.current.children;
|
|
202
|
+
var tab = children[selectedIndex];
|
|
203
|
+
var tabMeta = tab ? tab.getBoundingClientRect() : { left: 0, width: 0 };
|
|
204
|
+
var rect = (_a = tabsRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
205
|
+
var tabsMeta = {
|
|
206
|
+
scrollLeft: ((_b = tabsRef.current) === null || _b === void 0 ? void 0 : _b.scrollLeft) || 0,
|
|
207
|
+
left: (rect === null || rect === void 0 ? void 0 : rect.left) || 0,
|
|
208
|
+
};
|
|
209
|
+
var correction = tabsMeta.scrollLeft;
|
|
210
|
+
var startValue = tabMeta.left - tabsMeta.left + correction;
|
|
211
|
+
var newIndicatorStyle = { left: startValue, width: tabMeta.width };
|
|
212
|
+
var dStart = Math.abs(indicatorStyle.left - newIndicatorStyle.left);
|
|
213
|
+
var dSize = Math.abs(indicatorStyle.width - newIndicatorStyle.width);
|
|
214
|
+
if (dStart >= 1 || dSize >= 1) {
|
|
215
|
+
setIndicatorStyle(newIndicatorStyle);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
useEffect(
|
|
220
|
+
function () {
|
|
221
|
+
updateIndicatorState();
|
|
222
|
+
},
|
|
223
|
+
[selectedIndex]
|
|
224
|
+
);
|
|
225
|
+
var handleClick = function (e, tabItem) {
|
|
226
|
+
setSelectedIndex(tabItem.tabIndex || 0);
|
|
227
|
+
if (onClick) {
|
|
228
|
+
onClick(e, tabItem);
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
var tabItemList = tabList.map(function (item, index) {
|
|
232
|
+
return jsx(
|
|
233
|
+
TabItem,
|
|
234
|
+
{
|
|
235
|
+
selected: index === selectedIndex,
|
|
236
|
+
tabIndex: index,
|
|
237
|
+
tabKey: index,
|
|
238
|
+
onClick: handleClick,
|
|
239
|
+
label: item.label,
|
|
240
|
+
tabItemCSS: tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.TabItemCSS,
|
|
241
|
+
focusColor: focusColor,
|
|
242
|
+
},
|
|
243
|
+
index
|
|
244
|
+
);
|
|
245
|
+
});
|
|
246
|
+
var indicatorStyles = __assign(
|
|
247
|
+
__assign({}, indicatorStyle),
|
|
248
|
+
tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.IndicatorCSS
|
|
249
|
+
);
|
|
250
|
+
return jsxs(
|
|
251
|
+
StyledTab,
|
|
252
|
+
__assign(
|
|
253
|
+
{
|
|
254
|
+
ref: handleRef,
|
|
255
|
+
theme: theme,
|
|
256
|
+
isHorizontal: isHorizontal,
|
|
257
|
+
css: __assign(__assign({}, css), tabCSS === null || tabCSS === void 0 ? void 0 : tabCSS.Root),
|
|
258
|
+
},
|
|
259
|
+
props,
|
|
260
|
+
{
|
|
261
|
+
children: [
|
|
262
|
+
jsx(StyledFlexContainer, __assign({ ref: listRef }, { children: tabItemList })),
|
|
263
|
+
isMounted && jsx(Indicator, __assign({ color: focusColor }, indicatorStyles)),
|
|
264
|
+
],
|
|
265
|
+
}
|
|
266
|
+
)
|
|
267
|
+
);
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
export { TabItem, Tab as Tabs };
|
|
271
|
+
//# sourceMappingURL=ct-design-tabs.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ct-design-tabs.esm.js","sources":["../packages/components/Tabs/src/style.ts","../packages/components/Tabs/src/TabItem/TabItem.tsx","../packages/components/Tabs/src/Tabs.tsx"],"sourcesContent":[null,null,null],"names":["_jsx","useTheme","_jsxs"],"mappings":"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"}
|