@elliemae/ds-page-number 3.5.0-rc.9 → 3.6.0-next.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.
@@ -30,7 +30,8 @@ __export(DSPageNumber_exports, {
30
30
  });
31
31
  module.exports = __toCommonJS(DSPageNumber_exports);
32
32
  var React = __toESM(require("react"));
33
- var import_react = __toESM(require("react"));
33
+ var import_jsx_runtime = require("react/jsx-runtime");
34
+ var import_react = require("react");
34
35
  var import_ds_utilities = require("@elliemae/ds-utilities");
35
36
  var import_ds_classnames = require("@elliemae/ds-classnames");
36
37
  var import_ds_icons = require("@elliemae/ds-icons");
@@ -83,46 +84,62 @@ const DSPageNumber = ({
83
84
  setPage(newValue);
84
85
  onChange(newValue);
85
86
  }
86
- return /* @__PURE__ */ import_react.default.createElement("div", {
87
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
87
88
  "data-testid": "ds-page-number",
88
89
  className: `${cssClassName}`,
89
90
  ...containerProps,
90
- ...otherProps
91
- }, /* @__PURE__ */ import_react.default.createElement(PageNumberInputContainer, null, /* @__PURE__ */ import_react.default.createElement("div", {
92
- className: `${classNameElement("pages")}`
93
- }, /* @__PURE__ */ import_react.default.createElement(import_ds_form.DSInput, {
94
- className: `${classNameElement("input")}`,
95
- "data-testid": "page-number__current-page",
96
- onChange: handleUpdateInput,
97
- style: {
98
- width: `${size}px`
99
- },
100
- value: page
101
- }), /* @__PURE__ */ import_react.default.createElement("div", {
102
- className: `${classNameElement("separator")}`
103
- }, separator), /* @__PURE__ */ import_react.default.createElement("div", {
104
- className: `${classNameElement("total")}`,
105
- "data-testid": "page-number__total-pages"
106
- }, totalPages), /* @__PURE__ */ import_react.default.createElement("div", {
107
- ref,
108
- className: `${classNameElement("ref")}`
109
- })), /* @__PURE__ */ import_react.default.createElement("div", {
110
- className: `${classNameElement("limiter")}`
111
- }), /* @__PURE__ */ import_react.default.createElement(import_ds_button.default, {
112
- "aria-label": "dropdown-indicator",
113
- buttonType: "text",
114
- className: "dropdown-indicator",
115
- "data-testid": "page-number__increase",
116
- icon: /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ChevronSmallUp, null),
117
- onClick: handleIncrease
118
- }), /* @__PURE__ */ import_react.default.createElement(import_ds_button.default, {
119
- "aria-label": "dropdown-indicator",
120
- buttonType: "text",
121
- className: "dropdown-indicator",
122
- "data-testid": "page-number__decrease",
123
- icon: /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ChevronSmallDown, null),
124
- onClick: handleDecrease
125
- })));
91
+ ...otherProps,
92
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PageNumberInputContainer, {
93
+ children: [
94
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", {
95
+ className: `${classNameElement("pages")}`,
96
+ children: [
97
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_form.DSInput, {
98
+ className: `${classNameElement("input")}`,
99
+ "data-testid": "page-number__current-page",
100
+ onChange: handleUpdateInput,
101
+ style: {
102
+ width: `${size}px`
103
+ },
104
+ value: page
105
+ }),
106
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
107
+ className: `${classNameElement("separator")}`,
108
+ children: separator
109
+ }),
110
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
111
+ className: `${classNameElement("total")}`,
112
+ "data-testid": "page-number__total-pages",
113
+ children: totalPages
114
+ }),
115
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
116
+ ref,
117
+ className: `${classNameElement("ref")}`
118
+ })
119
+ ]
120
+ }),
121
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
122
+ className: `${classNameElement("limiter")}`
123
+ }),
124
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
125
+ "aria-label": "dropdown-indicator",
126
+ buttonType: "text",
127
+ className: "dropdown-indicator",
128
+ "data-testid": "page-number__increase",
129
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallUp, {}),
130
+ onClick: handleIncrease
131
+ }),
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_button.default, {
133
+ "aria-label": "dropdown-indicator",
134
+ buttonType: "text",
135
+ className: "dropdown-indicator",
136
+ "data-testid": "page-number__decrease",
137
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_icons.ChevronSmallDown, {}),
138
+ onClick: handleDecrease
139
+ })
140
+ ]
141
+ })
142
+ });
126
143
  };
127
144
  const pageNumberProps = {
128
145
  className: import_ds_utilities.PropTypes.string.description("html class attribute"),
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/DSPageNumber.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
4
  "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useState, useRef, useEffect } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { ChevronSmallDown, ChevronSmallUp } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { DSInput, DSInputGroup } from '@elliemae/ds-form';\nimport { lengthToSize, cleanPage } from './components/utils';\n\nconst blockName = 'page-number-block';\nconst PageNumberInputContainer = aggregatedClasses(DSInputGroup)(blockName);\n\nconst DSPageNumber = ({\n className,\n disabled,\n value,\n onChange,\n containerProps,\n currentPage,\n totalPages,\n separator,\n ...otherProps\n}) => {\n const safeTotal = cleanPage(totalPages);\n const ref = useRef(null);\n const { cssClassName, classNameElement } = convertPropToCssClassName('page-number', className, {\n disabled,\n });\n const [page, setPage] = useState(cleanPage(currentPage) || 1);\n const [size, setSize] = useState(null);\n useEffect(() => {\n const { width } = ref.current.getBoundingClientRect();\n const calculatedWidth = lengthToSize(width, page);\n setSize(calculatedWidth);\n }, [page, safeTotal]);\n\n function handleUpdateInput(e) {\n const newValue = cleanPage(e.target.value);\n if (newValue > safeTotal || newValue === 0) return;\n setPage(newValue);\n onChange(newValue);\n }\n function handleIncrease() {\n const newValue = page ? parseInt(page, 10) + 1 : 1;\n if (newValue > safeTotal) return;\n setPage(newValue);\n onChange(newValue);\n }\n function handleDecrease() {\n const newValue = page ? parseInt(page, 10) - 1 : 1;\n if (newValue < 1) return;\n setPage(newValue);\n onChange(newValue);\n }\n\n return (\n <div data-testid=\"ds-page-number\" className={`${cssClassName}`} {...containerProps} {...otherProps}>\n <PageNumberInputContainer>\n <div className={`${classNameElement('pages')}`}>\n <DSInput\n className={`${classNameElement('input')}`}\n data-testid=\"page-number__current-page\"\n onChange={handleUpdateInput}\n style={{\n width: `${size}px`,\n }}\n value={page}\n />\n <div className={`${classNameElement('separator')}`}>{separator}</div>\n <div className={`${classNameElement('total')}`} data-testid=\"page-number__total-pages\">\n {totalPages}\n </div>\n <div ref={ref} className={`${classNameElement('ref')}`} />\n </div>\n <div className={`${classNameElement('limiter')}`} />\n <DSButton\n aria-label=\"dropdown-indicator\"\n buttonType=\"text\"\n className=\"dropdown-indicator\"\n data-testid=\"page-number__increase\"\n icon={<ChevronSmallUp />}\n onClick={handleIncrease}\n />\n <DSButton\n aria-label=\"dropdown-indicator\"\n buttonType=\"text\"\n className=\"dropdown-indicator\"\n data-testid=\"page-number__decrease\"\n icon={<ChevronSmallDown />}\n onClick={handleDecrease}\n />\n </PageNumberInputContainer>\n </div>\n );\n};\n\nconst pageNumberProps = {\n className: PropTypes.string.description('html class attribute'),\n containerProps: PropTypes.object.description('Set of Properties attached to the main container'),\n disabled: PropTypes.bool.description('Whether the component is disabled or not').defaultValue(false),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).description('page number value'),\n onChange: PropTypes.func.description('function executed when the page number changes'),\n currentPage: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Value of the current page'),\n totalPages: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Amount of pages').defaultValue(1),\n separator: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .description('Separator between current page and total pages')\n .defaultValue('/'),\n};\n\nDSPageNumber.propTypes = pageNumberProps;\nDSPageNumber.displayName = 'DSPageNumber';\nconst PageNumberWithSchema = describe(DSPageNumber);\nPageNumberWithSchema.propTypes = pageNumberProps;\n\nDSPageNumber.defaultProps = {\n className: '',\n disabled: false,\n onChange: () => null,\n containerProps: {},\n value: undefined,\n currentPage: undefined,\n totalPages: 1,\n separator: '/',\n};\n\nexport { DSPageNumber, PageNumberWithSchema };\nexport default DSPageNumber;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
6
- "names": ["React", "DSButton"]
5
+ "mappings": "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",
6
+ "names": ["DSButton"]
7
7
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from "react";
2
- import React2, { useState, useRef, useEffect } from "react";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState, useRef, useEffect } from "react";
3
4
  import { describe, PropTypes } from "@elliemae/ds-utilities";
4
5
  import { aggregatedClasses, convertPropToCssClassName } from "@elliemae/ds-classnames";
5
6
  import { ChevronSmallDown, ChevronSmallUp } from "@elliemae/ds-icons";
@@ -52,46 +53,62 @@ const DSPageNumber = ({
52
53
  setPage(newValue);
53
54
  onChange(newValue);
54
55
  }
55
- return /* @__PURE__ */ React2.createElement("div", {
56
+ return /* @__PURE__ */ jsx("div", {
56
57
  "data-testid": "ds-page-number",
57
58
  className: `${cssClassName}`,
58
59
  ...containerProps,
59
- ...otherProps
60
- }, /* @__PURE__ */ React2.createElement(PageNumberInputContainer, null, /* @__PURE__ */ React2.createElement("div", {
61
- className: `${classNameElement("pages")}`
62
- }, /* @__PURE__ */ React2.createElement(DSInput, {
63
- className: `${classNameElement("input")}`,
64
- "data-testid": "page-number__current-page",
65
- onChange: handleUpdateInput,
66
- style: {
67
- width: `${size}px`
68
- },
69
- value: page
70
- }), /* @__PURE__ */ React2.createElement("div", {
71
- className: `${classNameElement("separator")}`
72
- }, separator), /* @__PURE__ */ React2.createElement("div", {
73
- className: `${classNameElement("total")}`,
74
- "data-testid": "page-number__total-pages"
75
- }, totalPages), /* @__PURE__ */ React2.createElement("div", {
76
- ref,
77
- className: `${classNameElement("ref")}`
78
- })), /* @__PURE__ */ React2.createElement("div", {
79
- className: `${classNameElement("limiter")}`
80
- }), /* @__PURE__ */ React2.createElement(DSButton, {
81
- "aria-label": "dropdown-indicator",
82
- buttonType: "text",
83
- className: "dropdown-indicator",
84
- "data-testid": "page-number__increase",
85
- icon: /* @__PURE__ */ React2.createElement(ChevronSmallUp, null),
86
- onClick: handleIncrease
87
- }), /* @__PURE__ */ React2.createElement(DSButton, {
88
- "aria-label": "dropdown-indicator",
89
- buttonType: "text",
90
- className: "dropdown-indicator",
91
- "data-testid": "page-number__decrease",
92
- icon: /* @__PURE__ */ React2.createElement(ChevronSmallDown, null),
93
- onClick: handleDecrease
94
- })));
60
+ ...otherProps,
61
+ children: /* @__PURE__ */ jsxs(PageNumberInputContainer, {
62
+ children: [
63
+ /* @__PURE__ */ jsxs("div", {
64
+ className: `${classNameElement("pages")}`,
65
+ children: [
66
+ /* @__PURE__ */ jsx(DSInput, {
67
+ className: `${classNameElement("input")}`,
68
+ "data-testid": "page-number__current-page",
69
+ onChange: handleUpdateInput,
70
+ style: {
71
+ width: `${size}px`
72
+ },
73
+ value: page
74
+ }),
75
+ /* @__PURE__ */ jsx("div", {
76
+ className: `${classNameElement("separator")}`,
77
+ children: separator
78
+ }),
79
+ /* @__PURE__ */ jsx("div", {
80
+ className: `${classNameElement("total")}`,
81
+ "data-testid": "page-number__total-pages",
82
+ children: totalPages
83
+ }),
84
+ /* @__PURE__ */ jsx("div", {
85
+ ref,
86
+ className: `${classNameElement("ref")}`
87
+ })
88
+ ]
89
+ }),
90
+ /* @__PURE__ */ jsx("div", {
91
+ className: `${classNameElement("limiter")}`
92
+ }),
93
+ /* @__PURE__ */ jsx(DSButton, {
94
+ "aria-label": "dropdown-indicator",
95
+ buttonType: "text",
96
+ className: "dropdown-indicator",
97
+ "data-testid": "page-number__increase",
98
+ icon: /* @__PURE__ */ jsx(ChevronSmallUp, {}),
99
+ onClick: handleIncrease
100
+ }),
101
+ /* @__PURE__ */ jsx(DSButton, {
102
+ "aria-label": "dropdown-indicator",
103
+ buttonType: "text",
104
+ className: "dropdown-indicator",
105
+ "data-testid": "page-number__decrease",
106
+ icon: /* @__PURE__ */ jsx(ChevronSmallDown, {}),
107
+ onClick: handleDecrease
108
+ })
109
+ ]
110
+ })
111
+ });
95
112
  };
96
113
  const pageNumberProps = {
97
114
  className: PropTypes.string.description("html class attribute"),
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSPageNumber.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { useState, useRef, useEffect } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { aggregatedClasses, convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { ChevronSmallDown, ChevronSmallUp } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { DSInput, DSInputGroup } from '@elliemae/ds-form';\nimport { lengthToSize, cleanPage } from './components/utils';\n\nconst blockName = 'page-number-block';\nconst PageNumberInputContainer = aggregatedClasses(DSInputGroup)(blockName);\n\nconst DSPageNumber = ({\n className,\n disabled,\n value,\n onChange,\n containerProps,\n currentPage,\n totalPages,\n separator,\n ...otherProps\n}) => {\n const safeTotal = cleanPage(totalPages);\n const ref = useRef(null);\n const { cssClassName, classNameElement } = convertPropToCssClassName('page-number', className, {\n disabled,\n });\n const [page, setPage] = useState(cleanPage(currentPage) || 1);\n const [size, setSize] = useState(null);\n useEffect(() => {\n const { width } = ref.current.getBoundingClientRect();\n const calculatedWidth = lengthToSize(width, page);\n setSize(calculatedWidth);\n }, [page, safeTotal]);\n\n function handleUpdateInput(e) {\n const newValue = cleanPage(e.target.value);\n if (newValue > safeTotal || newValue === 0) return;\n setPage(newValue);\n onChange(newValue);\n }\n function handleIncrease() {\n const newValue = page ? parseInt(page, 10) + 1 : 1;\n if (newValue > safeTotal) return;\n setPage(newValue);\n onChange(newValue);\n }\n function handleDecrease() {\n const newValue = page ? parseInt(page, 10) - 1 : 1;\n if (newValue < 1) return;\n setPage(newValue);\n onChange(newValue);\n }\n\n return (\n <div data-testid=\"ds-page-number\" className={`${cssClassName}`} {...containerProps} {...otherProps}>\n <PageNumberInputContainer>\n <div className={`${classNameElement('pages')}`}>\n <DSInput\n className={`${classNameElement('input')}`}\n data-testid=\"page-number__current-page\"\n onChange={handleUpdateInput}\n style={{\n width: `${size}px`,\n }}\n value={page}\n />\n <div className={`${classNameElement('separator')}`}>{separator}</div>\n <div className={`${classNameElement('total')}`} data-testid=\"page-number__total-pages\">\n {totalPages}\n </div>\n <div ref={ref} className={`${classNameElement('ref')}`} />\n </div>\n <div className={`${classNameElement('limiter')}`} />\n <DSButton\n aria-label=\"dropdown-indicator\"\n buttonType=\"text\"\n className=\"dropdown-indicator\"\n data-testid=\"page-number__increase\"\n icon={<ChevronSmallUp />}\n onClick={handleIncrease}\n />\n <DSButton\n aria-label=\"dropdown-indicator\"\n buttonType=\"text\"\n className=\"dropdown-indicator\"\n data-testid=\"page-number__decrease\"\n icon={<ChevronSmallDown />}\n onClick={handleDecrease}\n />\n </PageNumberInputContainer>\n </div>\n );\n};\n\nconst pageNumberProps = {\n className: PropTypes.string.description('html class attribute'),\n containerProps: PropTypes.object.description('Set of Properties attached to the main container'),\n disabled: PropTypes.bool.description('Whether the component is disabled or not').defaultValue(false),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]).description('page number value'),\n onChange: PropTypes.func.description('function executed when the page number changes'),\n currentPage: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Value of the current page'),\n totalPages: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description('Amount of pages').defaultValue(1),\n separator: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n .description('Separator between current page and total pages')\n .defaultValue('/'),\n};\n\nDSPageNumber.propTypes = pageNumberProps;\nDSPageNumber.displayName = 'DSPageNumber';\nconst PageNumberWithSchema = describe(DSPageNumber);\nPageNumberWithSchema.propTypes = pageNumberProps;\n\nDSPageNumber.defaultProps = {\n className: '',\n disabled: false,\n onChange: () => null,\n containerProps: {},\n value: undefined,\n currentPage: undefined,\n totalPages: 1,\n separator: '/',\n};\n\nexport { DSPageNumber, PageNumberWithSchema };\nexport default DSPageNumber;\n"],
5
- "mappings": "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",
6
- "names": ["React"]
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-page-number",
3
- "version": "3.5.0-rc.9",
3
+ "version": "3.6.0-next.0",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Page Number",
6
6
  "files": [
@@ -43,11 +43,11 @@
43
43
  "indent": 4
44
44
  },
45
45
  "dependencies": {
46
- "@elliemae/ds-button": "3.5.0-rc.9",
47
- "@elliemae/ds-classnames": "3.5.0-rc.9",
48
- "@elliemae/ds-form": "3.5.0-rc.9",
49
- "@elliemae/ds-icons": "3.5.0-rc.9",
50
- "@elliemae/ds-utilities": "3.5.0-rc.9"
46
+ "@elliemae/ds-button": "3.6.0-next.0",
47
+ "@elliemae/ds-classnames": "3.6.0-next.0",
48
+ "@elliemae/ds-form": "3.6.0-next.0",
49
+ "@elliemae/ds-icons": "3.6.0-next.0",
50
+ "@elliemae/ds-utilities": "3.6.0-next.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@testing-library/jest-dom": "~5.16.4",