@clayui/breadcrumb 3.141.2-alpha.0 → 3.142.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/Item.d.ts +25 -0
- package/lib/Item.js +41 -0
- package/lib/index.d.ts +37 -0
- package/lib/index.js +92 -0
- package/package.json +12 -15
- package/lib/cjs/Item.js +0 -39
- package/lib/cjs/index.js +0 -77
- package/lib/esm/Item.js +0 -34
- package/lib/esm/index.js +0 -70
package/lib/Item.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
3
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
interface IItem extends React.HTMLAttributes<HTMLLIElement> {
|
|
7
|
+
/**
|
|
8
|
+
* Flag to indicate if the Breadcrumb item is active or not.
|
|
9
|
+
*/
|
|
10
|
+
active?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* This value is used to be the target of the link.
|
|
13
|
+
*/
|
|
14
|
+
href?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Label of the Breadcrumb item
|
|
17
|
+
*/
|
|
18
|
+
label: string;
|
|
19
|
+
/**
|
|
20
|
+
* Callback for when a Breadcrumb item is clicked.
|
|
21
|
+
*/
|
|
22
|
+
onClick?: (event: React.SyntheticEvent) => void;
|
|
23
|
+
}
|
|
24
|
+
declare const Item: ({ active, href, label, onClick, ...otherProps }: IItem) => JSX.Element;
|
|
25
|
+
export default Item;
|
package/lib/Item.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _link = _interopRequireDefault(require("@clayui/link"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _excluded = ["active", "href", "label", "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 = function Item(_ref) {
|
|
20
|
+
var active = _ref.active,
|
|
21
|
+
href = _ref.href,
|
|
22
|
+
label = _ref.label,
|
|
23
|
+
_onClick = _ref.onClick,
|
|
24
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement("li", _extends({
|
|
26
|
+
className: (0, _classnames.default)('breadcrumb-item', {
|
|
27
|
+
active: active
|
|
28
|
+
})
|
|
29
|
+
}, otherProps), /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
30
|
+
"aria-current": active ? 'page' : undefined,
|
|
31
|
+
className: "breadcrumb-link",
|
|
32
|
+
href: active ? '#' : href,
|
|
33
|
+
onClick: function onClick(event) {
|
|
34
|
+
if (_onClick) {
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
_onClick(event);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, label));
|
|
40
|
+
};
|
|
41
|
+
var _default = exports.default = Item;
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
3
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
4
|
+
*/
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import Item from './Item';
|
|
7
|
+
interface IProps extends React.HTMLAttributes<HTMLOListElement> {
|
|
8
|
+
/**
|
|
9
|
+
* Defines the aria label of component elements.
|
|
10
|
+
*/
|
|
11
|
+
ariaLabels?: {
|
|
12
|
+
breadcrumb: string;
|
|
13
|
+
open: string;
|
|
14
|
+
close: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* The number of Breadcrumb Items to show on each side of the active Breadcrumb Item before
|
|
18
|
+
* using an ellipsis dropdown.
|
|
19
|
+
* @deprecated since v3.91.0 - It is no longer necessary.
|
|
20
|
+
*/
|
|
21
|
+
ellipsisBuffer?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Use this property for defining `otherProps` that will be passed to ellipsis dropdown trigger.
|
|
24
|
+
* @deprecated since v3.91.0 - It is no longer necessary.
|
|
25
|
+
*/
|
|
26
|
+
ellipsisProps?: Object;
|
|
27
|
+
/**
|
|
28
|
+
* Property to define Breadcrumb's items.
|
|
29
|
+
*/
|
|
30
|
+
items: Array<React.ComponentProps<typeof Item>>;
|
|
31
|
+
/**
|
|
32
|
+
* Path to the location of the spritemap resource.
|
|
33
|
+
*/
|
|
34
|
+
spritemap?: string;
|
|
35
|
+
}
|
|
36
|
+
declare const Breadcrumb: ({ ariaLabels, ellipsisBuffer, ellipsisProps, className, items, spritemap, ...otherProps }: IProps) => JSX.Element;
|
|
37
|
+
export default Breadcrumb;
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
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 _button = require("@clayui/button");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _warning = _interopRequireDefault(require("warning"));
|
|
12
|
+
var _Item = _interopRequireDefault(require("./Item"));
|
|
13
|
+
var _excluded = ["ariaLabels", "ellipsisBuffer", "ellipsisProps", "className", "items", "spritemap"];
|
|
14
|
+
/**
|
|
15
|
+
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
16
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
+
*/
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
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); }
|
|
22
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
23
|
+
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."); }
|
|
24
|
+
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; } }
|
|
25
|
+
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; }
|
|
26
|
+
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; } }
|
|
27
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
28
|
+
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; }
|
|
29
|
+
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; }
|
|
30
|
+
var findActiveItems = function findActiveItems(items) {
|
|
31
|
+
return items.filter(function (item) {
|
|
32
|
+
return item.active;
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var Breadcrumb = function Breadcrumb(_ref) {
|
|
36
|
+
var _ref$ariaLabels = _ref.ariaLabels,
|
|
37
|
+
ariaLabels = _ref$ariaLabels === void 0 ? {
|
|
38
|
+
breadcrumb: 'Breadcrumb',
|
|
39
|
+
close: 'Partially nest breadcrumbs',
|
|
40
|
+
open: 'See full nested'
|
|
41
|
+
} : _ref$ariaLabels,
|
|
42
|
+
_ref$ellipsisBuffer = _ref.ellipsisBuffer,
|
|
43
|
+
ellipsisBuffer = _ref$ellipsisBuffer === void 0 ? 1 : _ref$ellipsisBuffer,
|
|
44
|
+
_ref$ellipsisProps = _ref.ellipsisProps,
|
|
45
|
+
ellipsisProps = _ref$ellipsisProps === void 0 ? {} : _ref$ellipsisProps,
|
|
46
|
+
className = _ref.className,
|
|
47
|
+
items = _ref.items,
|
|
48
|
+
spritemap = _ref.spritemap,
|
|
49
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
50
|
+
"production" !== "production" ? (0, _warning.default)(findActiveItems(items).length === 1, 'ClayBreadcrumb expects at least one `active` item on `items`.') : void 0;
|
|
51
|
+
var _useState = (0, _react.useState)(false),
|
|
52
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
53
|
+
collapsed = _useState2[0],
|
|
54
|
+
setCollapsed = _useState2[1];
|
|
55
|
+
return /*#__PURE__*/_react.default.createElement("nav", {
|
|
56
|
+
"aria-label": ariaLabels.breadcrumb,
|
|
57
|
+
className: "breadcrumb-bar"
|
|
58
|
+
}, items.length > 3 && /*#__PURE__*/_react.default.createElement(_button.ClayButtonWithIcon, {
|
|
59
|
+
"aria-expanded": collapsed,
|
|
60
|
+
"aria-label": collapsed ? ariaLabels.close : ariaLabels.open,
|
|
61
|
+
className: "breadcrumb-toggle",
|
|
62
|
+
displayType: null,
|
|
63
|
+
onClick: function onClick() {
|
|
64
|
+
return setCollapsed(!collapsed);
|
|
65
|
+
},
|
|
66
|
+
size: "xs",
|
|
67
|
+
spritemap: spritemap,
|
|
68
|
+
symbol: collapsed ? 'angle-double-left' : 'angle-double-right',
|
|
69
|
+
title: collapsed ? ariaLabels.close : ariaLabels.open
|
|
70
|
+
}), /*#__PURE__*/_react.default.createElement("ol", _extends({}, otherProps, {
|
|
71
|
+
className: (0, _classnames.default)('breadcrumb', className)
|
|
72
|
+
}), items.length > 3 && !collapsed ? /*#__PURE__*/_react.default.createElement(Items, {
|
|
73
|
+
items: [items[items.length - 2], items[items.length - 1]]
|
|
74
|
+
}) : /*#__PURE__*/_react.default.createElement(Items, {
|
|
75
|
+
items: items
|
|
76
|
+
})));
|
|
77
|
+
};
|
|
78
|
+
function Items(_ref2) {
|
|
79
|
+
var items = _ref2.items;
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, items.map(function (item, i) {
|
|
81
|
+
return /*#__PURE__*/_react.default.isValidElement(item) ? (/*#__PURE__*/_react.default.cloneElement(item, {
|
|
82
|
+
key: "ellipsis".concat(i)
|
|
83
|
+
})) : /*#__PURE__*/_react.default.createElement(_Item.default, {
|
|
84
|
+
active: item.active,
|
|
85
|
+
href: item.href,
|
|
86
|
+
key: "breadcrumbItem".concat(i),
|
|
87
|
+
label: item.label,
|
|
88
|
+
onClick: item.onClick
|
|
89
|
+
});
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
var _default = exports.default = Breadcrumb;
|
package/package.json
CHANGED
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clayui/breadcrumb",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.142.0",
|
|
4
4
|
"description": "ClayBreadcrumb component",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"repository": "https://github.com/liferay/clay",
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
"import": "./lib/esm/index.js",
|
|
11
|
-
"require": "./lib/cjs/index.js"
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=0.12.0",
|
|
9
|
+
"npm": ">=3.0.0"
|
|
12
10
|
},
|
|
11
|
+
"main": "lib/index.js",
|
|
13
12
|
"types": "lib/index.d.ts",
|
|
14
13
|
"ts:main": "src/index.tsx",
|
|
15
14
|
"files": [
|
|
16
15
|
"lib"
|
|
17
16
|
],
|
|
18
17
|
"scripts": {
|
|
19
|
-
"build": "
|
|
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",
|
|
18
|
+
"build": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib --extensions .ts,.tsx",
|
|
22
19
|
"buildTypes": "cross-env NODE_ENV=production tsc --project ./tsconfig.declarations.json",
|
|
23
20
|
"test": "jest --config ../../jest.config.js"
|
|
24
21
|
},
|
|
@@ -27,19 +24,19 @@
|
|
|
27
24
|
"react"
|
|
28
25
|
],
|
|
29
26
|
"dependencies": {
|
|
30
|
-
"@clayui/button": "^3.
|
|
31
|
-
"@clayui/icon": "^3.
|
|
32
|
-
"@clayui/link": "^3.
|
|
27
|
+
"@clayui/button": "^3.137.0",
|
|
28
|
+
"@clayui/icon": "^3.129.0",
|
|
29
|
+
"@clayui/link": "^3.142.0",
|
|
33
30
|
"classnames": "^2.2.6",
|
|
34
31
|
"warning": "^4.0.3"
|
|
35
32
|
},
|
|
36
33
|
"peerDependencies": {
|
|
37
34
|
"@clayui/css": "3.x",
|
|
38
|
-
"react": "^
|
|
39
|
-
"react-dom": "^
|
|
35
|
+
"react": "^18.2.0",
|
|
36
|
+
"react-dom": "^18.2.0"
|
|
40
37
|
},
|
|
41
38
|
"browserslist": [
|
|
42
39
|
"extends browserslist-config-clay"
|
|
43
40
|
],
|
|
44
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "f563be12a87d6fcf03706d235618e5512de63463"
|
|
45
42
|
}
|
package/lib/cjs/Item.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _link = _interopRequireDefault(require("@clayui/link"));
|
|
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 = _ref => {
|
|
16
|
-
let {
|
|
17
|
-
active,
|
|
18
|
-
href,
|
|
19
|
-
label,
|
|
20
|
-
onClick,
|
|
21
|
-
...otherProps
|
|
22
|
-
} = _ref;
|
|
23
|
-
return /*#__PURE__*/_react.default.createElement("li", _extends({
|
|
24
|
-
className: (0, _classnames.default)('breadcrumb-item', {
|
|
25
|
-
active
|
|
26
|
-
})
|
|
27
|
-
}, otherProps), /*#__PURE__*/_react.default.createElement(_link.default, {
|
|
28
|
-
"aria-current": active ? 'page' : undefined,
|
|
29
|
-
className: "breadcrumb-link",
|
|
30
|
-
href: active ? '#' : href,
|
|
31
|
-
onClick: event => {
|
|
32
|
-
if (onClick) {
|
|
33
|
-
event.preventDefault();
|
|
34
|
-
onClick(event);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}, label));
|
|
38
|
-
};
|
|
39
|
-
var _default = exports.default = Item;
|
package/lib/cjs/index.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 _button = require("@clayui/button");
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _warning = _interopRequireDefault(require("warning"));
|
|
11
|
-
var _Item = _interopRequireDefault(require("./Item"));
|
|
12
|
-
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); }
|
|
13
|
-
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; }
|
|
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
|
-
* SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
|
|
17
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
18
|
-
*/
|
|
19
|
-
const findActiveItems = items => {
|
|
20
|
-
return items.filter(item => {
|
|
21
|
-
return item.active;
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
const Breadcrumb = _ref => {
|
|
25
|
-
let {
|
|
26
|
-
ariaLabels = {
|
|
27
|
-
breadcrumb: 'Breadcrumb',
|
|
28
|
-
close: 'Partially nest breadcrumbs',
|
|
29
|
-
open: 'See full nested'
|
|
30
|
-
},
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
32
|
-
ellipsisBuffer = 1,
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
34
|
-
ellipsisProps = {},
|
|
35
|
-
className,
|
|
36
|
-
items,
|
|
37
|
-
spritemap,
|
|
38
|
-
...otherProps
|
|
39
|
-
} = _ref;
|
|
40
|
-
"production" !== "production" ? (0, _warning.default)(findActiveItems(items).length === 1, 'ClayBreadcrumb expects at least one `active` item on `items`.') : void 0;
|
|
41
|
-
const [collapsed, setCollapsed] = (0, _react.useState)(false);
|
|
42
|
-
return /*#__PURE__*/_react.default.createElement("nav", {
|
|
43
|
-
"aria-label": ariaLabels.breadcrumb,
|
|
44
|
-
className: "breadcrumb-bar"
|
|
45
|
-
}, items.length > 3 && /*#__PURE__*/_react.default.createElement(_button.ClayButtonWithIcon, {
|
|
46
|
-
"aria-expanded": collapsed,
|
|
47
|
-
"aria-label": collapsed ? ariaLabels.close : ariaLabels.open,
|
|
48
|
-
className: "breadcrumb-toggle",
|
|
49
|
-
displayType: null,
|
|
50
|
-
onClick: () => setCollapsed(!collapsed),
|
|
51
|
-
size: "xs",
|
|
52
|
-
spritemap: spritemap,
|
|
53
|
-
symbol: collapsed ? 'angle-double-left' : 'angle-double-right',
|
|
54
|
-
title: collapsed ? ariaLabels.close : ariaLabels.open
|
|
55
|
-
}), /*#__PURE__*/_react.default.createElement("ol", _extends({}, otherProps, {
|
|
56
|
-
className: (0, _classnames.default)('breadcrumb', className)
|
|
57
|
-
}), items.length > 3 && !collapsed ? /*#__PURE__*/_react.default.createElement(Items, {
|
|
58
|
-
items: [items[items.length - 2], items[items.length - 1]]
|
|
59
|
-
}) : /*#__PURE__*/_react.default.createElement(Items, {
|
|
60
|
-
items: items
|
|
61
|
-
})));
|
|
62
|
-
};
|
|
63
|
-
function Items(_ref2) {
|
|
64
|
-
let {
|
|
65
|
-
items
|
|
66
|
-
} = _ref2;
|
|
67
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, items.map((item, i) => /*#__PURE__*/_react.default.isValidElement(item) ? (/*#__PURE__*/_react.default.cloneElement(item, {
|
|
68
|
-
key: `ellipsis${i}`
|
|
69
|
-
})) : /*#__PURE__*/_react.default.createElement(_Item.default, {
|
|
70
|
-
active: item.active,
|
|
71
|
-
href: item.href,
|
|
72
|
-
key: `breadcrumbItem${i}`,
|
|
73
|
-
label: item.label,
|
|
74
|
-
onClick: item.onClick
|
|
75
|
-
})));
|
|
76
|
-
}
|
|
77
|
-
var _default = exports.default = Breadcrumb;
|
package/lib/esm/Item.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
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 ClayLink from '@clayui/link';
|
|
8
|
-
import classNames from 'classnames';
|
|
9
|
-
import React from 'react';
|
|
10
|
-
const Item = _ref => {
|
|
11
|
-
let {
|
|
12
|
-
active,
|
|
13
|
-
href,
|
|
14
|
-
label,
|
|
15
|
-
onClick,
|
|
16
|
-
...otherProps
|
|
17
|
-
} = _ref;
|
|
18
|
-
return /*#__PURE__*/React.createElement("li", _extends({
|
|
19
|
-
className: classNames('breadcrumb-item', {
|
|
20
|
-
active
|
|
21
|
-
})
|
|
22
|
-
}, otherProps), /*#__PURE__*/React.createElement(ClayLink, {
|
|
23
|
-
"aria-current": active ? 'page' : undefined,
|
|
24
|
-
className: "breadcrumb-link",
|
|
25
|
-
href: active ? '#' : href,
|
|
26
|
-
onClick: event => {
|
|
27
|
-
if (onClick) {
|
|
28
|
-
event.preventDefault();
|
|
29
|
-
onClick(event);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}, label));
|
|
33
|
-
};
|
|
34
|
-
export default Item;
|
package/lib/esm/index.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
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 { ClayButtonWithIcon } from '@clayui/button';
|
|
8
|
-
import classNames from 'classnames';
|
|
9
|
-
import React, { useState } from 'react';
|
|
10
|
-
import warning from 'warning';
|
|
11
|
-
import Item from "./Item.js";
|
|
12
|
-
const findActiveItems = items => {
|
|
13
|
-
return items.filter(item => {
|
|
14
|
-
return item.active;
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
const Breadcrumb = _ref => {
|
|
18
|
-
let {
|
|
19
|
-
ariaLabels = {
|
|
20
|
-
breadcrumb: 'Breadcrumb',
|
|
21
|
-
close: 'Partially nest breadcrumbs',
|
|
22
|
-
open: 'See full nested'
|
|
23
|
-
},
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
-
ellipsisBuffer = 1,
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
27
|
-
ellipsisProps = {},
|
|
28
|
-
className,
|
|
29
|
-
items,
|
|
30
|
-
spritemap,
|
|
31
|
-
...otherProps
|
|
32
|
-
} = _ref;
|
|
33
|
-
"production" !== "production" ? warning(findActiveItems(items).length === 1, 'ClayBreadcrumb expects at least one `active` item on `items`.') : void 0;
|
|
34
|
-
const [collapsed, setCollapsed] = useState(false);
|
|
35
|
-
return /*#__PURE__*/React.createElement("nav", {
|
|
36
|
-
"aria-label": ariaLabels.breadcrumb,
|
|
37
|
-
className: "breadcrumb-bar"
|
|
38
|
-
}, items.length > 3 && /*#__PURE__*/React.createElement(ClayButtonWithIcon, {
|
|
39
|
-
"aria-expanded": collapsed,
|
|
40
|
-
"aria-label": collapsed ? ariaLabels.close : ariaLabels.open,
|
|
41
|
-
className: "breadcrumb-toggle",
|
|
42
|
-
displayType: null,
|
|
43
|
-
onClick: () => setCollapsed(!collapsed),
|
|
44
|
-
size: "xs",
|
|
45
|
-
spritemap: spritemap,
|
|
46
|
-
symbol: collapsed ? 'angle-double-left' : 'angle-double-right',
|
|
47
|
-
title: collapsed ? ariaLabels.close : ariaLabels.open
|
|
48
|
-
}), /*#__PURE__*/React.createElement("ol", _extends({}, otherProps, {
|
|
49
|
-
className: classNames('breadcrumb', className)
|
|
50
|
-
}), items.length > 3 && !collapsed ? /*#__PURE__*/React.createElement(Items, {
|
|
51
|
-
items: [items[items.length - 2], items[items.length - 1]]
|
|
52
|
-
}) : /*#__PURE__*/React.createElement(Items, {
|
|
53
|
-
items: items
|
|
54
|
-
})));
|
|
55
|
-
};
|
|
56
|
-
function Items(_ref2) {
|
|
57
|
-
let {
|
|
58
|
-
items
|
|
59
|
-
} = _ref2;
|
|
60
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, items.map((item, i) => /*#__PURE__*/React.isValidElement(item) ? (/*#__PURE__*/React.cloneElement(item, {
|
|
61
|
-
key: `ellipsis${i}`
|
|
62
|
-
})) : /*#__PURE__*/React.createElement(Item, {
|
|
63
|
-
active: item.active,
|
|
64
|
-
href: item.href,
|
|
65
|
-
key: `breadcrumbItem${i}`,
|
|
66
|
-
label: item.label,
|
|
67
|
-
onClick: item.onClick
|
|
68
|
-
})));
|
|
69
|
-
}
|
|
70
|
-
export default Breadcrumb;
|