@mjhls/mjh-framework 1.0.1064 → 1.0.1065-pdfGating-v2

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 (134) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/AD300x250.js +1 -2
  3. package/dist/cjs/AD300x250x600.js +1 -2
  4. package/dist/cjs/AD728x90.js +1 -2
  5. package/dist/cjs/ADFloatingFooter.js +1 -2
  6. package/dist/cjs/ADGutter.js +1 -2
  7. package/dist/cjs/ADSkyscraper.js +1 -2
  8. package/dist/cjs/ADSponsoredResources.js +1 -2
  9. package/dist/cjs/ADWebcast.js +1 -2
  10. package/dist/cjs/ADWelcome.js +1 -2
  11. package/dist/cjs/AdSlot.js +1 -2
  12. package/dist/cjs/AdSlotsProvider.js +1 -2
  13. package/dist/cjs/ArticleProgramLandingPage.js +3 -4
  14. package/dist/cjs/ArticleSeriesLandingPage.js +3 -4
  15. package/dist/cjs/Beam.js +1 -2
  16. package/dist/cjs/CMEDeck.js +1 -2
  17. package/dist/cjs/Column2.js +1 -2
  18. package/dist/cjs/Column3.js +1 -2
  19. package/dist/cjs/ContentCardPaginated.js +2 -3
  20. package/dist/cjs/DeckContent.js +2 -3
  21. package/dist/cjs/DeckQueuePaginated.js +1 -2
  22. package/dist/cjs/ExternalResources.js +3 -4
  23. package/dist/cjs/GridContent.js +3 -4
  24. package/dist/cjs/GridContentPaginated.js +3 -4
  25. package/dist/cjs/HamMagazine.js +1 -2
  26. package/dist/cjs/HorizontalArticleListing.js +3 -4
  27. package/dist/cjs/IssueLanding.js +5 -6
  28. package/dist/cjs/LeftNav.js +1 -2
  29. package/dist/cjs/MasterDeck.js +3 -4
  30. package/dist/cjs/MasterDeckPaginated.js +3 -4
  31. package/dist/cjs/{MediaSeriesCard-2e65fe95.js → MediaSeriesCard-2e66a6a0.js} +1 -1
  32. package/dist/cjs/MediaSeriesLanding.js +6 -7
  33. package/dist/cjs/MediaSeriesLandingPaginated.js +6 -7
  34. package/dist/cjs/NavDvm.js +1 -2
  35. package/dist/cjs/NavMagazine.js +1 -2
  36. package/dist/cjs/NavNative.js +1 -2
  37. package/dist/cjs/PartnerDetailListing.js +5 -6
  38. package/dist/cjs/PartnerDetailListingPaginated.js +5 -6
  39. package/dist/cjs/PodcastsLanding.js +6 -7
  40. package/dist/cjs/PtceDeck.js +1 -2
  41. package/dist/cjs/PubSection.js +3 -4
  42. package/dist/cjs/PubToc.js +1 -2
  43. package/dist/cjs/PublicationLanding.js +588 -21
  44. package/dist/cjs/QueueDeckExpanded.js +3 -4
  45. package/dist/cjs/QueueDeckExpandedPaginated.js +3 -4
  46. package/dist/cjs/Segment.js +1 -2
  47. package/dist/cjs/SideFooter.js +1 -2
  48. package/dist/cjs/TaxonomyDescription.js +3 -4
  49. package/dist/cjs/TemplateNormal.js +1 -2
  50. package/dist/cjs/Ustream.js +1 -2
  51. package/dist/cjs/VideoProgramLandingPage.js +3 -4
  52. package/dist/cjs/VideoSeriesFilter.js +1 -2
  53. package/dist/cjs/VideoSeriesLandingPage.js +3 -4
  54. package/dist/cjs/View.js +3 -4
  55. package/dist/cjs/{asyncToGenerator-65df6bf8.js → asyncToGenerator-77821af0.js} +56 -8
  56. package/dist/cjs/faundadb.js +1 -2
  57. package/dist/cjs/getPtceActivities.js +1 -2
  58. package/dist/cjs/getRelatedArticle.js +1 -2
  59. package/dist/cjs/getRootDocGroup.js +1 -2
  60. package/dist/cjs/getSerializers.js +3 -4
  61. package/dist/cjs/getTIData.js +1 -2
  62. package/dist/cjs/{index-4e9a219e.js → index-d4004342.js} +2 -2
  63. package/dist/cjs/index.js +7 -7
  64. package/dist/cjs/{urlForFile-5084fc48.js → urlForFile-ef20990d.js} +2 -1
  65. package/dist/esm/AD300x250.js +1 -2
  66. package/dist/esm/AD300x250x600.js +1 -2
  67. package/dist/esm/AD728x90.js +1 -2
  68. package/dist/esm/ADFloatingFooter.js +1 -2
  69. package/dist/esm/ADGutter.js +1 -2
  70. package/dist/esm/ADSkyscraper.js +1 -2
  71. package/dist/esm/ADSponsoredResources.js +1 -2
  72. package/dist/esm/ADWebcast.js +1 -2
  73. package/dist/esm/ADWelcome.js +1 -2
  74. package/dist/esm/AdSlot.js +1 -2
  75. package/dist/esm/AdSlotsProvider.js +1 -2
  76. package/dist/esm/ArticleProgramLandingPage.js +3 -4
  77. package/dist/esm/ArticleSeriesLandingPage.js +3 -4
  78. package/dist/esm/Beam.js +1 -2
  79. package/dist/esm/CMEDeck.js +1 -2
  80. package/dist/esm/Column2.js +1 -2
  81. package/dist/esm/Column3.js +1 -2
  82. package/dist/esm/ContentCardPaginated.js +2 -3
  83. package/dist/esm/DeckContent.js +2 -3
  84. package/dist/esm/DeckQueuePaginated.js +1 -2
  85. package/dist/esm/ExternalResources.js +3 -4
  86. package/dist/esm/GridContent.js +3 -4
  87. package/dist/esm/GridContentPaginated.js +3 -4
  88. package/dist/esm/HamMagazine.js +1 -2
  89. package/dist/esm/HorizontalArticleListing.js +3 -4
  90. package/dist/esm/IssueLanding.js +5 -6
  91. package/dist/esm/LeftNav.js +1 -2
  92. package/dist/esm/MasterDeck.js +3 -4
  93. package/dist/esm/MasterDeckPaginated.js +3 -4
  94. package/dist/esm/{MediaSeriesCard-27cce8ea.js → MediaSeriesCard-c30a730d.js} +1 -1
  95. package/dist/esm/MediaSeriesLanding.js +6 -7
  96. package/dist/esm/MediaSeriesLandingPaginated.js +6 -7
  97. package/dist/esm/NavDvm.js +1 -2
  98. package/dist/esm/NavMagazine.js +1 -2
  99. package/dist/esm/NavNative.js +1 -2
  100. package/dist/esm/PartnerDetailListing.js +5 -6
  101. package/dist/esm/PartnerDetailListingPaginated.js +5 -6
  102. package/dist/esm/PodcastsLanding.js +6 -7
  103. package/dist/esm/PtceDeck.js +1 -2
  104. package/dist/esm/PubSection.js +3 -4
  105. package/dist/esm/PubToc.js +1 -2
  106. package/dist/esm/PublicationLanding.js +574 -11
  107. package/dist/esm/QueueDeckExpanded.js +3 -4
  108. package/dist/esm/QueueDeckExpandedPaginated.js +3 -4
  109. package/dist/esm/Segment.js +1 -2
  110. package/dist/esm/SideFooter.js +1 -2
  111. package/dist/esm/TaxonomyDescription.js +3 -4
  112. package/dist/esm/TemplateNormal.js +1 -2
  113. package/dist/esm/Ustream.js +1 -2
  114. package/dist/esm/VideoProgramLandingPage.js +3 -4
  115. package/dist/esm/VideoSeriesFilter.js +1 -2
  116. package/dist/esm/VideoSeriesLandingPage.js +3 -4
  117. package/dist/esm/View.js +3 -4
  118. package/dist/esm/{asyncToGenerator-64822ccc.js → asyncToGenerator-958ef5fc.js} +50 -6
  119. package/dist/esm/faundadb.js +1 -2
  120. package/dist/esm/getPtceActivities.js +1 -2
  121. package/dist/esm/getRelatedArticle.js +1 -2
  122. package/dist/esm/getRootDocGroup.js +1 -2
  123. package/dist/esm/getSerializers.js +3 -4
  124. package/dist/esm/getTIData.js +1 -2
  125. package/dist/esm/{index-1fd45cc5.js → index-ae420a0c.js} +2 -2
  126. package/dist/esm/index.js +7 -7
  127. package/dist/esm/{urlForFile-f6485737.js → urlForFile-dc111d7f.js} +2 -1
  128. package/package.json +1 -1
  129. package/dist/cjs/_set-species-0c7864a2.js +0 -55
  130. package/dist/esm/_set-species-2cd9340f.js +0 -50
  131. /package/dist/cjs/{ADInfeed-98ee4120.js → ADInfeed-49bdb9e1.js} +0 -0
  132. /package/dist/cjs/{ADlgInfeed-55df7d69.js → ADlgInfeed-33be9ab6.js} +0 -0
  133. /package/dist/esm/{ADInfeed-6d0c0856.js → ADInfeed-d2229e62.js} +0 -0
  134. /package/dist/esm/{ADlgInfeed-93bc2250.js → ADlgInfeed-e13fb474.js} +0 -0
@@ -1,10 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ var _extends = require('./extends-be0d85bc.js');
4
+ var defineProperty = require('./defineProperty-9673846a.js');
5
+ var asyncToGenerator = require('./asyncToGenerator-77821af0.js');
6
+ var stringify = require('./stringify-f7a37a8d.js');
3
7
  var slicedToArray = require('./slicedToArray-067dd3bc.js');
4
8
  var _commonjsHelpers = require('./_commonjsHelpers-06173234.js');
5
9
  var core_getIteratorMethod = require('./core.get-iterator-method-5643aa10.js');
6
10
  var web_dom_iterable = require('./web.dom.iterable-d98303e0.js');
7
- var _setSpecies = require('./_set-species-0c7864a2.js');
8
11
  var _isArray = require('./_is-array-54228b29.js');
9
12
  var toConsumableArray = require('./toConsumableArray-d7797c2b.js');
10
13
  var React = require('react');
@@ -14,7 +17,14 @@ var Dropdown = require('react-bootstrap/Dropdown');
14
17
  var Card = require('react-bootstrap/Card');
15
18
  var Router = require('next/router');
16
19
  var index = require('./index-65621b6c.js');
17
- var urlForFile = require('./urlForFile-5084fc48.js');
20
+ var urlForFile = require('./urlForFile-ef20990d.js');
21
+ var Overlay = require('react-bootstrap/Overlay');
22
+ var Popover = require('react-bootstrap/Popover');
23
+ var Button = require('react-bootstrap/Button');
24
+ var Form = require('react-bootstrap/Form');
25
+ require('./main-ae8472f3.js');
26
+ require('./define-property-e8404b64.js');
27
+ require('./_library-dd23b178.js');
18
28
  require('./_iter-detect-b1df62f0.js');
19
29
  require('react-dom');
20
30
  require('prop-types');
@@ -26,6 +36,10 @@ var Row__default = /*#__PURE__*/_interopDefaultLegacy(Row);
26
36
  var Col__default = /*#__PURE__*/_interopDefaultLegacy(Col);
27
37
  var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
28
38
  var Card__default = /*#__PURE__*/_interopDefaultLegacy(Card);
39
+ var Overlay__default = /*#__PURE__*/_interopDefaultLegacy(Overlay);
40
+ var Popover__default = /*#__PURE__*/_interopDefaultLegacy(Popover);
41
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
42
+ var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
29
43
 
30
44
  var _validateCollection = function (it, TYPE) {
31
45
  if (!core_getIteratorMethod._isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
@@ -60,15 +74,15 @@ var getEntry = function (that, key) {
60
74
  var _collectionStrong = {
61
75
  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
62
76
  var C = wrapper(function (that, iterable) {
63
- _setSpecies._anInstance(that, C, NAME, '_i');
77
+ asyncToGenerator._anInstance(that, C, NAME, '_i');
64
78
  that._t = NAME; // collection type
65
79
  that._i = core_getIteratorMethod._objectCreate(null); // index
66
80
  that._f = undefined; // first entry
67
81
  that._l = undefined; // last entry
68
82
  that[SIZE] = 0; // size
69
- if (iterable != undefined) _setSpecies._forOf(iterable, IS_MAP, that[ADDER], that);
83
+ if (iterable != undefined) asyncToGenerator._forOf(iterable, IS_MAP, that[ADDER], that);
70
84
  });
71
- _setSpecies._redefineAll(C.prototype, {
85
+ asyncToGenerator._redefineAll(C.prototype, {
72
86
  // 23.1.3.1 Map.prototype.clear()
73
87
  // 23.2.3.2 Set.prototype.clear()
74
88
  clear: function clear() {
@@ -172,7 +186,7 @@ var _collectionStrong = {
172
186
  }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
173
187
 
174
188
  // add [@@species], 23.1.2.2, 23.2.2.2
175
- _setSpecies._setSpecies(NAME);
189
+ asyncToGenerator._setSpecies(NAME);
176
190
  }
177
191
  };
178
192
  _collectionStrong.getConstructor;
@@ -262,18 +276,18 @@ var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
262
276
  }))) {
263
277
  // create collection constructor
264
278
  C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
265
- _setSpecies._redefineAll(C.prototype, methods);
279
+ asyncToGenerator._redefineAll(C.prototype, methods);
266
280
  _isArray._meta.NEED = true;
267
281
  } else {
268
282
  C = wrapper(function (target, iterable) {
269
- _setSpecies._anInstance(target, C, NAME, '_c');
283
+ asyncToGenerator._anInstance(target, C, NAME, '_c');
270
284
  target._c = new Base();
271
- if (iterable != undefined) _setSpecies._forOf(iterable, IS_MAP, target[ADDER], target);
285
+ if (iterable != undefined) asyncToGenerator._forOf(iterable, IS_MAP, target[ADDER], target);
272
286
  });
273
287
  each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','), function (KEY) {
274
288
  var IS_ADDER = KEY == 'add' || KEY == 'set';
275
289
  if (KEY in proto && !(IS_WEAK && KEY == 'clear')) core_getIteratorMethod._hide(C.prototype, KEY, function (a, b) {
276
- _setSpecies._anInstance(this, C, KEY);
290
+ asyncToGenerator._anInstance(this, C, KEY);
277
291
  if (!IS_ADDER && IS_WEAK && !core_getIteratorMethod._isObject(a)) return KEY == 'get' ? undefined : false;
278
292
  var result = this._c[KEY](a === 0 ? 0 : a, b);
279
293
  return IS_ADDER ? this : result;
@@ -310,7 +324,7 @@ _collection(SET, function (get) {
310
324
 
311
325
  var _arrayFromIterable = function (iter, ITERATOR) {
312
326
  var result = [];
313
- _setSpecies._forOf(iter, false, result.push, result, ITERATOR);
327
+ asyncToGenerator._forOf(iter, false, result.push, result, ITERATOR);
314
328
  return result;
315
329
  };
316
330
 
@@ -362,11 +376,11 @@ var _setCollectionFrom = function (COLLECTION) {
362
376
  if (mapping) {
363
377
  n = 0;
364
378
  cb = core_getIteratorMethod._ctx(mapFn, arguments[2], 2);
365
- _setSpecies._forOf(source, false, function (nextItem) {
379
+ asyncToGenerator._forOf(source, false, function (nextItem) {
366
380
  A.push(cb(nextItem, n++));
367
381
  });
368
382
  } else {
369
- _setSpecies._forOf(source, false, A.push, A);
383
+ asyncToGenerator._forOf(source, false, A.push, A);
370
384
  }
371
385
  return new this(A);
372
386
  } });
@@ -383,6 +397,8 @@ module.exports = { "default": set$1, __esModule: true };
383
397
 
384
398
  var _Set = _commonjsHelpers.unwrapExports(set);
385
399
 
400
+ var _this = undefined;
401
+
386
402
  /* usage & query
387
403
  const Publication = (props) => {
388
404
  const { cache, pub, year } = props
@@ -465,6 +481,54 @@ var PublicationLanding = function PublicationLanding(props) {
465
481
 
466
482
  var baseUrl = client ? client.config().baseUrl : '';
467
483
 
484
+ var _useState9 = React.useState(''),
485
+ _useState10 = slicedToArray._slicedToArray(_useState9, 2),
486
+ email = _useState10[0],
487
+ setEmail = _useState10[1];
488
+
489
+ var _useState11 = React.useState(''),
490
+ _useState12 = slicedToArray._slicedToArray(_useState11, 2),
491
+ firstName = _useState12[0],
492
+ setFirstName = _useState12[1];
493
+
494
+ var _useState13 = React.useState(''),
495
+ _useState14 = slicedToArray._slicedToArray(_useState13, 2),
496
+ lastName = _useState14[0],
497
+ setLastName = _useState14[1];
498
+
499
+ var _useState15 = React.useState(false),
500
+ _useState16 = slicedToArray._slicedToArray(_useState15, 2),
501
+ checkBox = _useState16[0],
502
+ setCheckBox = _useState16[1];
503
+
504
+ var _useState17 = React.useState(false),
505
+ _useState18 = slicedToArray._slicedToArray(_useState17, 2),
506
+ isValidated = _useState18[0],
507
+ SetIsValidated = _useState18[1];
508
+
509
+ var DL_PDF = React.useRef();
510
+ var overLayRef = React.useRef([]);
511
+
512
+ var _useState19 = React.useState(true),
513
+ _useState20 = slicedToArray._slicedToArray(_useState19, 2),
514
+ sendingData = _useState20[0],
515
+ setSendingData = _useState20[1];
516
+
517
+ var _useState21 = React.useState(''),
518
+ _useState22 = slicedToArray._slicedToArray(_useState21, 2),
519
+ errorMsg = _useState22[0],
520
+ setErrorMsg = _useState22[1];
521
+
522
+ var _useState23 = React.useState({}),
523
+ _useState24 = slicedToArray._slicedToArray(_useState23, 2),
524
+ show = _useState24[0],
525
+ setShow = _useState24[1];
526
+
527
+ var _useState25 = React.useState(null),
528
+ _useState26 = slicedToArray._slicedToArray(_useState25, 2),
529
+ overlayTarget = _useState26[0],
530
+ setOverlayTarget = _useState26[1];
531
+
468
532
  // useEffect(() => {
469
533
  // ;(async function() {
470
534
  // if (issueData && issueData.length > 0 && client) {
@@ -493,6 +557,8 @@ var PublicationLanding = function PublicationLanding(props) {
493
557
  // })()
494
558
  // }, [])
495
559
  // function for filtering by year
560
+
561
+
496
562
  var filterByYear = function filterByYear(year) {
497
563
  return issueData.filter(function (issue) {
498
564
  return issue.year === year;
@@ -595,12 +661,191 @@ var PublicationLanding = function PublicationLanding(props) {
595
661
  }
596
662
  }, [activeYear, activeContentPlacement, issueData]);
597
663
 
664
+ var handleFormInput = function handleFormInput(e) {
665
+ //console.dir(e.currentTarget)
666
+ e.preventDefault();
667
+ e.stopPropagation();
668
+
669
+ switch (e.currentTarget.name) {
670
+ case 'firstName':
671
+ setFirstName(e.currentTarget.value);
672
+ break;
673
+ case 'lastName':
674
+ setLastName(e.currentTarget.value);
675
+ break;
676
+ case 'email':
677
+ setEmail(e.currentTarget.value);
678
+ break;
679
+ case 'checkbox':
680
+ setCheckBox(e.currentTarget.checked);
681
+ break;
682
+ }
683
+ };
684
+
685
+ React.useEffect(function () {
686
+ if (firstName.length > 3 && lastName.length > 3 && email.includes('@') && checkBox) {
687
+ setSendingData(false);
688
+ }
689
+ }, [firstName, lastName, email, checkBox]);
690
+
691
+ var isGatedFormHandler = function () {
692
+ var _ref = asyncToGenerator._asyncToGenerator( /*#__PURE__*/asyncToGenerator.regenerator.mark(function _callee(e) {
693
+ var form, body, res;
694
+ return asyncToGenerator.regenerator.wrap(function _callee$(_context) {
695
+ while (1) {
696
+ switch (_context.prev = _context.next) {
697
+ case 0:
698
+ e.preventDefault();
699
+ e.stopPropagation();
700
+ setSendingData(true);
701
+ form = e.currentTarget;
702
+
703
+ if (!(form.checkValidity() === false)) {
704
+ _context.next = 6;
705
+ break;
706
+ }
707
+
708
+ return _context.abrupt('return');
709
+
710
+ case 6:
711
+ console.dir(overLayRef);
712
+ body = {};
713
+
714
+ body['firstName'] = firstName;
715
+ body['lastName'] = lastName;
716
+ body['email'] = email;
717
+ body['downloadedPDF'] = DL_PDF.current.dataset.pdfname;
718
+ body['publication'] = router.query.publication ? router.query.publication : null;
719
+ body['site'] = window.location.hostname;
720
+ body['Source'] = 'Gated Form';
721
+ SetIsValidated(true);
722
+
723
+ _context.prev = 16;
724
+ _context.next = 19;
725
+ return fetch('/api/pdfGating/check', {
726
+ method: 'POST',
727
+ headers: { 'Content-Type': 'application/json' },
728
+ body: stringify._JSON$stringify(body)
729
+ });
730
+
731
+ case 19:
732
+ res = _context.sent;
733
+
734
+ console.dir(res);
735
+
736
+ if (!(res.status === 202)) {
737
+ _context.next = 26;
738
+ break;
739
+ }
740
+
741
+ window.open(DL_PDF.current.dataset.pdf, '_blank');
742
+ closeAllOverlays();
743
+ _context.next = 31;
744
+ break;
745
+
746
+ case 26:
747
+ _context.t0 = Error;
748
+ _context.next = 29;
749
+ return res.text();
750
+
751
+ case 29:
752
+ _context.t1 = _context.sent;
753
+ throw new _context.t0(_context.t1);
754
+
755
+ case 31:
756
+ _context.next = 37;
757
+ break;
758
+
759
+ case 33:
760
+ _context.prev = 33;
761
+ _context.t2 = _context['catch'](16);
762
+
763
+ setErrorMsg(_context.t2.message);
764
+ window.setTimeout(function () {
765
+ closeAllOverlays();
766
+ }, 500);
767
+
768
+ case 37:
769
+ setSendingData(false);
770
+ //SetIsValidated(false)
771
+
772
+ case 38:
773
+ case 'end':
774
+ return _context.stop();
775
+ }
776
+ }
777
+ }, _callee, _this, [[16, 33]]);
778
+ }));
779
+
780
+ return function isGatedFormHandler(_x) {
781
+ return _ref.apply(this, arguments);
782
+ };
783
+ }();
784
+
785
+ var _useState27 = React.useState(null),
786
+ _useState28 = slicedToArray._slicedToArray(_useState27, 2),
787
+ currentKey = _useState28[0],
788
+ setCurrentKey = _useState28[1];
789
+
790
+ var _useState29 = React.useState(false),
791
+ _useState30 = slicedToArray._slicedToArray(_useState29, 2),
792
+ overLaysClosed = _useState30[0],
793
+ setOverLaysClosed = _useState30[1];
794
+
795
+ var prevKey = React.useRef();
796
+
797
+ var closeAllOverlays = function closeAllOverlays(targetKey, event) {
798
+ for (var key in show) {
799
+ closeOverLay(key);
800
+ }
801
+ if (targetKey) {
802
+ setCurrentKey(targetKey);
803
+ setOverLaysClosed(true);
804
+ setOverlayTarget(event.target);
805
+ }
806
+ };
807
+
808
+ React.useEffect(function () {
809
+ if (overLaysClosed === true && prevKey.current !== currentKey) {
810
+ window.setTimeout(function () {
811
+ console.dir(overlayTarget);
812
+ var updatedValue = defineProperty._defineProperty({}, currentKey, true);
813
+ setShow(function (show) {
814
+ return _extends._extends({}, show, updatedValue);
815
+ });
816
+ setOverLaysClosed(false);
817
+ prevKey.current = currentKey;
818
+ if (show[currentKey] !== true) {
819
+ try {
820
+ document.getElementById('download_' + currentKey).disabled = true;
821
+ } catch (e) {
822
+ console.log(e.message);
823
+ }
824
+ }
825
+ }, 500);
826
+ }
827
+ }, [currentKey, overLaysClosed, overlayTarget]);
828
+
829
+ var handleOverLayOpen = function handleOverLayOpen(event) {
830
+ closeAllOverlays(event.target.dataset.key, event);
831
+ };
832
+
833
+ function closeOverLay(key) {
834
+ prevKey.current = '-1';
835
+ var updatedValue = {};
836
+ updatedValue = defineProperty._defineProperty({}, key, false);
837
+ document.getElementById('download_' + key).disabled = false;
838
+ setShow(function (show) {
839
+ return _extends._extends({}, show, updatedValue);
840
+ });
841
+ }
842
+
598
843
  return React__default["default"].createElement(
599
844
  'div',
600
845
  { id: 'publicationLanding' },
601
846
  React__default["default"].createElement(
602
847
  'style',
603
- { jsx: true },
848
+ { jsx: 'true' },
604
849
  '\n #pubYearFilter .dropdown-menu.show,\n #contentPlacementFilter .dropdown-menu.show {\n max-height: 25vh;\n overflow: auto;\n }\n #publicationLanding {\n margin-bottom: 6rem;\n }\n '
605
850
  ),
606
851
  React__default["default"].createElement(
@@ -717,16 +962,177 @@ var PublicationLanding = function PublicationLanding(props) {
717
962
  React__default["default"].createElement(
718
963
  Card__default["default"].Footer,
719
964
  null,
720
- issue && issue.articles && issue.articles.length > 0 ? React__default["default"].createElement(
965
+ issue && issue.articles && issue.articles.length > 1 ? React__default["default"].createElement(
721
966
  'a',
722
967
  { href: publication.identifier.current + '/' + issue.identifier.current, className: 'btn btn-primary' },
723
968
  'View Issue'
724
969
  ) : null,
725
- issue.pdf && issue.pdf.asset && issue.pdf.asset.url && React__default["default"].createElement(
970
+ issue && issue.articles && issue.articles.length === 1 ? React__default["default"].createElement(
971
+ 'a',
972
+ { href: '/view/' + issue.articles[0].url.current, className: 'btn btn-primary' },
973
+ 'View Issue'
974
+ ) : null,
975
+ issue.isGatedPDF ? issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default["default"].createElement(
976
+ 'div',
977
+ { className: 'overLayWrapper', ref: function ref(el) {
978
+ return overLayRef.current[key] = el;
979
+ } },
980
+ React__default["default"].createElement(
981
+ Overlay__default["default"],
982
+ { show: show[key], container: overLayRef.current[key], key: key, target: overlayTarget, placement: 'top', onHide: function onHide() {
983
+ return closeAllOverlays();
984
+ } },
985
+ React__default["default"].createElement(
986
+ Popover__default["default"],
987
+ { id: 'popover-basic-' + key },
988
+ React__default["default"].createElement(
989
+ Popover__default["default"].Content,
990
+ null,
991
+ React__default["default"].createElement(
992
+ Row__default["default"],
993
+ null,
994
+ React__default["default"].createElement(
995
+ 'div',
996
+ {
997
+ onClick: function onClick(e) {
998
+ return closeAllOverlays();
999
+ },
1000
+ style: { cursor: 'pointer', display: 'flex', flexDirection: 'row', justifyContent: 'flex-end', width: '100%', marginBottom: '-15px' } },
1001
+ React__default["default"].createElement(
1002
+ 'div',
1003
+ { style: { width: '25px', height: '25px' } },
1004
+ 'X'
1005
+ )
1006
+ )
1007
+ ),
1008
+ React__default["default"].createElement(
1009
+ Form__default["default"],
1010
+ { validated: isValidated, onSubmit: isGatedFormHandler },
1011
+ React__default["default"].createElement(
1012
+ Row__default["default"],
1013
+ { className: 'gatedPdfForm' },
1014
+ React__default["default"].createElement(
1015
+ Form__default["default"].Group,
1016
+ { className: 'mb-3 mt-3', controlId: 'pdfFormFirstName' },
1017
+ React__default["default"].createElement(
1018
+ Form__default["default"].Label,
1019
+ null,
1020
+ React__default["default"].createElement(
1021
+ 'span',
1022
+ { style: { color: 'red' } },
1023
+ '*'
1024
+ ),
1025
+ 'First Name'
1026
+ ),
1027
+ React__default["default"].createElement(Form__default["default"].Control, { onChange: function onChange(e) {
1028
+ return handleFormInput(e);
1029
+ }, value: firstName, name: 'firstName', required: true, type: 'text', min: '1', placeholder: 'First Name' }),
1030
+ React__default["default"].createElement(
1031
+ Form__default["default"].Control.Feedback,
1032
+ { type: 'invalid' },
1033
+ 'Please provide your first name.'
1034
+ )
1035
+ ),
1036
+ React__default["default"].createElement(
1037
+ Form__default["default"].Group,
1038
+ { required: true, className: 'mb-3', controlId: 'pdfFormLastName' },
1039
+ React__default["default"].createElement(
1040
+ Form__default["default"].Label,
1041
+ null,
1042
+ React__default["default"].createElement(
1043
+ 'span',
1044
+ { style: { color: 'red' } },
1045
+ '*'
1046
+ ),
1047
+ 'Last Name'
1048
+ ),
1049
+ React__default["default"].createElement(Form__default["default"].Control, { onChange: function onChange(e) {
1050
+ return handleFormInput(e);
1051
+ }, value: lastName, name: 'lastName', required: true, type: 'text', min: '1', placeholder: 'Last Name' }),
1052
+ React__default["default"].createElement(
1053
+ Form__default["default"].Control.Feedback,
1054
+ { type: 'invalid' },
1055
+ 'Please provide your last name.'
1056
+ )
1057
+ ),
1058
+ React__default["default"].createElement(
1059
+ Form__default["default"].Group,
1060
+ { className: 'mb-3', controlId: 'pdfFormEmail' },
1061
+ React__default["default"].createElement(
1062
+ Form__default["default"].Label,
1063
+ null,
1064
+ React__default["default"].createElement(
1065
+ 'span',
1066
+ { style: { color: 'red' } },
1067
+ '*'
1068
+ ),
1069
+ 'Email'
1070
+ ),
1071
+ React__default["default"].createElement(Form__default["default"].Control, { onChange: function onChange(e) {
1072
+ return handleFormInput(e);
1073
+ }, value: email, name: 'email', required: true, type: 'email', placeholder: 'Email' }),
1074
+ React__default["default"].createElement(
1075
+ Form__default["default"].Control.Feedback,
1076
+ { type: 'invalid' },
1077
+ 'Please provide your email.'
1078
+ )
1079
+ ),
1080
+ React__default["default"].createElement(
1081
+ Form__default["default"].Group,
1082
+ { className: 'mb-3', controlId: 'pdfPrivacyCheck' },
1083
+ React__default["default"].createElement(
1084
+ Form__default["default"].Check,
1085
+ null,
1086
+ React__default["default"].createElement(Form__default["default"].Check.Input, { required: true, onChange: function onChange(e) {
1087
+ return handleFormInput(e);
1088
+ }, type: 'checkbox', name: 'checkbox' }),
1089
+ React__default["default"].createElement(
1090
+ Form__default["default"].Check.Label,
1091
+ null,
1092
+ 'By clicking on \'Submit\', you accept our ',
1093
+ React__default["default"].createElement(
1094
+ 'a',
1095
+ { href: 'https://www.dentalproductsreport.com/privacy', target: '_blank' },
1096
+ 'Privacy Policy'
1097
+ )
1098
+ )
1099
+ )
1100
+ ),
1101
+ React__default["default"].createElement(
1102
+ Button__default["default"],
1103
+ { disabled: sendingData, className: 'btn btn-primary mb-3', type: 'submit' },
1104
+ 'Submit'
1105
+ ),
1106
+ errorMsg ? React__default["default"].createElement(
1107
+ 'div',
1108
+ { style: { color: 'red' } },
1109
+ errorMsg
1110
+ ) : null
1111
+ )
1112
+ )
1113
+ )
1114
+ )
1115
+ ),
1116
+ React__default["default"].createElement(
1117
+ 'button',
1118
+ {
1119
+ id: 'download_' + key,
1120
+ rel: 'noopener',
1121
+ onClick: function onClick(e) {
1122
+ return isValidated ? window.open(urlForFile.urlForFile(issue.pdf, baseUrl), '_blank') : handleOverLayOpen(e);
1123
+ },
1124
+ ref: DL_PDF,
1125
+ 'data-key': key,
1126
+ 'data-pdfname': issue.name,
1127
+ 'data-pdf': urlForFile.urlForFile(issue.pdf, baseUrl),
1128
+ className: 'btn btn-primary ml-3' },
1129
+ 'Download Issue'
1130
+ )
1131
+ ) : null : issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default["default"].createElement(
726
1132
  'a',
727
1133
  { rel: 'noopener', href: urlForFile.urlForFile(issue.pdf, baseUrl), target: '_blank', className: 'btn btn-primary' },
728
1134
  'Download Issue'
729
- )
1135
+ ) : null
730
1136
  )
731
1137
  )
732
1138
  )
@@ -780,16 +1186,177 @@ var PublicationLanding = function PublicationLanding(props) {
780
1186
  React__default["default"].createElement(
781
1187
  Card__default["default"].Footer,
782
1188
  null,
783
- issue && issue.articles && issue.articles.length > 0 ? React__default["default"].createElement(
1189
+ issue && issue.articles && issue.articles.length > 1 ? React__default["default"].createElement(
784
1190
  'a',
785
1191
  { href: publication.identifier.current + '/' + issue.identifier.current, className: 'btn btn-primary' },
786
1192
  'View Issue'
787
1193
  ) : null,
788
- issue.pdf && issue.pdf.asset && issue.pdf.asset.url && React__default["default"].createElement(
1194
+ issue && issue.articles && issue.articles.length === 1 ? React__default["default"].createElement(
1195
+ 'a',
1196
+ { href: '/view/' + issue.articles[0].url.current, className: 'btn btn-primary' },
1197
+ 'View Issue'
1198
+ ) : null,
1199
+ issue.isGatedPDF ? issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default["default"].createElement(
1200
+ 'div',
1201
+ { className: 'overLayWrapper', ref: function ref(el) {
1202
+ return overLayRef.current[key] = el;
1203
+ } },
1204
+ React__default["default"].createElement(
1205
+ Overlay__default["default"],
1206
+ { show: show[key], container: overLayRef.current[key], key: key, target: overlayTarget, placement: 'top', onHide: function onHide() {
1207
+ return closeAllOverlays();
1208
+ } },
1209
+ React__default["default"].createElement(
1210
+ Popover__default["default"],
1211
+ { id: 'popover-basic-' + key },
1212
+ React__default["default"].createElement(
1213
+ Popover__default["default"].Content,
1214
+ null,
1215
+ React__default["default"].createElement(
1216
+ Row__default["default"],
1217
+ null,
1218
+ React__default["default"].createElement(
1219
+ 'div',
1220
+ {
1221
+ onClick: function onClick(e) {
1222
+ return closeAllOverlays();
1223
+ },
1224
+ style: { cursor: 'pointer', display: 'flex', flexDirection: 'row', justifyContent: 'flex-end', width: '100%', marginBottom: '-15px' } },
1225
+ React__default["default"].createElement(
1226
+ 'div',
1227
+ { style: { width: '25px', height: '25px' } },
1228
+ 'X'
1229
+ )
1230
+ )
1231
+ ),
1232
+ React__default["default"].createElement(
1233
+ Form__default["default"],
1234
+ { validated: isValidated, onSubmit: isGatedFormHandler },
1235
+ React__default["default"].createElement(
1236
+ Row__default["default"],
1237
+ { className: 'gatedPdfForm' },
1238
+ React__default["default"].createElement(
1239
+ Form__default["default"].Group,
1240
+ { className: 'mb-3 mt-3', controlId: 'pdfFormFirstName' },
1241
+ React__default["default"].createElement(
1242
+ Form__default["default"].Label,
1243
+ null,
1244
+ React__default["default"].createElement(
1245
+ 'span',
1246
+ { style: { color: 'red' } },
1247
+ '*'
1248
+ ),
1249
+ 'First Name'
1250
+ ),
1251
+ React__default["default"].createElement(Form__default["default"].Control, { onChange: function onChange(e) {
1252
+ return handleFormInput(e);
1253
+ }, value: firstName, name: 'firstName', required: true, type: 'text', min: '1', placeholder: 'First Name' }),
1254
+ React__default["default"].createElement(
1255
+ Form__default["default"].Control.Feedback,
1256
+ { type: 'invalid' },
1257
+ 'Please provide your first name.'
1258
+ )
1259
+ ),
1260
+ React__default["default"].createElement(
1261
+ Form__default["default"].Group,
1262
+ { required: true, className: 'mb-3', controlId: 'pdfFormLastName' },
1263
+ React__default["default"].createElement(
1264
+ Form__default["default"].Label,
1265
+ null,
1266
+ React__default["default"].createElement(
1267
+ 'span',
1268
+ { style: { color: 'red' } },
1269
+ '*'
1270
+ ),
1271
+ 'Last Name'
1272
+ ),
1273
+ React__default["default"].createElement(Form__default["default"].Control, { onChange: function onChange(e) {
1274
+ return handleFormInput(e);
1275
+ }, value: lastName, name: 'lastName', required: true, type: 'text', min: '1', placeholder: 'Last Name' }),
1276
+ React__default["default"].createElement(
1277
+ Form__default["default"].Control.Feedback,
1278
+ { type: 'invalid' },
1279
+ 'Please provide your last name.'
1280
+ )
1281
+ ),
1282
+ React__default["default"].createElement(
1283
+ Form__default["default"].Group,
1284
+ { className: 'mb-3', controlId: 'pdfFormEmail' },
1285
+ React__default["default"].createElement(
1286
+ Form__default["default"].Label,
1287
+ null,
1288
+ React__default["default"].createElement(
1289
+ 'span',
1290
+ { style: { color: 'red' } },
1291
+ '*'
1292
+ ),
1293
+ 'Email'
1294
+ ),
1295
+ React__default["default"].createElement(Form__default["default"].Control, { onChange: function onChange(e) {
1296
+ return handleFormInput(e);
1297
+ }, value: email, name: 'email', required: true, type: 'email', placeholder: 'Email' }),
1298
+ React__default["default"].createElement(
1299
+ Form__default["default"].Control.Feedback,
1300
+ { type: 'invalid' },
1301
+ 'Please provide your email.'
1302
+ )
1303
+ ),
1304
+ React__default["default"].createElement(
1305
+ Form__default["default"].Group,
1306
+ { className: 'mb-3', controlId: 'pdfPrivacyCheck' },
1307
+ React__default["default"].createElement(
1308
+ Form__default["default"].Check,
1309
+ null,
1310
+ React__default["default"].createElement(Form__default["default"].Check.Input, { required: true, onChange: function onChange(e) {
1311
+ return handleFormInput(e);
1312
+ }, type: 'checkbox', name: 'checkbox' }),
1313
+ React__default["default"].createElement(
1314
+ Form__default["default"].Check.Label,
1315
+ null,
1316
+ 'By clicking on \'Submit\', you accept our ',
1317
+ React__default["default"].createElement(
1318
+ 'a',
1319
+ { href: 'https://www.dentalproductsreport.com/privacy', target: '_blank' },
1320
+ 'Privacy Policy'
1321
+ )
1322
+ )
1323
+ )
1324
+ ),
1325
+ React__default["default"].createElement(
1326
+ Button__default["default"],
1327
+ { disabled: sendingData, className: 'btn btn-primary mb-3', type: 'submit' },
1328
+ 'Submit'
1329
+ ),
1330
+ errorMsg ? React__default["default"].createElement(
1331
+ 'div',
1332
+ { style: { color: 'red' } },
1333
+ errorMsg
1334
+ ) : null
1335
+ )
1336
+ )
1337
+ )
1338
+ )
1339
+ ),
1340
+ React__default["default"].createElement(
1341
+ 'button',
1342
+ {
1343
+ id: 'download_' + key,
1344
+ rel: 'noopener',
1345
+ onClick: function onClick(e) {
1346
+ return isValidated ? window.open(urlForFile.urlForFile(issue.pdf, baseUrl), '_blank') : handleOverLayOpen(e);
1347
+ },
1348
+ ref: DL_PDF,
1349
+ 'data-key': key,
1350
+ 'data-pdfname': issue.name,
1351
+ 'data-pdf': urlForFile.urlForFile(issue.pdf, baseUrl),
1352
+ className: 'btn btn-primary ml-3' },
1353
+ 'Download Issue'
1354
+ )
1355
+ ) : null : issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default["default"].createElement(
789
1356
  'a',
790
1357
  { rel: 'noopener', href: urlForFile.urlForFile(issue.pdf, baseUrl), target: '_blank', className: 'btn btn-primary' },
791
1358
  'Download Issue'
792
- )
1359
+ ) : null
793
1360
  )
794
1361
  )
795
1362
  )
@@ -802,7 +1369,7 @@ var PublicationLanding = function PublicationLanding(props) {
802
1369
  React__default["default"].createElement(
803
1370
  'style',
804
1371
  { jsx: 'true' },
805
- '\n .issueCard.card:hover {\n cursor: default;\n }\n .content-category-label {\n margin: 0.5rem 0;\n display: block;\n }\n .sanityDisplayLabel {\n margin: 0.5rem 0;\n border: 1px solid black;\n display: inline;\n width: 100%;\n padding: 5px;\n color: #484848;\n border-radius: 2px;\n }\n .dropdown-toggle {\n min-width: 5rem;\n }\n .dropdown-toggle:empty:after {\n margin-left: 4rem;\n }\n .card-footer {\n background-color: transparent;\n border-top: 0;\n }\n .card-footer a:not(:first-child) {\n margin-left: 1rem;\n }\n '
1372
+ '\n .gatedPdfForm {\n justify-content: center;\n flex-direction: column;\n padding: 0 1.5rem;\n }\n .popoverClose {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n }\n .popoverClose button {\n border: none;\n background: transparent;\n color: #2780e3;\n }\n .card-footer {\n display: flex;\n }\n .card-footer button:not(:first-child) {\n color: #fff;\n margin-left: 1rem;\n }\n .issueCard.card:hover {\n cursor: default;\n }\n .content-category-label {\n margin: 0.5rem 0;\n display: block;\n }\n .sanityDisplayLabel {\n margin: 0.5rem 0;\n border: 1px solid black;\n display: inline;\n width: 100%;\n padding: 5px;\n color: #484848;\n border-radius: 2px;\n }\n .dropdown-toggle {\n min-width: 5rem;\n }\n .dropdown-toggle:empty:after {\n margin-left: 4rem;\n }\n .card-footer {\n background-color: transparent;\n border-top: 0;\n }\n .card-footer a:not(:first-child) {\n margin-left: 1rem;\n }\n '
806
1373
  )
807
1374
  );
808
1375
  };