@hi-ui/tabs 4.1.1 → 4.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,88 +21,71 @@ import { useResizeObserver } from './hooks/index.js';
21
21
  import { useLatestCallback } from '@hi-ui/use-latest';
22
22
  import { getNextTabId } from './utils/index.js';
23
23
  var _role = 'tabs';
24
-
25
24
  var _prefix = getPrefixCls(_role);
26
-
27
25
  var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
28
26
  var _cx;
29
-
30
27
  var _b;
31
-
32
28
  var data = _a.data,
33
- className = _a.className,
34
- style = _a.style,
35
- activeId = _a.activeId,
36
- defaultActiveId = _a.defaultActiveId,
37
- onChange = _a.onChange,
38
- onTabClick = _a.onTabClick,
39
- _a$prefixCls = _a.prefixCls,
40
- prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
41
- directionProp = _a.direction,
42
- _a$placement = _a.placement,
43
- placement = _a$placement === void 0 ? 'horizontal' : _a$placement,
44
- editable = _a.editable,
45
- onAdd = _a.onAdd,
46
- onDelete = _a.onDelete,
47
- draggable = _a.draggable,
48
- onDragStart = _a.onDragStart,
49
- onDragOver = _a.onDragOver,
50
- onDrop = _a.onDrop,
51
- onDragEnd = _a.onDragEnd,
52
- _a$type = _a.type,
53
- type = _a$type === void 0 ? 'line' : _a$type,
54
- extra = _a.extra,
55
- rest = __rest(_a, ["data", "className", "style", "activeId", "defaultActiveId", "onChange", "onTabClick", "prefixCls", "direction", "placement", "editable", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDrop", "onDragEnd", "type", "extra"]);
56
-
29
+ className = _a.className,
30
+ style = _a.style,
31
+ activeId = _a.activeId,
32
+ defaultActiveId = _a.defaultActiveId,
33
+ onChange = _a.onChange,
34
+ onTabClick = _a.onTabClick,
35
+ _a$prefixCls = _a.prefixCls,
36
+ prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
37
+ directionProp = _a.direction,
38
+ _a$placement = _a.placement,
39
+ placement = _a$placement === void 0 ? 'horizontal' : _a$placement,
40
+ editable = _a.editable,
41
+ onAdd = _a.onAdd,
42
+ onDelete = _a.onDelete,
43
+ draggable = _a.draggable,
44
+ onDragStart = _a.onDragStart,
45
+ onDragOver = _a.onDragOver,
46
+ onDrop = _a.onDrop,
47
+ onDragEnd = _a.onDragEnd,
48
+ _a$type = _a.type,
49
+ type = _a$type === void 0 ? 'line' : _a$type,
50
+ extra = _a.extra,
51
+ rest = __rest(_a, ["data", "className", "style", "activeId", "defaultActiveId", "onChange", "onTabClick", "prefixCls", "direction", "placement", "editable", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDrop", "onDragEnd", "type", "extra"]);
57
52
  var direction = (_b = placement !== null && placement !== void 0 ? placement : directionProp) !== null && _b !== void 0 ? _b : 'horizontal';
58
-
59
53
  var _useUncontrolledState = useUncontrolledState(function () {
60
- if (isUndef(defaultActiveId)) {
61
- return data[0] ? data[0].tabId : '';
62
- }
63
-
64
- return defaultActiveId;
65
- }, activeId, onChange, Object.is),
66
- activeTabId = _useUncontrolledState[0],
67
- setActiveTabId = _useUncontrolledState[1];
68
-
54
+ if (isUndef(defaultActiveId)) {
55
+ return data[0] ? data[0].tabId : '';
56
+ }
57
+ return defaultActiveId;
58
+ }, activeId, onChange, Object.is),
59
+ activeTabId = _useUncontrolledState[0],
60
+ setActiveTabId = _useUncontrolledState[1];
69
61
  var _useState = useState(null),
70
- innerElement = _useState[0],
71
- setInnerElement = _useState[1];
72
-
62
+ innerElement = _useState[0],
63
+ setInnerElement = _useState[1];
73
64
  var _useState2 = useState(null),
74
- scrollElement = _useState2[0],
75
- setScrollElement = _useState2[1];
76
-
65
+ scrollElement = _useState2[0],
66
+ setScrollElement = _useState2[1];
77
67
  var showHorizontal = direction === 'horizontal';
78
68
  var getClientSize = useCallback(function (element) {
79
69
  return showHorizontal ? element.clientWidth : element.clientHeight;
80
70
  }, [showHorizontal]);
81
-
82
71
  var _useState3 = useState(0),
83
- translatePos = _useState3[0],
84
- setTranslatePos = _useState3[1];
85
-
72
+ translatePos = _useState3[0],
73
+ setTranslatePos = _useState3[1];
86
74
  var _useState4 = useState(0),
87
- translateBoundPos = _useState4[0],
88
- setTranslateBoundPos = _useState4[1];
89
-
75
+ translateBoundPos = _useState4[0],
76
+ setTranslateBoundPos = _useState4[1];
90
77
  var itemsRef = useRef({});
91
-
92
78
  var _useState5 = useState(false),
93
- showScrollBtn = _useState5[0],
94
- setShowScrollBtn = _useState5[1];
95
-
79
+ showScrollBtn = _useState5[0],
80
+ setShowScrollBtn = _useState5[1];
96
81
  var resizeScroll = function resizeScroll(scrollSize, innerSize) {
97
82
  var showScrollBtn = scrollSize > innerSize;
98
83
  setShowScrollBtn(showScrollBtn);
99
-
100
84
  if (showScrollBtn) {
101
85
  setTranslateBoundPos(scrollSize - innerSize);
102
86
  }
103
- }; // 响应式滚动按钮展示
104
-
105
-
87
+ };
88
+ // 响应式滚动按钮展示
106
89
  useResizeObserver({
107
90
  element: innerElement,
108
91
  getSize: getClientSize,
@@ -119,36 +102,32 @@ var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
119
102
  onResize: function onResize(_, scrollSize) {
120
103
  if (innerElement) {
121
104
  var innerSize = getClientSize(innerElement);
122
- resizeScroll(scrollSize, innerSize); // 每次滚动容器大小改变后,需要同步更新滚动位置
123
-
105
+ resizeScroll(scrollSize, innerSize);
106
+ // 每次滚动容器大小改变后,需要同步更新滚动位置
124
107
  initScrollPosition(activeId);
125
108
  }
126
109
  }
127
110
  });
128
111
  var getTabPos = useCallback(function (tabId) {
129
- var target = 0; // 获取目标元素的位置
130
-
112
+ var target = 0;
113
+ // 获取目标元素的位置
131
114
  var targetElement = itemsRef.current[tabId];
132
-
133
115
  if (targetElement) {
134
116
  var rect = targetElement.getBoundingClientRect();
135
117
  target = showHorizontal ? rect.left : rect.top;
136
118
  }
137
-
138
119
  return target;
139
120
  }, [showHorizontal]);
140
121
  var getTabOffset = useCallback(function (tabId) {
141
122
  // 获取目标元素的位置
142
- var targetPos = getTabPos(tabId); // 获取基准元素的位置(第一个)
143
-
123
+ var targetPos = getTabPos(tabId);
124
+ // 获取基准元素的位置(第一个)
144
125
  var basePos = 0;
145
-
146
126
  if (isArrayNonEmpty(data)) {
147
127
  var baseItem = data[0];
148
128
  basePos = getTabPos(baseItem.tabId);
149
- } // 返回目标元素相对基准元素的偏移量
150
-
151
-
129
+ }
130
+ // 返回目标元素相对基准元素的偏移量
152
131
  return targetPos ? targetPos - basePos : 0;
153
132
  }, [data, getTabPos]);
154
133
  var syncScrollPosition = useCallback(function (tabId) {
@@ -156,19 +135,16 @@ var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
156
135
  if (!scrollElement) return;
157
136
  var scrollSize = getClientSize(scrollElement);
158
137
  var innerSize = getClientSize(innerElement);
159
- var offsetValue = getTabOffset(tabId); // 左边或上半部内容展示不全
160
-
138
+ var offsetValue = getTabOffset(tabId);
139
+ // 左边或上半部内容展示不全
161
140
  var currentOffset = -translatePos;
162
-
163
141
  if (offsetValue < currentOffset) {
164
142
  setTranslatePos(-offsetValue);
165
143
  } else {
166
144
  // 右边或下半部内容展示不全
167
145
  var nextTabId = getNextTabId(data, tabId);
168
146
  var nextOffsetValue = nextTabId !== null ? getTabOffset(nextTabId) : scrollSize;
169
-
170
147
  var _currentOffset = -translatePos + innerSize;
171
-
172
148
  if (nextOffsetValue > _currentOffset) {
173
149
  setTranslatePos(translatePos - (nextOffsetValue - _currentOffset));
174
150
  }
@@ -190,15 +166,15 @@ var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
190
166
  style: style,
191
167
  className: cx(prefixCls + "__list", prefixCls + "__list--placement-" + direction, (_cx = {}, _cx[prefixCls + "__list--" + type] = type, _cx), className),
192
168
  ref: ref
193
- }, rest), showScrollBtn ? /*#__PURE__*/React.createElement(IconButton, {
169
+ }, rest), showScrollBtn ? ( /*#__PURE__*/React.createElement(IconButton, {
194
170
  className: showHorizontal ? prefixCls + "__left-btn" : prefixCls + "__up-btn",
195
171
  effect: true,
196
172
  disabled: translatePos === 0,
197
173
  icon: showHorizontal ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(UpOutlined, null),
198
174
  onClick: function onClick() {
199
175
  if (!scrollElement) return;
200
- if (!innerElement) return; // 向前面滚动
201
-
176
+ if (!innerElement) return;
177
+ // 向前面滚动
202
178
  var clientSize = getClientSize(innerElement);
203
179
  var canScroll = -translatePos - clientSize;
204
180
  var moveWidth = canScroll >= 0 ? clientSize : -translatePos;
@@ -206,7 +182,7 @@ var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
206
182
  return prev + moveWidth;
207
183
  });
208
184
  }
209
- }) : null, /*#__PURE__*/React.createElement("div", {
185
+ })) : null, /*#__PURE__*/React.createElement("div", {
210
186
  className: cx(prefixCls + "__list--inner"),
211
187
  ref: setInnerElement
212
188
  }, /*#__PURE__*/React.createElement("div", {
@@ -237,21 +213,21 @@ var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
237
213
  onDragEnd: onDragEnd,
238
214
  direction: direction
239
215
  }));
240
- }), type === 'line' ? /*#__PURE__*/React.createElement(TabInk, {
216
+ }), type === 'line' ? ( /*#__PURE__*/React.createElement(TabInk, {
241
217
  prefixCls: prefixCls,
242
218
  showHorizontal: showHorizontal,
243
219
  activeItemElement: itemsRef.current[activeTabId],
244
220
  activeTabId: activeTabId,
245
221
  getTabOffset: getTabOffset
246
- }) : null)), showScrollBtn ? /*#__PURE__*/React.createElement(IconButton, {
222
+ })) : null)), showScrollBtn ? ( /*#__PURE__*/React.createElement(IconButton, {
247
223
  effect: true,
248
224
  className: showHorizontal ? prefixCls + "__right-btn" : prefixCls + "__down-btn",
249
225
  disabled: translateBoundPos === -translatePos,
250
226
  icon: showHorizontal ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null),
251
227
  onClick: function onClick() {
252
228
  if (!scrollElement) return;
253
- if (!innerElement) return; // 向后面滚动
254
-
229
+ if (!innerElement) return;
230
+ // 向后面滚动
255
231
  var scrollSize = getClientSize(scrollElement);
256
232
  var innerSize = getClientSize(innerElement);
257
233
  var canScrollWidth = scrollSize - innerSize + translatePos;
@@ -260,15 +236,13 @@ var TabList = /*#__PURE__*/forwardRef(function (_a, ref) {
260
236
  return prev - moveWidth;
261
237
  });
262
238
  }
263
- }) : null, editable ? /*#__PURE__*/React.createElement(IconButton, {
239
+ })) : null, editable ? ( /*#__PURE__*/React.createElement(IconButton, {
264
240
  icon: /*#__PURE__*/React.createElement(PlusOutlined, null),
265
241
  className: prefixCls + "__add-btn",
266
242
  onClick: onAdd
267
- }) : null, extra);
243
+ })) : null, extra);
268
244
  });
269
-
270
245
  if (__DEV__) {
271
246
  TabList.displayName = 'TabList';
272
247
  }
273
-
274
248
  export { TabList };
@@ -12,39 +12,31 @@ import React from 'react';
12
12
  import { filterProps } from '@hi-ui/react-utils';
13
13
  import { getPrefixCls, cx } from '@hi-ui/classname';
14
14
  var _role = 'tabs-tab-pane';
15
-
16
15
  var _prefix = getPrefixCls(_role);
17
-
18
16
  var omitProps = ['tabId', 'tabTitle', 'disabled', 'tabDesc', 'closeable'];
19
-
20
17
  var TabPane = function TabPane(_a) {
21
18
  var children = _a.children,
22
- className = _a.className,
23
- style = _a.style,
24
- active = _a.active,
25
- _a$unmountOnInactive = _a.unmountOnInactive,
26
- unmountOnInactive = _a$unmountOnInactive === void 0 ? true : _a$unmountOnInactive,
27
- rest = __rest(_a, ["children", "className", "style", "active", "unmountOnInactive"]);
28
-
19
+ className = _a.className,
20
+ style = _a.style,
21
+ active = _a.active,
22
+ _a$unmountOnInactive = _a.unmountOnInactive,
23
+ unmountOnInactive = _a$unmountOnInactive === void 0 ? true : _a$unmountOnInactive,
24
+ rest = __rest(_a, ["children", "className", "style", "active", "unmountOnInactive"]);
29
25
  var htmlProps = filterProps(rest, omitProps);
30
-
31
26
  var _React$useState = React.useState(false),
32
- isLoaded = _React$useState[0],
33
- setIsLoaded = _React$useState[1];
34
-
27
+ isLoaded = _React$useState[0],
28
+ setIsLoaded = _React$useState[1];
35
29
  var childrenContentMemo = React.useMemo(function () {
36
30
  if (!unmountOnInactive) {
37
31
  if (active && !isLoaded) {
38
32
  setIsLoaded(true);
39
33
  }
40
-
41
34
  if (isLoaded) {
42
35
  return children;
43
36
  }
44
37
  } else if (active) {
45
38
  return children;
46
39
  }
47
-
48
40
  return null;
49
41
  }, [active, children, isLoaded, unmountOnInactive]);
50
42
  return /*#__PURE__*/React.createElement("div", Object.assign({
@@ -52,5 +44,4 @@ var TabPane = function TabPane(_a) {
52
44
  className: cx(className, !unmountOnInactive && !active && _prefix + "--hide")
53
45
  }, htmlProps), childrenContentMemo);
54
46
  };
55
-
56
47
  export { TabPane };
package/lib/esm/Tabs.js CHANGED
@@ -15,51 +15,47 @@ import { TabList } from './TabList.js';
15
15
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
16
16
  import { isUndef } from '@hi-ui/type-assertion';
17
17
  var _role = 'tabs';
18
-
19
18
  var _prefix = getPrefixCls(_role);
20
19
  /**
21
20
  * Tabs 标签页
22
21
  */
23
-
24
-
25
22
  var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
26
23
  var _a$prefixCls = _a.prefixCls,
27
- prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
28
- _a$role = _a.role,
29
- role = _a$role === void 0 ? _role : _a$role,
30
- className = _a.className,
31
- children = _a.children,
32
- defaultActiveId = _a.defaultActiveId,
33
- activeId = _a.activeId,
34
- onChange = _a.onChange,
35
- onTabClick = _a.onTabClick,
36
- editable = _a.editable,
37
- _a$placement = _a.placement,
38
- placement = _a$placement === void 0 ? 'horizontal' : _a$placement,
39
- onAdd = _a.onAdd,
40
- onDelete = _a.onDelete,
41
- _a$draggable = _a.draggable,
42
- draggable = _a$draggable === void 0 ? false : _a$draggable,
43
- onDragStart = _a.onDragStart,
44
- onDragOver = _a.onDragOver,
45
- onDragEnd = _a.onDragEnd,
46
- onDrop = _a.onDrop,
47
- style = _a.style,
48
- _a$type = _a.type,
49
- type = _a$type === void 0 ? 'line' : _a$type,
50
- extra = _a.extra,
51
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick", "editable", "placement", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDragEnd", "onDrop", "style", "type", "extra"]);
52
-
24
+ prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
25
+ _a$role = _a.role,
26
+ role = _a$role === void 0 ? _role : _a$role,
27
+ className = _a.className,
28
+ children = _a.children,
29
+ defaultActiveId = _a.defaultActiveId,
30
+ activeId = _a.activeId,
31
+ onChange = _a.onChange,
32
+ onTabClick = _a.onTabClick,
33
+ editable = _a.editable,
34
+ _a$placement = _a.placement,
35
+ placement = _a$placement === void 0 ? 'horizontal' : _a$placement,
36
+ onAdd = _a.onAdd,
37
+ onDelete = _a.onDelete,
38
+ _a$draggable = _a.draggable,
39
+ draggable = _a$draggable === void 0 ? false : _a$draggable,
40
+ onDragStart = _a.onDragStart,
41
+ onDragOver = _a.onDragOver,
42
+ onDragEnd = _a.onDragEnd,
43
+ onDrop = _a.onDrop,
44
+ style = _a.style,
45
+ _a$type = _a.type,
46
+ type = _a$type === void 0 ? 'line' : _a$type,
47
+ extra = _a.extra,
48
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick", "editable", "placement", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDragEnd", "onDrop", "style", "type", "extra"]);
53
49
  var tabList = useMemo(function () {
54
50
  var list = [];
55
51
  React.Children.map(children, function (child) {
56
52
  if (child) {
57
53
  var _child$props = child.props,
58
- tabTitle = _child$props.tabTitle,
59
- tabId = _child$props.tabId,
60
- tabDesc = _child$props.tabDesc,
61
- closeable = _child$props.closeable,
62
- disabled = _child$props.disabled;
54
+ tabTitle = _child$props.tabTitle,
55
+ tabId = _child$props.tabId,
56
+ tabDesc = _child$props.tabDesc,
57
+ closeable = _child$props.closeable,
58
+ disabled = _child$props.disabled;
63
59
  var item = {
64
60
  tabTitle: tabTitle,
65
61
  tabId: tabId,
@@ -72,17 +68,14 @@ var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
72
68
  });
73
69
  return list;
74
70
  }, [children]);
75
-
76
71
  var _useUncontrolledState = useUncontrolledState(function () {
77
- if (isUndef(defaultActiveId)) {
78
- return tabList[0] ? tabList[0].tabId : '';
79
- }
80
-
81
- return defaultActiveId;
82
- }, activeId, onChange),
83
- activeTabId = _useUncontrolledState[0],
84
- setActiveTabId = _useUncontrolledState[1];
85
-
72
+ if (isUndef(defaultActiveId)) {
73
+ return tabList[0] ? tabList[0].tabId : '';
74
+ }
75
+ return defaultActiveId;
76
+ }, activeId, onChange),
77
+ activeTabId = _useUncontrolledState[0],
78
+ setActiveTabId = _useUncontrolledState[1];
86
79
  var cls = cx(prefixCls, className, placement && prefixCls + "--placement-" + placement, type && prefixCls + "--type-" + type);
87
80
  return /*#__PURE__*/React.createElement("div", Object.assign({
88
81
  ref: ref,
@@ -116,9 +109,7 @@ var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
116
109
  }) : null;
117
110
  })));
118
111
  });
119
-
120
112
  if (__DEV__) {
121
113
  Tabs.displayName = 'Tabs';
122
114
  }
123
-
124
115
  export { Tabs };
@@ -10,16 +10,16 @@
10
10
  import { useRef, useEffect } from 'react';
11
11
  import { useLatestRef, useLatestCallback } from '@hi-ui/use-latest';
12
12
  import { useUnmountEffect } from '@hi-ui/use-unmount-effect';
13
+
13
14
  /**
14
15
  * 响应式监听元素的 size 变化
15
16
  */
16
-
17
17
  var useResizeObserver = function useResizeObserver(_ref) {
18
18
  var element = _ref.element,
19
- onResize = _ref.onResize,
20
- _ref$initialSize = _ref.initialSize,
21
- initialSize = _ref$initialSize === void 0 ? 0 : _ref$initialSize,
22
- getSize = _ref.getSize;
19
+ onResize = _ref.onResize,
20
+ _ref$initialSize = _ref.initialSize,
21
+ initialSize = _ref$initialSize === void 0 ? 0 : _ref$initialSize,
22
+ getSize = _ref.getSize;
23
23
  var getSizeLatestRef = useLatestRef(getSize);
24
24
  var onResizeLatest = useLatestCallback(onResize);
25
25
  var prevSizeRef = useRef(initialSize);
@@ -29,11 +29,9 @@ var useResizeObserver = function useResizeObserver(_ref) {
29
29
  var _resizeObserver = new ResizeObserver(function () {
30
30
  if (unmountRef.current) return;
31
31
  var getSize = getSizeLatestRef.current;
32
-
33
32
  if (element) {
34
33
  if (getSize) {
35
34
  var nextSize = getSize(element);
36
-
37
35
  if (prevSizeRef.current !== nextSize) {
38
36
  prevSizeRef.current = nextSize;
39
37
  onResizeLatest(element, nextSize);
@@ -43,12 +41,9 @@ var useResizeObserver = function useResizeObserver(_ref) {
43
41
  }
44
42
  }
45
43
  });
46
-
47
44
  _resizeObserver.observe(element);
48
45
  }
49
-
50
46
  return function () {};
51
47
  }, [element, getSizeLatestRef, onResizeLatest, unmountRef]);
52
48
  };
53
-
54
49
  export { useResizeObserver };
package/lib/esm/index.js CHANGED
@@ -9,11 +9,9 @@
9
9
  */
10
10
  import './styles/index.scss.js';
11
11
  import { Tabs as Tabs$1 } from './Tabs.js';
12
- export { Tabs } from './Tabs.js';
13
12
  import { TabPane } from './TabPane.js';
14
- export { TabPane } from './TabPane.js';
15
13
  export { TabList } from './TabList.js';
16
14
  var Tabs = Object.assign(Tabs$1, {
17
15
  Pane: TabPane
18
16
  });
19
- export { Tabs as default };
17
+ export { TabPane, Tabs$1 as Tabs, Tabs as default };
@@ -9,7 +9,5 @@
9
9
  */
10
10
  import __styleInject__ from 'style-inject';
11
11
  var css_248z = ".hi-v4-tabs__add-btn.hi-v4-icon-button {font-size: var(--hi-v4-text-size-md, 0.875rem);}.hi-v4-tabs__up-btn.hi-v4-icon-button, .hi-v4-tabs__down-btn.hi-v4-icon-button, .hi-v4-tabs__left-btn.hi-v4-icon-button, .hi-v4-tabs__right-btn.hi-v4-icon-button {margin: var(--hi-v4-spacing-1, 2px);}.hi-v4-tabs__close-btn {cursor: pointer;color: var(--hi-v4-color-gray-500, #929aa6);margin-left: var(--hi-v4-spacing-2, 4px);-webkit-transition: color 0.3s;transition: color 0.3s;}.hi-v4-tabs__close-btn:hover {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs--type-card .hi-v4-tabs__content {background-color: var(--hi-v4-color-static-white, #fff);}.hi-v4-tabs__list {position: relative;font-size: var(--hi-v4-text-size-md, 0.875rem);color: var(--hi-v4-color-gray-500, #929aa6);display: -webkit-box;display: -ms-flexbox;display: flex;overflow: hidden;-webkit-box-align: center;-ms-flex-align: center;align-items: center;}.hi-v4-tabs__list--card .hi-v4-tabs__item {background-color: var(--hi-v4-color-gray-200, #ebedf0);margin: 0;padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-8, 16px);border-radius: 0;-webkit-transition: all 0.3s;transition: all 0.3s;line-height: var(--hi-v4-text-lineheight-sm, 1.25rem);}.hi-v4-tabs__list--card .hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));background-color: var(--hi-v4-color-static-white, #fff);border-radius: var(--hi-v4-border-radius-md, 4px) 0 0 var(--hi-v4-border-radius-md, 4px);}.hi-v4-tabs__list--button .hi-v4-tabs__item {position: relative;margin: var(--hi-v4-spacing-2, 4px) var(--hi-v4-spacing-2, 4px) var(--hi-v4-spacing-2, 4px) 0;padding: var(--hi-v4-spacing-2, 4px) var(--hi-v4-spacing-6, 12px);border-radius: var(--hi-v4-border-radius-md, 4px);-webkit-transition: all 0.3s;transition: all 0.3s;}.hi-v4-tabs__list--button .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):hover {background-color: var(--hi-v4-color-gray-200, #ebedf0);color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-tabs__list--button .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):hover::after {display: none;}.hi-v4-tabs__list--button .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):hover + .hi-v4-tabs__item::after {display: none;}.hi-v4-tabs__list--button .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled))::after {content: \"\";position: absolute;width: 1px;height: var(--hi-v4-height-4, 16px);background-color: var(--hi-v4-color-gray-300, #dfe2e8);left: 0;top: 50%;-webkit-transform: translateY(-50%);transform: translateY(-50%);}.hi-v4-tabs__list--button .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):first-child::after {display: none;}.hi-v4-tabs__list--button .hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));}.hi-v4-tabs__list--button .hi-v4-tabs__item--active + .hi-v4-tabs__item::after {display: none;}.hi-v4-tabs__list--desc .hi-v4-tabs-item__title {color: var(--hi-v4-color-gray-700, #1f2733);line-height: var(--hi-v4-text-lineheight-sm, 1.25rem);}.hi-v4-tabs__list--desc .hi-v4-tabs-item__desc {color: var(--hi-v4-color-gray-500, #929aa6);font-size: var(--hi-v4-text-size-sm, 0.75rem);line-height: var(--hi-v4-text-lineheight-sm, 1.25rem);}.hi-v4-tabs__list--desc .hi-v4-tabs__item {background: var(--hi-v4-color-gray-50, #f5f7fa);display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-orient: vertical;-webkit-box-direction: normal;-ms-flex-direction: column;flex-direction: column;-webkit-box-align: center;-ms-flex-align: center;align-items: center;margin: 0 var(--hi-v4-spacing-6, 12px) 0 0;padding: var(--hi-v4-spacing-8, 16px);border-radius: var(--hi-v4-border-radius-md, 4px);-webkit-transition: all 0.3s;transition: all 0.3s;}.hi-v4-tabs__list--desc .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):hover {background-color: var(--hi-v4-color-gray-200, #ebedf0);color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-tabs__list--desc .hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));}.hi-v4-tabs__list--desc .hi-v4-tabs__item--active .hi-v4-tabs-item__title {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs__list--desc .hi-v4-tabs__item--active .hi-v4-tabs-item__desc {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs__list--inner {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-flex: 1;-ms-flex: 1 1;flex: 1 1;position: relative;overflow: hidden;}.hi-v4-tabs__list--scroll {display: -webkit-box;display: -ms-flexbox;display: flex;position: relative;-ms-flex-negative: 0;flex-shrink: 0;-webkit-transition-property: -webkit-transform;transition-property: -webkit-transform;transition-property: transform;transition-property: transform, -webkit-transform;-webkit-transition-duration: var(--hi-v4-motion-duration-slow, 300ms);transition-duration: var(--hi-v4-motion-duration-slow, 300ms);-webkit-transition-timing-function: var(--hi-v4-motion-bezier-easing, cubic-bezier(0.37, 0.02, 0.34, 1));transition-timing-function: var(--hi-v4-motion-bezier-easing, cubic-bezier(0.37, 0.02, 0.34, 1));will-change: transform;}.hi-v4-tabs__list--placement-vertical > .hi-v4-tabs__list--inner > .hi-v4-tabs__list--scroll {-webkit-box-orient: vertical;-webkit-box-direction: normal;-ms-flex-direction: column;flex-direction: column;}.hi-v4-tabs__list--placement-vertical {display: -webkit-inline-box;display: -ms-inline-flexbox;display: inline-flex;}.hi-v4-tabs--placement-vertical {display: -webkit-box;display: -ms-flexbox;display: flex;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__content {padding-left: 16px;padding-top: 0;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list {-ms-flex-negative: 0;flex-shrink: 0;-webkit-box-orient: vertical;-webkit-box-direction: normal;-ms-flex-direction: column;flex-direction: column;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs-item__title {color: var(--hi-v4-color-gray-700, #1f2733);line-height: var(--hi-v4-text-lineheight-sm, 1.25rem);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs-item__desc {color: var(--hi-v4-color-gray-500, #929aa6);font-size: var(--hi-v4-text-size-sm, 0.75rem);line-height: var(--hi-v4-text-lineheight-sm, 1.25rem);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs__item {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-orient: vertical;-webkit-box-direction: normal;-ms-flex-direction: column;flex-direction: column;-webkit-box-align: center;-ms-flex-align: center;align-items: center;padding: var(--hi-v4-spacing-8, 16px);border-radius: var(--hi-v4-border-radius-md, 4px);-webkit-transition: all 0.3s;transition: all 0.3s;background: var(--hi-v4-color-gray-50, #f5f7fa);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):hover {background-color: var(--hi-v4-color-gray-200, #ebedf0);color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs__item--active .hi-v4-tabs-item__title {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs__item--active .hi-v4-tabs-item__desc {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--desc .hi-v4-tabs__list--scroll {row-gap: var(--hi-v4-spacing-6, 12px);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--card .hi-v4-tabs__item {margin: 0;padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-8, 16px);background-color: var(--hi-v4-color-gray-200, #ebedf0);border-radius: 0;-webkit-transition: all 0.3s;transition: all 0.3s;line-height: var(--hi-v4-text-lineheight-sm, 1.25rem);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--card .hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));background-color: var(--hi-v4-color-static-white, #fff);border-radius: var(--hi-v4-border-radius-md, 4px) 0 0 var(--hi-v4-border-radius-md, 4px);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--button .hi-v4-tabs__item {margin: 0 0 var(--hi-v4-spacing-2, 4px) 0;padding: var(--hi-v4-spacing-2, 4px) var(--hi-v4-spacing-6, 12px);border-radius: var(--hi-v4-border-radius-md, 4px);-webkit-transition: all 0.3s;transition: all 0.3s;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--button .hi-v4-tabs__item:not(:where(.hi-v4-tabs__item--active, .hi-v4-tabs__item--disabled)):hover {background-color: var(--hi-v4-color-gray-200, #ebedf0);color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--button .hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list.hi-v4-tabs__list--button .hi-v4-tabs__list--scroll {row-gap: var(--hi-v4-spacing-2, 4px);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__list--inner {width: auto;display: block;position: relative;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__list--scroll {-webkit-box-orient: vertical;-webkit-box-direction: normal;-ms-flex-direction: column;flex-direction: column;position: relative;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__item {line-height: var(--hi-v4-text-lineheight-lg, 1.5rem);padding: var(--hi-v4-spacing-4, 8px) var(--hi-v4-spacing-10, 20px);margin: 0;-webkit-transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__item::after {display: none;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__item--prev {border-top: 1px dashed var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));border-left: none;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__item--next {border-bottom: 1px dashed var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));border-right: none;}.hi-v4-tabs--placement-vertical > .hi-v4-tabs__list .hi-v4-tabs__ink {position: absolute;left: 0;bottom: auto;width: 2px;background-color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));-webkit-transition: top 0.2s cubic-bezier(0.34, 0.69, 0.1, 1), height 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);transition: top 0.2s cubic-bezier(0.34, 0.69, 0.1, 1), height 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);}.hi-v4-tabs__ink {position: absolute;bottom: 0;right: auto;top: auto;height: 2px;background-color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));-webkit-transition: left 0.2s cubic-bezier(0.34, 0.69, 0.1, 1), width 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);transition: left 0.2s cubic-bezier(0.34, 0.69, 0.1, 1), width 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);}.hi-v4-tabs__item {line-height: var(--hi-v4-text-lineheight-lg, 1.5rem);padding: var(--hi-v4-spacing-4, 8px) var(--hi-v4-spacing-10, 20px);margin: 0;cursor: pointer;-ms-flex-negative: 0;flex-shrink: 0;-webkit-transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);}.hi-v4-tabs__item:focus {outline: 0;}.hi-v4-tabs__item:not(.hi-v4-tabs__item--disabled):hover {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs__item--active {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs__item--prev {border-left: 1px dashed var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs__item--next {border-right: 1px dashed var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tabs__item--disabled, .hi-v4-tabs__item--disabled .hi-v4-tabs__close-btn {color: var(--hi-v4-color-gray-400, #b5bcc7);cursor: not-allowed;}.hi-v4-tabs__item:not(.hi-v4-tabs__item--active) {overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.hi-v4-tabs__content {width: 100%;overflow: hidden;padding-top: var(--hi-v4-spacing-8, 16px);-webkit-box-sizing: border-box;box-sizing: border-box;}.hi-v4-tabs-tab-pane--hide {display: none;}";
12
-
13
12
  __styleInject__(css_248z);
14
-
15
13
  export { css_248z as default };
@@ -8,19 +8,15 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { isArrayNonEmpty } from '@hi-ui/type-assertion';
11
-
12
11
  var getNextTabId = function getNextTabId(data, tabId) {
13
12
  if (isArrayNonEmpty(data)) {
14
13
  var itemIndex = data.findIndex(function (item) {
15
14
  return item.tabId === tabId;
16
15
  });
17
-
18
16
  if (itemIndex !== -1 && data[itemIndex + 1]) {
19
17
  return data[itemIndex + 1].tabId;
20
18
  }
21
19
  }
22
-
23
20
  return null;
24
21
  };
25
-
26
22
  export { getNextTabId };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/tabs",
3
- "version": "4.1.1",
3
+ "version": "4.1.3",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -43,24 +43,24 @@
43
43
  "url": "https://github.com/XiaoMi/hiui/issues"
44
44
  },
45
45
  "dependencies": {
46
- "@hi-ui/classname": "^4.0.1",
47
- "@hi-ui/env": "^4.0.1",
48
- "@hi-ui/icon-button": "^4.0.5",
49
- "@hi-ui/icons": "^4.0.11",
50
- "@hi-ui/react-utils": "^4.0.1",
51
- "@hi-ui/type-assertion": "^4.0.1",
52
- "@hi-ui/use-latest": "^4.0.1",
53
- "@hi-ui/use-uncontrolled-state": "^4.0.1",
54
- "@hi-ui/use-unmount-effect": "^4.0.1"
46
+ "@hi-ui/classname": "^4.0.3",
47
+ "@hi-ui/env": "^4.0.3",
48
+ "@hi-ui/icon-button": "^4.0.7",
49
+ "@hi-ui/icons": "^4.0.17",
50
+ "@hi-ui/react-utils": "^4.0.3",
51
+ "@hi-ui/type-assertion": "^4.0.3",
52
+ "@hi-ui/use-latest": "^4.0.3",
53
+ "@hi-ui/use-uncontrolled-state": "^4.0.3",
54
+ "@hi-ui/use-unmount-effect": "^4.0.3"
55
55
  },
56
56
  "peerDependencies": {
57
- "@hi-ui/core": ">=4.0.5",
57
+ "@hi-ui/core": ">=4.0.7",
58
58
  "react": ">=16.8.6",
59
59
  "react-dom": ">=16.8.6"
60
60
  },
61
61
  "devDependencies": {
62
- "@hi-ui/core": "^4.0.5",
63
- "@hi-ui/core-css": "^4.1.2",
62
+ "@hi-ui/core": "^4.0.7",
63
+ "@hi-ui/core-css": "^4.1.4",
64
64
  "react": "^17.0.1",
65
65
  "react-dom": "^17.0.1"
66
66
  }