1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _immutable = require("immutable");
|
8 |
|
9 | var Immutable = _interopRequireWildcard(_immutable);
|
10 |
|
11 | var _reselect = require("reselect");
|
12 |
|
13 | function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
14 |
|
15 | var pagesSelector = function pagesSelector(state) {
|
16 | return state;
|
17 | };
|
18 |
|
19 |
|
20 | var rowsPerPage = 50;
|
21 |
|
22 | var pageSelector = (0, _reselect.createSelector)(pagesSelector, function (state, token) {
|
23 | return token;
|
24 | }, function (pages, token) {
|
25 | return pages.get(token);
|
26 | });
|
27 |
|
28 | var getAllResults = (0, _reselect.createSelector)(pageSelector, function (state, token, items) {
|
29 | return items;
|
30 | }, function (page, items) {
|
31 | if (typeof page === "undefined") {
|
32 | return Immutable.List();
|
33 | }
|
34 |
|
35 | return page.get("ids").map(function (id) {
|
36 | return items.get(String(id));
|
37 | });
|
38 | });
|
39 |
|
40 | var getResultsUpToPage = (0, _reselect.createSelector)(pageSelector, function (state, token, items) {
|
41 | return items;
|
42 | }, function (state, token, items, target) {
|
43 | return target;
|
44 | }, function (state, token, items, target, perPage) {
|
45 | return perPage || rowsPerPage;
|
46 | }, function (page, items, target, perPage) {
|
47 | if (typeof page === "undefined") {
|
48 | return Immutable.List();
|
49 | }
|
50 |
|
51 | var ids = page.get("ids").slice(0, perPage * target);
|
52 |
|
53 | return ids.map(function (id) {
|
54 | return items.get(String(id));
|
55 | });
|
56 | });
|
57 |
|
58 | var getCurrentTotalResultsCount = (0, _reselect.createSelector)(pageSelector, function (page) {
|
59 | if (typeof page === "undefined") {
|
60 | return 0;
|
61 | }
|
62 |
|
63 | return page.get("total");
|
64 | });
|
65 |
|
66 | var isPageFetching = (0, _reselect.createSelector)(pageSelector, function (state, token, target) {
|
67 | return target;
|
68 | }, function (page, target) {
|
69 | if (typeof page === "undefined") {
|
70 | return false;
|
71 | }
|
72 |
|
73 | return page.get("fetching") && target === page.get("page");
|
74 | });
|
75 |
|
76 | var isPageFetched = (0, _reselect.createSelector)(pageSelector, function (state, token, target) {
|
77 | return target;
|
78 | }, function (page, target) {
|
79 | if (typeof page === "undefined") {
|
80 | return false;
|
81 | }
|
82 |
|
83 | return page.get("fetched") && target <= page.get("page");
|
84 | });
|
85 |
|
86 | var hasPageProblems = (0, _reselect.createSelector)(pageSelector, function (page) {
|
87 | if (typeof page === "undefined") {
|
88 | return false;
|
89 | }
|
90 |
|
91 | return page.get("error");
|
92 | });
|
93 |
|
94 | var getCurrentView = (0, _reselect.createSelector)(pageSelector, function (page) {
|
95 | if (typeof page === "undefined") {
|
96 | return 1;
|
97 | }
|
98 |
|
99 | return page.get("view");
|
100 | });
|
101 |
|
102 |
|
103 | var getPaginatorPaginations = function getPaginatorPaginations(state, name) {
|
104 | return state.getIn(["paginations", name]);
|
105 | },
|
106 | getPaginatorEntities = function getPaginatorEntities(state, name) {
|
107 | return state.getIn(["entities", name]);
|
108 | },
|
109 | getPaginators = (0, _reselect.createSelector)(getPaginatorPaginations, getPaginatorEntities, function (list, entities) {
|
110 | return {
|
111 | list: list,
|
112 | entities: entities
|
113 | };
|
114 | });
|
115 |
|
116 | exports.default = {
|
117 | getAllResults: getAllResults,
|
118 | getCurrentTotalResultsCount: getCurrentTotalResultsCount,
|
119 | getResultsUpToPage: getResultsUpToPage,
|
120 | isPageFetching: isPageFetching,
|
121 | isPageFetched: isPageFetched,
|
122 | hasPageProblems: hasPageProblems,
|
123 | getCurrentView: getCurrentView,
|
124 |
|
125 |
|
126 | getPaginatorPaginations: getPaginatorPaginations,
|
127 | getPaginatorEntities: getPaginatorEntities,
|
128 | getPaginators: getPaginators
|
129 | }; |
\ | No newline at end of file |