@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,18 +1,28 @@
1
+ import { _ as _extends } from './extends-1559c147.js';
2
+ import { _ as _defineProperty } from './defineProperty-8c30428f.js';
3
+ import { b as _anInstance, c as _forOf, d as _redefineAll, e as _setSpecies, _ as _asyncToGenerator, r as regenerator } from './asyncToGenerator-958ef5fc.js';
4
+ import { _ as _JSON$stringify } from './stringify-2b084bee.js';
1
5
  import { _ as _slicedToArray } from './slicedToArray-6ebcbfea.js';
2
6
  import { c as createCommonjsModule, u as unwrapExports } from './_commonjsHelpers-0c4b6f40.js';
3
7
  import { b as _isObject, c as _objectDp, d as _objectCreate, e as _ctx, f as _descriptors, g as _iterDefine, h as _wks, i as _toObject, j as _iobject, k as _toLength, l as _global, m as _fails, n as _hide, o as _setToStringTag, _ as _export, p as _classof, q as _aFunction, a as _core } from './core.get-iterator-method-ea258bb1.js';
4
8
  import { _ as _iterStep } from './web.dom.iterable-ab4dea5c.js';
5
- import { _ as _anInstance, a as _forOf, b as _redefineAll, c as _setSpecies } from './_set-species-2cd9340f.js';
6
9
  import { _ as _meta, a as _isArray } from './_is-array-8d21b9e3.js';
7
10
  import { _ as _toConsumableArray } from './toConsumableArray-f7074d7c.js';
8
- import React__default, { useState, useEffect } from 'react';
11
+ import React__default, { useState, useRef, useEffect } from 'react';
9
12
  import Row from 'react-bootstrap/Row';
10
13
  import Col from 'react-bootstrap/Col';
11
14
  import Dropdown from 'react-bootstrap/Dropdown';
12
15
  import Card from 'react-bootstrap/Card';
13
16
  import { useRouter } from 'next/router';
14
17
  import { L as LazyLoad } from './index-755f2cc2.js';
15
- import { u as urlForFile } from './urlForFile-f6485737.js';
18
+ import { u as urlForFile } from './urlForFile-dc111d7f.js';
19
+ import Overlay from 'react-bootstrap/Overlay';
20
+ import Popover from 'react-bootstrap/Popover';
21
+ import Button from 'react-bootstrap/Button';
22
+ import Form from 'react-bootstrap/Form';
23
+ import './main-754d4992.js';
24
+ import './define-property-5f1bda73.js';
25
+ import './_library-528f1934.js';
16
26
  import './_iter-detect-98db3b07.js';
17
27
  import 'react-dom';
18
28
  import 'prop-types';
@@ -373,6 +383,8 @@ module.exports = { "default": set$1, __esModule: true };
373
383
 
374
384
  var _Set = unwrapExports(set);
375
385
 
386
+ var _this = undefined;
387
+
376
388
  /* usage & query
377
389
  const Publication = (props) => {
378
390
  const { cache, pub, year } = props
@@ -455,6 +467,54 @@ var PublicationLanding = function PublicationLanding(props) {
455
467
 
456
468
  var baseUrl = client ? client.config().baseUrl : '';
457
469
 
470
+ var _useState9 = useState(''),
471
+ _useState10 = _slicedToArray(_useState9, 2),
472
+ email = _useState10[0],
473
+ setEmail = _useState10[1];
474
+
475
+ var _useState11 = useState(''),
476
+ _useState12 = _slicedToArray(_useState11, 2),
477
+ firstName = _useState12[0],
478
+ setFirstName = _useState12[1];
479
+
480
+ var _useState13 = useState(''),
481
+ _useState14 = _slicedToArray(_useState13, 2),
482
+ lastName = _useState14[0],
483
+ setLastName = _useState14[1];
484
+
485
+ var _useState15 = useState(false),
486
+ _useState16 = _slicedToArray(_useState15, 2),
487
+ checkBox = _useState16[0],
488
+ setCheckBox = _useState16[1];
489
+
490
+ var _useState17 = useState(false),
491
+ _useState18 = _slicedToArray(_useState17, 2),
492
+ isValidated = _useState18[0],
493
+ SetIsValidated = _useState18[1];
494
+
495
+ var DL_PDF = useRef();
496
+ var overLayRef = useRef([]);
497
+
498
+ var _useState19 = useState(true),
499
+ _useState20 = _slicedToArray(_useState19, 2),
500
+ sendingData = _useState20[0],
501
+ setSendingData = _useState20[1];
502
+
503
+ var _useState21 = useState(''),
504
+ _useState22 = _slicedToArray(_useState21, 2),
505
+ errorMsg = _useState22[0],
506
+ setErrorMsg = _useState22[1];
507
+
508
+ var _useState23 = useState({}),
509
+ _useState24 = _slicedToArray(_useState23, 2),
510
+ show = _useState24[0],
511
+ setShow = _useState24[1];
512
+
513
+ var _useState25 = useState(null),
514
+ _useState26 = _slicedToArray(_useState25, 2),
515
+ overlayTarget = _useState26[0],
516
+ setOverlayTarget = _useState26[1];
517
+
458
518
  // useEffect(() => {
459
519
  // ;(async function() {
460
520
  // if (issueData && issueData.length > 0 && client) {
@@ -483,6 +543,8 @@ var PublicationLanding = function PublicationLanding(props) {
483
543
  // })()
484
544
  // }, [])
485
545
  // function for filtering by year
546
+
547
+
486
548
  var filterByYear = function filterByYear(year) {
487
549
  return issueData.filter(function (issue) {
488
550
  return issue.year === year;
@@ -585,12 +647,191 @@ var PublicationLanding = function PublicationLanding(props) {
585
647
  }
586
648
  }, [activeYear, activeContentPlacement, issueData]);
587
649
 
650
+ var handleFormInput = function handleFormInput(e) {
651
+ //console.dir(e.currentTarget)
652
+ e.preventDefault();
653
+ e.stopPropagation();
654
+
655
+ switch (e.currentTarget.name) {
656
+ case 'firstName':
657
+ setFirstName(e.currentTarget.value);
658
+ break;
659
+ case 'lastName':
660
+ setLastName(e.currentTarget.value);
661
+ break;
662
+ case 'email':
663
+ setEmail(e.currentTarget.value);
664
+ break;
665
+ case 'checkbox':
666
+ setCheckBox(e.currentTarget.checked);
667
+ break;
668
+ }
669
+ };
670
+
671
+ useEffect(function () {
672
+ if (firstName.length > 3 && lastName.length > 3 && email.includes('@') && checkBox) {
673
+ setSendingData(false);
674
+ }
675
+ }, [firstName, lastName, email, checkBox]);
676
+
677
+ var isGatedFormHandler = function () {
678
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(e) {
679
+ var form, body, res;
680
+ return regenerator.wrap(function _callee$(_context) {
681
+ while (1) {
682
+ switch (_context.prev = _context.next) {
683
+ case 0:
684
+ e.preventDefault();
685
+ e.stopPropagation();
686
+ setSendingData(true);
687
+ form = e.currentTarget;
688
+
689
+ if (!(form.checkValidity() === false)) {
690
+ _context.next = 6;
691
+ break;
692
+ }
693
+
694
+ return _context.abrupt('return');
695
+
696
+ case 6:
697
+ console.dir(overLayRef);
698
+ body = {};
699
+
700
+ body['firstName'] = firstName;
701
+ body['lastName'] = lastName;
702
+ body['email'] = email;
703
+ body['downloadedPDF'] = DL_PDF.current.dataset.pdfname;
704
+ body['publication'] = router.query.publication ? router.query.publication : null;
705
+ body['site'] = window.location.hostname;
706
+ body['Source'] = 'Gated Form';
707
+ SetIsValidated(true);
708
+
709
+ _context.prev = 16;
710
+ _context.next = 19;
711
+ return fetch('/api/pdfGating/check', {
712
+ method: 'POST',
713
+ headers: { 'Content-Type': 'application/json' },
714
+ body: _JSON$stringify(body)
715
+ });
716
+
717
+ case 19:
718
+ res = _context.sent;
719
+
720
+ console.dir(res);
721
+
722
+ if (!(res.status === 202)) {
723
+ _context.next = 26;
724
+ break;
725
+ }
726
+
727
+ window.open(DL_PDF.current.dataset.pdf, '_blank');
728
+ closeAllOverlays();
729
+ _context.next = 31;
730
+ break;
731
+
732
+ case 26:
733
+ _context.t0 = Error;
734
+ _context.next = 29;
735
+ return res.text();
736
+
737
+ case 29:
738
+ _context.t1 = _context.sent;
739
+ throw new _context.t0(_context.t1);
740
+
741
+ case 31:
742
+ _context.next = 37;
743
+ break;
744
+
745
+ case 33:
746
+ _context.prev = 33;
747
+ _context.t2 = _context['catch'](16);
748
+
749
+ setErrorMsg(_context.t2.message);
750
+ window.setTimeout(function () {
751
+ closeAllOverlays();
752
+ }, 500);
753
+
754
+ case 37:
755
+ setSendingData(false);
756
+ //SetIsValidated(false)
757
+
758
+ case 38:
759
+ case 'end':
760
+ return _context.stop();
761
+ }
762
+ }
763
+ }, _callee, _this, [[16, 33]]);
764
+ }));
765
+
766
+ return function isGatedFormHandler(_x) {
767
+ return _ref.apply(this, arguments);
768
+ };
769
+ }();
770
+
771
+ var _useState27 = useState(null),
772
+ _useState28 = _slicedToArray(_useState27, 2),
773
+ currentKey = _useState28[0],
774
+ setCurrentKey = _useState28[1];
775
+
776
+ var _useState29 = useState(false),
777
+ _useState30 = _slicedToArray(_useState29, 2),
778
+ overLaysClosed = _useState30[0],
779
+ setOverLaysClosed = _useState30[1];
780
+
781
+ var prevKey = useRef();
782
+
783
+ var closeAllOverlays = function closeAllOverlays(targetKey, event) {
784
+ for (var key in show) {
785
+ closeOverLay(key);
786
+ }
787
+ if (targetKey) {
788
+ setCurrentKey(targetKey);
789
+ setOverLaysClosed(true);
790
+ setOverlayTarget(event.target);
791
+ }
792
+ };
793
+
794
+ useEffect(function () {
795
+ if (overLaysClosed === true && prevKey.current !== currentKey) {
796
+ window.setTimeout(function () {
797
+ console.dir(overlayTarget);
798
+ var updatedValue = _defineProperty({}, currentKey, true);
799
+ setShow(function (show) {
800
+ return _extends({}, show, updatedValue);
801
+ });
802
+ setOverLaysClosed(false);
803
+ prevKey.current = currentKey;
804
+ if (show[currentKey] !== true) {
805
+ try {
806
+ document.getElementById('download_' + currentKey).disabled = true;
807
+ } catch (e) {
808
+ console.log(e.message);
809
+ }
810
+ }
811
+ }, 500);
812
+ }
813
+ }, [currentKey, overLaysClosed, overlayTarget]);
814
+
815
+ var handleOverLayOpen = function handleOverLayOpen(event) {
816
+ closeAllOverlays(event.target.dataset.key, event);
817
+ };
818
+
819
+ function closeOverLay(key) {
820
+ prevKey.current = '-1';
821
+ var updatedValue = {};
822
+ updatedValue = _defineProperty({}, key, false);
823
+ document.getElementById('download_' + key).disabled = false;
824
+ setShow(function (show) {
825
+ return _extends({}, show, updatedValue);
826
+ });
827
+ }
828
+
588
829
  return React__default.createElement(
589
830
  'div',
590
831
  { id: 'publicationLanding' },
591
832
  React__default.createElement(
592
833
  'style',
593
- { jsx: true },
834
+ { jsx: 'true' },
594
835
  '\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 '
595
836
  ),
596
837
  React__default.createElement(
@@ -707,16 +948,177 @@ var PublicationLanding = function PublicationLanding(props) {
707
948
  React__default.createElement(
708
949
  Card.Footer,
709
950
  null,
710
- issue && issue.articles && issue.articles.length > 0 ? React__default.createElement(
951
+ issue && issue.articles && issue.articles.length > 1 ? React__default.createElement(
711
952
  'a',
712
953
  { href: publication.identifier.current + '/' + issue.identifier.current, className: 'btn btn-primary' },
713
954
  'View Issue'
714
955
  ) : null,
715
- issue.pdf && issue.pdf.asset && issue.pdf.asset.url && React__default.createElement(
956
+ issue && issue.articles && issue.articles.length === 1 ? React__default.createElement(
957
+ 'a',
958
+ { href: '/view/' + issue.articles[0].url.current, className: 'btn btn-primary' },
959
+ 'View Issue'
960
+ ) : null,
961
+ issue.isGatedPDF ? issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default.createElement(
962
+ 'div',
963
+ { className: 'overLayWrapper', ref: function ref(el) {
964
+ return overLayRef.current[key] = el;
965
+ } },
966
+ React__default.createElement(
967
+ Overlay,
968
+ { show: show[key], container: overLayRef.current[key], key: key, target: overlayTarget, placement: 'top', onHide: function onHide() {
969
+ return closeAllOverlays();
970
+ } },
971
+ React__default.createElement(
972
+ Popover,
973
+ { id: 'popover-basic-' + key },
974
+ React__default.createElement(
975
+ Popover.Content,
976
+ null,
977
+ React__default.createElement(
978
+ Row,
979
+ null,
980
+ React__default.createElement(
981
+ 'div',
982
+ {
983
+ onClick: function onClick(e) {
984
+ return closeAllOverlays();
985
+ },
986
+ style: { cursor: 'pointer', display: 'flex', flexDirection: 'row', justifyContent: 'flex-end', width: '100%', marginBottom: '-15px' } },
987
+ React__default.createElement(
988
+ 'div',
989
+ { style: { width: '25px', height: '25px' } },
990
+ 'X'
991
+ )
992
+ )
993
+ ),
994
+ React__default.createElement(
995
+ Form,
996
+ { validated: isValidated, onSubmit: isGatedFormHandler },
997
+ React__default.createElement(
998
+ Row,
999
+ { className: 'gatedPdfForm' },
1000
+ React__default.createElement(
1001
+ Form.Group,
1002
+ { className: 'mb-3 mt-3', controlId: 'pdfFormFirstName' },
1003
+ React__default.createElement(
1004
+ Form.Label,
1005
+ null,
1006
+ React__default.createElement(
1007
+ 'span',
1008
+ { style: { color: 'red' } },
1009
+ '*'
1010
+ ),
1011
+ 'First Name'
1012
+ ),
1013
+ React__default.createElement(Form.Control, { onChange: function onChange(e) {
1014
+ return handleFormInput(e);
1015
+ }, value: firstName, name: 'firstName', required: true, type: 'text', min: '1', placeholder: 'First Name' }),
1016
+ React__default.createElement(
1017
+ Form.Control.Feedback,
1018
+ { type: 'invalid' },
1019
+ 'Please provide your first name.'
1020
+ )
1021
+ ),
1022
+ React__default.createElement(
1023
+ Form.Group,
1024
+ { required: true, className: 'mb-3', controlId: 'pdfFormLastName' },
1025
+ React__default.createElement(
1026
+ Form.Label,
1027
+ null,
1028
+ React__default.createElement(
1029
+ 'span',
1030
+ { style: { color: 'red' } },
1031
+ '*'
1032
+ ),
1033
+ 'Last Name'
1034
+ ),
1035
+ React__default.createElement(Form.Control, { onChange: function onChange(e) {
1036
+ return handleFormInput(e);
1037
+ }, value: lastName, name: 'lastName', required: true, type: 'text', min: '1', placeholder: 'Last Name' }),
1038
+ React__default.createElement(
1039
+ Form.Control.Feedback,
1040
+ { type: 'invalid' },
1041
+ 'Please provide your last name.'
1042
+ )
1043
+ ),
1044
+ React__default.createElement(
1045
+ Form.Group,
1046
+ { className: 'mb-3', controlId: 'pdfFormEmail' },
1047
+ React__default.createElement(
1048
+ Form.Label,
1049
+ null,
1050
+ React__default.createElement(
1051
+ 'span',
1052
+ { style: { color: 'red' } },
1053
+ '*'
1054
+ ),
1055
+ 'Email'
1056
+ ),
1057
+ React__default.createElement(Form.Control, { onChange: function onChange(e) {
1058
+ return handleFormInput(e);
1059
+ }, value: email, name: 'email', required: true, type: 'email', placeholder: 'Email' }),
1060
+ React__default.createElement(
1061
+ Form.Control.Feedback,
1062
+ { type: 'invalid' },
1063
+ 'Please provide your email.'
1064
+ )
1065
+ ),
1066
+ React__default.createElement(
1067
+ Form.Group,
1068
+ { className: 'mb-3', controlId: 'pdfPrivacyCheck' },
1069
+ React__default.createElement(
1070
+ Form.Check,
1071
+ null,
1072
+ React__default.createElement(Form.Check.Input, { required: true, onChange: function onChange(e) {
1073
+ return handleFormInput(e);
1074
+ }, type: 'checkbox', name: 'checkbox' }),
1075
+ React__default.createElement(
1076
+ Form.Check.Label,
1077
+ null,
1078
+ 'By clicking on \'Submit\', you accept our ',
1079
+ React__default.createElement(
1080
+ 'a',
1081
+ { href: 'https://www.dentalproductsreport.com/privacy', target: '_blank' },
1082
+ 'Privacy Policy'
1083
+ )
1084
+ )
1085
+ )
1086
+ ),
1087
+ React__default.createElement(
1088
+ Button,
1089
+ { disabled: sendingData, className: 'btn btn-primary mb-3', type: 'submit' },
1090
+ 'Submit'
1091
+ ),
1092
+ errorMsg ? React__default.createElement(
1093
+ 'div',
1094
+ { style: { color: 'red' } },
1095
+ errorMsg
1096
+ ) : null
1097
+ )
1098
+ )
1099
+ )
1100
+ )
1101
+ ),
1102
+ React__default.createElement(
1103
+ 'button',
1104
+ {
1105
+ id: 'download_' + key,
1106
+ rel: 'noopener',
1107
+ onClick: function onClick(e) {
1108
+ return isValidated ? window.open(urlForFile(issue.pdf, baseUrl), '_blank') : handleOverLayOpen(e);
1109
+ },
1110
+ ref: DL_PDF,
1111
+ 'data-key': key,
1112
+ 'data-pdfname': issue.name,
1113
+ 'data-pdf': urlForFile(issue.pdf, baseUrl),
1114
+ className: 'btn btn-primary ml-3' },
1115
+ 'Download Issue'
1116
+ )
1117
+ ) : null : issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default.createElement(
716
1118
  'a',
717
1119
  { rel: 'noopener', href: urlForFile(issue.pdf, baseUrl), target: '_blank', className: 'btn btn-primary' },
718
1120
  'Download Issue'
719
- )
1121
+ ) : null
720
1122
  )
721
1123
  )
722
1124
  )
@@ -770,16 +1172,177 @@ var PublicationLanding = function PublicationLanding(props) {
770
1172
  React__default.createElement(
771
1173
  Card.Footer,
772
1174
  null,
773
- issue && issue.articles && issue.articles.length > 0 ? React__default.createElement(
1175
+ issue && issue.articles && issue.articles.length > 1 ? React__default.createElement(
774
1176
  'a',
775
1177
  { href: publication.identifier.current + '/' + issue.identifier.current, className: 'btn btn-primary' },
776
1178
  'View Issue'
777
1179
  ) : null,
778
- issue.pdf && issue.pdf.asset && issue.pdf.asset.url && React__default.createElement(
1180
+ issue && issue.articles && issue.articles.length === 1 ? React__default.createElement(
1181
+ 'a',
1182
+ { href: '/view/' + issue.articles[0].url.current, className: 'btn btn-primary' },
1183
+ 'View Issue'
1184
+ ) : null,
1185
+ issue.isGatedPDF ? issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default.createElement(
1186
+ 'div',
1187
+ { className: 'overLayWrapper', ref: function ref(el) {
1188
+ return overLayRef.current[key] = el;
1189
+ } },
1190
+ React__default.createElement(
1191
+ Overlay,
1192
+ { show: show[key], container: overLayRef.current[key], key: key, target: overlayTarget, placement: 'top', onHide: function onHide() {
1193
+ return closeAllOverlays();
1194
+ } },
1195
+ React__default.createElement(
1196
+ Popover,
1197
+ { id: 'popover-basic-' + key },
1198
+ React__default.createElement(
1199
+ Popover.Content,
1200
+ null,
1201
+ React__default.createElement(
1202
+ Row,
1203
+ null,
1204
+ React__default.createElement(
1205
+ 'div',
1206
+ {
1207
+ onClick: function onClick(e) {
1208
+ return closeAllOverlays();
1209
+ },
1210
+ style: { cursor: 'pointer', display: 'flex', flexDirection: 'row', justifyContent: 'flex-end', width: '100%', marginBottom: '-15px' } },
1211
+ React__default.createElement(
1212
+ 'div',
1213
+ { style: { width: '25px', height: '25px' } },
1214
+ 'X'
1215
+ )
1216
+ )
1217
+ ),
1218
+ React__default.createElement(
1219
+ Form,
1220
+ { validated: isValidated, onSubmit: isGatedFormHandler },
1221
+ React__default.createElement(
1222
+ Row,
1223
+ { className: 'gatedPdfForm' },
1224
+ React__default.createElement(
1225
+ Form.Group,
1226
+ { className: 'mb-3 mt-3', controlId: 'pdfFormFirstName' },
1227
+ React__default.createElement(
1228
+ Form.Label,
1229
+ null,
1230
+ React__default.createElement(
1231
+ 'span',
1232
+ { style: { color: 'red' } },
1233
+ '*'
1234
+ ),
1235
+ 'First Name'
1236
+ ),
1237
+ React__default.createElement(Form.Control, { onChange: function onChange(e) {
1238
+ return handleFormInput(e);
1239
+ }, value: firstName, name: 'firstName', required: true, type: 'text', min: '1', placeholder: 'First Name' }),
1240
+ React__default.createElement(
1241
+ Form.Control.Feedback,
1242
+ { type: 'invalid' },
1243
+ 'Please provide your first name.'
1244
+ )
1245
+ ),
1246
+ React__default.createElement(
1247
+ Form.Group,
1248
+ { required: true, className: 'mb-3', controlId: 'pdfFormLastName' },
1249
+ React__default.createElement(
1250
+ Form.Label,
1251
+ null,
1252
+ React__default.createElement(
1253
+ 'span',
1254
+ { style: { color: 'red' } },
1255
+ '*'
1256
+ ),
1257
+ 'Last Name'
1258
+ ),
1259
+ React__default.createElement(Form.Control, { onChange: function onChange(e) {
1260
+ return handleFormInput(e);
1261
+ }, value: lastName, name: 'lastName', required: true, type: 'text', min: '1', placeholder: 'Last Name' }),
1262
+ React__default.createElement(
1263
+ Form.Control.Feedback,
1264
+ { type: 'invalid' },
1265
+ 'Please provide your last name.'
1266
+ )
1267
+ ),
1268
+ React__default.createElement(
1269
+ Form.Group,
1270
+ { className: 'mb-3', controlId: 'pdfFormEmail' },
1271
+ React__default.createElement(
1272
+ Form.Label,
1273
+ null,
1274
+ React__default.createElement(
1275
+ 'span',
1276
+ { style: { color: 'red' } },
1277
+ '*'
1278
+ ),
1279
+ 'Email'
1280
+ ),
1281
+ React__default.createElement(Form.Control, { onChange: function onChange(e) {
1282
+ return handleFormInput(e);
1283
+ }, value: email, name: 'email', required: true, type: 'email', placeholder: 'Email' }),
1284
+ React__default.createElement(
1285
+ Form.Control.Feedback,
1286
+ { type: 'invalid' },
1287
+ 'Please provide your email.'
1288
+ )
1289
+ ),
1290
+ React__default.createElement(
1291
+ Form.Group,
1292
+ { className: 'mb-3', controlId: 'pdfPrivacyCheck' },
1293
+ React__default.createElement(
1294
+ Form.Check,
1295
+ null,
1296
+ React__default.createElement(Form.Check.Input, { required: true, onChange: function onChange(e) {
1297
+ return handleFormInput(e);
1298
+ }, type: 'checkbox', name: 'checkbox' }),
1299
+ React__default.createElement(
1300
+ Form.Check.Label,
1301
+ null,
1302
+ 'By clicking on \'Submit\', you accept our ',
1303
+ React__default.createElement(
1304
+ 'a',
1305
+ { href: 'https://www.dentalproductsreport.com/privacy', target: '_blank' },
1306
+ 'Privacy Policy'
1307
+ )
1308
+ )
1309
+ )
1310
+ ),
1311
+ React__default.createElement(
1312
+ Button,
1313
+ { disabled: sendingData, className: 'btn btn-primary mb-3', type: 'submit' },
1314
+ 'Submit'
1315
+ ),
1316
+ errorMsg ? React__default.createElement(
1317
+ 'div',
1318
+ { style: { color: 'red' } },
1319
+ errorMsg
1320
+ ) : null
1321
+ )
1322
+ )
1323
+ )
1324
+ )
1325
+ ),
1326
+ React__default.createElement(
1327
+ 'button',
1328
+ {
1329
+ id: 'download_' + key,
1330
+ rel: 'noopener',
1331
+ onClick: function onClick(e) {
1332
+ return isValidated ? window.open(urlForFile(issue.pdf, baseUrl), '_blank') : handleOverLayOpen(e);
1333
+ },
1334
+ ref: DL_PDF,
1335
+ 'data-key': key,
1336
+ 'data-pdfname': issue.name,
1337
+ 'data-pdf': urlForFile(issue.pdf, baseUrl),
1338
+ className: 'btn btn-primary ml-3' },
1339
+ 'Download Issue'
1340
+ )
1341
+ ) : null : issue.pdf && issue.pdf.asset && issue.pdf.asset.url ? React__default.createElement(
779
1342
  'a',
780
1343
  { rel: 'noopener', href: urlForFile(issue.pdf, baseUrl), target: '_blank', className: 'btn btn-primary' },
781
1344
  'Download Issue'
782
- )
1345
+ ) : null
783
1346
  )
784
1347
  )
785
1348
  )
@@ -792,7 +1355,7 @@ var PublicationLanding = function PublicationLanding(props) {
792
1355
  React__default.createElement(
793
1356
  'style',
794
1357
  { jsx: 'true' },
795
- '\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 '
1358
+ '\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 '
796
1359
  )
797
1360
  );
798
1361
  };