@hi-ui/tabs 4.0.0-alpha.1 → 4.0.0-alpha.14

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/README.md CHANGED
@@ -9,3 +9,57 @@ const Tabs = require('@hi-ui/tabs');
9
9
 
10
10
  // TODO: DEMONSTRATE API
11
11
  ```
12
+
13
+ ## Props
14
+
15
+ ### Tabs
16
+
17
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
18
+ | --------------- | ------------------------------------------------------------------------------------------- | ---------------- | ---------------------------------------------------- | ------------ |
19
+ | type | 标签类型 | string | 'desc' \| 'card' \| 'button' \| 'default' | 'default' |
20
+ | placement | 水平或竖直展示标签 | string | 'vertical' \| 'horizontal' | 'horizontal' |
21
+ | defaultActiveId | 设置默认激活的标签 | React.ReactText | - | 第一个选项卡 |
22
+ | activeId | 设置激活的标签,设置此值后变为受控模式 | React.ReactText | - | - |
23
+ | draggable | 是否支持拖拽 | boolean | true \| false | false |
24
+ | editable | 是否可编辑 | boolean | true \| false | false |
25
+
26
+ ### Tabs.Pane
27
+
28
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
29
+ | --------- | -------------------------------------------- | ------------------- | ------------- | ------ |
30
+ | tabTitle | 选项卡头显示文字 | ReactNode | - | - |
31
+ | tabDesc | 选项卡头描述文字,仅对 type='desc'时生效 | ReactNode | - | - |
32
+ | tabId | 每个标签的唯一标识 | string \| number | - | - |
33
+ | disabled | 标签是否禁用 | boolean | true \| false | false |
34
+
35
+ ## Events
36
+
37
+ | 名称 | 说明 | 类型 | 参数 | 返回值 |
38
+ | -------------- | ----------------------------------------------------------- | ------------------------------------ | --------------------------------------------------- | ------------------------------ |
39
+ | onTabClick | 点击标签页时触发,回调值为点击点击标签的 id | (tabId, event) => void | tabKey: 点击的标签 id, event: MouseEvent |
40
+ | onChange | 点击标签页变更时触发,回调值为点击点击标签的 id | (tabId, event) => void | tabKey: 点击的标签 id, event: MouseEvent | - |
41
+ | onDragStart(未实现完全) | 节点开始拖拽时触发 | (e: React.DragEvent,{dragNode: TabNode}) => void | dragNode: 拖拽节点 |
42
+ | onDragOver(未实现完全) | 节点开始拖拽时触发 | (e: React.DragEvent,{dragNode: TabNode}) => void | dragNode: 拖拽节点 |
43
+ | onDragEnd (未实现完全) | 节点开始拖拽时触发 | (e: React.DragEvent,{dragNode: TabNode}) => void | dragNode: 拖拽节点 | - |- |
44
+ | onDrop | 节点拖拽时触发 | (e: React.DragEvent,{dragNode, dropNode, direction, }) => void | dragNode: 拖拽节点 | - |
45
+ | onAdd | 节点增加时触发 | () => void | - | - |
46
+ | onDelete | 点击删除节点按钮时触发 | (deletedNode: TabNode,index) => void | deletedNode: 删除的节点, index: 删除的节点索引 | - |
47
+
48
+ ## CHANGELOG
49
+ *** 拖拽事件全面向原生看齐 ***
50
+ | 参数 | 变更类型 | 变更内容 | 解决的问题 |
51
+ | ------------ | ------------------------------- | ------------------------------------------------------------------------------ | ---------------------------- |
52
+
53
+ | closeable | deprecated | 仅用editable就够了,是否有有的可关闭有的不可关闭的场景? |优化易用性 |
54
+ | onBeforeDelete | deprecated | 废弃onDelete前置逻辑,直接在 onDelete 处理 | 优化易用性 |
55
+ | onDropEnd | deprecated | 废弃onDelete前置逻辑,直接在 onDelete 处理 | 优化易用性 |
56
+ | canScroll | deprecated | 现在不需要canScroll,会自动计算是否可滚动 | 优化易用性 |
57
+ | max | deprecated | 现在不再内置收起效果,该字段没有存在意义 | 优化易用性 |
58
+ | animation | deprecated | 动画效果为内置 | 优化易用性,删减无意义的配置项 |
59
+ | onDragStart | update | 入参调整 | |
60
+ | onDragOver | feature | 新增钩子 | |
61
+ | onDragEnd | feature | 新增钩子 | |
62
+ | onDrop | update | 入参调整 | |
63
+ | type | update | 选项移除 'editable'类型,'line'类型改为'default', 默认type由'card'类型改为'default' | editable 拆为配置项更合理,根据通用场景,'default‘模式用的更多,故更改默认类型 |
64
+ | editable | feature | 选项移除type 的 'editable'类型,迁移为一个配置项 | editable 拆为配置项更合理,解决editable 和 type的组合问题 |
65
+
package/lib/cjs/TabInk.js CHANGED
@@ -34,7 +34,8 @@ var TabInk = function TabInk(_ref) {
34
34
  prefixCls = _ref.prefixCls,
35
35
  itemRef = _ref.itemRef,
36
36
  tabListRef = _ref.tabListRef,
37
- direction = _ref.direction;
37
+ direction = _ref.direction,
38
+ translate = _ref.translate;
38
39
  var inkRef = React.useRef(null);
39
40
  React.useEffect(function () {
40
41
  if (inkRef.current && itemRef && tabListRef) {
@@ -44,15 +45,15 @@ var TabInk = function TabInk(_ref) {
44
45
 
45
46
  if (direction === 'vertical') {
46
47
  _style = {
47
- top: itemRect.top - listRect.top + "px",
48
- height: itemRect.height + "px",
48
+ top: itemRect.top - listRect.top - translate + 2 + 8 + "px",
49
+ height: itemRect.height - 4 - 16 + "px",
49
50
  left: '',
50
51
  width: ''
51
52
  };
52
53
  } else {
53
54
  _style = {
54
- left: itemRect.left - listRect.left + "px",
55
- width: itemRect.width + "px",
55
+ left: itemRect.left - listRect.left - translate + 20 + "px",
56
+ width: itemRect.width - 40 + "px",
56
57
  top: '',
57
58
  height: ''
58
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TabInk.js","sources":["../../src/TabInk.tsx"],"sourcesContent":[null],"names":["TabInk","disabled","prefixCls","itemRef","tabListRef","direction","inkRef","useRef","useEffect","current","itemRect","getBoundingClientRect","listRect","_style","top","height","left","width","Object","assign","style","React","className","cx","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWaA,MAAM,GAA0B,SAAhCA,MAAgC,KAAA;;;MAC3CC,gBAAAA;MACAC,iBAAAA;MACAC,eAAAA;MACAC,kBAAAA;MACAC,iBAAAA;MAEMC,MAAM,GAAGC,YAAAA,CAAuB,IAAvBA;AAEfC,EAAAA,eAAAA,CAAU;QACJF,MAAM,CAACG,OAAPH,IAAkBH,OAAlBG,IAA6BF,YAAY;UACrCM,QAAQ,GAAGP,OAAO,CAACQ,qBAARR;UACXS,QAAQ,GAAGR,UAAU,CAACO,qBAAXP;UACbS,MAAM,GAAwB;;UAC9BR,SAAS,KAAK,YAAY;AAC5BQ,QAAAA,MAAM,GAAG;AACPC,UAAAA,GAAG,EAAKJ,QAAQ,CAACI,GAATJ,GAAeE,QAAQ,CAACE,GAAxBJ,OADD;AAEPK,UAAAA,MAAM,EAAKL,QAAQ,CAACK,MAATL,OAFJ;AAGPM,UAAAA,IAAI,EAAE,EAHC;AAIPC,UAAAA,KAAK,EAAE;AAJA,SAATJ;AADF,aAOO;AACLA,QAAAA,MAAM,GAAG;AACPG,UAAAA,IAAI,EAAKN,QAAQ,CAACM,IAATN,GAAgBE,QAAQ,CAACI,IAAzBN,OADF;AAEPO,UAAAA,KAAK,EAAKP,QAAQ,CAACO,KAATP,OAFH;AAGPI,UAAAA,GAAG,EAAE,EAHE;AAIPC,UAAAA,MAAM,EAAE;AAJD,SAATF;;;AAOFK,MAAAA,MAAM,CAACC,MAAPD,CAAcZ,MAAM,CAACG,OAAPH,CAAec,KAA7BF,EAAoCL,MAApCK;;AApBK,GAATV,EAsBG,CAACL,OAAD,EAAUC,UAAV,EAAsBC,SAAtB,CAtBHG;sBAyBEa,yBAAAA,cAAAA,MAAAA;AACEC,IAAAA,SAAS,EAAEC,YAAAA,CAAMrB,SAAJ,UAAFqB,iBACLrB,SADO,wBACsBD,aADxBsB;AAGXC,IAAAA,GAAG,EAAElB;GAJPe;;;;"}
1
+ {"version":3,"file":"TabInk.js","sources":["../../src/TabInk.tsx"],"sourcesContent":[null],"names":["TabInk","disabled","prefixCls","itemRef","tabListRef","direction","translate","inkRef","useRef","useEffect","current","itemRect","getBoundingClientRect","listRect","_style","top","height","left","width","Object","assign","style","React","className","cx","ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYaA,MAAM,GAA0B,SAAhCA,MAAgC,KAAA;;;MAC3CC,gBAAAA;MACAC,iBAAAA;MACAC,eAAAA;MACAC,kBAAAA;MACAC,iBAAAA;MACAC,iBAAAA;MAEMC,MAAM,GAAGC,YAAAA,CAAuB,IAAvBA;AAEfC,EAAAA,eAAAA,CAAU;QACJF,MAAM,CAACG,OAAPH,IAAkBJ,OAAlBI,IAA6BH,YAAY;UACrCO,QAAQ,GAAGR,OAAO,CAACS,qBAART;UACXU,QAAQ,GAAGT,UAAU,CAACQ,qBAAXR;UACbU,MAAM,GAAwB;;UAC9BT,SAAS,KAAK,YAAY;AAC5BS,QAAAA,MAAM,GAAG;AACPC,UAAAA,GAAG,EAAKJ,QAAQ,CAACI,GAATJ,GAAeE,QAAQ,CAACE,GAAxBJ,GAA8BL,SAA9BK,GAA0C,CAA1CA,GAA8C,CAA9CA,OADD;AAEPK,UAAAA,MAAM,EAAKL,QAAQ,CAACK,MAATL,GAAkB,CAAlBA,GAAsB,EAAtBA,OAFJ;AAGPM,UAAAA,IAAI,EAAE,EAHC;AAIPC,UAAAA,KAAK,EAAE;AAJA,SAATJ;AADF,aAOO;AACLA,QAAAA,MAAM,GAAG;AACPG,UAAAA,IAAI,EAAKN,QAAQ,CAACM,IAATN,GAAgBE,QAAQ,CAACI,IAAzBN,GAAgCL,SAAhCK,GAA4C,EAA5CA,OADF;AAEPO,UAAAA,KAAK,EAAKP,QAAQ,CAACO,KAATP,GAAiB,EAAjBA,OAFH;AAGPI,UAAAA,GAAG,EAAE,EAHE;AAIPC,UAAAA,MAAM,EAAE;AAJD,SAATF;;;AAOFK,MAAAA,MAAM,CAACC,MAAPD,CAAcZ,MAAM,CAACG,OAAPH,CAAec,KAA7BF,EAAoCL,MAApCK;;AApBK,GAATV,EAsBG,CAACN,OAAD,EAAUC,UAAV,EAAsBC,SAAtB,CAtBHI;sBAyBEa,yBAAAA,cAAAA,MAAAA;AACEC,IAAAA,SAAS,EAAEC,YAAAA,CAAMtB,SAAJ,UAAFsB,iBACLtB,SADO,wBACsBD,aADxBuB;AAGXC,IAAAA,GAAG,EAAElB;GAJPe;;;;"}
@@ -21,6 +21,8 @@ var classname = require('@hi-ui/classname');
21
21
 
22
22
  var env = require('@hi-ui/env');
23
23
 
24
+ var icons = require('@hi-ui/icons');
25
+
24
26
  function _interopDefaultLegacy(e) {
25
27
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
26
28
  'default': e
@@ -36,24 +38,151 @@ var TabItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
36
38
  style = _ref.style,
37
39
  disabled = _ref.disabled,
38
40
  tabTitle = _ref.tabTitle,
41
+ tabDesc = _ref.tabDesc,
39
42
  prefixCls = _ref.prefixCls,
40
43
  tabId = _ref.tabId,
41
44
  onTabClick = _ref.onTabClick,
42
- active = _ref.active;
45
+ active = _ref.active,
46
+ editable = _ref.editable,
47
+ onDelete = _ref.onDelete,
48
+ index = _ref.index,
49
+ _onDragStart = _ref.onDragStart,
50
+ _onDragOver = _ref.onDragOver,
51
+ _onDrop = _ref.onDrop,
52
+ _onDragEnd = _ref.onDragEnd,
53
+ itemRef = _ref.itemRef,
54
+ draggable = _ref.draggable,
55
+ _ref$type = _ref.type,
56
+ type = _ref$type === void 0 ? 'default' : _ref$type,
57
+ _ref$direction = _ref.direction,
58
+ layout = _ref$direction === void 0 ? 'horizontal' : _ref$direction;
59
+
60
+ var _useState = React.useState(null),
61
+ dragId = _useState[0],
62
+ setDragId = _useState[1];
63
+
64
+ var _useState2 = React.useState(null),
65
+ direction = _useState2[0],
66
+ setDirection = _useState2[1];
43
67
 
44
68
  var _onClick = React.useCallback(function (e) {
45
69
  if (onTabClick) {
46
- onTabClick(tabId);
70
+ onTabClick(tabId, e);
47
71
  }
48
72
  }, [onTabClick, tabId]);
49
73
 
50
74
  return /*#__PURE__*/React__default['default'].createElement("div", {
51
75
  style: style,
52
- className: classname.cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx)),
76
+ className: classname.cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx[prefixCls + "__item--" + direction] = direction, _cx)),
53
77
  ref: ref,
78
+ draggable: draggable,
54
79
  tabIndex: disabled ? 0 : -1,
55
- onClick: _onClick
56
- }, /*#__PURE__*/React__default['default'].createElement("span", null, tabTitle));
80
+ onClick: _onClick,
81
+ onDragStart: function onDragStart(e) {
82
+ e.stopPropagation();
83
+ e.dataTransfer.setData('tab', JSON.stringify({
84
+ tabId: tabId,
85
+ tabTitle: tabTitle
86
+ }));
87
+ setDragId(tabId);
88
+
89
+ if (_onDragStart) {
90
+ _onDragStart(e, {
91
+ tabId: tabId,
92
+ tabTitle: tabTitle
93
+ });
94
+ }
95
+ },
96
+ onDragEnd: function onDragEnd(e) {
97
+ e.preventDefault();
98
+ e.stopPropagation();
99
+ e.dataTransfer.clearData();
100
+ setDragId(null);
101
+
102
+ if (_onDragEnd) {
103
+ _onDragEnd(e, {
104
+ tabId: tabId,
105
+ tabTitle: tabTitle
106
+ });
107
+ }
108
+ },
109
+ onDragLeave: function onDragLeave(e) {
110
+ e.preventDefault();
111
+ e.stopPropagation();
112
+ setDirection(null);
113
+ },
114
+ onDragOver: function onDragOver(e) {
115
+ e.preventDefault();
116
+ e.stopPropagation();
117
+
118
+ if (dragId !== tabId && itemRef) {
119
+ var targetBoundingRect = itemRef.getBoundingClientRect();
120
+ var hoverTargetSortY = (targetBoundingRect.bottom - targetBoundingRect.top) / 2;
121
+ var hoverTargetSortX = (targetBoundingRect.right - targetBoundingRect.left) / 2; // 鼠标垂直移动距离
122
+
123
+ var hoverClientY = e.clientY - targetBoundingRect.top;
124
+ var hoverClientX = e.clientX - targetBoundingRect.left;
125
+
126
+ if (layout === 'vertical') {
127
+ if (hoverClientY < hoverTargetSortY) {
128
+ setDirection('prev');
129
+ } else {
130
+ setDirection('next');
131
+ }
132
+ } else {
133
+ if (hoverClientX < hoverTargetSortX) {
134
+ setDirection('prev');
135
+ } else {
136
+ setDirection('next');
137
+ }
138
+ }
139
+ }
140
+
141
+ if (_onDragOver) {
142
+ _onDragOver(e, {
143
+ tabId: tabId,
144
+ tabTitle: tabTitle
145
+ });
146
+ }
147
+ },
148
+ onDrop: function onDrop(e) {
149
+ e.preventDefault();
150
+ e.stopPropagation();
151
+ setDirection(null);
152
+
153
+ if (_onDrop && dragId !== tabId) {
154
+ var passedData = JSON.parse(e.dataTransfer.getData('tab'));
155
+
156
+ _onDrop(e, {
157
+ dragNode: {
158
+ tabId: tabId,
159
+ tabTitle: tabTitle
160
+ },
161
+ dropNode: {
162
+ tabId: passedData.tabId,
163
+ tabTitle: passedData.tabTitle
164
+ },
165
+ direction: direction
166
+ });
167
+ }
168
+ }
169
+ }, /*#__PURE__*/React__default['default'].createElement("span", {
170
+ className: prefixCls + "-item__title"
171
+ }, tabTitle), type === 'desc' && /*#__PURE__*/React__default['default'].createElement("span", {
172
+ className: prefixCls + "-item__desc"
173
+ }, tabDesc), editable && /*#__PURE__*/React__default['default'].createElement("span", {
174
+ className: prefixCls + "__close-btn",
175
+ onClick: function onClick(e) {
176
+ e.stopPropagation();
177
+
178
+ if (onDelete) {
179
+ onDelete({
180
+ tabId: tabId,
181
+ tabTitle: tabTitle
182
+ }, index);
183
+ }
184
+ }
185
+ }, /*#__PURE__*/React__default['default'].createElement(icons.CloseOutlined, null)));
57
186
  });
58
187
 
59
188
  if (env.__DEV__) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabItem.js","sources":["../../src/TabItem.tsx"],"sourcesContent":[null],"names":["TabItem","forwardRef","ref","className","style","disabled","tabTitle","prefixCls","tabId","onTabClick","active","_onClick","useCallback","e","React","cx","tabIndex","onClick","__DEV__","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWaA,OAAO,gBAAGC,gBAAAA,CACrB,cAAA,EAAiFC,GAAjF;;;MAAGC,iBAAAA;MAAWC,aAAAA;MAAOC,gBAAAA;MAAUC,gBAAAA;MAAUC,iBAAAA;MAAWC,aAAAA;MAAOC,kBAAAA;MAAYC,cAAAA;;MAC/DC,QAAQ,GAAGC,iBAAAA,CACf,UAACC,CAAD;QACMJ,YAAY;AACdA,MAAAA,UAAU,CAACD,KAAD,CAAVC;;AAHsB,GAAXG,EAMf,CAACH,UAAD,EAAaD,KAAb,CANeI;;sBASfE,yBAAAA,cAAAA,MAAAA;AACEV,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAEY,YAAAA,CAAMR,SAAJ,WAAFQ,EAAyBZ,SAAzBY,iBAA0CR,SAAxC,uBAAoEG,WAAtEK;AACXb,IAAAA,GAAG,EAAEA;AACLc,IAAAA,QAAQ,EAAEX,QAAQ,GAAG,CAAH,GAAO,CAAC;AAC1BY,IAAAA,OAAO,EAAEN;GALXG,eAOEA,yBAAAA,cAAAA,OAAAA,MAAAA,EAAOR,QAAPQ,CAPFA;AAX2B,CAAVb;;AAuBvB,IAAIiB,WAAJ,EAAa;AACXlB,EAAAA,OAAO,CAACmB,WAARnB,GAAsB,SAAtBA;;;"}
1
+ {"version":3,"file":"TabItem.js","sources":["../../src/TabItem.tsx"],"sourcesContent":[null],"names":["TabItem","forwardRef","ref","className","style","disabled","tabTitle","tabDesc","prefixCls","tabId","onTabClick","active","editable","onDelete","index","onDragStart","onDragOver","onDrop","onDragEnd","itemRef","draggable","type","direction","layout","useState","dragId","setDragId","setDirection","_onClick","useCallback","e","React","cx","tabIndex","onClick","stopPropagation","dataTransfer","setData","JSON","stringify","preventDefault","clearData","onDragLeave","targetBoundingRect","getBoundingClientRect","hoverTargetSortY","bottom","top","hoverTargetSortX","right","left","hoverClientY","clientY","hoverClientX","clientX","passedData","parse","getData","dragNode","dropNode","CloseOutlined","__DEV__","displayName"],"mappings":"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"}
@@ -27,6 +27,8 @@ var classname = require('@hi-ui/classname');
27
27
 
28
28
  var TabInk = require('./TabInk.js');
29
29
 
30
+ var icons = require('@hi-ui/icons');
31
+
30
32
  function _interopDefaultLegacy(e) {
31
33
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
32
34
  'default': e
@@ -35,7 +37,13 @@ function _interopDefaultLegacy(e) {
35
37
 
36
38
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
37
39
 
40
+ var _role = 'tabs';
41
+
42
+ var _prefix = classname.getPrefixCls(_role);
43
+
38
44
  var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
45
+ var _cx;
46
+
39
47
  var data = _ref.data,
40
48
  className = _ref.className,
41
49
  style = _ref.style,
@@ -43,7 +51,20 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
43
51
  defaultActiveId = _ref.defaultActiveId,
44
52
  onChange = _ref.onChange,
45
53
  onTabClick = _ref.onTabClick,
46
- prefixCls = _ref.prefixCls;
54
+ _ref$prefixCls = _ref.prefixCls,
55
+ prefixCls = _ref$prefixCls === void 0 ? _prefix : _ref$prefixCls,
56
+ _ref$direction = _ref.direction,
57
+ direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
58
+ editable = _ref.editable,
59
+ onAdd = _ref.onAdd,
60
+ onDelete = _ref.onDelete,
61
+ draggable = _ref.draggable,
62
+ onDragStart = _ref.onDragStart,
63
+ onDragOver = _ref.onDragOver,
64
+ onDrop = _ref.onDrop,
65
+ onDragEnd = _ref.onDragEnd,
66
+ _ref$type = _ref.type,
67
+ type = _ref$type === void 0 ? 'default' : _ref$type;
47
68
 
48
69
  var _a, _b;
49
70
 
@@ -55,10 +76,27 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
55
76
  innerRef = _useState[0],
56
77
  setInnerRef = _useState[1];
57
78
 
79
+ var _useState2 = React.useState(null),
80
+ scrollRef = _useState2[0],
81
+ setScrollRef = _useState2[1];
82
+
83
+ var _useState3 = React.useState(0),
84
+ translateX = _useState3[0],
85
+ setTranslateX = _useState3[1];
86
+
87
+ var _useState4 = React.useState(0),
88
+ translateY = _useState4[0],
89
+ setTranslateY = _useState4[1];
90
+
58
91
  var itemsRef = React.useRef({});
59
- var onClickTab = React.useCallback(function (key) {
92
+ var showScrollBtn = React.useMemo(function () {
93
+ if (scrollRef && innerRef) {
94
+ return direction === 'horizontal' ? (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.clientWidth) > (innerRef === null || innerRef === void 0 ? void 0 : innerRef.clientWidth) : (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.clientHeight) > (innerRef === null || innerRef === void 0 ? void 0 : innerRef.clientHeight);
95
+ }
96
+ }, [scrollRef, innerRef, direction]);
97
+ var onClickTab = React.useCallback(function (key, event) {
60
98
  if (onTabClick) {
61
- onTabClick(key);
99
+ onTabClick(key, event);
62
100
  }
63
101
 
64
102
  if (key !== activeTab && setActiveTab) {
@@ -67,11 +105,49 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
67
105
  }, [activeTab, onTabClick, setActiveTab]);
68
106
  return /*#__PURE__*/React__default['default'].createElement("div", {
69
107
  style: style,
70
- className: classname.cx(prefixCls + "__list", className),
108
+ className: classname.cx(prefixCls + "__list", (_cx = {}, _cx[prefixCls + "__list--" + type] = type, _cx), className),
71
109
  ref: ref
72
- }, /*#__PURE__*/React__default['default'].createElement("div", {
110
+ }, showScrollBtn && direction === 'horizontal' && /*#__PURE__*/React__default['default'].createElement("div", {
111
+ className: prefixCls + "__add-btn",
112
+ onClick: function onClick() {
113
+ if (scrollRef && innerRef) {
114
+ var canScroll = -translateX - innerRef.clientWidth;
115
+ var moveWidth = 0;
116
+
117
+ if (canScroll >= 0) {
118
+ moveWidth = innerRef.clientWidth;
119
+ } else {
120
+ moveWidth = -translateX;
121
+ }
122
+
123
+ setTranslateX(translateX + moveWidth);
124
+ }
125
+ }
126
+ }, /*#__PURE__*/React__default['default'].createElement(icons.LeftOutlined, null)), showScrollBtn && direction === 'vertical' && /*#__PURE__*/React__default['default'].createElement("div", {
127
+ className: prefixCls + "__add-btn",
128
+ onClick: function onClick() {
129
+ if (scrollRef && innerRef) {
130
+ var canScroll = -translateY - innerRef.clientHeight;
131
+ var moveWidth = 0;
132
+
133
+ if (canScroll >= 0) {
134
+ moveWidth = innerRef.clientHeight;
135
+ } else {
136
+ moveWidth = -translateY;
137
+ }
138
+
139
+ setTranslateY(translateY + moveWidth);
140
+ }
141
+ }
142
+ }, /*#__PURE__*/React__default['default'].createElement(icons.UpOutlined, null)), /*#__PURE__*/React__default['default'].createElement("div", {
73
143
  className: classname.cx(prefixCls + "__list--inner"),
74
144
  ref: setInnerRef
145
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
146
+ className: classname.cx(prefixCls + "__list--scroll"),
147
+ ref: setScrollRef,
148
+ style: showScrollBtn ? {
149
+ transform: direction === 'horizontal' ? "translateX(" + translateX + "px)" : "translateY(" + translateY + "px)"
150
+ } : {}
75
151
  }, data.map(function (d, index) {
76
152
  return /*#__PURE__*/React__default['default'].createElement(TabItem.TabItem, Object.assign({
77
153
  key: index
@@ -79,16 +155,63 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
79
155
  ref: function ref(node) {
80
156
  itemsRef.current["" + d.tabId] = node;
81
157
  },
158
+ type: type,
159
+ itemRef: itemsRef.current["" + d.tabId],
160
+ index: index,
82
161
  active: activeTab === d.tabId,
83
162
  prefixCls: prefixCls,
84
- onTabClick: onClickTab
163
+ draggable: draggable,
164
+ onTabClick: onClickTab,
165
+ editable: editable,
166
+ onDelete: onDelete,
167
+ onDragStart: onDragStart,
168
+ onDragOver: onDragOver,
169
+ onDrop: onDrop,
170
+ onDragEnd: onDragEnd,
171
+ direction: direction
85
172
  }));
86
- }), /*#__PURE__*/React__default['default'].createElement(TabInk.TabInk, {
173
+ }), type === 'default' && /*#__PURE__*/React__default['default'].createElement(TabInk.TabInk, {
174
+ translate: direction === 'horizontal' ? translateX : translateY,
87
175
  prefixCls: prefixCls,
88
- direction: "horizontal",
176
+ direction: direction,
89
177
  tabListRef: innerRef,
90
178
  itemRef: (_b = itemsRef.current) === null || _b === void 0 ? void 0 : _b[activeTab]
91
- })));
179
+ }))), showScrollBtn && direction === 'horizontal' && /*#__PURE__*/React__default['default'].createElement("div", {
180
+ className: prefixCls + "__add-btn",
181
+ onClick: function onClick() {
182
+ if (scrollRef && innerRef) {
183
+ var canScroll = scrollRef.clientWidth - innerRef.clientWidth + translateX;
184
+ var moveWidth = 0;
185
+
186
+ if (canScroll >= innerRef.clientWidth) {
187
+ moveWidth = innerRef.clientWidth;
188
+ } else {
189
+ moveWidth = canScroll;
190
+ }
191
+
192
+ setTranslateX(translateX - moveWidth);
193
+ }
194
+ }
195
+ }, /*#__PURE__*/React__default['default'].createElement(icons.RightOutlined, null)), showScrollBtn && direction === 'vertical' && /*#__PURE__*/React__default['default'].createElement("div", {
196
+ className: prefixCls + "__add-btn",
197
+ onClick: function onClick() {
198
+ if (scrollRef && innerRef) {
199
+ var canScroll = scrollRef.clientHeight - innerRef.clientHeight + translateY;
200
+ var moveWidth = 0;
201
+
202
+ if (canScroll >= innerRef.clientHeight) {
203
+ moveWidth = innerRef.clientHeight;
204
+ } else {
205
+ moveWidth = canScroll;
206
+ }
207
+
208
+ setTranslateY(translateY - moveWidth);
209
+ }
210
+ }
211
+ }, /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null)), editable && /*#__PURE__*/React__default['default'].createElement("div", {
212
+ className: prefixCls + "__add-btn",
213
+ onClick: onAdd
214
+ }, /*#__PURE__*/React__default['default'].createElement(icons.PlusOutlined, null)));
92
215
  });
93
216
 
94
217
  if (env.__DEV__) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabList.js","sources":["../../src/TabList.tsx"],"sourcesContent":[null],"names":["TabList","forwardRef","ref","data","className","style","activeId","defaultActiveId","onChange","onTabClick","prefixCls","useUncontrolledState","tabId","activeTab","setActiveTab","useState","innerRef","setInnerRef","itemsRef","useRef","onClickTab","useCallback","key","React","cx","map","d","index","TabItem","node","current","active","TabInk","direction","tabListRef","itemRef","__DEV__","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQaA,OAAO,gBAAGC,gBAAAA,CACrB,cAAA,EAAyFC,GAAzF;MAAGC,YAAAA;MAAMC,iBAAAA;MAAWC,aAAAA;MAAOC,gBAAAA;MAAUC,uBAAAA;MAAiBC,gBAAAA;MAAUC,kBAAAA;MAAYC,iBAAAA;;;;8BACxCC,yCAAAA,CAChCJ,eAAe,KAAI,MAAAJ,IAAI,CAAC,CAAD,CAAJ,UAAA,iBAAA,SAAA,MAASS,KAAb,CADiBD,EAEhCL,QAFgCK,EAGhCH,QAHgCG;MAA3BE,SAAP;MAAkBC,YAAlB;;kBAMgCC,cAAAA,CAAgC,IAAhCA;MAAzBC,QAAP;MAAiBC,WAAjB;;MACMC,QAAQ,GAAGC,YAAAA,CAA2C,EAA3CA;MAEXC,UAAU,GAAGC,iBAAAA,CACjB,UAACC,GAAD;QACMb,YAAY;AACdA,MAAAA,UAAU,CAACa,GAAD,CAAVb;;;QAEEa,GAAG,KAAKT,SAARS,IAAqBR,cAAc;AACrCA,MAAAA,YAAY,CAACQ,GAAD,CAAZR;;AANwB,GAAXO,EASjB,CAACR,SAAD,EAAYJ,UAAZ,EAAwBK,YAAxB,CATiBO;sBAYjBE,yBAAAA,cAAAA,MAAAA;AAAKlB,IAAAA,KAAK,EAAEA;AAAOD,IAAAA,SAAS,EAAEoB,YAAAA,CAAMd,SAAJ,WAAFc,EAAyBpB,SAAzBoB;AAAqCtB,IAAAA,GAAG,EAAEA;GAAxEqB,eACEA,yBAAAA,cAAAA,MAAAA;AAAKnB,IAAAA,SAAS,EAAEoB,YAAAA,CAAMd,SAAJ,kBAAFc;AAAiCtB,IAAAA,GAAG,EAAEe;GAAtDM,EACGpB,IAAI,CAACsB,GAALtB,CAAS,UAACuB,CAAD,EAAIC,KAAJ;wBACRJ,yBAAAA,cAAAA,CAACK,eAADL;AACED,MAAAA,GAAG,EAAEK;OACDD;AACJxB,MAAAA,GAAG,EAAE,YAAA,CAAC2B,IAAD;AACHX,QAAAA,QAAQ,CAACY,OAATZ,MAAoBQ,CAAC,CAACd,KAAtBM,IAAiCW,IAAjCX;;AAEFa,MAAAA,MAAM,EAAElB,SAAS,KAAKa,CAAC,CAACd;AACxBF,MAAAA,SAAS,EAAEA;AACXD,MAAAA,UAAU,EAAEW;MARdG;AADD,GAAApB,CADHoB,eAaEA,yBAAAA,cAAAA,CAACS,aAADT;AACEb,IAAAA,SAAS,EAAEA;AACXuB,IAAAA,SAAS,EAAC;AACVC,IAAAA,UAAU,EAAElB;AACZmB,IAAAA,OAAO,EAAE,MAAAjB,QAAQ,CAACY,OAAT,UAAA,iBAAA,SAAA,MAAmBjB;GAJ9BU,CAbFA,CADFA;AAvB2B,CAAVtB;;AAkEvB,IAAImC,WAAJ,EAAa;AACXpC,EAAAA,OAAO,CAACqC,WAARrC,GAAsB,SAAtBA;;;"}
1
+ {"version":3,"file":"TabList.js","sources":["../../src/TabList.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","TabList","forwardRef","ref","data","className","style","activeId","defaultActiveId","onChange","onTabClick","prefixCls","direction","editable","onAdd","onDelete","draggable","onDragStart","onDragOver","onDrop","onDragEnd","type","useUncontrolledState","tabId","activeTab","setActiveTab","useState","innerRef","setInnerRef","scrollRef","setScrollRef","translateX","setTranslateX","translateY","setTranslateY","itemsRef","useRef","showScrollBtn","useMemo","clientWidth","clientHeight","onClickTab","useCallback","key","event","React","cx","onClick","canScroll","moveWidth","LeftOutlined","UpOutlined","transform","map","d","index","TabItem","node","current","itemRef","active","TabInk","translate","tabListRef","RightOutlined","DownOutlined","PlusOutlined","__DEV__","displayName"],"mappings":"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"}
package/lib/cjs/Tabs.js CHANGED
@@ -42,6 +42,8 @@ var _prefix = classname.getPrefixCls(_role);
42
42
 
43
43
 
44
44
  var Tabs = /*#__PURE__*/React.forwardRef(function (_a, ref) {
45
+ var _cx;
46
+
45
47
  var _b;
46
48
 
47
49
  var _a$prefixCls = _a.prefixCls,
@@ -54,9 +56,23 @@ var Tabs = /*#__PURE__*/React.forwardRef(function (_a, ref) {
54
56
  activeId = _a.activeId,
55
57
  onChange = _a.onChange,
56
58
  onTabClick = _a.onTabClick,
57
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick"]);
58
-
59
- var cls = classname.cx(prefixCls, className);
59
+ editable = _a.editable,
60
+ _a$placement = _a.placement,
61
+ placement = _a$placement === void 0 ? 'horizontal' : _a$placement,
62
+ onAdd = _a.onAdd,
63
+ onDelete = _a.onDelete,
64
+ _a$draggable = _a.draggable,
65
+ draggable = _a$draggable === void 0 ? false : _a$draggable,
66
+ onDragStart = _a.onDragStart,
67
+ onDragOver = _a.onDragOver,
68
+ onDragEnd = _a.onDragEnd,
69
+ onDrop = _a.onDrop,
70
+ style = _a.style,
71
+ _a$type = _a.type,
72
+ type = _a$type === void 0 ? 'default' : _a$type,
73
+ rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick", "editable", "placement", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDragEnd", "onDrop", "style", "type"]);
74
+
75
+ var cls = classname.cx(prefixCls, className, (_cx = {}, _cx[prefixCls + "--vertical"] = placement === 'vertical', _cx[prefixCls + "--" + type] = type, _cx));
60
76
  var tabList = React.useMemo(function () {
61
77
  var list = [];
62
78
  React__default['default'].Children.map(children, function (child) {
@@ -95,17 +111,27 @@ var Tabs = /*#__PURE__*/React.forwardRef(function (_a, ref) {
95
111
  return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
96
112
  ref: ref,
97
113
  role: role,
98
- className: cls
114
+ className: cls,
115
+ style: style
99
116
  }, rest), /*#__PURE__*/React__default['default'].createElement(TabList.TabList, {
100
117
  prefixCls: prefixCls,
101
118
  data: tabList,
102
119
  activeId: activeId,
103
120
  onChange: _onChange,
104
- onTabClick: onTabClick
121
+ onTabClick: onTabClick,
122
+ direction: placement,
123
+ editable: editable,
124
+ onAdd: onAdd,
125
+ onDelete: onDelete,
126
+ draggable: draggable,
127
+ onDragEnd: onDragEnd,
128
+ onDragOver: onDragOver,
129
+ onDrop: onDrop,
130
+ type: type,
131
+ onDragStart: onDragStart
105
132
  }), /*#__PURE__*/React__default['default'].createElement("div", {
106
133
  className: _prefix + "__content"
107
134
  }, React__default['default'].Children.map(children, function (child) {
108
- console.log(child, child === null || child === void 0 ? void 0 : child.props.tabId, activeId);
109
135
  return child && /*#__PURE__*/React__default['default'].cloneElement(child, {
110
136
  active: activePane === child.props.tabId
111
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../src/Tabs.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","Tabs","forwardRef","_a","ref","prefixCls","role","className","children","defaultActiveId","activeId","onChange","onTabClick","rest","cls","cx","tabList","useMemo","list","React","Children","map","child","props","tabTitle","tabId","tabDesc","closeable","disabled","item","push","useState","activePane","setActivePane","_onChange","useCallback","TabList","data","console","log","cloneElement","active","__DEV__","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAMA,KAAK,GAAG,MAAd;;AACA,IAAMC,OAAO,GAAGC,sBAAAA,CAAaF,KAAbE,CAAhB;AAEA;;;;;IAGaC,IAAI,gBAAGC,gBAAAA,CAClB,UACEC,EADF,EAYEC,GAZF;;;wBAEIC;MAAAA,sCAAYN;mBACZO;MAAAA,4BAAOR;MACPS,eAAAA;MACAC,cAAAA;MACAC,qBAAAA;MACAC,cAAAA;MACAC,cAAAA;MACAC,gBAAAA;MACGC,wBATL,YAAA,QAAA,aAAA,YAAA,mBAAA,YAAA,YAAA,cAAA;;MAaMC,GAAG,GAAGC,YAAAA,CAAGV,SAAHU,EAAcR,SAAdQ;MAENC,OAAO,GAAGC,aAAAA,CAAQ;QAChBC,IAAI,GAAmB;AAC7BC,IAAAA,yBAAAA,CAAMC,QAAND,CAAeE,GAAfF,CAAmBX,QAAnBW,EAA6B,UAACG,KAAD;UACvBA,OAAO;2BACiDA,KAAK,CAACC;YAAxDC,QAAR,gBAAQA;YAAUC,KAAlB,gBAAkBA;YAAOC,OAAzB,gBAAyBA;YAASC,SAAlC,gBAAkCA;YAAWC,QAA7C,gBAA6CA;YACvCC,IAAI,GAAG;AAAEL,UAAAA,QAAQ,EAARA,QAAF;AAAYC,UAAAA,KAAK,EAALA,KAAZ;AAAmBC,UAAAA,OAAO,EAAPA,OAAnB;AAA4BC,UAAAA,SAAS,EAATA,SAA5B;AAAuCC,UAAAA,QAAQ,EAARA;AAAvC;AAEbV,QAAAA,IAAI,CAACY,IAALZ,CAAUW,IAAVX;;AALJ,KAAAC;WAQOD;AAVc,GAAPD,EAWb,CAACT,QAAD,CAXaS;;kBAaoBc,cAAAA,CAASrB,QAAQ,IAAID,eAAZC,KAA+B,MAAAM,OAAO,CAAC,CAAD,CAAP,UAAA,iBAAA,SAAA,MAAYS,KAA3Cf,CAATqB;MAA7BC,UAAP;MAAmBC,aAAnB;;MAEMC,SAAS,GAAGC,iBAAAA,CAChB,UAACV,KAAD;QACMd,UAAU;AACZA,MAAAA,QAAQ,CAACc,KAAD,CAARd;;;AAEFsB,IAAAA,aAAa,CAACR,KAAD,CAAbQ;AALyB,GAAXE,EAOhB,CAACxB,QAAD,CAPgBwB;;sBAWhBhB,yBAAAA,cAAAA,MAAAA;AAAKf,IAAAA,GAAG,EAAEA;AAAKE,IAAAA,IAAI,EAAEA;AAAMC,IAAAA,SAAS,EAAEO;KAASD,KAA/CM,eACEA,yBAAAA,cAAAA,CAACiB,eAADjB;AACEd,IAAAA,SAAS,EAAEA;AACXgC,IAAAA,IAAI,EAAErB;AACNN,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,QAAQ,EAAEuB;AACVtB,IAAAA,UAAU,EAAEA;GALdO,CADFA,eAQEA,yBAAAA,cAAAA,MAAAA;AAAKZ,IAAAA,SAAS,EAAKR,OAAL;GAAdoB,EACGA,yBAAAA,CAAMC,QAAND,CAAeE,GAAfF,CAAmBX,QAAnBW,EAA6B,UAACG,KAAD;AAC5BgB,IAAAA,OAAO,CAACC,GAARD,CAAYhB,KAAZgB,EAAmBhB,KAAK,SAALA,IAAAA,KAAK,WAALA,SAAAA,GAAAA,KAAK,CAAEC,KAAPD,CAAaG,KAAhCa,EAAuC5B,QAAvC4B;WAEEhB,KAAK,iBACLH,yBAAAA,CAAMqB,YAANrB,CAAmBG,KAAnBH,EAA0B;AACxBsB,MAAAA,MAAM,EAAET,UAAU,KAAKV,KAAK,CAACC,KAAND,CAAYG;AADX,KAA1BN;AAJH,GAAAA,CADHA,CARFA;AA3CwB,CAAVjB;;AAkHpB,IAAIwC,WAAJ,EAAa;AACXzC,EAAAA,IAAI,CAAC0C,WAAL1C,GAAmB,MAAnBA;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../src/Tabs.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","Tabs","forwardRef","_a","ref","prefixCls","role","className","children","defaultActiveId","activeId","onChange","onTabClick","editable","placement","onAdd","onDelete","draggable","onDragStart","onDragOver","onDragEnd","onDrop","style","type","rest","cls","cx","tabList","useMemo","list","React","Children","map","child","props","tabTitle","tabId","tabDesc","closeable","disabled","item","push","useState","activePane","setActivePane","_onChange","useCallback","TabList","data","direction","cloneElement","active","__DEV__","displayName"],"mappings":"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"}
package/lib/cjs/index.js CHANGED
@@ -19,7 +19,10 @@ var Tabs = require('./Tabs.js');
19
19
 
20
20
  var TabPane = require('./TabPane.js');
21
21
 
22
+ var TabList = require('./TabList.js');
23
+
22
24
  exports.Tabs = Tabs.Tabs;
23
25
  exports["default"] = Tabs.Tabs;
24
26
  exports.TabPane = TabPane.TabPane;
27
+ exports.TabList = TabList.TabList;
25
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}