redux-paginator-immutable 17.0.18 → 17.0.19

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 (70) hide show
  1. package/lib/Info.d.ts +9 -0
  2. package/lib/Info.js +19 -0
  3. package/lib/Info.js.map +1 -0
  4. package/lib/LoadDataItem.d.ts +23 -0
  5. package/lib/LoadDataItem.js +59 -0
  6. package/lib/LoadDataItem.js.map +1 -0
  7. package/lib/LoadPaginator.d.ts +41 -0
  8. package/lib/LoadPaginator.js +109 -0
  9. package/lib/LoadPaginator.js.map +1 -0
  10. package/lib/LoadingButton.d.ts +11 -0
  11. package/lib/LoadingButton.js +22 -0
  12. package/lib/LoadingButton.js.map +1 -0
  13. package/lib/actionTypes.d.ts +9 -0
  14. package/lib/actionTypes.js +13 -0
  15. package/lib/actionTypes.js.map +1 -0
  16. package/lib/actions.d.ts +42 -0
  17. package/lib/actions.js +82 -0
  18. package/lib/actions.js.map +1 -0
  19. package/lib/agent.d.ts +8 -0
  20. package/lib/agent.js +37 -0
  21. package/lib/agent.js.map +1 -0
  22. package/lib/createDataReducer.d.ts +36 -0
  23. package/lib/createDataReducer.js +79 -0
  24. package/lib/createDataReducer.js.map +1 -0
  25. package/lib/createItemReducer.d.ts +11 -0
  26. package/lib/createItemReducer.js +18 -0
  27. package/lib/createItemReducer.js.map +1 -0
  28. package/lib/createPaginator.d.ts +14 -0
  29. package/lib/createPaginator.js +84 -0
  30. package/lib/createPaginator.js.map +1 -0
  31. package/lib/index.d.ts +11 -0
  32. package/lib/index.js +30 -0
  33. package/lib/index.js.map +1 -0
  34. package/lib/paginatorMiddleware.d.ts +5 -0
  35. package/lib/paginatorMiddleware.js +68 -0
  36. package/lib/paginatorMiddleware.js.map +1 -0
  37. package/lib/reducerItemData.d.ts +18 -0
  38. package/lib/reducerItemData.js +56 -0
  39. package/lib/reducerItemData.js.map +1 -0
  40. package/lib/reducerOperations.d.ts +3 -0
  41. package/lib/reducerOperations.js +69 -0
  42. package/lib/reducerOperations.js.map +1 -0
  43. package/lib/reducers.d.ts +4 -0
  44. package/lib/reducers.js +75 -0
  45. package/lib/reducers.js.map +1 -0
  46. package/lib/selectors.d.ts +58 -0
  47. package/lib/selectors.js +79 -0
  48. package/lib/selectors.js.map +1 -0
  49. package/lib/types/actions.d.ts +85 -0
  50. package/lib/types/actions.js +3 -0
  51. package/lib/types/actions.js.map +1 -0
  52. package/lib/types/index.d.ts +21 -0
  53. package/lib/types/index.js +16 -0
  54. package/lib/types/index.js.map +1 -0
  55. package/lib/types/state.d.ts +6 -0
  56. package/lib/types/state.js +3 -0
  57. package/lib/types/state.js.map +1 -0
  58. package/lib/util.d.ts +9 -0
  59. package/lib/util.js +49 -0
  60. package/lib/util.js.map +1 -0
  61. package/lib/words.d.ts +9 -0
  62. package/lib/words.js +12 -0
  63. package/lib/words.js.map +1 -0
  64. package/package.json +24 -17
  65. package/lib/__tests__/actions.spec.js +0 -117
  66. package/lib/__tests__/agent.spec.js +0 -32
  67. package/lib/__tests__/createPaginator.spec.js +0 -39
  68. package/lib/__tests__/reducers.spec.js +0 -125
  69. package/lib/__tests__/selectors.spec.js +0 -160
  70. package/lib/__tests__/setup.js +0 -3
package/lib/Info.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ declare type InfoPropTypes = {
3
+ shown: number;
4
+ total: number;
5
+ one: string;
6
+ all: string;
7
+ };
8
+ declare const Info: ({ shown, total, one, all }: InfoPropTypes) => JSX.Element;
9
+ export default Info;
package/lib/Info.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const utility_1 = require("x25/utility");
8
+ const words_1 = __importDefault(require("./words"));
9
+ const getNumberForm = (value, one, all) => {
10
+ if (value === 1) {
11
+ return `1 ${one}`;
12
+ }
13
+ return `${utility_1.words.getNumberTense(value)} ${all}`;
14
+ }, Info = ({ shown, total, one, all }) => (react_1.default.createElement("div", { className: "text-muted" },
15
+ `${words_1.default.Showing} `,
16
+ shown === total ? `${words_1.default.All} - ` : `${shown} ${words_1.default.Of}`,
17
+ ` ${getNumberForm(total, one, all)}`));
18
+ exports.default = Info;
19
+ //# sourceMappingURL=Info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../src/Info.tsx"],"names":[],"mappings":";;;;;AAOA,kDAA0B;AAC1B,yCAAgD;AAChD,oDAA4B;AAE5B,MACE,aAAa,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAU,EAAE;IAClE,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,KAAK,GAAG,EAAE,CAAC;KACnB;IAED,OAAO,GAAG,eAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;AACpD,CAAC,EAED,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAiB,EAAE,EAAE,CAAC,CACpD,uCAAK,SAAS,EAAC,YAAY;IACxB,GAAG,eAAK,CAAC,OAAO,GAAG;IACnB,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,eAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,eAAK,CAAC,EAAE,EAAE;IAC5D,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CACjC,CACP,CAAC;AAEJ,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ declare type LoadDataItemPropTypes = {
3
+ isFetching: boolean;
4
+ fetched: boolean;
5
+ id: string;
6
+ hasError: boolean;
7
+ data: any;
8
+ children: React.ReactNode;
9
+ shouldFetch: any;
10
+ fetchItem: () => void;
11
+ };
12
+ declare type OwnProps = {
13
+ id: string;
14
+ settings: {
15
+ selectors: any;
16
+ dataItemURL: string;
17
+ endpoint: string;
18
+ manageEntity: any;
19
+ normalizeDataItem: any;
20
+ };
21
+ };
22
+ declare const _default: import("react-redux").ConnectedComponent<(props: LoadDataItemPropTypes) => any, import("react-redux").Omit<LoadDataItemPropTypes, "data" | "hasError" | "fetched" | "isFetching" | "shouldFetch" | "fetchItem"> & OwnProps>;
23
+ export default _default;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const React = __importStar(require("react"));
26
+ const react_redux_1 = require("react-redux");
27
+ const Messages_1 = require("x25/Messages");
28
+ const actions_1 = require("./actions");
29
+ const words_1 = __importDefault(require("./words"));
30
+ const mapStateToProps = (state, { settings: { selectors, }, id, }) => ({
31
+ data: selectors.getItem(state, id),
32
+ hasError: selectors.getItemHasError(state, id),
33
+ fetched: selectors.getItemIsFetched(state, id),
34
+ isFetching: selectors.getIsFetchingItemInfo(state, id),
35
+ shouldFetch: selectors.getShouldFetchItemInfo(state, id),
36
+ }), mapDispatchToProps = (dispatch, { id, settings, }) => ({
37
+ fetchItem() {
38
+ dispatch((0, actions_1.fetchItem)(Object.assign(Object.assign({}, settings), { id })));
39
+ },
40
+ }), LoadDataItem = (props) => {
41
+ const { children, data, isFetching, shouldFetch, hasError, fetchItem, } = props;
42
+ React.useEffect(() => {
43
+ if (shouldFetch) {
44
+ fetchItem();
45
+ }
46
+ }, [shouldFetch, isFetching, hasError]);
47
+ if (isFetching) {
48
+ return React.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData });
49
+ }
50
+ if (hasError) {
51
+ return React.createElement(Messages_1.LargeErrorMessage, { message: words_1.default.ThereWasAProblem, onRetry: fetchItem });
52
+ }
53
+ if (data.size === 0) {
54
+ return null;
55
+ }
56
+ return children;
57
+ };
58
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, mapDispatchToProps)(LoadDataItem);
59
+ //# sourceMappingURL=LoadDataItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadDataItem.js","sourceRoot":"","sources":["../src/LoadDataItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA+B;AAsB/B,6CAAsC;AACtC,2CAAiE;AACjE,uCAAyD;AACzD,oDAA4B;AAE5B,MACE,eAAe,GAAG,CAAC,KAAU,EAAE,EAC7B,QAAQ,EAAE,EACR,SAAS,GACV,EACD,EAAE,GACO,EAAE,EAAE,CAAC,CAAC;IACf,IAAI,EAAU,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAC1C,QAAQ,EAAM,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;IAClD,OAAO,EAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;IACnD,UAAU,EAAI,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;IACxD,WAAW,EAAG,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC;CAC1D,CAAC,EACF,kBAAkB,GAAG,CAAC,QAAa,EAAE,EACnC,EAAE,EACF,QAAQ,GACC,EAAE,EAAE,CAAC,CAAC;IACf,SAAS;QACP,QAAQ,CAAC,IAAA,mBAAe,kCACnB,QAAQ,KACX,EAAE,IACF,CAAC,CAAC;IACN,CAAC;CACF,CAAC,EAEF,YAAY,GAAG,CAAC,KAA4B,EAAQ,EAAE;IACpD,MAAM,EACJ,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,WAAW,EAAE;YACf,SAAS,EAAE,CAAC;SACb;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExC,IAAI,UAAU,EAAE;QACd,OAAO,oBAAC,yBAAc,IAAC,OAAO,EAAE,eAAK,CAAC,WAAW,GAAI,CAAC;KACvD;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,oBAAC,4BAAiB,IAAC,OAAO,EAAE,eAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,GAAI,CAAC;KACnF;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC;KACb;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEJ,kBAAe,IAAA,qBAAO,EAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React, { Component } from "react";
2
+ declare type Settings = {
3
+ key: string;
4
+ rowsPerLoad: number;
5
+ manipulateItems: (items: any) => void;
6
+ resetView: (data: any) => void;
7
+ changeView: (data: any) => void;
8
+ requestPage: (page: string, token: string) => any;
9
+ };
10
+ declare type OwnProps = {
11
+ token: string;
12
+ settings: Settings;
13
+ };
14
+ declare type LoadPaginatorPropTypes = {
15
+ token: string;
16
+ children: any;
17
+ settings: Settings;
18
+ paginator: any;
19
+ changeView: (info: {
20
+ token: string;
21
+ view: number;
22
+ }) => void;
23
+ resetView: (token: string) => void;
24
+ loadData: (page: number) => void;
25
+ changeFilter: (filter: string) => (event: {
26
+ target: {
27
+ value: string;
28
+ };
29
+ }) => void;
30
+ };
31
+ declare class LoadPaginator extends Component<LoadPaginatorPropTypes> {
32
+ handleLoadMoreClick: () => any;
33
+ componentDidMount(): void;
34
+ UNSAFE_componentWillReceiveProps(nextProps: LoadPaginatorPropTypes): void;
35
+ constructor(props: LoadPaginatorPropTypes);
36
+ shouldComponentUpdate(nextProps: LoadPaginatorPropTypes): boolean;
37
+ componentWillUnmount(): void;
38
+ render(): JSX.Element;
39
+ }
40
+ declare const _default: import("react-redux").ConnectedComponent<typeof LoadPaginator, import("react-redux").Omit<React.ClassAttributes<LoadPaginator> & LoadPaginatorPropTypes, "paginator" | "changeView" | "resetView" | "loadData"> & OwnProps>;
41
+ export default _default;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const react_1 = __importStar(require("react"));
26
+ const Immutable = __importStar(require("immutable"));
27
+ const react_redux_1 = require("react-redux");
28
+ const redux_1 = require("redux");
29
+ const Messages_1 = require("x25/Messages");
30
+ const selectors_1 = __importDefault(require("./selectors"));
31
+ const LoadingButton_1 = __importDefault(require("./LoadingButton"));
32
+ const words_1 = __importDefault(require("./words"));
33
+ const mapStateToProps = (state, { token, settings }) => {
34
+ const { list, entities } = selectors_1.default.getPaginators(state, settings.key), currentPage = selectors_1.default.getCurrentView(list, token), isFetching = selectors_1.default.isPageFetching(list, token, currentPage), isFetched = selectors_1.default.isPageFetched(list, token, currentPage), isNextFetching = selectors_1.default.isPageFetching(list, token, currentPage + 1), isNextFetched = selectors_1.default.isPageFetched(list, token, currentPage + 1),
35
+ // eslint-disable-next-line max-len
36
+ resultsUpTo = selectors_1.default.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad), items = settings.manipulateItems(resultsUpTo), total = selectors_1.default.getCurrentTotalResultsCount(list, token),
37
+ // currentPage was previously given to the following function
38
+ hasProblems = selectors_1.default.hasPageProblems(list, token), shouldLoadNext = !isNextFetched && !isNextFetching;
39
+ return {
40
+ paginator: Immutable.Map({
41
+ currentPage,
42
+ hasProblems,
43
+ isFetched,
44
+ isFetching,
45
+ items,
46
+ shouldLoadNext,
47
+ total,
48
+ }),
49
+ };
50
+ }, mapDispatchToProps = (dispatch, { token, settings, }) => (Object.assign(Object.assign({}, (0, redux_1.bindActionCreators)({
51
+ resetView: settings.resetView,
52
+ changeView: settings.changeView,
53
+ }, dispatch)), { loadData(page) {
54
+ dispatch(settings.requestPage(page, token));
55
+ } }));
56
+ // new
57
+ /* eslint-disable */
58
+ class LoadPaginator extends react_1.Component {
59
+ constructor(props) {
60
+ super(props);
61
+ this.handleLoadMoreClick = () => {
62
+ const { paginator, token, changeView, loadData } = this.props, currentPage = paginator.get("currentPage"), hasProblems = paginator.get("hasProblems"), shouldLoadNext = paginator.get("shouldLoadNext");
63
+ if (hasProblems) {
64
+ loadData(currentPage);
65
+ }
66
+ else {
67
+ changeView({
68
+ token,
69
+ view: currentPage + 1,
70
+ });
71
+ if (shouldLoadNext) {
72
+ loadData(currentPage + 1);
73
+ }
74
+ }
75
+ };
76
+ }
77
+ componentDidMount() {
78
+ const { paginator, loadData } = this.props, isFetched = paginator.get("isFetched"), isFetching = paginator.get("isFetching"), currentPage = paginator.get("currentPage"), shouldFetch = !isFetched && !isFetching;
79
+ if (shouldFetch) {
80
+ loadData(currentPage);
81
+ }
82
+ }
83
+ UNSAFE_componentWillReceiveProps(nextProps) {
84
+ const { loadData, paginator } = nextProps, isFetched = paginator.get("isFetched"), isFetching = paginator.get("isFetching"), currentPage = paginator.get("currentPage"), shouldFetch = !isFetched && !isFetching;
85
+ if (shouldFetch) {
86
+ loadData(currentPage);
87
+ }
88
+ }
89
+ shouldComponentUpdate(nextProps) {
90
+ return this.props.paginator !== nextProps.paginator;
91
+ }
92
+ componentWillUnmount() {
93
+ this.props.resetView(this.props.token);
94
+ }
95
+ render() {
96
+ const { paginator } = this.props, items = paginator.get("items"), hasProblems = paginator.get("hasProblems"), currentPage = paginator.get("currentPage"), isFetching = paginator.get("isFetching"), total = paginator.get("total"), isEmpty = items.size === 0, showLoading = total !== items.size;
97
+ if (isEmpty && isFetching) {
98
+ return react_1.default.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData });
99
+ }
100
+ if (hasProblems && currentPage === 1) {
101
+ return (react_1.default.createElement(Messages_1.LargeErrorMessage, { message: words_1.default.ThereWasAProblem, onRetry: this.handleLoadMoreClick }));
102
+ }
103
+ return (react_1.default.createElement(react_1.default.Fragment, null,
104
+ react_1.default.cloneElement(this.props.children, this.props),
105
+ showLoading ? (react_1.default.createElement(LoadingButton_1.default, { hasProblems: hasProblems, isFetching: isFetching, onLoadMoreClick: this.handleLoadMoreClick })) : null));
106
+ }
107
+ }
108
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, mapDispatchToProps)(LoadPaginator);
109
+ //# sourceMappingURL=LoadPaginator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadPaginator.js","sourceRoot":"","sources":["../src/LoadPaginator.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ declare type LoadingButtonPropTypes = {
3
+ isFetching: boolean;
4
+ hasProblems: boolean;
5
+ onLoadMoreClick: () => void;
6
+ };
7
+ declare class LoadingButton extends React.Component<LoadingButtonPropTypes> {
8
+ shouldComponentUpdate(nextProps: LoadingButtonPropTypes): boolean;
9
+ render(): JSX.Element;
10
+ }
11
+ export default LoadingButton;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const Messages_1 = require("x25/Messages");
8
+ const words_1 = __importDefault(require("./words"));
9
+ class LoadingButton extends react_1.default.Component {
10
+ shouldComponentUpdate(nextProps) {
11
+ const { hasProblems, isFetching } = this.props;
12
+ return hasProblems !== nextProps.hasProblems || isFetching !== nextProps.isFetching;
13
+ }
14
+ render() {
15
+ const { isFetching, hasProblems, onLoadMoreClick } = this.props;
16
+ return (react_1.default.createElement("div", { className: "text-center my-2" },
17
+ hasProblems ? react_1.default.createElement(Messages_1.ErrorMessage, { message: words_1.default.ThereWasAProblem }) : null,
18
+ isFetching ? react_1.default.createElement(Messages_1.LoadingMessage, { message: words_1.default.LoadingData, sm: true }) : (react_1.default.createElement("button", { className: "btn btn-outline-info d-print-none", disabled: isFetching, onClick: onLoadMoreClick, type: "button" }, isFetching ? words_1.default.LoadingData : words_1.default.LoadMore))));
19
+ }
20
+ }
21
+ exports.default = LoadingButton;
22
+ //# sourceMappingURL=LoadingButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingButton.js","sourceRoot":"","sources":["../src/LoadingButton.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,2CAA4D;AAO5D,oDAA4B;AAE5B,MAAM,aAAc,SAAQ,eAAK,CAAC,SAAiC;IAEjE,qBAAqB,CAAE,SAAiC;QACtD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/C,OAAO,WAAW,KAAK,SAAS,CAAC,WAAW,IAAI,UAAU,KAAK,SAAS,CAAC,UAAU,CAAC;IACtF,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhE,OAAO,CACL,uCAAK,SAAS,EAAC,kBAAkB;YAC9B,WAAW,CAAC,CAAC,CAAC,8BAAC,uBAAY,IAAC,OAAO,EAAE,eAAK,CAAC,gBAAgB,GAAI,CAAC,CAAC,CAAC,IAAI;YACtE,UAAU,CAAC,CAAC,CAAC,8BAAC,yBAAc,IAAC,OAAO,EAAE,eAAK,CAAC,WAAW,EAAE,EAAE,SAAG,CAAC,CAAC,CAAC,CAChE,0CACE,SAAS,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,eAAe,EACxB,IAAI,EAAC,QAAQ,IACZ,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAK,CAAC,QAAQ,CACzC,CACV,CACG,CACP,CAAC;IACJ,CAAC;CAEF;AAED,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const REQUEST_PAGE = "@@redux-paginator-immutable/REQUEST_PAGE";
2
+ export declare const RECEIVE_PAGE = "@@redux-paginator-immutable/RECEIVE_PAGE";
3
+ export declare const RESET_VIEW = "@@redux-paginator-immutable/RESET_VIEW";
4
+ export declare const CHANGE_VIEW = "@@redux-paginator-immutable/CHANGE_VIEW";
5
+ export declare const CLEAR_DATA = "@@redux-paginator-immutable/CLEAR_DATA";
6
+ export declare const FETCH_ITEM_DATA_PENDING = "@@redux-paginator-immutable/FETCH_ITEM_DATA_PENDING";
7
+ export declare const FETCH_ITEM_DATA_REJECTED = "@@redux-paginator-immutable/FETCH_ITEM_DATA_REJECTED";
8
+ export declare const FETCH_ITEM_DATA_FULFILLED = "@@redux-paginator-immutable/FETCH_ITEM_DATA_FULFILLED";
9
+ export declare const FETCH_CURRENT_COMPANY_INFO_PENDING = "FETCH_CURRENT_COMPANY_INFO_PENDING";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FETCH_CURRENT_COMPANY_INFO_PENDING = exports.FETCH_ITEM_DATA_FULFILLED = exports.FETCH_ITEM_DATA_REJECTED = exports.FETCH_ITEM_DATA_PENDING = exports.CLEAR_DATA = exports.CHANGE_VIEW = exports.RESET_VIEW = exports.RECEIVE_PAGE = exports.REQUEST_PAGE = void 0;
4
+ exports.REQUEST_PAGE = "@@redux-paginator-immutable/REQUEST_PAGE";
5
+ exports.RECEIVE_PAGE = "@@redux-paginator-immutable/RECEIVE_PAGE";
6
+ exports.RESET_VIEW = "@@redux-paginator-immutable/RESET_VIEW";
7
+ exports.CHANGE_VIEW = "@@redux-paginator-immutable/CHANGE_VIEW";
8
+ exports.CLEAR_DATA = "@@redux-paginator-immutable/CLEAR_DATA";
9
+ exports.FETCH_ITEM_DATA_PENDING = "@@redux-paginator-immutable/FETCH_ITEM_DATA_PENDING";
10
+ exports.FETCH_ITEM_DATA_REJECTED = "@@redux-paginator-immutable/FETCH_ITEM_DATA_REJECTED";
11
+ exports.FETCH_ITEM_DATA_FULFILLED = "@@redux-paginator-immutable/FETCH_ITEM_DATA_FULFILLED";
12
+ exports.FETCH_CURRENT_COMPANY_INFO_PENDING = "FETCH_CURRENT_COMPANY_INFO_PENDING";
13
+ //# sourceMappingURL=actionTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionTypes.js","sourceRoot":"","sources":["../src/actionTypes.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,0CAA0C,CAAC;AAC1D,QAAA,YAAY,GAAG,0CAA0C,CAAC;AAC1D,QAAA,UAAU,GAAG,wCAAwC,CAAC;AACtD,QAAA,WAAW,GAAG,yCAAyC,CAAC;AACxD,QAAA,UAAU,GAAG,wCAAwC,CAAC;AACtD,QAAA,uBAAuB,GAAG,qDAAqD,CAAC;AAChF,QAAA,wBAAwB,GAAG,sDAAsD,CAAC;AAClF,QAAA,yBAAyB,GAAG,uDAAuD,CAAC;AACpF,QAAA,kCAAkC,GAAG,oCAAoC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { Action, EndPointCb } from "./types";
2
+ declare type RequestPageArgsTypes = {
3
+ endpoint: string;
4
+ endpointCb: EndPointCb;
5
+ manageEntity: any;
6
+ resultsKey: string;
7
+ totalKey: string;
8
+ pageArgName: string;
9
+ idKey: string;
10
+ page: number;
11
+ token: string;
12
+ };
13
+ declare type ReceivePageArgsTypes = {
14
+ endpoint: string;
15
+ endpointCb: EndPointCb;
16
+ manageEntity: any;
17
+ pageArgName: string;
18
+ idKey: string;
19
+ page: number;
20
+ token: string;
21
+ items: Array<any>;
22
+ total: number;
23
+ error: boolean;
24
+ };
25
+ declare type FetchDataItem = {
26
+ dataItemURL: string;
27
+ endpoint: string;
28
+ normalizeDataItem: any;
29
+ id: string;
30
+ };
31
+ export declare const fetchItem: (things: FetchDataItem) => any;
32
+ declare const _default: {
33
+ clearData: (endpoint: string) => Action;
34
+ requestPage: ({ endpoint, endpointCb, manageEntity, resultsKey, totalKey, pageArgName, idKey, page, token, }: RequestPageArgsTypes) => Action;
35
+ receivePage: ({ endpoint, endpointCb, manageEntity, pageArgName, idKey, page, token, items, error, total, }: ReceivePageArgsTypes) => Action;
36
+ resetView: (endpoint: string, token: string) => Action;
37
+ changeView: (endpoint: string, { token, view, }: {
38
+ token: string;
39
+ view: number;
40
+ }) => Action;
41
+ };
42
+ export default _default;
package/lib/actions.js ADDED
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchItem = void 0;
7
+ const superagent_1 = __importDefault(require("superagent"));
8
+ const requestPage = ({ endpoint, endpointCb, manageEntity, resultsKey, totalKey, pageArgName, idKey, page, token, }) => ({
9
+ type: "@@redux-paginator-immutable/REQUEST_PAGE",
10
+ meta: {
11
+ endpoint,
12
+ endpointCb,
13
+ manageEntity,
14
+ resultsKey,
15
+ totalKey,
16
+ pageArgName,
17
+ idKey,
18
+ },
19
+ payload: {
20
+ page,
21
+ token,
22
+ },
23
+ }), receivePage = ({ endpoint, endpointCb, manageEntity, pageArgName, idKey, page, token, items, error, total, }) => ({
24
+ type: "@@redux-paginator-immutable/RECEIVE_PAGE",
25
+ meta: {
26
+ endpoint,
27
+ endpointCb,
28
+ manageEntity,
29
+ pageArgName,
30
+ idKey,
31
+ },
32
+ payload: {
33
+ page,
34
+ token,
35
+ items,
36
+ error,
37
+ total,
38
+ },
39
+ }), resetView = (endpoint, token) => ({
40
+ type: "@@redux-paginator-immutable/RESET_VIEW",
41
+ meta: {
42
+ endpoint,
43
+ },
44
+ payload: {
45
+ token,
46
+ },
47
+ }), changeView = (endpoint, { token, view, }) => ({
48
+ type: "@@redux-paginator-immutable/CHANGE_VIEW",
49
+ meta: {
50
+ endpoint,
51
+ },
52
+ payload: {
53
+ token,
54
+ view,
55
+ },
56
+ }), clearData = (endpoint) => ({
57
+ type: "@@redux-paginator-immutable/CLEAR_DATA",
58
+ meta: {
59
+ endpoint,
60
+ },
61
+ });
62
+ const fetchDataItemRequest = ({ dataItemURL, normalizeDataItem, id, }) => new Promise((resolve, reject) => (superagent_1.default.
63
+ get(`${dataItemURL}/${id}`).
64
+ set("Accept", "application/json").
65
+ end(normalizeDataItem(resolve, reject))));
66
+ const fetchItem = (things) => ({
67
+ type: "@@redux-paginator-immutable/FETCH_ITEM_DATA",
68
+ payload: fetchDataItemRequest(things),
69
+ meta: {
70
+ id: things.id,
71
+ endpoint: things.endpoint,
72
+ },
73
+ });
74
+ exports.fetchItem = fetchItem;
75
+ exports.default = {
76
+ clearData,
77
+ requestPage,
78
+ receivePage,
79
+ resetView,
80
+ changeView,
81
+ };
82
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":";;;;;;AACA,4DAA+B;AA6B/B,MAAM,WAAW,GAAG,CAAC,EACjB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,KAAK,EACL,IAAI,EACJ,KAAK,GACgB,EAAU,EAAE,CAAC,CAAC;IACnC,IAAI,EAAG,0CAA0C;IACjD,IAAI,EAAG;QACL,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,UAAU;QACV,QAAQ;QACR,WAAW;QACX,KAAK;KACN;IACD,OAAO,EAAE;QACP,IAAI;QACJ,KAAK;KACN;CACF,CAAC,EAEF,WAAW,GAAG,CAAC,EACb,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,KAAK,EACL,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GACgB,EAAU,EAAE,CAAC,CAAC;IACnC,IAAI,EAAG,0CAA0C;IACjD,IAAI,EAAG;QACL,QAAQ;QACR,UAAU;QACV,YAAY;QACZ,WAAW;QACX,KAAK;KACN;IACD,OAAO,EAAE;QACP,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;KACN;CACF,CAAC,EAEF,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAa,EAAU,EAAE,CAAC,CAAC;IACxD,IAAI,EAAG,wCAAwC;IAC/C,IAAI,EAAG;QACL,QAAQ;KACT;IACD,OAAO,EAAE;QACP,KAAK;KACN;CACF,CAAC,EAEF,UAAU,GAAG,CAAC,QAAgB,EAAE,EAC9B,KAAK,EACL,IAAI,GAIP,EAAU,EAAE,CAAC,CAAC;IACX,IAAI,EAAG,yCAAyC;IAChD,IAAI,EAAG;QACL,QAAQ;KACT;IACD,OAAO,EAAE;QACP,KAAK;QACL,IAAI;KACL;CACF,CAAC,EAEF,SAAS,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,CAAC;IACzC,IAAI,EAAG,wCAAwC;IAC/C,IAAI,EAAG;QACL,QAAQ;KACT;CACF,CAAC,CAAC;AAUL,MAAM,oBAAoB,GAAG,CAAC,EAC5B,WAAW,EACX,iBAAiB,EACjB,EAAE,GACY,EAAgB,EAAE,CAChC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAC/B,oBAAK;IACH,GAAG,CAAC,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC;IAC3B,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACjC,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAC1C,CACF,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,MAAqB,EAAO,EAAE,CAAC,CAAC;IACxD,IAAI,EAAM,6CAA6C;IACvD,OAAO,EAAG,oBAAoB,CAAC,MAAM,CAAC;IACtC,IAAI,EAAM;QACR,EAAE,EAAS,MAAM,CAAC,EAAE;QACpB,QAAQ,EAAG,MAAM,CAAC,QAAQ;KAC3B;CACF,CAAC,CAAC;AAPU,QAAA,SAAS,aAOnB;AAEH,kBAAe;IACb,SAAS;IACT,WAAW;IACX,WAAW;IACX,SAAS;IACT,UAAU;CACX,CAAC"}
package/lib/agent.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ declare type FetchPageArgs = {
2
+ endpoint: string;
3
+ pageArgName: string;
4
+ page: number;
5
+ token: string;
6
+ };
7
+ export declare const buildSuffix: (pageArgName: string, page: number, params: string) => string, fetchPage: ({ endpoint, pageArgName, page, token, }: FetchPageArgs) => any;
8
+ export {};
package/lib/agent.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ /* eslint-disable no-bitwise*/
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.fetchPage = exports.buildSuffix = void 0;
8
+ const superagent_1 = __importDefault(require("superagent"));
9
+ const query_string_1 = __importDefault(require("query-string"));
10
+ const buildSuffix = (pageArgName, page, params) => {
11
+ const parsedParams = query_string_1.default.parse(params);
12
+ let finalParsedParams = {}, startString = "";
13
+ for (const key of Object.keys(parsedParams)) {
14
+ if (parsedParams[key] === null) {
15
+ startString += key;
16
+ }
17
+ else {
18
+ finalParsedParams = Object.assign(Object.assign({}, finalParsedParams), { [key]: parsedParams[key] });
19
+ }
20
+ }
21
+ startString = startString === "" ? "?" : `${startString}?`;
22
+ if (Object.keys(finalParsedParams).length > 0 && query_string_1.default.extract(params) !== "") {
23
+ startString = params.replace(query_string_1.default.extract(params), "");
24
+ }
25
+ return startString + query_string_1.default.stringify(Object.assign(Object.assign({}, finalParsedParams), { [pageArgName]: page }), {
26
+ encode: false,
27
+ }).replace(startString, "");
28
+ }, fetchPage = ({ endpoint, pageArgName, page, token, }) => {
29
+ const suffix = (0, exports.buildSuffix)(pageArgName, page, token), url = endpoint + suffix, promise = new Promise((resolve, reject) => (superagent_1.default.
30
+ get(url).
31
+ end((err, res) => err ? reject(err) : resolve(res))));
32
+ return promise.then((res) => ({
33
+ response: res.body,
34
+ }));
35
+ };
36
+ exports.buildSuffix = buildSuffix, exports.fetchPage = fetchPage;
37
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;AAS9B,4DAA+B;AAC/B,gEAA8B;AAEvB,MACL,WAAW,GAAG,CAAC,WAAmB,EAAE,IAAY,EAAE,MAAc,EAAE,EAAE;IAClE,MAAM,YAAY,GAAG,sBAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,iBAAiB,GAAG,EAAE,EACxB,WAAW,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QAC3C,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,WAAW,IAAI,GAAG,CAAC;SACpB;aAAM;YACL,iBAAiB,mCAAQ,iBAAiB,KACxC,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,GACzB,CAAC;SACH;KACF;IAED,WAAW,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC;IAE3D,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,sBAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;QAC1E,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;KACtD;IAED,OAAO,WAAW,GAAG,sBAAE,CAAC,SAAS,iCAAM,iBAAiB,KACtD,CAAC,WAAW,CAAC,EAAE,IAAI,KAClB;QACD,MAAM,EAAE,KAAK;KACd,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,EACD,SAAS,GAAG,CAAC,EACX,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,KAAK,GACS,EAAE,EAAE;IAClB,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,EAClD,GAAG,GAAG,QAAQ,GAAG,MAAM,EACvB,OAAO,GAAQ,IAAI,OAAO,CACxB,CAAC,OAAY,EAAE,MAAW,EAAE,EAAE,CAAC,CAC7B,oBAAK;QACH,GAAG,CAAC,GAAG,CAAC;QACR,GAAG,CAAC,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAChE,CACF,CAAC;IAEJ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAEtB,EAAE,EAAE,CAAC,CAAC;QACH,QAAQ,EAAE,GAAG,CAAC,IAAI;KACnB,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAhDF,QAAA,WAAW,gBA2BX,QAAA,SAAS,aAqBP"}
@@ -0,0 +1,36 @@
1
+ import type { PaginatorSettings } from "./types";
2
+ declare const createDataReducer: ({ key }: PaginatorSettings) => {
3
+ getItems: (state: any) => any;
4
+ getItem: ((state: {}, params_0: string) => any) & import("reselect").OutputSelectorFields<(args_0: any, args_1: string) => any> & {
5
+ clearCache: () => void;
6
+ };
7
+ getItemsList: ((state: {}) => any) & import("reselect").OutputSelectorFields<(args_0: any) => any> & {
8
+ clearCache: () => void;
9
+ };
10
+ getItemData: ((state: {}, params_0: string) => any) & import("reselect").OutputSelectorFields<(args_0: any, args_1: string) => any> & {
11
+ clearCache: () => void;
12
+ };
13
+ getItemHasError: ((state: never, params_0: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: any) => boolean & {
14
+ clearCache: () => void;
15
+ }> & {
16
+ clearCache: () => void;
17
+ };
18
+ getIsFetchingItemInfo: ((state: never, params_0: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: any) => boolean & {
19
+ clearCache: () => void;
20
+ }> & {
21
+ clearCache: () => void;
22
+ };
23
+ getItemIsFetched: ((state: never, params_0: string) => boolean) & import("reselect").OutputSelectorFields<(args_0: any) => boolean & {
24
+ clearCache: () => void;
25
+ }> & {
26
+ clearCache: () => void;
27
+ };
28
+ getShouldFetchItemInfo: ((state: ((...args: unknown[]) => {}) | {
29
+ [x: string]: any;
30
+ }, ...params: undefined[]) => boolean) & import("reselect").OutputSelectorFields<(...args: readonly unknown[]) => boolean & {
31
+ clearCache: () => void;
32
+ }> & {
33
+ clearCache: () => void;
34
+ };
35
+ };
36
+ export default createDataReducer;