redux-paginator-immutable 17.0.51 → 17.1.0

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 (59) hide show
  1. package/Info.d.ts +9 -0
  2. package/Info.js +19 -0
  3. package/Info.js.map +1 -0
  4. package/LoadDataItem.d.ts +25 -0
  5. package/LoadDataItem.js +77 -0
  6. package/LoadDataItem.js.map +1 -0
  7. package/LoadPaginator.d.ts +4 -0
  8. package/LoadPaginator.js +79 -0
  9. package/LoadPaginator.js.map +1 -0
  10. package/LoadPaginatorTypes.d.ts +29 -0
  11. package/LoadPaginatorTypes.js +3 -0
  12. package/LoadPaginatorTypes.js.map +1 -0
  13. package/LoadingButton.d.ts +8 -0
  14. package/LoadingButton.js +26 -0
  15. package/LoadingButton.js.map +1 -0
  16. package/actionTypes.d.ts +9 -0
  17. package/actionTypes.js +13 -0
  18. package/actionTypes.js.map +1 -0
  19. package/actions.d.ts +42 -0
  20. package/actions.js +94 -0
  21. package/actions.js.map +1 -0
  22. package/agent.d.ts +8 -0
  23. package/agent.js +51 -0
  24. package/agent.js.map +1 -0
  25. package/createDataReducer.d.ts +14 -0
  26. package/createDataReducer.js +68 -0
  27. package/createDataReducer.js.map +1 -0
  28. package/createItemReducer.d.ts +9 -0
  29. package/createItemReducer.js +19 -0
  30. package/createItemReducer.js.map +1 -0
  31. package/createPaginator.d.ts +33 -0
  32. package/createPaginator.js +93 -0
  33. package/createPaginator.js.map +1 -0
  34. package/index.d.ts +11 -0
  35. package/index.js +30 -0
  36. package/index.js.map +1 -0
  37. package/package.json +122 -115
  38. package/paginatorMiddleware.d.ts +5 -0
  39. package/paginatorMiddleware.js +72 -0
  40. package/paginatorMiddleware.js.map +1 -0
  41. package/reducerItemData.d.ts +18 -0
  42. package/reducerItemData.js +69 -0
  43. package/reducerItemData.js.map +1 -0
  44. package/reducerOperations.d.ts +4 -0
  45. package/reducerOperations.js +75 -0
  46. package/reducerOperations.js.map +1 -0
  47. package/reducers.d.ts +2 -0
  48. package/reducers.js +78 -0
  49. package/reducers.js.map +1 -0
  50. package/selectors.d.ts +38 -0
  51. package/selectors.js +83 -0
  52. package/selectors.js.map +1 -0
  53. package/style.css +0 -0
  54. package/types.d.ts +107 -0
  55. package/types.js +3 -0
  56. package/types.js.map +1 -0
  57. package/util.d.ts +9 -0
  58. package/util.js +59 -0
  59. package/util.js.map +1 -0
package/Info.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ 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/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
+ var react_1 = __importDefault(require("react"));
7
+ var utility_1 = require("x25/utility");
8
+ var getNumberForm = function (value, one, all) {
9
+ if (value === 1) {
10
+ return "1 ".concat(one);
11
+ }
12
+ return "".concat(utility_1.words.getNumberTense(value), " ").concat(all);
13
+ }, Info = function (_a) {
14
+ var shown = _a.shown, total = _a.total, one = _a.one, all = _a.all;
15
+ return (react_1.default.createElement("div", { className: "text-muted" }, "".concat(utility_1.words.Showing, " "),
16
+ shown === total ? "".concat(utility_1.words.All, " - ") : "".concat(shown, " ").concat(utility_1.words.Of), " ".concat(getNumberForm(total, one, all))));
17
+ };
18
+ exports.default = Info;
19
+ //# sourceMappingURL=Info.js.map
package/Info.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Info.js","sourceRoot":"","sources":["../src/Info.tsx"],"names":[],"mappings":";;;;;AAOA,gDAA0B;AAC1B,uCAAoC;AAEpC,IACE,aAAa,GAAG,UAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACtD,IAAI,KAAK,KAAK,CAAC,EAAE;QACf,OAAO,YAAK,GAAG,CAAE,CAAC;KACnB;IAED,OAAO,UAAG,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,cAAI,GAAG,CAAE,CAAC;AACjD,CAAC,EAED,IAAI,GAAG,UAAC,EAAyC;QAAvC,KAAK,WAAA,EAAE,KAAK,WAAA,EAAE,GAAG,SAAA,EAAE,GAAG,SAAA;IAAsB,OAAA,CACpD,uCAAK,SAAS,EAAC,YAAY,IACxB,UAAG,eAAK,CAAC,OAAO,MAAG;QACnB,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,UAAG,eAAK,CAAC,GAAG,QAAK,CAAC,CAAC,CAAC,UAAG,KAAK,cAAI,eAAK,CAAC,EAAE,CAAE,EAC5D,WAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAE,CACjC,CACP;AANqD,CAMrD,CAAC;AAEJ,kBAAe,IAAI,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ 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 const _default: import("react-redux").ConnectedComponent<(props: LoadDataItemPropTypes) => any, {
13
+ children: React.ReactNode;
14
+ id: string;
15
+ settings: {
16
+ selectors: any;
17
+ dataItemURL: string;
18
+ endpoint: string;
19
+ manageEntity: any;
20
+ normalizeDataItem: any;
21
+ };
22
+ context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").AnyAction>> | undefined;
23
+ store?: import("redux").Store<any, import("redux").AnyAction> | undefined;
24
+ }>;
25
+ export default _default;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ var React = __importStar(require("react"));
38
+ var react_redux_1 = require("react-redux");
39
+ var Messages_1 = require("x25/Messages");
40
+ var utility_1 = require("x25/utility");
41
+ var actions_1 = require("./actions");
42
+ var mapStateToProps = function (state, _a) {
43
+ var selectors = _a.settings.selectors, id = _a.id;
44
+ return ({
45
+ data: selectors.getItem(state, id),
46
+ hasError: selectors.getItemHasError(state, id),
47
+ fetched: selectors.getItemIsFetched(state, id),
48
+ isFetching: selectors.getIsFetchingItemInfo(state, id),
49
+ shouldFetch: selectors.getShouldFetchItemInfo(state, id),
50
+ });
51
+ }, mapDispatchToProps = function (dispatch, _a) {
52
+ var id = _a.id, settings = _a.settings;
53
+ return ({
54
+ fetchItem: function () {
55
+ dispatch((0, actions_1.fetchItem)(__assign(__assign({}, settings), { id: id })));
56
+ },
57
+ });
58
+ }, LoadDataItem = function (props) {
59
+ var children = props.children, data = props.data, isFetching = props.isFetching, shouldFetch = props.shouldFetch, hasError = props.hasError, fetchItem = props.fetchItem;
60
+ React.useEffect(function () {
61
+ if (shouldFetch) {
62
+ fetchItem();
63
+ }
64
+ }, [shouldFetch, isFetching, hasError]);
65
+ if (isFetching) {
66
+ return React.createElement(Messages_1.LoadingMessage, { message: utility_1.words.LoadingData });
67
+ }
68
+ if (hasError) {
69
+ return React.createElement(Messages_1.LargeErrorMessage, { message: utility_1.words.ThereWasAProblem, onRetry: fetchItem });
70
+ }
71
+ if (data.size === 0) {
72
+ return null;
73
+ }
74
+ return children;
75
+ };
76
+ exports.default = (0, react_redux_1.connect)(mapStateToProps, mapDispatchToProps)(LoadDataItem);
77
+ //# sourceMappingURL=LoadDataItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadDataItem.js","sourceRoot":"","sources":["../src/LoadDataItem.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAsB/B,2CAAsC;AACtC,yCAAiE;AACjE,uCAAoC;AACpC,qCAAyD;AAEzD,IACE,eAAe,GAAG,UAAC,KAAU,EAAE,EAKpB;QAHP,SAAS,wBAAA,EAEX,EAAE,QAAA;IACY,OAAA,CAAC;QACf,IAAI,EAAU,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1C,QAAQ,EAAM,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;QAClD,OAAO,EAAO,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;QACnD,UAAU,EAAI,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;QACxD,WAAW,EAAG,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,CAAC;KAC1D,CAAC;AANc,CAMd,EACF,kBAAkB,GAAG,UAAC,QAAa,EAAE,EAG1B;QAFT,EAAE,QAAA,EACF,QAAQ,cAAA;IACM,OAAA,CAAC;QACf,SAAS;YACP,QAAQ,CAAC,IAAA,mBAAe,wBACnB,QAAQ,KACX,EAAE,IAAA,IACF,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AAPc,CAOd,EAEF,YAAY,GAAG,UAAC,KAA4B;IAExC,IAAA,QAAQ,GAMN,KAAK,SANC,EACR,IAAI,GAKF,KAAK,KALH,EACJ,UAAU,GAIR,KAAK,WAJG,EACV,WAAW,GAGT,KAAK,YAHI,EACX,QAAQ,GAEN,KAAK,SAFC,EACR,SAAS,GACP,KAAK,UADE,CACD;IAEV,KAAK,CAAC,SAAS,CAAC;QACd,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,4 @@
1
+ /// <reference types="react" />
2
+ import { LoadPaginatorPropTypes } from "./LoadPaginatorTypes";
3
+ declare const LoadPaginator: (props: LoadPaginatorPropTypes) => JSX.Element;
4
+ export default LoadPaginator;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ var react_1 = __importStar(require("react"));
30
+ var Immutable = __importStar(require("immutable"));
31
+ var react_redux_1 = require("react-redux");
32
+ var Messages_1 = require("x25/Messages");
33
+ var utility_1 = require("x25/utility");
34
+ var selectors_1 = __importDefault(require("./selectors"));
35
+ var LoadingButton_1 = __importDefault(require("./LoadingButton"));
36
+ var LoadPaginator = function (props) {
37
+ var token = props.token, settings = props.settings, _a = (0, react_redux_1.useSelector)(function (state) { return (selectors_1.default.getPaginators(state, settings.key)); }), list = _a.list, entities = _a.entities, currentPage = selectors_1.default.getCurrentView(list, token), isFetching = selectors_1.default.isPageFetching(list, token, currentPage), isFetched = selectors_1.default.isPageFetched(list, token, currentPage), resultsUpTo = (selectors_1.default.getResultsUpToPage(list, token, entities, currentPage, settings.rowsPerLoad)), items = settings.manipulateItems(resultsUpTo), total = selectors_1.default.getCurrentTotalResultsCount(list, token), hasProblems = selectors_1.default.hasPageProblems(list, token), paginator = Immutable.Map({
38
+ currentPage: currentPage,
39
+ hasProblems: hasProblems,
40
+ isFetched: isFetched,
41
+ isFetching: isFetching,
42
+ items: items,
43
+ total: total,
44
+ }), dispatch = (0, react_redux_1.useDispatch)(), resetView = function (currentToken) { return dispatch(settings.resetView(currentToken)); }, changeView = function (data) { return dispatch(settings.changeView(data)); }, loadData = function (page) { return dispatch(settings.requestPage(page, token)); }, showLoading = paginator.get("total") !== items.size, shouldFetch = !isFetched && !isFetching, handleLoadMoreClick = function () {
45
+ if (hasProblems) {
46
+ loadData(currentPage);
47
+ }
48
+ else {
49
+ changeView({
50
+ token: token,
51
+ view: currentPage + 1,
52
+ });
53
+ }
54
+ };
55
+ (0, react_1.useEffect)(function () {
56
+ if (shouldFetch) {
57
+ loadData(currentPage);
58
+ }
59
+ }, [shouldFetch]);
60
+ (0, react_1.useEffect)(function () { return function () { return resetView(token); }; }, []);
61
+ if (items.size === 0 && isFetching) {
62
+ return react_1.default.createElement(Messages_1.LoadingMessage, { message: utility_1.words.LoadingData });
63
+ }
64
+ if (hasProblems && currentPage === 1) {
65
+ return (react_1.default.createElement(Messages_1.LargeErrorMessage, { message: utility_1.words.ThereWasAProblem, onRetry: handleLoadMoreClick }));
66
+ }
67
+ return (react_1.default.createElement(react_1.default.Fragment, null,
68
+ react_1.default.cloneElement(props.children, {
69
+ token: props.token,
70
+ settings: props.settings,
71
+ paginator: paginator,
72
+ changeView: changeView,
73
+ resetView: resetView,
74
+ loadData: loadData,
75
+ }),
76
+ showLoading ? (react_1.default.createElement(LoadingButton_1.default, { hasProblems: hasProblems, isFetching: isFetching, onLoadMoreClick: handleLoadMoreClick })) : null));
77
+ };
78
+ exports.default = LoadPaginator;
79
+ //# 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,29 @@
1
+ /// <reference types="react" />
2
+ type Settings = {
3
+ key: string;
4
+ rowsPerLoad: number;
5
+ manipulateItems: (items: any) => any;
6
+ resetView: (data: any) => any;
7
+ changeView: (data: any) => any;
8
+ requestPage: (page: number, token: string) => any;
9
+ };
10
+ export type LoadPaginatorPropTypes = {
11
+ token: string;
12
+ settings: Settings;
13
+ children: JSX.Element;
14
+ };
15
+ export type ChangeView = (info: {
16
+ token: string;
17
+ view: number;
18
+ }) => any;
19
+ export type ResetView = (token: string) => any;
20
+ export type LoadData = (page: number) => any;
21
+ export type List = {
22
+ token: string;
23
+ settings: Settings;
24
+ paginator: any;
25
+ changeView: ChangeView;
26
+ resetView: ResetView;
27
+ loadData: LoadData;
28
+ };
29
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=LoadPaginatorTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadPaginatorTypes.js","sourceRoot":"","sources":["../src/LoadPaginatorTypes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ type LoadingButtonPropTypes = {
3
+ isFetching: boolean;
4
+ hasProblems: boolean;
5
+ onLoadMoreClick: () => void;
6
+ };
7
+ declare const LoadingButton: (props: LoadingButtonPropTypes) => JSX.Element;
8
+ export default LoadingButton;
@@ -0,0 +1,26 @@
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
+ var react_1 = __importDefault(require("react"));
7
+ var Messages_1 = require("x25/Messages");
8
+ var react_intersection_observer_1 = require("react-intersection-observer");
9
+ var utility_1 = require("x25/utility");
10
+ var LoadingButton = function (props) {
11
+ var isFetching = props.isFetching, hasProblems = props.hasProblems, onLoadMoreClick = props.onLoadMoreClick, _a = (0, react_intersection_observer_1.useInView)({
12
+ // /* Optional options */
13
+ // triggerOnce: true,
14
+ // rootMargin: '0px 0px',
15
+ }), ref = _a[0], inView = _a[1];
16
+ react_1.default.useEffect(function () {
17
+ if (!isFetching && !hasProblems && inView) {
18
+ onLoadMoreClick();
19
+ }
20
+ }, [isFetching, hasProblems, inView]);
21
+ return (react_1.default.createElement("div", { className: "text-center my-2" },
22
+ hasProblems ? react_1.default.createElement(Messages_1.ErrorMessage, { message: utility_1.words.ThereWasAProblem }) : null,
23
+ isFetching ? react_1.default.createElement(Messages_1.LoadingMessage, { message: utility_1.words.LoadingData, sm: true }) : (react_1.default.createElement("button", { className: "btn btn-outline-info d-print-none", disabled: isFetching, onClick: onLoadMoreClick, ref: ref, type: "button" }, isFetching ? utility_1.words.LoadingData : utility_1.words.LoadMore))));
24
+ };
25
+ exports.default = LoadingButton;
26
+ //# sourceMappingURL=LoadingButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoadingButton.js","sourceRoot":"","sources":["../src/LoadingButton.tsx"],"names":[],"mappings":";;;;;AAAA,gDAA0B;AAC1B,yCAA4D;AAC5D,2EAAwD;AAOxD,uCAAoC;AAEpC,IAAM,aAAa,GAAG,UAAC,KAA8B;IAE/C,IAAA,UAAU,GAAmC,KAAK,WAAxC,EAAE,WAAW,GAAsB,KAAK,YAA3B,EAAE,eAAe,GAAK,KAAK,gBAAV,EAC1C,KAAgB,IAAA,uCAAS,EAAC;IAC1B,yBAAyB;IACzB,qBAAqB;IACrB,yBAAyB;KACxB,CAAC,EAJD,GAAG,QAAA,EAAE,MAAM,QAIV,CAAC;IAEL,eAAK,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE;YACzC,eAAe,EAAE,CAAC;SACnB;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtC,OAAO,CACL,uCAAK,SAAS,EAAC,kBAAkB;QAC9B,WAAW,CAAC,CAAC,CAAC,8BAAC,uBAAY,IAAC,OAAO,EAAE,eAAK,CAAC,gBAAgB,GAAI,CAAC,CAAC,CAAC,IAAI;QACtE,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,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,IACZ,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAK,CAAC,QAAQ,CACzC,CACV,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,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";
package/actionTypes.js ADDED
@@ -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"}
package/actions.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import { EndPointCb, Action } from "./types";
2
+ 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
+ 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
+ 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/actions.js ADDED
@@ -0,0 +1,94 @@
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
+ var superagent_1 = __importDefault(require("superagent"));
8
+ var requestPage = function (_a) {
9
+ var endpoint = _a.endpoint, endpointCb = _a.endpointCb, manageEntity = _a.manageEntity, resultsKey = _a.resultsKey, totalKey = _a.totalKey, pageArgName = _a.pageArgName, idKey = _a.idKey, page = _a.page, token = _a.token;
10
+ return ({
11
+ type: "@@redux-paginator-immutable/REQUEST_PAGE",
12
+ meta: {
13
+ endpoint: endpoint,
14
+ endpointCb: endpointCb,
15
+ manageEntity: manageEntity,
16
+ resultsKey: resultsKey,
17
+ totalKey: totalKey,
18
+ pageArgName: pageArgName,
19
+ idKey: idKey,
20
+ },
21
+ payload: {
22
+ page: page,
23
+ token: token,
24
+ },
25
+ });
26
+ }, receivePage = function (_a) {
27
+ var endpoint = _a.endpoint, endpointCb = _a.endpointCb, manageEntity = _a.manageEntity, pageArgName = _a.pageArgName, idKey = _a.idKey, page = _a.page, token = _a.token, items = _a.items, error = _a.error, total = _a.total;
28
+ return ({
29
+ type: "@@redux-paginator-immutable/RECEIVE_PAGE",
30
+ meta: {
31
+ endpoint: endpoint,
32
+ endpointCb: endpointCb,
33
+ manageEntity: manageEntity,
34
+ pageArgName: pageArgName,
35
+ idKey: idKey,
36
+ },
37
+ payload: {
38
+ page: page,
39
+ token: token,
40
+ items: items,
41
+ error: error,
42
+ total: total,
43
+ },
44
+ });
45
+ }, resetView = function (endpoint, token) { return ({
46
+ type: "@@redux-paginator-immutable/RESET_VIEW",
47
+ meta: {
48
+ endpoint: endpoint,
49
+ },
50
+ payload: {
51
+ token: token,
52
+ },
53
+ }); }, changeView = function (endpoint, _a) {
54
+ var token = _a.token, view = _a.view;
55
+ return ({
56
+ type: "@@redux-paginator-immutable/CHANGE_VIEW",
57
+ meta: {
58
+ endpoint: endpoint,
59
+ },
60
+ payload: {
61
+ token: token,
62
+ view: view,
63
+ },
64
+ });
65
+ }, clearData = function (endpoint) { return ({
66
+ type: "@@redux-paginator-immutable/CLEAR_DATA",
67
+ meta: {
68
+ endpoint: endpoint,
69
+ },
70
+ }); };
71
+ var fetchDataItemRequest = function (_a) {
72
+ var dataItemURL = _a.dataItemURL, normalizeDataItem = _a.normalizeDataItem, id = _a.id;
73
+ return new Promise(function (resolve, reject) { return (superagent_1.default.
74
+ get("".concat(dataItemURL, "/").concat(id)).
75
+ set("Accept", "application/json").
76
+ end(normalizeDataItem(resolve, reject))); });
77
+ };
78
+ var fetchItem = function (things) { return ({
79
+ type: "@@redux-paginator-immutable/FETCH_ITEM_DATA",
80
+ payload: fetchDataItemRequest(things),
81
+ meta: {
82
+ id: things.id,
83
+ endpoint: things.endpoint,
84
+ },
85
+ }); };
86
+ exports.fetchItem = fetchItem;
87
+ exports.default = {
88
+ clearData: clearData,
89
+ requestPage: requestPage,
90
+ receivePage: receivePage,
91
+ resetView: resetView,
92
+ changeView: changeView,
93
+ };
94
+ //# sourceMappingURL=actions.js.map
package/actions.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"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"}
package/agent.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ 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/agent.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /* eslint-disable no-bitwise*/
3
+ var __assign = (this && this.__assign) || function () {
4
+ __assign = Object.assign || function(t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8
+ t[p] = s[p];
9
+ }
10
+ return t;
11
+ };
12
+ return __assign.apply(this, arguments);
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.fetchPage = exports.buildSuffix = void 0;
19
+ var superagent_1 = __importDefault(require("superagent"));
20
+ var query_string_1 = __importDefault(require("query-string"));
21
+ var buildSuffix = function (pageArgName, page, params) {
22
+ var _a, _b;
23
+ var parsedParams = query_string_1.default.parse(params);
24
+ var finalParsedParams = {}, startString = "";
25
+ for (var _i = 0, _c = Object.keys(parsedParams); _i < _c.length; _i++) {
26
+ var key = _c[_i];
27
+ if (parsedParams[key] === null) {
28
+ startString += key;
29
+ }
30
+ else {
31
+ finalParsedParams = __assign(__assign({}, finalParsedParams), (_a = {}, _a[key] = parsedParams[key], _a));
32
+ }
33
+ }
34
+ startString = startString === "" ? "?" : "".concat(startString, "?");
35
+ if (Object.keys(finalParsedParams).length > 0 && query_string_1.default.extract(params) !== "") {
36
+ startString = params.replace(query_string_1.default.extract(params), "");
37
+ }
38
+ return startString + query_string_1.default.stringify(__assign(__assign({}, finalParsedParams), (_b = {}, _b[pageArgName] = page, _b)), {
39
+ encode: false,
40
+ }).replace(startString, "");
41
+ }, fetchPage = function (_a) {
42
+ var endpoint = _a.endpoint, pageArgName = _a.pageArgName, page = _a.page, token = _a.token;
43
+ var suffix = (0, exports.buildSuffix)(pageArgName, page, token), url = endpoint + suffix, promise = new Promise(function (resolve, reject) { return (superagent_1.default.
44
+ get(url).
45
+ end(function (err, res) { return err ? reject(err) : resolve(res); })); });
46
+ return promise.then(function (res) { return ({
47
+ response: res.body,
48
+ }); });
49
+ };
50
+ exports.buildSuffix = buildSuffix, exports.fetchPage = fetchPage;
51
+ //# sourceMappingURL=agent.js.map
package/agent.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";AAAA,8BAA8B;;;;;;;;;;;;;;;;;AAS9B,0DAA+B;AAC/B,8DAA8B;AAEvB,IACL,WAAW,GAAG,UAAC,WAAmB,EAAE,IAAY,EAAE,MAAc;;IAC9D,IAAM,YAAY,GAAG,sBAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,iBAAiB,GAAG,EAAE,EACxB,WAAW,GAAG,EAAE,CAAC;IAEnB,KAAkB,UAAyB,EAAzB,KAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;QAAxC,IAAM,GAAG,SAAA;QACZ,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,WAAW,IAAI,GAAG,CAAC;SACpB;aAAM;YACL,iBAAiB,yBAAQ,iBAAiB,gBACvC,GAAG,IAAG,YAAY,CAAC,GAAG,CAAC,MACzB,CAAC;SACH;KACF;IAED,WAAW,GAAG,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAG,WAAW,MAAG,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,uBAAM,iBAAiB,gBACrD,WAAW,IAAG,IAAI,QAClB;QACD,MAAM,EAAE,KAAK;KACd,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC,EACD,SAAS,GAAG,UAAC,EAKG;QAJd,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,IAAI,UAAA,EACJ,KAAK,WAAA;IAEL,IAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,EAClD,GAAG,GAAG,QAAQ,GAAG,MAAM,EACvB,OAAO,GAAQ,IAAI,OAAO,CACxB,UAAC,OAAY,EAAE,MAAW,IAAK,OAAA,CAC7B,oBAAK;QACH,GAAG,CAAC,GAAG,CAAC;QACR,GAAG,CAAC,UAAC,GAAQ,EAAE,GAAQ,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAhC,CAAgC,CAAC,CAChE,EAJ8B,CAI9B,CACF,CAAC;IAEJ,OAAO,OAAO,CAAC,IAAI,CAAC,UAAC,GAEtB,IAAK,OAAA,CAAC;QACH,QAAQ,EAAE,GAAG,CAAC,IAAI;KACnB,CAAC,EAFE,CAEF,CAAC,CAAC;AACN,CAAC,CAAC;AAhDF,QAAA,WAAW,gBA2BX,QAAA,SAAS,aAqBP"}
@@ -0,0 +1,14 @@
1
+ import { PaginatorSettings } from "./types";
2
+ type Selector = (state: any, id: string) => any;
3
+ type ListSelector = (state: any) => any;
4
+ declare const createDataReducer: ({ key }: PaginatorSettings) => {
5
+ getItems: (state: any) => any;
6
+ getItem: Selector;
7
+ getItemsList: ListSelector;
8
+ getItemData: Selector;
9
+ getItemHasError: Selector;
10
+ getIsFetchingItemInfo: Selector;
11
+ getItemIsFetched: Selector;
12
+ getShouldFetchItemInfo: Selector;
13
+ };
14
+ export default createDataReducer;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var reselect_1 = require("reselect");
27
+ var Immutable = __importStar(require("immutable"));
28
+ /*
29
+ Use to create a complex list where you need more information about
30
+ the item. For instance, if you DO need to fetch more data or to
31
+ manipulate it
32
+ */
33
+ var createDataReducer = function (_a) {
34
+ var key = _a.key;
35
+ var getItems = function (state) { return (state.getIn(["entities", key])); }, getItem = (0, reselect_1.createSelector)(getItems, function (_state, id) { return id; }, function (data, id) { return data.get(id) || Immutable.Map(); }), getItemsList = (0, reselect_1.createSelector)(getItems, function (data) { return data.map(function (current) { return current.get("Data"); }).toList(); }), getItemData = (0, reselect_1.createSelector)(getItems, function (_state, id) { return id; }, function (data, id) {
36
+ if (typeof data === "undefined") {
37
+ return Immutable.Map();
38
+ }
39
+ return data.getIn([id, "Data"]);
40
+ }), getItemHasError = (0, reselect_1.createSelector)(getItem, function (data) {
41
+ if (typeof data === "undefined") {
42
+ return false;
43
+ }
44
+ return data.get("error") === true;
45
+ }), getIsFetchingItemInfo = (0, reselect_1.createSelector)(getItem, function (data) {
46
+ if (typeof data === "undefined") {
47
+ return false;
48
+ }
49
+ return data.get("fetching");
50
+ }), getItemIsFetched = (0, reselect_1.createSelector)(getItem, function (data) {
51
+ if (typeof data === "undefined") {
52
+ return false;
53
+ }
54
+ return data.get("fetched");
55
+ }), getShouldFetchItemInfo = (0, reselect_1.createSelector)(getIsFetchingItemInfo, getItemIsFetched, getItemHasError, function (isFetching, isFetched, hasError) { return (!isFetched && !isFetching && !hasError); });
56
+ return {
57
+ getItems: getItems,
58
+ getItem: getItem,
59
+ getItemsList: getItemsList,
60
+ getItemData: getItemData,
61
+ getItemHasError: getItemHasError,
62
+ getIsFetchingItemInfo: getIsFetchingItemInfo,
63
+ getItemIsFetched: getItemIsFetched,
64
+ getShouldFetchItemInfo: getShouldFetchItemInfo,
65
+ };
66
+ };
67
+ exports.default = createDataReducer;
68
+ //# sourceMappingURL=createDataReducer.js.map