@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.
- package/dist/cjs/DSPaginationDefinitions.js +13 -1
- package/dist/cjs/DSPaginationDefinitions.js.map +2 -2
- package/dist/cjs/Pagination.js +7 -7
- package/dist/cjs/Pagination.js.map +2 -2
- package/dist/cjs/PaginationDataTestID.js +3 -1
- package/dist/cjs/PaginationDataTestID.js.map +2 -2
- package/dist/cjs/index.js +32 -2
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/package.json +7 -0
- package/dist/cjs/parts/DSPageNextButton.js +70 -0
- package/dist/cjs/parts/DSPageNextButton.js.map +7 -0
- package/dist/cjs/parts/DSPagePrevButton.js +70 -0
- package/dist/cjs/parts/DSPagePrevButton.js.map +7 -0
- package/dist/cjs/parts/DSPaginationContainer.js +57 -0
- package/dist/cjs/parts/DSPaginationContainer.js.map +7 -0
- package/dist/cjs/parts/{PageNextButton.js → DSPaginator/createPaginatorHeader.js} +19 -25
- package/dist/cjs/parts/DSPaginator/createPaginatorHeader.js.map +7 -0
- package/dist/cjs/parts/DSPaginator/getOptions.js +72 -0
- package/dist/cjs/parts/DSPaginator/getOptions.js.map +7 -0
- package/dist/cjs/parts/DSPaginator/index.js +144 -0
- package/dist/cjs/parts/DSPaginator/index.js.map +7 -0
- package/dist/cjs/{hooks → parts/DSPaginator}/usePaginationSearch.js +5 -2
- package/dist/cjs/parts/DSPaginator/usePaginationSearch.js.map +7 -0
- package/dist/cjs/parts/DSPaginator/usePaginator.js +87 -0
- package/dist/cjs/parts/DSPaginator/usePaginator.js.map +7 -0
- package/dist/cjs/parts/{PagePrevButton.js → DSPerPageSelector/getOptions.js} +21 -22
- package/dist/cjs/parts/DSPerPageSelector/getOptions.js.map +7 -0
- package/dist/cjs/parts/{PerPageSelector.js → DSPerPageSelector/index.js} +37 -49
- package/dist/cjs/parts/DSPerPageSelector/index.js.map +7 -0
- package/dist/cjs/parts/DSPerPageSelector/usePerPageSelector.js +68 -0
- package/dist/cjs/parts/DSPerPageSelector/usePerPageSelector.js.map +7 -0
- package/dist/cjs/parts/PaginationContent.js +37 -52
- package/dist/cjs/parts/PaginationContent.js.map +3 -3
- package/dist/cjs/parts/index.js +45 -0
- package/dist/cjs/parts/index.js.map +7 -0
- package/dist/cjs/props.js +81 -0
- package/dist/cjs/props.js.map +7 -0
- package/dist/cjs/react-desc-prop-types.js +107 -33
- package/dist/cjs/react-desc-prop-types.js.map +2 -2
- package/dist/cjs/styled.js +17 -27
- package/dist/cjs/styled.js.map +2 -2
- package/dist/esm/DSPaginationDefinitions.js +13 -1
- package/dist/esm/DSPaginationDefinitions.js.map +2 -2
- package/dist/esm/Pagination.js +4 -4
- package/dist/esm/Pagination.js.map +1 -1
- package/dist/esm/PaginationDataTestID.js +3 -1
- package/dist/esm/PaginationDataTestID.js.map +2 -2
- package/dist/esm/index.js +39 -1
- package/dist/esm/index.js.map +3 -3
- package/dist/esm/package.json +7 -0
- package/dist/esm/parts/DSPageNextButton.js +50 -0
- package/dist/esm/parts/DSPageNextButton.js.map +7 -0
- package/dist/esm/parts/DSPagePrevButton.js +50 -0
- package/dist/esm/parts/DSPagePrevButton.js.map +7 -0
- package/dist/esm/parts/DSPaginationContainer.js +31 -0
- package/dist/esm/parts/DSPaginationContainer.js.map +7 -0
- package/dist/esm/parts/DSPaginator/createPaginatorHeader.js +20 -0
- package/dist/esm/parts/DSPaginator/createPaginatorHeader.js.map +7 -0
- package/dist/esm/parts/DSPaginator/getOptions.js +46 -0
- package/dist/esm/parts/DSPaginator/getOptions.js.map +7 -0
- package/dist/esm/parts/DSPaginator/index.js +118 -0
- package/dist/esm/parts/DSPaginator/index.js.map +7 -0
- package/dist/esm/{hooks → parts/DSPaginator}/usePaginationSearch.js +5 -2
- package/dist/esm/parts/DSPaginator/usePaginationSearch.js.map +7 -0
- package/dist/esm/parts/DSPaginator/usePaginator.js +61 -0
- package/dist/esm/parts/DSPaginator/usePaginator.js.map +7 -0
- package/dist/esm/parts/DSPerPageSelector/getOptions.js +22 -0
- package/dist/esm/parts/DSPerPageSelector/getOptions.js.map +7 -0
- package/dist/esm/parts/DSPerPageSelector/index.js +76 -0
- package/dist/esm/parts/DSPerPageSelector/index.js.map +7 -0
- package/dist/esm/parts/DSPerPageSelector/usePerPageSelector.js +42 -0
- package/dist/esm/parts/DSPerPageSelector/usePerPageSelector.js.map +7 -0
- package/dist/esm/parts/PaginationContent.js +37 -52
- package/dist/esm/parts/PaginationContent.js.map +2 -2
- package/dist/esm/parts/index.js +19 -0
- package/dist/esm/parts/index.js.map +7 -0
- package/dist/esm/props.js +55 -0
- package/dist/esm/props.js.map +7 -0
- package/dist/esm/react-desc-prop-types.js +88 -14
- package/dist/esm/react-desc-prop-types.js.map +2 -2
- package/dist/esm/styled.js +15 -25
- package/dist/esm/styled.js.map +2 -2
- package/dist/types/DSPaginationDefinitions.d.ts +6 -0
- package/dist/types/Pagination.d.ts +2 -2
- package/dist/types/PaginationDataTestID.d.ts +2 -0
- package/dist/types/index.d.ts +17 -1
- package/dist/types/parts/DSPageNextButton.d.ts +4 -0
- package/dist/types/parts/DSPagePrevButton.d.ts +4 -0
- package/dist/types/parts/DSPaginationContainer.d.ts +4 -0
- package/dist/types/parts/DSPaginator/createPaginatorHeader.d.ts +6 -0
- package/dist/types/parts/DSPaginator/getOptions.d.ts +7 -0
- package/dist/types/parts/DSPaginator/index.d.ts +4 -0
- package/dist/types/parts/DSPaginator/usePaginationSearch.d.ts +2 -0
- package/dist/types/parts/DSPaginator/usePaginator.d.ts +17 -0
- package/dist/types/parts/DSPerPageSelector/getOptions.d.ts +3 -0
- package/dist/types/parts/DSPerPageSelector/index.d.ts +4 -0
- package/dist/types/parts/DSPerPageSelector/usePerPageSelector.d.ts +13 -0
- package/dist/types/parts/PaginationContent.d.ts +1 -1
- package/dist/types/parts/index.d.ts +5 -0
- package/dist/types/props.d.ts +20 -0
- package/dist/types/react-desc-prop-types.d.ts +528 -9
- package/dist/types/styled.d.ts +7 -9
- package/dist/types/tests/a11y/axe.test.d.ts +1 -0
- package/dist/types/tests/callbacks/paginator.test.d.ts +1 -0
- package/dist/types/tests/callbacks/per-page-selector.test.d.ts +1 -0
- package/dist/types/tests/callbacks/prev-next-buttons.test.d.ts +1 -0
- package/dist/types/tests/keyboard/navigation.test.d.ts +1 -0
- package/dist/types/tests/keyboard/paginator-search.test.d.ts +1 -0
- package/dist/types/tests/render/page-count-loading.test.d.ts +1 -0
- package/dist/types/tests/render/paginator.test.d.ts +1 -0
- package/dist/types/tests/render/per-page-selector.test.d.ts +1 -0
- package/dist/types/tests/render/segmented-paginator.test.d.ts +1 -0
- package/dist/types/tests/render/simple.render.test.d.ts +1 -0
- package/package.json +17 -11
- package/dist/cjs/hooks/usePaginationSearch.js.map +0 -7
- package/dist/cjs/parts/PageNextButton.js.map +0 -7
- package/dist/cjs/parts/PagePrevButton.js.map +0 -7
- package/dist/cjs/parts/Paginator.js +0 -162
- package/dist/cjs/parts/Paginator.js.map +0 -7
- package/dist/cjs/parts/PerPageSelector.js.map +0 -7
- package/dist/esm/hooks/usePaginationSearch.js.map +0 -7
- package/dist/esm/parts/PageNextButton.js +0 -26
- package/dist/esm/parts/PageNextButton.js.map +0 -7
- package/dist/esm/parts/PagePrevButton.js +0 -23
- package/dist/esm/parts/PagePrevButton.js.map +0 -7
- package/dist/esm/parts/Paginator.js +0 -136
- package/dist/esm/parts/Paginator.js.map +0 -7
- package/dist/esm/parts/PerPageSelector.js +0 -88
- package/dist/esm/parts/PerPageSelector.js.map +0 -7
- package/dist/types/hooks/usePaginationSearch.d.ts +0 -1
- package/dist/types/parts/PageNextButton.d.ts +0 -3
- package/dist/types/parts/PagePrevButton.d.ts +0 -3
- package/dist/types/parts/Paginator.d.ts +0 -11
- 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 {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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 {
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;
|
|
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-
|
|
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
|
-
|
|
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
|