@nice-digital/nds-breadcrumbs 3.0.2 → 4.0.1-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.
@@ -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
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["elementType", "method", "to", "children", "className"];
4
- import React from "react";
5
- import PropTypes from "prop-types";
6
- import classnames from "classnames";
7
- export var Breadcrumb = function Breadcrumb(props) {
8
- var elementType = props.elementType,
9
- method = props.method,
10
- to = props.to,
11
- children = props.children,
12
- className = props.className,
13
- attributes = _objectWithoutPropertiesLoose(props, _excluded);
14
-
15
- var ElementType = elementType || "span";
16
-
17
- var innerTagProps = _extends({}, attributes);
18
-
19
- if (to) {
20
- ElementType = elementType || "a";
21
- innerTagProps[method || ElementType === "a" && "href" || "to"] = to;
22
- }
23
-
24
- return /*#__PURE__*/React.createElement("li", {
25
- className: classnames(["breadcrumbs__crumb", className])
26
- }, /*#__PURE__*/React.createElement(ElementType, innerTagProps, children));
27
- };
28
- Breadcrumb.propTypes = {
29
- elementType: PropTypes.elementType,
30
- // Allow tag to be customised for custom routing integration
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
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["children"];
4
- import React from "react";
5
- import PropTypes from "prop-types";
6
- import { Breadcrumb } from "./Breadcrumb";
7
- import "../scss/breadcrumbs.scss";
8
- export { Breadcrumb };
9
-
10
- var stringify = function stringify(data) {
11
- if (process.env.NODE_ENV === "production") return JSON.stringify(data);
12
- return JSON.stringify(data, null, 2);
13
- };
14
-
15
- var getBreadcrumbJsonLdItem = function getBreadcrumbJsonLdItem(breadcrumb, index) {
16
- if (index === void 0) {
17
- index = 0;
18
- }
19
-
20
- return {
21
- "@type": "ListItem",
22
- position: index + 1,
23
- item: {
24
- "@id": breadcrumb.props.to,
25
- name: breadcrumb.props.children
26
- }
27
- };
28
- };
29
-
30
- export var Breadcrumbs = function Breadcrumbs(_ref) {
31
- var children = _ref.children,
32
- rest = _objectWithoutPropertiesLoose(_ref, _excluded);
33
-
34
- var jsonLdData = {
35
- "@context": "http://schema.org",
36
- "@type": "BreadcrumbList",
37
- itemListElement: children.length ? children.filter(Boolean).map(getBreadcrumbJsonLdItem) : getBreadcrumbJsonLdItem(children)
38
- };
39
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("nav", _extends({
40
- "aria-label": "Breadcrumbs",
41
- role: "navigation"
42
- }, rest), /*#__PURE__*/React.createElement("ol", {
43
- className: "breadcrumbs"
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.0.2",
3
+ "version": "4.0.1-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": "lib/Breadcrumbs.js",
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": "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": "^3.0.2",
38
- "classnames": "^2.3.1",
39
- "prop-types": "^15.7.2"
33
+ "@nice-digital/nds-core": "^4.0.1-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
- "@babel/cli": "^7.5.0"
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": "88329347c4985509b2347ecc27daec0a33aef607"
48
+ "gitHead": "e75957040c9acfbd7eeb164cad724e3b48760679"
49
49
  }
@@ -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"}
@@ -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
@@ -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"}
@@ -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
@@ -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"}
@@ -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
- }