@clayui/tabs 3.142.2 → 3.143.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/Content.js +42 -0
- package/lib/cjs/Item.js +46 -0
- package/lib/cjs/List.js +91 -0
- package/lib/cjs/TabPane.js +57 -0
- package/lib/cjs/index.js +80 -0
- package/lib/esm/Content.js +37 -0
- package/lib/esm/Item.js +41 -0
- package/lib/esm/List.js +84 -0
- package/lib/esm/TabPane.js +52 -0
- package/lib/esm/index.js +75 -0
- package/package.json +11 -8
- package/lib/Content.js +0 -51
- package/lib/Item.js +0 -51
- package/lib/List.js +0 -98
- package/lib/TabPane.js +0 -77
- package/lib/index.js +0 -100
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
|
|
11
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
12
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
13
|
+
*/
|
|
14
|
+
const Content = /*#__PURE__*/_react.default.forwardRef(function Content(_ref, ref) {
|
|
15
|
+
let {
|
|
16
|
+
active,
|
|
17
|
+
activeIndex = 0,
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
fade = false,
|
|
21
|
+
tabsId,
|
|
22
|
+
...otherProps
|
|
23
|
+
} = _ref;
|
|
24
|
+
return /*#__PURE__*/_react.default.createElement("div", _extends({
|
|
25
|
+
className: (0, _classnames.default)('tab-content', className)
|
|
26
|
+
}, otherProps, {
|
|
27
|
+
ref: ref
|
|
28
|
+
}), _react.default.Children.map(children, (child, index) => {
|
|
29
|
+
if (! /*#__PURE__*/_react.default.isValidElement(child)) {
|
|
30
|
+
return child;
|
|
31
|
+
}
|
|
32
|
+
return /*#__PURE__*/_react.default.cloneElement(child, {
|
|
33
|
+
...child.props,
|
|
34
|
+
active: typeof active === 'number' ? active === index : activeIndex === index,
|
|
35
|
+
'aria-labelledby': tabsId ? `${tabsId}-tab-${index}` : child.props['aria-labelledby'],
|
|
36
|
+
fade,
|
|
37
|
+
id: tabsId ? `${tabsId}-tabpanel-${index}` : child.props.id,
|
|
38
|
+
key: index
|
|
39
|
+
});
|
|
40
|
+
}));
|
|
41
|
+
});
|
|
42
|
+
var _default = exports.default = Content;
|
package/lib/cjs/Item.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _shared = require("@clayui/shared");
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
|
|
12
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
13
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
14
|
+
*/
|
|
15
|
+
const Item = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
|
16
|
+
let {
|
|
17
|
+
active = false,
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
disabled = false,
|
|
21
|
+
href,
|
|
22
|
+
innerProps = {},
|
|
23
|
+
onClick,
|
|
24
|
+
...otherProps
|
|
25
|
+
} = _ref;
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement("li", _extends({}, otherProps, {
|
|
27
|
+
className: (0, _classnames.default)('nav-item', className),
|
|
28
|
+
role: "none"
|
|
29
|
+
}), /*#__PURE__*/_react.default.createElement(_shared.LinkOrButton, _extends({}, innerProps, {
|
|
30
|
+
"aria-selected": active,
|
|
31
|
+
buttonDisplayType: "unstyled",
|
|
32
|
+
buttonType: "button",
|
|
33
|
+
className: (0, _classnames.default)('nav-link', {
|
|
34
|
+
active,
|
|
35
|
+
disabled
|
|
36
|
+
}),
|
|
37
|
+
disabled: disabled,
|
|
38
|
+
href: href,
|
|
39
|
+
onClick: onClick,
|
|
40
|
+
ref: ref,
|
|
41
|
+
role: "tab",
|
|
42
|
+
tabIndex: !active ? -1 : 0
|
|
43
|
+
}), children));
|
|
44
|
+
});
|
|
45
|
+
Item.displayName = 'ClayTabsItem';
|
|
46
|
+
var _default = exports.default = Item;
|
package/lib/cjs/List.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.List = void 0;
|
|
7
|
+
var _shared = require("@clayui/shared");
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
|
|
14
|
+
* SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
|
|
15
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
16
|
+
*/
|
|
17
|
+
const List = exports.List = /*#__PURE__*/_react.default.forwardRef(function List(_ref, ref) {
|
|
18
|
+
let {
|
|
19
|
+
activation,
|
|
20
|
+
active,
|
|
21
|
+
children,
|
|
22
|
+
className,
|
|
23
|
+
displayType = null,
|
|
24
|
+
justified,
|
|
25
|
+
modern: __,
|
|
26
|
+
onActiveChange,
|
|
27
|
+
shouldUseActive = false,
|
|
28
|
+
tabsId,
|
|
29
|
+
...otherProps
|
|
30
|
+
} = _ref;
|
|
31
|
+
const tabsRef = (0, _react.useRef)(null);
|
|
32
|
+
const {
|
|
33
|
+
navigationProps
|
|
34
|
+
} = (0, _shared.useNavigation)({
|
|
35
|
+
activation,
|
|
36
|
+
containerRef: tabsRef,
|
|
37
|
+
orientation: 'horizontal'
|
|
38
|
+
});
|
|
39
|
+
(0, _react.useImperativeHandle)(ref, () => tabsRef.current, [tabsRef]);
|
|
40
|
+
(0, _react.useEffect)(() => {
|
|
41
|
+
// Internal API to maintain compatibility with the old Tabs pattern and to
|
|
42
|
+
// only update the initial state when the component is in
|
|
43
|
+
// uncontrolled mode.
|
|
44
|
+
if (!shouldUseActive) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const childrenArray = _react.default.Children.toArray(children);
|
|
48
|
+
|
|
49
|
+
// The `active` API in the new pattern has uncontrolled behavior, working
|
|
50
|
+
// just like defaultActive as in the prop declared in the root component.
|
|
51
|
+
for (let index = 0; index < childrenArray.length; index++) {
|
|
52
|
+
const child = childrenArray[index];
|
|
53
|
+
if (/*#__PURE__*/_react.default.isValidElement(child) && child.props.active) {
|
|
54
|
+
onActiveChange(index);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}, []);
|
|
59
|
+
return /*#__PURE__*/_react.default.createElement("ul", _extends({}, otherProps, navigationProps, {
|
|
60
|
+
className: (0, _classnames.default)('nav nav-tabs', {
|
|
61
|
+
'nav-justified': justified
|
|
62
|
+
}, {
|
|
63
|
+
[`nav-tabs-${displayType}`]: displayType === 'light'
|
|
64
|
+
}, className),
|
|
65
|
+
ref: tabsRef,
|
|
66
|
+
role: "tablist"
|
|
67
|
+
}), _react.default.Children.map(children, (child, index) => {
|
|
68
|
+
if (! /*#__PURE__*/_react.default.isValidElement(child)) {
|
|
69
|
+
return child;
|
|
70
|
+
}
|
|
71
|
+
return /*#__PURE__*/_react.default.cloneElement(child, {
|
|
72
|
+
active: !shouldUseActive && child.props.active !== undefined ? child.props.active : active === index,
|
|
73
|
+
innerProps: {
|
|
74
|
+
'aria-controls': tabsId && `${tabsId}-tabpanel-${index}`,
|
|
75
|
+
id: tabsId && `${tabsId}-tab-${index}`,
|
|
76
|
+
...(child.props.innerProps ?? {})
|
|
77
|
+
},
|
|
78
|
+
onClick: event => {
|
|
79
|
+
const {
|
|
80
|
+
onClick
|
|
81
|
+
} = child.props;
|
|
82
|
+
if (onClick) {
|
|
83
|
+
onClick(event);
|
|
84
|
+
} else {
|
|
85
|
+
onActiveChange(index);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}));
|
|
90
|
+
});
|
|
91
|
+
List.displayName = 'ClayTabsList';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
|
|
11
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
12
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
13
|
+
*/
|
|
14
|
+
const delay = function (fn) {
|
|
15
|
+
let val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
|
|
16
|
+
return setTimeout(() => {
|
|
17
|
+
fn();
|
|
18
|
+
}, val);
|
|
19
|
+
};
|
|
20
|
+
const TabPane = /*#__PURE__*/_react.default.forwardRef(function TabPane(_ref, ref) {
|
|
21
|
+
let {
|
|
22
|
+
active = false,
|
|
23
|
+
children,
|
|
24
|
+
className,
|
|
25
|
+
fade,
|
|
26
|
+
tabIndex = 0,
|
|
27
|
+
...otherProps
|
|
28
|
+
} = _ref;
|
|
29
|
+
const [internalActive, setInternalActive] = _react.default.useState(active);
|
|
30
|
+
const [internalShow, setInternalShow] = _react.default.useState(active);
|
|
31
|
+
_react.default.useEffect(() => {
|
|
32
|
+
let delayFn = () => {
|
|
33
|
+
setInternalActive(true);
|
|
34
|
+
delay(() => setInternalShow(true), 50);
|
|
35
|
+
};
|
|
36
|
+
if (!active) {
|
|
37
|
+
setInternalShow(false);
|
|
38
|
+
delayFn = () => setInternalActive(false);
|
|
39
|
+
}
|
|
40
|
+
const timer = delay(delayFn);
|
|
41
|
+
return () => {
|
|
42
|
+
clearTimeout(timer);
|
|
43
|
+
setInternalShow(false);
|
|
44
|
+
};
|
|
45
|
+
}, [active]);
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement("div", _extends({}, otherProps, {
|
|
47
|
+
className: (0, _classnames.default)('tab-pane', {
|
|
48
|
+
active: internalActive,
|
|
49
|
+
fade,
|
|
50
|
+
show: internalShow
|
|
51
|
+
}, className),
|
|
52
|
+
ref: ref,
|
|
53
|
+
role: "tabpanel",
|
|
54
|
+
tabIndex: tabIndex
|
|
55
|
+
}), children);
|
|
56
|
+
});
|
|
57
|
+
var _default = exports.default = TabPane;
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _shared = require("@clayui/shared");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _Content = _interopRequireDefault(require("./Content"));
|
|
10
|
+
var _Item = _interopRequireDefault(require("./Item"));
|
|
11
|
+
var _List = require("./List");
|
|
12
|
+
var _TabPane = _interopRequireDefault(require("./TabPane"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
|
|
15
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
16
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
+
*/
|
|
18
|
+
function Tabs(_ref) {
|
|
19
|
+
let {
|
|
20
|
+
activation = 'manual',
|
|
21
|
+
active: externalActive,
|
|
22
|
+
children,
|
|
23
|
+
className,
|
|
24
|
+
defaultActive = 0,
|
|
25
|
+
displayType,
|
|
26
|
+
fade = false,
|
|
27
|
+
justified,
|
|
28
|
+
modern = false,
|
|
29
|
+
onActiveChange,
|
|
30
|
+
...otherProps
|
|
31
|
+
} = _ref;
|
|
32
|
+
const [active, setActive, isUncontrolled] = (0, _shared.useControlledState)({
|
|
33
|
+
defaultName: 'defaultActive',
|
|
34
|
+
defaultValue: defaultActive,
|
|
35
|
+
handleName: 'onActiveChange',
|
|
36
|
+
name: 'active',
|
|
37
|
+
onChange: onActiveChange,
|
|
38
|
+
value: externalActive
|
|
39
|
+
});
|
|
40
|
+
const [left, right] = _react.default.Children.toArray(children);
|
|
41
|
+
const tabsId = (0, _shared.useId)();
|
|
42
|
+
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
if (left?.type?.displayName === 'ClayTabsList') {
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.cloneElement(left, {
|
|
46
|
+
activation,
|
|
47
|
+
active,
|
|
48
|
+
displayType,
|
|
49
|
+
justified,
|
|
50
|
+
modern,
|
|
51
|
+
onActiveChange: setActive,
|
|
52
|
+
shouldUseActive: isUncontrolled,
|
|
53
|
+
tabsId
|
|
54
|
+
}), /*#__PURE__*/_react.default.isValidElement(right) && /*#__PURE__*/_react.default.cloneElement(right, {
|
|
55
|
+
active,
|
|
56
|
+
fade,
|
|
57
|
+
tabsId
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
return /*#__PURE__*/_react.default.createElement(_List.List, _extends({}, otherProps, {
|
|
61
|
+
activation: activation,
|
|
62
|
+
active: active,
|
|
63
|
+
className: className,
|
|
64
|
+
displayType: displayType,
|
|
65
|
+
justified: justified,
|
|
66
|
+
modern: modern,
|
|
67
|
+
onActiveChange: setActive
|
|
68
|
+
}), children);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
|
|
73
|
+
*/
|
|
74
|
+
Tabs.Content = _Content.default;
|
|
75
|
+
Tabs.Panels = _Content.default;
|
|
76
|
+
Tabs.Item = _Item.default;
|
|
77
|
+
Tabs.List = _List.List;
|
|
78
|
+
Tabs.TabPane = _TabPane.default;
|
|
79
|
+
Tabs.TabPanel = _TabPane.default;
|
|
80
|
+
var _default = exports.default = Tabs;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
/**
|
|
3
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import classNames from 'classnames';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
const Content = /*#__PURE__*/React.forwardRef(function Content(_ref, ref) {
|
|
10
|
+
let {
|
|
11
|
+
active,
|
|
12
|
+
activeIndex = 0,
|
|
13
|
+
children,
|
|
14
|
+
className,
|
|
15
|
+
fade = false,
|
|
16
|
+
tabsId,
|
|
17
|
+
...otherProps
|
|
18
|
+
} = _ref;
|
|
19
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
20
|
+
className: classNames('tab-content', className)
|
|
21
|
+
}, otherProps, {
|
|
22
|
+
ref: ref
|
|
23
|
+
}), React.Children.map(children, (child, index) => {
|
|
24
|
+
if (! /*#__PURE__*/React.isValidElement(child)) {
|
|
25
|
+
return child;
|
|
26
|
+
}
|
|
27
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
28
|
+
...child.props,
|
|
29
|
+
active: typeof active === 'number' ? active === index : activeIndex === index,
|
|
30
|
+
'aria-labelledby': tabsId ? `${tabsId}-tab-${index}` : child.props['aria-labelledby'],
|
|
31
|
+
fade,
|
|
32
|
+
id: tabsId ? `${tabsId}-tabpanel-${index}` : child.props.id,
|
|
33
|
+
key: index
|
|
34
|
+
});
|
|
35
|
+
}));
|
|
36
|
+
});
|
|
37
|
+
export default Content;
|
package/lib/esm/Item.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
/**
|
|
3
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { LinkOrButton } from '@clayui/shared';
|
|
8
|
+
import classNames from 'classnames';
|
|
9
|
+
import React from 'react';
|
|
10
|
+
const Item = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
11
|
+
let {
|
|
12
|
+
active = false,
|
|
13
|
+
children,
|
|
14
|
+
className,
|
|
15
|
+
disabled = false,
|
|
16
|
+
href,
|
|
17
|
+
innerProps = {},
|
|
18
|
+
onClick,
|
|
19
|
+
...otherProps
|
|
20
|
+
} = _ref;
|
|
21
|
+
return /*#__PURE__*/React.createElement("li", _extends({}, otherProps, {
|
|
22
|
+
className: classNames('nav-item', className),
|
|
23
|
+
role: "none"
|
|
24
|
+
}), /*#__PURE__*/React.createElement(LinkOrButton, _extends({}, innerProps, {
|
|
25
|
+
"aria-selected": active,
|
|
26
|
+
buttonDisplayType: "unstyled",
|
|
27
|
+
buttonType: "button",
|
|
28
|
+
className: classNames('nav-link', {
|
|
29
|
+
active,
|
|
30
|
+
disabled
|
|
31
|
+
}),
|
|
32
|
+
disabled: disabled,
|
|
33
|
+
href: href,
|
|
34
|
+
onClick: onClick,
|
|
35
|
+
ref: ref,
|
|
36
|
+
role: "tab",
|
|
37
|
+
tabIndex: !active ? -1 : 0
|
|
38
|
+
}), children));
|
|
39
|
+
});
|
|
40
|
+
Item.displayName = 'ClayTabsItem';
|
|
41
|
+
export default Item;
|
package/lib/esm/List.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
/**
|
|
3
|
+
* SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { useNavigation } from '@clayui/shared';
|
|
8
|
+
import classNames from 'classnames';
|
|
9
|
+
import React, { useEffect, useImperativeHandle, useRef } from 'react';
|
|
10
|
+
export const List = /*#__PURE__*/React.forwardRef(function List(_ref, ref) {
|
|
11
|
+
let {
|
|
12
|
+
activation,
|
|
13
|
+
active,
|
|
14
|
+
children,
|
|
15
|
+
className,
|
|
16
|
+
displayType = null,
|
|
17
|
+
justified,
|
|
18
|
+
modern: __,
|
|
19
|
+
onActiveChange,
|
|
20
|
+
shouldUseActive = false,
|
|
21
|
+
tabsId,
|
|
22
|
+
...otherProps
|
|
23
|
+
} = _ref;
|
|
24
|
+
const tabsRef = useRef(null);
|
|
25
|
+
const {
|
|
26
|
+
navigationProps
|
|
27
|
+
} = useNavigation({
|
|
28
|
+
activation,
|
|
29
|
+
containerRef: tabsRef,
|
|
30
|
+
orientation: 'horizontal'
|
|
31
|
+
});
|
|
32
|
+
useImperativeHandle(ref, () => tabsRef.current, [tabsRef]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
// Internal API to maintain compatibility with the old Tabs pattern and to
|
|
35
|
+
// only update the initial state when the component is in
|
|
36
|
+
// uncontrolled mode.
|
|
37
|
+
if (!shouldUseActive) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const childrenArray = React.Children.toArray(children);
|
|
41
|
+
|
|
42
|
+
// The `active` API in the new pattern has uncontrolled behavior, working
|
|
43
|
+
// just like defaultActive as in the prop declared in the root component.
|
|
44
|
+
for (let index = 0; index < childrenArray.length; index++) {
|
|
45
|
+
const child = childrenArray[index];
|
|
46
|
+
if (/*#__PURE__*/React.isValidElement(child) && child.props.active) {
|
|
47
|
+
onActiveChange(index);
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}, []);
|
|
52
|
+
return /*#__PURE__*/React.createElement("ul", _extends({}, otherProps, navigationProps, {
|
|
53
|
+
className: classNames('nav nav-tabs', {
|
|
54
|
+
'nav-justified': justified
|
|
55
|
+
}, {
|
|
56
|
+
[`nav-tabs-${displayType}`]: displayType === 'light'
|
|
57
|
+
}, className),
|
|
58
|
+
ref: tabsRef,
|
|
59
|
+
role: "tablist"
|
|
60
|
+
}), React.Children.map(children, (child, index) => {
|
|
61
|
+
if (! /*#__PURE__*/React.isValidElement(child)) {
|
|
62
|
+
return child;
|
|
63
|
+
}
|
|
64
|
+
return /*#__PURE__*/React.cloneElement(child, {
|
|
65
|
+
active: !shouldUseActive && child.props.active !== undefined ? child.props.active : active === index,
|
|
66
|
+
innerProps: {
|
|
67
|
+
'aria-controls': tabsId && `${tabsId}-tabpanel-${index}`,
|
|
68
|
+
id: tabsId && `${tabsId}-tab-${index}`,
|
|
69
|
+
...(child.props.innerProps ?? {})
|
|
70
|
+
},
|
|
71
|
+
onClick: event => {
|
|
72
|
+
const {
|
|
73
|
+
onClick
|
|
74
|
+
} = child.props;
|
|
75
|
+
if (onClick) {
|
|
76
|
+
onClick(event);
|
|
77
|
+
} else {
|
|
78
|
+
onActiveChange(index);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}));
|
|
83
|
+
});
|
|
84
|
+
List.displayName = 'ClayTabsList';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
/**
|
|
3
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import classNames from 'classnames';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
const delay = function (fn) {
|
|
10
|
+
let val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
|
|
11
|
+
return setTimeout(() => {
|
|
12
|
+
fn();
|
|
13
|
+
}, val);
|
|
14
|
+
};
|
|
15
|
+
const TabPane = /*#__PURE__*/React.forwardRef(function TabPane(_ref, ref) {
|
|
16
|
+
let {
|
|
17
|
+
active = false,
|
|
18
|
+
children,
|
|
19
|
+
className,
|
|
20
|
+
fade,
|
|
21
|
+
tabIndex = 0,
|
|
22
|
+
...otherProps
|
|
23
|
+
} = _ref;
|
|
24
|
+
const [internalActive, setInternalActive] = React.useState(active);
|
|
25
|
+
const [internalShow, setInternalShow] = React.useState(active);
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
let delayFn = () => {
|
|
28
|
+
setInternalActive(true);
|
|
29
|
+
delay(() => setInternalShow(true), 50);
|
|
30
|
+
};
|
|
31
|
+
if (!active) {
|
|
32
|
+
setInternalShow(false);
|
|
33
|
+
delayFn = () => setInternalActive(false);
|
|
34
|
+
}
|
|
35
|
+
const timer = delay(delayFn);
|
|
36
|
+
return () => {
|
|
37
|
+
clearTimeout(timer);
|
|
38
|
+
setInternalShow(false);
|
|
39
|
+
};
|
|
40
|
+
}, [active]);
|
|
41
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, otherProps, {
|
|
42
|
+
className: classNames('tab-pane', {
|
|
43
|
+
active: internalActive,
|
|
44
|
+
fade,
|
|
45
|
+
show: internalShow
|
|
46
|
+
}, className),
|
|
47
|
+
ref: ref,
|
|
48
|
+
role: "tabpanel",
|
|
49
|
+
tabIndex: tabIndex
|
|
50
|
+
}), children);
|
|
51
|
+
});
|
|
52
|
+
export default TabPane;
|
package/lib/esm/index.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
/**
|
|
3
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
4
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { useControlledState, useId } from '@clayui/shared';
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import Content from "./Content.js";
|
|
10
|
+
import Item from "./Item.js";
|
|
11
|
+
import { List } from "./List.js";
|
|
12
|
+
import TabPane from "./TabPane.js";
|
|
13
|
+
function Tabs(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
activation = 'manual',
|
|
16
|
+
active: externalActive,
|
|
17
|
+
children,
|
|
18
|
+
className,
|
|
19
|
+
defaultActive = 0,
|
|
20
|
+
displayType,
|
|
21
|
+
fade = false,
|
|
22
|
+
justified,
|
|
23
|
+
modern = false,
|
|
24
|
+
onActiveChange,
|
|
25
|
+
...otherProps
|
|
26
|
+
} = _ref;
|
|
27
|
+
const [active, setActive, isUncontrolled] = useControlledState({
|
|
28
|
+
defaultName: 'defaultActive',
|
|
29
|
+
defaultValue: defaultActive,
|
|
30
|
+
handleName: 'onActiveChange',
|
|
31
|
+
name: 'active',
|
|
32
|
+
onChange: onActiveChange,
|
|
33
|
+
value: externalActive
|
|
34
|
+
});
|
|
35
|
+
const [left, right] = React.Children.toArray(children);
|
|
36
|
+
const tabsId = useId();
|
|
37
|
+
|
|
38
|
+
// @ts-ignore
|
|
39
|
+
if (left?.type?.displayName === 'ClayTabsList') {
|
|
40
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(left, {
|
|
41
|
+
activation,
|
|
42
|
+
active,
|
|
43
|
+
displayType,
|
|
44
|
+
justified,
|
|
45
|
+
modern,
|
|
46
|
+
onActiveChange: setActive,
|
|
47
|
+
shouldUseActive: isUncontrolled,
|
|
48
|
+
tabsId
|
|
49
|
+
}), /*#__PURE__*/React.isValidElement(right) && /*#__PURE__*/React.cloneElement(right, {
|
|
50
|
+
active,
|
|
51
|
+
fade,
|
|
52
|
+
tabsId
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
return /*#__PURE__*/React.createElement(List, _extends({}, otherProps, {
|
|
56
|
+
activation: activation,
|
|
57
|
+
active: active,
|
|
58
|
+
className: className,
|
|
59
|
+
displayType: displayType,
|
|
60
|
+
justified: justified,
|
|
61
|
+
modern: modern,
|
|
62
|
+
onActiveChange: setActive
|
|
63
|
+
}), children);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
|
|
68
|
+
*/
|
|
69
|
+
Tabs.Content = Content;
|
|
70
|
+
Tabs.Panels = Content;
|
|
71
|
+
Tabs.Item = Item;
|
|
72
|
+
Tabs.List = List;
|
|
73
|
+
Tabs.TabPane = TabPane;
|
|
74
|
+
Tabs.TabPanel = TabPane;
|
|
75
|
+
export default Tabs;
|
package/package.json
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clayui/tabs",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.143.0",
|
|
4
4
|
"description": "ClayTabs component",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"repository": "https://github.com/liferay/clay",
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
"main": "lib/cjs/index.js",
|
|
8
|
+
"module": "lib/esm/index.js",
|
|
9
|
+
"exports": {
|
|
10
|
+
"import": "./lib/esm/index.js",
|
|
11
|
+
"require": "./lib/cjs/index.js"
|
|
10
12
|
},
|
|
11
|
-
"main": "lib/index.js",
|
|
12
13
|
"types": "lib/index.d.ts",
|
|
13
14
|
"ts:main": "src/index.tsx",
|
|
14
15
|
"files": [
|
|
15
16
|
"lib"
|
|
16
17
|
],
|
|
17
18
|
"scripts": {
|
|
18
|
-
"build": "
|
|
19
|
+
"build": "yarn build:cjs && yarn build:esm",
|
|
20
|
+
"build:cjs": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib/cjs --extensions .ts,.tsx",
|
|
21
|
+
"build:esm": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib/esm --extensions .ts,.tsx --env-name esm",
|
|
19
22
|
"buildTypes": "cross-env NODE_ENV=production tsc --project ./tsconfig.declarations.json",
|
|
20
23
|
"format": "prettier --write \"**/*.{js,ts,tsx,md,mdx,json,scss}\"",
|
|
21
24
|
"test": "jest --config ../../jest.config.js"
|
|
@@ -25,7 +28,7 @@
|
|
|
25
28
|
"react"
|
|
26
29
|
],
|
|
27
30
|
"dependencies": {
|
|
28
|
-
"@clayui/shared": "^3.
|
|
31
|
+
"@clayui/shared": "^3.143.0",
|
|
29
32
|
"classnames": "^2.2.6"
|
|
30
33
|
},
|
|
31
34
|
"peerDependencies": {
|
|
@@ -36,5 +39,5 @@
|
|
|
36
39
|
"browserslist": [
|
|
37
40
|
"extends browserslist-config-clay"
|
|
38
41
|
],
|
|
39
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "aacf20646cc7fb25c4d60e865ec77d2d503d23e9"
|
|
40
43
|
}
|
package/lib/Content.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _excluded = ["active", "activeIndex", "children", "className", "fade", "tabsId"];
|
|
11
|
-
/**
|
|
12
|
-
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
13
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
14
|
-
*/
|
|
15
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
17
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
21
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
23
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
24
|
-
var Content = /*#__PURE__*/_react.default.forwardRef(function Content(_ref, ref) {
|
|
25
|
-
var active = _ref.active,
|
|
26
|
-
_ref$activeIndex = _ref.activeIndex,
|
|
27
|
-
activeIndex = _ref$activeIndex === void 0 ? 0 : _ref$activeIndex,
|
|
28
|
-
children = _ref.children,
|
|
29
|
-
className = _ref.className,
|
|
30
|
-
_ref$fade = _ref.fade,
|
|
31
|
-
fade = _ref$fade === void 0 ? false : _ref$fade,
|
|
32
|
-
tabsId = _ref.tabsId,
|
|
33
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
34
|
-
return /*#__PURE__*/_react.default.createElement("div", _extends({
|
|
35
|
-
className: (0, _classnames.default)('tab-content', className)
|
|
36
|
-
}, otherProps, {
|
|
37
|
-
ref: ref
|
|
38
|
-
}), _react.default.Children.map(children, function (child, index) {
|
|
39
|
-
if (! /*#__PURE__*/_react.default.isValidElement(child)) {
|
|
40
|
-
return child;
|
|
41
|
-
}
|
|
42
|
-
return /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
|
|
43
|
-
active: typeof active === 'number' ? active === index : activeIndex === index,
|
|
44
|
-
'aria-labelledby': tabsId ? "".concat(tabsId, "-tab-").concat(index) : child.props['aria-labelledby'],
|
|
45
|
-
fade: fade,
|
|
46
|
-
id: tabsId ? "".concat(tabsId, "-tabpanel-").concat(index) : child.props.id,
|
|
47
|
-
key: index
|
|
48
|
-
}));
|
|
49
|
-
}));
|
|
50
|
-
});
|
|
51
|
-
var _default = exports.default = Content;
|
package/lib/Item.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _shared = require("@clayui/shared");
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _excluded = ["active", "children", "className", "disabled", "href", "innerProps", "onClick"];
|
|
11
|
-
/**
|
|
12
|
-
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
13
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
14
|
-
*/
|
|
15
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
17
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
18
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
19
|
-
var Item = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
20
|
-
var _ref$active = _ref.active,
|
|
21
|
-
active = _ref$active === void 0 ? false : _ref$active,
|
|
22
|
-
children = _ref.children,
|
|
23
|
-
className = _ref.className,
|
|
24
|
-
_ref$disabled = _ref.disabled,
|
|
25
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
26
|
-
href = _ref.href,
|
|
27
|
-
_ref$innerProps = _ref.innerProps,
|
|
28
|
-
innerProps = _ref$innerProps === void 0 ? {} : _ref$innerProps,
|
|
29
|
-
onClick = _ref.onClick,
|
|
30
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
31
|
-
return /*#__PURE__*/_react.default.createElement("li", _extends({}, otherProps, {
|
|
32
|
-
className: (0, _classnames.default)('nav-item', className),
|
|
33
|
-
role: "none"
|
|
34
|
-
}), /*#__PURE__*/_react.default.createElement(_shared.LinkOrButton, _extends({}, innerProps, {
|
|
35
|
-
"aria-selected": active,
|
|
36
|
-
buttonDisplayType: "unstyled",
|
|
37
|
-
buttonType: "button",
|
|
38
|
-
className: (0, _classnames.default)('nav-link', {
|
|
39
|
-
active: active,
|
|
40
|
-
disabled: disabled
|
|
41
|
-
}),
|
|
42
|
-
disabled: disabled,
|
|
43
|
-
href: href,
|
|
44
|
-
onClick: onClick,
|
|
45
|
-
ref: ref,
|
|
46
|
-
role: "tab",
|
|
47
|
-
tabIndex: !active ? -1 : 0
|
|
48
|
-
}), children));
|
|
49
|
-
});
|
|
50
|
-
Item.displayName = 'ClayTabsItem';
|
|
51
|
-
var _default = exports.default = Item;
|
package/lib/List.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.List = void 0;
|
|
8
|
-
var _shared = require("@clayui/shared");
|
|
9
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _excluded = ["activation", "active", "children", "className", "displayType", "justified", "modern", "onActiveChange", "shouldUseActive", "tabsId"];
|
|
12
|
-
/**
|
|
13
|
-
* SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
|
|
14
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
15
|
-
*/
|
|
16
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) { if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
20
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
21
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
22
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
23
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
24
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
25
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
26
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
27
|
-
var List = exports.List = /*#__PURE__*/_react.default.forwardRef(function List(_ref, ref) {
|
|
28
|
-
var activation = _ref.activation,
|
|
29
|
-
active = _ref.active,
|
|
30
|
-
children = _ref.children,
|
|
31
|
-
className = _ref.className,
|
|
32
|
-
_ref$displayType = _ref.displayType,
|
|
33
|
-
displayType = _ref$displayType === void 0 ? null : _ref$displayType,
|
|
34
|
-
justified = _ref.justified,
|
|
35
|
-
__ = _ref.modern,
|
|
36
|
-
onActiveChange = _ref.onActiveChange,
|
|
37
|
-
_ref$shouldUseActive = _ref.shouldUseActive,
|
|
38
|
-
shouldUseActive = _ref$shouldUseActive === void 0 ? false : _ref$shouldUseActive,
|
|
39
|
-
tabsId = _ref.tabsId,
|
|
40
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
41
|
-
var tabsRef = (0, _react.useRef)(null);
|
|
42
|
-
var _useNavigation = (0, _shared.useNavigation)({
|
|
43
|
-
activation: activation,
|
|
44
|
-
containerRef: tabsRef,
|
|
45
|
-
orientation: 'horizontal'
|
|
46
|
-
}),
|
|
47
|
-
navigationProps = _useNavigation.navigationProps;
|
|
48
|
-
(0, _react.useImperativeHandle)(ref, function () {
|
|
49
|
-
return tabsRef.current;
|
|
50
|
-
}, [tabsRef]);
|
|
51
|
-
(0, _react.useEffect)(function () {
|
|
52
|
-
// Internal API to maintain compatibility with the old Tabs pattern and to
|
|
53
|
-
// only update the initial state when the component is in
|
|
54
|
-
// uncontrolled mode.
|
|
55
|
-
if (!shouldUseActive) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
var childrenArray = _react.default.Children.toArray(children);
|
|
59
|
-
|
|
60
|
-
// The `active` API in the new pattern has uncontrolled behavior, working
|
|
61
|
-
// just like defaultActive as in the prop declared in the root component.
|
|
62
|
-
for (var index = 0; index < childrenArray.length; index++) {
|
|
63
|
-
var child = childrenArray[index];
|
|
64
|
-
if (/*#__PURE__*/_react.default.isValidElement(child) && child.props.active) {
|
|
65
|
-
onActiveChange(index);
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}, []);
|
|
70
|
-
return /*#__PURE__*/_react.default.createElement("ul", _extends({}, otherProps, navigationProps, {
|
|
71
|
-
className: (0, _classnames.default)('nav nav-tabs', {
|
|
72
|
-
'nav-justified': justified
|
|
73
|
-
}, _defineProperty({}, "nav-tabs-".concat(displayType), displayType === 'light'), className),
|
|
74
|
-
ref: tabsRef,
|
|
75
|
-
role: "tablist"
|
|
76
|
-
}), _react.default.Children.map(children, function (child, index) {
|
|
77
|
-
var _child$props$innerPro;
|
|
78
|
-
if (! /*#__PURE__*/_react.default.isValidElement(child)) {
|
|
79
|
-
return child;
|
|
80
|
-
}
|
|
81
|
-
return /*#__PURE__*/_react.default.cloneElement(child, {
|
|
82
|
-
active: !shouldUseActive && child.props.active !== undefined ? child.props.active : active === index,
|
|
83
|
-
innerProps: _objectSpread({
|
|
84
|
-
'aria-controls': tabsId && "".concat(tabsId, "-tabpanel-").concat(index),
|
|
85
|
-
id: tabsId && "".concat(tabsId, "-tab-").concat(index)
|
|
86
|
-
}, (_child$props$innerPro = child.props.innerProps) !== null && _child$props$innerPro !== void 0 ? _child$props$innerPro : {}),
|
|
87
|
-
onClick: function onClick(event) {
|
|
88
|
-
var onClick = child.props.onClick;
|
|
89
|
-
if (onClick) {
|
|
90
|
-
onClick(event);
|
|
91
|
-
} else {
|
|
92
|
-
onActiveChange(index);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
}));
|
|
97
|
-
});
|
|
98
|
-
List.displayName = 'ClayTabsList';
|
package/lib/TabPane.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _excluded = ["active", "children", "className", "fade", "tabIndex"];
|
|
10
|
-
/**
|
|
11
|
-
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
12
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
13
|
-
*/
|
|
14
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
16
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
17
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
19
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
|
|
20
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
21
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
22
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
23
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
24
|
-
var delay = function delay(fn) {
|
|
25
|
-
var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
|
|
26
|
-
return setTimeout(function () {
|
|
27
|
-
fn();
|
|
28
|
-
}, val);
|
|
29
|
-
};
|
|
30
|
-
var TabPane = /*#__PURE__*/_react.default.forwardRef(function TabPane(_ref, ref) {
|
|
31
|
-
var _ref$active = _ref.active,
|
|
32
|
-
active = _ref$active === void 0 ? false : _ref$active,
|
|
33
|
-
children = _ref.children,
|
|
34
|
-
className = _ref.className,
|
|
35
|
-
fade = _ref.fade,
|
|
36
|
-
_ref$tabIndex = _ref.tabIndex,
|
|
37
|
-
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
|
|
38
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
39
|
-
var _React$useState = _react.default.useState(active),
|
|
40
|
-
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
41
|
-
internalActive = _React$useState2[0],
|
|
42
|
-
setInternalActive = _React$useState2[1];
|
|
43
|
-
var _React$useState3 = _react.default.useState(active),
|
|
44
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
45
|
-
internalShow = _React$useState4[0],
|
|
46
|
-
setInternalShow = _React$useState4[1];
|
|
47
|
-
_react.default.useEffect(function () {
|
|
48
|
-
var delayFn = function delayFn() {
|
|
49
|
-
setInternalActive(true);
|
|
50
|
-
delay(function () {
|
|
51
|
-
return setInternalShow(true);
|
|
52
|
-
}, 50);
|
|
53
|
-
};
|
|
54
|
-
if (!active) {
|
|
55
|
-
setInternalShow(false);
|
|
56
|
-
delayFn = function delayFn() {
|
|
57
|
-
return setInternalActive(false);
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
var timer = delay(delayFn);
|
|
61
|
-
return function () {
|
|
62
|
-
clearTimeout(timer);
|
|
63
|
-
setInternalShow(false);
|
|
64
|
-
};
|
|
65
|
-
}, [active]);
|
|
66
|
-
return /*#__PURE__*/_react.default.createElement("div", _extends({}, otherProps, {
|
|
67
|
-
className: (0, _classnames.default)('tab-pane', {
|
|
68
|
-
active: internalActive,
|
|
69
|
-
fade: fade,
|
|
70
|
-
show: internalShow
|
|
71
|
-
}, className),
|
|
72
|
-
ref: ref,
|
|
73
|
-
role: "tabpanel",
|
|
74
|
-
tabIndex: tabIndex
|
|
75
|
-
}), children);
|
|
76
|
-
});
|
|
77
|
-
var _default = exports.default = TabPane;
|
package/lib/index.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _shared = require("@clayui/shared");
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var _Content = _interopRequireDefault(require("./Content"));
|
|
10
|
-
var _Item = _interopRequireDefault(require("./Item"));
|
|
11
|
-
var _List = require("./List");
|
|
12
|
-
var _TabPane = _interopRequireDefault(require("./TabPane"));
|
|
13
|
-
var _excluded = ["activation", "active", "children", "className", "defaultActive", "displayType", "fade", "justified", "modern", "onActiveChange"];
|
|
14
|
-
/**
|
|
15
|
-
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
16
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
-
*/
|
|
18
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
-
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
20
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
21
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
22
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
|
|
24
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
25
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
26
|
-
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
27
|
-
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
28
|
-
function Tabs(_ref) {
|
|
29
|
-
var _left$type;
|
|
30
|
-
var _ref$activation = _ref.activation,
|
|
31
|
-
activation = _ref$activation === void 0 ? 'manual' : _ref$activation,
|
|
32
|
-
externalActive = _ref.active,
|
|
33
|
-
children = _ref.children,
|
|
34
|
-
className = _ref.className,
|
|
35
|
-
_ref$defaultActive = _ref.defaultActive,
|
|
36
|
-
defaultActive = _ref$defaultActive === void 0 ? 0 : _ref$defaultActive,
|
|
37
|
-
displayType = _ref.displayType,
|
|
38
|
-
_ref$fade = _ref.fade,
|
|
39
|
-
fade = _ref$fade === void 0 ? false : _ref$fade,
|
|
40
|
-
justified = _ref.justified,
|
|
41
|
-
_ref$modern = _ref.modern,
|
|
42
|
-
modern = _ref$modern === void 0 ? false : _ref$modern,
|
|
43
|
-
onActiveChange = _ref.onActiveChange,
|
|
44
|
-
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
45
|
-
var _useControlledState = (0, _shared.useControlledState)({
|
|
46
|
-
defaultName: 'defaultActive',
|
|
47
|
-
defaultValue: defaultActive,
|
|
48
|
-
handleName: 'onActiveChange',
|
|
49
|
-
name: 'active',
|
|
50
|
-
onChange: onActiveChange,
|
|
51
|
-
value: externalActive
|
|
52
|
-
}),
|
|
53
|
-
_useControlledState2 = _slicedToArray(_useControlledState, 3),
|
|
54
|
-
active = _useControlledState2[0],
|
|
55
|
-
setActive = _useControlledState2[1],
|
|
56
|
-
isUncontrolled = _useControlledState2[2];
|
|
57
|
-
var _React$Children$toArr = _react.default.Children.toArray(children),
|
|
58
|
-
_React$Children$toArr2 = _slicedToArray(_React$Children$toArr, 2),
|
|
59
|
-
left = _React$Children$toArr2[0],
|
|
60
|
-
right = _React$Children$toArr2[1];
|
|
61
|
-
var tabsId = (0, _shared.useId)();
|
|
62
|
-
|
|
63
|
-
// @ts-ignore
|
|
64
|
-
if ((left === null || left === void 0 ? void 0 : (_left$type = left.type) === null || _left$type === void 0 ? void 0 : _left$type.displayName) === 'ClayTabsList') {
|
|
65
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.cloneElement(left, {
|
|
66
|
-
activation: activation,
|
|
67
|
-
active: active,
|
|
68
|
-
displayType: displayType,
|
|
69
|
-
justified: justified,
|
|
70
|
-
modern: modern,
|
|
71
|
-
onActiveChange: setActive,
|
|
72
|
-
shouldUseActive: isUncontrolled,
|
|
73
|
-
tabsId: tabsId
|
|
74
|
-
}), /*#__PURE__*/_react.default.isValidElement(right) && /*#__PURE__*/_react.default.cloneElement(right, {
|
|
75
|
-
active: active,
|
|
76
|
-
fade: fade,
|
|
77
|
-
tabsId: tabsId
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
return /*#__PURE__*/_react.default.createElement(_List.List, _extends({}, otherProps, {
|
|
81
|
-
activation: activation,
|
|
82
|
-
active: active,
|
|
83
|
-
className: className,
|
|
84
|
-
displayType: displayType,
|
|
85
|
-
justified: justified,
|
|
86
|
-
modern: modern,
|
|
87
|
-
onActiveChange: setActive
|
|
88
|
-
}), children);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
|
|
93
|
-
*/
|
|
94
|
-
Tabs.Content = _Content.default;
|
|
95
|
-
Tabs.Panels = _Content.default;
|
|
96
|
-
Tabs.Item = _Item.default;
|
|
97
|
-
Tabs.List = _List.List;
|
|
98
|
-
Tabs.TabPane = _TabPane.default;
|
|
99
|
-
Tabs.TabPanel = _TabPane.default;
|
|
100
|
-
var _default = exports.default = Tabs;
|