@elliemae/ds-pagination 2.2.1 → 2.3.0-alpha.4

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 (49) hide show
  1. package/cjs/Pagination.js +49 -35
  2. package/cjs/Pagination.js.map +7 -0
  3. package/cjs/PaginationDataTestID.js +37 -9
  4. package/cjs/PaginationDataTestID.js.map +7 -0
  5. package/cjs/hooks/usePaginationSearch.js +48 -20
  6. package/cjs/hooks/usePaginationSearch.js.map +7 -0
  7. package/cjs/index.d.js +27 -2
  8. package/cjs/index.d.js.map +7 -0
  9. package/cjs/index.js +28 -10
  10. package/cjs/index.js.map +7 -0
  11. package/cjs/parts/PageNextButton.js +52 -32
  12. package/cjs/parts/PageNextButton.js.map +7 -0
  13. package/cjs/parts/PagePrevButton.js +51 -31
  14. package/cjs/parts/PagePrevButton.js.map +7 -0
  15. package/cjs/parts/PaginationContent.js +91 -77
  16. package/cjs/parts/PaginationContent.js.map +7 -0
  17. package/cjs/parts/Paginator.js +112 -124
  18. package/cjs/parts/Paginator.js.map +7 -0
  19. package/cjs/parts/PerPageSelector.js +68 -63
  20. package/cjs/parts/PerPageSelector.js.map +7 -0
  21. package/cjs/props.js +63 -34
  22. package/cjs/props.js.map +7 -0
  23. package/cjs/styled.js +112 -47
  24. package/cjs/styled.js.map +7 -0
  25. package/esm/Pagination.js +17 -23
  26. package/esm/Pagination.js.map +7 -0
  27. package/esm/PaginationDataTestID.js +8 -5
  28. package/esm/PaginationDataTestID.js.map +7 -0
  29. package/esm/hooks/usePaginationSearch.js +16 -13
  30. package/esm/hooks/usePaginationSearch.js.map +7 -0
  31. package/esm/index.d.js +2 -1
  32. package/esm/index.d.js.map +7 -0
  33. package/esm/index.js +3 -1
  34. package/esm/index.js.map +7 -0
  35. package/esm/parts/PageNextButton.js +23 -24
  36. package/esm/parts/PageNextButton.js.map +7 -0
  37. package/esm/parts/PagePrevButton.js +22 -23
  38. package/esm/parts/PagePrevButton.js.map +7 -0
  39. package/esm/parts/PaginationContent.js +62 -68
  40. package/esm/parts/PaginationContent.js.map +7 -0
  41. package/esm/parts/Paginator.js +76 -110
  42. package/esm/parts/Paginator.js.map +7 -0
  43. package/esm/parts/PerPageSelector.js +32 -49
  44. package/esm/parts/PerPageSelector.js.map +7 -0
  45. package/esm/props.js +34 -29
  46. package/esm/props.js.map +7 -0
  47. package/esm/styled.js +83 -33
  48. package/esm/styled.js.map +7 -0
  49. package/package.json +7 -7
@@ -1,78 +1,92 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _jsx = require('@babel/runtime/helpers/jsx');
6
- require('react');
7
- var Grid = require('@elliemae/ds-grid');
8
- var styled = require('../styled.js');
9
- var PerPageSelector = require('./PerPageSelector.js');
10
- var Paginator = require('./Paginator.js');
11
- var PaginationDataTestID = require('../PaginationDataTestID.js');
12
- var PagePrevButton = require('./PagePrevButton.js');
13
- var PageNextButton = require('./PageNextButton.js');
14
- var jsxRuntime = require('react/jsx-runtime');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
19
- var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
20
-
21
- var _PaginationSeparator;
22
- const PaginationContent = _ref => {
23
- let {
24
- pageIndex,
25
- pageSize,
26
- canPreviousPage,
27
- canNextPage,
28
- onPageSizeChange,
29
- onNextPage,
30
- onPreviousPage,
31
- onPageChange,
32
- pageCount,
33
- showPerPageSelector,
34
- pageDetails,
35
- pageDetailsTitle,
36
- perPageOptions,
37
- maxPerPage,
38
- perPageStep,
39
- minPerPage,
40
- width
41
- } = _ref;
42
- return /*#__PURE__*/_jsx__default["default"](styled.PaginationContainer, {
43
- justifyContent: "center",
44
- alignItems: "center",
45
- width: width,
46
- "data-testid": PaginationDataTestID.PAGINATION_DATA_TESTID.CONTAINER
47
- }, void 0, /*#__PURE__*/_jsx__default["default"](styled.PaginationWrapper, {}, void 0, showPerPageSelector && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
48
- children: [/*#__PURE__*/_jsx__default["default"](PerPageSelector, {
49
- pageSize: pageSize,
50
- onPageSizeChange: onPageSizeChange,
51
- perPageOptions: perPageOptions,
52
- maxPerPage: maxPerPage,
53
- perPageStep: perPageStep,
54
- minPerPage: minPerPage
55
- }), _PaginationSeparator || (_PaginationSeparator = /*#__PURE__*/_jsx__default["default"](styled.PaginationSeparator, {
56
- mr: 24
57
- }))]
58
- }), /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
59
- cols: ['auto', 'auto', 'auto', 'auto', 'auto'],
60
- mr: "32px",
61
- alignItems: "center"
62
- }, void 0, /*#__PURE__*/_jsx__default["default"](PagePrevButton.PagePrevButton, {
63
- canPreviousPage: canPreviousPage,
64
- onPreviousPage: onPreviousPage
65
- }), /*#__PURE__*/_jsx__default["default"](Paginator, {
66
- pageCount: pageCount,
67
- pageIndex: pageIndex,
68
- onNextPage: onNextPage,
69
- onPageChange: onPageChange,
70
- pageDetails: pageDetails,
71
- pageDetailsTitle: pageDetailsTitle
72
- }), /*#__PURE__*/_jsx__default["default"](PageNextButton.PageNextButton, {
73
- canNextPage: canNextPage,
74
- onNextPage: onNextPage
75
- }))));
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
76
11
  };
77
-
78
- exports.PaginationContent = PaginationContent;
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var PaginationContent_exports = {};
29
+ __export(PaginationContent_exports, {
30
+ PaginationContent: () => PaginationContent
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_react = __toESM(require("react"));
34
+ var import_ds_grid = require("@elliemae/ds-grid");
35
+ var import_styled = require("../styled");
36
+ var import_PerPageSelector = __toESM(require("./PerPageSelector"));
37
+ var import_Paginator = __toESM(require("./Paginator"));
38
+ var import_PaginationDataTestID = require("../PaginationDataTestID");
39
+ var import_PagePrevButton = require("./PagePrevButton");
40
+ var import_PageNextButton = require("./PageNextButton");
41
+ const PaginationContent = ({
42
+ pageIndex,
43
+ pageSize,
44
+ canPreviousPage,
45
+ canNextPage,
46
+ onPageSizeChange,
47
+ onNextPage,
48
+ onPreviousPage,
49
+ onPageChange,
50
+ pageCount,
51
+ showPerPageSelector,
52
+ pageDetails,
53
+ pageDetailsTitle,
54
+ perPageOptions,
55
+ maxPerPage,
56
+ perPageStep,
57
+ minPerPage,
58
+ width
59
+ }) => /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationContainer, {
60
+ justifyContent: "center",
61
+ alignItems: "center",
62
+ width,
63
+ "data-testid": import_PaginationDataTestID.PAGINATION_DATA_TESTID.CONTAINER
64
+ }, /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationWrapper, null, showPerPageSelector && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_PerPageSelector.default, {
65
+ pageSize,
66
+ onPageSizeChange,
67
+ perPageOptions,
68
+ maxPerPage,
69
+ perPageStep,
70
+ minPerPage
71
+ }), /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationSeparator, {
72
+ mr: 24
73
+ })), /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
74
+ cols: ["auto", "auto", "auto", "auto", "auto"],
75
+ mr: "32px",
76
+ alignItems: "center"
77
+ }, /* @__PURE__ */ import_react.default.createElement(import_PagePrevButton.PagePrevButton, {
78
+ canPreviousPage,
79
+ onPreviousPage
80
+ }), /* @__PURE__ */ import_react.default.createElement(import_Paginator.default, {
81
+ pageCount,
82
+ pageIndex,
83
+ onNextPage,
84
+ onPageChange,
85
+ pageDetails,
86
+ pageDetailsTitle
87
+ }), /* @__PURE__ */ import_react.default.createElement(import_PageNextButton.PageNextButton, {
88
+ canNextPage,
89
+ onNextPage
90
+ }))));
91
+ module.exports = __toCommonJS(PaginationContent_exports);
92
+ //# sourceMappingURL=PaginationContent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/PaginationContent.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* 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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,qBAAqB;AACrB,oBAA4E;AAC5E,6BAA4B;AAC5B,uBAAsB;AACtB,kCAAuC;AACvC,4BAA+B;AAC/B,4BAA+B;AAGxB,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,mDAAC,mCAAD;AAAA,EACE,gBAAe;AAAA,EACf,YAAW;AAAA,EACX;AAAA,EACA,eAAa,mDAAuB;AAAA,GAEpC,mDAAC,iCAAD,MACG,uBACC,wFACE,mDAAC,gCAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IAEF,mDAAC,mCAAD;AAAA,EAAqB,IAAI;AAAA,KAG7B,mDAAC,qBAAD;AAAA,EAAM,MAAM,CAAC,QAAQ,QAAQ,QAAQ,QAAQ;AAAA,EAAS,IAAG;AAAA,EAAO,YAAW;AAAA,GACzE,mDAAC,sCAAD;AAAA,EAAgB;AAAA,EAAkC;AAAA,IAClD,mDAAC,0BAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IAEF,mDAAC,sCAAD;AAAA,EAAgB;AAAA,EAA0B;AAAA;",
6
+ "names": []
7
+ }
@@ -1,143 +1,131 @@
1
- 'use strict';
2
-
3
- var _jsx = require('@babel/runtime/helpers/jsx');
4
- require('core-js/modules/web.dom-collections.iterator.js');
5
- require('core-js/modules/esnext.async-iterator.map.js');
6
- require('core-js/modules/esnext.iterator.map.js');
7
- var react = require('react');
8
- var dsIcons = require('@elliemae/ds-icons');
9
- var dsUtilities = require('@elliemae/ds-utilities');
10
- var Grid = require('@elliemae/ds-grid');
11
- var dsDropdownmenu = require('@elliemae/ds-dropdownmenu');
12
- var styled = require('../styled.js');
13
- var usePaginationSearch = require('../hooks/usePaginationSearch.js');
14
- var jsxRuntime = require('react/jsx-runtime');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
19
- var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
20
-
21
- var _div, _PaginationSeparator, _PaginationSeparator2, _PaginationSeparator3, _PaginationSeparator4;
22
-
23
- const Paginator = props => {
24
- var _span2;
25
-
26
- const {
27
- pageIndex,
28
- pageCount,
29
- onPageChange,
30
- pageDetails,
31
- pageDetailsTitle
32
- } = props;
33
- const [isOpened, setIsOpened] = react.useState(false);
34
- const btnRef = react.useRef(null);
35
- const pageInfoRef = react.useRef(null);
36
- const {
37
- width: btnWidth
38
- } = dsUtilities.useOnElementResize(btnRef);
39
- const {
40
- width: txtWidth
41
- } = dsUtilities.useOnElementResize(pageInfoRef);
42
- const options = react.useMemo(() => new Array(pageCount).fill(0).map((_, index) => {
43
- var _span;
44
-
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var Paginator_exports = {};
29
+ __export(Paginator_exports, {
30
+ default: () => Paginator_default
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_react = __toESM(require("react"));
34
+ var import_ds_icons = require("@elliemae/ds-icons");
35
+ var import_ds_utilities = require("@elliemae/ds-utilities");
36
+ var import_ds_grid = require("@elliemae/ds-grid");
37
+ var import_ds_dropdownmenu = require("@elliemae/ds-dropdownmenu");
38
+ var import_styled = require("../styled");
39
+ var import_usePaginationSearch = require("../hooks/usePaginationSearch");
40
+ const Paginator = (props) => {
41
+ const { pageIndex, pageCount, onPageChange, pageDetails, pageDetailsTitle } = props;
42
+ const [isOpened, setIsOpened] = (0, import_react.useState)(false);
43
+ const btnRef = (0, import_react.useRef)(null);
44
+ const pageInfoRef = (0, import_react.useRef)(null);
45
+ const { width: btnWidth } = (0, import_ds_utilities.useOnElementResize)(btnRef);
46
+ const { width: txtWidth } = (0, import_ds_utilities.useOnElementResize)(pageInfoRef);
47
+ const options = (0, import_react.useMemo)(() => new Array(pageCount).fill(0).map((_, index) => {
45
48
  const option = {
46
49
  dsId: (index + 1).toString(),
47
50
  label: (index + 1).toString(),
48
51
  value: index + 1,
49
- type: 'single'
52
+ type: "single"
50
53
  };
51
-
52
54
  if (pageDetails.length) {
53
- option.render = () => /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
54
- cols: ['16px', "".concat(txtWidth + 16, "px"), 'auto'],
55
+ option.render = () => /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
56
+ cols: ["16px", `${txtWidth + 16}px`, "auto"],
55
57
  gutter: "xxs",
56
58
  alignItems: "center"
57
- }, void 0, pageIndex === index ? /*#__PURE__*/_jsx__default["default"](dsIcons.Checkmark, {
59
+ }, pageIndex === index ? /* @__PURE__ */ import_react.default.createElement(import_ds_icons.Checkmark, {
58
60
  size: "s",
59
- color: ['brand-primary', '600']
60
- }) : _div || (_div = /*#__PURE__*/_jsx__default["default"]("div", {})), _span || (_span = /*#__PURE__*/_jsx__default["default"]("span", {}, void 0, index + 1)), /*#__PURE__*/_jsx__default["default"]("span", {
61
+ color: ["brand-primary", "600"]
62
+ }) : /* @__PURE__ */ import_react.default.createElement("div", null), /* @__PURE__ */ import_react.default.createElement("span", null, index + 1), /* @__PURE__ */ import_react.default.createElement("span", {
61
63
  style: {
62
- whiteSpace: 'nowrap',
63
- textOverflow: 'ellipsis',
64
- overflow: 'hidden'
64
+ whiteSpace: "nowrap",
65
+ textOverflow: "ellipsis",
66
+ overflow: "hidden"
65
67
  }
66
- }, void 0, pageDetails[index]));
68
+ }, pageDetails[index]));
67
69
  }
68
-
69
70
  return option;
70
71
  }), [pageCount, pageDetails, pageIndex, txtWidth]);
71
- const actionRef = react.useRef({});
72
- react.useEffect(() => {
72
+ const actionRef = (0, import_react.useRef)({});
73
+ (0, import_react.useEffect)(() => {
73
74
  if (isOpened) {
74
75
  actionRef.current.setActiveDescendant((pageIndex + 1).toString());
75
76
  actionRef.current.scrollOptionIntoView((pageIndex + 1).toString());
76
- } // eslint-disable-next-line react-hooks/exhaustive-deps
77
-
77
+ }
78
78
  }, [isOpened]);
79
- const onKeyDown = usePaginationSearch.usePaginationSearch(pageCount, actionRef);
80
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
81
- children: [_PaginationSeparator || (_PaginationSeparator = /*#__PURE__*/_jsx__default["default"](styled.PaginationSeparator, {})), /*#__PURE__*/_jsx__default["default"](dsDropdownmenu.DSDropdownMenuV2, {
82
- isOpened: isOpened,
83
- options: options,
84
- selectedOptions: {
85
- [(pageIndex + 1).toString()]: true
86
- },
87
- onOptionClick: (_, clickedOption) => {
88
- onPageChange(clickedOption.value);
89
- setIsOpened(false);
90
- btnRef.current.focus();
91
- },
92
- onClickOutside: () => {
93
- setIsOpened(false);
94
- btnRef.current.focus();
95
- },
96
- customOffset: [0, 2],
97
- startPlacementPreference: "top-end",
98
- actionRef: actionRef,
99
- onKeyDown: onKeyDown,
100
- minWidth: btnWidth + 23,
101
- maxHeight: 300,
102
- HeaderComp: () => pageDetailsTitle !== '' ? /*#__PURE__*/_jsx__default["default"](Grid__default["default"], {
103
- cols: ["".concat(txtWidth + 50, "px"), '8px', 'auto']
104
- }, void 0, /*#__PURE__*/_jsx__default["default"]("span", {
105
- style: {
106
- marginLeft: '8px'
107
- }
108
- }, void 0, "Page"), _PaginationSeparator2 || (_PaginationSeparator2 = /*#__PURE__*/_jsx__default["default"](styled.PaginationSeparator, {
109
- height: "100%"
110
- })), _span2 || (_span2 = /*#__PURE__*/_jsx__default["default"]("span", {}, void 0, pageDetailsTitle))) : 'Page'
111
- }, void 0, /*#__PURE__*/_jsx__default["default"](styled.PaginationDropdownButton, {
112
- buttonType: "raw",
113
- onClick: () => setIsOpened(true),
114
- innerRef: btnRef
115
- }, void 0, /*#__PURE__*/_jsx__default["default"]("div", {
116
- style: {
117
- display: 'flex',
118
- gridGap: '8px',
119
- alignItems: 'center'
120
- }
121
- }, void 0, /*#__PURE__*/jsxRuntime.jsxs(Grid__default["default"], {
122
- cols: ['auto', 'auto', 'auto'],
123
- alignItems: "center",
124
- gutter: "xxxs",
125
- ref: pageInfoRef,
126
- children: [/*#__PURE__*/_jsx__default["default"](styled.PaginationBoldText, {
127
- fontSize: "18px"
128
- }, void 0, pageIndex + 1), " / ", pageCount]
129
- }), pageDetails.length !== 0 && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
130
- children: [_PaginationSeparator3 || (_PaginationSeparator3 = /*#__PURE__*/_jsx__default["default"](styled.PaginationSeparator, {
131
- height: "12px",
132
- ml: "8px"
133
- })), /*#__PURE__*/_jsx__default["default"](styled.PaginationBoldText, {
134
- fontSize: "13px",
135
- mr: "8px"
136
- }, void 0, pageDetails[pageIndex])]
137
- }), /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronDown, {
138
- color: ['brand-primary', '700']
139
- })))), _PaginationSeparator4 || (_PaginationSeparator4 = /*#__PURE__*/_jsx__default["default"](styled.PaginationSeparator, {}))]
140
- });
79
+ const onKeyDown = (0, import_usePaginationSearch.usePaginationSearch)(pageCount, actionRef);
80
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationSeparator, null), /* @__PURE__ */ import_react.default.createElement(import_ds_dropdownmenu.DSDropdownMenuV2, {
81
+ isOpened,
82
+ options,
83
+ selectedOptions: { [(pageIndex + 1).toString()]: true },
84
+ onOptionClick: (_, clickedOption) => {
85
+ onPageChange(clickedOption.value);
86
+ setIsOpened(false);
87
+ btnRef.current.focus();
88
+ },
89
+ onClickOutside: () => {
90
+ setIsOpened(false);
91
+ btnRef.current.focus();
92
+ },
93
+ customOffset: [0, 2],
94
+ startPlacementPreference: "top-end",
95
+ actionRef,
96
+ onKeyDown,
97
+ minWidth: btnWidth + 23,
98
+ maxHeight: 300,
99
+ HeaderComp: () => pageDetailsTitle !== "" ? /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
100
+ cols: [`${txtWidth + 50}px`, "8px", "auto"]
101
+ }, /* @__PURE__ */ import_react.default.createElement("span", {
102
+ style: { marginLeft: "8px" }
103
+ }, "Page"), /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationSeparator, {
104
+ height: "100%"
105
+ }), /* @__PURE__ */ import_react.default.createElement("span", null, pageDetailsTitle)) : "Page"
106
+ }, /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationDropdownButton, {
107
+ buttonType: "raw",
108
+ onClick: () => setIsOpened(true),
109
+ innerRef: btnRef
110
+ }, /* @__PURE__ */ import_react.default.createElement("div", {
111
+ style: { display: "flex", gridGap: "8px", alignItems: "center" }
112
+ }, /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, {
113
+ cols: ["auto", "auto", "auto"],
114
+ alignItems: "center",
115
+ gutter: "xxxs",
116
+ ref: pageInfoRef
117
+ }, /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationBoldText, {
118
+ fontSize: "18px"
119
+ }, pageIndex + 1), " / ", pageCount), pageDetails.length !== 0 && /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationSeparator, {
120
+ height: "12px",
121
+ ml: "8px"
122
+ }), /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationBoldText, {
123
+ fontSize: "13px",
124
+ mr: "8px"
125
+ }, pageDetails[pageIndex])), /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ChevronDown, {
126
+ color: ["brand-primary", "700"]
127
+ })))), /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationSeparator, null));
141
128
  };
142
-
143
- module.exports = Paginator;
129
+ var Paginator_default = Paginator;
130
+ module.exports = __toCommonJS(Paginator_exports);
131
+ //# sourceMappingURL=Paginator.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/parts/Paginator.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* 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", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,71 +1,77 @@
1
- 'use strict';
2
-
3
- var _jsx = require('@babel/runtime/helpers/jsx');
4
- require('core-js/modules/esnext.async-iterator.map.js');
5
- require('core-js/modules/esnext.iterator.map.js');
6
- require('core-js/modules/web.dom-collections.iterator.js');
7
- var react = require('react');
8
- var memoize = require('memoize-one');
9
- var dsUtilities = require('@elliemae/ds-utilities');
10
- var dsDropdownmenu = require('@elliemae/ds-dropdownmenu');
11
- var dsIcons = require('@elliemae/ds-icons');
12
- var styled = require('../styled.js');
13
-
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
-
16
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
17
- var memoize__default = /*#__PURE__*/_interopDefaultLegacy(memoize);
18
-
19
- const generateOption = value => {
20
- if (typeof value === 'object') {
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var PerPageSelector_exports = {};
29
+ __export(PerPageSelector_exports, {
30
+ default: () => PerPageSelector_default
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_react = __toESM(require("react"));
34
+ var import_memoize_one = __toESM(require("memoize-one"));
35
+ var import_ds_utilities = require("@elliemae/ds-utilities");
36
+ var import_ds_dropdownmenu = require("@elliemae/ds-dropdownmenu");
37
+ var import_ds_icons = require("@elliemae/ds-icons");
38
+ var import_styled = require("../styled");
39
+ const generateOption = (value) => {
40
+ if (typeof value === "object") {
21
41
  return value;
22
42
  }
23
-
24
43
  return {
25
44
  dsId: value.toString(),
26
45
  value,
27
46
  label: value.toString(),
28
- type: 'single'
47
+ type: "single"
29
48
  };
30
49
  };
31
-
32
- const getOptions = memoize__default["default"]((step, min, max) => {
33
- const options = dsUtilities.range(min, max + step, step).map(generateOption);
50
+ const getOptions = (0, import_memoize_one.default)((step, min, max) => {
51
+ const options = (0, import_ds_utilities.range)(min, max + step, step).map(generateOption);
34
52
  return min === 0 ? options.slice(1, options.length) : options;
35
53
  });
36
-
37
- const PerPageSelector = props => {
38
- const [isOpened, setIsOpened] = react.useState(false);
39
- const {
40
- pageSize,
41
- onPageSizeChange,
42
- perPageOptions,
43
- maxPerPage,
44
- perPageStep,
45
- minPerPage
46
- } = props;
47
- const options = react.useMemo(() => {
48
- if (perPageOptions) return perPageOptions.map(generateOption);
54
+ const PerPageSelector = (props) => {
55
+ const [isOpened, setIsOpened] = (0, import_react.useState)(false);
56
+ const { pageSize, onPageSizeChange, perPageOptions, maxPerPage, perPageStep, minPerPage } = props;
57
+ const options = (0, import_react.useMemo)(() => {
58
+ if (perPageOptions)
59
+ return perPageOptions.map(generateOption);
49
60
  return getOptions(perPageStep, minPerPage, maxPerPage);
50
61
  }, [maxPerPage, minPerPage, perPageOptions, perPageStep]);
51
- const actionRef = react.useRef({});
52
- const btnRef = react.useRef(null);
53
- react.useEffect(() => {
62
+ const actionRef = (0, import_react.useRef)({});
63
+ const btnRef = (0, import_react.useRef)(null);
64
+ (0, import_react.useEffect)(() => {
54
65
  if (isOpened) {
55
66
  actionRef.current.setActiveDescendant(pageSize.toString());
56
67
  actionRef.current.scrollOptionIntoView(pageSize.toString());
57
- } // eslint-disable-next-line react-hooks/exhaustive-deps
58
-
68
+ }
59
69
  }, [isOpened]);
60
- const {
61
- width
62
- } = dsUtilities.useOnElementResize(btnRef);
63
- return /*#__PURE__*/_jsx__default["default"](dsDropdownmenu.DSDropdownMenuV2, {
64
- isOpened: isOpened,
65
- options: options,
66
- selectedOptions: {
67
- [pageSize.toString()]: true
68
- },
70
+ const { width } = (0, import_ds_utilities.useOnElementResize)(btnRef);
71
+ return /* @__PURE__ */ import_react.default.createElement(import_ds_dropdownmenu.DSDropdownMenuV2, {
72
+ isOpened,
73
+ options,
74
+ selectedOptions: { [pageSize.toString()]: true },
69
75
  onOptionClick: (_, clickedOption) => {
70
76
  onPageSizeChange(clickedOption.value);
71
77
  setIsOpened(false);
@@ -77,22 +83,21 @@ const PerPageSelector = props => {
77
83
  },
78
84
  customOffset: [0, 2],
79
85
  startPlacementPreference: "top-end",
80
- actionRef: actionRef,
86
+ actionRef,
81
87
  minWidth: width + 25,
82
88
  maxHeight: 300,
83
- HeaderComp: () => 'Per Page'
84
- }, void 0, /*#__PURE__*/_jsx__default["default"]("div", {
85
- style: {
86
- marginLeft: '32px'
87
- }
88
- }, void 0, /*#__PURE__*/_jsx__default["default"](styled.PaginationDropdownButton, {
89
+ HeaderComp: () => "Per Page"
90
+ }, /* @__PURE__ */ import_react.default.createElement("div", {
91
+ style: { marginLeft: "32px" }
92
+ }, /* @__PURE__ */ import_react.default.createElement(import_styled.PaginationDropdownButton, {
89
93
  buttonType: "raw",
90
94
  onClick: () => setIsOpened(true),
91
95
  "aria-pressed": isOpened,
92
96
  innerRef: btnRef
93
- }, void 0, pageSize, " / page", /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronDown, {
94
- color: ['brand-primary', '700']
97
+ }, pageSize, " / page", /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ChevronDown, {
98
+ color: ["brand-primary", "700"]
95
99
  }))));
96
100
  };
97
-
98
- module.exports = PerPageSelector;
101
+ var PerPageSelector_default = PerPageSelector;
102
+ module.exports = __toCommonJS(PerPageSelector_exports);
103
+ //# sourceMappingURL=PerPageSelector.js.map