@hi-ui/tabs 4.0.0-alpha.1
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/LICENSE +21 -0
- package/README.md +11 -0
- package/lib/cjs/TabInk.js +72 -0
- package/lib/cjs/TabInk.js.map +1 -0
- package/lib/cjs/TabItem.js +64 -0
- package/lib/cjs/TabItem.js.map +1 -0
- package/lib/cjs/TabList.js +99 -0
- package/lib/cjs/TabList.js.map +1 -0
- package/lib/cjs/TabPane.js +40 -0
- package/lib/cjs/TabPane.js.map +1 -0
- package/lib/cjs/Tabs.js +120 -0
- package/lib/cjs/Tabs.js.map +1 -0
- package/lib/cjs/index.js +25 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/styles/index.scss.js +22 -0
- package/lib/cjs/styles/index.scss.js.map +1 -0
- package/lib/esm/TabInk.js +55 -0
- package/lib/esm/TabInk.js.map +1 -0
- package/lib/esm/TabItem.js +45 -0
- package/lib/esm/TabItem.js.map +1 -0
- package/lib/esm/TabList.js +77 -0
- package/lib/esm/TabList.js.map +1 -0
- package/lib/esm/TabPane.js +24 -0
- package/lib/esm/TabPane.js.map +1 -0
- package/lib/esm/Tabs.js +99 -0
- package/lib/esm/Tabs.js.map +1 -0
- package/lib/esm/index.js +13 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/styles/index.scss.js +17 -0
- package/lib/esm/styles/index.scss.js.map +1 -0
- package/lib/types/TabInk.d.ts +10 -0
- package/lib/types/TabItem.d.ts +9 -0
- package/lib/types/TabList.d.ts +19 -0
- package/lib/types/TabPane.d.ts +11 -0
- package/lib/types/Tabs.d.ts +51 -0
- package/lib/types/index.d.ts +4 -0
- package/package.json +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Xiaomi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var React = require('react');
|
|
19
|
+
|
|
20
|
+
var classname = require('@hi-ui/classname');
|
|
21
|
+
|
|
22
|
+
function _interopDefaultLegacy(e) {
|
|
23
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
24
|
+
'default': e
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
29
|
+
|
|
30
|
+
var TabInk = function TabInk(_ref) {
|
|
31
|
+
var _cx;
|
|
32
|
+
|
|
33
|
+
var disabled = _ref.disabled,
|
|
34
|
+
prefixCls = _ref.prefixCls,
|
|
35
|
+
itemRef = _ref.itemRef,
|
|
36
|
+
tabListRef = _ref.tabListRef,
|
|
37
|
+
direction = _ref.direction;
|
|
38
|
+
var inkRef = React.useRef(null);
|
|
39
|
+
React.useEffect(function () {
|
|
40
|
+
if (inkRef.current && itemRef && tabListRef) {
|
|
41
|
+
var itemRect = itemRef.getBoundingClientRect();
|
|
42
|
+
var listRect = tabListRef.getBoundingClientRect();
|
|
43
|
+
var _style = {};
|
|
44
|
+
|
|
45
|
+
if (direction === 'vertical') {
|
|
46
|
+
_style = {
|
|
47
|
+
top: itemRect.top - listRect.top + "px",
|
|
48
|
+
height: itemRect.height + "px",
|
|
49
|
+
left: '',
|
|
50
|
+
width: ''
|
|
51
|
+
};
|
|
52
|
+
} else {
|
|
53
|
+
_style = {
|
|
54
|
+
left: itemRect.left - listRect.left + "px",
|
|
55
|
+
width: itemRect.width + "px",
|
|
56
|
+
top: '',
|
|
57
|
+
height: ''
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
Object.assign(inkRef.current.style, _style);
|
|
62
|
+
}
|
|
63
|
+
}, [itemRef, tabListRef, direction]);
|
|
64
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
65
|
+
className: classname.cx(prefixCls + "__ink", (_cx = {}, _cx[prefixCls + "__ink--disabled"] = disabled, _cx)),
|
|
66
|
+
ref: inkRef
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
exports.TabInk = TabInk;
|
|
71
|
+
exports["default"] = TabInk;
|
|
72
|
+
//# sourceMappingURL=TabInk.js.map
|
|
@@ -0,0 +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;;;;"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var React = require('react');
|
|
19
|
+
|
|
20
|
+
var classname = require('@hi-ui/classname');
|
|
21
|
+
|
|
22
|
+
var env = require('@hi-ui/env');
|
|
23
|
+
|
|
24
|
+
function _interopDefaultLegacy(e) {
|
|
25
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
26
|
+
'default': e
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
31
|
+
|
|
32
|
+
var TabItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
33
|
+
var _cx;
|
|
34
|
+
|
|
35
|
+
var className = _ref.className,
|
|
36
|
+
style = _ref.style,
|
|
37
|
+
disabled = _ref.disabled,
|
|
38
|
+
tabTitle = _ref.tabTitle,
|
|
39
|
+
prefixCls = _ref.prefixCls,
|
|
40
|
+
tabId = _ref.tabId,
|
|
41
|
+
onTabClick = _ref.onTabClick,
|
|
42
|
+
active = _ref.active;
|
|
43
|
+
|
|
44
|
+
var _onClick = React.useCallback(function (e) {
|
|
45
|
+
if (onTabClick) {
|
|
46
|
+
onTabClick(tabId);
|
|
47
|
+
}
|
|
48
|
+
}, [onTabClick, tabId]);
|
|
49
|
+
|
|
50
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
51
|
+
style: style,
|
|
52
|
+
className: classname.cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx)),
|
|
53
|
+
ref: ref,
|
|
54
|
+
tabIndex: disabled ? 0 : -1,
|
|
55
|
+
onClick: _onClick
|
|
56
|
+
}, /*#__PURE__*/React__default['default'].createElement("span", null, tabTitle));
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
if (env.__DEV__) {
|
|
60
|
+
TabItem.displayName = 'TabItem';
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exports.TabItem = TabItem;
|
|
64
|
+
//# sourceMappingURL=TabItem.js.map
|
|
@@ -0,0 +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;;;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var React = require('react');
|
|
19
|
+
|
|
20
|
+
var env = require('@hi-ui/env');
|
|
21
|
+
|
|
22
|
+
var TabItem = require('./TabItem.js');
|
|
23
|
+
|
|
24
|
+
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
|
25
|
+
|
|
26
|
+
var classname = require('@hi-ui/classname');
|
|
27
|
+
|
|
28
|
+
var TabInk = require('./TabInk.js');
|
|
29
|
+
|
|
30
|
+
function _interopDefaultLegacy(e) {
|
|
31
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
32
|
+
'default': e
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
37
|
+
|
|
38
|
+
var TabList = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
39
|
+
var data = _ref.data,
|
|
40
|
+
className = _ref.className,
|
|
41
|
+
style = _ref.style,
|
|
42
|
+
activeId = _ref.activeId,
|
|
43
|
+
defaultActiveId = _ref.defaultActiveId,
|
|
44
|
+
onChange = _ref.onChange,
|
|
45
|
+
onTabClick = _ref.onTabClick,
|
|
46
|
+
prefixCls = _ref.prefixCls;
|
|
47
|
+
|
|
48
|
+
var _a, _b;
|
|
49
|
+
|
|
50
|
+
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultActiveId || ((_a = data[0]) === null || _a === void 0 ? void 0 : _a.tabId), activeId, onChange),
|
|
51
|
+
activeTab = _useUncontrolledState[0],
|
|
52
|
+
setActiveTab = _useUncontrolledState[1];
|
|
53
|
+
|
|
54
|
+
var _useState = React.useState(null),
|
|
55
|
+
innerRef = _useState[0],
|
|
56
|
+
setInnerRef = _useState[1];
|
|
57
|
+
|
|
58
|
+
var itemsRef = React.useRef({});
|
|
59
|
+
var onClickTab = React.useCallback(function (key) {
|
|
60
|
+
if (onTabClick) {
|
|
61
|
+
onTabClick(key);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (key !== activeTab && setActiveTab) {
|
|
65
|
+
setActiveTab(key);
|
|
66
|
+
}
|
|
67
|
+
}, [activeTab, onTabClick, setActiveTab]);
|
|
68
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
69
|
+
style: style,
|
|
70
|
+
className: classname.cx(prefixCls + "__list", className),
|
|
71
|
+
ref: ref
|
|
72
|
+
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
73
|
+
className: classname.cx(prefixCls + "__list--inner"),
|
|
74
|
+
ref: setInnerRef
|
|
75
|
+
}, data.map(function (d, index) {
|
|
76
|
+
return /*#__PURE__*/React__default['default'].createElement(TabItem.TabItem, Object.assign({
|
|
77
|
+
key: index
|
|
78
|
+
}, d, {
|
|
79
|
+
ref: function ref(node) {
|
|
80
|
+
itemsRef.current["" + d.tabId] = node;
|
|
81
|
+
},
|
|
82
|
+
active: activeTab === d.tabId,
|
|
83
|
+
prefixCls: prefixCls,
|
|
84
|
+
onTabClick: onClickTab
|
|
85
|
+
}));
|
|
86
|
+
}), /*#__PURE__*/React__default['default'].createElement(TabInk.TabInk, {
|
|
87
|
+
prefixCls: prefixCls,
|
|
88
|
+
direction: "horizontal",
|
|
89
|
+
tabListRef: innerRef,
|
|
90
|
+
itemRef: (_b = itemsRef.current) === null || _b === void 0 ? void 0 : _b[activeTab]
|
|
91
|
+
})));
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
if (env.__DEV__) {
|
|
95
|
+
TabList.displayName = 'TabList';
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
exports.TabList = TabList;
|
|
99
|
+
//# sourceMappingURL=TabList.js.map
|
|
@@ -0,0 +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;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var React = require('react');
|
|
19
|
+
|
|
20
|
+
function _interopDefaultLegacy(e) {
|
|
21
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
22
|
+
'default': e
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
27
|
+
|
|
28
|
+
var TabPane = function TabPane(_ref) {
|
|
29
|
+
var children = _ref.children,
|
|
30
|
+
className = _ref.className,
|
|
31
|
+
style = _ref.style,
|
|
32
|
+
active = _ref.active;
|
|
33
|
+
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
34
|
+
style: style,
|
|
35
|
+
className: className
|
|
36
|
+
}, active ? children : null);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
exports.TabPane = TabPane;
|
|
40
|
+
//# sourceMappingURL=TabPane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabPane.js","sources":["../../src/TabPane.tsx"],"sourcesContent":[null],"names":["TabPane","children","className","style","active","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,OAAO,GAA2B,SAAlCA,OAAkC,KAAA;MAAGC,gBAAAA;MAAUC,iBAAAA;MAAWC,aAAAA;MAAOC,cAAAA;sBAE1EC,yBAAAA,cAAAA,MAAAA;AAAKF,IAAAA,KAAK,EAAEA;AAAOD,IAAAA,SAAS,EAAEA;GAA9BG,EACGD,MAAM,GAAGH,QAAH,GAAc,IADvBI;;;"}
|
package/lib/cjs/Tabs.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
|
|
14
|
+
Object.defineProperty(exports, '__esModule', {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
var tslib = require('tslib');
|
|
19
|
+
|
|
20
|
+
var React = require('react');
|
|
21
|
+
|
|
22
|
+
var classname = require('@hi-ui/classname');
|
|
23
|
+
|
|
24
|
+
var env = require('@hi-ui/env');
|
|
25
|
+
|
|
26
|
+
var TabList = require('./TabList.js');
|
|
27
|
+
|
|
28
|
+
function _interopDefaultLegacy(e) {
|
|
29
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
30
|
+
'default': e
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
35
|
+
|
|
36
|
+
var _role = 'tabs';
|
|
37
|
+
|
|
38
|
+
var _prefix = classname.getPrefixCls(_role);
|
|
39
|
+
/**
|
|
40
|
+
* TODO: What is Tabs
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
var Tabs = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
45
|
+
var _b;
|
|
46
|
+
|
|
47
|
+
var _a$prefixCls = _a.prefixCls,
|
|
48
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
49
|
+
_a$role = _a.role,
|
|
50
|
+
role = _a$role === void 0 ? _role : _a$role,
|
|
51
|
+
className = _a.className,
|
|
52
|
+
children = _a.children,
|
|
53
|
+
defaultActiveId = _a.defaultActiveId,
|
|
54
|
+
activeId = _a.activeId,
|
|
55
|
+
onChange = _a.onChange,
|
|
56
|
+
onTabClick = _a.onTabClick,
|
|
57
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick"]);
|
|
58
|
+
|
|
59
|
+
var cls = classname.cx(prefixCls, className);
|
|
60
|
+
var tabList = React.useMemo(function () {
|
|
61
|
+
var list = [];
|
|
62
|
+
React__default['default'].Children.map(children, function (child) {
|
|
63
|
+
if (child) {
|
|
64
|
+
var _child$props = child.props,
|
|
65
|
+
tabTitle = _child$props.tabTitle,
|
|
66
|
+
tabId = _child$props.tabId,
|
|
67
|
+
tabDesc = _child$props.tabDesc,
|
|
68
|
+
closeable = _child$props.closeable,
|
|
69
|
+
disabled = _child$props.disabled;
|
|
70
|
+
var item = {
|
|
71
|
+
tabTitle: tabTitle,
|
|
72
|
+
tabId: tabId,
|
|
73
|
+
tabDesc: tabDesc,
|
|
74
|
+
closeable: closeable,
|
|
75
|
+
disabled: disabled
|
|
76
|
+
};
|
|
77
|
+
list.push(item);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return list;
|
|
81
|
+
}, [children]);
|
|
82
|
+
|
|
83
|
+
var _useState = React.useState(activeId || defaultActiveId || ((_b = tabList[0]) === null || _b === void 0 ? void 0 : _b.tabId)),
|
|
84
|
+
activePane = _useState[0],
|
|
85
|
+
setActivePane = _useState[1];
|
|
86
|
+
|
|
87
|
+
var _onChange = React.useCallback(function (tabId) {
|
|
88
|
+
if (onChange) {
|
|
89
|
+
onChange(tabId);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
setActivePane(tabId);
|
|
93
|
+
}, [onChange]);
|
|
94
|
+
|
|
95
|
+
return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
|
|
96
|
+
ref: ref,
|
|
97
|
+
role: role,
|
|
98
|
+
className: cls
|
|
99
|
+
}, rest), /*#__PURE__*/React__default['default'].createElement(TabList.TabList, {
|
|
100
|
+
prefixCls: prefixCls,
|
|
101
|
+
data: tabList,
|
|
102
|
+
activeId: activeId,
|
|
103
|
+
onChange: _onChange,
|
|
104
|
+
onTabClick: onTabClick
|
|
105
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
106
|
+
className: _prefix + "__content"
|
|
107
|
+
}, React__default['default'].Children.map(children, function (child) {
|
|
108
|
+
console.log(child, child === null || child === void 0 ? void 0 : child.props.tabId, activeId);
|
|
109
|
+
return child && /*#__PURE__*/React__default['default'].cloneElement(child, {
|
|
110
|
+
active: activePane === child.props.tabId
|
|
111
|
+
});
|
|
112
|
+
})));
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (env.__DEV__) {
|
|
116
|
+
Tabs.displayName = 'Tabs';
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
exports.Tabs = Tabs;
|
|
120
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +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;;;"}
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
|
13
|
+
value: true
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
require('./styles/index.scss.js');
|
|
17
|
+
|
|
18
|
+
var Tabs = require('./Tabs.js');
|
|
19
|
+
|
|
20
|
+
var TabPane = require('./TabPane.js');
|
|
21
|
+
|
|
22
|
+
exports.Tabs = Tabs.Tabs;
|
|
23
|
+
exports["default"] = Tabs.Tabs;
|
|
24
|
+
exports.TabPane = TabPane.TabPane;
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
Object.defineProperty(exports, '__esModule', {
|
|
13
|
+
value: true
|
|
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";
|
|
16
|
+
|
|
17
|
+
var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
|
|
18
|
+
|
|
19
|
+
__styleInject__(css_248z);
|
|
20
|
+
|
|
21
|
+
exports["default"] = css_248z;
|
|
22
|
+
//# sourceMappingURL=index.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import React, { useRef, useEffect } from 'react';
|
|
11
|
+
import { cx } from '@hi-ui/classname';
|
|
12
|
+
|
|
13
|
+
var TabInk = function TabInk(_ref) {
|
|
14
|
+
var _cx;
|
|
15
|
+
|
|
16
|
+
var disabled = _ref.disabled,
|
|
17
|
+
prefixCls = _ref.prefixCls,
|
|
18
|
+
itemRef = _ref.itemRef,
|
|
19
|
+
tabListRef = _ref.tabListRef,
|
|
20
|
+
direction = _ref.direction;
|
|
21
|
+
var inkRef = useRef(null);
|
|
22
|
+
useEffect(function () {
|
|
23
|
+
if (inkRef.current && itemRef && tabListRef) {
|
|
24
|
+
var itemRect = itemRef.getBoundingClientRect();
|
|
25
|
+
var listRect = tabListRef.getBoundingClientRect();
|
|
26
|
+
var _style = {};
|
|
27
|
+
|
|
28
|
+
if (direction === 'vertical') {
|
|
29
|
+
_style = {
|
|
30
|
+
top: itemRect.top - listRect.top + "px",
|
|
31
|
+
height: itemRect.height + "px",
|
|
32
|
+
left: '',
|
|
33
|
+
width: ''
|
|
34
|
+
};
|
|
35
|
+
} else {
|
|
36
|
+
_style = {
|
|
37
|
+
left: itemRect.left - listRect.left + "px",
|
|
38
|
+
width: itemRect.width + "px",
|
|
39
|
+
top: '',
|
|
40
|
+
height: ''
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
Object.assign(inkRef.current.style, _style);
|
|
45
|
+
}
|
|
46
|
+
}, [itemRef, tabListRef, direction]);
|
|
47
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
className: cx(prefixCls + "__ink", (_cx = {}, _cx[prefixCls + "__ink--disabled"] = disabled, _cx)),
|
|
49
|
+
ref: inkRef
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export default TabInk;
|
|
54
|
+
export { TabInk };
|
|
55
|
+
//# sourceMappingURL=TabInk.js.map
|
|
@@ -0,0 +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;;;;"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import React, { forwardRef, useCallback } from 'react';
|
|
11
|
+
import { cx } from '@hi-ui/classname';
|
|
12
|
+
import { __DEV__ } from '@hi-ui/env';
|
|
13
|
+
var TabItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
14
|
+
var _cx;
|
|
15
|
+
|
|
16
|
+
var className = _ref.className,
|
|
17
|
+
style = _ref.style,
|
|
18
|
+
disabled = _ref.disabled,
|
|
19
|
+
tabTitle = _ref.tabTitle,
|
|
20
|
+
prefixCls = _ref.prefixCls,
|
|
21
|
+
tabId = _ref.tabId,
|
|
22
|
+
onTabClick = _ref.onTabClick,
|
|
23
|
+
active = _ref.active;
|
|
24
|
+
|
|
25
|
+
var _onClick = useCallback(function (e) {
|
|
26
|
+
if (onTabClick) {
|
|
27
|
+
onTabClick(tabId);
|
|
28
|
+
}
|
|
29
|
+
}, [onTabClick, tabId]);
|
|
30
|
+
|
|
31
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
style: style,
|
|
33
|
+
className: cx(prefixCls + "__item", className, (_cx = {}, _cx[prefixCls + "__item--active"] = active, _cx)),
|
|
34
|
+
ref: ref,
|
|
35
|
+
tabIndex: disabled ? 0 : -1,
|
|
36
|
+
onClick: _onClick
|
|
37
|
+
}, /*#__PURE__*/React.createElement("span", null, tabTitle));
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
if (__DEV__) {
|
|
41
|
+
TabItem.displayName = 'TabItem';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { TabItem };
|
|
45
|
+
//# sourceMappingURL=TabItem.js.map
|
|
@@ -0,0 +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;;;"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import React, { forwardRef, useState, useRef, useCallback } from 'react';
|
|
11
|
+
import { __DEV__ } from '@hi-ui/env';
|
|
12
|
+
import { TabItem } from './TabItem.js';
|
|
13
|
+
import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
|
|
14
|
+
import { cx } from '@hi-ui/classname';
|
|
15
|
+
import { TabInk } from './TabInk.js';
|
|
16
|
+
var TabList = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
17
|
+
var data = _ref.data,
|
|
18
|
+
className = _ref.className,
|
|
19
|
+
style = _ref.style,
|
|
20
|
+
activeId = _ref.activeId,
|
|
21
|
+
defaultActiveId = _ref.defaultActiveId,
|
|
22
|
+
onChange = _ref.onChange,
|
|
23
|
+
onTabClick = _ref.onTabClick,
|
|
24
|
+
prefixCls = _ref.prefixCls;
|
|
25
|
+
|
|
26
|
+
var _a, _b;
|
|
27
|
+
|
|
28
|
+
var _useUncontrolledState = useUncontrolledState(defaultActiveId || ((_a = data[0]) === null || _a === void 0 ? void 0 : _a.tabId), activeId, onChange),
|
|
29
|
+
activeTab = _useUncontrolledState[0],
|
|
30
|
+
setActiveTab = _useUncontrolledState[1];
|
|
31
|
+
|
|
32
|
+
var _useState = useState(null),
|
|
33
|
+
innerRef = _useState[0],
|
|
34
|
+
setInnerRef = _useState[1];
|
|
35
|
+
|
|
36
|
+
var itemsRef = useRef({});
|
|
37
|
+
var onClickTab = useCallback(function (key) {
|
|
38
|
+
if (onTabClick) {
|
|
39
|
+
onTabClick(key);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (key !== activeTab && setActiveTab) {
|
|
43
|
+
setActiveTab(key);
|
|
44
|
+
}
|
|
45
|
+
}, [activeTab, onTabClick, setActiveTab]);
|
|
46
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
style: style,
|
|
48
|
+
className: cx(prefixCls + "__list", className),
|
|
49
|
+
ref: ref
|
|
50
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
51
|
+
className: cx(prefixCls + "__list--inner"),
|
|
52
|
+
ref: setInnerRef
|
|
53
|
+
}, data.map(function (d, index) {
|
|
54
|
+
return /*#__PURE__*/React.createElement(TabItem, Object.assign({
|
|
55
|
+
key: index
|
|
56
|
+
}, d, {
|
|
57
|
+
ref: function ref(node) {
|
|
58
|
+
itemsRef.current["" + d.tabId] = node;
|
|
59
|
+
},
|
|
60
|
+
active: activeTab === d.tabId,
|
|
61
|
+
prefixCls: prefixCls,
|
|
62
|
+
onTabClick: onClickTab
|
|
63
|
+
}));
|
|
64
|
+
}), /*#__PURE__*/React.createElement(TabInk, {
|
|
65
|
+
prefixCls: prefixCls,
|
|
66
|
+
direction: "horizontal",
|
|
67
|
+
tabListRef: innerRef,
|
|
68
|
+
itemRef: (_b = itemsRef.current) === null || _b === void 0 ? void 0 : _b[activeTab]
|
|
69
|
+
})));
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (__DEV__) {
|
|
73
|
+
TabList.displayName = 'TabList';
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { TabList };
|
|
77
|
+
//# sourceMappingURL=TabList.js.map
|
|
@@ -0,0 +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;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
|
|
12
|
+
var TabPane = function TabPane(_ref) {
|
|
13
|
+
var children = _ref.children,
|
|
14
|
+
className = _ref.className,
|
|
15
|
+
style = _ref.style,
|
|
16
|
+
active = _ref.active;
|
|
17
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
style: style,
|
|
19
|
+
className: className
|
|
20
|
+
}, active ? children : null);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { TabPane };
|
|
24
|
+
//# sourceMappingURL=TabPane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabPane.js","sources":["../../src/TabPane.tsx"],"sourcesContent":[null],"names":["TabPane","children","className","style","active","React"],"mappings":";;;;;;;;;;;IAEaA,OAAO,GAA2B,SAAlCA,OAAkC,KAAA;MAAGC,gBAAAA;MAAUC,iBAAAA;MAAWC,aAAAA;MAAOC,cAAAA;sBAE1EC,mBAAAA,MAAAA;AAAKF,IAAAA,KAAK,EAAEA;AAAOD,IAAAA,SAAS,EAAEA;GAA9BG,EACGD,MAAM,GAAGH,QAAH,GAAc,IADvBI;;;"}
|
package/lib/esm/Tabs.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import { __rest } from 'tslib';
|
|
11
|
+
import React, { forwardRef, useMemo, useState, useCallback } from 'react';
|
|
12
|
+
import { getPrefixCls, cx } from '@hi-ui/classname';
|
|
13
|
+
import { __DEV__ } from '@hi-ui/env';
|
|
14
|
+
import { TabList } from './TabList.js';
|
|
15
|
+
var _role = 'tabs';
|
|
16
|
+
|
|
17
|
+
var _prefix = getPrefixCls(_role);
|
|
18
|
+
/**
|
|
19
|
+
* TODO: What is Tabs
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
var Tabs = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
24
|
+
var _b;
|
|
25
|
+
|
|
26
|
+
var _a$prefixCls = _a.prefixCls,
|
|
27
|
+
prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
|
|
28
|
+
_a$role = _a.role,
|
|
29
|
+
role = _a$role === void 0 ? _role : _a$role,
|
|
30
|
+
className = _a.className,
|
|
31
|
+
children = _a.children,
|
|
32
|
+
defaultActiveId = _a.defaultActiveId,
|
|
33
|
+
activeId = _a.activeId,
|
|
34
|
+
onChange = _a.onChange,
|
|
35
|
+
onTabClick = _a.onTabClick,
|
|
36
|
+
rest = __rest(_a, ["prefixCls", "role", "className", "children", "defaultActiveId", "activeId", "onChange", "onTabClick"]);
|
|
37
|
+
|
|
38
|
+
var cls = cx(prefixCls, className);
|
|
39
|
+
var tabList = useMemo(function () {
|
|
40
|
+
var list = [];
|
|
41
|
+
React.Children.map(children, function (child) {
|
|
42
|
+
if (child) {
|
|
43
|
+
var _child$props = child.props,
|
|
44
|
+
tabTitle = _child$props.tabTitle,
|
|
45
|
+
tabId = _child$props.tabId,
|
|
46
|
+
tabDesc = _child$props.tabDesc,
|
|
47
|
+
closeable = _child$props.closeable,
|
|
48
|
+
disabled = _child$props.disabled;
|
|
49
|
+
var item = {
|
|
50
|
+
tabTitle: tabTitle,
|
|
51
|
+
tabId: tabId,
|
|
52
|
+
tabDesc: tabDesc,
|
|
53
|
+
closeable: closeable,
|
|
54
|
+
disabled: disabled
|
|
55
|
+
};
|
|
56
|
+
list.push(item);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return list;
|
|
60
|
+
}, [children]);
|
|
61
|
+
|
|
62
|
+
var _useState = useState(activeId || defaultActiveId || ((_b = tabList[0]) === null || _b === void 0 ? void 0 : _b.tabId)),
|
|
63
|
+
activePane = _useState[0],
|
|
64
|
+
setActivePane = _useState[1];
|
|
65
|
+
|
|
66
|
+
var _onChange = useCallback(function (tabId) {
|
|
67
|
+
if (onChange) {
|
|
68
|
+
onChange(tabId);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
setActivePane(tabId);
|
|
72
|
+
}, [onChange]);
|
|
73
|
+
|
|
74
|
+
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
75
|
+
ref: ref,
|
|
76
|
+
role: role,
|
|
77
|
+
className: cls
|
|
78
|
+
}, rest), /*#__PURE__*/React.createElement(TabList, {
|
|
79
|
+
prefixCls: prefixCls,
|
|
80
|
+
data: tabList,
|
|
81
|
+
activeId: activeId,
|
|
82
|
+
onChange: _onChange,
|
|
83
|
+
onTabClick: onTabClick
|
|
84
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: _prefix + "__content"
|
|
86
|
+
}, React.Children.map(children, function (child) {
|
|
87
|
+
console.log(child, child === null || child === void 0 ? void 0 : child.props.tabId, activeId);
|
|
88
|
+
return child && /*#__PURE__*/React.cloneElement(child, {
|
|
89
|
+
active: activePane === child.props.tabId
|
|
90
|
+
});
|
|
91
|
+
})));
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
if (__DEV__) {
|
|
95
|
+
Tabs.displayName = 'Tabs';
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export { Tabs };
|
|
99
|
+
//# sourceMappingURL=Tabs.js.map
|
|
@@ -0,0 +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;;;"}
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
import './styles/index.scss.js';
|
|
11
|
+
export { Tabs, Tabs as default } from './Tabs.js';
|
|
12
|
+
export { TabPane } from './TabPane.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/tabs
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HIUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
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";
|
|
11
|
+
|
|
12
|
+
var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
|
|
13
|
+
|
|
14
|
+
__styleInject__(css_248z);
|
|
15
|
+
|
|
16
|
+
export default css_248z;
|
|
17
|
+
//# sourceMappingURL=index.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface TabInkProps {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
prefixCls?: string;
|
|
5
|
+
itemRef: HTMLElement;
|
|
6
|
+
tabListRef: HTMLElement;
|
|
7
|
+
direction: 'vertical' | 'horizontal';
|
|
8
|
+
}
|
|
9
|
+
export declare const TabInk: React.FC<TabInkProps>;
|
|
10
|
+
export default TabInk;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TabPaneProps } from './TabPane';
|
|
3
|
+
interface TabItemProps extends TabPaneProps {
|
|
4
|
+
active: boolean;
|
|
5
|
+
onTabClick: (key: string) => void;
|
|
6
|
+
prefixCls?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const TabItem: React.ForwardRefExoticComponent<TabItemProps & React.RefAttributes<HTMLDivElement | null>>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TabPaneProps } from './TabPane';
|
|
3
|
+
export declare const TabList: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement | null>>;
|
|
4
|
+
export interface TabListProps {
|
|
5
|
+
style?: React.CSSProperties;
|
|
6
|
+
className?: string;
|
|
7
|
+
prefixCls?: string;
|
|
8
|
+
data: TabPaneProps[];
|
|
9
|
+
onChange?: (tabId: string) => void;
|
|
10
|
+
onTabClick?: (tabId: string) => void;
|
|
11
|
+
/**
|
|
12
|
+
* 默认高亮id
|
|
13
|
+
*/
|
|
14
|
+
defaultActiveId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* 高亮id
|
|
17
|
+
*/
|
|
18
|
+
activeId?: string;
|
|
19
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const TabPane: React.FC<TabPaneProps>;
|
|
3
|
+
export interface TabPaneProps {
|
|
4
|
+
style?: React.CSSProperties;
|
|
5
|
+
className?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
tabId: string;
|
|
8
|
+
tabTitle: React.ReactNode;
|
|
9
|
+
closeable?: boolean;
|
|
10
|
+
active?: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: What is Tabs
|
|
4
|
+
*/
|
|
5
|
+
export declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement | null>>;
|
|
6
|
+
export interface TabsProps {
|
|
7
|
+
/**
|
|
8
|
+
* 组件默认的选择器类
|
|
9
|
+
*/
|
|
10
|
+
prefixCls?: string;
|
|
11
|
+
/**
|
|
12
|
+
* 组件的语义化 Role 属性
|
|
13
|
+
*/
|
|
14
|
+
role?: string;
|
|
15
|
+
/**
|
|
16
|
+
* 组件的注入选择器类
|
|
17
|
+
*/
|
|
18
|
+
className?: string;
|
|
19
|
+
/**
|
|
20
|
+
* 组件的注入样式
|
|
21
|
+
*/
|
|
22
|
+
style?: React.CSSProperties;
|
|
23
|
+
/**
|
|
24
|
+
* 是否可拖拽
|
|
25
|
+
*/
|
|
26
|
+
draggable?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* 是否可编辑
|
|
29
|
+
*/
|
|
30
|
+
editable?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* 内容
|
|
33
|
+
*/
|
|
34
|
+
children?: React.ReactElement[];
|
|
35
|
+
/**
|
|
36
|
+
* 默认高亮id
|
|
37
|
+
*/
|
|
38
|
+
defaultActiveId?: string;
|
|
39
|
+
/**
|
|
40
|
+
* 高亮id
|
|
41
|
+
*/
|
|
42
|
+
activeId?: string;
|
|
43
|
+
/**
|
|
44
|
+
* `activeId` 改变的回调
|
|
45
|
+
*/
|
|
46
|
+
onChange?: (tabId: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* 标签点击触发回调
|
|
49
|
+
*/
|
|
50
|
+
onTabClick?: (tabId: string) => void;
|
|
51
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hi-ui/tabs",
|
|
3
|
+
"version": "4.0.0-alpha.1",
|
|
4
|
+
"description": "A sub-package for @hi-ui/hiui.",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"author": "HIUI <mi-hiui@xiaomi.com>",
|
|
7
|
+
"homepage": "https://github.com/XiaoMi/hiui/tree/master/packages/ui/tabs#readme",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"directories": {
|
|
10
|
+
"lib": "lib",
|
|
11
|
+
"test": "__tests__"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"lib"
|
|
15
|
+
],
|
|
16
|
+
"main": "lib/cjs/index.js",
|
|
17
|
+
"module": "lib/esm/index.js",
|
|
18
|
+
"types": "lib/types/index.d.ts",
|
|
19
|
+
"typings": "lib/types/index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"require": "./lib/cjs/index.js",
|
|
23
|
+
"default": "./lib/esm/index.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"publishConfig": {
|
|
27
|
+
"access": "public"
|
|
28
|
+
},
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/XiaoMi/hiui.git"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"test": "jest",
|
|
35
|
+
"clean": "rimraf lib",
|
|
36
|
+
"prebuild": "yarn clean",
|
|
37
|
+
"build:esm": "hi-build ./src/index.ts --format esm -d ./lib/esm",
|
|
38
|
+
"build:cjs": "hi-build ./src/index.ts --format cjs -d ./lib/cjs",
|
|
39
|
+
"build:types": "tsc --emitDeclarationOnly --declaration --declarationDir lib/types",
|
|
40
|
+
"build": "concurrently yarn:build:*"
|
|
41
|
+
},
|
|
42
|
+
"bugs": {
|
|
43
|
+
"url": "https://github.com/XiaoMi/hiui/issues"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@hi-ui/classname": "^4.0.0-alpha.0",
|
|
47
|
+
"@hi-ui/core-css": "^4.0.0-alpha.0",
|
|
48
|
+
"@hi-ui/env": "^4.0.0-alpha.0",
|
|
49
|
+
"@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.5"
|
|
50
|
+
},
|
|
51
|
+
"peerDependencies": {
|
|
52
|
+
"react": "^17.0.1",
|
|
53
|
+
"react-dom": "^17.0.1"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@hi-ui/hi-build": "^4.0.0-alpha.0",
|
|
57
|
+
"react": "^17.0.1",
|
|
58
|
+
"react-dom": "^17.0.1"
|
|
59
|
+
},
|
|
60
|
+
"gitHead": "0135b7a54f5436ac6e5a8ab88daf8468591e18ac"
|
|
61
|
+
}
|