@nice-digital/nds-breadcrumbs 3.0.2-alpha.0 → 4.0.0-alpha.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/es/Breadcrumb.d.ts +10 -0
- package/es/Breadcrumb.js +30 -36
- package/es/Breadcrumb.test.d.ts +1 -0
- package/es/Breadcrumb.test.js +26 -0
- package/es/Breadcrumbs.d.ts +12 -0
- package/es/Breadcrumbs.js +43 -54
- package/es/Breadcrumbs.test.d.ts +1 -0
- package/es/Breadcrumbs.test.js +20 -0
- package/package.json +12 -12
- package/es/Breadcrumb.js.map +0 -1
- package/es/Breadcrumbs.js.map +0 -1
- package/lib/Breadcrumb.js +0 -65
- package/lib/Breadcrumb.js.map +0 -1
- package/lib/Breadcrumbs.js +0 -91
- package/lib/Breadcrumbs.js.map +0 -1
- package/nds-breadcrumbs.d.ts +0 -26
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode, ElementType } from "react";
|
|
2
|
+
export interface BreadcrumbProps {
|
|
3
|
+
[prop: string]: unknown;
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
to?: string;
|
|
6
|
+
elementType?: ElementType;
|
|
7
|
+
method?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const Breadcrumb: (props: BreadcrumbProps) => JSX.Element;
|
package/es/Breadcrumb.js
CHANGED
|
@@ -1,36 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
children: PropTypes.string.isRequired,
|
|
32
|
-
to: PropTypes.string,
|
|
33
|
-
method: PropTypes.string,
|
|
34
|
-
className: PropTypes.string
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=Breadcrumb.js.map
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Breadcrumb = void 0;
|
|
18
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
19
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
20
|
+
const Breadcrumb = (props) => {
|
|
21
|
+
const { elementType, method, to, children, className } = props, attributes = __rest(props, ["elementType", "method", "to", "children", "className"]);
|
|
22
|
+
let ElementType = elementType || "span";
|
|
23
|
+
const innerTagProps = Object.assign({}, attributes);
|
|
24
|
+
if (to) {
|
|
25
|
+
ElementType = elementType || "a";
|
|
26
|
+
innerTagProps[method || (ElementType === "a" && "href") || "to"] = to;
|
|
27
|
+
}
|
|
28
|
+
return ((0, jsx_runtime_1.jsx)("li", Object.assign({ className: (0, classnames_1.default)(["breadcrumbs__crumb", className]) }, { children: (0, jsx_runtime_1.jsx)(ElementType, Object.assign({}, innerTagProps, { children: children })) })));
|
|
29
|
+
};
|
|
30
|
+
exports.Breadcrumb = Breadcrumb;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("@testing-library/react");
|
|
5
|
+
const Breadcrumb_1 = require("./Breadcrumb");
|
|
6
|
+
describe("Breadcrumb", () => {
|
|
7
|
+
it("should match snapshot for no location", () => {
|
|
8
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, { children: "Home" }));
|
|
9
|
+
expect(wrapper).toMatchSnapshot();
|
|
10
|
+
});
|
|
11
|
+
it("should match snapshot for anchor", () => {
|
|
12
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/" }, { children: "Home" })));
|
|
13
|
+
expect(wrapper).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
it("should pass on props to rendered anchor", () => {
|
|
16
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/", "aria-current": true }, { children: "Home" })));
|
|
17
|
+
const link = wrapper.getByRole("link");
|
|
18
|
+
expect(link.getAttribute("href")).toBe("/");
|
|
19
|
+
expect(link.getAttribute("aria-current")).toBe("true");
|
|
20
|
+
expect(link.textContent).toBe("Home");
|
|
21
|
+
});
|
|
22
|
+
it("should merge any additional classes onto the container", () => {
|
|
23
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/", "aria-current": true, className: "mt--0" }, { children: "Home" })));
|
|
24
|
+
expect(wrapper.getByRole("listitem")).toHaveClass("mt--0");
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
import { type BreadcrumbProps } from "./Breadcrumb";
|
|
3
|
+
import { Breadcrumb } from "./Breadcrumb";
|
|
4
|
+
import "../scss/breadcrumbs.scss";
|
|
5
|
+
export { Breadcrumb };
|
|
6
|
+
export interface BreadcrumbsProps {
|
|
7
|
+
[prop: string]: unknown;
|
|
8
|
+
className?: string;
|
|
9
|
+
children: ValidBreadcrumbProp[] | ValidBreadcrumbProp;
|
|
10
|
+
}
|
|
11
|
+
declare type ValidBreadcrumbProp = ReactElement<BreadcrumbProps> | null | undefined;
|
|
12
|
+
export declare const Breadcrumbs: ({ children, ...rest }: BreadcrumbsProps) => JSX.Element;
|
package/es/Breadcrumbs.js
CHANGED
|
@@ -1,54 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
role: "navigation"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}, children)), /*#__PURE__*/React.createElement("script", {
|
|
45
|
-
type: "application/ld+json",
|
|
46
|
-
dangerouslySetInnerHTML: {
|
|
47
|
-
__html: stringify(jsonLdData)
|
|
48
|
-
}
|
|
49
|
-
}));
|
|
50
|
-
};
|
|
51
|
-
Breadcrumbs.propTypes = {
|
|
52
|
-
children: PropTypes.oneOfType([PropTypes.arrayOf(Breadcrumb), PropTypes.objectOf(Breadcrumb)]).isRequired
|
|
53
|
-
};
|
|
54
|
-
//# sourceMappingURL=Breadcrumbs.js.map
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.Breadcrumbs = exports.Breadcrumb = void 0;
|
|
15
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
const Breadcrumb_1 = require("./Breadcrumb");
|
|
17
|
+
Object.defineProperty(exports, "Breadcrumb", { enumerable: true, get: function () { return Breadcrumb_1.Breadcrumb; } });
|
|
18
|
+
require("../scss/breadcrumbs.scss");
|
|
19
|
+
const stringify = (data) => {
|
|
20
|
+
if (process.env.NODE_ENV === "production")
|
|
21
|
+
return JSON.stringify(data);
|
|
22
|
+
return JSON.stringify(data, null, 2);
|
|
23
|
+
};
|
|
24
|
+
const getBreadcrumbJsonLdItem = (breadcrumb, index = 0) => ({
|
|
25
|
+
"@type": "ListItem",
|
|
26
|
+
position: index + 1,
|
|
27
|
+
item: {
|
|
28
|
+
"@id": breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.props.to,
|
|
29
|
+
name: breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.props.children
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
const Breadcrumbs = (_a) => {
|
|
33
|
+
var { children } = _a, rest = __rest(_a, ["children"]);
|
|
34
|
+
const jsonLdData = {
|
|
35
|
+
"@context": "http://schema.org",
|
|
36
|
+
"@type": "BreadcrumbList",
|
|
37
|
+
itemListElement: Array.isArray(children)
|
|
38
|
+
? children.filter(Boolean).map(getBreadcrumbJsonLdItem)
|
|
39
|
+
: getBreadcrumbJsonLdItem(children)
|
|
40
|
+
};
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("nav", Object.assign({ "aria-label": "Breadcrumbs", role: "navigation", "data-component": "breadcrumbs" }, rest, { children: (0, jsx_runtime_1.jsx)("ol", Object.assign({ className: "breadcrumbs" }, { children: children })) })), (0, jsx_runtime_1.jsx)("script", { type: "application/ld+json", dangerouslySetInnerHTML: { __html: stringify(jsonLdData) } })] }));
|
|
42
|
+
};
|
|
43
|
+
exports.Breadcrumbs = Breadcrumbs;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("@testing-library/react");
|
|
5
|
+
const Breadcrumb_1 = require("./Breadcrumb");
|
|
6
|
+
const Breadcrumbs_1 = require("./Breadcrumbs");
|
|
7
|
+
describe("Breadcrumbs", () => {
|
|
8
|
+
it("should match snapshot for single level", () => {
|
|
9
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsxs)(Breadcrumbs_1.Breadcrumbs, { children: [(0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/" }, { children: "Home" })), (0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, { children: "Page" })] }));
|
|
10
|
+
expect(wrapper).toMatchSnapshot();
|
|
11
|
+
});
|
|
12
|
+
it("should match snapshot for multiple levels", () => {
|
|
13
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsxs)(Breadcrumbs_1.Breadcrumbs, { children: [(0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/" }, { children: "Home" })), (0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/topics/" }, { children: "Topics" })), (0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, { children: "Page" })] }));
|
|
14
|
+
expect(wrapper).toMatchSnapshot();
|
|
15
|
+
});
|
|
16
|
+
it("should spread additional props onto the container", () => {
|
|
17
|
+
const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsxs)(Breadcrumbs_1.Breadcrumbs, Object.assign({ "data-track": false }, { children: [(0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, Object.assign({ to: "/" }, { children: "Home" })), (0, jsx_runtime_1.jsx)(Breadcrumb_1.Breadcrumb, { children: "Page" })] })));
|
|
18
|
+
expect(wrapper.getByRole("navigation").getAttribute("data-track")).toBe("false");
|
|
19
|
+
});
|
|
20
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nice-digital/nds-breadcrumbs",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0-alpha.0",
|
|
4
4
|
"description": "Breadcrumbs component for the NICE Design System",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"breadcrumbs"
|
|
@@ -8,16 +8,12 @@
|
|
|
8
8
|
"author": "Ian Routledge <ian.routledge@nice.org.uk>",
|
|
9
9
|
"homepage": "https://design-system.nice.org.uk/",
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"main": "
|
|
12
|
-
"module": "es/Breadcrumbs.js",
|
|
11
|
+
"main": "es/Breadcrumbs.js",
|
|
13
12
|
"style": "scss/breadcrumbs.scss",
|
|
14
|
-
"types": "nds-breadcrumbs.d.ts",
|
|
15
13
|
"directories": {
|
|
16
|
-
"lib": "
|
|
17
|
-
"test": "__tests__"
|
|
14
|
+
"lib": "es"
|
|
18
15
|
},
|
|
19
16
|
"files": [
|
|
20
|
-
"lib",
|
|
21
17
|
"es",
|
|
22
18
|
"scss",
|
|
23
19
|
"*.d.ts"
|
|
@@ -34,16 +30,20 @@
|
|
|
34
30
|
"url": "https://github.com/nice-digital/nice-design-system/issues"
|
|
35
31
|
},
|
|
36
32
|
"dependencies": {
|
|
37
|
-
"@nice-digital/nds-core": "^
|
|
38
|
-
"classnames": "^2.3.1"
|
|
39
|
-
"prop-types": "^15.7.2"
|
|
33
|
+
"@nice-digital/nds-core": "^4.0.0-alpha.0",
|
|
34
|
+
"classnames": "^2.3.1"
|
|
40
35
|
},
|
|
41
36
|
"peerDependencies": {
|
|
42
37
|
"react": "^16 || ^17 || ^18",
|
|
43
38
|
"react-dom": "^16 || ^17 || ^18"
|
|
44
39
|
},
|
|
45
40
|
"devDependencies": {
|
|
46
|
-
"@
|
|
41
|
+
"@testing-library/jest-dom": "^5.16.5",
|
|
42
|
+
"@testing-library/react": "^13.4.0",
|
|
43
|
+
"@testing-library/user-event": "^14.4.3",
|
|
44
|
+
"@types/jest": "^29.2.2",
|
|
45
|
+
"@types/node": "^18.11.9",
|
|
46
|
+
"typescript": "^4.8.4"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "e225e0b15723013fb3df7309d197590a09cc2ea7"
|
|
49
49
|
}
|
package/es/Breadcrumb.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","names":["React","PropTypes","classnames","Breadcrumb","props","elementType","method","to","children","className","attributes","ElementType","innerTagProps","propTypes","string","isRequired"],"sources":["../src/Breadcrumb.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classnames from \"classnames\";\n\nexport const Breadcrumb = (props) => {\n\tconst { elementType, method, to, children, className, ...attributes } = props;\n\n\tlet ElementType = elementType || \"span\";\n\n\tconst innerTagProps = {\n\t\t...attributes\n\t};\n\n\tif (to) {\n\t\tElementType = elementType || \"a\";\n\t\tinnerTagProps[method || (ElementType === \"a\" && \"href\") || \"to\"] = to;\n\t}\n\n\treturn (\n\t\t<li className={classnames([\"breadcrumbs__crumb\", className])}>\n\t\t\t<ElementType {...innerTagProps}>{children}</ElementType>\n\t\t</li>\n\t);\n};\n\nBreadcrumb.propTypes = {\n\telementType: PropTypes.elementType, // Allow tag to be customised for custom routing integration\n\tchildren: PropTypes.string.isRequired,\n\tto: PropTypes.string,\n\tmethod: PropTypes.string,\n\tclassName: PropTypes.string\n};\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,OAAO,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAW;EACpC,IAAQC,WAAR,GAAwED,KAAxE,CAAQC,WAAR;EAAA,IAAqBC,MAArB,GAAwEF,KAAxE,CAAqBE,MAArB;EAAA,IAA6BC,EAA7B,GAAwEH,KAAxE,CAA6BG,EAA7B;EAAA,IAAiCC,QAAjC,GAAwEJ,KAAxE,CAAiCI,QAAjC;EAAA,IAA2CC,SAA3C,GAAwEL,KAAxE,CAA2CK,SAA3C;EAAA,IAAyDC,UAAzD,iCAAwEN,KAAxE;;EAEA,IAAIO,WAAW,GAAGN,WAAW,IAAI,MAAjC;;EAEA,IAAMO,aAAa,gBACfF,UADe,CAAnB;;EAIA,IAAIH,EAAJ,EAAQ;IACPI,WAAW,GAAGN,WAAW,IAAI,GAA7B;IACAO,aAAa,CAACN,MAAM,IAAKK,WAAW,KAAK,GAAhB,IAAuB,MAAlC,IAA6C,IAA9C,CAAb,GAAmEJ,EAAnE;EACA;;EAED,oBACC;IAAI,SAAS,EAAEL,UAAU,CAAC,CAAC,oBAAD,EAAuBO,SAAvB,CAAD;EAAzB,gBACC,oBAAC,WAAD,EAAiBG,aAAjB,EAAiCJ,QAAjC,CADD,CADD;AAKA,CAnBM;AAqBPL,UAAU,CAACU,SAAX,GAAuB;EACtBR,WAAW,EAAEJ,SAAS,CAACI,WADD;EACc;EACpCG,QAAQ,EAAEP,SAAS,CAACa,MAAV,CAAiBC,UAFL;EAGtBR,EAAE,EAAEN,SAAS,CAACa,MAHQ;EAItBR,MAAM,EAAEL,SAAS,CAACa,MAJI;EAKtBL,SAAS,EAAER,SAAS,CAACa;AALC,CAAvB"}
|
package/es/Breadcrumbs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","names":["React","PropTypes","Breadcrumb","stringify","data","process","env","NODE_ENV","JSON","getBreadcrumbJsonLdItem","breadcrumb","index","position","item","props","to","name","children","Breadcrumbs","rest","jsonLdData","itemListElement","length","filter","Boolean","map","__html","propTypes","oneOfType","arrayOf","objectOf","isRequired"],"sources":["../src/Breadcrumbs.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { Breadcrumb } from \"./Breadcrumb\";\nimport \"../scss/breadcrumbs.scss\";\n\nexport { Breadcrumb };\n\nconst stringify = (data) => {\n\tif (process.env.NODE_ENV === \"production\") return JSON.stringify(data);\n\treturn JSON.stringify(data, null, 2);\n};\n\nconst getBreadcrumbJsonLdItem = (breadcrumb, index = 0) => ({\n\t\"@type\": \"ListItem\",\n\tposition: index + 1,\n\titem: {\n\t\t\"@id\": breadcrumb.props.to,\n\t\tname: breadcrumb.props.children\n\t}\n});\n\nexport const Breadcrumbs = ({ children, ...rest }) => {\n\tconst jsonLdData = {\n\t\t\"@context\": \"http://schema.org\",\n\t\t\"@type\": \"BreadcrumbList\",\n\t\titemListElement: children.length\n\t\t\t? children.filter(Boolean).map(getBreadcrumbJsonLdItem)\n\t\t\t: getBreadcrumbJsonLdItem(children)\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<nav aria-label=\"Breadcrumbs\" role=\"navigation\" {...rest}>\n\t\t\t\t<ol className=\"breadcrumbs\">{children}</ol>\n\t\t\t</nav>\n\t\t\t<script\n\t\t\t\ttype=\"application/ld+json\"\n\t\t\t\tdangerouslySetInnerHTML={{ __html: stringify(jsonLdData) }}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nBreadcrumbs.propTypes = {\n\tchildren: PropTypes.oneOfType([\n\t\tPropTypes.arrayOf(Breadcrumb),\n\t\tPropTypes.objectOf(Breadcrumb)\n\t]).isRequired\n};\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAASC,UAAT,QAA2B,cAA3B;AACA,OAAO,0BAAP;AAEA,SAASA,UAAT;;AAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;EAC3B,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C,OAAOC,IAAI,CAACL,SAAL,CAAeC,IAAf,CAAP;EAC3C,OAAOI,IAAI,CAACL,SAAL,CAAeC,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAP;AACA,CAHD;;AAKA,IAAMK,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,UAAD,EAAaC,KAAb;EAAA,IAAaA,KAAb;IAAaA,KAAb,GAAqB,CAArB;EAAA;;EAAA,OAA4B;IAC3D,SAAS,UADkD;IAE3DC,QAAQ,EAAED,KAAK,GAAG,CAFyC;IAG3DE,IAAI,EAAE;MACL,OAAOH,UAAU,CAACI,KAAX,CAAiBC,EADnB;MAELC,IAAI,EAAEN,UAAU,CAACI,KAAX,CAAiBG;IAFlB;EAHqD,CAA5B;AAAA,CAAhC;;AASA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OAA2B;EAAA,IAAxBD,QAAwB,QAAxBA,QAAwB;EAAA,IAAXE,IAAW;;EACrD,IAAMC,UAAU,GAAG;IAClB,YAAY,mBADM;IAElB,SAAS,gBAFS;IAGlBC,eAAe,EAAEJ,QAAQ,CAACK,MAAT,GACdL,QAAQ,CAACM,MAAT,CAAgBC,OAAhB,EAAyBC,GAAzB,CAA6BhB,uBAA7B,CADc,GAEdA,uBAAuB,CAACQ,QAAD;EALR,CAAnB;EAQA,oBACC,uDACC;IAAK,cAAW,aAAhB;IAA8B,IAAI,EAAC;EAAnC,GAAoDE,IAApD,gBACC;IAAI,SAAS,EAAC;EAAd,GAA6BF,QAA7B,CADD,CADD,eAIC;IACC,IAAI,EAAC,qBADN;IAEC,uBAAuB,EAAE;MAAES,MAAM,EAAEvB,SAAS,CAACiB,UAAD;IAAnB;EAF1B,EAJD,CADD;AAWA,CApBM;AAsBPF,WAAW,CAACS,SAAZ,GAAwB;EACvBV,QAAQ,EAAEhB,SAAS,CAAC2B,SAAV,CAAoB,CAC7B3B,SAAS,CAAC4B,OAAV,CAAkB3B,UAAlB,CAD6B,EAE7BD,SAAS,CAAC6B,QAAV,CAAmB5B,UAAnB,CAF6B,CAApB,EAGP6B;AAJoB,CAAxB"}
|
package/lib/Breadcrumb.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.Breadcrumb = void 0;
|
|
7
|
-
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
|
|
10
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
-
|
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
|
-
var _excluded = ["elementType", "method", "to", "children", "className"];
|
|
19
|
-
|
|
20
|
-
var _jsxFileName = "C:\\dev\\nice-design-system\\components\\nds-breadcrumbs\\src\\Breadcrumb.js",
|
|
21
|
-
_this = void 0;
|
|
22
|
-
|
|
23
|
-
var Breadcrumb = function Breadcrumb(props) {
|
|
24
|
-
var elementType = props.elementType,
|
|
25
|
-
method = props.method,
|
|
26
|
-
to = props.to,
|
|
27
|
-
children = props.children,
|
|
28
|
-
className = props.className,
|
|
29
|
-
attributes = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
|
|
30
|
-
var ElementType = elementType || "span";
|
|
31
|
-
var innerTagProps = (0, _extends2["default"])({}, attributes);
|
|
32
|
-
|
|
33
|
-
if (to) {
|
|
34
|
-
ElementType = elementType || "a";
|
|
35
|
-
innerTagProps[method || ElementType === "a" && "href" || "to"] = to;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return /*#__PURE__*/_react["default"].createElement("li", {
|
|
39
|
-
className: (0, _classnames["default"])(["breadcrumbs__crumb", className]),
|
|
40
|
-
__self: _this,
|
|
41
|
-
__source: {
|
|
42
|
-
fileName: _jsxFileName,
|
|
43
|
-
lineNumber: 20,
|
|
44
|
-
columnNumber: 3
|
|
45
|
-
}
|
|
46
|
-
}, /*#__PURE__*/_react["default"].createElement(ElementType, (0, _extends2["default"])({}, innerTagProps, {
|
|
47
|
-
__self: _this,
|
|
48
|
-
__source: {
|
|
49
|
-
fileName: _jsxFileName,
|
|
50
|
-
lineNumber: 21,
|
|
51
|
-
columnNumber: 4
|
|
52
|
-
}
|
|
53
|
-
}), children));
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
exports.Breadcrumb = Breadcrumb;
|
|
57
|
-
Breadcrumb.propTypes = {
|
|
58
|
-
elementType: _propTypes["default"].elementType,
|
|
59
|
-
// Allow tag to be customised for custom routing integration
|
|
60
|
-
children: _propTypes["default"].string.isRequired,
|
|
61
|
-
to: _propTypes["default"].string,
|
|
62
|
-
method: _propTypes["default"].string,
|
|
63
|
-
className: _propTypes["default"].string
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=Breadcrumb.js.map
|
package/lib/Breadcrumb.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumb.js","names":["Breadcrumb","props","elementType","method","to","children","className","attributes","ElementType","innerTagProps","classnames","propTypes","PropTypes","string","isRequired"],"sources":["../src/Breadcrumb.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classnames from \"classnames\";\n\nexport const Breadcrumb = (props) => {\n\tconst { elementType, method, to, children, className, ...attributes } = props;\n\n\tlet ElementType = elementType || \"span\";\n\n\tconst innerTagProps = {\n\t\t...attributes\n\t};\n\n\tif (to) {\n\t\tElementType = elementType || \"a\";\n\t\tinnerTagProps[method || (ElementType === \"a\" && \"href\") || \"to\"] = to;\n\t}\n\n\treturn (\n\t\t<li className={classnames([\"breadcrumbs__crumb\", className])}>\n\t\t\t<ElementType {...innerTagProps}>{children}</ElementType>\n\t\t</li>\n\t);\n};\n\nBreadcrumb.propTypes = {\n\telementType: PropTypes.elementType, // Allow tag to be customised for custom routing integration\n\tchildren: PropTypes.string.isRequired,\n\tto: PropTypes.string,\n\tmethod: PropTypes.string,\n\tclassName: PropTypes.string\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;AAEO,IAAMA,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAW;EACpC,IAAQC,WAAR,GAAwED,KAAxE,CAAQC,WAAR;EAAA,IAAqBC,MAArB,GAAwEF,KAAxE,CAAqBE,MAArB;EAAA,IAA6BC,EAA7B,GAAwEH,KAAxE,CAA6BG,EAA7B;EAAA,IAAiCC,QAAjC,GAAwEJ,KAAxE,CAAiCI,QAAjC;EAAA,IAA2CC,SAA3C,GAAwEL,KAAxE,CAA2CK,SAA3C;EAAA,IAAyDC,UAAzD,kDAAwEN,KAAxE;EAEA,IAAIO,WAAW,GAAGN,WAAW,IAAI,MAAjC;EAEA,IAAMO,aAAa,iCACfF,UADe,CAAnB;;EAIA,IAAIH,EAAJ,EAAQ;IACPI,WAAW,GAAGN,WAAW,IAAI,GAA7B;IACAO,aAAa,CAACN,MAAM,IAAKK,WAAW,KAAK,GAAhB,IAAuB,MAAlC,IAA6C,IAA9C,CAAb,GAAmEJ,EAAnE;EACA;;EAED,oBACC;IAAI,SAAS,EAAE,IAAAM,sBAAA,EAAW,CAAC,oBAAD,EAAuBJ,SAAvB,CAAX,CAAf;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,gBACC,gCAAC,WAAD,gCAAiBG,aAAjB;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,IAAiCJ,QAAjC,CADD,CADD;AAKA,CAnBM;;;AAqBPL,UAAU,CAACW,SAAX,GAAuB;EACtBT,WAAW,EAAEU,qBAAA,CAAUV,WADD;EACc;EACpCG,QAAQ,EAAEO,qBAAA,CAAUC,MAAV,CAAiBC,UAFL;EAGtBV,EAAE,EAAEQ,qBAAA,CAAUC,MAHQ;EAItBV,MAAM,EAAES,qBAAA,CAAUC,MAJI;EAKtBP,SAAS,EAAEM,qBAAA,CAAUC;AALC,CAAvB"}
|
package/lib/Breadcrumbs.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.Breadcrumbs = void 0;
|
|
7
|
-
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
|
|
10
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
-
|
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
|
-
var _Breadcrumb = require("./Breadcrumb");
|
|
17
|
-
|
|
18
|
-
exports.Breadcrumb = _Breadcrumb.Breadcrumb;
|
|
19
|
-
|
|
20
|
-
require("../scss/breadcrumbs.scss");
|
|
21
|
-
|
|
22
|
-
var _excluded = ["children"];
|
|
23
|
-
|
|
24
|
-
var _jsxFileName = "C:\\dev\\nice-design-system\\components\\nds-breadcrumbs\\src\\Breadcrumbs.js",
|
|
25
|
-
_this = void 0;
|
|
26
|
-
|
|
27
|
-
var stringify = function stringify(data) {
|
|
28
|
-
if (process.env.NODE_ENV === "production") return JSON.stringify(data);
|
|
29
|
-
return JSON.stringify(data, null, 2);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
var getBreadcrumbJsonLdItem = function getBreadcrumbJsonLdItem(breadcrumb, index) {
|
|
33
|
-
if (index === void 0) {
|
|
34
|
-
index = 0;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
"@type": "ListItem",
|
|
39
|
-
position: index + 1,
|
|
40
|
-
item: {
|
|
41
|
-
"@id": breadcrumb.props.to,
|
|
42
|
-
name: breadcrumb.props.children
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
var Breadcrumbs = function Breadcrumbs(_ref) {
|
|
48
|
-
var children = _ref.children,
|
|
49
|
-
rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
50
|
-
var jsonLdData = {
|
|
51
|
-
"@context": "http://schema.org",
|
|
52
|
-
"@type": "BreadcrumbList",
|
|
53
|
-
itemListElement: children.length ? children.filter(Boolean).map(getBreadcrumbJsonLdItem) : getBreadcrumbJsonLdItem(children)
|
|
54
|
-
};
|
|
55
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("nav", (0, _extends2["default"])({
|
|
56
|
-
"aria-label": "Breadcrumbs",
|
|
57
|
-
role: "navigation"
|
|
58
|
-
}, rest, {
|
|
59
|
-
__self: _this,
|
|
60
|
-
__source: {
|
|
61
|
-
fileName: _jsxFileName,
|
|
62
|
-
lineNumber: 34,
|
|
63
|
-
columnNumber: 4
|
|
64
|
-
}
|
|
65
|
-
}), /*#__PURE__*/_react["default"].createElement("ol", {
|
|
66
|
-
className: "breadcrumbs",
|
|
67
|
-
__self: _this,
|
|
68
|
-
__source: {
|
|
69
|
-
fileName: _jsxFileName,
|
|
70
|
-
lineNumber: 35,
|
|
71
|
-
columnNumber: 5
|
|
72
|
-
}
|
|
73
|
-
}, children)), /*#__PURE__*/_react["default"].createElement("script", {
|
|
74
|
-
type: "application/ld+json",
|
|
75
|
-
dangerouslySetInnerHTML: {
|
|
76
|
-
__html: stringify(jsonLdData)
|
|
77
|
-
},
|
|
78
|
-
__self: _this,
|
|
79
|
-
__source: {
|
|
80
|
-
fileName: _jsxFileName,
|
|
81
|
-
lineNumber: 37,
|
|
82
|
-
columnNumber: 4
|
|
83
|
-
}
|
|
84
|
-
}));
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
exports.Breadcrumbs = Breadcrumbs;
|
|
88
|
-
Breadcrumbs.propTypes = {
|
|
89
|
-
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_Breadcrumb.Breadcrumb), _propTypes["default"].objectOf(_Breadcrumb.Breadcrumb)]).isRequired
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=Breadcrumbs.js.map
|
package/lib/Breadcrumbs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs.js","names":["stringify","data","process","env","NODE_ENV","JSON","getBreadcrumbJsonLdItem","breadcrumb","index","position","item","props","to","name","children","Breadcrumbs","rest","jsonLdData","itemListElement","length","filter","Boolean","map","__html","propTypes","PropTypes","oneOfType","arrayOf","Breadcrumb","objectOf","isRequired"],"sources":["../src/Breadcrumbs.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { Breadcrumb } from \"./Breadcrumb\";\nimport \"../scss/breadcrumbs.scss\";\n\nexport { Breadcrumb };\n\nconst stringify = (data) => {\n\tif (process.env.NODE_ENV === \"production\") return JSON.stringify(data);\n\treturn JSON.stringify(data, null, 2);\n};\n\nconst getBreadcrumbJsonLdItem = (breadcrumb, index = 0) => ({\n\t\"@type\": \"ListItem\",\n\tposition: index + 1,\n\titem: {\n\t\t\"@id\": breadcrumb.props.to,\n\t\tname: breadcrumb.props.children\n\t}\n});\n\nexport const Breadcrumbs = ({ children, ...rest }) => {\n\tconst jsonLdData = {\n\t\t\"@context\": \"http://schema.org\",\n\t\t\"@type\": \"BreadcrumbList\",\n\t\titemListElement: children.length\n\t\t\t? children.filter(Boolean).map(getBreadcrumbJsonLdItem)\n\t\t\t: getBreadcrumbJsonLdItem(children)\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<nav aria-label=\"Breadcrumbs\" role=\"navigation\" {...rest}>\n\t\t\t\t<ol className=\"breadcrumbs\">{children}</ol>\n\t\t\t</nav>\n\t\t\t<script\n\t\t\t\ttype=\"application/ld+json\"\n\t\t\t\tdangerouslySetInnerHTML={{ __html: stringify(jsonLdData) }}\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nBreadcrumbs.propTypes = {\n\tchildren: PropTypes.oneOfType([\n\t\tPropTypes.arrayOf(Breadcrumb),\n\t\tPropTypes.objectOf(Breadcrumb)\n\t]).isRequired\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;;;AACA;;;;;;;AAIA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;EAC3B,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C,OAAOC,IAAI,CAACL,SAAL,CAAeC,IAAf,CAAP;EAC3C,OAAOI,IAAI,CAACL,SAAL,CAAeC,IAAf,EAAqB,IAArB,EAA2B,CAA3B,CAAP;AACA,CAHD;;AAKA,IAAMK,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACC,UAAD,EAAaC,KAAb;EAAA,IAAaA,KAAb;IAAaA,KAAb,GAAqB,CAArB;EAAA;;EAAA,OAA4B;IAC3D,SAAS,UADkD;IAE3DC,QAAQ,EAAED,KAAK,GAAG,CAFyC;IAG3DE,IAAI,EAAE;MACL,OAAOH,UAAU,CAACI,KAAX,CAAiBC,EADnB;MAELC,IAAI,EAAEN,UAAU,CAACI,KAAX,CAAiBG;IAFlB;EAHqD,CAA5B;AAAA,CAAhC;;AASO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OAA2B;EAAA,IAAxBD,QAAwB,QAAxBA,QAAwB;EAAA,IAAXE,IAAW;EACrD,IAAMC,UAAU,GAAG;IAClB,YAAY,mBADM;IAElB,SAAS,gBAFS;IAGlBC,eAAe,EAAEJ,QAAQ,CAACK,MAAT,GACdL,QAAQ,CAACM,MAAT,CAAgBC,OAAhB,EAAyBC,GAAzB,CAA6BhB,uBAA7B,CADc,GAEdA,uBAAuB,CAACQ,QAAD;EALR,CAAnB;EAQA,oBACC,+EACC;IAAK,cAAW,aAAhB;IAA8B,IAAI,EAAC;EAAnC,GAAoDE,IAApD;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,iBACC;IAAI,SAAS,EAAC,aAAd;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,GAA6BF,QAA7B,CADD,CADD,eAIC;IACC,IAAI,EAAC,qBADN;IAEC,uBAAuB,EAAE;MAAES,MAAM,EAAEvB,SAAS,CAACiB,UAAD;IAAnB,CAF1B;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,EAJD,CADD;AAWA,CApBM;;;AAsBPF,WAAW,CAACS,SAAZ,GAAwB;EACvBV,QAAQ,EAAEW,qBAAA,CAAUC,SAAV,CAAoB,CAC7BD,qBAAA,CAAUE,OAAV,CAAkBC,sBAAlB,CAD6B,EAE7BH,qBAAA,CAAUI,QAAV,CAAmBD,sBAAnB,CAF6B,CAApB,EAGPE;AAJoB,CAAxB"}
|
package/nds-breadcrumbs.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
declare module "@nice-digital/nds-breadcrumbs" {
|
|
2
|
-
import React = require("react");
|
|
3
|
-
|
|
4
|
-
export interface BreadcrumbProps {
|
|
5
|
-
[prop: string]: unknown;
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
to?: string;
|
|
8
|
-
elementType?: React.ElementType;
|
|
9
|
-
method?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const Breadcrumb: React.FC<BreadcrumbProps>;
|
|
13
|
-
|
|
14
|
-
type ValidBreadcrumbProp =
|
|
15
|
-
| React.ReactElement<BreadcrumbProps>
|
|
16
|
-
| null
|
|
17
|
-
| undefined;
|
|
18
|
-
|
|
19
|
-
export interface BreadcrumbsProps {
|
|
20
|
-
[prop: string]: unknown;
|
|
21
|
-
className?: string;
|
|
22
|
-
children: ValidBreadcrumbProp[] | ValidBreadcrumbProp;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const Breadcrumbs: React.FC<BreadcrumbsProps>;
|
|
26
|
-
}
|