@nice-digital/nds-alphabet 3.0.2 → 3.0.4
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/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nice-digital/nds-alphabet",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"description": "Alphabet component for the NICE Design System",
|
|
5
5
|
"main": "es/Alphabet.js",
|
|
6
|
+
"types": "es/Alphabet.d.ts",
|
|
6
7
|
"style": "scss/alphabet.js",
|
|
7
8
|
"files": [
|
|
8
9
|
"es",
|
|
@@ -31,7 +32,7 @@
|
|
|
31
32
|
"homepage": "https://design-system.nice.org.uk/",
|
|
32
33
|
"license": "MIT",
|
|
33
34
|
"dependencies": {
|
|
34
|
-
"@nice-digital/nds-core": "^4.0.
|
|
35
|
+
"@nice-digital/nds-core": "^4.0.4"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
38
|
"@testing-library/jest-dom": "^5.16.5",
|
|
@@ -41,5 +42,5 @@
|
|
|
41
42
|
"@types/node": "^18.11.9",
|
|
42
43
|
"typescript": "^4.8.4"
|
|
43
44
|
},
|
|
44
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "c8db07e6492c3b18564bd4f46c2ab098f185109a"
|
|
45
46
|
}
|
package/es/Alphabet.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Alphabet.js","names":["React","Children","isValidElement","cloneElement","PropTypes","Alphabet","props","children","className","id","chunky","attrs","chunkyChild","child","join","map","propTypes","string","node","isRequired","bool","Letter","label","to","elementType","body","oneOfType","Link","text","destination","ElementType","method","ariaLabel","linkProps"],"sources":["../src/Alphabet.js"],"sourcesContent":["import React, { Children, isValidElement, cloneElement } from \"react\";\nimport PropTypes from \"prop-types\";\nimport \"../scss/alphabet.scss\";\n\nexport const Alphabet = (props) => {\n\tconst { children, className, id, chunky, ...attrs } = props;\n\n\tconst chunkyChild = (child) => {\n\t\treturn isValidElement(child)\n\t\t\t? cloneElement(child, { chunky: true })\n\t\t\t: child;\n\t};\n\n\treturn (\n\t\t<ol\n\t\t\tclassName={[\n\t\t\t\t`alphabet ${chunky ? \"alphabet--chunky\" : \"\"}`,\n\t\t\t\tclassName\n\t\t\t].join(\" \")}\n\t\t\tid={id || \"a-to-z\"}\n\t\t\t{...attrs}\n\t\t>\n\t\t\t{chunky\n\t\t\t\t? Children.map(children, (child) => chunkyChild(child))\n\t\t\t\t: children}\n\t\t</ol>\n\t);\n};\n\nAlphabet.propTypes = {\n\tid: PropTypes.string,\n\tchildren: PropTypes.node.isRequired,\n\tchunky: PropTypes.bool,\n\tclassName: PropTypes.string\n};\n\nexport const Letter = (props) => {\n\tconst { children, label, to, chunky, elementType, ...attrs } = props;\n\n\tlet body;\n\n\tif (!to) {\n\t\t// No link\n\t\tbody = <span aria-label={label}>{children}</span>;\n\t} else if (to[0] === \"#\") {\n\t\t// Link to an id on the same page\n\t\tbody = (\n\t\t\t<a href={to} aria-label={label}>\n\t\t\t\t{children}\n\t\t\t</a>\n\t\t);\n\t} else {\n\t\t// Link to somewhere else!\n\t\tbody = (\n\t\t\t<Link\n\t\t\t\telementType={elementType}\n\t\t\t\tariaLabel={label}\n\t\t\t\tdestination={to}\n\t\t\t\ttext={children}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<li\n\t\t\tclassName={`alphabet__letter ${chunky ? \"alphabet__letter--chunky\" : \"\"}`}\n\t\t\t{...attrs}\n\t\t>\n\t\t\t{body}\n\t\t</li>\n\t);\n};\n\nLetter.propTypes = {\n\tchildren: PropTypes.node.isRequired,\n\tchunky: PropTypes.bool,\n\tlabel: PropTypes.string,\n\tto: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n\telementType: PropTypes.elementType\n};\n\nconst Link = ({\n\ttext,\n\tdestination,\n\telementType: ElementType = \"a\",\n\tmethod,\n\tariaLabel\n}) => {\n\tlet linkProps = {\n\t\tclassName: \"alphabet__link\",\n\t\t[method || (ElementType === \"a\" && \"href\") || \"to\"]: destination\n\t};\n\n\treturn (\n\t\t<ElementType aria-label={ariaLabel} {...linkProps}>\n\t\t\t{text}\n\t\t</ElementType>\n\t);\n};\n\nLink.propTypes = {\n\ttext: PropTypes.string,\n\tdestination: PropTypes.string,\n\telementType: PropTypes.elementType,\n\tmethod: PropTypes.string,\n\tariaLabel: PropTypes.string\n};\n"],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { shallow } from "enzyme";
|
|
5
|
-
import { Alphabet, Letter } from "../Alphabet";
|
|
6
|
-
describe("Alphabet", function () {
|
|
7
|
-
var allLetters = "abcdefghijklmnopqrstuvwxyz".split("");
|
|
8
|
-
var letterElements = allLetters.map(function (letter) {
|
|
9
|
-
return /*#__PURE__*/React.createElement(Letter, {
|
|
10
|
-
key: letter,
|
|
11
|
-
to: "#" + letter,
|
|
12
|
-
label: "Letter " + letter
|
|
13
|
-
}, letter.toUpperCase());
|
|
14
|
-
});
|
|
15
|
-
it("should render without crashing", function () {
|
|
16
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, null, letterElements));
|
|
17
|
-
expect(wrapper).toHaveLength(1);
|
|
18
|
-
});
|
|
19
|
-
it("should add a class of 'alphabet' to the default variant", function () {
|
|
20
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, null, letterElements));
|
|
21
|
-
expect(wrapper.hasClass("alphabet")).toEqual(true);
|
|
22
|
-
});
|
|
23
|
-
it("should add a custom class when one is specified", function () {
|
|
24
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, {
|
|
25
|
-
className: "test-class"
|
|
26
|
-
}, letterElements));
|
|
27
|
-
expect(wrapper.hasClass("test-class")).toEqual(true);
|
|
28
|
-
});
|
|
29
|
-
it("should add a class of 'alphabet--chunky' to the chunky variant", function () {
|
|
30
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, {
|
|
31
|
-
chunky: true
|
|
32
|
-
}, letterElements));
|
|
33
|
-
expect(wrapper.hasClass("alphabet--chunky")).toEqual(true);
|
|
34
|
-
});
|
|
35
|
-
it("should render a child component for each letter of the alphabet", function () {
|
|
36
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, null, letterElements));
|
|
37
|
-
expect(wrapper.children()).toHaveLength(allLetters.length);
|
|
38
|
-
});
|
|
39
|
-
it("should render chunky child components when the chunky variant is specified on the parent", function () {
|
|
40
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, {
|
|
41
|
-
chunky: true
|
|
42
|
-
}, letterElements));
|
|
43
|
-
expect(wrapper.childAt(0).render() // Used here due to this issue: https://github.com/enzymejs/enzyme/issues/1177#issuecomment-332717606
|
|
44
|
-
.hasClass("alphabet__letter alphabet__letter--chunky")).toEqual(true);
|
|
45
|
-
});
|
|
46
|
-
it("should append className prop to rendered class attribute", function () {
|
|
47
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, {
|
|
48
|
-
className: "test"
|
|
49
|
-
}, letterElements));
|
|
50
|
-
expect(wrapper.hasClass("test")).toEqual(true);
|
|
51
|
-
});
|
|
52
|
-
it("should render additional props as attributes", function () {
|
|
53
|
-
var wrapper = shallow( /*#__PURE__*/React.createElement(Alphabet, {
|
|
54
|
-
"aria-label": "hello"
|
|
55
|
-
}, letterElements));
|
|
56
|
-
expect(wrapper.prop("aria-label")).toEqual("hello");
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=nds-alphabet.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nds-alphabet.test.js","names":["React","shallow","Alphabet","Letter","describe","allLetters","split","letterElements","map","letter","toUpperCase","it","wrapper","expect","toHaveLength","hasClass","toEqual","children","length","childAt","render","prop"],"sources":["../../src/__tests__/nds-alphabet.test.js"],"sourcesContent":["\"use strict\";\n\nimport React from \"react\";\nimport { shallow } from \"enzyme\";\nimport { Alphabet, Letter } from \"../Alphabet\";\n\ndescribe(\"Alphabet\", () => {\n\tconst allLetters = \"abcdefghijklmnopqrstuvwxyz\".split(\"\");\n\tconst letterElements = allLetters.map((letter) => (\n\t\t<Letter key={letter} to={`#${letter}`} label={`Letter ${letter}`}>\n\t\t\t{letter.toUpperCase()}\n\t\t</Letter>\n\t));\n\n\tit(\"should render without crashing\", () => {\n\t\tconst wrapper = shallow(<Alphabet>{letterElements}</Alphabet>);\n\t\texpect(wrapper).toHaveLength(1);\n\t});\n\n\tit(\"should add a class of 'alphabet' to the default variant\", () => {\n\t\tconst wrapper = shallow(<Alphabet>{letterElements}</Alphabet>);\n\t\texpect(wrapper.hasClass(\"alphabet\")).toEqual(true);\n\t});\n\n\tit(\"should add a custom class when one is specified\", () => {\n\t\tconst wrapper = shallow(\n\t\t\t<Alphabet className=\"test-class\">{letterElements}</Alphabet>\n\t\t);\n\t\texpect(wrapper.hasClass(\"test-class\")).toEqual(true);\n\t});\n\n\tit(\"should add a class of 'alphabet--chunky' to the chunky variant\", () => {\n\t\tconst wrapper = shallow(<Alphabet chunky>{letterElements}</Alphabet>);\n\t\texpect(wrapper.hasClass(\"alphabet--chunky\")).toEqual(true);\n\t});\n\n\tit(\"should render a child component for each letter of the alphabet\", () => {\n\t\tconst wrapper = shallow(<Alphabet>{letterElements}</Alphabet>);\n\t\texpect(wrapper.children()).toHaveLength(allLetters.length);\n\t});\n\n\tit(\"should render chunky child components when the chunky variant is specified on the parent\", () => {\n\t\tconst wrapper = shallow(<Alphabet chunky>{letterElements}</Alphabet>);\n\t\texpect(\n\t\t\twrapper\n\t\t\t\t.childAt(0)\n\t\t\t\t.render() // Used here due to this issue: https://github.com/enzymejs/enzyme/issues/1177#issuecomment-332717606\n\t\t\t\t.hasClass(\"alphabet__letter alphabet__letter--chunky\")\n\t\t).toEqual(true);\n\t});\n\n\tit(\"should append className prop to rendered class attribute\", () => {\n\t\tconst wrapper = shallow(\n\t\t\t<Alphabet className=\"test\">{letterElements}</Alphabet>\n\t\t);\n\t\texpect(wrapper.hasClass(\"test\")).toEqual(true);\n\t});\n\n\tit(\"should render additional props as attributes\", () => {\n\t\tconst wrapper = shallow(\n\t\t\t<Alphabet aria-label=\"hello\">{letterElements}</Alphabet>\n\t\t);\n\t\texpect(wrapper.prop(\"aria-label\")).toEqual(\"hello\");\n\t});\n});\n"],"mappings":"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"}
|