@hi-ui/tabs 4.0.0-alpha.3 → 4.0.0-alpha.4

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/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,14 +45,14 @@ var TabInk = function TabInk(_ref) {
44
45
 
45
46
  if (direction === 'vertical') {
46
47
  _style = {
47
- top: itemRect.top - listRect.top + "px",
48
+ top: itemRect.top - listRect.top - translate + "px",
48
49
  height: itemRect.height + "px",
49
50
  left: '',
50
51
  width: ''
51
52
  };
52
53
  } else {
53
54
  _style = {
54
- left: itemRect.left - listRect.left + "px",
55
+ left: itemRect.left - listRect.left - translate + "px",
55
56
  width: itemRect.width + "px",
56
57
  top: '',
57
58
  height: ''
@@ -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,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,GAAgCL,SAAhCK,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,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
@@ -39,7 +41,26 @@ var TabItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
39
41
  prefixCls = _ref.prefixCls,
40
42
  tabId = _ref.tabId,
41
43
  onTabClick = _ref.onTabClick,
42
- active = _ref.active;
44
+ active = _ref.active,
45
+ editable = _ref.editable,
46
+ onDelete = _ref.onDelete,
47
+ index = _ref.index,
48
+ _onDragStart = _ref.onDragStart,
49
+ _onDragOver = _ref.onDragOver,
50
+ _onDrop = _ref.onDrop,
51
+ _onDragEnd = _ref.onDragEnd,
52
+ itemRef = _ref.itemRef,
53
+ draggable = _ref.draggable,
54
+ _ref$direction = _ref.direction,
55
+ layout = _ref$direction === void 0 ? 'horizontal' : _ref$direction;
56
+
57
+ var _useState = React.useState(null),
58
+ dragId = _useState[0],
59
+ setDragId = _useState[1];
60
+
61
+ var _useState2 = React.useState(null),
62
+ direction = _useState2[0],
63
+ setDirection = _useState2[1];
43
64
 
44
65
  var _onClick = React.useCallback(function (e) {
45
66
  if (onTabClick) {
@@ -49,11 +70,110 @@ var TabItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
49
70
 
50
71
  return /*#__PURE__*/React__default['default'].createElement("div", {
51
72
  style: style,
52
- className: classname.cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx)),
73
+ className: classname.cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx[prefixCls + "__item--" + direction] = direction, _cx)),
53
74
  ref: ref,
75
+ draggable: draggable,
54
76
  tabIndex: disabled ? 0 : -1,
55
- onClick: _onClick
56
- }, /*#__PURE__*/React__default['default'].createElement("span", null, tabTitle));
77
+ onClick: _onClick,
78
+ onDragStart: function onDragStart(e) {
79
+ e.stopPropagation();
80
+ e.dataTransfer.setData('tab', JSON.stringify({
81
+ tabId: tabId,
82
+ tabTitle: tabTitle
83
+ }));
84
+ setDragId(tabId);
85
+
86
+ if (_onDragStart) {
87
+ _onDragStart(e, {
88
+ tabId: tabId,
89
+ tabTitle: tabTitle
90
+ });
91
+ }
92
+ },
93
+ onDragEnd: function onDragEnd(e) {
94
+ e.preventDefault();
95
+ e.stopPropagation();
96
+ e.dataTransfer.clearData();
97
+ setDragId(null);
98
+
99
+ if (_onDragEnd) {
100
+ _onDragEnd(e, {
101
+ tabId: tabId,
102
+ tabTitle: tabTitle
103
+ });
104
+ }
105
+ },
106
+ onDragLeave: function onDragLeave(e) {
107
+ e.preventDefault();
108
+ e.stopPropagation();
109
+ setDirection(null);
110
+ },
111
+ onDragOver: function onDragOver(e) {
112
+ e.preventDefault();
113
+ e.stopPropagation();
114
+
115
+ if (dragId !== tabId && itemRef) {
116
+ var targetBoundingRect = itemRef.getBoundingClientRect();
117
+ var hoverTargetSortY = (targetBoundingRect.bottom - targetBoundingRect.top) / 2;
118
+ var hoverTargetSortX = (targetBoundingRect.right - targetBoundingRect.left) / 2; // 鼠标垂直移动距离
119
+
120
+ var hoverClientY = e.clientY - targetBoundingRect.top;
121
+ var hoverClientX = e.clientX - targetBoundingRect.left;
122
+
123
+ if (layout === 'vertical') {
124
+ if (hoverClientY < hoverTargetSortY) {
125
+ setDirection('prev');
126
+ } else {
127
+ setDirection('next');
128
+ }
129
+ } else {
130
+ if (hoverClientX < hoverTargetSortX) {
131
+ setDirection('prev');
132
+ } else {
133
+ setDirection('next');
134
+ }
135
+ }
136
+ }
137
+
138
+ if (_onDragOver) {
139
+ _onDragOver(e, {
140
+ tabId: tabId,
141
+ tabTitle: tabTitle
142
+ });
143
+ }
144
+ },
145
+ onDrop: function onDrop(e) {
146
+ e.preventDefault();
147
+ e.stopPropagation();
148
+ setDirection(null);
149
+
150
+ if (_onDrop && dragId !== tabId) {
151
+ var passedData = JSON.parse(e.dataTransfer.getData('tab'));
152
+
153
+ _onDrop(e, {
154
+ dragNode: {
155
+ tabId: tabId,
156
+ tabTitle: tabTitle
157
+ },
158
+ dropNode: {
159
+ tabId: passedData.tabId,
160
+ tabTitle: passedData.tabTitle
161
+ },
162
+ direction: direction
163
+ });
164
+ }
165
+ }
166
+ }, /*#__PURE__*/React__default['default'].createElement("span", null, tabTitle), editable && /*#__PURE__*/React__default['default'].createElement("span", {
167
+ className: prefixCls + "__close-btn",
168
+ onClick: function onClick() {
169
+ if (onDelete) {
170
+ onDelete({
171
+ tabId: tabId,
172
+ tabTitle: tabTitle
173
+ }, index);
174
+ }
175
+ }
176
+ }, /*#__PURE__*/React__default['default'].createElement(icons.CloseOutlined, null)));
57
177
  });
58
178
 
59
179
  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","prefixCls","tabId","onTabClick","active","editable","onDelete","index","onDragStart","onDragOver","onDrop","onDragEnd","itemRef","draggable","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
@@ -36,6 +38,8 @@ function _interopDefaultLegacy(e) {
36
38
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
37
39
 
38
40
  var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
41
+ var _cx;
42
+
39
43
  var data = _ref.data,
40
44
  className = _ref.className,
41
45
  style = _ref.style,
@@ -43,7 +47,19 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
43
47
  defaultActiveId = _ref.defaultActiveId,
44
48
  onChange = _ref.onChange,
45
49
  onTabClick = _ref.onTabClick,
46
- prefixCls = _ref.prefixCls;
50
+ prefixCls = _ref.prefixCls,
51
+ _ref$direction = _ref.direction,
52
+ direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
53
+ editable = _ref.editable,
54
+ onAdd = _ref.onAdd,
55
+ onDelete = _ref.onDelete,
56
+ draggable = _ref.draggable,
57
+ onDragStart = _ref.onDragStart,
58
+ onDragOver = _ref.onDragOver,
59
+ onDrop = _ref.onDrop,
60
+ onDragEnd = _ref.onDragEnd,
61
+ _ref$type = _ref.type,
62
+ type = _ref$type === void 0 ? 'default' : _ref$type;
47
63
 
48
64
  var _a, _b;
49
65
 
@@ -55,7 +71,24 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
55
71
  innerRef = _useState[0],
56
72
  setInnerRef = _useState[1];
57
73
 
74
+ var _useState2 = React.useState(null),
75
+ scrollRef = _useState2[0],
76
+ setScrollRef = _useState2[1];
77
+
78
+ var _useState3 = React.useState(0),
79
+ translateX = _useState3[0],
80
+ setTranslateX = _useState3[1];
81
+
82
+ var _useState4 = React.useState(0),
83
+ translateY = _useState4[0],
84
+ setTranslateY = _useState4[1];
85
+
58
86
  var itemsRef = React.useRef({});
87
+ var showScrollBtn = React.useMemo(function () {
88
+ if (scrollRef && innerRef) {
89
+ 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);
90
+ }
91
+ }, [scrollRef, innerRef, direction]);
59
92
  var onClickTab = React.useCallback(function (key) {
60
93
  if (onTabClick) {
61
94
  onTabClick(key);
@@ -67,11 +100,49 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
67
100
  }, [activeTab, onTabClick, setActiveTab]);
68
101
  return /*#__PURE__*/React__default['default'].createElement("div", {
69
102
  style: style,
70
- className: classname.cx(prefixCls + "__list", className),
103
+ className: classname.cx(prefixCls + "__list", (_cx = {}, _cx[prefixCls + "__list--" + type] = type, _cx), className),
71
104
  ref: ref
72
- }, /*#__PURE__*/React__default['default'].createElement("div", {
105
+ }, showScrollBtn && direction === 'horizontal' && /*#__PURE__*/React__default['default'].createElement("div", {
106
+ className: prefixCls + "__add-btn",
107
+ onClick: function onClick() {
108
+ if (scrollRef && innerRef) {
109
+ var canScroll = -translateX - innerRef.clientWidth;
110
+ var moveWidth = 0;
111
+
112
+ if (canScroll >= 0) {
113
+ moveWidth = innerRef.clientWidth;
114
+ } else {
115
+ moveWidth = -translateX;
116
+ }
117
+
118
+ setTranslateX(translateX + moveWidth);
119
+ }
120
+ }
121
+ }, /*#__PURE__*/React__default['default'].createElement(icons.LeftOutlined, null)), showScrollBtn && direction === 'vertical' && /*#__PURE__*/React__default['default'].createElement("div", {
122
+ className: prefixCls + "__add-btn",
123
+ onClick: function onClick() {
124
+ if (scrollRef && innerRef) {
125
+ var canScroll = -translateY - innerRef.clientHeight;
126
+ var moveWidth = 0;
127
+
128
+ if (canScroll >= 0) {
129
+ moveWidth = innerRef.clientHeight;
130
+ } else {
131
+ moveWidth = -translateY;
132
+ }
133
+
134
+ setTranslateY(translateY + moveWidth);
135
+ }
136
+ }
137
+ }, /*#__PURE__*/React__default['default'].createElement(icons.UpOutlined, null)), /*#__PURE__*/React__default['default'].createElement("div", {
73
138
  className: classname.cx(prefixCls + "__list--inner"),
74
139
  ref: setInnerRef
140
+ }, /*#__PURE__*/React__default['default'].createElement("div", {
141
+ className: classname.cx(prefixCls + "__list--scroll"),
142
+ ref: setScrollRef,
143
+ style: showScrollBtn ? {
144
+ transform: direction === 'horizontal' ? "translateX(" + translateX + "px)" : "translateY(" + translateY + "px)"
145
+ } : {}
75
146
  }, data.map(function (d, index) {
76
147
  return /*#__PURE__*/React__default['default'].createElement(TabItem.TabItem, Object.assign({
77
148
  key: index
@@ -79,16 +150,62 @@ var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
79
150
  ref: function ref(node) {
80
151
  itemsRef.current["" + d.tabId] = node;
81
152
  },
153
+ itemRef: itemsRef.current["" + d.tabId],
154
+ index: index,
82
155
  active: activeTab === d.tabId,
83
156
  prefixCls: prefixCls,
84
- onTabClick: onClickTab
157
+ draggable: draggable,
158
+ onTabClick: onClickTab,
159
+ editable: editable,
160
+ onDelete: onDelete,
161
+ onDragStart: onDragStart,
162
+ onDragOver: onDragOver,
163
+ onDrop: onDrop,
164
+ onDragEnd: onDragEnd,
165
+ direction: direction
85
166
  }));
86
- }), /*#__PURE__*/React__default['default'].createElement(TabInk.TabInk, {
167
+ }), type === 'default' && /*#__PURE__*/React__default['default'].createElement(TabInk.TabInk, {
168
+ translate: direction === 'horizontal' ? translateX : translateY,
87
169
  prefixCls: prefixCls,
88
- direction: "horizontal",
170
+ direction: direction,
89
171
  tabListRef: innerRef,
90
172
  itemRef: (_b = itemsRef.current) === null || _b === void 0 ? void 0 : _b[activeTab]
91
- })));
173
+ }))), showScrollBtn && direction === 'horizontal' && /*#__PURE__*/React__default['default'].createElement("div", {
174
+ className: prefixCls + "__add-btn",
175
+ onClick: function onClick() {
176
+ if (scrollRef && innerRef) {
177
+ var canScroll = scrollRef.clientWidth - innerRef.clientWidth + translateX;
178
+ var moveWidth = 0;
179
+
180
+ if (canScroll >= innerRef.clientWidth) {
181
+ moveWidth = innerRef.clientWidth;
182
+ } else {
183
+ moveWidth = canScroll;
184
+ }
185
+
186
+ setTranslateX(translateX - moveWidth);
187
+ }
188
+ }
189
+ }, /*#__PURE__*/React__default['default'].createElement(icons.RightOutlined, null)), showScrollBtn && direction === 'vertical' && /*#__PURE__*/React__default['default'].createElement("div", {
190
+ className: prefixCls + "__add-btn",
191
+ onClick: function onClick() {
192
+ if (scrollRef && innerRef) {
193
+ var canScroll = scrollRef.clientHeight - innerRef.clientHeight + translateY;
194
+ var moveWidth = 0;
195
+
196
+ if (canScroll >= innerRef.clientHeight) {
197
+ moveWidth = innerRef.clientHeight;
198
+ } else {
199
+ moveWidth = canScroll;
200
+ }
201
+
202
+ setTranslateY(translateY - moveWidth);
203
+ }
204
+ }
205
+ }, /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null)), editable && /*#__PURE__*/React__default['default'].createElement("div", {
206
+ className: prefixCls + "__add-btn",
207
+ onClick: onAdd
208
+ }, /*#__PURE__*/React__default['default'].createElement(icons.PlusOutlined, null)));
92
209
  });
93
210
 
94
211
  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":["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","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$direction = _a.direction,
61
+ direction = _a$direction === void 0 ? 'horizontal' : _a$direction,
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", "direction", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDragEnd", "onDrop", "style", "type"]);
74
+
75
+ var cls = classname.cx(prefixCls, className, (_cx = {}, _cx[prefixCls + "--vertical"] = direction === '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: direction,
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","direction","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","cloneElement","active","__DEV__","displayName"],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
- var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-tabs .hi-v4-tabs__list {\n position: relative;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n color: #000;\n color: var(--hi-v4-color-static-black, #000);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden; }\n.hi-v4-tabs .hi-v4-tabs__list::before {\n content: '';\n clear: both;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background-color: #e5e7eb;\n background-color: var(--hi-v4-color-gray-200, #e5e7eb);\n display: block; }\n.hi-v4-tabs .hi-v4-tabs__list--inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.hi-v4-tabs__ink {\n position: absolute;\n bottom: 0;\n right: auto;\n top: auto;\n height: 2px;\n background-color: #4387f4;\n background-color: var(--hi-v4-color-brandblue-500, #4387f4);\n -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);\n 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); }\n.hi-v4-tabs__item {\n line-height: 22px;\n padding: 8px 0;\n margin: 0 16px;\n cursor: pointer; }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--disabled):hover {\n color: #4387f4;\n color: var(--hi-v4-color-brandblue-500, #4387f4); }\n.hi-v4-tabs__item--active {\n color: #4387f4;\n color: var(--hi-v4-color-brandblue-500, #4387f4); }\n.hi-v4-tabs__item--disabled {\n color: #6b7280 !important;\n color: var(--hi-v4-color-gray-500, #6b7280) !important;\n cursor: not-allowed; }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--active) {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n.hi-v4-tabs__content {\n width: 100%;\n overflow: hidden;\n padding-top: 16px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n";
15
+ var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-tabs__add-btn {\n cursor: pointer; }\n.hi-v4-tabs__close-btn {\n cursor: pointer;\n color: #000;\n color: var(--hi-v4-color-static-black, #000);\n margin-left: 4px; }\n.hi-v4-tabs__list {\n position: relative;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n color: #000;\n color: var(--hi-v4-color-static-black, #000);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.hi-v4-tabs__list--card .hi-v4-tabs__item {\n margin: 0 4px 0 0;\n padding: 4px 8px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n border-radius: 4px 4px 0 0;\n border: 1px solid #dfe2e8;\n border: 1px solid var(--hi-v4-color-gray-300, #dfe2e8); }\n.hi-v4-tabs__list--card .hi-v4-tabs__item--active {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa);\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-bottom: 2px solid #fff;\n border-bottom: 2px solid var(--hi-v4-color-static-white, #fff); }\n.hi-v4-tabs__list::before {\n content: '';\n clear: both;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n display: block; }\n.hi-v4-tabs__list--inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1;\n flex: 1 1;\n position: relative;\n overflow: hidden; }\n.hi-v4-tabs__list--scroll {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n -webkit-transition: all 0.3s;\n transition: all 0.3s; }\n.hi-v4-tabs--vertical {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--card .hi-v4-tabs__item {\n margin: 0 0 4px 0;\n padding: 4px 8px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n border-radius: 4px 0 0 4px;\n border: 1px solid #dfe2e8;\n border: 1px solid var(--hi-v4-color-gray-300, #dfe2e8); }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--card .hi-v4-tabs__item--active {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa);\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-right: 1px solid #fff;\n border-right: 1px solid var(--hi-v4-color-static-white, #fff); }\n.hi-v4-tabs--vertical .hi-v4-tabs__list::before {\n content: '';\n clear: both;\n position: absolute;\n top: 0;\n right: 0;\n left: auto;\n height: 100%;\n width: 1px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n display: block; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--inner {\n width: auto;\n display: block;\n position: relative; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--scroll {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative; }\n.hi-v4-tabs--vertical .hi-v4-tabs__item {\n line-height: 22px;\n padding: 0 8px;\n margin: 8px 0;\n -webkit-transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);\n transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1); }\n.hi-v4-tabs--vertical .hi-v4-tabs__item--prev {\n border-top: 1px solid #237ffa;\n border-top: 1px solid var(--hi-v4-color-brandblue-500, #237ffa);\n border-left: none; }\n.hi-v4-tabs--vertical .hi-v4-tabs__item--next {\n border-bottom: 1px solid #237ffa;\n border-bottom: 1px solid var(--hi-v4-color-brandblue-500, #237ffa);\n border-right: none; }\n.hi-v4-tabs--vertical .hi-v4-tabs__content {\n padding-left: 16px;\n padding-top: 0; }\n.hi-v4-tabs--vertical .hi-v4-tabs__ink {\n position: absolute;\n right: 0;\n bottom: auto;\n width: 2px;\n background-color: #237ffa;\n background-color: var(--hi-v4-color-brandblue-500, #237ffa);\n -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);\n 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); }\n.hi-v4-tabs__ink {\n position: absolute;\n bottom: 0;\n right: auto;\n top: auto;\n height: 2px;\n background-color: #237ffa;\n background-color: var(--hi-v4-color-brandblue-500, #237ffa);\n -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);\n 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); }\n.hi-v4-tabs__item {\n line-height: 22px;\n padding: 8px 0;\n margin: 0 16px;\n cursor: pointer;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);\n transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1); }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--disabled):hover {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--active {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--prev {\n border-left: 1px solid #237ffa;\n border-left: 1px solid var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--next {\n border-right: 1px solid #237ffa;\n border-right: 1px solid var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--disabled {\n color: #929aa6 !important;\n color: var(--hi-v4-color-gray-500, #929aa6) !important;\n cursor: not-allowed; }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--active) {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n.hi-v4-tabs__content {\n width: 100%;\n overflow: hidden;\n padding-top: 16px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n";
16
16
 
17
17
  var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
18
18
 
package/lib/esm/TabInk.js CHANGED
@@ -17,7 +17,8 @@ var TabInk = function TabInk(_ref) {
17
17
  prefixCls = _ref.prefixCls,
18
18
  itemRef = _ref.itemRef,
19
19
  tabListRef = _ref.tabListRef,
20
- direction = _ref.direction;
20
+ direction = _ref.direction,
21
+ translate = _ref.translate;
21
22
  var inkRef = useRef(null);
22
23
  useEffect(function () {
23
24
  if (inkRef.current && itemRef && tabListRef) {
@@ -27,14 +28,14 @@ var TabInk = function TabInk(_ref) {
27
28
 
28
29
  if (direction === 'vertical') {
29
30
  _style = {
30
- top: itemRect.top - listRect.top + "px",
31
+ top: itemRect.top - listRect.top - translate + "px",
31
32
  height: itemRect.height + "px",
32
33
  left: '',
33
34
  width: ''
34
35
  };
35
36
  } else {
36
37
  _style = {
37
- left: itemRect.left - listRect.left + "px",
38
+ left: itemRect.left - listRect.left - translate + "px",
38
39
  width: itemRect.width + "px",
39
40
  top: '',
40
41
  height: ''
@@ -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,MAAM,CAAiB,IAAjB;AAErBC,EAAAA,SAAS,CAAC;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,GAAA,EAsBN,CAACf,OAAD,EAAUC,UAAV,EAAsBC,SAAtB,CAtBM,CAATG;sBAyBEa,mBAAAA,MAAAA;AACEC,IAAAA,SAAS,EAAEC,EAAE,CAAIrB,SAAJ,UAAA,iBACPA,SADO,wBACsBD,aADtB;AAGbuB,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,MAAM,CAAiB,IAAjB;AAErBC,EAAAA,SAAS,CAAC;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,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,GAAgCL,SAAhCK,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,GAAA,EAsBN,CAAChB,OAAD,EAAUC,UAAV,EAAsBC,SAAtB,CAtBM,CAATI;sBAyBEa,mBAAAA,MAAAA;AACEC,IAAAA,SAAS,EAAEC,EAAE,CAAItB,SAAJ,UAAA,iBACPA,SADO,wBACsBD,aADtB;AAGbwB,IAAAA,GAAG,EAAElB;GAJPe;;;;"}
@@ -7,9 +7,10 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
- import React, { forwardRef, useCallback } from 'react';
10
+ import React, { forwardRef, useState, useCallback } from 'react';
11
11
  import { cx } from '@hi-ui/classname';
12
12
  import { __DEV__ } from '@hi-ui/env';
13
+ import { CloseOutlined } from '@hi-ui/icons';
13
14
  var TabItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
14
15
  var _cx;
15
16
 
@@ -20,7 +21,26 @@ var TabItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
20
21
  prefixCls = _ref.prefixCls,
21
22
  tabId = _ref.tabId,
22
23
  onTabClick = _ref.onTabClick,
23
- active = _ref.active;
24
+ active = _ref.active,
25
+ editable = _ref.editable,
26
+ onDelete = _ref.onDelete,
27
+ index = _ref.index,
28
+ _onDragStart = _ref.onDragStart,
29
+ _onDragOver = _ref.onDragOver,
30
+ _onDrop = _ref.onDrop,
31
+ _onDragEnd = _ref.onDragEnd,
32
+ itemRef = _ref.itemRef,
33
+ draggable = _ref.draggable,
34
+ _ref$direction = _ref.direction,
35
+ layout = _ref$direction === void 0 ? 'horizontal' : _ref$direction;
36
+
37
+ var _useState = useState(null),
38
+ dragId = _useState[0],
39
+ setDragId = _useState[1];
40
+
41
+ var _useState2 = useState(null),
42
+ direction = _useState2[0],
43
+ setDirection = _useState2[1];
24
44
 
25
45
  var _onClick = useCallback(function (e) {
26
46
  if (onTabClick) {
@@ -30,11 +50,110 @@ var TabItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
30
50
 
31
51
  return /*#__PURE__*/React.createElement("div", {
32
52
  style: style,
33
- className: cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx)),
53
+ className: cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx[prefixCls + "__item--" + direction] = direction, _cx)),
34
54
  ref: ref,
55
+ draggable: draggable,
35
56
  tabIndex: disabled ? 0 : -1,
36
- onClick: _onClick
37
- }, /*#__PURE__*/React.createElement("span", null, tabTitle));
57
+ onClick: _onClick,
58
+ onDragStart: function onDragStart(e) {
59
+ e.stopPropagation();
60
+ e.dataTransfer.setData('tab', JSON.stringify({
61
+ tabId: tabId,
62
+ tabTitle: tabTitle
63
+ }));
64
+ setDragId(tabId);
65
+
66
+ if (_onDragStart) {
67
+ _onDragStart(e, {
68
+ tabId: tabId,
69
+ tabTitle: tabTitle
70
+ });
71
+ }
72
+ },
73
+ onDragEnd: function onDragEnd(e) {
74
+ e.preventDefault();
75
+ e.stopPropagation();
76
+ e.dataTransfer.clearData();
77
+ setDragId(null);
78
+
79
+ if (_onDragEnd) {
80
+ _onDragEnd(e, {
81
+ tabId: tabId,
82
+ tabTitle: tabTitle
83
+ });
84
+ }
85
+ },
86
+ onDragLeave: function onDragLeave(e) {
87
+ e.preventDefault();
88
+ e.stopPropagation();
89
+ setDirection(null);
90
+ },
91
+ onDragOver: function onDragOver(e) {
92
+ e.preventDefault();
93
+ e.stopPropagation();
94
+
95
+ if (dragId !== tabId && itemRef) {
96
+ var targetBoundingRect = itemRef.getBoundingClientRect();
97
+ var hoverTargetSortY = (targetBoundingRect.bottom - targetBoundingRect.top) / 2;
98
+ var hoverTargetSortX = (targetBoundingRect.right - targetBoundingRect.left) / 2; // 鼠标垂直移动距离
99
+
100
+ var hoverClientY = e.clientY - targetBoundingRect.top;
101
+ var hoverClientX = e.clientX - targetBoundingRect.left;
102
+
103
+ if (layout === 'vertical') {
104
+ if (hoverClientY < hoverTargetSortY) {
105
+ setDirection('prev');
106
+ } else {
107
+ setDirection('next');
108
+ }
109
+ } else {
110
+ if (hoverClientX < hoverTargetSortX) {
111
+ setDirection('prev');
112
+ } else {
113
+ setDirection('next');
114
+ }
115
+ }
116
+ }
117
+
118
+ if (_onDragOver) {
119
+ _onDragOver(e, {
120
+ tabId: tabId,
121
+ tabTitle: tabTitle
122
+ });
123
+ }
124
+ },
125
+ onDrop: function onDrop(e) {
126
+ e.preventDefault();
127
+ e.stopPropagation();
128
+ setDirection(null);
129
+
130
+ if (_onDrop && dragId !== tabId) {
131
+ var passedData = JSON.parse(e.dataTransfer.getData('tab'));
132
+
133
+ _onDrop(e, {
134
+ dragNode: {
135
+ tabId: tabId,
136
+ tabTitle: tabTitle
137
+ },
138
+ dropNode: {
139
+ tabId: passedData.tabId,
140
+ tabTitle: passedData.tabTitle
141
+ },
142
+ direction: direction
143
+ });
144
+ }
145
+ }
146
+ }, /*#__PURE__*/React.createElement("span", null, tabTitle), editable && /*#__PURE__*/React.createElement("span", {
147
+ className: prefixCls + "__close-btn",
148
+ onClick: function onClick() {
149
+ if (onDelete) {
150
+ onDelete({
151
+ tabId: tabId,
152
+ tabTitle: tabTitle
153
+ }, index);
154
+ }
155
+ }
156
+ }, /*#__PURE__*/React.createElement(CloseOutlined, null)));
38
157
  });
39
158
 
40
159
  if (__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,UAAU,CAC/B,cAAA,EAAiFC,GAAjF;;;MAAGC,iBAAAA;MAAWC,aAAAA;MAAOC,gBAAAA;MAAUC,gBAAAA;MAAUC,iBAAAA;MAAWC,aAAAA;MAAOC,kBAAAA;MAAYC,cAAAA;;MAC/DC,QAAQ,GAAGC,WAAW,CAC1B,UAACC,CAAD;QACMJ,YAAY;AACdA,MAAAA,UAAU,CAACD,KAAD,CAAVC;;AAHsB,GAAA,EAM1B,CAACA,UAAD,EAAaD,KAAb,CAN0B;;sBAS1BM,mBAAAA,MAAAA;AACEV,IAAAA,KAAK,EAAEA;AACPD,IAAAA,SAAS,EAAEY,EAAE,CAAIR,SAAJ,WAAA,EAAuBJ,SAAvB,iBAAwCI,SAAxC,uBAAoEG,WAApE;AACbR,IAAAA,GAAG,EAAEA;AACLc,IAAAA,QAAQ,EAAEX,QAAQ,GAAG,CAAH,GAAO,CAAC;AAC1BY,IAAAA,OAAO,EAAEN;GALXG,eAOEA,mBAAAA,OAAAA,MAAAA,EAAOR,QAAPQ,CAPFA;AAX2B,CAAA;;AAuBjC,IAAII,OAAJ,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","prefixCls","tabId","onTabClick","active","editable","onDelete","index","onDragStart","onDragOver","onDrop","onDragEnd","itemRef","draggable","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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"}
@@ -7,13 +7,16 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
- import React, { forwardRef, useState, useRef, useCallback } from 'react';
10
+ import React, { forwardRef, useState, useRef, useMemo, useCallback } from 'react';
11
11
  import { __DEV__ } from '@hi-ui/env';
12
12
  import { TabItem } from './TabItem.js';
13
13
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
14
14
  import { cx } from '@hi-ui/classname';
15
15
  import { TabInk } from './TabInk.js';
16
+ import { LeftOutlined, UpOutlined, RightOutlined, DownOutlined, PlusOutlined } from '@hi-ui/icons';
16
17
  var TabList = /*#__PURE__*/forwardRef(function (_ref, ref) {
18
+ var _cx;
19
+
17
20
  var data = _ref.data,
18
21
  className = _ref.className,
19
22
  style = _ref.style,
@@ -21,7 +24,19 @@ var TabList = /*#__PURE__*/forwardRef(function (_ref, ref) {
21
24
  defaultActiveId = _ref.defaultActiveId,
22
25
  onChange = _ref.onChange,
23
26
  onTabClick = _ref.onTabClick,
24
- prefixCls = _ref.prefixCls;
27
+ prefixCls = _ref.prefixCls,
28
+ _ref$direction = _ref.direction,
29
+ direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
30
+ editable = _ref.editable,
31
+ onAdd = _ref.onAdd,
32
+ onDelete = _ref.onDelete,
33
+ draggable = _ref.draggable,
34
+ onDragStart = _ref.onDragStart,
35
+ onDragOver = _ref.onDragOver,
36
+ onDrop = _ref.onDrop,
37
+ onDragEnd = _ref.onDragEnd,
38
+ _ref$type = _ref.type,
39
+ type = _ref$type === void 0 ? 'default' : _ref$type;
25
40
 
26
41
  var _a, _b;
27
42
 
@@ -33,7 +48,24 @@ var TabList = /*#__PURE__*/forwardRef(function (_ref, ref) {
33
48
  innerRef = _useState[0],
34
49
  setInnerRef = _useState[1];
35
50
 
51
+ var _useState2 = useState(null),
52
+ scrollRef = _useState2[0],
53
+ setScrollRef = _useState2[1];
54
+
55
+ var _useState3 = useState(0),
56
+ translateX = _useState3[0],
57
+ setTranslateX = _useState3[1];
58
+
59
+ var _useState4 = useState(0),
60
+ translateY = _useState4[0],
61
+ setTranslateY = _useState4[1];
62
+
36
63
  var itemsRef = useRef({});
64
+ var showScrollBtn = useMemo(function () {
65
+ if (scrollRef && innerRef) {
66
+ 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);
67
+ }
68
+ }, [scrollRef, innerRef, direction]);
37
69
  var onClickTab = useCallback(function (key) {
38
70
  if (onTabClick) {
39
71
  onTabClick(key);
@@ -45,11 +77,49 @@ var TabList = /*#__PURE__*/forwardRef(function (_ref, ref) {
45
77
  }, [activeTab, onTabClick, setActiveTab]);
46
78
  return /*#__PURE__*/React.createElement("div", {
47
79
  style: style,
48
- className: cx(prefixCls + "__list", className),
80
+ className: cx(prefixCls + "__list", (_cx = {}, _cx[prefixCls + "__list--" + type] = type, _cx), className),
49
81
  ref: ref
50
- }, /*#__PURE__*/React.createElement("div", {
82
+ }, showScrollBtn && direction === 'horizontal' && /*#__PURE__*/React.createElement("div", {
83
+ className: prefixCls + "__add-btn",
84
+ onClick: function onClick() {
85
+ if (scrollRef && innerRef) {
86
+ var canScroll = -translateX - innerRef.clientWidth;
87
+ var moveWidth = 0;
88
+
89
+ if (canScroll >= 0) {
90
+ moveWidth = innerRef.clientWidth;
91
+ } else {
92
+ moveWidth = -translateX;
93
+ }
94
+
95
+ setTranslateX(translateX + moveWidth);
96
+ }
97
+ }
98
+ }, /*#__PURE__*/React.createElement(LeftOutlined, null)), showScrollBtn && direction === 'vertical' && /*#__PURE__*/React.createElement("div", {
99
+ className: prefixCls + "__add-btn",
100
+ onClick: function onClick() {
101
+ if (scrollRef && innerRef) {
102
+ var canScroll = -translateY - innerRef.clientHeight;
103
+ var moveWidth = 0;
104
+
105
+ if (canScroll >= 0) {
106
+ moveWidth = innerRef.clientHeight;
107
+ } else {
108
+ moveWidth = -translateY;
109
+ }
110
+
111
+ setTranslateY(translateY + moveWidth);
112
+ }
113
+ }
114
+ }, /*#__PURE__*/React.createElement(UpOutlined, null)), /*#__PURE__*/React.createElement("div", {
51
115
  className: cx(prefixCls + "__list--inner"),
52
116
  ref: setInnerRef
117
+ }, /*#__PURE__*/React.createElement("div", {
118
+ className: cx(prefixCls + "__list--scroll"),
119
+ ref: setScrollRef,
120
+ style: showScrollBtn ? {
121
+ transform: direction === 'horizontal' ? "translateX(" + translateX + "px)" : "translateY(" + translateY + "px)"
122
+ } : {}
53
123
  }, data.map(function (d, index) {
54
124
  return /*#__PURE__*/React.createElement(TabItem, Object.assign({
55
125
  key: index
@@ -57,16 +127,62 @@ var TabList = /*#__PURE__*/forwardRef(function (_ref, ref) {
57
127
  ref: function ref(node) {
58
128
  itemsRef.current["" + d.tabId] = node;
59
129
  },
130
+ itemRef: itemsRef.current["" + d.tabId],
131
+ index: index,
60
132
  active: activeTab === d.tabId,
61
133
  prefixCls: prefixCls,
62
- onTabClick: onClickTab
134
+ draggable: draggable,
135
+ onTabClick: onClickTab,
136
+ editable: editable,
137
+ onDelete: onDelete,
138
+ onDragStart: onDragStart,
139
+ onDragOver: onDragOver,
140
+ onDrop: onDrop,
141
+ onDragEnd: onDragEnd,
142
+ direction: direction
63
143
  }));
64
- }), /*#__PURE__*/React.createElement(TabInk, {
144
+ }), type === 'default' && /*#__PURE__*/React.createElement(TabInk, {
145
+ translate: direction === 'horizontal' ? translateX : translateY,
65
146
  prefixCls: prefixCls,
66
- direction: "horizontal",
147
+ direction: direction,
67
148
  tabListRef: innerRef,
68
149
  itemRef: (_b = itemsRef.current) === null || _b === void 0 ? void 0 : _b[activeTab]
69
- })));
150
+ }))), showScrollBtn && direction === 'horizontal' && /*#__PURE__*/React.createElement("div", {
151
+ className: prefixCls + "__add-btn",
152
+ onClick: function onClick() {
153
+ if (scrollRef && innerRef) {
154
+ var canScroll = scrollRef.clientWidth - innerRef.clientWidth + translateX;
155
+ var moveWidth = 0;
156
+
157
+ if (canScroll >= innerRef.clientWidth) {
158
+ moveWidth = innerRef.clientWidth;
159
+ } else {
160
+ moveWidth = canScroll;
161
+ }
162
+
163
+ setTranslateX(translateX - moveWidth);
164
+ }
165
+ }
166
+ }, /*#__PURE__*/React.createElement(RightOutlined, null)), showScrollBtn && direction === 'vertical' && /*#__PURE__*/React.createElement("div", {
167
+ className: prefixCls + "__add-btn",
168
+ onClick: function onClick() {
169
+ if (scrollRef && innerRef) {
170
+ var canScroll = scrollRef.clientHeight - innerRef.clientHeight + translateY;
171
+ var moveWidth = 0;
172
+
173
+ if (canScroll >= innerRef.clientHeight) {
174
+ moveWidth = innerRef.clientHeight;
175
+ } else {
176
+ moveWidth = canScroll;
177
+ }
178
+
179
+ setTranslateY(translateY - moveWidth);
180
+ }
181
+ }
182
+ }, /*#__PURE__*/React.createElement(DownOutlined, null)), editable && /*#__PURE__*/React.createElement("div", {
183
+ className: prefixCls + "__add-btn",
184
+ onClick: onAdd
185
+ }, /*#__PURE__*/React.createElement(PlusOutlined, null)));
70
186
  });
71
187
 
72
188
  if (__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,UAAU,CAC/B,cAAA,EAAyFC,GAAzF;MAAGC,YAAAA;MAAMC,iBAAAA;MAAWC,aAAAA;MAAOC,gBAAAA;MAAUC,uBAAAA;MAAiBC,gBAAAA;MAAUC,kBAAAA;MAAYC,iBAAAA;;;;8BACxCC,oBAAoB,CACpDJ,eAAe,KAAI,MAAAJ,IAAI,CAAC,CAAD,CAAJ,UAAA,iBAAA,SAAA,MAASS,KAAb,CADqC,EAEpDN,QAFoD,EAGpDE,QAHoD;MAA/CK,SAAP;MAAkBC,YAAlB;;kBAMgCC,QAAQ,CAAwB,IAAxB;MAAjCC,QAAP;MAAiBC,WAAjB;;MACMC,QAAQ,GAAGC,MAAM,CAAqC,EAArC;MAEjBC,UAAU,GAAGC,WAAW,CAC5B,UAACC,GAAD;QACMb,YAAY;AACdA,MAAAA,UAAU,CAACa,GAAD,CAAVb;;;QAEEa,GAAG,KAAKT,SAARS,IAAqBR,cAAc;AACrCA,MAAAA,YAAY,CAACQ,GAAD,CAAZR;;AANwB,GAAA,EAS5B,CAACD,SAAD,EAAYJ,UAAZ,EAAwBK,YAAxB,CAT4B;sBAY5BS,mBAAAA,MAAAA;AAAKlB,IAAAA,KAAK,EAAEA;AAAOD,IAAAA,SAAS,EAAEoB,EAAE,CAAId,SAAJ,WAAA,EAAuBN,SAAvB;AAAmCF,IAAAA,GAAG,EAAEA;GAAxEqB,eACEA,mBAAAA,MAAAA;AAAKnB,IAAAA,SAAS,EAAEoB,EAAE,CAAId,SAAJ,kBAAA;AAA+BR,IAAAA,GAAG,EAAEe;GAAtDM,EACGpB,IAAI,CAACsB,GAALtB,CAAS,UAACuB,CAAD,EAAIC,KAAJ;wBACRJ,mBAAAA,CAACK,OAADL;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,mBAAAA,CAACS,MAADT;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,CAAA;;AAkEjC,IAAIa,OAAJ,EAAa;AACXpC,EAAAA,OAAO,CAACqC,WAARrC,GAAsB,SAAtBA;;;"}
1
+ {"version":3,"file":"TabList.js","sources":["../../src/TabList.tsx"],"sourcesContent":[null],"names":["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","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/esm/Tabs.js CHANGED
@@ -21,6 +21,8 @@ var _prefix = getPrefixCls(_role);
21
21
 
22
22
 
23
23
  var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
24
+ var _cx;
25
+
24
26
  var _b;
25
27
 
26
28
  var _a$prefixCls = _a.prefixCls,
@@ -33,9 +35,23 @@ var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
33
35
  activeId = _a.activeId,
34
36
  onChange = _a.onChange,
35
37
  onTabClick = _a.onTabClick,
36
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick"]);
38
+ editable = _a.editable,
39
+ _a$direction = _a.direction,
40
+ direction = _a$direction === void 0 ? 'horizontal' : _a$direction,
41
+ onAdd = _a.onAdd,
42
+ onDelete = _a.onDelete,
43
+ _a$draggable = _a.draggable,
44
+ draggable = _a$draggable === void 0 ? false : _a$draggable,
45
+ onDragStart = _a.onDragStart,
46
+ onDragOver = _a.onDragOver,
47
+ onDragEnd = _a.onDragEnd,
48
+ onDrop = _a.onDrop,
49
+ style = _a.style,
50
+ _a$type = _a.type,
51
+ type = _a$type === void 0 ? 'default' : _a$type,
52
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick", "editable", "direction", "onAdd", "onDelete", "draggable", "onDragStart", "onDragOver", "onDragEnd", "onDrop", "style", "type"]);
37
53
 
38
- var cls = cx(prefixCls, className);
54
+ var cls = cx(prefixCls, className, (_cx = {}, _cx[prefixCls + "--vertical"] = direction === 'vertical', _cx[prefixCls + "--" + type] = type, _cx));
39
55
  var tabList = useMemo(function () {
40
56
  var list = [];
41
57
  React.Children.map(children, function (child) {
@@ -74,17 +90,27 @@ var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
74
90
  return /*#__PURE__*/React.createElement("div", Object.assign({
75
91
  ref: ref,
76
92
  role: role,
77
- className: cls
93
+ className: cls,
94
+ style: style
78
95
  }, rest), /*#__PURE__*/React.createElement(TabList, {
79
96
  prefixCls: prefixCls,
80
97
  data: tabList,
81
98
  activeId: activeId,
82
99
  onChange: _onChange,
83
- onTabClick: onTabClick
100
+ onTabClick: onTabClick,
101
+ direction: direction,
102
+ editable: editable,
103
+ onAdd: onAdd,
104
+ onDelete: onDelete,
105
+ draggable: draggable,
106
+ onDragEnd: onDragEnd,
107
+ onDragOver: onDragOver,
108
+ onDrop: onDrop,
109
+ type: type,
110
+ onDragStart: onDragStart
84
111
  }), /*#__PURE__*/React.createElement("div", {
85
112
  className: _prefix + "__content"
86
113
  }, React.Children.map(children, function (child) {
87
- console.log(child, child === null || child === void 0 ? void 0 : child.props.tabId, activeId);
88
114
  return child && /*#__PURE__*/React.cloneElement(child, {
89
115
  active: activePane === child.props.tabId
90
116
  });
@@ -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,YAAY,CAACF,KAAD,CAA5B;AAEA;;;;;IAGaG,IAAI,gBAAGC,UAAU,CAC5B,UACEC,EADF,EAYEC,GAZF;;;wBAEIC;MAAAA,sCAAYN;mBACZO;MAAAA,4BAAOR;MACPS,eAAAA;MACAC,cAAAA;MACAC,qBAAAA;MACAC,cAAAA;MACAC,cAAAA;MACAC,gBAAAA;MACGC,kBATL,YAAA,QAAA,aAAA,YAAA,mBAAA,YAAA,YAAA,cAAA;;MAaMC,GAAG,GAAGC,EAAE,CAACV,SAAD,EAAYE,SAAZ;MAERS,OAAO,GAAGC,OAAO,CAAC;QAChBC,IAAI,GAAmB;AAC7BC,IAAAA,KAAK,CAACC,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,GAAA,EAWpB,CAACV,QAAD,CAXoB;;kBAaauB,QAAQ,CAACrB,QAAQ,IAAID,eAAZC,KAA+B,MAAAM,OAAO,CAAC,CAAD,CAAP,UAAA,iBAAA,SAAA,MAAYS,KAA3Cf,CAAD;MAArCsB,UAAP;MAAmBC,aAAnB;;MAEMC,SAAS,GAAGC,WAAW,CAC3B,UAACV,KAAD;QACMd,UAAU;AACZA,MAAAA,QAAQ,CAACc,KAAD,CAARd;;;AAEFsB,IAAAA,aAAa,CAACR,KAAD,CAAbQ;AALyB,GAAA,EAO3B,CAACtB,QAAD,CAP2B;;sBAW3BQ,mBAAAA,MAAAA;AAAKf,IAAAA,GAAG,EAAEA;AAAKE,IAAAA,IAAI,EAAEA;AAAMC,IAAAA,SAAS,EAAEO;KAASD,KAA/CM,eACEA,mBAAAA,CAACiB,OAADjB;AACEd,IAAAA,SAAS,EAAEA;AACXgC,IAAAA,IAAI,EAAErB;AACNN,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,QAAQ,EAAEuB;AACVtB,IAAAA,UAAU,EAAEA;GALdO,CADFA,eAQEA,mBAAAA,MAAAA;AAAKZ,IAAAA,SAAS,EAAKR,OAAL;GAAdoB,EACGA,KAAK,CAACC,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,KAAK,CAACqB,YAANrB,CAAmBG,KAAnBH,EAA0B;AACxBsB,MAAAA,MAAM,EAAET,UAAU,KAAKV,KAAK,CAACC,KAAND,CAAYG;AADX,KAA1BN;AAJH,GAAAA,CADHA,CARFA;AA3CwB,CAAA;;AAkH9B,IAAIuB,OAAJ,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","direction","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","cloneElement","active","__DEV__","displayName"],"mappings":";;;;;;;;;;;;;;AAMA,IAAMA,KAAK,GAAG,MAAd;;AACA,IAAMC,OAAO,GAAGC,YAAY,CAACF,KAAD,CAA5B;AAEA;;;;;IAGaG,IAAI,gBAAGC,UAAU,CAC5B,UACEC,EADF,EAuBEC,GAvBF;;;;;wBAEIC;MAAAA,sCAAYN;mBACZO;MAAAA,4BAAOR;MACPS,eAAAA;MACAC,cAAAA;MACAC,qBAAAA;MACAC,cAAAA;MACAC,cAAAA;MACAC,gBAAAA;MACAC,cAAAA;wBACAC;MAAAA,sCAAY;MACZC,WAAAA;MACAC,cAAAA;wBACAC;MAAAA,sCAAY;MACZC,iBAAAA;MACAC,gBAAAA;MACAC,eAAAA;MACAC,YAAAA;MACAC,WAAAA;mBACAC;MAAAA,4BAAO;MACJC,kBApBL,YAAA,QAAA,aAAA,YAAA,mBAAA,YAAA,YAAA,cAAA,YAAA,aAAA,SAAA,YAAA,aAAA,eAAA,cAAA,aAAA,UAAA,SAAA,QAAA;;MAwBMC,GAAG,GAAGC,EAAE,CAACrB,SAAD,EAAYE,SAAZ,iBACRF,SADQ,mBACgBS,SAAS,KAAK,gBACtCT,SAFQ,OAERA,GAAckB,QAASA,SAFf;MAKRI,OAAO,GAAGC,OAAO,CAAC;QAChBC,IAAI,GAAmB;AAC7BC,IAAAA,KAAK,CAACC,QAAND,CAAeE,GAAfF,CAAmBtB,QAAnBsB,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,GAAA,EAWpB,CAACrB,QAAD,CAXoB;;kBAaakC,QAAQ,CAAChC,QAAQ,IAAID,eAAZC,KAA+B,MAAAiB,OAAO,CAAC,CAAD,CAAP,UAAA,iBAAA,SAAA,MAAYS,KAA3C1B,CAAD;MAArCiC,UAAP;MAAmBC,aAAnB;;MAEMC,SAAS,GAAGC,WAAW,CAC3B,UAACV,KAAD;QACMzB,UAAU;AACZA,MAAAA,QAAQ,CAACyB,KAAD,CAARzB;;;AAEFiC,IAAAA,aAAa,CAACR,KAAD,CAAbQ;AALyB,GAAA,EAO3B,CAACjC,QAAD,CAP2B;;sBAW3BmB,mBAAAA,MAAAA;AAAK1B,IAAAA,GAAG,EAAEA;AAAKE,IAAAA,IAAI,EAAEA;AAAMC,IAAAA,SAAS,EAAEkB;AAAKH,IAAAA,KAAK,EAAEA;KAAWE,KAA7DM,eACEA,mBAAAA,CAACiB,OAADjB;AACEzB,IAAAA,SAAS,EAAEA;AACX2C,IAAAA,IAAI,EAAErB;AACNjB,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,QAAQ,EAAEkC;AACVjC,IAAAA,UAAU,EAAEA;AACZE,IAAAA,SAAS,EAAEA;AACXD,IAAAA,QAAQ,EAAEA;AACVE,IAAAA,KAAK,EAAEA;AACPC,IAAAA,QAAQ,EAAEA;AACVC,IAAAA,SAAS,EAAEA;AACXG,IAAAA,SAAS,EAAEA;AACXD,IAAAA,UAAU,EAAEA;AACZE,IAAAA,MAAM,EAAEA;AACRE,IAAAA,IAAI,EAAEA;AACNL,IAAAA,WAAW,EAAEA;GAffY,CADFA,eAkBEA,mBAAAA,MAAAA;AAAKvB,IAAAA,SAAS,EAAKR,OAAL;GAAd+B,EACGA,KAAK,CAACC,QAAND,CAAeE,GAAfF,CAAmBtB,QAAnBsB,EAA6B,UAACG,KAAD;WAE1BA,KAAK,iBACLH,KAAK,CAACmB,YAANnB,CAAmBG,KAAnBH,EAA0B;AACxBoB,MAAAA,MAAM,EAAEP,UAAU,KAAKV,KAAK,CAACC,KAAND,CAAYG;AADX,KAA1BN;AAHH,GAAAA,CADHA,CAlBFA;AAzDwB,CAAA;;AAsK9B,IAAIqB,OAAJ,EAAa;AACXlD,EAAAA,IAAI,CAACmD,WAALnD,GAAmB,MAAnBA;;;"}
@@ -7,7 +7,7 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
- var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-tabs .hi-v4-tabs__list {\n position: relative;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n color: #000;\n color: var(--hi-v4-color-static-black, #000);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden; }\n.hi-v4-tabs .hi-v4-tabs__list::before {\n content: '';\n clear: both;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background-color: #e5e7eb;\n background-color: var(--hi-v4-color-gray-200, #e5e7eb);\n display: block; }\n.hi-v4-tabs .hi-v4-tabs__list--inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.hi-v4-tabs__ink {\n position: absolute;\n bottom: 0;\n right: auto;\n top: auto;\n height: 2px;\n background-color: #4387f4;\n background-color: var(--hi-v4-color-brandblue-500, #4387f4);\n -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);\n 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); }\n.hi-v4-tabs__item {\n line-height: 22px;\n padding: 8px 0;\n margin: 0 16px;\n cursor: pointer; }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--disabled):hover {\n color: #4387f4;\n color: var(--hi-v4-color-brandblue-500, #4387f4); }\n.hi-v4-tabs__item--active {\n color: #4387f4;\n color: var(--hi-v4-color-brandblue-500, #4387f4); }\n.hi-v4-tabs__item--disabled {\n color: #6b7280 !important;\n color: var(--hi-v4-color-gray-500, #6b7280) !important;\n cursor: not-allowed; }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--active) {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n.hi-v4-tabs__content {\n width: 100%;\n overflow: hidden;\n padding-top: 16px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n";
10
+ var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-tabs__add-btn {\n cursor: pointer; }\n.hi-v4-tabs__close-btn {\n cursor: pointer;\n color: #000;\n color: var(--hi-v4-color-static-black, #000);\n margin-left: 4px; }\n.hi-v4-tabs__list {\n position: relative;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n color: #000;\n color: var(--hi-v4-color-static-black, #000);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.hi-v4-tabs__list--card .hi-v4-tabs__item {\n margin: 0 4px 0 0;\n padding: 4px 8px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n border-radius: 4px 4px 0 0;\n border: 1px solid #dfe2e8;\n border: 1px solid var(--hi-v4-color-gray-300, #dfe2e8); }\n.hi-v4-tabs__list--card .hi-v4-tabs__item--active {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa);\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-bottom: 2px solid #fff;\n border-bottom: 2px solid var(--hi-v4-color-static-white, #fff); }\n.hi-v4-tabs__list::before {\n content: '';\n clear: both;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 1px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n display: block; }\n.hi-v4-tabs__list--inner {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1;\n flex: 1 1;\n position: relative;\n overflow: hidden; }\n.hi-v4-tabs__list--scroll {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n position: relative;\n -webkit-transition: all 0.3s;\n transition: all 0.3s; }\n.hi-v4-tabs--vertical {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--card .hi-v4-tabs__item {\n margin: 0 0 4px 0;\n padding: 4px 8px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n border-radius: 4px 0 0 4px;\n border: 1px solid #dfe2e8;\n border: 1px solid var(--hi-v4-color-gray-300, #dfe2e8); }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--card .hi-v4-tabs__item--active {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa);\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-right: 1px solid #fff;\n border-right: 1px solid var(--hi-v4-color-static-white, #fff); }\n.hi-v4-tabs--vertical .hi-v4-tabs__list::before {\n content: '';\n clear: both;\n position: absolute;\n top: 0;\n right: 0;\n left: auto;\n height: 100%;\n width: 1px;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n display: block; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--inner {\n width: auto;\n display: block;\n position: relative; }\n.hi-v4-tabs--vertical .hi-v4-tabs__list--scroll {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative; }\n.hi-v4-tabs--vertical .hi-v4-tabs__item {\n line-height: 22px;\n padding: 0 8px;\n margin: 8px 0;\n -webkit-transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);\n transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1); }\n.hi-v4-tabs--vertical .hi-v4-tabs__item--prev {\n border-top: 1px solid #237ffa;\n border-top: 1px solid var(--hi-v4-color-brandblue-500, #237ffa);\n border-left: none; }\n.hi-v4-tabs--vertical .hi-v4-tabs__item--next {\n border-bottom: 1px solid #237ffa;\n border-bottom: 1px solid var(--hi-v4-color-brandblue-500, #237ffa);\n border-right: none; }\n.hi-v4-tabs--vertical .hi-v4-tabs__content {\n padding-left: 16px;\n padding-top: 0; }\n.hi-v4-tabs--vertical .hi-v4-tabs__ink {\n position: absolute;\n right: 0;\n bottom: auto;\n width: 2px;\n background-color: #237ffa;\n background-color: var(--hi-v4-color-brandblue-500, #237ffa);\n -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);\n 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); }\n.hi-v4-tabs__ink {\n position: absolute;\n bottom: 0;\n right: auto;\n top: auto;\n height: 2px;\n background-color: #237ffa;\n background-color: var(--hi-v4-color-brandblue-500, #237ffa);\n -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);\n 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); }\n.hi-v4-tabs__item {\n line-height: 22px;\n padding: 8px 0;\n margin: 0 16px;\n cursor: pointer;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n -webkit-transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);\n transition: all 0.2s cubic-bezier(0.34, 0.69, 0.1, 1); }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--disabled):hover {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--active {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--prev {\n border-left: 1px solid #237ffa;\n border-left: 1px solid var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--next {\n border-right: 1px solid #237ffa;\n border-right: 1px solid var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-tabs__item--disabled {\n color: #929aa6 !important;\n color: var(--hi-v4-color-gray-500, #929aa6) !important;\n cursor: not-allowed; }\n.hi-v4-tabs__item:not(.hi-v4-tabs__item--active) {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis; }\n.hi-v4-tabs__content {\n width: 100%;\n overflow: hidden;\n padding-top: 16px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n";
11
11
 
12
12
  var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
13
13
 
@@ -5,6 +5,7 @@ interface TabInkProps {
5
5
  itemRef: HTMLElement;
6
6
  tabListRef: HTMLElement;
7
7
  direction: 'vertical' | 'horizontal';
8
+ translate: number;
8
9
  }
9
10
  export declare const TabInk: React.FC<TabInkProps>;
10
11
  export default TabInk;
@@ -2,8 +2,22 @@ import React from 'react';
2
2
  import { TabPaneProps } from './TabPane';
3
3
  interface TabItemProps extends TabPaneProps {
4
4
  active: boolean;
5
+ draggable?: boolean;
5
6
  onTabClick: (key: string) => void;
6
7
  prefixCls?: string;
8
+ editable?: boolean;
9
+ onDelete?: (deletedNode: TabPaneProps, index: number) => void;
10
+ index: number;
11
+ onDragStart?: (e: React.DragEvent<HTMLDivElement>, dragNode: TabPaneProps) => void;
12
+ onDragOver?: (e: React.DragEvent<HTMLDivElement>, dragNode: TabPaneProps) => void;
13
+ onDrop?: (e: React.DragEvent<HTMLDivElement>, { dragNode, dropNode, direction, }: {
14
+ dragNode: TabPaneProps;
15
+ dropNode: TabPaneProps;
16
+ direction: 'prev' | 'next' | null;
17
+ }) => void;
18
+ onDragEnd?: (e: React.DragEvent<HTMLDivElement>, dragNode: TabPaneProps) => void;
19
+ itemRef: HTMLDivElement | null;
20
+ direction: 'horizontal' | 'vertical';
7
21
  }
8
22
  export declare const TabItem: React.ForwardRefExoticComponent<TabItemProps & React.RefAttributes<HTMLDivElement | null>>;
9
23
  export {};
@@ -6,6 +6,7 @@ export interface TabListProps {
6
6
  className?: string;
7
7
  prefixCls?: string;
8
8
  data: TabPaneProps[];
9
+ direction: 'horizontal' | 'vertical';
9
10
  onChange?: (tabId: string) => void;
10
11
  onTabClick?: (tabId: string) => void;
11
12
  /**
@@ -16,4 +17,23 @@ export interface TabListProps {
16
17
  * 高亮id
17
18
  */
18
19
  activeId?: string;
20
+ editable?: boolean;
21
+ draggable?: boolean;
22
+ type?: 'desc' | 'card' | 'button' | 'default';
23
+ /**
24
+ * 节点增加时触发
25
+ */
26
+ onAdd?: () => void;
27
+ /**
28
+ * 节点删除时时触发
29
+ */
30
+ onDelete?: (deletedNode: TabPaneProps, index: number) => void;
31
+ onDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;
32
+ onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
33
+ onDrop?: (e: React.DragEvent<HTMLDivElement>, { dragNode, dropNode, direction, }: {
34
+ dragNode: TabPaneProps;
35
+ dropNode: TabPaneProps;
36
+ direction: string | null;
37
+ }) => void;
38
+ onDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;
19
39
  }
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { TabPaneProps } from './TabPane';
2
3
  /**
3
4
  * TODO: What is Tabs
4
5
  */
@@ -40,6 +41,14 @@ export interface TabsProps {
40
41
  * 高亮id
41
42
  */
42
43
  activeId?: string;
44
+ /**
45
+ * 布局方向
46
+ */
47
+ direction?: 'horizontal' | 'vertical';
48
+ /**
49
+ * 布局类型
50
+ */
51
+ type?: 'desc' | 'card' | 'button' | 'default';
43
52
  /**
44
53
  * `activeId` 改变的回调
45
54
  */
@@ -48,4 +57,20 @@ export interface TabsProps {
48
57
  * 标签点击触发回调
49
58
  */
50
59
  onTabClick?: (tabId: string) => void;
60
+ /**
61
+ * 节点增加时触发
62
+ */
63
+ onAdd?: () => void;
64
+ /**
65
+ * 节点删除时时触发
66
+ */
67
+ onDelete?: (deletedNode: TabPaneProps, index: number) => void;
68
+ onDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;
69
+ onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
70
+ onDrop?: (e: React.DragEvent<HTMLDivElement>, { dragNode, dropNode, direction, }: {
71
+ dragNode: TabPaneProps;
72
+ dropNode: TabPaneProps;
73
+ direction: string | null;
74
+ }) => void;
75
+ onDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;
51
76
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/tabs",
3
- "version": "4.0.0-alpha.3",
3
+ "version": "4.0.0-alpha.4",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HIUI <mi-hiui@xiaomi.com>",
@@ -44,18 +44,19 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@hi-ui/classname": "^4.0.0-alpha.0",
47
- "@hi-ui/core-css": "^4.0.0-alpha.5",
47
+ "@hi-ui/core-css": "^4.0.0-alpha.6",
48
48
  "@hi-ui/env": "^4.0.0-alpha.0",
49
- "@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.7"
49
+ "@hi-ui/icons": "^4.0.0-alpha.13",
50
+ "@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.8"
50
51
  },
51
52
  "peerDependencies": {
52
53
  "react": "^17.0.1",
53
54
  "react-dom": "^17.0.1"
54
55
  },
55
56
  "devDependencies": {
56
- "@hi-ui/hi-build": "^4.0.0-alpha.0",
57
+ "@hi-ui/hi-build": "^4.0.0-alpha.3",
57
58
  "react": "^17.0.1",
58
59
  "react-dom": "^17.0.1"
59
60
  },
60
- "gitHead": "a3b15b79bb08d15f45212c851a1c93ba5bf0d7c0"
61
+ "gitHead": "689ef7c6b19089bf0aa818978c70da1e27714e6b"
61
62
  }