@elliemae/ds-pagination 2.2.2-rc.1 → 2.3.0-alpha.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 (83) hide show
  1. package/dist/cjs/Pagination.js +50 -0
  2. package/dist/cjs/Pagination.js.map +7 -0
  3. package/dist/cjs/PaginationDataTestID.js +39 -0
  4. package/dist/cjs/PaginationDataTestID.js.map +7 -0
  5. package/dist/cjs/hooks/usePaginationSearch.js +60 -0
  6. package/dist/cjs/hooks/usePaginationSearch.js.map +7 -0
  7. package/dist/cjs/index.d.js +27 -0
  8. package/dist/cjs/index.d.js.map +7 -0
  9. package/dist/cjs/index.js +28 -0
  10. package/dist/cjs/index.js.map +7 -0
  11. package/dist/cjs/parts/PageNextButton.js +53 -0
  12. package/dist/cjs/parts/PageNextButton.js.map +7 -0
  13. package/dist/cjs/parts/PagePrevButton.js +52 -0
  14. package/dist/cjs/parts/PagePrevButton.js.map +7 -0
  15. package/dist/cjs/parts/PaginationContent.js +92 -0
  16. package/dist/cjs/parts/PaginationContent.js.map +7 -0
  17. package/dist/cjs/parts/Paginator.js +131 -0
  18. package/dist/cjs/parts/Paginator.js.map +7 -0
  19. package/dist/cjs/parts/PerPageSelector.js +103 -0
  20. package/dist/cjs/parts/PerPageSelector.js.map +7 -0
  21. package/dist/cjs/props.js +82 -0
  22. package/dist/cjs/props.js.map +7 -0
  23. package/dist/cjs/styled.js +113 -0
  24. package/dist/cjs/styled.js.map +7 -0
  25. package/dist/esm/Pagination.js +21 -0
  26. package/dist/esm/Pagination.js.map +7 -0
  27. package/dist/esm/PaginationDataTestID.js +10 -0
  28. package/dist/esm/PaginationDataTestID.js.map +7 -0
  29. package/{esm → dist/esm}/hooks/usePaginationSearch.js +16 -13
  30. package/dist/esm/hooks/usePaginationSearch.js.map +7 -0
  31. package/dist/esm/index.d.js +2 -0
  32. package/dist/esm/index.d.js.map +7 -0
  33. package/dist/esm/index.js +3 -0
  34. package/dist/esm/index.js.map +7 -0
  35. package/dist/esm/parts/PageNextButton.js +24 -0
  36. package/dist/esm/parts/PageNextButton.js.map +7 -0
  37. package/dist/esm/parts/PagePrevButton.js +23 -0
  38. package/dist/esm/parts/PagePrevButton.js.map +7 -0
  39. package/dist/esm/parts/PaginationContent.js +63 -0
  40. package/dist/esm/parts/PaginationContent.js.map +7 -0
  41. package/dist/esm/parts/Paginator.js +102 -0
  42. package/dist/esm/parts/Paginator.js.map +7 -0
  43. package/dist/esm/parts/PerPageSelector.js +74 -0
  44. package/dist/esm/parts/PerPageSelector.js.map +7 -0
  45. package/dist/esm/props.js +53 -0
  46. package/dist/esm/props.js.map +7 -0
  47. package/dist/esm/styled.js +84 -0
  48. package/dist/esm/styled.js.map +7 -0
  49. package/{types → dist/types}/Pagination.d.ts +0 -0
  50. package/{types → dist/types}/PaginationDataTestID.d.ts +0 -0
  51. package/{types → dist/types}/hooks/usePaginationSearch.d.ts +0 -0
  52. package/{types → dist/types}/index.d.ts +0 -0
  53. package/{types → dist/types}/parts/PageNextButton.d.ts +0 -0
  54. package/{types → dist/types}/parts/PagePrevButton.d.ts +0 -0
  55. package/{types → dist/types}/parts/PaginationContent.d.ts +0 -0
  56. package/{types → dist/types}/parts/Paginator.d.ts +0 -0
  57. package/{types → dist/types}/parts/PerPageSelector.d.ts +0 -0
  58. package/{types → dist/types}/props.d.ts +0 -0
  59. package/package.json +44 -42
  60. package/cjs/Pagination.js +0 -36
  61. package/cjs/PaginationDataTestID.js +0 -11
  62. package/cjs/hooks/usePaginationSearch.js +0 -32
  63. package/cjs/index.d.js +0 -2
  64. package/cjs/index.js +0 -10
  65. package/cjs/parts/PageNextButton.js +0 -33
  66. package/cjs/parts/PagePrevButton.js +0 -32
  67. package/cjs/parts/PaginationContent.js +0 -78
  68. package/cjs/parts/Paginator.js +0 -143
  69. package/cjs/parts/PerPageSelector.js +0 -98
  70. package/cjs/props.js +0 -53
  71. package/cjs/styled.js +0 -48
  72. package/esm/Pagination.js +0 -27
  73. package/esm/PaginationDataTestID.js +0 -7
  74. package/esm/index.d.js +0 -1
  75. package/esm/index.js +0 -1
  76. package/esm/parts/PageNextButton.js +0 -25
  77. package/esm/parts/PagePrevButton.js +0 -24
  78. package/esm/parts/PaginationContent.js +0 -69
  79. package/esm/parts/Paginator.js +0 -136
  80. package/esm/parts/PerPageSelector.js +0 -91
  81. package/esm/props.js +0 -48
  82. package/esm/styled.js +0 -34
  83. package/types/styled.d.ts +0 -14
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ import React2 from "react";
3
+ import { Grid } from "@elliemae/ds-grid";
4
+ import { PaginationContainer, PaginationSeparator, PaginationWrapper } from "../styled";
5
+ import PerPageSelector from "./PerPageSelector";
6
+ import Paginator from "./Paginator";
7
+ import { PAGINATION_DATA_TESTID } from "../PaginationDataTestID";
8
+ import { PagePrevButton } from "./PagePrevButton";
9
+ import { PageNextButton } from "./PageNextButton";
10
+ const PaginationContent = ({
11
+ pageIndex,
12
+ pageSize,
13
+ canPreviousPage,
14
+ canNextPage,
15
+ onPageSizeChange,
16
+ onNextPage,
17
+ onPreviousPage,
18
+ onPageChange,
19
+ pageCount,
20
+ showPerPageSelector,
21
+ pageDetails,
22
+ pageDetailsTitle,
23
+ perPageOptions,
24
+ maxPerPage,
25
+ perPageStep,
26
+ minPerPage,
27
+ width
28
+ }) => /* @__PURE__ */ React2.createElement(PaginationContainer, {
29
+ justifyContent: "center",
30
+ alignItems: "center",
31
+ width,
32
+ "data-testid": PAGINATION_DATA_TESTID.CONTAINER
33
+ }, /* @__PURE__ */ React2.createElement(PaginationWrapper, null, showPerPageSelector && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(PerPageSelector, {
34
+ pageSize,
35
+ onPageSizeChange,
36
+ perPageOptions,
37
+ maxPerPage,
38
+ perPageStep,
39
+ minPerPage
40
+ }), /* @__PURE__ */ React2.createElement(PaginationSeparator, {
41
+ mr: 24
42
+ })), /* @__PURE__ */ React2.createElement(Grid, {
43
+ cols: ["auto", "auto", "auto", "auto", "auto"],
44
+ mr: "32px",
45
+ alignItems: "center"
46
+ }, /* @__PURE__ */ React2.createElement(PagePrevButton, {
47
+ canPreviousPage,
48
+ onPreviousPage
49
+ }), /* @__PURE__ */ React2.createElement(Paginator, {
50
+ pageCount,
51
+ pageIndex,
52
+ onNextPage,
53
+ onPageChange,
54
+ pageDetails,
55
+ pageDetailsTitle
56
+ }), /* @__PURE__ */ React2.createElement(PageNextButton, {
57
+ canNextPage,
58
+ onNextPage
59
+ }))));
60
+ export {
61
+ PaginationContent
62
+ };
63
+ //# sourceMappingURL=PaginationContent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 { 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 { DSPaginationProps } from '../index.d';\n\nexport const PaginationContent: React.ComponentType<DSPaginationProps> = ({\n pageIndex,\n pageSize,\n canPreviousPage,\n canNextPage,\n onPageSizeChange,\n onNextPage,\n onPreviousPage,\n onPageChange,\n pageCount,\n showPerPageSelector,\n pageDetails,\n pageDetailsTitle,\n perPageOptions,\n maxPerPage,\n perPageStep,\n minPerPage,\n width,\n}) => (\n <PaginationContainer\n justifyContent=\"center\"\n alignItems=\"center\"\n width={width}\n data-testid={PAGINATION_DATA_TESTID.CONTAINER}\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 cols={['auto', 'auto', 'auto', 'auto', 'auto']} mr=\"32px\" alignItems=\"center\">\n <PagePrevButton canPreviousPage={canPreviousPage} onPreviousPage={onPreviousPage} />\n <Paginator\n pageCount={pageCount}\n pageIndex={pageIndex}\n onNextPage={onNextPage}\n onPageChange={onPageChange}\n pageDetails={pageDetails}\n pageDetailsTitle={pageDetailsTitle}\n />\n <PageNextButton canNextPage={canNextPage} onNextPage={onNextPage} />\n </Grid>\n </PaginationWrapper>\n </PaginationContainer>\n);\n"],
5
+ "mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGO,MAAM,oBAA4D,CAAC;AAAA,EACxE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,qCAAC,qBAAD;AAAA,EACE,gBAAe;AAAA,EACf,YAAW;AAAA,EACX;AAAA,EACA,eAAa,uBAAuB;AAAA,GAEpC,qCAAC,mBAAD,MACG,uBACC,4DACE,qCAAC,iBAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IAEF,qCAAC,qBAAD;AAAA,EAAqB,IAAI;AAAA,KAG7B,qCAAC,MAAD;AAAA,EAAM,MAAM,CAAC,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,EAAS,IAAG;AAAA,EAAO,YAAW;AAAA,GACzE,qCAAC,gBAAD;AAAA,EAAgB;AAAA,EAAkC;AAAA,IAClD,qCAAC,WAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IAEF,qCAAC,gBAAD;AAAA,EAAgB;AAAA,EAA0B;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,102 @@
1
+ import * as React from "react";
2
+ import React2, { useEffect, useMemo, useRef, useState } from "react";
3
+ import { Checkmark, ChevronDown } from "@elliemae/ds-icons";
4
+ import { useOnElementResize } from "@elliemae/ds-utilities";
5
+ import { Grid } from "@elliemae/ds-grid";
6
+ import { DSDropdownMenuV2 } from "@elliemae/ds-dropdownmenu";
7
+ import { PaginationBoldText, PaginationDropdownButton, PaginationSeparator } from "../styled";
8
+ import { usePaginationSearch } from "../hooks/usePaginationSearch";
9
+ const Paginator = (props) => {
10
+ const { pageIndex, pageCount, onPageChange, pageDetails, pageDetailsTitle } = props;
11
+ const [isOpened, setIsOpened] = useState(false);
12
+ const btnRef = useRef(null);
13
+ const pageInfoRef = useRef(null);
14
+ const { width: btnWidth } = useOnElementResize(btnRef);
15
+ const { width: txtWidth } = useOnElementResize(pageInfoRef);
16
+ const options = useMemo(() => new Array(pageCount).fill(0).map((_, index) => {
17
+ const option = {
18
+ dsId: (index + 1).toString(),
19
+ label: (index + 1).toString(),
20
+ value: index + 1,
21
+ type: "single"
22
+ };
23
+ if (pageDetails.length) {
24
+ option.render = () => /* @__PURE__ */ React2.createElement(Grid, {
25
+ cols: ["16px", `${txtWidth + 16}px`, "auto"],
26
+ gutter: "xxs",
27
+ alignItems: "center"
28
+ }, pageIndex === index ? /* @__PURE__ */ React2.createElement(Checkmark, {
29
+ size: "s",
30
+ color: ["brand-primary", "600"]
31
+ }) : /* @__PURE__ */ React2.createElement("div", null), /* @__PURE__ */ React2.createElement("span", null, index + 1), /* @__PURE__ */ React2.createElement("span", {
32
+ style: {
33
+ whiteSpace: "nowrap",
34
+ textOverflow: "ellipsis",
35
+ overflow: "hidden"
36
+ }
37
+ }, pageDetails[index]));
38
+ }
39
+ return option;
40
+ }), [pageCount, pageDetails, pageIndex, txtWidth]);
41
+ const actionRef = useRef({});
42
+ useEffect(() => {
43
+ if (isOpened) {
44
+ actionRef.current.setActiveDescendant((pageIndex + 1).toString());
45
+ actionRef.current.scrollOptionIntoView((pageIndex + 1).toString());
46
+ }
47
+ }, [isOpened]);
48
+ const onKeyDown = usePaginationSearch(pageCount, actionRef);
49
+ return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(PaginationSeparator, null), /* @__PURE__ */ React2.createElement(DSDropdownMenuV2, {
50
+ isOpened,
51
+ options,
52
+ selectedOptions: { [(pageIndex + 1).toString()]: true },
53
+ onOptionClick: (_, clickedOption) => {
54
+ onPageChange(clickedOption.value);
55
+ setIsOpened(false);
56
+ btnRef.current.focus();
57
+ },
58
+ onClickOutside: () => {
59
+ setIsOpened(false);
60
+ btnRef.current.focus();
61
+ },
62
+ customOffset: [0, 2],
63
+ startPlacementPreference: "top-end",
64
+ actionRef,
65
+ onKeyDown,
66
+ minWidth: btnWidth + 23,
67
+ maxHeight: 300,
68
+ HeaderComp: () => pageDetailsTitle !== "" ? /* @__PURE__ */ React2.createElement(Grid, {
69
+ cols: [`${txtWidth + 50}px`, "8px", "auto"]
70
+ }, /* @__PURE__ */ React2.createElement("span", {
71
+ style: { marginLeft: "8px" }
72
+ }, "Page"), /* @__PURE__ */ React2.createElement(PaginationSeparator, {
73
+ height: "100%"
74
+ }), /* @__PURE__ */ React2.createElement("span", null, pageDetailsTitle)) : "Page"
75
+ }, /* @__PURE__ */ React2.createElement(PaginationDropdownButton, {
76
+ buttonType: "raw",
77
+ onClick: () => setIsOpened(true),
78
+ innerRef: btnRef
79
+ }, /* @__PURE__ */ React2.createElement("div", {
80
+ style: { display: "flex", gridGap: "8px", alignItems: "center" }
81
+ }, /* @__PURE__ */ React2.createElement(Grid, {
82
+ cols: ["auto", "auto", "auto"],
83
+ alignItems: "center",
84
+ gutter: "xxxs",
85
+ ref: pageInfoRef
86
+ }, /* @__PURE__ */ React2.createElement(PaginationBoldText, {
87
+ fontSize: "18px"
88
+ }, pageIndex + 1), " / ", pageCount), pageDetails.length !== 0 && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(PaginationSeparator, {
89
+ height: "12px",
90
+ ml: "8px"
91
+ }), /* @__PURE__ */ React2.createElement(PaginationBoldText, {
92
+ fontSize: "13px",
93
+ mr: "8px"
94
+ }, pageDetails[pageIndex])), /* @__PURE__ */ React2.createElement(ChevronDown, {
95
+ color: ["brand-primary", "700"]
96
+ })))), /* @__PURE__ */ React2.createElement(PaginationSeparator, null));
97
+ };
98
+ var Paginator_default = Paginator;
99
+ export {
100
+ Paginator_default as default
101
+ };
102
+ //# sourceMappingURL=Paginator.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/Paginator.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { Checkmark, ChevronDown } from '@elliemae/ds-icons';\nimport { useOnElementResize } from '@elliemae/ds-utilities';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSDropdownMenuV2 } from '@elliemae/ds-dropdownmenu';\nimport { PaginationBoldText, PaginationDropdownButton, PaginationSeparator } from '../styled';\nimport { usePaginationSearch } from '../hooks/usePaginationSearch';\nimport { DSPaginationProps } from '../index.d';\n\nconst Paginator: React.ComponentType<DSPaginationProps> = (props) => {\n const { pageIndex, pageCount, onPageChange, pageDetails, pageDetailsTitle } = props;\n\n const [isOpened, setIsOpened] = useState(false);\n\n const btnRef = useRef(null);\n const pageInfoRef = useRef(null);\n\n const { width: btnWidth } = useOnElementResize(btnRef);\n const { width: txtWidth } = useOnElementResize(pageInfoRef);\n\n const options = useMemo(\n () =>\n new Array(pageCount).fill(0).map((_, index) => {\n const option: Record<string, unknown> = {\n dsId: (index + 1).toString(),\n label: (index + 1).toString(),\n value: index + 1,\n type: 'single',\n };\n if (pageDetails.length) {\n option.render = () => (\n <Grid cols={['16px', `${txtWidth + 16}px`, 'auto']} gutter=\"xxs\" alignItems=\"center\">\n {pageIndex === index ? <Checkmark size=\"s\" color={['brand-primary', '600']} /> : <div />}\n <span>{index + 1}</span>\n <span\n style={{\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n }}\n >\n {pageDetails[index]}\n </span>\n </Grid>\n );\n }\n return option;\n }),\n [pageCount, pageDetails, pageIndex, txtWidth],\n );\n\n const actionRef = useRef<Record<string, (dsId: string) => void>>({});\n\n useEffect(() => {\n if (isOpened) {\n actionRef.current.setActiveDescendant((pageIndex + 1).toString());\n actionRef.current.scrollOptionIntoView((pageIndex + 1).toString());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpened]);\n\n const onKeyDown = usePaginationSearch(pageCount, actionRef);\n\n return (\n <>\n <PaginationSeparator />\n <DSDropdownMenuV2\n isOpened={isOpened}\n options={options}\n selectedOptions={{ [(pageIndex + 1).toString()]: true }}\n onOptionClick={(_, clickedOption) => {\n onPageChange(clickedOption.value);\n setIsOpened(false);\n btnRef.current.focus();\n }}\n onClickOutside={() => {\n setIsOpened(false);\n btnRef.current.focus();\n }}\n customOffset={[0, 2]}\n startPlacementPreference=\"top-end\"\n actionRef={actionRef}\n onKeyDown={onKeyDown}\n minWidth={btnWidth + 23}\n maxHeight={300}\n HeaderComp={() =>\n pageDetailsTitle !== '' ? (\n <Grid cols={[`${txtWidth + 50}px`, '8px', 'auto']}>\n <span style={{ marginLeft: '8px' }}>Page</span>\n <PaginationSeparator height=\"100%\" />\n <span>{pageDetailsTitle}</span>\n </Grid>\n ) : (\n 'Page'\n )\n }\n >\n <PaginationDropdownButton buttonType=\"raw\" onClick={() => setIsOpened(true)} innerRef={btnRef}>\n <div style={{ display: 'flex', gridGap: '8px', alignItems: 'center' }}>\n <Grid cols={['auto', 'auto', 'auto']} alignItems=\"center\" gutter=\"xxxs\" ref={pageInfoRef}>\n <PaginationBoldText fontSize=\"18px\">{pageIndex + 1}</PaginationBoldText> / {pageCount}\n </Grid>\n {pageDetails.length !== 0 && (\n <>\n <PaginationSeparator height=\"12px\" ml=\"8px\" />\n <PaginationBoldText fontSize=\"13px\" mr=\"8px\">\n {pageDetails[pageIndex]}\n </PaginationBoldText>\n </>\n )}\n <ChevronDown color={['brand-primary', '700']} />\n </div>\n </PaginationDropdownButton>\n </DSDropdownMenuV2>\n <PaginationSeparator />\n </>\n );\n};\n\nexport default Paginator;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,74 @@
1
+ import * as React from "react";
2
+ import React2, { useEffect, useMemo, useRef, useState } from "react";
3
+ import memoize from "memoize-one";
4
+ import { range, useOnElementResize } from "@elliemae/ds-utilities";
5
+ import { DSDropdownMenuV2 } from "@elliemae/ds-dropdownmenu";
6
+ import { ChevronDown } from "@elliemae/ds-icons";
7
+ import { PaginationDropdownButton } from "../styled";
8
+ const generateOption = (value) => {
9
+ if (typeof value === "object") {
10
+ return value;
11
+ }
12
+ return {
13
+ dsId: value.toString(),
14
+ value,
15
+ label: value.toString(),
16
+ type: "single"
17
+ };
18
+ };
19
+ const getOptions = memoize((step, min, max) => {
20
+ const options = range(min, max + step, step).map(generateOption);
21
+ return min === 0 ? options.slice(1, options.length) : options;
22
+ });
23
+ const PerPageSelector = (props) => {
24
+ const [isOpened, setIsOpened] = useState(false);
25
+ const { pageSize, onPageSizeChange, perPageOptions, maxPerPage, perPageStep, minPerPage } = props;
26
+ const options = useMemo(() => {
27
+ if (perPageOptions)
28
+ return perPageOptions.map(generateOption);
29
+ return getOptions(perPageStep, minPerPage, maxPerPage);
30
+ }, [maxPerPage, minPerPage, perPageOptions, perPageStep]);
31
+ const actionRef = useRef({});
32
+ const btnRef = useRef(null);
33
+ useEffect(() => {
34
+ if (isOpened) {
35
+ actionRef.current.setActiveDescendant(pageSize.toString());
36
+ actionRef.current.scrollOptionIntoView(pageSize.toString());
37
+ }
38
+ }, [isOpened]);
39
+ const { width } = useOnElementResize(btnRef);
40
+ return /* @__PURE__ */ React2.createElement(DSDropdownMenuV2, {
41
+ isOpened,
42
+ options,
43
+ selectedOptions: { [pageSize.toString()]: true },
44
+ onOptionClick: (_, clickedOption) => {
45
+ onPageSizeChange(clickedOption.value);
46
+ setIsOpened(false);
47
+ btnRef.current.focus();
48
+ },
49
+ onClickOutside: () => {
50
+ setIsOpened(false);
51
+ btnRef.current.focus();
52
+ },
53
+ customOffset: [0, 2],
54
+ startPlacementPreference: "top-end",
55
+ actionRef,
56
+ minWidth: width + 25,
57
+ maxHeight: 300,
58
+ HeaderComp: () => "Per Page"
59
+ }, /* @__PURE__ */ React2.createElement("div", {
60
+ style: { marginLeft: "32px" }
61
+ }, /* @__PURE__ */ React2.createElement(PaginationDropdownButton, {
62
+ buttonType: "raw",
63
+ onClick: () => setIsOpened(true),
64
+ "aria-pressed": isOpened,
65
+ innerRef: btnRef
66
+ }, pageSize, " / page", /* @__PURE__ */ React2.createElement(ChevronDown, {
67
+ color: ["brand-primary", "700"]
68
+ }))));
69
+ };
70
+ var PerPageSelector_default = PerPageSelector;
71
+ export {
72
+ PerPageSelector_default as default
73
+ };
74
+ //# sourceMappingURL=PerPageSelector.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/parts/PerPageSelector.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport memoize from 'memoize-one';\nimport { range, useOnElementResize } from '@elliemae/ds-utilities';\nimport { DSDropdownMenuV2 } from '@elliemae/ds-dropdownmenu';\nimport { ChevronDown } from '@elliemae/ds-icons';\nimport { DSPaginationProps } from '../index.d';\nimport { PaginationDropdownButton } from '../styled';\n\nconst generateOption = (value) => {\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 };\n};\n\nconst getOptions = memoize((step, min, max) => {\n const options = range(min, max + step, step).map(generateOption);\n return min === 0 ? options.slice(1, options.length) : options;\n});\n\nconst PerPageSelector: React.ComponentType<\n Pick<\n DSPaginationProps,\n 'pageSize' | 'onPageSizeChange' | 'perPageOptions' | 'perPageStep' | 'minPerPage' | 'maxPerPage'\n >\n> = (props) => {\n const [isOpened, setIsOpened] = useState(false);\n const { pageSize, onPageSizeChange, perPageOptions, maxPerPage, perPageStep, minPerPage } = props;\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 } = useOnElementResize(btnRef);\n\n return (\n <DSDropdownMenuV2\n isOpened={isOpened}\n options={options}\n selectedOptions={{ [pageSize.toString()]: true }}\n onOptionClick={(_, clickedOption) => {\n onPageSizeChange(clickedOption.value);\n setIsOpened(false);\n btnRef.current.focus();\n }}\n onClickOutside={() => {\n setIsOpened(false);\n btnRef.current.focus();\n }}\n customOffset={[0, 2]}\n startPlacementPreference=\"top-end\"\n actionRef={actionRef}\n minWidth={width + 25}\n maxHeight={300}\n HeaderComp={() => 'Per Page'}\n >\n <div style={{ marginLeft: '32px' }}>\n <PaginationDropdownButton\n buttonType=\"raw\"\n onClick={() => setIsOpened(true)}\n aria-pressed={isOpened}\n innerRef={btnRef}\n >\n {pageSize} / page\n <ChevronDown color={['brand-primary', '700']} />\n </PaginationDropdownButton>\n </div>\n </DSDropdownMenuV2>\n );\n};\n\nexport default PerPageSelector;\n"],
5
+ "mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AAEA;AAEA,MAAM,iBAAiB,CAAC,UAAU;AAChC,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA;AAET,SAAO;AAAA,IACL,MAAM,MAAM;AAAA,IACZ;AAAA,IACA,OAAO,MAAM;AAAA,IACb,MAAM;AAAA;AAAA;AAIV,MAAM,aAAa,QAAQ,CAAC,MAAM,KAAK,QAAQ;AAC7C,QAAM,UAAU,MAAM,KAAK,MAAM,MAAM,MAAM,IAAI;AACjD,SAAO,QAAQ,IAAI,QAAQ,MAAM,GAAG,QAAQ,UAAU;AAAA;AAGxD,MAAM,kBAKF,CAAC,UAAU;AACb,QAAM,CAAC,UAAU,eAAe,SAAS;AACzC,QAAM,EAAE,UAAU,kBAAkB,gBAAgB,YAAY,aAAa,eAAe;AAE5F,QAAM,UAAU,QAAQ,MAAM;AAC5B,QAAI;AAAgB,aAAO,eAAe,IAAI;AAC9C,WAAO,WAAW,aAAa,YAAY;AAAA,KAC1C,CAAC,YAAY,YAAY,gBAAgB;AAE5C,QAAM,YAAY,OAA+C;AACjE,QAAM,SAAS,OAA0B;AAEzC,YAAU,MAAM;AACd,QAAI,UAAU;AACZ,gBAAU,QAAQ,oBAAoB,SAAS;AAC/C,gBAAU,QAAQ,qBAAqB,SAAS;AAAA;AAAA,KAGjD,CAAC;AAEJ,QAAM,EAAE,UAAU,mBAAmB;AAErC,SACE,qCAAC,kBAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA,iBAAiB,GAAG,SAAS,aAAa;AAAA,IAC1C,eAAe,CAAC,GAAG,kBAAkB;AACnC,uBAAiB,cAAc;AAC/B,kBAAY;AACZ,aAAO,QAAQ;AAAA;AAAA,IAEjB,gBAAgB,MAAM;AACpB,kBAAY;AACZ,aAAO,QAAQ;AAAA;AAAA,IAEjB,cAAc,CAAC,GAAG;AAAA,IAClB,0BAAyB;AAAA,IACzB;AAAA,IACA,UAAU,QAAQ;AAAA,IAClB,WAAW;AAAA,IACX,YAAY,MAAM;AAAA,KAElB,qCAAC,OAAD;AAAA,IAAK,OAAO,EAAE,YAAY;AAAA,KACxB,qCAAC,0BAAD;AAAA,IACE,YAAW;AAAA,IACX,SAAS,MAAM,YAAY;AAAA,IAC3B,gBAAc;AAAA,IACd,UAAU;AAAA,KAET,UAAS,WACV,qCAAC,aAAD;AAAA,IAAa,OAAO,CAAC,iBAAiB;AAAA;AAAA;AAOhD,IAAO,0BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,53 @@
1
+ import * as React from "react";
2
+ import { PropTypes } from "react-desc";
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(PropTypes.oneOfType([
12
+ PropTypes.number,
13
+ PropTypes.shape({
14
+ dsId: PropTypes.string,
15
+ value: PropTypes.number,
16
+ label: PropTypes.string,
17
+ type: PropTypes.oneOf(["single"])
18
+ })
19
+ ])).description("The available options for page size").defaultValue([10]),
20
+ perPageStep: PropTypes.number.description("Step for the per page options").defaultValue(5),
21
+ minPerPage: PropTypes.number.description("Step for the per page options").defaultValue(0),
22
+ maxPerPage: PropTypes.number.description("Step for the per page options").defaultValue(100),
23
+ onPageSizeChange: PropTypes.func.description("Function invoked when the page size changes").defaultValue(() => null),
24
+ onPreviousPage: PropTypes.func.description("Function invoked when the previous button is pressed").defaultValue(() => null),
25
+ onPageChange: PropTypes.func.description("Function invoked when the page changes").defaultValue(() => null),
26
+ onNextPage: PropTypes.func.description("Function invoked when next button is pressed").defaultValue(() => null),
27
+ pageDetails: PropTypes.arrayOf(PropTypes.string).description("Details to provide for each page").defaultValue([]),
28
+ pageDetailsTitle: PropTypes.string.description("The title of the details (usually a column of your dataset)").defaultValue(""),
29
+ width: PropTypes.any.description("Width for the container of the pagination").defaultValue("100%")
30
+ };
31
+ const defaultProps = {
32
+ pageIndex: 1,
33
+ canPreviousPage: true,
34
+ canNextPage: true,
35
+ pageSize: 10,
36
+ showPerPageSelector: true,
37
+ perPageOptions: [10],
38
+ perPageStep: 5,
39
+ minPerPage: 0,
40
+ maxPerPage: 100,
41
+ onPageSizeChange: emptyFunc,
42
+ onPreviousPage: emptyFunc,
43
+ onNextPage: emptyFunc,
44
+ onPageChange: emptyFunc,
45
+ pageDetails: [],
46
+ pageDetailsTitle: "",
47
+ width: "100%"
48
+ };
49
+ export {
50
+ defaultProps,
51
+ propTypes
52
+ };
53
+ //# 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 'react-desc';\n\nconst emptyFunc = (): void => 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};\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;ACAA;AAEA,MAAM,YAAY,MAAY;AAEvB,MAAM,YAAY;AAAA,EACvB,WAAW,UAAU,OAAO,YAAY;AAAA,EACxC,WAAW,UAAU,OAAO,YAAY,8CAA8C,aAAa;AAAA,EACnG,iBAAiB,UAAU,KAAK,YAAY,kDAAkD,aAAa;AAAA,EAC3G,aAAa,UAAU,KAAK,YAAY,8CAA8C,aAAa;AAAA,EACnG,UAAU,UAAU,OAAO,YAAY,yBAAyB,aAAa;AAAA,EAC7E,qBAAqB,UAAU,KAAK,YAAY,qCAAqC,aAAa;AAAA,EAClG,gBAAgB,UAAU,QACxB,UAAU,UAAU;AAAA,IAClB,UAAU;AAAA,IACV,UAAU,MAAM;AAAA,MACd,MAAM,UAAU;AAAA,MAChB,OAAO,UAAU;AAAA,MACjB,OAAO,UAAU;AAAA,MACjB,MAAM,UAAU,MAAM,CAAC;AAAA;AAAA,MAI1B,YAAY,uCACZ,aAAa,CAAC;AAAA,EACjB,aAAa,UAAU,OAAO,YAAY,iCAAiC,aAAa;AAAA,EACxF,YAAY,UAAU,OAAO,YAAY,iCAAiC,aAAa;AAAA,EACvF,YAAY,UAAU,OAAO,YAAY,iCAAiC,aAAa;AAAA,EACvF,kBAAkB,UAAU,KAAK,YAAY,+CAA+C,aAAa,MAAM;AAAA,EAC/G,gBAAgB,UAAU,KACvB,YAAY,wDACZ,aAAa,MAAM;AAAA,EACtB,cAAc,UAAU,KAAK,YAAY,0CAA0C,aAAa,MAAM;AAAA,EACtG,YAAY,UAAU,KAAK,YAAY,gDAAgD,aAAa,MAAM;AAAA,EAC1G,aAAa,UAAU,QAAQ,UAAU,QAAQ,YAAY,oCAAoC,aAAa;AAAA,EAC9G,kBAAkB,UAAU,OACzB,YAAY,+DACZ,aAAa;AAAA,EAChB,OAAO,UAAU,IAAI,YAAY,6CAA6C,aAAa;AAAA;AAGtF,MAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB,gBAAgB,CAAC;AAAA,EACjB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,OAAO;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,84 @@
1
+ import * as React from "react";
2
+ import { Grid } from "@elliemae/ds-grid";
3
+ import { DSButtonV2 } from "@elliemae/ds-button";
4
+ import styled from "styled-components";
5
+ import { space, typography } from "@xstyled/styled-components";
6
+ const sizeToCss = (size) => typeof size === "number" && !Number.isNaN(size) ? `${size}px` : size;
7
+ const styledFocusCss = ({ theme }) => `
8
+ &:after {
9
+ display: block;
10
+ content: ' ';
11
+ position: absolute;
12
+ top: 0;
13
+ left: 0;
14
+ right: 0;
15
+ bottom: 0;
16
+ border: 2px solid ${theme.colors.brand[700]};
17
+ pointer-events: none;
18
+ z-index: 7;
19
+ }`;
20
+ const PaginationContainer = styled(Grid)`
21
+ padding: 0 ${(props) => props.theme.space.xs};
22
+ height: 42px;
23
+ width: ${(props) => sizeToCss(props.width) || "100%"};
24
+ max-width: 100%;
25
+ align-items: center;
26
+ box-shadow: 0 -1px 3px 0 rgba(0, 0, 0, 0.5);
27
+ `;
28
+ const PaginationWrapper = styled.div`
29
+ display: flex;
30
+ justify-content: center;
31
+ align-items: center;
32
+ margin: 0 32px;
33
+ `;
34
+ const PaginationSeparator = styled(Grid)`
35
+ background-color: ${(props) => props.theme.colors.neutral[300]};
36
+ width: 1px;
37
+ height: ${(props) => props.height || "30px"};
38
+ `;
39
+ const PaginationBoldText = styled.span`
40
+ font-weight: ${(props) => props.theme.fontWeights.semibold};
41
+ ${typography}
42
+ ${space}
43
+ position: relative;
44
+ `;
45
+ const PaginationDropdownButton = styled(DSButtonV2)`
46
+ height: 42px;
47
+ display: flex;
48
+ justify-content: center;
49
+ align-items: center;
50
+ position: relative;
51
+ padding-left: 16px;
52
+ padding-right: 16px;
53
+ grid-gap: 8px;
54
+ font-size: 13px;
55
+ color: ${(props) => props.theme.colors.neutral[700]};
56
+ cursor: pointer;
57
+ border-radius: 0;
58
+ font-weight: ${(props) => props.theme.fontWeights.regular};
59
+ :focus {
60
+ ${styledFocusCss}
61
+ }
62
+ `;
63
+ const PreviousNextPageButton = styled(DSButtonV2)`
64
+ height: 42px;
65
+ display: grid;
66
+ place-items: center;
67
+ position: relative;
68
+ padding-left: 8px;
69
+ padding-right: 8px;
70
+ border-radius: 0;
71
+ cursor: ${(props) => props.disabled ? "not-allowed" : "pointer"};
72
+ :focus {
73
+ ${styledFocusCss}
74
+ }
75
+ `;
76
+ export {
77
+ PaginationBoldText,
78
+ PaginationContainer,
79
+ PaginationDropdownButton,
80
+ PaginationSeparator,
81
+ PaginationWrapper,
82
+ PreviousNextPageButton
83
+ };
84
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/styled.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { Grid } from '@elliemae/ds-grid';\nimport { DSButtonV2 } from '@elliemae/ds-button';\nimport styled from 'styled-components';\nimport { space, typography, TypographyProps } from '@xstyled/styled-components';\n\nconst sizeToCss = (size) => (typeof size === 'number' && !Number.isNaN(size) ? `${size}px` : size);\n\nconst styledFocusCss = ({ theme }) => `\n&:after {\n display: block;\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border: 2px solid ${theme.colors.brand[700]};\n pointer-events: none;\n z-index: 7;\n}`;\n\nexport const PaginationContainer = styled(Grid)`\n padding: 0 ${(props) => props.theme.space.xs};\n height: 42px;\n width: ${(props) => sizeToCss(props.width) || '100%'};\n max-width: 100%;\n align-items: center;\n box-shadow: 0 -1px 3px 0 rgba(0, 0, 0, 0.5);\n`;\n\nexport const PaginationWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 0 32px;\n`;\n\nexport const PaginationSeparator = styled(Grid)`\n background-color: ${(props) => props.theme.colors.neutral[300]};\n width: 1px;\n height: ${(props) => props.height || '30px'};\n`;\n\nexport const PaginationBoldText = styled.span<TypographyProps>`\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n ${typography}\n ${space}\n position: relative;\n`;\n\nexport const PaginationDropdownButton = styled(DSButtonV2)`\n height: 42px;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n padding-left: 16px;\n padding-right: 16px;\n grid-gap: 8px;\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral[700]};\n cursor: pointer;\n border-radius: 0;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n :focus {\n ${styledFocusCss}\n }\n`;\n\nexport const PreviousNextPageButton = styled(DSButtonV2)`\n height: 42px;\n display: grid;\n place-items: center;\n position: relative;\n padding-left: 8px;\n padding-right: 8px;\n border-radius: 0;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n :focus {\n ${styledFocusCss}\n }\n`;\n"],
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAEA,MAAM,YAAY,CAAC,SAAU,OAAO,SAAS,YAAY,CAAC,OAAO,MAAM,QAAQ,GAAG,WAAW;AAE7F,MAAM,iBAAiB,CAAC,EAAE,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAShB,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAKlC,MAAM,sBAAsB,OAAO;AAAA,eAC3B,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAAA,WAEjC,CAAC,UAAU,UAAU,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAMzC,MAAM,oBAAoB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAOjC,MAAM,sBAAsB,OAAO;AAAA,sBACpB,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,YAEhD,CAAC,UAAU,MAAM,UAAU;AAAA;AAGhC,MAAM,qBAAqB,OAAO;AAAA,iBACxB,CAAC,UAAU,MAAM,MAAM,YAAY;AAAA,IAChD;AAAA,IACA;AAAA;AAAA;AAIG,MAAM,2BAA2B,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAUpC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA,iBAGhC,CAAC,UAAU,MAAM,MAAM,YAAY;AAAA;AAAA,MAE9C;AAAA;AAAA;AAIC,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQjC,CAAC,UAAW,MAAM,WAAW,gBAAgB;AAAA;AAAA,MAEnD;AAAA;AAAA;",
6
+ "names": []
7
+ }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/package.json CHANGED
@@ -1,55 +1,58 @@
1
1
  {
2
2
  "name": "@elliemae/ds-pagination",
3
- "version": "2.2.2-rc.1",
3
+ "version": "2.3.0-alpha.10",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - Pagination",
6
- "module": "./esm/index.js",
7
- "main": "./cjs/index.js",
8
- "types": "./types/index.d.ts",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "module": "./dist/esm/index.js",
10
+ "main": "./dist/cjs/index.js",
11
+ "types": "./dist/types/index.d.ts",
9
12
  "exports": {
10
13
  ".": {
11
- "import": "./esm/index.js",
12
- "require": "./cjs/index.js"
14
+ "import": "./dist/esm/index.js",
15
+ "require": "./dist/cjs/index.js"
13
16
  },
14
17
  "./styled": {
15
- "import": "./esm/styled.js",
16
- "require": "./cjs/styled.js"
18
+ "import": "./dist/esm/styled.js",
19
+ "require": "./dist/cjs/styled.js"
17
20
  },
18
21
  "./props": {
19
- "import": "./esm/props.js",
20
- "require": "./cjs/props.js"
22
+ "import": "./dist/esm/props.js",
23
+ "require": "./dist/cjs/props.js"
21
24
  },
22
25
  "./parts/PerPageSelector": {
23
- "import": "./esm/parts/PerPageSelector.js",
24
- "require": "./cjs/parts/PerPageSelector.js"
26
+ "import": "./dist/esm/parts/PerPageSelector.js",
27
+ "require": "./dist/cjs/parts/PerPageSelector.js"
25
28
  },
26
29
  "./parts/Paginator": {
27
- "import": "./esm/parts/Paginator.js",
28
- "require": "./cjs/parts/Paginator.js"
30
+ "import": "./dist/esm/parts/Paginator.js",
31
+ "require": "./dist/cjs/parts/Paginator.js"
29
32
  },
30
33
  "./parts/PaginationContent": {
31
- "import": "./esm/parts/PaginationContent.js",
32
- "require": "./cjs/parts/PaginationContent.js"
34
+ "import": "./dist/esm/parts/PaginationContent.js",
35
+ "require": "./dist/cjs/parts/PaginationContent.js"
33
36
  },
34
37
  "./parts/PagePrevButton": {
35
- "import": "./esm/parts/PagePrevButton.js",
36
- "require": "./cjs/parts/PagePrevButton.js"
38
+ "import": "./dist/esm/parts/PagePrevButton.js",
39
+ "require": "./dist/cjs/parts/PagePrevButton.js"
37
40
  },
38
41
  "./parts/PageNextButton": {
39
- "import": "./esm/parts/PageNextButton.js",
40
- "require": "./cjs/parts/PageNextButton.js"
42
+ "import": "./dist/esm/parts/PageNextButton.js",
43
+ "require": "./dist/cjs/parts/PageNextButton.js"
41
44
  },
42
45
  "./PaginationDataTestID": {
43
- "import": "./esm/PaginationDataTestID.js",
44
- "require": "./cjs/PaginationDataTestID.js"
46
+ "import": "./dist/esm/PaginationDataTestID.js",
47
+ "require": "./dist/cjs/PaginationDataTestID.js"
45
48
  },
46
49
  "./Pagination": {
47
- "import": "./esm/Pagination.js",
48
- "require": "./cjs/Pagination.js"
50
+ "import": "./dist/esm/Pagination.js",
51
+ "require": "./dist/cjs/Pagination.js"
49
52
  },
50
53
  "./hooks/usePaginationSearch": {
51
- "import": "./esm/hooks/usePaginationSearch.js",
52
- "require": "./cjs/hooks/usePaginationSearch.js"
54
+ "import": "./dist/esm/hooks/usePaginationSearch.js",
55
+ "require": "./dist/cjs/hooks/usePaginationSearch.js"
53
56
  }
54
57
  },
55
58
  "sideEffects": [
@@ -61,23 +64,17 @@
61
64
  "url": "https://git.elliemae.io/platform-ui/dimsum.git"
62
65
  },
63
66
  "engines": {
64
- "npm": ">=7",
65
- "node": ">=14"
67
+ "pnpm": ">=6",
68
+ "node": ">=16"
66
69
  },
67
70
  "author": "ICE MT",
68
- "scripts": {
69
- "dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
70
- "prebuild": "exit 0",
71
- "predev": "exit 0",
72
- "build": "node ../../scripts/build/build.js"
73
- },
74
71
  "dependencies": {
75
- "@elliemae/ds-button": "2.2.2-rc.1",
76
- "@elliemae/ds-dropdownmenu": "2.2.2-rc.1",
77
- "@elliemae/ds-grid": "2.2.2-rc.1",
78
- "@elliemae/ds-icons": "2.2.2-rc.1",
79
- "@elliemae/ds-props-helpers": "2.2.2-rc.1",
80
- "@elliemae/ds-utilities": "2.2.2-rc.1",
72
+ "@elliemae/ds-button": "2.3.0-alpha.10",
73
+ "@elliemae/ds-dropdownmenu": "2.3.0-alpha.10",
74
+ "@elliemae/ds-grid": "2.3.0-alpha.10",
75
+ "@elliemae/ds-icons": "2.3.0-alpha.10",
76
+ "@elliemae/ds-props-helpers": "2.3.0-alpha.10",
77
+ "@elliemae/ds-utilities": "2.3.0-alpha.10",
81
78
  "memoize-one": "~5.1.1",
82
79
  "react-desc": "~4.1.3"
83
80
  },
@@ -94,7 +91,12 @@
94
91
  },
95
92
  "publishConfig": {
96
93
  "access": "public",
97
- "directory": "dist",
98
- "generateSubmodules": true
94
+ "typeSafety": false
95
+ },
96
+ "scripts": {
97
+ "dev": "cross-env NODE_ENV=development && node ../../scripts/build/build.js -w",
98
+ "prebuild": "exit 0",
99
+ "predev": "exit 0",
100
+ "build": "node ../../scripts/build/build.js"
99
101
  }
100
102
  }