@elliemae/ds-page-number 3.0.0-next.68 → 3.0.0-next.69

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.
@@ -164,6 +164,7 @@ const pageNumberProps = {
164
164
  separator: import_react_desc.PropTypes.oneOfType([import_react_desc.PropTypes.string, import_react_desc.PropTypes.number]).description("Separator between current page and total pages").defaultValue("/")
165
165
  };
166
166
  DSPageNumber.propTypes = pageNumberProps;
167
+ DSPageNumber.displayName = "DSPageNumber";
167
168
  const PageNumberWithSchema = (0, import_react_desc.describe)(DSPageNumber);
168
169
  PageNumberWithSchema.propTypes = pageNumberProps;
169
170
  DSPageNumber.defaultProps = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/DSPageNumber.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useState, useRef, useEffect } from 'react';\nimport { describe, PropTypes } from 'react-desc';\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;\n\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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",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { useState, useRef, useEffect } from 'react';\nimport { describe, PropTypes } from 'react-desc';\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
6
  "names": []
7
7
  }
@@ -139,6 +139,7 @@ const pageNumberProps = {
139
139
  separator: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description("Separator between current page and total pages").defaultValue("/")
140
140
  };
141
141
  DSPageNumber.propTypes = pageNumberProps;
142
+ DSPageNumber.displayName = "DSPageNumber";
142
143
  const PageNumberWithSchema = describe(DSPageNumber);
143
144
  PageNumberWithSchema.propTypes = pageNumberProps;
144
145
  DSPageNumber.defaultProps = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSPageNumber.tsx"],
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 'react-desc';\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;\n\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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",
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 'react-desc';\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
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-page-number",
3
- "version": "3.0.0-next.68",
3
+ "version": "3.0.0-next.69",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Page Number",
6
6
  "files": [