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