@nice-digital/nds-maintain-ratio 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.
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import "../scss/maintain-ratio.scss";
3
+ export declare const ratios: {
4
+ "16:9": string;
5
+ "21:9": string;
6
+ "4:3": string;
7
+ square: string;
8
+ "1:1": string;
9
+ };
10
+ export interface MaintainRatioProps {
11
+ [prop: string]: unknown;
12
+ ratio?: keyof typeof ratios;
13
+ className?: string;
14
+ stretchFirstChild?: boolean;
15
+ children: React.ReactNode;
16
+ }
17
+ export declare const MaintainRatio: React.FC<MaintainRatioProps>;
@@ -1,46 +1,41 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["ratio", "className", "stretchFirstChild", "children"];
4
- import React from "react";
5
- import PropTypes from "prop-types";
6
- import classnames from "classnames";
7
- import "../scss/maintain-ratio.scss";
8
- export var MaintainRatio = function MaintainRatio(props) {
9
- var _classnames;
10
-
11
- var ratio = props.ratio,
12
- className = props.className,
13
- stretchFirstChild = props.stretchFirstChild,
14
- children = props.children,
15
- attributes = _objectWithoutPropertiesLoose(props, _excluded);
16
-
17
- var classNames = classnames((_classnames = {
18
- "maintain-ratio": true,
19
- "maintain-ratio--16-9": ratio === "16:9",
20
- "maintain-ratio--21-9": ratio === "21:9",
21
- "maintain-ratio--4-3": ratio === "4:3",
22
- "maintain-ratio--square": ratio === "square" || ratio === "1:1",
23
- "maintain-ratio--stretch": stretchFirstChild
24
- }, _classnames[className] = className && true, _classnames));
25
- return /*#__PURE__*/React.createElement("div", _extends({
26
- className: classNames
27
- }, attributes), children);
28
- };
29
- MaintainRatio.propTypes = {
30
- ratio: PropTypes.oneOf(["16:9", "21:9", "4:3", "square", "1:1"]),
31
- className: PropTypes.string,
32
- children: PropTypes.node.isRequired,
33
- stretchFirstChild: PropTypes.bool
34
- };
35
- MaintainRatio.defaultProps = {
36
- ratio: "16:9",
37
- stretchFirstChild: false
38
- };
39
- MaintainRatio.ratios = {
40
- "16:9": "16:9",
41
- "21:9": "21:9",
42
- "4:3": "4:3",
43
- square: "square",
44
- "1:1": "square"
45
- };
46
- //# sourceMappingURL=MaintainRatio.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.MaintainRatio = exports.ratios = void 0;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const classnames_1 = __importDefault(require("classnames"));
20
+ require("../scss/maintain-ratio.scss");
21
+ exports.ratios = {
22
+ "16:9": "16:9",
23
+ "21:9": "21:9",
24
+ "4:3": "4:3",
25
+ square: "square",
26
+ "1:1": "square"
27
+ };
28
+ const MaintainRatio = (props) => {
29
+ const { ratio = "16:9", stretchFirstChild = false, className, children } = props, attributes = __rest(props, ["ratio", "stretchFirstChild", "className", "children"]);
30
+ const classNames = (0, classnames_1.default)({
31
+ "maintain-ratio": true,
32
+ "maintain-ratio--16-9": ratio === "16:9",
33
+ "maintain-ratio--21-9": ratio === "21:9",
34
+ "maintain-ratio--4-3": ratio === "4:3",
35
+ "maintain-ratio--square": ratio === "square" || ratio === "1:1",
36
+ "maintain-ratio--stretch": stretchFirstChild,
37
+ [`${className}`]: className && true
38
+ });
39
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: classNames }, attributes, { children: children })));
40
+ };
41
+ exports.MaintainRatio = MaintainRatio;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
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 MaintainRatio_1 = require("./MaintainRatio");
6
+ describe("nds-maintain-ratio", () => {
7
+ it("should match the snapshot with no options", () => {
8
+ const wrapper = (0, react_1.render)((0, jsx_runtime_1.jsx)(MaintainRatio_1.MaintainRatio, { children: (0, jsx_runtime_1.jsx)("p", { children: "Test" }) }));
9
+ expect(wrapper).toMatchSnapshot();
10
+ });
11
+ it("should pass down classname and extra props", () => {
12
+ const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(MaintainRatio_1.MaintainRatio, Object.assign({ className: "testing", "data-test": "yes" }, { children: (0, jsx_runtime_1.jsx)("p", { children: "Test" }) })));
13
+ const ratioDiv = container.querySelector(".testing");
14
+ expect(ratioDiv).toBeInTheDocument();
15
+ expect(ratioDiv === null || ratioDiv === void 0 ? void 0 : ratioDiv.getAttribute("data-test")).toBe("yes");
16
+ });
17
+ Object.keys(MaintainRatio_1.ratios).forEach((ratio) => {
18
+ it(`should apply the class for the ratio: ${ratio}`, () => {
19
+ const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(MaintainRatio_1.MaintainRatio, Object.assign({ ratio: ratio }, { children: (0, jsx_runtime_1.jsx)("p", { children: "Test" }) })));
20
+ if (ratio === "1:1") {
21
+ expect(container.querySelector(".maintain-ratio--square")).toBeInTheDocument();
22
+ }
23
+ else {
24
+ expect(container.querySelector(`.maintain-ratio--${ratio.replace(":", "-")}`)).toBeInTheDocument();
25
+ }
26
+ });
27
+ });
28
+ });
package/package.json CHANGED
@@ -1,20 +1,17 @@
1
1
  {
2
2
  "name": "@nice-digital/nds-maintain-ratio",
3
- "version": "3.0.2-alpha.0",
3
+ "version": "4.0.0-alpha.0",
4
4
  "description": "Maintain ratio component for the NICE Design System",
5
5
  "author": "Ian Routledge <ian.routledge@nice.org.uk>",
6
6
  "homepage": "https://design-system.nice.org.uk/",
7
7
  "license": "MIT",
8
- "main": "lib/MaintainRatio.js",
9
- "module": "es/MaintainRatio.js",
8
+ "main": "es/MaintainRatio.js",
10
9
  "style": "scss/maintain-ratio.scss",
11
- "types": "nds-maintain-ratio.d.ts",
12
10
  "directories": {
13
- "lib": "lib",
11
+ "lib": "es",
14
12
  "test": "__tests__"
15
13
  },
16
14
  "files": [
17
- "lib",
18
15
  "es",
19
16
  "scss",
20
17
  "*.d.ts"
@@ -34,16 +31,20 @@
34
31
  "url": "https://github.com/nice-digital/nice-design-system/issues"
35
32
  },
36
33
  "dependencies": {
37
- "@nice-digital/nds-core": "^3.0.2-alpha.0",
38
- "classnames": "^2.3.1",
39
- "prop-types": "^15.7.2"
34
+ "@nice-digital/nds-core": "^4.0.0-alpha.0",
35
+ "classnames": "^2.3.1"
40
36
  },
41
37
  "peerDependencies": {
42
38
  "react": "^16 || ^17 || ^18",
43
39
  "react-dom": "^16 || ^17 || ^18"
44
40
  },
45
41
  "devDependencies": {
46
- "@babel/cli": "^7.5.0"
47
- },
48
- "gitHead": "01eb23ab82d96b46f389b4ed274d1c666e8c4b76"
42
+ "@testing-library/jest-dom": "^5.16.5",
43
+ "@testing-library/react": "^13.4.0",
44
+ "@testing-library/user-event": "^14.4.3",
45
+ "@types/jest": "^29.2.2",
46
+ "@types/node": "^18.11.9",
47
+ "typescript": "^4.8.4"
48
+ },
49
+ "gitHead": "e225e0b15723013fb3df7309d197590a09cc2ea7"
49
50
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaintainRatio.js","names":["React","PropTypes","classnames","MaintainRatio","props","ratio","className","stretchFirstChild","children","attributes","classNames","propTypes","oneOf","string","node","isRequired","bool","defaultProps","ratios","square"],"sources":["../src/MaintainRatio.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classnames from \"classnames\";\n\nimport \"../scss/maintain-ratio.scss\";\n\nexport const MaintainRatio = (props) => {\n\tconst { ratio, className, stretchFirstChild, children, ...attributes } =\n\t\tprops;\n\n\tconst classNames = classnames({\n\t\t\"maintain-ratio\": true,\n\t\t\"maintain-ratio--16-9\": ratio === \"16:9\",\n\t\t\"maintain-ratio--21-9\": ratio === \"21:9\",\n\t\t\"maintain-ratio--4-3\": ratio === \"4:3\",\n\t\t\"maintain-ratio--square\": ratio === \"square\" || ratio === \"1:1\",\n\t\t\"maintain-ratio--stretch\": stretchFirstChild,\n\t\t[className]: className && true\n\t});\n\n\treturn (\n\t\t<div className={classNames} {...attributes}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nMaintainRatio.propTypes = {\n\tratio: PropTypes.oneOf([\"16:9\", \"21:9\", \"4:3\", \"square\", \"1:1\"]),\n\tclassName: PropTypes.string,\n\tchildren: PropTypes.node.isRequired,\n\tstretchFirstChild: PropTypes.bool\n};\n\nMaintainRatio.defaultProps = {\n\tratio: \"16:9\",\n\tstretchFirstChild: false\n};\n\nMaintainRatio.ratios = {\n\t\"16:9\": \"16:9\",\n\t\"21:9\": \"21:9\",\n\t\"4:3\": \"4:3\",\n\tsquare: \"square\",\n\t\"1:1\": \"square\"\n};\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,OAAO,6BAAP;AAEA,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;EAAA;;EACvC,IAAQC,KAAR,GACCD,KADD,CAAQC,KAAR;EAAA,IAAeC,SAAf,GACCF,KADD,CAAeE,SAAf;EAAA,IAA0BC,iBAA1B,GACCH,KADD,CAA0BG,iBAA1B;EAAA,IAA6CC,QAA7C,GACCJ,KADD,CAA6CI,QAA7C;EAAA,IAA0DC,UAA1D,iCACCL,KADD;;EAGA,IAAMM,UAAU,GAAGR,UAAU;IAC5B,kBAAkB,IADU;IAE5B,wBAAwBG,KAAK,KAAK,MAFN;IAG5B,wBAAwBA,KAAK,KAAK,MAHN;IAI5B,uBAAuBA,KAAK,KAAK,KAJL;IAK5B,0BAA0BA,KAAK,KAAK,QAAV,IAAsBA,KAAK,KAAK,KAL9B;IAM5B,2BAA2BE;EANC,eAO3BD,SAP2B,IAOfA,SAAS,IAAI,IAPE,eAA7B;EAUA,oBACC;IAAK,SAAS,EAAEI;EAAhB,GAAgCD,UAAhC,GACED,QADF,CADD;AAKA,CAnBM;AAqBPL,aAAa,CAACQ,SAAd,GAA0B;EACzBN,KAAK,EAAEJ,SAAS,CAACW,KAAV,CAAgB,CAAC,MAAD,EAAS,MAAT,EAAiB,KAAjB,EAAwB,QAAxB,EAAkC,KAAlC,CAAhB,CADkB;EAEzBN,SAAS,EAAEL,SAAS,CAACY,MAFI;EAGzBL,QAAQ,EAAEP,SAAS,CAACa,IAAV,CAAeC,UAHA;EAIzBR,iBAAiB,EAAEN,SAAS,CAACe;AAJJ,CAA1B;AAOAb,aAAa,CAACc,YAAd,GAA6B;EAC5BZ,KAAK,EAAE,MADqB;EAE5BE,iBAAiB,EAAE;AAFS,CAA7B;AAKAJ,aAAa,CAACe,MAAd,GAAuB;EACtB,QAAQ,MADc;EAEtB,QAAQ,MAFc;EAGtB,OAAO,KAHe;EAItBC,MAAM,EAAE,QAJc;EAKtB,OAAO;AALe,CAAvB"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- exports.__esModule = true;
6
- exports.MaintainRatio = 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 _classnames2 = _interopRequireDefault(require("classnames"));
17
-
18
- require("../scss/maintain-ratio.scss");
19
-
20
- var _excluded = ["ratio", "className", "stretchFirstChild", "children"];
21
-
22
- var _jsxFileName = "C:\\dev\\nice-design-system\\components\\nds-maintain-ratio\\src\\MaintainRatio.js",
23
- _this = void 0;
24
-
25
- var MaintainRatio = function MaintainRatio(props) {
26
- var _classnames;
27
-
28
- var ratio = props.ratio,
29
- className = props.className,
30
- stretchFirstChild = props.stretchFirstChild,
31
- children = props.children,
32
- attributes = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
33
- var classNames = (0, _classnames2["default"])((_classnames = {
34
- "maintain-ratio": true,
35
- "maintain-ratio--16-9": ratio === "16:9",
36
- "maintain-ratio--21-9": ratio === "21:9",
37
- "maintain-ratio--4-3": ratio === "4:3",
38
- "maintain-ratio--square": ratio === "square" || ratio === "1:1",
39
- "maintain-ratio--stretch": stretchFirstChild
40
- }, _classnames[className] = className && true, _classnames));
41
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
42
- className: classNames
43
- }, attributes, {
44
- __self: _this,
45
- __source: {
46
- fileName: _jsxFileName,
47
- lineNumber: 22,
48
- columnNumber: 3
49
- }
50
- }), children);
51
- };
52
-
53
- exports.MaintainRatio = MaintainRatio;
54
- MaintainRatio.propTypes = {
55
- ratio: _propTypes["default"].oneOf(["16:9", "21:9", "4:3", "square", "1:1"]),
56
- className: _propTypes["default"].string,
57
- children: _propTypes["default"].node.isRequired,
58
- stretchFirstChild: _propTypes["default"].bool
59
- };
60
- MaintainRatio.defaultProps = {
61
- ratio: "16:9",
62
- stretchFirstChild: false
63
- };
64
- MaintainRatio.ratios = {
65
- "16:9": "16:9",
66
- "21:9": "21:9",
67
- "4:3": "4:3",
68
- square: "square",
69
- "1:1": "square"
70
- };
71
- //# sourceMappingURL=MaintainRatio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MaintainRatio.js","names":["MaintainRatio","props","ratio","className","stretchFirstChild","children","attributes","classNames","classnames","propTypes","PropTypes","oneOf","string","node","isRequired","bool","defaultProps","ratios","square"],"sources":["../src/MaintainRatio.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classnames from \"classnames\";\n\nimport \"../scss/maintain-ratio.scss\";\n\nexport const MaintainRatio = (props) => {\n\tconst { ratio, className, stretchFirstChild, children, ...attributes } =\n\t\tprops;\n\n\tconst classNames = classnames({\n\t\t\"maintain-ratio\": true,\n\t\t\"maintain-ratio--16-9\": ratio === \"16:9\",\n\t\t\"maintain-ratio--21-9\": ratio === \"21:9\",\n\t\t\"maintain-ratio--4-3\": ratio === \"4:3\",\n\t\t\"maintain-ratio--square\": ratio === \"square\" || ratio === \"1:1\",\n\t\t\"maintain-ratio--stretch\": stretchFirstChild,\n\t\t[className]: className && true\n\t});\n\n\treturn (\n\t\t<div className={classNames} {...attributes}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nMaintainRatio.propTypes = {\n\tratio: PropTypes.oneOf([\"16:9\", \"21:9\", \"4:3\", \"square\", \"1:1\"]),\n\tclassName: PropTypes.string,\n\tchildren: PropTypes.node.isRequired,\n\tstretchFirstChild: PropTypes.bool\n};\n\nMaintainRatio.defaultProps = {\n\tratio: \"16:9\",\n\tstretchFirstChild: false\n};\n\nMaintainRatio.ratios = {\n\t\"16:9\": \"16:9\",\n\t\"21:9\": \"21:9\",\n\t\"4:3\": \"4:3\",\n\tsquare: \"square\",\n\t\"1:1\": \"square\"\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;AAEO,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;EAAA;;EACvC,IAAQC,KAAR,GACCD,KADD,CAAQC,KAAR;EAAA,IAAeC,SAAf,GACCF,KADD,CAAeE,SAAf;EAAA,IAA0BC,iBAA1B,GACCH,KADD,CAA0BG,iBAA1B;EAAA,IAA6CC,QAA7C,GACCJ,KADD,CAA6CI,QAA7C;EAAA,IAA0DC,UAA1D,kDACCL,KADD;EAGA,IAAMM,UAAU,GAAG,IAAAC,uBAAA;IAClB,kBAAkB,IADA;IAElB,wBAAwBN,KAAK,KAAK,MAFhB;IAGlB,wBAAwBA,KAAK,KAAK,MAHhB;IAIlB,uBAAuBA,KAAK,KAAK,KAJf;IAKlB,0BAA0BA,KAAK,KAAK,QAAV,IAAsBA,KAAK,KAAK,KALxC;IAMlB,2BAA2BE;EANT,eAOjBD,SAPiB,IAOLA,SAAS,IAAI,IAPR,eAAnB;EAUA,oBACC;IAAK,SAAS,EAAEI;EAAhB,GAAgCD,UAAhC;IAAA;IAAA;MAAA;MAAA;MAAA;IAAA;EAAA,IACED,QADF,CADD;AAKA,CAnBM;;;AAqBPL,aAAa,CAACS,SAAd,GAA0B;EACzBP,KAAK,EAAEQ,qBAAA,CAAUC,KAAV,CAAgB,CAAC,MAAD,EAAS,MAAT,EAAiB,KAAjB,EAAwB,QAAxB,EAAkC,KAAlC,CAAhB,CADkB;EAEzBR,SAAS,EAAEO,qBAAA,CAAUE,MAFI;EAGzBP,QAAQ,EAAEK,qBAAA,CAAUG,IAAV,CAAeC,UAHA;EAIzBV,iBAAiB,EAAEM,qBAAA,CAAUK;AAJJ,CAA1B;AAOAf,aAAa,CAACgB,YAAd,GAA6B;EAC5Bd,KAAK,EAAE,MADqB;EAE5BE,iBAAiB,EAAE;AAFS,CAA7B;AAKAJ,aAAa,CAACiB,MAAd,GAAuB;EACtB,QAAQ,MADc;EAEtB,QAAQ,MAFc;EAGtB,OAAO,KAHe;EAItBC,MAAM,EAAE,QAJc;EAKtB,OAAO;AALe,CAAvB"}
@@ -1,13 +0,0 @@
1
- declare module "@nice-digital/nds-maintain-ratio" {
2
- import React = require("react");
3
-
4
- export interface MaintainRatioProps {
5
- [prop: string]: unknown;
6
- ratio?: "16:9" | "21:9" | "4:3" | "square" | "1:1";
7
- className?: string;
8
- stretchFirstChild?: boolean;
9
- children: React.ReactNode;
10
- }
11
-
12
- export const MaintainRatio: React.FC<MaintainRatioProps>;
13
- }