@elliemae/ds-pagination 3.15.0 → 3.16.0-next.10

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.
Files changed (134) hide show
  1. package/dist/cjs/DSPaginationDefinitions.js +13 -1
  2. package/dist/cjs/DSPaginationDefinitions.js.map +2 -2
  3. package/dist/cjs/Pagination.js +7 -7
  4. package/dist/cjs/Pagination.js.map +2 -2
  5. package/dist/cjs/PaginationDataTestID.js +3 -1
  6. package/dist/cjs/PaginationDataTestID.js.map +2 -2
  7. package/dist/cjs/index.js +32 -2
  8. package/dist/cjs/index.js.map +3 -3
  9. package/dist/cjs/package.json +7 -0
  10. package/dist/cjs/parts/DSPageNextButton.js +70 -0
  11. package/dist/cjs/parts/DSPageNextButton.js.map +7 -0
  12. package/dist/cjs/parts/DSPagePrevButton.js +70 -0
  13. package/dist/cjs/parts/DSPagePrevButton.js.map +7 -0
  14. package/dist/cjs/parts/DSPaginationContainer.js +57 -0
  15. package/dist/cjs/parts/DSPaginationContainer.js.map +7 -0
  16. package/dist/cjs/parts/{PageNextButton.js → DSPaginator/createPaginatorHeader.js} +19 -25
  17. package/dist/cjs/parts/DSPaginator/createPaginatorHeader.js.map +7 -0
  18. package/dist/cjs/parts/DSPaginator/getOptions.js +72 -0
  19. package/dist/cjs/parts/DSPaginator/getOptions.js.map +7 -0
  20. package/dist/cjs/parts/DSPaginator/index.js +144 -0
  21. package/dist/cjs/parts/DSPaginator/index.js.map +7 -0
  22. package/dist/cjs/{hooks → parts/DSPaginator}/usePaginationSearch.js +5 -2
  23. package/dist/cjs/parts/DSPaginator/usePaginationSearch.js.map +7 -0
  24. package/dist/cjs/parts/DSPaginator/usePaginator.js +87 -0
  25. package/dist/cjs/parts/DSPaginator/usePaginator.js.map +7 -0
  26. package/dist/cjs/parts/{PagePrevButton.js → DSPerPageSelector/getOptions.js} +21 -22
  27. package/dist/cjs/parts/DSPerPageSelector/getOptions.js.map +7 -0
  28. package/dist/cjs/parts/{PerPageSelector.js → DSPerPageSelector/index.js} +37 -49
  29. package/dist/cjs/parts/DSPerPageSelector/index.js.map +7 -0
  30. package/dist/cjs/parts/DSPerPageSelector/usePerPageSelector.js +68 -0
  31. package/dist/cjs/parts/DSPerPageSelector/usePerPageSelector.js.map +7 -0
  32. package/dist/cjs/parts/PaginationContent.js +37 -52
  33. package/dist/cjs/parts/PaginationContent.js.map +3 -3
  34. package/dist/cjs/parts/index.js +45 -0
  35. package/dist/cjs/parts/index.js.map +7 -0
  36. package/dist/cjs/props.js +81 -0
  37. package/dist/cjs/props.js.map +7 -0
  38. package/dist/cjs/react-desc-prop-types.js +107 -33
  39. package/dist/cjs/react-desc-prop-types.js.map +2 -2
  40. package/dist/cjs/styled.js +17 -27
  41. package/dist/cjs/styled.js.map +2 -2
  42. package/dist/esm/DSPaginationDefinitions.js +13 -1
  43. package/dist/esm/DSPaginationDefinitions.js.map +2 -2
  44. package/dist/esm/Pagination.js +4 -4
  45. package/dist/esm/Pagination.js.map +1 -1
  46. package/dist/esm/PaginationDataTestID.js +3 -1
  47. package/dist/esm/PaginationDataTestID.js.map +2 -2
  48. package/dist/esm/index.js +39 -1
  49. package/dist/esm/index.js.map +3 -3
  50. package/dist/esm/package.json +7 -0
  51. package/dist/esm/parts/DSPageNextButton.js +50 -0
  52. package/dist/esm/parts/DSPageNextButton.js.map +7 -0
  53. package/dist/esm/parts/DSPagePrevButton.js +50 -0
  54. package/dist/esm/parts/DSPagePrevButton.js.map +7 -0
  55. package/dist/esm/parts/DSPaginationContainer.js +31 -0
  56. package/dist/esm/parts/DSPaginationContainer.js.map +7 -0
  57. package/dist/esm/parts/DSPaginator/createPaginatorHeader.js +20 -0
  58. package/dist/esm/parts/DSPaginator/createPaginatorHeader.js.map +7 -0
  59. package/dist/esm/parts/DSPaginator/getOptions.js +46 -0
  60. package/dist/esm/parts/DSPaginator/getOptions.js.map +7 -0
  61. package/dist/esm/parts/DSPaginator/index.js +118 -0
  62. package/dist/esm/parts/DSPaginator/index.js.map +7 -0
  63. package/dist/esm/{hooks → parts/DSPaginator}/usePaginationSearch.js +5 -2
  64. package/dist/esm/parts/DSPaginator/usePaginationSearch.js.map +7 -0
  65. package/dist/esm/parts/DSPaginator/usePaginator.js +61 -0
  66. package/dist/esm/parts/DSPaginator/usePaginator.js.map +7 -0
  67. package/dist/esm/parts/DSPerPageSelector/getOptions.js +22 -0
  68. package/dist/esm/parts/DSPerPageSelector/getOptions.js.map +7 -0
  69. package/dist/esm/parts/DSPerPageSelector/index.js +76 -0
  70. package/dist/esm/parts/DSPerPageSelector/index.js.map +7 -0
  71. package/dist/esm/parts/DSPerPageSelector/usePerPageSelector.js +42 -0
  72. package/dist/esm/parts/DSPerPageSelector/usePerPageSelector.js.map +7 -0
  73. package/dist/esm/parts/PaginationContent.js +37 -52
  74. package/dist/esm/parts/PaginationContent.js.map +2 -2
  75. package/dist/esm/parts/index.js +19 -0
  76. package/dist/esm/parts/index.js.map +7 -0
  77. package/dist/esm/props.js +55 -0
  78. package/dist/esm/props.js.map +7 -0
  79. package/dist/esm/react-desc-prop-types.js +88 -14
  80. package/dist/esm/react-desc-prop-types.js.map +2 -2
  81. package/dist/esm/styled.js +15 -25
  82. package/dist/esm/styled.js.map +2 -2
  83. package/dist/types/DSPaginationDefinitions.d.ts +6 -0
  84. package/dist/types/Pagination.d.ts +2 -2
  85. package/dist/types/PaginationDataTestID.d.ts +2 -0
  86. package/dist/types/index.d.ts +17 -1
  87. package/dist/types/parts/DSPageNextButton.d.ts +4 -0
  88. package/dist/types/parts/DSPagePrevButton.d.ts +4 -0
  89. package/dist/types/parts/DSPaginationContainer.d.ts +4 -0
  90. package/dist/types/parts/DSPaginator/createPaginatorHeader.d.ts +6 -0
  91. package/dist/types/parts/DSPaginator/getOptions.d.ts +7 -0
  92. package/dist/types/parts/DSPaginator/index.d.ts +4 -0
  93. package/dist/types/parts/DSPaginator/usePaginationSearch.d.ts +2 -0
  94. package/dist/types/parts/DSPaginator/usePaginator.d.ts +17 -0
  95. package/dist/types/parts/DSPerPageSelector/getOptions.d.ts +3 -0
  96. package/dist/types/parts/DSPerPageSelector/index.d.ts +4 -0
  97. package/dist/types/parts/DSPerPageSelector/usePerPageSelector.d.ts +13 -0
  98. package/dist/types/parts/PaginationContent.d.ts +1 -1
  99. package/dist/types/parts/index.d.ts +5 -0
  100. package/dist/types/props.d.ts +20 -0
  101. package/dist/types/react-desc-prop-types.d.ts +528 -9
  102. package/dist/types/styled.d.ts +7 -9
  103. package/dist/types/tests/a11y/axe.test.d.ts +1 -0
  104. package/dist/types/tests/callbacks/paginator.test.d.ts +1 -0
  105. package/dist/types/tests/callbacks/per-page-selector.test.d.ts +1 -0
  106. package/dist/types/tests/callbacks/prev-next-buttons.test.d.ts +1 -0
  107. package/dist/types/tests/keyboard/navigation.test.d.ts +1 -0
  108. package/dist/types/tests/keyboard/paginator-search.test.d.ts +1 -0
  109. package/dist/types/tests/render/page-count-loading.test.d.ts +1 -0
  110. package/dist/types/tests/render/paginator.test.d.ts +1 -0
  111. package/dist/types/tests/render/per-page-selector.test.d.ts +1 -0
  112. package/dist/types/tests/render/segmented-paginator.test.d.ts +1 -0
  113. package/dist/types/tests/render/simple.render.test.d.ts +1 -0
  114. package/package.json +17 -11
  115. package/dist/cjs/hooks/usePaginationSearch.js.map +0 -7
  116. package/dist/cjs/parts/PageNextButton.js.map +0 -7
  117. package/dist/cjs/parts/PagePrevButton.js.map +0 -7
  118. package/dist/cjs/parts/Paginator.js +0 -162
  119. package/dist/cjs/parts/Paginator.js.map +0 -7
  120. package/dist/cjs/parts/PerPageSelector.js.map +0 -7
  121. package/dist/esm/hooks/usePaginationSearch.js.map +0 -7
  122. package/dist/esm/parts/PageNextButton.js +0 -26
  123. package/dist/esm/parts/PageNextButton.js.map +0 -7
  124. package/dist/esm/parts/PagePrevButton.js +0 -23
  125. package/dist/esm/parts/PagePrevButton.js.map +0 -7
  126. package/dist/esm/parts/Paginator.js +0 -136
  127. package/dist/esm/parts/Paginator.js.map +0 -7
  128. package/dist/esm/parts/PerPageSelector.js +0 -88
  129. package/dist/esm/parts/PerPageSelector.js.map +0 -7
  130. package/dist/types/hooks/usePaginationSearch.d.ts +0 -1
  131. package/dist/types/parts/PageNextButton.d.ts +0 -3
  132. package/dist/types/parts/PagePrevButton.d.ts +0 -3
  133. package/dist/types/parts/Paginator.d.ts +0 -11
  134. package/dist/types/parts/PerPageSelector.d.ts +0 -4
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPaginator/usePaginationSearch.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useCallback, useEffect, useRef, useState } from 'react';\n\nexport const usePaginationSearch = (\n pageCount: string | number,\n actionRef: React.MutableRefObject<Record<string, (dsId: string) => void>>,\n): React.KeyboardEventHandler => {\n const [searchValue, setSearchValue] = useState('');\n const [shouldResetSearchValue, setShouldResetSearchValue] = useState(true);\n\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n if (typeof pageCount === 'string') return;\n\n if (searchValue !== '' && Number.parseInt(searchValue, 10) <= pageCount) {\n actionRef.current.setActiveDescendant(searchValue);\n actionRef.current.scrollOptionIntoView(searchValue);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchValue]);\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.code.startsWith('Digit')) {\n if (shouldResetSearchValue) setSearchValue(e.key);\n else setSearchValue((prevValue) => prevValue + e.key);\n\n setShouldResetSearchValue(false);\n if (timeoutRef.current) clearTimeout(timeoutRef.current);\n timeoutRef.current = setTimeout(() => {\n setShouldResetSearchValue(true);\n }, 1000);\n }\n },\n [shouldResetSearchValue],\n );\n\n return onKeyDown;\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AAElD,MAAM,sBAAsB,CACjC,WACA,cAC+B;AAC/B,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,EAAE;AACjD,QAAM,CAAC,wBAAwB,yBAAyB,IAAI,SAAS,IAAI;AAEzE,QAAM,aAAa,OAAuB;AAE1C,YAAU,MAAM;AACd,QAAI,OAAO,cAAc;AAAU;AAEnC,QAAI,gBAAgB,MAAM,OAAO,SAAS,aAAa,EAAE,KAAK,WAAW;AACvE,gBAAU,QAAQ,oBAAoB,WAAW;AACjD,gBAAU,QAAQ,qBAAqB,WAAW;AAAA,IACpD;AAAA,EAEF,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,YAAY;AAAA,IAChB,CAAC,MAA2B;AAC1B,UAAI,EAAE,KAAK,WAAW,OAAO,GAAG;AAC9B,YAAI;AAAwB,yBAAe,EAAE,GAAG;AAAA;AAC3C,yBAAe,CAAC,cAAc,YAAY,EAAE,GAAG;AAEpD,kCAA0B,KAAK;AAC/B,YAAI,WAAW;AAAS,uBAAa,WAAW,OAAO;AACvD,mBAAW,UAAU,WAAW,MAAM;AACpC,oCAA0B,IAAI;AAAA,QAChC,GAAG,GAAI;AAAA,MACT;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AAEA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,61 @@
1
+ import * as React from "react";
2
+ import { useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
3
+ import { omit } from "lodash";
4
+ import { useGetGlobalAttributes, useGetXstyledProps } from "@elliemae/ds-props-helpers";
5
+ import { useOnElementResize } from "@elliemae/ds-utilities";
6
+ import { usePaginationSearch } from "./usePaginationSearch.js";
7
+ import { getOptions } from "./getOptions.js";
8
+ const usePaginator = (props) => {
9
+ const { pageIndex, pageCount, pageDetails } = props;
10
+ const [isOpened, setIsOpened] = useState(false);
11
+ const [detailWidth, setDetailWidth] = useState(0);
12
+ const [pageInfoWidth, setPageInfoWidth] = useState(0);
13
+ const btnRef = useRef(null);
14
+ const actionRef = useRef({});
15
+ const { width: btnWidth } = useOnElementResize(btnRef);
16
+ const options = useMemo(
17
+ () => getOptions({ pageCount, pageIndex, pageDetails, pageInfoWidth }),
18
+ [pageCount, pageIndex, pageDetails, pageInfoWidth]
19
+ );
20
+ const onKeyDown = usePaginationSearch(pageCount, actionRef);
21
+ const globalAttributes = omit(useGetGlobalAttributes(props), ["shape", "type", "size"]);
22
+ const xstyledAttributes = useGetXstyledProps(props);
23
+ useEffect(() => {
24
+ if (isOpened) {
25
+ actionRef.current.setActiveDescendant(pageIndex.toString());
26
+ actionRef.current.scrollOptionIntoView(pageIndex.toString());
27
+ }
28
+ }, [isOpened]);
29
+ useLayoutEffect(() => {
30
+ const invisibleDetails = [
31
+ ...document.body.querySelectorAll('[data-testid="ds-pagination-invisible-detail-for-width-calc"]')
32
+ ];
33
+ const maxWidth = invisibleDetails.reduce((acc, cur) => Math.max(acc, cur.getBoundingClientRect().width), 0);
34
+ setDetailWidth(maxWidth);
35
+ }, [pageDetails]);
36
+ useEffect(() => {
37
+ setPageInfoWidth(() => {
38
+ if (detailWidth)
39
+ return btnWidth - detailWidth - 89;
40
+ return btnWidth - 56;
41
+ });
42
+ }, [btnWidth, detailWidth]);
43
+ return {
44
+ btnRef,
45
+ btnWidth,
46
+ pageInfoWidth,
47
+ options,
48
+ isOpened,
49
+ setIsOpened,
50
+ detailWidth,
51
+ setDetailWidth,
52
+ globalAttributes,
53
+ xstyledAttributes,
54
+ actionRef,
55
+ onKeyDown
56
+ };
57
+ };
58
+ export {
59
+ usePaginator
60
+ };
61
+ //# sourceMappingURL=usePaginator.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPaginator/usePaginator.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { omit } from 'lodash';\nimport { useGetGlobalAttributes, useGetXstyledProps } from '@elliemae/ds-props-helpers';\nimport { useOnElementResize } from '@elliemae/ds-utilities';\nimport { usePaginationSearch } from './usePaginationSearch.js';\nimport { getOptions } from './getOptions.js';\nimport type { DSPaginationT } from '../../react-desc-prop-types.js';\n\nexport const usePaginator = (props: DSPaginationT.PaginatorInternalProps) => {\n const { pageIndex, pageCount, pageDetails } = props;\n\n const [isOpened, setIsOpened] = useState(false);\n const [detailWidth, setDetailWidth] = useState(0);\n const [pageInfoWidth, setPageInfoWidth] = useState(0);\n\n const btnRef = useRef<HTMLButtonElement>(null);\n const actionRef = useRef<Record<string, (dsId: string) => void>>({});\n\n const { width: btnWidth } = useOnElementResize(btnRef);\n\n const options = useMemo(\n () => getOptions({ pageCount, pageIndex, pageDetails, pageInfoWidth }),\n [pageCount, pageIndex, pageDetails, pageInfoWidth],\n );\n\n const onKeyDown = usePaginationSearch(pageCount, actionRef);\n\n const globalAttributes = omit(useGetGlobalAttributes(props), ['shape', 'type', 'size']);\n const xstyledAttributes = useGetXstyledProps(props);\n\n useEffect(() => {\n if (isOpened) {\n actionRef.current.setActiveDescendant(pageIndex.toString());\n actionRef.current.scrollOptionIntoView(pageIndex.toString());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpened]);\n\n useLayoutEffect(() => {\n const invisibleDetails = [\n ...document.body.querySelectorAll('[data-testid=\"ds-pagination-invisible-detail-for-width-calc\"]'),\n ] as HTMLDivElement[];\n const maxWidth = invisibleDetails.reduce((acc, cur) => Math.max(acc, cur.getBoundingClientRect().width), 0);\n setDetailWidth(maxWidth);\n }, [pageDetails]);\n\n useEffect(() => {\n setPageInfoWidth(() => {\n // Here we get the size of the page info\n // Inside of the button, we have the page info, the chevron, separators, page details and padding\n // We substract the detailWidth if present, and the padding + chevron + separators in each case\n if (detailWidth) return btnWidth - detailWidth - 89;\n return btnWidth - 56;\n });\n }, [btnWidth, detailWidth]);\n\n return {\n btnRef,\n btnWidth,\n pageInfoWidth,\n options,\n isOpened,\n setIsOpened,\n detailWidth,\n setDetailWidth,\n globalAttributes,\n xstyledAttributes,\n actionRef,\n onKeyDown,\n };\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,iBAAiB,SAAS,QAAQ,gBAAgB;AACtE,SAAS,YAAY;AACrB,SAAS,wBAAwB,0BAA0B;AAC3D,SAAS,0BAA0B;AACnC,SAAS,2BAA2B;AACpC,SAAS,kBAAkB;AAGpB,MAAM,eAAe,CAAC,UAAgD;AAC3E,QAAM,EAAE,WAAW,WAAW,YAAY,IAAI;AAE9C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,CAAC;AAChD,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC;AAEpD,QAAM,SAAS,OAA0B,IAAI;AAC7C,QAAM,YAAY,OAA+C,CAAC,CAAC;AAEnE,QAAM,EAAE,OAAO,SAAS,IAAI,mBAAmB,MAAM;AAErD,QAAM,UAAU;AAAA,IACd,MAAM,WAAW,EAAE,WAAW,WAAW,aAAa,cAAc,CAAC;AAAA,IACrE,CAAC,WAAW,WAAW,aAAa,aAAa;AAAA,EACnD;AAEA,QAAM,YAAY,oBAAoB,WAAW,SAAS;AAE1D,QAAM,mBAAmB,KAAK,uBAAuB,KAAK,GAAG,CAAC,SAAS,QAAQ,MAAM,CAAC;AACtF,QAAM,oBAAoB,mBAAmB,KAAK;AAElD,YAAU,MAAM;AACd,QAAI,UAAU;AACZ,gBAAU,QAAQ,oBAAoB,UAAU,SAAS,CAAC;AAC1D,gBAAU,QAAQ,qBAAqB,UAAU,SAAS,CAAC;AAAA,IAC7D;AAAA,EAEF,GAAG,CAAC,QAAQ,CAAC;AAEb,kBAAgB,MAAM;AACpB,UAAM,mBAAmB;AAAA,MACvB,GAAG,SAAS,KAAK,iBAAiB,+DAA+D;AAAA,IACnG;AACA,UAAM,WAAW,iBAAiB,OAAO,CAAC,KAAK,QAAQ,KAAK,IAAI,KAAK,IAAI,sBAAsB,EAAE,KAAK,GAAG,CAAC;AAC1G,mBAAe,QAAQ;AAAA,EACzB,GAAG,CAAC,WAAW,CAAC;AAEhB,YAAU,MAAM;AACd,qBAAiB,MAAM;AAIrB,UAAI;AAAa,eAAO,WAAW,cAAc;AACjD,aAAO,WAAW;AAAA,IACpB,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,WAAW,CAAC;AAE1B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ import * as React from "react";
2
+ import { range } from "@elliemae/ds-utilities";
3
+ const generateOption = (value) => {
4
+ if (typeof value === "object") {
5
+ return value;
6
+ }
7
+ return {
8
+ dsId: value.toString(),
9
+ value,
10
+ label: value.toString(),
11
+ type: "single"
12
+ };
13
+ };
14
+ const getOptions = (step, min, max) => {
15
+ const options = range(min, max + step, step).map(generateOption);
16
+ return min === 0 ? options.slice(1, options.length) : options;
17
+ };
18
+ export {
19
+ generateOption,
20
+ getOptions
21
+ };
22
+ //# sourceMappingURL=getOptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPerPageSelector/getOptions.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { range } from '@elliemae/ds-utilities';\nimport type { DSDropdownMenuT } from '@elliemae/ds-dropdownmenu';\n\nexport const generateOption = (\n value: number | DSDropdownMenuT.ItemSingleOptions,\n): DSDropdownMenuT.ItemSingleOptions => {\n if (typeof value === 'object') {\n return value;\n }\n return {\n dsId: value.toString(),\n value,\n label: value.toString(),\n type: 'single',\n } as const;\n};\n\nexport const getOptions = (step: number, min: number, max: number) => {\n const options = range(min, max + step, step).map(generateOption);\n return min === 0 ? options.slice(1, options.length) : options;\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,aAAa;AAGf,MAAM,iBAAiB,CAC5B,UACsC;AACtC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,MAAM,MAAM,SAAS;AAAA,IACrB;AAAA,IACA,OAAO,MAAM,SAAS;AAAA,IACtB,MAAM;AAAA,EACR;AACF;AAEO,MAAM,aAAa,CAAC,MAAc,KAAa,QAAgB;AACpE,QAAM,UAAU,MAAM,KAAK,MAAM,MAAM,IAAI,EAAE,IAAI,cAAc;AAC/D,SAAO,QAAQ,IAAI,QAAQ,MAAM,GAAG,QAAQ,MAAM,IAAI;AACxD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,76 @@
1
+ import * as React from "react";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useMemo } from "react";
4
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from "@elliemae/ds-props-helpers";
5
+ import { DSDropdownMenuV2 } from "@elliemae/ds-dropdownmenu";
6
+ import { ChevronDown } from "@elliemae/ds-icons";
7
+ import { perPageSelectorDefaultProps, DSPerPageSelectorPropTypesSchema } from "../../react-desc-prop-types.js";
8
+ import { PaginationDropdownButton } from "../../styled.js";
9
+ import { PerPageSelectorName } from "../../DSPaginationDefinitions.js";
10
+ import { usePerPageSelector } from "./usePerPageSelector.js";
11
+ import { PAGINATION_DATA_TESTID } from "../../PaginationDataTestID.js";
12
+ const Header = () => /* @__PURE__ */ jsx(Fragment, { children: "Per Page" });
13
+ const DSPerPageSelector = (props) => {
14
+ const propsWithDefault = useMemoMergePropsWithDefault(
15
+ props,
16
+ perPageSelectorDefaultProps
17
+ );
18
+ useValidateTypescriptPropTypes(propsWithDefault, DSPerPageSelectorPropTypesSchema, PerPageSelectorName);
19
+ const { pageSize, onPageSizeChange } = propsWithDefault;
20
+ const { actionRef, btnRef, width, isOpened, setIsOpened, options, globalAttributes, xstyledAttributes } = usePerPageSelector(propsWithDefault);
21
+ const buttonOnClick = useMemo(() => {
22
+ if (globalAttributes.onClick)
23
+ return globalAttributes.onClick;
24
+ return () => setIsOpened((prev) => !prev);
25
+ }, [globalAttributes.onClick, setIsOpened]);
26
+ return /* @__PURE__ */ jsx(
27
+ DSDropdownMenuV2,
28
+ {
29
+ isOpened,
30
+ options,
31
+ selectedOptions: { [pageSize.toString()]: true },
32
+ onOptionClick: (_, clickedOption) => {
33
+ onPageSizeChange(clickedOption.value);
34
+ setIsOpened(false);
35
+ btnRef.current?.focus();
36
+ },
37
+ onClickOutside: () => {
38
+ setIsOpened(false);
39
+ btnRef.current?.focus();
40
+ },
41
+ customOffset: [-23, 2],
42
+ startPlacementPreference: "top-start",
43
+ actionRef,
44
+ minWidth: width,
45
+ maxHeight: 300,
46
+ HeaderComp: Header,
47
+ children: /* @__PURE__ */ jsxs(
48
+ PaginationDropdownButton,
49
+ {
50
+ buttonType: "raw",
51
+ innerRef: btnRef,
52
+ "aria-pressed": isOpened,
53
+ "aria-label": `${pageSize} rows per page. Press to select rows per page`,
54
+ "data-testid": PAGINATION_DATA_TESTID.PER_PAGE_SELECTOR,
55
+ ...globalAttributes,
56
+ ...xstyledAttributes,
57
+ onClick: buttonOnClick,
58
+ children: [
59
+ pageSize,
60
+ " / page",
61
+ /* @__PURE__ */ jsx(ChevronDown, { color: ["brand-primary", "700"] })
62
+ ]
63
+ }
64
+ )
65
+ }
66
+ );
67
+ };
68
+ DSPerPageSelector.propTypes = DSPerPageSelectorPropTypesSchema;
69
+ DSPerPageSelector.displayName = PerPageSelectorName;
70
+ const DSPerPageSelectorWithSchema = describe(DSPerPageSelector).description("Per Page Selector");
71
+ DSPerPageSelectorWithSchema.propTypes = DSPerPageSelectorPropTypesSchema;
72
+ export {
73
+ DSPerPageSelector,
74
+ DSPerPageSelectorWithSchema
75
+ };
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPerPageSelector/index.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useMemo } from 'react';\nimport { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport type { DSDropdownMenuT } from '@elliemae/ds-dropdownmenu';\nimport { DSDropdownMenuV2 } from '@elliemae/ds-dropdownmenu';\nimport { ChevronDown } from '@elliemae/ds-icons';\nimport { perPageSelectorDefaultProps, DSPerPageSelectorPropTypesSchema } from '../../react-desc-prop-types.js';\nimport { PaginationDropdownButton } from '../../styled.js';\nimport { PerPageSelectorName } from '../../DSPaginationDefinitions.js';\nimport { usePerPageSelector } from './usePerPageSelector.js';\nimport { PAGINATION_DATA_TESTID } from '../../PaginationDataTestID.js';\nimport type { DSPaginationT } from '../../react-desc-prop-types.js';\nimport type { DSButtonT } from '@elliemae/ds-button-v2';\n\nconst Header = () => <>{'Per Page'}</>;\n\nexport const DSPerPageSelector: React.ComponentType<DSPaginationT.PerPageSelectorProps> = (props) => {\n const propsWithDefault = useMemoMergePropsWithDefault<DSPaginationT.PerPageSelectorInternalProps>(\n props,\n perPageSelectorDefaultProps,\n );\n useValidateTypescriptPropTypes(propsWithDefault, DSPerPageSelectorPropTypesSchema, PerPageSelectorName);\n\n const { pageSize, onPageSizeChange } = propsWithDefault;\n\n const { actionRef, btnRef, width, isOpened, setIsOpened, options, globalAttributes, xstyledAttributes } =\n usePerPageSelector(propsWithDefault);\n\n const buttonOnClick: DSButtonT.Props['onClick'] = useMemo(() => {\n if (globalAttributes.onClick) return globalAttributes.onClick as DSButtonT.Props['onClick'];\n return () => setIsOpened((prev) => !prev);\n }, [globalAttributes.onClick, setIsOpened]);\n\n return (\n <DSDropdownMenuV2\n isOpened={isOpened}\n options={options}\n selectedOptions={{ [pageSize.toString()]: true }}\n onOptionClick={(_, clickedOption) => {\n onPageSizeChange((clickedOption as DSDropdownMenuT.ItemSingleOptions).value as number);\n setIsOpened(false);\n btnRef.current?.focus();\n }}\n onClickOutside={() => {\n setIsOpened(false);\n btnRef.current?.focus();\n }}\n customOffset={[-23, 2]}\n startPlacementPreference=\"top-start\"\n actionRef={actionRef}\n minWidth={width}\n maxHeight={300}\n HeaderComp={Header}\n >\n <PaginationDropdownButton\n buttonType=\"raw\"\n innerRef={btnRef}\n aria-pressed={isOpened}\n aria-label={`${pageSize} rows per page. Press to select rows per page`}\n data-testid={PAGINATION_DATA_TESTID.PER_PAGE_SELECTOR}\n {...globalAttributes}\n {...xstyledAttributes}\n onClick={buttonOnClick}\n >\n {pageSize} / page\n <ChevronDown color={['brand-primary', '700']} />\n </PaginationDropdownButton>\n </DSDropdownMenuV2>\n );\n};\n\nDSPerPageSelector.propTypes = DSPerPageSelectorPropTypesSchema;\nDSPerPageSelector.displayName = PerPageSelectorName;\nexport const DSPerPageSelectorWithSchema = describe(DSPerPageSelector).description('Per Page Selector');\nDSPerPageSelectorWithSchema.propTypes = DSPerPageSelectorPropTypesSchema;\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACaF,wBAwCf,YAxCe;AAbrB,SAAgB,eAAe;AAC/B,SAAS,UAAU,8BAA8B,sCAAsC;AAEvF,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,6BAA6B,wCAAwC;AAC9E,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,8BAA8B;AAIvC,MAAM,SAAS,MAAM,gCAAG,sBAAW;AAE5B,MAAM,oBAA6E,CAAC,UAAU;AACnG,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,EACF;AACA,iCAA+B,kBAAkB,kCAAkC,mBAAmB;AAEtG,QAAM,EAAE,UAAU,iBAAiB,IAAI;AAEvC,QAAM,EAAE,WAAW,QAAQ,OAAO,UAAU,aAAa,SAAS,kBAAkB,kBAAkB,IACpG,mBAAmB,gBAAgB;AAErC,QAAM,gBAA4C,QAAQ,MAAM;AAC9D,QAAI,iBAAiB;AAAS,aAAO,iBAAiB;AACtD,WAAO,MAAM,YAAY,CAAC,SAAS,CAAC,IAAI;AAAA,EAC1C,GAAG,CAAC,iBAAiB,SAAS,WAAW,CAAC;AAE1C,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,iBAAiB,EAAE,CAAC,SAAS,SAAS,IAAI,KAAK;AAAA,MAC/C,eAAe,CAAC,GAAG,kBAAkB;AACnC,yBAAkB,cAAoD,KAAe;AACrF,oBAAY,KAAK;AACjB,eAAO,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,gBAAgB,MAAM;AACpB,oBAAY,KAAK;AACjB,eAAO,SAAS,MAAM;AAAA,MACxB;AAAA,MACA,cAAc,CAAC,KAAK,CAAC;AAAA,MACrB,0BAAyB;AAAA,MACzB;AAAA,MACA,UAAU;AAAA,MACV,WAAW;AAAA,MACX,YAAY;AAAA,MAEZ;AAAA,QAAC;AAAA;AAAA,UACC,YAAW;AAAA,UACX,UAAU;AAAA,UACV,gBAAc;AAAA,UACd,cAAY,GAAG;AAAA,UACf,eAAa,uBAAuB;AAAA,UACnC,GAAG;AAAA,UACH,GAAG;AAAA,UACJ,SAAS;AAAA,UAER;AAAA;AAAA,YAAS;AAAA,YACV,oBAAC,eAAY,OAAO,CAAC,iBAAiB,KAAK,GAAG;AAAA;AAAA;AAAA,MAChD;AAAA;AAAA,EACF;AAEJ;AAEA,kBAAkB,YAAY;AAC9B,kBAAkB,cAAc;AACzB,MAAM,8BAA8B,SAAS,iBAAiB,EAAE,YAAY,mBAAmB;AACtG,4BAA4B,YAAY;",
6
+ "names": []
7
+ }
@@ -0,0 +1,42 @@
1
+ import * as React from "react";
2
+ import { useEffect, useMemo, useRef, useState } from "react";
3
+ import { omit } from "lodash";
4
+ import { useGetGlobalAttributes, useGetXstyledProps } from "@elliemae/ds-props-helpers";
5
+ import { generateOption, getOptions } from "./getOptions.js";
6
+ const usePerPageSelector = (props) => {
7
+ const { pageSize, perPageOptions, perPageStep, minPerPage, maxPerPage } = props;
8
+ const [isOpened, setIsOpened] = useState(false);
9
+ const options = useMemo(() => {
10
+ if (perPageOptions)
11
+ return perPageOptions.map(generateOption);
12
+ return getOptions(perPageStep, minPerPage, maxPerPage);
13
+ }, [maxPerPage, minPerPage, perPageOptions, perPageStep]);
14
+ const actionRef = useRef({});
15
+ const btnRef = useRef(null);
16
+ useEffect(() => {
17
+ if (isOpened) {
18
+ actionRef.current.setActiveDescendant(pageSize.toString());
19
+ actionRef.current.scrollOptionIntoView(pageSize.toString());
20
+ }
21
+ }, [isOpened]);
22
+ const width = useMemo(() => {
23
+ const maxLength = options.reduce((acc, cur) => Math.max(acc, ("label" in cur ? cur.label : "").length), 0);
24
+ return maxLength * 6 + 90;
25
+ }, [options]);
26
+ const globalAttributes = omit(useGetGlobalAttributes(props), ["shape", "type", "size"]);
27
+ const xstyledAttributes = useGetXstyledProps(props);
28
+ return {
29
+ actionRef,
30
+ btnRef,
31
+ width,
32
+ isOpened,
33
+ setIsOpened,
34
+ options,
35
+ globalAttributes,
36
+ xstyledAttributes
37
+ };
38
+ };
39
+ export {
40
+ usePerPageSelector
41
+ };
42
+ //# sourceMappingURL=usePerPageSelector.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/DSPerPageSelector/usePerPageSelector.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useMemo, useRef, useState } from 'react';\nimport { omit } from 'lodash';\nimport { useGetGlobalAttributes, useGetXstyledProps } from '@elliemae/ds-props-helpers';\nimport { generateOption, getOptions } from './getOptions.js';\nimport type { DSPaginationT } from '../../react-desc-prop-types.js';\n\nexport const usePerPageSelector = (props: DSPaginationT.PerPageSelectorInternalProps) => {\n const { pageSize, perPageOptions, perPageStep, minPerPage, maxPerPage } = props;\n\n const [isOpened, setIsOpened] = useState(false);\n\n const options = useMemo(() => {\n if (perPageOptions) return perPageOptions.map(generateOption);\n return getOptions(perPageStep, minPerPage, maxPerPage);\n }, [maxPerPage, minPerPage, perPageOptions, perPageStep]);\n\n const actionRef = useRef<Record<string, (dsId: string) => void>>({});\n const btnRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (isOpened) {\n actionRef.current.setActiveDescendant(pageSize.toString());\n actionRef.current.scrollOptionIntoView(pageSize.toString());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpened]);\n\n const width = useMemo(() => {\n const maxLength = options.reduce((acc, cur) => Math.max(acc, ('label' in cur ? cur.label : '').length), 0);\n return maxLength * 6 + 90;\n }, [options]);\n\n const globalAttributes = omit(useGetGlobalAttributes(props), ['shape', 'type', 'size']);\n const xstyledAttributes = useGetXstyledProps(props);\n\n return {\n actionRef,\n btnRef,\n width,\n isOpened,\n setIsOpened,\n options,\n globalAttributes,\n xstyledAttributes,\n };\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,SAAS,QAAQ,gBAAgB;AACrD,SAAS,YAAY;AACrB,SAAS,wBAAwB,0BAA0B;AAC3D,SAAS,gBAAgB,kBAAkB;AAGpC,MAAM,qBAAqB,CAAC,UAAsD;AACvF,QAAM,EAAE,UAAU,gBAAgB,aAAa,YAAY,WAAW,IAAI;AAE1E,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,QAAM,UAAU,QAAQ,MAAM;AAC5B,QAAI;AAAgB,aAAO,eAAe,IAAI,cAAc;AAC5D,WAAO,WAAW,aAAa,YAAY,UAAU;AAAA,EACvD,GAAG,CAAC,YAAY,YAAY,gBAAgB,WAAW,CAAC;AAExD,QAAM,YAAY,OAA+C,CAAC,CAAC;AACnE,QAAM,SAAS,OAA0B,IAAI;AAE7C,YAAU,MAAM;AACd,QAAI,UAAU;AACZ,gBAAU,QAAQ,oBAAoB,SAAS,SAAS,CAAC;AACzD,gBAAU,QAAQ,qBAAqB,SAAS,SAAS,CAAC;AAAA,IAC5D;AAAA,EAEF,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,QAAQ,QAAQ,MAAM;AAC1B,UAAM,YAAY,QAAQ,OAAO,CAAC,KAAK,QAAQ,KAAK,IAAI,MAAM,WAAW,MAAM,IAAI,QAAQ,IAAI,MAAM,GAAG,CAAC;AACzG,WAAO,YAAY,IAAI;AAAA,EACzB,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,mBAAmB,KAAK,uBAAuB,KAAK,GAAG,CAAC,SAAS,QAAQ,MAAM,CAAC;AACtF,QAAM,oBAAoB,mBAAmB,KAAK;AAElD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1,13 +1,11 @@
1
1
  import * as React from "react";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { Grid } from "@elliemae/ds-grid";
4
- import { useGetGlobalAttributes, useGetXstyledProps } from "@elliemae/ds-utilities";
5
- import { PaginationContainer, PaginationSeparator, PaginationWrapper } from "../styled";
6
- import PerPageSelector from "./PerPageSelector";
7
- import Paginator from "./Paginator";
8
- import { PAGINATION_DATA_TESTID } from "../PaginationDataTestID";
9
- import { PagePrevButton } from "./PagePrevButton";
10
- import { PageNextButton } from "./PageNextButton";
3
+ import { DSPaginationContainer } from "./DSPaginationContainer.js";
4
+ import { DSPaginationSeparator } from "../styled.js";
5
+ import { DSPerPageSelector } from "./DSPerPageSelector/index.js";
6
+ import { DSPaginator } from "./DSPaginator/index.js";
7
+ import { DSPagePrevButton } from "./DSPagePrevButton.js";
8
+ import { DSPageNextButton } from "./DSPageNextButton.js";
11
9
  const PaginationContent = (props) => {
12
10
  const {
13
11
  pageIndex,
@@ -28,50 +26,37 @@ const PaginationContent = (props) => {
28
26
  perPageStep,
29
27
  minPerPage
30
28
  } = props;
31
- const { rows, wrap, ...globalAttributes } = useGetGlobalAttributes(props);
32
- const xstyledProps = useGetXstyledProps(props);
33
- return /* @__PURE__ */ jsx(
34
- PaginationContainer,
35
- {
36
- justifyContent: "center",
37
- alignItems: "center",
38
- "data-testid": PAGINATION_DATA_TESTID.CONTAINER,
39
- ...globalAttributes,
40
- ...xstyledProps,
41
- cols: ["minmax(auto, 80%)"],
42
- children: /* @__PURE__ */ jsxs(PaginationWrapper, { children: [
43
- showPerPageSelector && /* @__PURE__ */ jsxs(Fragment, { children: [
44
- /* @__PURE__ */ jsx(
45
- PerPageSelector,
46
- {
47
- pageSize,
48
- onPageSizeChange,
49
- perPageOptions,
50
- maxPerPage,
51
- perPageStep,
52
- minPerPage
53
- }
54
- ),
55
- /* @__PURE__ */ jsx(PaginationSeparator, { mr: 24 })
56
- ] }),
57
- /* @__PURE__ */ jsxs(Grid, { mr: "32px", alignItems: "center", style: { gridAutoFlow: "column" }, children: [
58
- /* @__PURE__ */ jsx(PagePrevButton, { canPreviousPage, onPreviousPage }),
59
- /* @__PURE__ */ jsx(
60
- Paginator,
61
- {
62
- pageCount,
63
- isLoadingPageCount,
64
- pageIndex,
65
- onPageChange,
66
- pageDetails,
67
- pageDetailsTitle
68
- }
69
- ),
70
- /* @__PURE__ */ jsx(PageNextButton, { canNextPage, onNextPage })
71
- ] })
72
- ] })
73
- }
74
- );
29
+ return /* @__PURE__ */ jsxs(DSPaginationContainer, { ...props, children: [
30
+ showPerPageSelector && /* @__PURE__ */ jsxs(Fragment, { children: [
31
+ /* @__PURE__ */ jsx(
32
+ DSPerPageSelector,
33
+ {
34
+ pageSize,
35
+ onPageSizeChange,
36
+ perPageOptions,
37
+ maxPerPage,
38
+ perPageStep,
39
+ minPerPage
40
+ }
41
+ ),
42
+ /* @__PURE__ */ jsx(DSPaginationSeparator, { mr: 24 })
43
+ ] }),
44
+ /* @__PURE__ */ jsx(DSPagePrevButton, { canPreviousPage, onPreviousPage }),
45
+ /* @__PURE__ */ jsx(DSPaginationSeparator, {}),
46
+ /* @__PURE__ */ jsx(
47
+ DSPaginator,
48
+ {
49
+ pageCount,
50
+ isLoadingPageCount,
51
+ pageIndex,
52
+ onPageChange,
53
+ pageDetails,
54
+ pageDetailsTitle
55
+ }
56
+ ),
57
+ /* @__PURE__ */ jsx(DSPaginationSeparator, {}),
58
+ /* @__PURE__ */ jsx(DSPageNextButton, { canNextPage, onNextPage })
59
+ ] });
75
60
  };
76
61
  export {
77
62
  PaginationContent
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/PaginationContent.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useGetGlobalAttributes, useGetXstyledProps } from '@elliemae/ds-utilities';\nimport { PaginationContainer, PaginationSeparator, PaginationWrapper } from '../styled';\nimport PerPageSelector from './PerPageSelector';\nimport Paginator from './Paginator';\nimport { PAGINATION_DATA_TESTID } from '../PaginationDataTestID';\nimport { PagePrevButton } from './PagePrevButton';\nimport { PageNextButton } from './PageNextButton';\nimport type { DSPaginationT } from '../react-desc-prop-types';\n\nexport const PaginationContent: React.ComponentType<DSPaginationT.InternalProps> = (props) => {\n const {\n pageIndex,\n pageSize,\n canPreviousPage,\n canNextPage,\n onPageSizeChange,\n onNextPage,\n onPreviousPage,\n onPageChange,\n pageCount,\n isLoadingPageCount,\n showPerPageSelector,\n pageDetails,\n pageDetailsTitle,\n perPageOptions,\n maxPerPage,\n perPageStep,\n minPerPage,\n } = props;\n\n // eslint-disable-next-line no-unused-vars\n const { rows, wrap, ...globalAttributes } = useGetGlobalAttributes(props);\n const xstyledProps = useGetXstyledProps(props);\n\n return (\n <PaginationContainer\n justifyContent=\"center\"\n alignItems=\"center\"\n data-testid={PAGINATION_DATA_TESTID.CONTAINER}\n {...globalAttributes}\n {...xstyledProps}\n cols={['minmax(auto, 80%)']}\n >\n <PaginationWrapper>\n {showPerPageSelector && (\n <>\n <PerPageSelector\n pageSize={pageSize}\n onPageSizeChange={onPageSizeChange}\n perPageOptions={perPageOptions}\n maxPerPage={maxPerPage}\n perPageStep={perPageStep}\n minPerPage={minPerPage}\n />\n <PaginationSeparator mr={24} />\n </>\n )}\n <Grid mr=\"32px\" alignItems=\"center\" style={{ gridAutoFlow: 'column' }}>\n <PagePrevButton canPreviousPage={canPreviousPage} onPreviousPage={onPreviousPage} />\n <Paginator\n pageCount={pageCount}\n isLoadingPageCount={isLoadingPageCount}\n pageIndex={pageIndex}\n onPageChange={onPageChange}\n pageDetails={pageDetails}\n pageDetailsTitle={pageDetailsTitle}\n />\n <PageNextButton canNextPage={canNextPage} onNextPage={onNextPage} />\n </Grid>\n </PaginationWrapper>\n </PaginationContainer>\n );\n};\n"],
5
- "mappings": "AAAA,YAAY,WAAW;ACgDb,mBACE,KADF;AA9CV,SAAS,YAAY;AACrB,SAAS,wBAAwB,0BAA0B;AAC3D,SAAS,qBAAqB,qBAAqB,yBAAyB;AAC5E,OAAO,qBAAqB;AAC5B,OAAO,eAAe;AACtB,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAGxB,MAAM,oBAAsE,CAAC,UAAU;AAC5F,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAGJ,QAAM,EAAE,MAAM,SAAS,iBAAiB,IAAI,uBAAuB,KAAK;AACxE,QAAM,eAAe,mBAAmB,KAAK;AAE7C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAe;AAAA,MACf,YAAW;AAAA,MACX,eAAa,uBAAuB;AAAA,MACnC,GAAG;AAAA,MACH,GAAG;AAAA,MACJ,MAAM,CAAC,mBAAmB;AAAA,MAE1B,+BAAC,qBACE;AAAA,+BACC,iCACE;AAAA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACF;AAAA,UACA,oBAAC,uBAAoB,IAAI,IAAI;AAAA,WAC/B;AAAA,QAEF,qBAAC,QAAK,IAAG,QAAO,YAAW,UAAS,OAAO,EAAE,cAAc,SAAS,GAClE;AAAA,8BAAC,kBAAe,iBAAkC,gBAAgC;AAAA,UAClF;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACF;AAAA,UACA,oBAAC,kBAAe,aAA0B,YAAwB;AAAA,WACpE;AAAA,SACF;AAAA;AAAA,EACF;AAEJ;",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React from 'react';\nimport { DSPaginationContainer } from './DSPaginationContainer.js';\nimport { DSPaginationSeparator } from '../styled.js';\nimport { DSPerPageSelector } from './DSPerPageSelector/index.js';\nimport { DSPaginator } from './DSPaginator/index.js';\nimport { DSPagePrevButton } from './DSPagePrevButton.js';\nimport { DSPageNextButton } from './DSPageNextButton.js';\nimport type { DSPaginationT } from '../react-desc-prop-types.js';\n\nexport const PaginationContent: React.ComponentType<DSPaginationT.InternalProps> = (props) => {\n const {\n pageIndex,\n pageSize,\n canPreviousPage,\n canNextPage,\n onPageSizeChange,\n onNextPage,\n onPreviousPage,\n onPageChange,\n pageCount,\n isLoadingPageCount,\n showPerPageSelector,\n pageDetails,\n pageDetailsTitle,\n perPageOptions,\n maxPerPage,\n perPageStep,\n minPerPage,\n } = props;\n\n return (\n <DSPaginationContainer {...props}>\n {showPerPageSelector && (\n <>\n <DSPerPageSelector\n pageSize={pageSize}\n onPageSizeChange={onPageSizeChange}\n perPageOptions={perPageOptions}\n maxPerPage={maxPerPage}\n perPageStep={perPageStep}\n minPerPage={minPerPage}\n />\n <DSPaginationSeparator mr={24} />\n </>\n )}\n <DSPagePrevButton canPreviousPage={canPreviousPage} onPreviousPage={onPreviousPage} />\n <DSPaginationSeparator />\n\n <DSPaginator\n pageCount={pageCount}\n isLoadingPageCount={isLoadingPageCount}\n pageIndex={pageIndex}\n onPageChange={onPageChange}\n pageDetails={pageDetails}\n pageDetailsTitle={pageDetailsTitle}\n />\n <DSPaginationSeparator />\n\n <DSPageNextButton canNextPage={canNextPage} onNextPage={onNextPage} />\n </DSPaginationContainer>\n );\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACkCf,mBACE,KADF;AAhCR,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AAG1B,MAAM,oBAAsE,CAAC,UAAU;AAC5F,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE,qBAAC,yBAAuB,GAAG,OACxB;AAAA,2BACC,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,MACA,oBAAC,yBAAsB,IAAI,IAAI;AAAA,OACjC;AAAA,IAEF,oBAAC,oBAAiB,iBAAkC,gBAAgC;AAAA,IACpF,oBAAC,yBAAsB;AAAA,IAEvB;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,yBAAsB;AAAA,IAEvB,oBAAC,oBAAiB,aAA0B,YAAwB;AAAA,KACtE;AAEJ;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { DSPageNextButton, DSPageNextButtonWithSchema } from "./DSPageNextButton.js";
3
+ import { DSPagePrevButton, DSPagePrevButtonWithSchema } from "./DSPagePrevButton.js";
4
+ import { DSPaginationContainer, DSPaginationContainerWithSchema } from "./DSPaginationContainer.js";
5
+ import { DSPerPageSelector, DSPerPageSelectorWithSchema } from "./DSPerPageSelector/index.js";
6
+ import { DSPaginator, DSPaginatorWithSchema } from "./DSPaginator/index.js";
7
+ export {
8
+ DSPageNextButton,
9
+ DSPageNextButtonWithSchema,
10
+ DSPagePrevButton,
11
+ DSPagePrevButtonWithSchema,
12
+ DSPaginationContainer,
13
+ DSPaginationContainerWithSchema,
14
+ DSPaginator,
15
+ DSPaginatorWithSchema,
16
+ DSPerPageSelector,
17
+ DSPerPageSelectorWithSchema
18
+ };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/index.ts"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSPageNextButton, DSPageNextButtonWithSchema } from './DSPageNextButton.js';\nexport { DSPagePrevButton, DSPagePrevButtonWithSchema } from './DSPagePrevButton.js';\nexport { DSPaginationContainer, DSPaginationContainerWithSchema } from './DSPaginationContainer.js';\nexport { DSPerPageSelector, DSPerPageSelectorWithSchema } from './DSPerPageSelector/index.js';\nexport { DSPaginator, DSPaginatorWithSchema } from './DSPaginator/index.js';\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,kBAAkB,kCAAkC;AAC7D,SAAS,kBAAkB,kCAAkC;AAC7D,SAAS,uBAAuB,uCAAuC;AACvE,SAAS,mBAAmB,mCAAmC;AAC/D,SAAS,aAAa,6BAA6B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,55 @@
1
+ import * as React from "react";
2
+ import { PropTypes } from "@elliemae/ds-props-helpers";
3
+ const emptyFunc = () => null;
4
+ const propTypes = {
5
+ pageCount: PropTypes.number.description("How many pages are there"),
6
+ pageIndex: PropTypes.number.description("Index of the current page, starting from 1").defaultValue(1),
7
+ canPreviousPage: PropTypes.bool.description("Whether the previous button is disabled or not").defaultValue(true),
8
+ canNextPage: PropTypes.bool.description("Whether the next button is disabled or not").defaultValue(true),
9
+ pageSize: PropTypes.number.description("The current page size").defaultValue(10),
10
+ showPerPageSelector: PropTypes.bool.description("Whether to show the page selector").defaultValue(true),
11
+ perPageOptions: PropTypes.arrayOf(
12
+ PropTypes.oneOfType([
13
+ PropTypes.number,
14
+ PropTypes.shape({
15
+ dsId: PropTypes.string,
16
+ value: PropTypes.number,
17
+ label: PropTypes.string,
18
+ type: PropTypes.oneOf(["single"])
19
+ })
20
+ ])
21
+ ).description("The available options for page size").defaultValue([10]),
22
+ perPageStep: PropTypes.number.description("Step for the per page options").defaultValue(5),
23
+ minPerPage: PropTypes.number.description("Step for the per page options").defaultValue(0),
24
+ maxPerPage: PropTypes.number.description("Step for the per page options").defaultValue(100),
25
+ onPageSizeChange: PropTypes.func.description("Function invoked when the page size changes").defaultValue(() => null),
26
+ onPreviousPage: PropTypes.func.description("Function invoked when the previous button is pressed").defaultValue(() => null),
27
+ onPageChange: PropTypes.func.description("Function invoked when the page changes").defaultValue(() => null),
28
+ onNextPage: PropTypes.func.description("Function invoked when next button is pressed").defaultValue(() => null),
29
+ pageDetails: PropTypes.arrayOf(PropTypes.string).description("Details to provide for each page").defaultValue([]),
30
+ pageDetailsTitle: PropTypes.string.description("The title of the details (usually a column of your dataset)").defaultValue(""),
31
+ width: PropTypes.any.description("Width for the container of the pagination").defaultValue("100%")
32
+ };
33
+ const defaultProps = {
34
+ pageIndex: 1,
35
+ canPreviousPage: true,
36
+ canNextPage: true,
37
+ pageSize: 10,
38
+ showPerPageSelector: true,
39
+ perPageOptions: [10],
40
+ perPageStep: 5,
41
+ minPerPage: 0,
42
+ maxPerPage: 100,
43
+ onPageSizeChange: emptyFunc,
44
+ onPreviousPage: emptyFunc,
45
+ onNextPage: emptyFunc,
46
+ onPageChange: emptyFunc,
47
+ pageDetails: [],
48
+ pageDetailsTitle: "",
49
+ width: "100%"
50
+ };
51
+ export {
52
+ defaultProps,
53
+ propTypes
54
+ };
55
+ //# sourceMappingURL=props.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/props.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes } from '@elliemae/ds-props-helpers';\nimport type { WeakValidationMap } from 'react';\n\nconst emptyFunc = () => null;\n\nexport const propTypes = {\n pageCount: PropTypes.number.description('How many pages are there'),\n pageIndex: PropTypes.number.description('Index of the current page, starting from 1').defaultValue(1),\n canPreviousPage: PropTypes.bool.description('Whether the previous button is disabled or not').defaultValue(true),\n canNextPage: PropTypes.bool.description('Whether the next button is disabled or not').defaultValue(true),\n pageSize: PropTypes.number.description('The current page size').defaultValue(10),\n showPerPageSelector: PropTypes.bool.description('Whether to show the page selector').defaultValue(true),\n perPageOptions: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.shape({\n dsId: PropTypes.string,\n value: PropTypes.number,\n label: PropTypes.string,\n type: PropTypes.oneOf(['single']),\n }),\n ]),\n )\n .description('The available options for page size')\n .defaultValue([10]),\n perPageStep: PropTypes.number.description('Step for the per page options').defaultValue(5),\n minPerPage: PropTypes.number.description('Step for the per page options').defaultValue(0),\n maxPerPage: PropTypes.number.description('Step for the per page options').defaultValue(100),\n onPageSizeChange: PropTypes.func.description('Function invoked when the page size changes').defaultValue(() => null),\n onPreviousPage: PropTypes.func\n .description('Function invoked when the previous button is pressed')\n .defaultValue(() => null),\n onPageChange: PropTypes.func.description('Function invoked when the page changes').defaultValue(() => null),\n onNextPage: PropTypes.func.description('Function invoked when next button is pressed').defaultValue(() => null),\n pageDetails: PropTypes.arrayOf(PropTypes.string).description('Details to provide for each page').defaultValue([]),\n pageDetailsTitle: PropTypes.string\n .description('The title of the details (usually a column of your dataset)')\n .defaultValue(''),\n width: PropTypes.any.description('Width for the container of the pagination').defaultValue('100%'),\n} as WeakValidationMap<unknown>;\n\nexport const defaultProps = {\n pageIndex: 1,\n canPreviousPage: true,\n canNextPage: true,\n pageSize: 10,\n showPerPageSelector: true,\n perPageOptions: [10],\n perPageStep: 5,\n minPerPage: 0,\n maxPerPage: 100,\n onPageSizeChange: emptyFunc,\n onPreviousPage: emptyFunc,\n onNextPage: emptyFunc,\n onPageChange: emptyFunc,\n pageDetails: [],\n pageDetailsTitle: '',\n width: '100%',\n};\n"],
5
+ "mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,iBAAiB;AAG1B,MAAM,YAAY,MAAM;AAEjB,MAAM,YAAY;AAAA,EACvB,WAAW,UAAU,OAAO,YAAY,0BAA0B;AAAA,EAClE,WAAW,UAAU,OAAO,YAAY,4CAA4C,EAAE,aAAa,CAAC;AAAA,EACpG,iBAAiB,UAAU,KAAK,YAAY,gDAAgD,EAAE,aAAa,IAAI;AAAA,EAC/G,aAAa,UAAU,KAAK,YAAY,4CAA4C,EAAE,aAAa,IAAI;AAAA,EACvG,UAAU,UAAU,OAAO,YAAY,uBAAuB,EAAE,aAAa,EAAE;AAAA,EAC/E,qBAAqB,UAAU,KAAK,YAAY,mCAAmC,EAAE,aAAa,IAAI;AAAA,EACtG,gBAAgB,UAAU;AAAA,IACxB,UAAU,UAAU;AAAA,MAClB,UAAU;AAAA,MACV,UAAU,MAAM;AAAA,QACd,MAAM,UAAU;AAAA,QAChB,OAAO,UAAU;AAAA,QACjB,OAAO,UAAU;AAAA,QACjB,MAAM,UAAU,MAAM,CAAC,QAAQ,CAAC;AAAA,MAClC,CAAC;AAAA,IACH,CAAC;AAAA,EACH,EACG,YAAY,qCAAqC,EACjD,aAAa,CAAC,EAAE,CAAC;AAAA,EACpB,aAAa,UAAU,OAAO,YAAY,+BAA+B,EAAE,aAAa,CAAC;AAAA,EACzF,YAAY,UAAU,OAAO,YAAY,+BAA+B,EAAE,aAAa,CAAC;AAAA,EACxF,YAAY,UAAU,OAAO,YAAY,+BAA+B,EAAE,aAAa,GAAG;AAAA,EAC1F,kBAAkB,UAAU,KAAK,YAAY,6CAA6C,EAAE,aAAa,MAAM,IAAI;AAAA,EACnH,gBAAgB,UAAU,KACvB,YAAY,sDAAsD,EAClE,aAAa,MAAM,IAAI;AAAA,EAC1B,cAAc,UAAU,KAAK,YAAY,wCAAwC,EAAE,aAAa,MAAM,IAAI;AAAA,EAC1G,YAAY,UAAU,KAAK,YAAY,8CAA8C,EAAE,aAAa,MAAM,IAAI;AAAA,EAC9G,aAAa,UAAU,QAAQ,UAAU,MAAM,EAAE,YAAY,kCAAkC,EAAE,aAAa,CAAC,CAAC;AAAA,EAChH,kBAAkB,UAAU,OACzB,YAAY,6DAA6D,EACzE,aAAa,EAAE;AAAA,EAClB,OAAO,UAAU,IAAI,YAAY,2CAA2C,EAAE,aAAa,MAAM;AACnG;AAEO,MAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,gBAAgB,CAAC,EAAE;AAAA,EACnB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa,CAAC;AAAA,EACd,kBAAkB;AAAA,EAClB,OAAO;AACT;",
6
+ "names": []
7
+ }
@@ -1,5 +1,28 @@
1
1
  import * as React from "react";
2
- import { globalAttributesPropTypes, PropTypes, xstyledPropTypes } from "@elliemae/ds-utilities";
2
+ import { globalAttributesPropTypes, PropTypes, xstyledPropTypes } from "@elliemae/ds-props-helpers";
3
+ const perPageSelectorDefaultProps = {
4
+ pageSize: 10,
5
+ onPageSizeChange: () => null,
6
+ perPageStep: 5,
7
+ minPerPage: 0,
8
+ maxPerPage: 100
9
+ };
10
+ const pagePrevButtonDefaultProps = {
11
+ canPreviousPage: true,
12
+ onPreviousPage: () => null
13
+ };
14
+ const pageNextButtonDefaultProps = {
15
+ canNextPage: true,
16
+ onNextPage: () => null
17
+ };
18
+ const paginatorDefaultProps = {
19
+ pageCount: 0,
20
+ isLoadingPageCount: false,
21
+ pageIndex: 1,
22
+ onPageChange: () => null,
23
+ pageDetails: [],
24
+ pageDetailsTitle: ""
25
+ };
3
26
  const defaultProps = {
4
27
  pageCount: 0,
5
28
  pageIndex: 1,
@@ -8,7 +31,6 @@ const defaultProps = {
8
31
  canNextPage: true,
9
32
  pageSize: 10,
10
33
  showPerPageSelector: true,
11
- perPageOptions: [10],
12
34
  perPageStep: 5,
13
35
  minPerPage: 0,
14
36
  maxPerPage: 100,
@@ -32,17 +54,7 @@ const DSPaginationPropTypes = {
32
54
  onPageChange: PropTypes.func.description("Function invoked when the page changes").defaultValue(() => null),
33
55
  onNextPage: PropTypes.func.description("Function invoked when next button is pressed").defaultValue(() => null),
34
56
  showPerPageSelector: PropTypes.bool.description("Whether to show the page selector").defaultValue(true),
35
- perPageOptions: PropTypes.arrayOf(
36
- PropTypes.oneOfType([
37
- PropTypes.number,
38
- PropTypes.shape({
39
- dsId: PropTypes.string,
40
- value: PropTypes.number,
41
- label: PropTypes.string,
42
- type: PropTypes.oneOf(["single"])
43
- })
44
- ])
45
- ).description("The available options for page size").defaultValue([10]),
57
+ perPageOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.object])).description("The available options for page size").defaultValue([10]),
46
58
  minPerPage: PropTypes.number.description("Min for the per page options").defaultValue(0),
47
59
  maxPerPage: PropTypes.number.description("Max for the per page options").defaultValue(100),
48
60
  perPageStep: PropTypes.number.description("Step for the per page options").defaultValue(5),
@@ -53,9 +65,71 @@ const DSPaginationPropTypes = {
53
65
  isLoadingPageCount: PropTypes.bool.description("Whether the page count is loading or not").defaultValue(false)
54
66
  };
55
67
  const DSPaginationPropTypesSchema = DSPaginationPropTypes;
68
+ const DSPerPageSelectorPropTypes = {
69
+ ...globalAttributesPropTypes,
70
+ ...xstyledPropTypes,
71
+ pageSize: PropTypes.number.description("The current page size").defaultValue(10),
72
+ onPageSizeChange: PropTypes.func.description("Function invoked when the page size changes").defaultValue(() => null),
73
+ perPageOptions: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.object])).description("The available options for page size").defaultValue([10]),
74
+ minPerPage: PropTypes.number.description("Min for the per page options").defaultValue(0),
75
+ maxPerPage: PropTypes.number.description("Max for the per page options").defaultValue(100),
76
+ perPageStep: PropTypes.number.description("Step for the per page options").defaultValue(5)
77
+ };
78
+ const DSPerPageSelectorPropTypesSchema = DSPerPageSelectorPropTypes;
79
+ const DSPagePrevButtonPropTypes = {
80
+ ...globalAttributesPropTypes,
81
+ ...xstyledPropTypes,
82
+ canPreviousPage: PropTypes.bool.description("Whether the previous button is disabled or not").defaultValue(true),
83
+ onPreviousPage: PropTypes.func.description("Function invoked when the previous button is pressed").defaultValue(() => null)
84
+ };
85
+ const DSPagePrevButtonPropTypesSchema = DSPagePrevButtonPropTypes;
86
+ const DSPageNextButtonPropTypes = {
87
+ ...globalAttributesPropTypes,
88
+ ...xstyledPropTypes,
89
+ canNextPage: PropTypes.bool.description("Whether the next button is disabled or not").defaultValue(true),
90
+ onNextPage: PropTypes.func.description("Function invoked when next button is pressed").defaultValue(() => null)
91
+ };
92
+ const DSPageNextButtonPropTypesSchema = DSPageNextButtonPropTypes;
93
+ const DSPaginatorPropTypes = {
94
+ ...globalAttributesPropTypes,
95
+ ...xstyledPropTypes,
96
+ pageIndex: PropTypes.number.description("Index of the current page, starting from 1").defaultValue(1),
97
+ pageCount: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description("How many pages are there"),
98
+ onPageChange: PropTypes.func.description("Function invoked when the page changes").defaultValue(() => null),
99
+ isLoadingPageCount: PropTypes.bool.description("Whether the page count is loading or not").defaultValue(false),
100
+ pageDetails: PropTypes.arrayOf(PropTypes.string).description("Details to provide for each page").defaultValue([]),
101
+ pageDetailsTitle: PropTypes.string.description("The title of the details (usually a column of your dataset)").defaultValue("")
102
+ };
103
+ const DSPaginatorPropTypesSchema = DSPaginatorPropTypes;
104
+ const DSPaginationContainerPropTypes = {
105
+ ...globalAttributesPropTypes,
106
+ ...xstyledPropTypes
107
+ };
108
+ const DSPaginationContainerPropTypesSchema = DSPaginationContainerPropTypes;
109
+ const DSPaginationStyledPartPropTypes = {
110
+ ...globalAttributesPropTypes,
111
+ ...xstyledPropTypes
112
+ };
113
+ const DSPaginationStyledPartPropTypesSchema = DSPaginationStyledPartPropTypes;
56
114
  export {
115
+ DSPageNextButtonPropTypes,
116
+ DSPageNextButtonPropTypesSchema,
117
+ DSPagePrevButtonPropTypes,
118
+ DSPagePrevButtonPropTypesSchema,
119
+ DSPaginationContainerPropTypes,
120
+ DSPaginationContainerPropTypesSchema,
57
121
  DSPaginationPropTypes,
58
122
  DSPaginationPropTypesSchema,
59
- defaultProps
123
+ DSPaginationStyledPartPropTypes,
124
+ DSPaginationStyledPartPropTypesSchema,
125
+ DSPaginatorPropTypes,
126
+ DSPaginatorPropTypesSchema,
127
+ DSPerPageSelectorPropTypes,
128
+ DSPerPageSelectorPropTypesSchema,
129
+ defaultProps,
130
+ pageNextButtonDefaultProps,
131
+ pagePrevButtonDefaultProps,
132
+ paginatorDefaultProps,
133
+ perPageSelectorDefaultProps
60
134
  };
61
135
  //# sourceMappingURL=react-desc-prop-types.js.map