@mjhls/mjh-framework 1.0.884-beta.0 → 1.0.884-beta.1

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 (91) hide show
  1. package/dist/cjs/AD.js +1 -1
  2. package/dist/cjs/AlgoliaSearch.js +1 -1
  3. package/dist/cjs/ArticleProgramLandingPage.js +6 -6
  4. package/dist/cjs/ArticleSeriesLandingPage.js +4 -4
  5. package/dist/cjs/ArticleSeriesListing.js +1 -1
  6. package/dist/cjs/ContentCardPaginated.js +409 -0
  7. package/dist/cjs/DeckContent.js +1 -1
  8. package/dist/cjs/DeckQueue.js +1 -1
  9. package/dist/cjs/DeckQueuePaginated.js +340 -0
  10. package/dist/cjs/{Dfp-14d2455c.js → Dfp-f492f985.js} +2 -2
  11. package/dist/cjs/ExternalResources.js +2 -2
  12. package/dist/cjs/GridContent.js +4 -116
  13. package/dist/cjs/GridContentPaginated.js +699 -0
  14. package/dist/cjs/HorizontalArticleListing.js +2 -2
  15. package/dist/cjs/ImageSlider-38f25e66.js +3989 -0
  16. package/dist/cjs/IssueLanding.js +2 -2
  17. package/dist/cjs/MasterDeck.js +1 -1
  18. package/dist/cjs/MasterDeckPaginated.js +444 -0
  19. package/dist/cjs/MediaSeriesCard-8d27612b.js +9411 -0
  20. package/dist/cjs/MediaSeriesLanding.js +26 -9415
  21. package/dist/cjs/MediaSeriesLandingPaginated.js +522 -0
  22. package/dist/cjs/Pagination-2f76381b.js +51 -0
  23. package/dist/cjs/PartnerDetailListing.js +15 -3986
  24. package/dist/cjs/PartnerDetailListingPaginated.js +312 -0
  25. package/dist/cjs/PublicationFeature-28c549f2.js +126 -0
  26. package/dist/cjs/QueueDeckExpandedPaginated.js +1378 -0
  27. package/dist/cjs/TaxonomyDescription.js +2 -2
  28. package/dist/cjs/VideoProgramLandingPage.js +5 -5
  29. package/dist/cjs/VideoSeriesLandingPage.js +4 -4
  30. package/dist/cjs/VideoSeriesListing.js +1 -1
  31. package/dist/cjs/View.js +83 -3
  32. package/dist/cjs/faundadb.js +15 -15
  33. package/dist/cjs/getRootDocGroup.js +3 -3
  34. package/dist/cjs/getSerializers.js +2 -2
  35. package/dist/cjs/{index-396089c0.js → index-54adcbc3.js} +1 -1
  36. package/dist/cjs/index.js +4 -4
  37. package/dist/cjs/{inherits-cba9c846.js → inherits-12d44cca.js} +2 -2
  38. package/dist/esm/{ADInfeed-8a038df9.js → ADInfeed-d767ebe2.js} +2 -2
  39. package/dist/esm/ArticleProgramLandingPage.js +1 -1
  40. package/dist/esm/ArticleSeriesLandingPage.js +1 -1
  41. package/dist/esm/ArticleSeriesListing.js +2 -2
  42. package/dist/esm/Column1.js +4 -4
  43. package/dist/esm/Column2.js +5 -5
  44. package/dist/esm/Column3.js +6 -6
  45. package/dist/esm/ContentCardPaginated.js +403 -0
  46. package/dist/esm/DeckContent.js +16 -16
  47. package/dist/esm/DeckQueue.js +18 -18
  48. package/dist/esm/DeckQueuePaginated.js +334 -0
  49. package/dist/esm/EventsDeck.js +26 -26
  50. package/dist/esm/ExternalResources.js +3 -3
  51. package/dist/esm/GridContent.js +38 -150
  52. package/dist/esm/GridContentPaginated.js +693 -0
  53. package/dist/esm/HamMagazine.js +4 -4
  54. package/dist/esm/HorizontalArticleListing.js +1 -1
  55. package/dist/esm/ImageSlider-a3154b97.js +3980 -0
  56. package/dist/esm/IssueContentDeck.js +14 -14
  57. package/dist/esm/IssueDeck.js +22 -22
  58. package/dist/esm/IssueLanding.js +2 -2
  59. package/dist/esm/MasterDeck.js +4 -4
  60. package/dist/esm/MasterDeckPaginated.js +438 -0
  61. package/dist/esm/MediaSeriesCard-1dd7eae8.js +9403 -0
  62. package/dist/esm/MediaSeriesLanding.js +23 -9411
  63. package/dist/esm/MediaSeriesLandingPaginated.js +517 -0
  64. package/dist/esm/NavDvm.js +3 -3
  65. package/dist/esm/NavMagazine.js +4 -4
  66. package/dist/esm/NavNative.js +5 -5
  67. package/dist/esm/Pagination-c0db7ca1.js +46 -0
  68. package/dist/esm/PartnerDetailListing.js +12 -3982
  69. package/dist/esm/PartnerDetailListingPaginated.js +307 -0
  70. package/dist/esm/PubSection.js +1 -1
  71. package/dist/esm/PublicationDeck.js +18 -18
  72. package/dist/esm/PublicationFeature-fa24dedb.js +121 -0
  73. package/dist/esm/PublicationLanding.js +22 -22
  74. package/dist/esm/QueueDeckExpanded.js +1 -1
  75. package/dist/esm/QueueDeckExpandedPaginated.js +1372 -0
  76. package/dist/esm/RolesDeck.js +12 -12
  77. package/dist/esm/Search.js +2 -2
  78. package/dist/esm/{SocialSearchComponent-b5be0e6c.js → SocialSearchComponent-dca69151.js} +3 -3
  79. package/dist/esm/TaxonomyCard.js +16 -16
  80. package/dist/esm/TaxonomyDescription.js +1 -1
  81. package/dist/esm/TemplateNormal.js +4 -4
  82. package/dist/esm/VideoProgramLandingPage.js +6 -6
  83. package/dist/esm/VideoSeriesLandingPage.js +1 -1
  84. package/dist/esm/VideoSeriesListing.js +3 -3
  85. package/dist/esm/View.js +84 -4
  86. package/dist/esm/getSerializers.js +1 -1
  87. package/dist/esm/{index-0e04b7d7.js → index-d1476645.js} +19 -19
  88. package/dist/esm/index.js +10 -9
  89. package/package.json +2 -1
  90. package/dist/cjs/Schema.js +0 -100
  91. package/dist/esm/Schema.js +0 -95
@@ -0,0 +1,522 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ require('./_commonjsHelpers-06173234.js');
6
+ require('./core.get-iterator-method-f3c44602.js');
7
+ require('./_library-dd23b178.js');
8
+ require('./_iter-detect-05795553.js');
9
+ require('./toConsumableArray-c9b8a0d0.js');
10
+ require('./_object-pie-68c5bcbc.js');
11
+ var _extends$1 = require('./extends-eed4f016.js');
12
+ require('./_object-sap-171b9ea5.js');
13
+ require('./inherits-12d44cca.js');
14
+ require('./define-property-21887c62.js');
15
+ require('./web.dom.iterable-e34bf324.js');
16
+ var _typeof = require('./typeof-5f52cf64.js');
17
+ require('./_is-array-aa52fa1e.js');
18
+ var React = require('react');
19
+ var React__default = _interopDefault(React);
20
+ require('./events-1b438fe7.js');
21
+ require('./index-98e01cb9.js');
22
+ require('prop-types');
23
+ require('react-bootstrap/Container');
24
+ require('react-bootstrap/Row');
25
+ require('react-bootstrap/Col');
26
+ require('react-bootstrap/Card');
27
+ require('./moment-575fe24c.js');
28
+ require('next/router');
29
+ require('./isSymbol-04666465.js');
30
+ require('./debounce-529c8d06.js');
31
+ require('./toNumber-36d1e7e5.js');
32
+ require('react-dom');
33
+ var slicedToArray = require('./slicedToArray-f6d4eaa8.js');
34
+ require('./index-be0c82be.js');
35
+ require('./urlFor.js');
36
+ require('./index-96b3db50.js');
37
+ require('./main-02daeefe.js');
38
+ require('./entities-310b46ee.js');
39
+ require('./stringify-bbc68047.js');
40
+ var asyncToGenerator = require('./asyncToGenerator-df19209d.js');
41
+ require('./Segment.js');
42
+ require('./Beam.js');
43
+ require('./AdSlot.js');
44
+ require('./ADInfeed-2e48af77.js');
45
+ require('./lodash-fc2922d0.js');
46
+ require('./ADlgInfeed-c39c7131.js');
47
+ require('react-bootstrap/Button');
48
+ var BlockContent = require('./BlockContent-091a991f.js');
49
+ require('./index-187c967e.js');
50
+ require('./smoothscroll-5054361f.js');
51
+ require('./GroupDeck.js');
52
+ require('react-bootstrap');
53
+ require('./iconBase-68959171.js');
54
+ require('./index.esm-90433435.js');
55
+ var getSerializers = require('./index-54adcbc3.js');
56
+ require('./util-f2c1b65b.js');
57
+ require('./brightcove-react-player-loader.es-156bd4d6.js');
58
+ require('next/head');
59
+ require('react-share');
60
+ require('./SocialShare.js');
61
+ require('./_object-to-array-9bac8737.js');
62
+ require('react-bootstrap/Pagination');
63
+ require('react-bootstrap/Figure');
64
+ require('react-bootstrap/OverlayTrigger');
65
+ require('react-bootstrap/Tooltip');
66
+ require('react-bootstrap/Popover');
67
+ require('react-bootstrap/Spinner');
68
+ require('./index-e2e62963.js');
69
+ require('./style-inject.es-dcee06b6.js');
70
+ var MediaSeriesCard = require('./MediaSeriesCard-8d27612b.js');
71
+ var Link = _interopDefault(require('next/link'));
72
+ require('react-paginate');
73
+ require('./Pagination-2f76381b.js');
74
+ var MasterDeckPaginated = require('./MasterDeckPaginated.js');
75
+
76
+ var _this = undefined;
77
+
78
+ var Filter = function Filter(_ref) {
79
+ var filterData = _ref.filterData,
80
+ setFilterTopicID = _ref.setFilterTopicID;
81
+
82
+ if (!filterData || filterData.length == 0) return null;
83
+
84
+ var _useState = React.useState(null),
85
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
86
+ parentData = _useState2[0],
87
+ setParentData = _useState2[1];
88
+
89
+ var _useState3 = React.useState(null),
90
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
91
+ childData = _useState4[0],
92
+ setChildData = _useState4[1];
93
+
94
+ var _useState5 = React.useState(null),
95
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
96
+ grandChildData = _useState6[0],
97
+ setGrandChildData = _useState6[1];
98
+ /*
99
+ {parent: showAll,
100
+ chidlren: show selected from parent,
101
+ grandchildren: show selected from children
102
+ }
103
+ */
104
+
105
+
106
+ React.useEffect(function () {
107
+ if (filterData.length < 2) {
108
+ setChildData({ name: null, data: filterData[0].children, _id: filterData[0]._id });
109
+ } else {
110
+ setParentData({ name: null, data: filterData });
111
+ }
112
+ }, []);
113
+
114
+ var handleFilterSelect = function handleFilterSelect(group, type) {
115
+ if (type === 'parent') {
116
+ setParentData(function (prevState) {
117
+ return _extends$1._extends({}, prevState, { name: group.name ? group.name : null });
118
+ });
119
+ if (group && group.children && group.children.length > 0) {
120
+ setChildData({ data: group.children, _id: group._id });
121
+ setFilterTopicID(group._id);
122
+ } else {
123
+ //handle filter
124
+ setChildData(null);
125
+ setGrandChildData(null);
126
+ setFilterTopicID(group._id ? group._id : 'all');
127
+ }
128
+ }
129
+ if (type === 'child') {
130
+ setChildData(function (prevState) {
131
+ return _extends$1._extends({}, prevState, { name: group.name ? group.name : null, _id: group._id });
132
+ });
133
+ if (group && group.grandchildren && group.grandchildren.length > 0) {
134
+ setGrandChildData({ data: group.grandchildren, _id: group._id });
135
+ setFilterTopicID(group._id);
136
+ var topics = [];
137
+ topics.push(group._id);
138
+ group.grandchildren.forEach(function (topic) {
139
+ topics.push(topic._id);
140
+ });
141
+ setFilterTopicID(topics);
142
+ } else {
143
+ //handle filter
144
+ setGrandChildData(null);
145
+ setFilterTopicID(group._id ? group._id : 'all');
146
+ }
147
+ }
148
+ if (type === 'grandchild') {
149
+ setGrandChildData(function (prevState) {
150
+ return _extends$1._extends({}, prevState, { name: group.name ? group.name : 'All', _id: group._id });
151
+ });
152
+ //handle filter
153
+ if (!group._id) {
154
+ var _topics = [];
155
+ _topics.push(childData._id);
156
+ grandChildData.data.forEach(function (topic) {
157
+ _topics.push(topic._id);
158
+ });
159
+ setFilterTopicID(_topics);
160
+ } else {
161
+ setFilterTopicID([group._id, childData._id]);
162
+ }
163
+ }
164
+ };
165
+
166
+ return React__default.createElement(
167
+ 'div',
168
+ { className: 'flex-container' },
169
+ parentData && React__default.createElement(
170
+ MediaSeriesCard.DropdownButton,
171
+ { drop: 'down', style: { borderRadius: '3px' }, className: 'filter-btn', title: parentData.name ? parentData.name : 'Filter By Category' },
172
+ React__default.createElement(
173
+ MediaSeriesCard.Dropdown.Item,
174
+ { onSelect: function onSelect() {
175
+ return handleFilterSelect({}, 'parent');
176
+ } },
177
+ 'All'
178
+ ),
179
+ parentData.data.map(function (docGroup) {
180
+ if (!docGroup._id) return null;
181
+ return React__default.createElement(
182
+ MediaSeriesCard.Dropdown.Item,
183
+ { key: docGroup._id, onSelect: function onSelect() {
184
+ return handleFilterSelect(docGroup, 'parent');
185
+ } },
186
+ docGroup.name
187
+ );
188
+ })
189
+ ),
190
+ childData && childData.data && childData.data.length > 0 && React__default.createElement(
191
+ MediaSeriesCard.DropdownButton,
192
+ { drop: 'down', style: { borderRadius: '3px' }, className: 'filter-btn ml-3', title: childData.name ? childData.name : 'Filter By Topic' },
193
+ React__default.createElement(
194
+ MediaSeriesCard.Dropdown.Item,
195
+ { onSelect: function onSelect() {
196
+ return handleFilterSelect({}, 'child');
197
+ } },
198
+ 'All'
199
+ ),
200
+ childData.data.map(function (docGroup) {
201
+ if (!docGroup._id) return null;
202
+ return React__default.createElement(
203
+ MediaSeriesCard.Dropdown.Item,
204
+ { key: docGroup._id, onSelect: function onSelect() {
205
+ return handleFilterSelect(docGroup, 'child');
206
+ } },
207
+ docGroup.name
208
+ );
209
+ })
210
+ ),
211
+ grandChildData && grandChildData.data && grandChildData.data.length > 0 && React__default.createElement(
212
+ MediaSeriesCard.DropdownButton,
213
+ { drop: 'down', style: { borderRadius: '3px' }, className: 'filter-btn ml-3', title: grandChildData.name ? grandChildData.name : 'Select Sub Topic' },
214
+ React__default.createElement(
215
+ MediaSeriesCard.Dropdown.Item,
216
+ { onSelect: function onSelect() {
217
+ return handleFilterSelect({}, 'grandchild');
218
+ } },
219
+ 'All'
220
+ ),
221
+ grandChildData.data.map(function (docGroup) {
222
+ if (!docGroup._id) return null;
223
+ return React__default.createElement(
224
+ MediaSeriesCard.Dropdown.Item,
225
+ { key: docGroup._id, onSelect: function onSelect() {
226
+ return handleFilterSelect(docGroup, 'grandchild');
227
+ } },
228
+ docGroup.name
229
+ );
230
+ })
231
+ ),
232
+ React__default.createElement(
233
+ 'style',
234
+ { jsx: 'true' },
235
+ '\n .flex-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n .filter-btn button {\n border-radius: 3px;\n z-index: 99999;\n }\n .filter-btn .dropdown-menu {\n z-index: 9999999;\n }\n @media (max-width: 768px) {\n .flex-container {\n flex-direction: column;\n align-items: flex-start;\n }\n }\n '
236
+ )
237
+ );
238
+ };
239
+
240
+ var MediaSeriesLanding = function MediaSeriesLanding(props) {
241
+ var client = props.client,
242
+ pageview = props.pageview;
243
+
244
+ var _useState7 = React.useState(false),
245
+ _useState8 = slicedToArray._slicedToArray(_useState7, 2),
246
+ filterTopicID = _useState8[0],
247
+ setFilterTopicID = _useState8[1];
248
+
249
+ var _useState9 = React.useState(props.seriesData),
250
+ _useState10 = slicedToArray._slicedToArray(_useState9, 2),
251
+ seriesData = _useState10[0],
252
+ setSeriesData = _useState10[1];
253
+
254
+ var _useState11 = React.useState(props.totalSeriesCount),
255
+ _useState12 = slicedToArray._slicedToArray(_useState11, 2),
256
+ totalSeriesCount = _useState12[0],
257
+ setTotalSeriesCount = _useState12[1];
258
+
259
+ var _useState13 = React.useState(props.params),
260
+ _useState14 = slicedToArray._slicedToArray(_useState13, 2),
261
+ params = _useState14[0],
262
+ setParams = _useState14[1];
263
+
264
+ var _useState15 = React.useState(props.query),
265
+ _useState16 = slicedToArray._slicedToArray(_useState15, 2),
266
+ query = _useState16[0],
267
+ setQuery = _useState16[1];
268
+
269
+ var _useState17 = React.useState(props.currentPage),
270
+ _useState18 = slicedToArray._slicedToArray(_useState17, 2),
271
+ currentPage = _useState18[0],
272
+ setCurrentPage = _useState18[1];
273
+
274
+ React.useEffect(function () {
275
+ if (filterTopicID) {
276
+ fetchFilteredData();
277
+ }
278
+ }, [filterTopicID]);
279
+
280
+ var fetchFilteredData = function () {
281
+ var _ref2 = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee() {
282
+ var newParams, filterQuery, x, seriesQuerySorts, seriesQueryProjection, seriesQueryFilters, seriesQuery, totalSeriesCountQuery, _ref3, _ref4, newData, newDataCount;
283
+
284
+ return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
285
+ while (1) {
286
+ switch (_context.prev = _context.next) {
287
+ case 0:
288
+ newParams = _extends$1._extends({}, params, { from: 0, to: 30 });
289
+ filterQuery = void 0;
290
+
291
+ if ((typeof filterTopicID === 'undefined' ? 'undefined' : _typeof._typeof(filterTopicID)) === 'object') {
292
+ filterQuery = '[';
293
+ for (x = 0; x < filterTopicID.length; x++) {
294
+ filterQuery = filterQuery + (' references(\'' + filterTopicID[x] + '\') ');
295
+ if (x === filterTopicID.length - 1) {
296
+ filterQuery = filterQuery + ']';
297
+ } else {
298
+ filterQuery = filterQuery + ' || ';
299
+ }
300
+ }
301
+ } else {
302
+ filterQuery = filterTopicID !== 'all' ? '[references(\'' + filterTopicID + '\')]' : '';
303
+ }
304
+
305
+ seriesQuerySorts = props.seriesQuerySorts, seriesQueryProjection = props.seriesQueryProjection;
306
+ seriesQueryFilters = props.seriesQueryFilters;
307
+
308
+ seriesQueryFilters = filterQuery ? [seriesQueryFilters, filterQuery] : seriesQueryFilters;
309
+ seriesQuery = ['*'].concat(seriesQueryFilters).concat(seriesQuerySorts).concat(seriesQueryProjection).join('|');
310
+ totalSeriesCountQuery = 'count(' + ['*'].concat(seriesQueryFilters).join('|') + ')';
311
+ _context.next = 10;
312
+ return asyncToGenerator._Promise.all([client.fetch(seriesQuery, newParams), client.fetch(totalSeriesCountQuery)]);
313
+
314
+ case 10:
315
+ _ref3 = _context.sent;
316
+ _ref4 = slicedToArray._slicedToArray(_ref3, 2);
317
+ newData = _ref4[0];
318
+ newDataCount = _ref4[1];
319
+
320
+
321
+ setParams(newParams);
322
+ setQuery(seriesQuery);
323
+ setSeriesData(newData);
324
+ setTotalSeriesCount(newDataCount);
325
+ setCurrentPage(1);
326
+
327
+ case 19:
328
+ case 'end':
329
+ return _context.stop();
330
+ }
331
+ }
332
+ }, _callee, _this);
333
+ }));
334
+
335
+ return function fetchFilteredData() {
336
+ return _ref2.apply(this, arguments);
337
+ };
338
+ }();
339
+
340
+ if (props.statusCode === 404) {
341
+ return React__default.createElement(
342
+ 'div',
343
+ { className: 'd-flex flex-column align-items-center mt-3' },
344
+ React__default.createElement(
345
+ 'h3',
346
+ null,
347
+ '404: Resource not found'
348
+ ),
349
+ React__default.createElement(
350
+ 'p',
351
+ null,
352
+ 'We seem to have misplaced the page you\'re looking for. Sorry! Please try checking the URL for errors.'
353
+ ),
354
+ React__default.createElement(
355
+ 'p',
356
+ null,
357
+ 'Click here to',
358
+ React__default.createElement(
359
+ Link,
360
+ { href: '/' },
361
+ React__default.createElement(
362
+ 'a',
363
+ { style: { color: 'blue', textDecoration: 'underline' } },
364
+ ' return to homepage.'
365
+ )
366
+ )
367
+ )
368
+ );
369
+ }
370
+
371
+ return React__default.createElement(
372
+ 'div',
373
+ { className: 'mb-5' },
374
+ props.docGroup && props.docGroup.description && React__default.createElement(BlockContent.BlockContent, { blocks: props.docGroup.description, serializers: getSerializers.getSerializers(client) }),
375
+ props.taxonomyFilter && props.taxonomyFilter && React__default.createElement(
376
+ 'div',
377
+ { className: '' },
378
+ React__default.createElement(Filter, { setFilterTopicID: setFilterTopicID, filterData: props.taxonomyFilter }),
379
+ React__default.createElement('hr', null)
380
+ ),
381
+ seriesData && React__default.createElement(MasterDeckPaginated, {
382
+ deck: MediaSeriesCard.MediaSeriesCard,
383
+ variant: 'left',
384
+ defaultImage: '/placeholder.jpg',
385
+ client: client,
386
+ dataRecord: seriesData,
387
+ totalDataCount: totalSeriesCount,
388
+ query: query && query,
389
+ params: params && params,
390
+ currentPage: currentPage,
391
+ pageview: pageview,
392
+ autoScroll: true,
393
+ seoPaginate: true
394
+ })
395
+ );
396
+ };
397
+
398
+ MediaSeriesLanding.getInitialData = function () {
399
+ var _ref5 = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee2(ctx, client, cache) {
400
+ var urlQuery, pathname, req, identifier, itemsPerPage, currentPage, start, statusCode, params, docGroupID, seriesQueryFilters, seriesQuerySorts, seriesQueryProjection, seriesQuery, totalSeriesCountQuery, _ref6, _ref7, seriesData, totalSeriesCount, allSeries, buildUsedTopicsArray, usedTopics, taxonomyFilter;
401
+
402
+ return asyncToGenerator.regenerator.wrap(function _callee2$(_context2) {
403
+ while (1) {
404
+ switch (_context2.prev = _context2.next) {
405
+ case 0:
406
+ urlQuery = ctx.query, pathname = ctx.pathname, req = ctx.req;
407
+ identifier = pathname.replace('/', '');
408
+ itemsPerPage = 30;
409
+ currentPage = urlQuery.page ? parseInt(urlQuery.page) : 1;
410
+ start = (currentPage - 1) * itemsPerPage;
411
+ statusCode = 200;
412
+ params = {
413
+ count: itemsPerPage,
414
+ from: start,
415
+ to: start + itemsPerPage,
416
+ url: pathname
417
+ };
418
+ _context2.next = 9;
419
+ return client.fetch('*[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\'][0]{\n _id, \n isGated,\n name,\n description\n }');
420
+
421
+ case 9:
422
+ docGroupID = _context2.sent;
423
+ seriesQueryFilters = '[\n _type == \'documentGroup\' \n && references(\'' + docGroupID._id + '\') \n && isSeries != false \n && isShow != false \n && defined(published) \n && published <= now()\n ]';
424
+ seriesQuerySorts = 'order(published desc) [$from...$to]';
425
+ seriesQueryProjection = '{\n _id,\n name,\n identifier,\n published,\n thumbnail,\n description,\n topicMapping[]->,\n isGated,\n \'parentUrl\': \'' + identifier + '\'\n }';
426
+ seriesQuery = ['*'].concat(seriesQueryFilters).concat(seriesQuerySorts).concat(seriesQueryProjection).join('|');
427
+ totalSeriesCountQuery = 'count(' + ['*'].concat(seriesQueryFilters).join('|') + ')';
428
+ _context2.next = 17;
429
+ return asyncToGenerator._Promise.all([client.fetch(seriesQuery, params), client.fetch(totalSeriesCountQuery)]);
430
+
431
+ case 17:
432
+ _ref6 = _context2.sent;
433
+ _ref7 = slicedToArray._slicedToArray(_ref6, 2);
434
+ seriesData = _ref7[0];
435
+ totalSeriesCount = _ref7[1];
436
+ _context2.next = 23;
437
+ return client.fetch('*[_type == \'documentGroup\' && references(\'' + docGroupID._id + '\') && isSeries != false && isShow != false && defined(published) && dateTime(published) <= dateTime(now()) ] {\n topicMapping[]->\n }');
438
+
439
+ case 23:
440
+ allSeries = _context2.sent;
441
+
442
+ //Take all series topicMapping and put in an array
443
+ buildUsedTopicsArray = function buildUsedTopicsArray(seriesArray) {
444
+ var usedTopics = [];
445
+ for (var x = 0; x < seriesArray.length; x++) {
446
+ if (seriesArray[x].topicMapping) {
447
+ seriesArray[x].topicMapping.forEach(function (topic) {
448
+ if (!usedTopics.includes(topic._id)) {
449
+ usedTopics.push(topic._id);
450
+ }
451
+ });
452
+ }
453
+ }
454
+ return usedTopics;
455
+ };
456
+
457
+ usedTopics = buildUsedTopicsArray(allSeries);
458
+ _context2.next = 28;
459
+ return client.fetch('\n *[_type == \'taxonomy\' && !defined(parent) && isMainTopic]{\n _id,\n identifier,\n name,\n "children": *[_type == \'taxonomy\' && references(^._id)]{\n _id,\n name,\n identifier,\n "grandchildren": *[_type == \'taxonomy\' && references(^._id)]\n }\t\n }');
460
+
461
+ case 28:
462
+ taxonomyFilter = _context2.sent;
463
+
464
+
465
+ taxonomyFilter.forEach(function (topic) {
466
+ if (topic.children) {
467
+ topic.children.forEach(function (child) {
468
+ if (child.grandchildren) {
469
+ child.grandchildren = child.grandchildren.filter(function (grandchild) {
470
+ if (!usedTopics.includes(grandchild._id)) {
471
+ return false;
472
+ }
473
+ return true;
474
+ });
475
+ }
476
+ if (!usedTopics.includes(child._id) || !child.grandchildren) {
477
+ child._id = null;
478
+ child.name = null;
479
+ }
480
+ });
481
+
482
+ topic.children = topic.children.filter(function (child) {
483
+ return child._id !== null;
484
+ });
485
+ }
486
+ });
487
+
488
+ if (currentPage > 1 && seriesData.length === 0) {
489
+ statusCode = 404;
490
+ }
491
+
492
+ return _context2.abrupt('return', {
493
+ seriesData: seriesData,
494
+ totalSeriesCount: totalSeriesCount,
495
+ query: seriesQuery,
496
+ seriesQueryFilters: seriesQueryFilters,
497
+ seriesQuerySorts: seriesQuerySorts,
498
+ seriesQueryProjection: seriesQueryProjection,
499
+ params: params,
500
+ currentPage: currentPage,
501
+ taxonomyFilter: taxonomyFilter,
502
+ identifier: identifier,
503
+ docGroupID: docGroupID._id,
504
+ parentUrl: identifier,
505
+ statusCode: statusCode,
506
+ docGroup: docGroupID
507
+ });
508
+
509
+ case 32:
510
+ case 'end':
511
+ return _context2.stop();
512
+ }
513
+ }
514
+ }, _callee2, _this);
515
+ }));
516
+
517
+ return function (_x, _x2, _x3) {
518
+ return _ref5.apply(this, arguments);
519
+ };
520
+ }();
521
+
522
+ module.exports = MediaSeriesLanding;
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+ var ReactPaginate = _interopDefault(require('react-paginate'));
8
+
9
+ var Pagination = function Pagination(props) {
10
+ var pageCount = props.pageCount,
11
+ _props$marginPagesDis = props.marginPagesDisplayed,
12
+ marginPagesDisplayed = _props$marginPagesDis === undefined ? 1 : _props$marginPagesDis,
13
+ _props$pageRangeDispl = props.pageRangeDisplayed,
14
+ pageRangeDisplayed = _props$pageRangeDispl === undefined ? 5 : _props$pageRangeDispl,
15
+ _props$currentPage = props.currentPage,
16
+ currentPage = _props$currentPage === undefined ? 1 : _props$currentPage,
17
+ _onPageChange = props.onPageChange;
18
+
19
+ if (!pageCount || pageCount <= 1) return null;
20
+ return React__default.createElement(
21
+ React__default.Fragment,
22
+ null,
23
+ React__default.createElement(ReactPaginate, {
24
+ pageCount: pageCount,
25
+ marginPagesDisplayed: marginPagesDisplayed,
26
+ pageRangeDisplayed: pageRangeDisplayed,
27
+ forcePage: currentPage - 1,
28
+ onPageChange: function onPageChange(_ref) {
29
+ var selected = _ref.selected;
30
+ return _onPageChange(selected + 1);
31
+ },
32
+ hrefBuilder: function hrefBuilder(page) {
33
+ return '?page=' + page;
34
+ },
35
+ previousLabel: '<',
36
+ nextLabel: '>',
37
+ containerClassName: 'pagination-container',
38
+ previousLinkClassName: 'previous',
39
+ nextLinkClassName: 'next',
40
+ disabledClassName: 'disbaled',
41
+ activeClassName: 'active'
42
+ }),
43
+ React__default.createElement(
44
+ 'style',
45
+ { jsx: 'true' },
46
+ '\n .pagination-container {\n list-style: none;\n padding: 10px 0;\n margin: 0;\n display: flex;\n overflow: auto;\n }\n .pagination-container::before,\n .pagination-container::after {\n content: \'\';\n margin: 0 auto;\n }\n .pagination-container::-webkit-scrollbar {\n height: 6px;\n }\n .pagination-container a {\n padding: 10px;\n border: 1px solid #dee2e6;\n }\n .pagination-container a:hover {\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n }\n .pagination-container .active a {\n color: #fff;\n background-color: #666;\n background-color: var(--primary);\n border-color: #007bff;\n }\n .pagination-container .previous a {\n border-radius: 5px 0 0 5px;\n }\n .pagination-container .next a {\n border-radius: 0 5px 5px 0;\n }\n .pagination-container .disbaled a {\n cursor: default;\n }\n '
47
+ )
48
+ );
49
+ };
50
+
51
+ exports.Pagination = Pagination;