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.
- package/lib/Info.d.ts +9 -0
- package/lib/Info.js +19 -0
- package/lib/Info.js.map +1 -0
- package/lib/LoadDataItem.d.ts +23 -0
- package/lib/LoadDataItem.js +59 -0
- package/lib/LoadDataItem.js.map +1 -0
- package/lib/LoadPaginator.d.ts +41 -0
- package/lib/LoadPaginator.js +109 -0
- package/lib/LoadPaginator.js.map +1 -0
- package/lib/LoadingButton.d.ts +11 -0
- package/lib/LoadingButton.js +22 -0
- package/lib/LoadingButton.js.map +1 -0
- package/lib/actionTypes.d.ts +9 -0
- package/lib/actionTypes.js +13 -0
- package/lib/actionTypes.js.map +1 -0
- package/lib/actions.d.ts +42 -0
- package/lib/actions.js +82 -0
- package/lib/actions.js.map +1 -0
- package/lib/agent.d.ts +8 -0
- package/lib/agent.js +37 -0
- package/lib/agent.js.map +1 -0
- package/lib/createDataReducer.d.ts +36 -0
- package/lib/createDataReducer.js +79 -0
- package/lib/createDataReducer.js.map +1 -0
- package/lib/createItemReducer.d.ts +11 -0
- package/lib/createItemReducer.js +18 -0
- package/lib/createItemReducer.js.map +1 -0
- package/lib/createPaginator.d.ts +14 -0
- package/lib/createPaginator.js +84 -0
- package/lib/createPaginator.js.map +1 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +30 -0
- package/lib/index.js.map +1 -0
- package/lib/paginatorMiddleware.d.ts +5 -0
- package/lib/paginatorMiddleware.js +68 -0
- package/lib/paginatorMiddleware.js.map +1 -0
- package/lib/reducerItemData.d.ts +18 -0
- package/lib/reducerItemData.js +56 -0
- package/lib/reducerItemData.js.map +1 -0
- package/lib/reducerOperations.d.ts +3 -0
- package/lib/reducerOperations.js +69 -0
- package/lib/reducerOperations.js.map +1 -0
- package/lib/reducers.d.ts +4 -0
- package/lib/reducers.js +75 -0
- package/lib/reducers.js.map +1 -0
- package/lib/selectors.d.ts +58 -0
- package/lib/selectors.js +79 -0
- package/lib/selectors.js.map +1 -0
- package/lib/types/actions.d.ts +85 -0
- package/lib/types/actions.js +3 -0
- package/lib/types/actions.js.map +1 -0
- package/lib/types/index.d.ts +21 -0
- package/lib/types/index.js +16 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/state.d.ts +6 -0
- package/lib/types/state.js +3 -0
- package/lib/types/state.js.map +1 -0
- package/lib/util.d.ts +9 -0
- package/lib/util.js +49 -0
- package/lib/util.js.map +1 -0
- package/lib/words.d.ts +9 -0
- package/lib/words.js +12 -0
- package/lib/words.js.map +1 -0
- package/package.json +24 -17
- package/lib/__tests__/actions.spec.js +0 -117
- package/lib/__tests__/agent.spec.js +0 -32
- package/lib/__tests__/createPaginator.spec.js +0 -39
- package/lib/__tests__/reducers.spec.js +0 -125
- package/lib/__tests__/selectors.spec.js +0 -160
- package/lib/__tests__/setup.js +0 -3
package/lib/Info.d.ts
ADDED
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
|
package/lib/Info.js.map
ADDED
|
@@ -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"}
|
package/lib/actions.d.ts
ADDED
|
@@ -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
|
package/lib/agent.js.map
ADDED
|
@@ -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;
|