@mjhls/mjh-framework 1.0.880-beta.0 → 1.0.881-beta.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 (105) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AlgoliaSearch.js +38 -37
  3. package/dist/cjs/ArticleCarousel.js +2 -1
  4. package/dist/cjs/ArticleProgramLandingPage.js +4 -3
  5. package/dist/cjs/ArticleSeriesLandingPage.js +8 -1
  6. package/dist/cjs/ArticleSeriesListing.js +2 -1
  7. package/dist/cjs/Auth.js +6 -6
  8. package/dist/cjs/{BlockContent-9c6b07ad.js → BlockContent-091a991f.js} +2 -2
  9. package/dist/cjs/ConferenceArticleCard.js +3 -2
  10. package/dist/cjs/DeckContent.js +5 -4
  11. package/dist/cjs/DeckQueue.js +285 -5
  12. package/dist/cjs/EventsDeck.js +11 -11
  13. package/dist/cjs/ExternalResources.js +7 -6
  14. package/dist/cjs/Feature.js +3 -2
  15. package/dist/cjs/ForbesHero.js +7 -6
  16. package/dist/cjs/GridContent.js +16 -15
  17. package/dist/cjs/GridHero.js +7 -6
  18. package/dist/cjs/GroupDeck.js +7 -6
  19. package/dist/cjs/Hero.js +3 -2
  20. package/dist/cjs/HorizontalArticleListing.js +4 -3
  21. package/dist/cjs/HorizontalHero.js +3 -2
  22. package/dist/cjs/IssueContentDeck.js +8 -7
  23. package/dist/cjs/IssueDeck.js +6 -5
  24. package/dist/cjs/IssueLanding.js +7 -4
  25. package/dist/cjs/MasterDeck.js +550 -35
  26. package/dist/cjs/MediaSeriesLanding.js +269 -266
  27. package/dist/cjs/OncliveHero.js +3 -2
  28. package/dist/cjs/OncliveLargeHero.js +10 -9
  29. package/dist/cjs/{Pagination-9cb60fba.js → Pagination-d6a59f99.js} +3 -2
  30. package/dist/cjs/PartnerDetailListing.js +10 -7
  31. package/dist/cjs/PubSection.js +5 -2
  32. package/dist/cjs/PublicationDeck.js +6 -5
  33. package/dist/cjs/PublicationLanding.js +3 -3
  34. package/dist/cjs/QueueDeckExpanded.js +1547 -43
  35. package/dist/cjs/RelatedContent.js +5 -4
  36. package/dist/cjs/SeriesListingDeck.js +3 -2
  37. package/dist/cjs/{SeriesSlider-ec146338.js → SeriesSlider-49b81b0b.js} +6 -6
  38. package/dist/cjs/TaxonomyCard.js +6 -5
  39. package/dist/cjs/TaxonomyDescription.js +4 -3
  40. package/dist/cjs/ThumbnailCard.js +5 -4
  41. package/dist/cjs/VerticalHero.js +3 -2
  42. package/dist/cjs/VideoProgramLandingPage.js +4 -3
  43. package/dist/cjs/VideoSeriesCard.js +5 -4
  44. package/dist/cjs/VideoSeriesLandingPage.js +9 -4
  45. package/dist/cjs/VideoSeriesListing.js +2 -1
  46. package/dist/cjs/View.js +12 -11
  47. package/dist/cjs/YahooHero.js +6 -5
  48. package/dist/cjs/YoutubeGroup.js +10 -9
  49. package/dist/cjs/getRelatedArticle.js +6 -6
  50. package/dist/cjs/getSerializers.js +4 -3
  51. package/dist/cjs/{urlFor-3a61226f.js → index-be0c82be.js} +1 -58
  52. package/dist/cjs/{index-17c6af5a.js → index-bf60a71c.js} +99 -72
  53. package/dist/cjs/index.js +11 -10
  54. package/dist/cjs/urlFor.js +57 -3
  55. package/dist/esm/AlgoliaSearch.js +2 -1
  56. package/dist/esm/ArticleCarousel.js +2 -1
  57. package/dist/esm/ArticleProgramLandingPage.js +4 -3
  58. package/dist/esm/ArticleSeriesLandingPage.js +8 -1
  59. package/dist/esm/ArticleSeriesListing.js +2 -1
  60. package/dist/esm/{BlockContent-f4515898.js → BlockContent-e9b4ddcf.js} +1 -1
  61. package/dist/esm/ConferenceArticleCard.js +2 -1
  62. package/dist/esm/DeckContent.js +2 -1
  63. package/dist/esm/DeckQueue.js +282 -2
  64. package/dist/esm/EventsDeck.js +1 -1
  65. package/dist/esm/ExternalResources.js +4 -3
  66. package/dist/esm/Feature.js +2 -1
  67. package/dist/esm/ForbesHero.js +2 -1
  68. package/dist/esm/GridContent.js +2 -1
  69. package/dist/esm/GridHero.js +2 -1
  70. package/dist/esm/GroupDeck.js +2 -1
  71. package/dist/esm/Hero.js +2 -1
  72. package/dist/esm/HorizontalArticleListing.js +4 -3
  73. package/dist/esm/HorizontalHero.js +2 -1
  74. package/dist/esm/IssueContentDeck.js +2 -1
  75. package/dist/esm/IssueDeck.js +2 -1
  76. package/dist/esm/IssueLanding.js +7 -4
  77. package/dist/esm/MasterDeck.js +550 -35
  78. package/dist/esm/MediaSeriesLanding.js +8 -5
  79. package/dist/esm/OncliveHero.js +2 -1
  80. package/dist/esm/OncliveLargeHero.js +2 -1
  81. package/dist/esm/{Pagination-256b60e5.js → Pagination-f7c4c5ae.js} +3 -2
  82. package/dist/esm/PartnerDetailListing.js +7 -4
  83. package/dist/esm/PubSection.js +5 -2
  84. package/dist/esm/PublicationDeck.js +2 -1
  85. package/dist/esm/QueueDeckExpanded.js +1533 -29
  86. package/dist/esm/RelatedContent.js +2 -1
  87. package/dist/esm/SeriesListingDeck.js +3 -2
  88. package/dist/esm/{SeriesSlider-d6561e33.js → SeriesSlider-ce19fa25.js} +1 -1
  89. package/dist/esm/TaxonomyCard.js +3 -2
  90. package/dist/esm/TaxonomyDescription.js +4 -3
  91. package/dist/esm/ThumbnailCard.js +2 -1
  92. package/dist/esm/VerticalHero.js +2 -1
  93. package/dist/esm/VideoProgramLandingPage.js +4 -3
  94. package/dist/esm/VideoSeriesCard.js +2 -1
  95. package/dist/esm/VideoSeriesLandingPage.js +8 -3
  96. package/dist/esm/VideoSeriesListing.js +2 -1
  97. package/dist/esm/View.js +5 -4
  98. package/dist/esm/YahooHero.js +2 -1
  99. package/dist/esm/YoutubeGroup.js +2 -1
  100. package/dist/esm/getSerializers.js +4 -3
  101. package/dist/esm/{urlFor-23b2244b.js → index-73819142.js} +1 -58
  102. package/dist/esm/{index-a35a5c39.js → index-e495ac6f.js} +40 -13
  103. package/dist/esm/index.js +8 -7
  104. package/dist/esm/urlFor.js +60 -2
  105. package/package.json +1 -1
@@ -16,12 +16,19 @@ import './events-6c3a7a63.js';
16
16
  import { l as lib_3 } from './index-41a678ea.js';
17
17
  import 'prop-types';
18
18
  import Container$1 from 'react-bootstrap/Container';
19
+ import 'react-bootstrap/Row';
20
+ import 'react-bootstrap/Col';
19
21
  import 'react-bootstrap/Card';
22
+ import './moment-e2f9b20c.js';
20
23
  import { withRouter } from 'next/router';
21
24
  import './isSymbol-1981418f.js';
22
- import './debounce-9207d8ee.js';
25
+ import { d as debounce_1 } from './debounce-9207d8ee.js';
23
26
  import './toNumber-2f7a84cd.js';
27
+ import { I as InfiniteScroll } from './index.es-29c1cef5.js';
28
+ import 'react-dom';
29
+ import { V as VisibilitySensor } from './visibility-sensor-72fd8f8b.js';
24
30
  import './slicedToArray-67a08c9c.js';
31
+ import './index-73819142.js';
25
32
  import { m as main_36 } from './main-c0612122.js';
26
33
  import './stringify-70b72959.js';
27
34
  import { _ as _asyncToGenerator, r as regenerator, a as _Promise } from './asyncToGenerator-64812e90.js';
@@ -31,8 +38,8 @@ import './AdSlot.js';
31
38
  import { A as ADInfeed } from './ADInfeed-0c13c803.js';
32
39
  import { l as lodash } from './lodash-17fdfebb.js';
33
40
  import { A as ADlgInfeed } from './ADlgInfeed-e4e2031a.js';
34
- import { P as Pagination } from './Pagination-256b60e5.js';
35
41
  import Spinner$1 from 'react-bootstrap/Spinner';
42
+ import { P as Pagination } from './Pagination-f7c4c5ae.js';
36
43
 
37
44
  var MasterDeck = function (_React$Component) {
38
45
  _inherits(MasterDeck, _React$Component);
@@ -268,7 +275,9 @@ var MasterDeck = function (_React$Component) {
268
275
  itemsPerPage = _this.state.itemsPerPage;
269
276
  _this$props2 = _this.props, query = _this$props2.query, params = _this$props2.params, client = _this$props2.client, dataHandler = _this$props2.dataHandler, seoPaginate = _this$props2.seoPaginate;
270
277
 
271
- _this.setState({ isDataLoading: true });
278
+ _this.setState({ isDataLoading: true, currentPage: selectedPage });
279
+ seoPaginate && _this.seoPagination(selectedPage);
280
+ lib_3.refresh();
272
281
  document.body.scrollTop = 0;
273
282
  document.documentElement.scrollTop = 0;
274
283
  start = (selectedPage - 1) * itemsPerPage;
@@ -289,52 +298,50 @@ var MasterDeck = function (_React$Component) {
289
298
  });
290
299
  }
291
300
 
292
- _context.prev = 9;
301
+ _context.prev = 11;
293
302
 
294
303
  if (!dataHandlerPromise) {
295
- _context.next = 16;
304
+ _context.next = 18;
296
305
  break;
297
306
  }
298
307
 
299
- _context.next = 13;
308
+ _context.next = 15;
300
309
  return dataHandlerPromise;
301
310
 
302
- case 13:
311
+ case 15:
303
312
  _context.t0 = _context.sent;
304
- _context.next = 19;
313
+ _context.next = 21;
305
314
  break;
306
315
 
307
- case 16:
308
- _context.next = 18;
316
+ case 18:
317
+ _context.next = 20;
309
318
  return client.fetch(query, newParams);
310
319
 
311
- case 18:
320
+ case 20:
312
321
  _context.t0 = _context.sent;
313
322
 
314
- case 19:
323
+ case 21:
315
324
  newData = _context.t0;
316
325
 
317
326
  if (_this.pointer && _this.pointerArray) newData = newData[_this.pointerArray][_this.pointer];
318
327
  if (newData && newData.length > 0) {
319
- _this.setState({ isDataLoading: false, data: newData, currentPage: selectedPage });
320
- seoPaginate && _this.seoPagination(selectedPage);
321
- lib_3.refresh();
328
+ _this.setState({ isDataLoading: false, data: newData });
322
329
  }
323
- _context.next = 27;
330
+ _context.next = 29;
324
331
  break;
325
332
 
326
- case 24:
327
- _context.prev = 24;
328
- _context.t1 = _context['catch'](9);
333
+ case 26:
334
+ _context.prev = 26;
335
+ _context.t1 = _context['catch'](11);
329
336
 
330
337
  console.error(_context.t1);
331
338
 
332
- case 27:
339
+ case 29:
333
340
  case 'end':
334
341
  return _context.stop();
335
342
  }
336
343
  }
337
- }, _callee, _this2, [[9, 24]]);
344
+ }, _callee, _this2, [[11, 26]]);
338
345
  }));
339
346
 
340
347
  return function (_x) {
@@ -392,21 +399,529 @@ var MasterDeck = function (_React$Component) {
392
399
  ) : React__default.createElement(
393
400
  Container$1,
394
401
  null,
395
- this.cardLoader({ variant: variant, brandInsightAd: brandInsightAd, showBI: showBI, lgInfeedAd: lgInfeedAd })
402
+ this.cardLoader({ variant: variant, brandInsightAd: brandInsightAd, showBI: showBI, lgInfeedAd: lgInfeedAd }),
403
+ React__default.createElement(
404
+ 'div',
405
+ { className: 'pagination-wrapper' },
406
+ React__default.createElement(Pagination, {
407
+ pageCount: Math.ceil(totalDataCount / itemsPerPage),
408
+ pageRangeDisplayed: main_36 ? 3 : 9,
409
+ currentPage: currentPage,
410
+ onPageChange: this.handlePageChange
411
+ }),
412
+ React__default.createElement(
413
+ 'style',
414
+ { jsx: 'true' },
415
+ '\n .pagination-wrapper {\n margin: 3rem 0;\n }\n @media only screen and (max-width: 768px) {\n .pagination-wrapper {\n margin-bottom: 6rem;\n }\n }\n '
416
+ )
417
+ )
418
+ )
419
+ );
420
+ }
421
+ }]);
422
+
423
+ return MasterDeck;
424
+ }(React__default.Component);
425
+
426
+ var MasterDeckPaginated = withRouter(MasterDeck);
427
+
428
+ var MasterDeck$1 = function (_React$Component) {
429
+ _inherits(MasterDeck, _React$Component);
430
+
431
+ function MasterDeck() {
432
+ var _ref,
433
+ _this2 = this;
434
+
435
+ var _temp, _this, _ret;
436
+
437
+ _classCallCheck(this, MasterDeck);
438
+
439
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
440
+ args[_key] = arguments[_key];
441
+ }
442
+
443
+ return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MasterDeck.__proto__ || _Object$getPrototypeOf(MasterDeck)).call.apply(_ref, [this].concat(args))), _this), _this.Deck = _this.props.deck, _this.variant = _this.props.variant, _this.mapping = _this.props.mapping, _this.data = _this.props.dataRecord || [], _this.query = _this.props.query, _this.params = _this.props.params, _this.pointer = _this.props.pointer ? _this.props.pointer : false, _this.pointerArray = _this.props.pointerArray ? _this.props.pointerArray : false, _this.defaultImage = _this.props.defaultImage ? _this.props.defaultImage : '/placeholder.jpg', _this.rightItems = _this.props.rightItems ? _this.props.rightItems : false, _this.isSeriesLanding = _this.props.isSeriesLanding ? _this.props.isSeriesLanding : false, _this.client = _this.props.client, _this.state = {
444
+ data: _this.data,
445
+ dataKeptToCompareNewDatarecord: _this.data,
446
+ per: _this.params ? _this.params.to : 2,
447
+ page: _this.props.currentPage || 1,
448
+ from: _this.params ? _this.params.from : 0,
449
+ to: _this.params ? _this.params.to : 2,
450
+ total_pages: null,
451
+ scrolling: false,
452
+ query: _this.query,
453
+ currentPage: _this.props.currentPage || 1,
454
+ dataRemapped: !_this.props.showBI || !_this.props.brandInsightAd,
455
+ lastDataSize: _this.data ? _this.data.length : 0,
456
+ itemsPerPage: _this.params ? _this.params.to - _this.params.from : 2,
457
+ mobileView: false
458
+ }, _this.loadMore = debounce_1(function () {
459
+ _this.setState(function (state) {
460
+ var page = state.page,
461
+ from = state.from,
462
+ to = state.to,
463
+ itemsPerPage = state.itemsPerPage;
464
+
465
+ return {
466
+ page: page + 1,
467
+ from: from + itemsPerPage,
468
+ to: to + itemsPerPage
469
+ };
470
+ }, _this.loadData);
471
+ }, 0), _this.loadData = function () {
472
+ var _this$state = _this.state,
473
+ from = _this$state.from,
474
+ to = _this$state.to,
475
+ data = _this$state.data,
476
+ query = _this$state.query,
477
+ page = _this$state.page;
478
+ var _this$props = _this.props,
479
+ client = _this$props.client,
480
+ dataHandler = _this$props.dataHandler;
481
+
482
+
483
+ var params = _extends({}, _this.props.params, { from: from, to: to + 1 });
484
+
485
+ if (dataHandler) {
486
+ var dataHandlerPromise = new _Promise(function (resolve, reject) {
487
+ try {
488
+ var result = dataHandler(params);
489
+ resolve(result);
490
+ } catch (e) {
491
+ reject(e);
492
+ }
493
+ });
494
+ dataHandlerPromise.then(function (dataArr) {
495
+ _this.loadDataFinished(data, dataArr, page);
496
+ });
497
+ } else {
498
+ client.fetch(query, params).then(function (dataArr) {
499
+ _this.loadDataFinished(data, dataArr, page);
500
+ });
501
+ }
502
+ }, _this.loadDataFinished = function (data, dataArr, page) {
503
+ if (_this.pointer && _this.pointerArray) {
504
+ var pointer = _this.pointer;
505
+ dataArr = dataArr[_this.pointerArray][pointer];
506
+ }
507
+
508
+ if (dataArr && dataArr.length > 0) {
509
+ var itemsPerPage = _this.state.itemsPerPage;
510
+
511
+ var scrolling = dataArr.length === itemsPerPage + 1;
512
+ dataArr = dataArr.slice(0, itemsPerPage).map(function (item) {
513
+ return _extends({}, item, {
514
+ pageNumber: page
515
+ });
516
+ });
517
+
518
+ _this.setState({
519
+ data: [].concat(_toConsumableArray(data), _toConsumableArray(dataArr)),
520
+ lastDataSize: dataArr.length,
521
+ scrolling: scrolling
522
+ });
523
+ } else {
524
+ _this.setState({
525
+ scrolling: false,
526
+ lastDataSize: 0
527
+ });
528
+ }
529
+ }, _this.checkMoreDataAvailable = function () {
530
+ var _this$state2 = _this.state,
531
+ from = _this$state2.from,
532
+ itemsPerPage = _this$state2.itemsPerPage,
533
+ query = _this$state2.query;
534
+ var _this$props2 = _this.props,
535
+ client = _this$props2.client,
536
+ dataHandler = _this$props2.dataHandler;
537
+
538
+ var params = _extends({}, _this.props.params, { from: from + itemsPerPage, to: from + itemsPerPage + 1 });
539
+ if (dataHandler) {
540
+ var dataHandlerPromise = new _Promise(function (resolve, reject) {
541
+ try {
542
+ var result = dataHandler(params);
543
+ resolve(result);
544
+ } catch (e) {
545
+ reject(e);
546
+ }
547
+ });
548
+ dataHandlerPromise.then(function (dataArr) {
549
+ if (dataArr && dataArr.length > 0) _this.setState({ scrolling: true });else _this.setState({ scrolling: false });
550
+ });
551
+ } else {
552
+ client.fetch(query, params).then(function (dataArr) {
553
+ if (dataArr && dataArr.length > 0) _this.setState({ scrolling: true });else _this.setState({ scrolling: false });
554
+ });
555
+ }
556
+ }, _this.changePageNumber = function (pageNumber) {
557
+ var _this$props3 = _this.props,
558
+ seoPaginate = _this$props3.seoPaginate,
559
+ pageview = _this$props3.pageview,
560
+ router = _this$props3.router;
561
+ var currentPage = _this.state.currentPage;
562
+
563
+ if (seoPaginate) {
564
+ var path = router.asPath;
565
+ var qrIndex = path.indexOf('?');
566
+ var pathname = router.pathname;
567
+ var queryString = '';
568
+
569
+ if (qrIndex > 0) {
570
+ path = path.substring(1, qrIndex);
571
+
572
+ var partialQS = router.asPath.substring(qrIndex + 1);
573
+ var partialQSArr = partialQS.split('&');
574
+
575
+ // exclude page=xxx from query string
576
+ partialQSArr.map(function (item) {
577
+ var itemArr = item.split('=');
578
+ var key = itemArr[0];
579
+ var val = itemArr[1];
580
+
581
+ if (key !== 'page') {
582
+ queryString += (queryString.length === 0 ? '' : '&') + key + '=' + val;
583
+ }
584
+ });
585
+ }
586
+
587
+ if (queryString.length > 0) {
588
+ path += '?' + queryString;
589
+ }
590
+
591
+ pageNumber = parseInt(pageNumber);
592
+
593
+ if (currentPage !== pageNumber) {
594
+ lib_3.refresh();
595
+
596
+ _this.setState({
597
+ currentPage: pageNumber
598
+ }, function () {
599
+ if (path[0] !== '/') {
600
+ path = '/' + path;
601
+ }
602
+ var newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
603
+ if (window.location.href.includes('?')) {
604
+ if (window.location.href.includes('?page')) {
605
+ newPath = pageNumber === 1 ? '' + path : path + '?page=' + pageNumber;
606
+ } else {
607
+ newPath = pageNumber === 1 ? '' + path : path + '&page=' + pageNumber;
608
+ }
609
+ }
610
+
611
+ // please leave this for later debug purpose : Yong Jun.
612
+ /* console.log('page change reported', {
613
+ currentPage: currentPage,
614
+ pageNumber: pageNumber,
615
+ pathname: pathname,
616
+ path: path,
617
+ newPath: newPath,
618
+ firstPage: pageNumber === 1,
619
+ queryString: queryString
620
+ }) */
621
+
622
+ if (pageview) {
623
+ pageview(newPath);
624
+ }
625
+
626
+ router.push(pathname, newPath, {
627
+ shallow: true
628
+ });
629
+ });
630
+ }
631
+ }
632
+ }, _this.cardLoader = function (page, columns, variant, brandInsightAd, showBI, lgInfeedAd) {
633
+ var numberOfItemsBeforeAd = 6;
634
+ var data = _this.state.data;
635
+ var insertBrandInsightAd = function insertBrandInsightAd(arr, index, newElement) {
636
+ return [].concat(_toConsumableArray(arr.slice(0, index)), [newElement], _toConsumableArray(arr.slice(index)));
637
+ };
638
+ // Need to pass flag "lgInfeedAd={true}" along with brandInsightAd from site level for large infeed-ad to render
639
+ // Checking lgInfeedAd flag in desktop view ( window >= 1400px ).
640
+ // Integrating large infeed AD
641
+ if (lgInfeedAd && brandInsightAd && typeof window !== 'undefined' && window.innerWidth >= 1400) {
642
+ var lgInfeed = {
643
+ _type: 'lg-infeed',
644
+ adUnit: brandInsightAd.adUnit,
645
+ className: 'lg-infeed',
646
+ networkID: brandInsightAd.networkID,
647
+ sizes: [728, 90],
648
+ sizeMapping: [{
649
+ viewport: [1400, 0],
650
+ sizes: [[728, 90]]
651
+ }, { viewport: [0, 0], sizes: [] }],
652
+ targeting: {
653
+ content_placement: brandInsightAd.targeting.content_placement,
654
+ document_url: brandInsightAd.targeting.document_url,
655
+ rootDocumentGroup: brandInsightAd.targeting.rootDocumentGroup
656
+ },
657
+ /* Passing refresh flag */
658
+ refreshFlag: brandInsightAd.refreshFlag ? brandInsightAd.refreshFlag : false
659
+ };
660
+
661
+ var chunks = lodash.chunk(data, 6).map(function (chunk) {
662
+ var set = lodash.chunk(chunk, 2);
663
+ for (var i = 0; i < set.length; i++) {
664
+ if (i !== set.length - 1) {
665
+ set[i].push(lgInfeed);
666
+ }
667
+ }
668
+ return lodash.flattenDeep(set);
669
+ });
670
+ data = lodash.flatten(chunks);
671
+ !_this.state.dataRemapped && _this.setState({ dataRemapped: true }); // To detect if appending of insights ads are completed
672
+ }
673
+
674
+ // Integrating infeed AD
675
+ if (showBI && brandInsightAd) {
676
+ // Checking lgInfeedAd flag in desktop view ( window >= 1400px ).
677
+ if (lgInfeedAd && typeof window !== 'undefined' && window.innerWidth >= 1400) brandInsightAd.interval = 8;
678
+ var pos = 0;
679
+ for (var i = 1; pos < data.length; i++) {
680
+ var inFeedAd = {
681
+ adUnit: brandInsightAd.adUnit,
682
+ className: brandInsightAd.className,
683
+ networkID: brandInsightAd.networkID,
684
+ sizes: brandInsightAd.sizes,
685
+ slotId: brandInsightAd.slotId + '_' + i,
686
+ targeting: {
687
+ pos: 'infeed',
688
+ content_placement: brandInsightAd.targeting.content_placement,
689
+ document_url: brandInsightAd.targeting.document_url,
690
+ rootDocumentGroup: brandInsightAd.targeting.rootDocumentGroup
691
+ },
692
+ _type: 'brandInsightAd',
693
+ /* Passing refresh flag */
694
+ refreshFlag: brandInsightAd.refreshFlag ? brandInsightAd.refreshFlag : false
695
+ };
696
+
697
+ data = insertBrandInsightAd(data, pos, inFeedAd);
698
+ pos += brandInsightAd.interval + 1;
699
+ }
700
+ }
701
+
702
+ // 'index' was including the indexes for infeed ads along with article count making the page number change before it reaches last article.
703
+ data = data.map(function (ele, i) {
704
+ if (ele._type === 'lg-infeed') {
705
+ // Setting pos as top2 for the first occurence of large infeed ad
706
+ // const pos = data.indexOf(data.find((d) => d._type === 'lg-infeed')) === i ? 'top2' : `lg-infeed_${i}`
707
+ return _extends({}, ele, { slotId: 'lg-infeed_' + i, targeting: _extends({}, ele.targeting, { pos: 'lg-infeed' }) });
708
+ } else {
709
+ return ele;
710
+ }
711
+ });
712
+
713
+ return React__default.createElement(
714
+ 'div',
715
+ null,
716
+ data && _this.state.dataRemapped && data.length > 0 ? // If JS enabled and Data remapped with ads
717
+ data.map(function (row, index) {
718
+ var pageNumber = row.pageNumber || _this.state.page;
719
+
720
+ if (row._type === 'lg-infeed' && row.adUnit) {
721
+ return React__default.createElement(ADlgInfeed, _extends({ index: index }, row));
722
+ // Returning view for infeed Ad
723
+ } else if (row._type === 'brandInsightAd' && row.adUnit) {
724
+ return React__default.createElement(ADInfeed, { index: index, infeedAd: row });
725
+ } else if (!row._type || !['lg-infeed', 'brandInsightAd'].includes(row._type)) {
726
+ // Returning view for articles
727
+ return React__default.createElement(
728
+ VisibilitySensor,
729
+ {
730
+ key: row._id ? row._id : index,
731
+ onChange: function onChange(isVisible) {
732
+ isVisible && _this.changePageNumber(pageNumber);
733
+ } },
734
+ React__default.createElement(
735
+ React__default.Fragment,
736
+ { key: index },
737
+ React__default.createElement(_this2.Deck, { data: row, variant: variant, index: index, client: _this.props.client, defaultImage: _this.defaultImage, isSeriesLanding: _this.isSeriesLanding }),
738
+ _this.state.mobileView && _this.rightItems && (index + 1) % numberOfItemsBeforeAd === 0 && React__default.createElement(
739
+ 'div',
740
+ { className: 'ad-container', style: { margin: '0 auto' } },
741
+ _this.renderMobileAd(index, numberOfItemsBeforeAd, _this.rightItems)
742
+ )
743
+ )
744
+ );
745
+ } else {
746
+ return null;
747
+ }
748
+ }) : data && data.length > 0 ? //For Javascript Disabled Cases. data is not remapped if JS is disabled.
749
+ data.map(function (row, index) {
750
+ var pageNumber = row.pageNumber || _this.state.page;
751
+ if (!row._type || !['lg-infeed', 'brandInsightAd'].includes(row._type)) {
752
+ return React__default.createElement(
753
+ VisibilitySensor,
754
+ {
755
+ key: row._id ? row._id : index,
756
+ onChange: function onChange(isVisible) {
757
+ isVisible && _this.changePageNumber(pageNumber);
758
+ } },
759
+ React__default.createElement(
760
+ React__default.Fragment,
761
+ { key: index },
762
+ React__default.createElement(_this2.Deck, { data: row, variant: variant, index: index, client: _this.props.client, defaultImage: _this.defaultImage, isSeriesLanding: _this.isSeriesLanding })
763
+ )
764
+ );
765
+ }
766
+ }) : React__default.createElement(
767
+ 'div',
768
+ null,
769
+ React__default.createElement(
770
+ 'em',
771
+ null,
772
+ 'New content coming soon, please check back later.'
773
+ )
774
+ )
775
+ );
776
+ }, _this.renderMobileAd = function (index, numberOfItemsBeforeAd, rightItems) {
777
+ var i = ((index + 1) / numberOfItemsBeforeAd - 1) % rightItems.length;
778
+ return React__default.createElement(
779
+ 'div',
780
+ { className: 'ad-container', style: { display: 'flex', flex: '1 0 auto', width: '100%', textAlign: 'center', marginBottom: '2rem' } },
781
+ rightItems[i].component
782
+ );
783
+ }, _this.renderManualPagination = function () {
784
+ var _this$state3 = _this.state,
785
+ currentPage = _this$state3.currentPage,
786
+ itemsPerPage = _this$state3.itemsPerPage,
787
+ lastDataSize = _this$state3.lastDataSize;
788
+
789
+ console.log('lastDataSize:', lastDataSize);
790
+ console.log('itemsPerPage:', itemsPerPage);
791
+ if (lastDataSize < itemsPerPage) {
792
+ return null;
793
+ }
794
+
795
+ return React__default.createElement(
796
+ 'div',
797
+ { className: 'd-flex justify-content-between' },
798
+ currentPage && currentPage > 1 && React__default.createElement(
799
+ 'a',
800
+ { href: '?page=' + (currentPage - 1) },
801
+ '<< Previous'
396
802
  ),
397
803
  React__default.createElement(
398
- 'div',
399
- { className: 'pagination-wrapper ' + (isDataLoading ? 'd-none' : 'd-block') },
400
- React__default.createElement(Pagination, {
401
- pageCount: Math.ceil(totalDataCount / itemsPerPage),
402
- pageRangeDisplayed: main_36 ? 3 : 9,
403
- initialPage: currentPage,
404
- onPageChange: this.handlePageChange
405
- }),
804
+ 'a',
805
+ { href: '?page=' + (currentPage + 1) },
806
+ 'Next >>'
807
+ )
808
+ );
809
+ }, _temp), _possibleConstructorReturn(_this, _ret);
810
+ }
811
+
812
+ _createClass(MasterDeck, [{
813
+ key: 'componentDidUpdate',
814
+ value: function componentDidUpdate(prevProps, prevState) {
815
+ if (this.state.dataKeptToCompareNewDatarecord !== this.props.dataRecord) {
816
+ // eslint-disable-next-line react/no-did-update-set-state
817
+ this.setState({
818
+ data: this.props.dataRecord,
819
+ dataKeptToCompareNewDatarecord: this.props.dataRecord,
820
+ per: this.props.params ? this.props.params.to : 2,
821
+ page: 1,
822
+ from: this.props.params ? this.props.params.from : 0,
823
+ to: this.props.params ? this.props.params.to : 2,
824
+ total_pages: null,
825
+ scrolling: true,
826
+ query: this.props.query,
827
+ lastDataSize: this.props.dataRecord ? this.props.dataRecord.length : 0
828
+ });
829
+ }
830
+ // set dataRemap to true as there are no infeed or BI ads or window width is less than limit
831
+ if (typeof window !== 'undefined' && (!this.props.lgInfeedAd || !this.props.brandInsightAd || window.innerWidth < 1400) && !this.state.dataRemapped) {
832
+ !this.state.dataRemapped && this.setState({ dataRemapped: true });
833
+ }
834
+
835
+ if (typeof window !== 'undefined' && window.innerWidth <= 1191) {
836
+ !this.state.mobileView && this.setState({ mobileView: true });
837
+ }
838
+ }
839
+ }, {
840
+ key: 'componentDidMount',
841
+ value: function componentDidMount() {
842
+ var _state = this.state,
843
+ data = _state.data,
844
+ itemsPerPage = _state.itemsPerPage;
845
+
846
+ if (!(data.length < itemsPerPage)) this.checkMoreDataAvailable();
847
+ }
848
+ // Passing 'brandInsightAd','showBI' and 'lgInfeedAd'
849
+
850
+ }, {
851
+ key: 'render',
852
+ value: function render() {
853
+ var _this3 = this;
854
+
855
+ // Setting default value for 'showBI' and 'lgInfeedAd'
856
+ var _props = this.props,
857
+ columns = _props.columns,
858
+ variant = _props.variant,
859
+ autoScroll = _props.autoScroll,
860
+ page = _props.page,
861
+ brandInsightAd = _props.brandInsightAd,
862
+ _props$showBI = _props.showBI,
863
+ showBI = _props$showBI === undefined ? false : _props$showBI,
864
+ _props$lgInfeedAd = _props.lgInfeedAd,
865
+ lgInfeedAd = _props$lgInfeedAd === undefined ? false : _props$lgInfeedAd;
866
+
867
+
868
+ if (this.props.totalDataCount) return React__default.createElement(MasterDeckPaginated, this.props);
869
+
870
+ return React__default.createElement(
871
+ 'div',
872
+ { className: 'contentDeck' },
873
+ autoScroll ? React__default.createElement(
874
+ React__default.Fragment,
875
+ null,
876
+ React__default.createElement(
877
+ InfiniteScroll,
878
+ { dataLength: this.state.data.length, next: this.loadMore, hasMore: this.state.scrolling, scrollThreshold: 0.9 },
879
+ React__default.createElement(
880
+ Container$1,
881
+ null,
882
+ this.cardLoader(page, columns, variant, brandInsightAd, showBI, lgInfeedAd)
883
+ )
884
+ ),
406
885
  React__default.createElement(
407
- 'style',
408
- { jsx: 'true' },
409
- '\n .pagination-wrapper {\n margin: 3rem 0;\n }\n @media only screen and (max-width: 768px) {\n .pagination-wrapper {\n margin-bottom: 6rem;\n }\n }\n '
886
+ 'noscript',
887
+ null,
888
+ this.renderManualPagination()
889
+ )
890
+ ) : React__default.createElement(
891
+ React__default.Fragment,
892
+ null,
893
+ React__default.createElement(
894
+ Container$1,
895
+ null,
896
+ this.cardLoader(page, columns, variant, brandInsightAd, showBI, lgInfeedAd)
897
+ ),
898
+ React__default.createElement(
899
+ 'div',
900
+ { style: { padding: '0px 10px' } },
901
+ this.state.scrolling && React__default.createElement(
902
+ 'button',
903
+ {
904
+ className: 'btn',
905
+ style: {
906
+ margin: '0 auto 2rem',
907
+ display: 'block',
908
+ fontSize: '18px',
909
+ padding: '.5rem 1.5rem',
910
+ boxShadow: '1px 2px 4px 4px rgba(0,0,0,.15)',
911
+ background: 'var(--primary)',
912
+ color: '#fff',
913
+ borderRadius: '5px'
914
+ },
915
+ onClick: function onClick(e) {
916
+ _this3.loadMore();
917
+ } },
918
+ 'Load More'
919
+ )
920
+ ),
921
+ React__default.createElement(
922
+ 'noscript',
923
+ null,
924
+ this.renderManualPagination()
410
925
  )
411
926
  )
412
927
  );
@@ -416,6 +931,6 @@ var MasterDeck = function (_React$Component) {
416
931
  return MasterDeck;
417
932
  }(React__default.Component);
418
933
 
419
- var MasterDeck$1 = withRouter(MasterDeck);
934
+ var MasterDeck$2 = withRouter(MasterDeck$1);
420
935
 
421
- export default MasterDeck$1;
936
+ export default MasterDeck$2;