@mjhls/mjh-framework 1.0.199 → 1.0.201

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.
package/dist/index.es.js CHANGED
@@ -1,11 +1,11 @@
1
- import React__default, { Component, useState, useEffect, useRef, createContext, createElement } from 'react';
1
+ import React__default, { Component, Suspense, useState, useEffect, useRef, createElement, createContext } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import reactDom from 'react-dom';
4
4
  import Container from 'react-bootstrap/Container';
5
5
  import Row from 'react-bootstrap/Row';
6
6
  import Col from 'react-bootstrap/Col';
7
7
  import Card from 'react-bootstrap/Card';
8
- import 'next/link';
8
+ import Link from 'next/link';
9
9
  import Router, { withRouter, useRouter } from 'next/router';
10
10
  import Media from 'react-bootstrap/Media';
11
11
  import { Media as Media$1, Container as Container$1, Dropdown, Figure, Carousel, Table, Button as Button$1, ProgressBar, Card as Card$1 } from 'react-bootstrap';
@@ -11764,88 +11764,29 @@ function get$1(object, path, defaultValue) {
11764
11764
 
11765
11765
  var get_1 = get$1;
11766
11766
 
11767
- var AD = function AD(_ref) {
11768
- var networkID = _ref.networkID,
11769
- adUnit = _ref.adUnit,
11770
- sizeMapping = _ref.sizeMapping,
11771
- className = _ref.className,
11772
- slotId = _ref.slotId,
11773
- sizes = _ref.sizes,
11774
- minInViewPercent = _ref.minInViewPercent,
11775
- _ref$targeting = _ref.targeting,
11776
- targeting = _ref$targeting === undefined ? {} : _ref$targeting;
11777
-
11778
- var _useState = useState(false),
11779
- _useState2 = slicedToArray(_useState, 2),
11780
- adRendered = _useState2[0],
11781
- setAdRendered = _useState2[1];
11782
-
11783
- var _useState3 = useState(false),
11784
- _useState4 = slicedToArray(_useState3, 2),
11785
- showPlaceholder = _useState4[0],
11786
- setShowPlaceholder = _useState4[1];
11787
-
11788
- var handleVisibilityChange = debounce_1(function (_ref2) {
11789
- var event = _ref2.event;
11790
-
11791
- if (event.inViewPercentage <= 0) {
11792
- setShowPlaceholder(true);
11793
- }
11794
- }, 500);
11767
+ var Dfp = React__default.lazy(function () {
11768
+ return Promise.resolve().then(function () { return Dfp$1; });
11769
+ });
11795
11770
 
11771
+ var AD = function AD(props) {
11772
+ if (typeof window === 'undefined') {
11773
+ return null;
11774
+ }
11796
11775
  return React__default.createElement(
11797
- React__default.Fragment,
11776
+ 'div',
11798
11777
  null,
11799
- !showPlaceholder && React__default.createElement(
11800
- lib_1,
11801
- {
11802
- dfpNetworkId: networkID,
11803
- targetingArguments: targeting,
11804
- sizeMapping: sizeMapping,
11805
- lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 } },
11806
- React__default.createElement(
11807
- 'div',
11808
- { className: className },
11809
- React__default.createElement(lib_2, {
11810
- slotId: slotId,
11811
- sizes: sizes,
11812
- adUnit: adUnit,
11813
- sizeMapping: sizeMapping,
11814
- onSlotRender: function onSlotRender(eventData) {
11815
- setAdRendered(true);
11816
- },
11817
- onSlotVisibilityChanged: handleVisibilityChange
11818
- })
11819
- )
11820
- ),
11821
- adRendered && showPlaceholder && React__default.createElement(
11822
- VisibilitySensor,
11823
- {
11824
- partialVisibility: true,
11825
- onChange: function onChange(isVisible) {
11826
- if (isVisible) {
11827
- setShowPlaceholder(false);
11828
- }
11829
- } },
11830
- React__default.createElement(
11831
- 'div',
11832
- { style: { height: 'auto' } },
11833
- '\xA0'
11834
- )
11778
+ React__default.createElement(
11779
+ Suspense,
11780
+ { fallback: React__default.createElement(
11781
+ 'div',
11782
+ null,
11783
+ 'Loading...'
11784
+ ) },
11785
+ React__default.createElement(Dfp, props)
11835
11786
  )
11836
11787
  );
11837
11788
  };
11838
11789
 
11839
- AD.propTypes = {
11840
- networkID: PropTypes.string.isRequired,
11841
- adUnit: PropTypes.string.isRequired,
11842
- slotId: PropTypes.string,
11843
- className: PropTypes.string,
11844
- sizeMapping: PropTypes.array,
11845
- sizes: PropTypes.array,
11846
- minInViewPercent: PropTypes.number
11847
- };
11848
-
11849
11790
  var GridContent = function (_React$Component) {
11850
11791
  inherits(GridContent, _React$Component);
11851
11792
 
@@ -12095,11 +12036,7 @@ var GridContent = function (_React$Component) {
12095
12036
  React__default.createElement(
12096
12037
  LazyLoad,
12097
12038
  { height: _this2.props.imageHeight },
12098
- React__default.createElement(Card.Img, {
12099
- variant: 'top',
12100
- src: _this2.renderCardImage(row, page),
12101
- alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : ''
12102
- })
12039
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
12103
12040
  )
12104
12041
  )
12105
12042
  ),
@@ -12145,15 +12082,18 @@ var GridContent = function (_React$Component) {
12145
12082
  };
12146
12083
  var posts = [];
12147
12084
  if (showBI) {
12148
- var interval = brandInsight.interval;
12149
12085
  var data = this.state.data;
12150
12086
  posts = data;
12151
- var i = 1;
12152
- for (var pos = interval; pos <= posts.length;) {
12087
+ var interval = posts.some(function (post) {
12088
+ return post._type === 'feature';
12089
+ }) ? brandInsight.interval + 1 : brandInsight.interval;
12090
+ var pos = interval;
12091
+ for (var i = 1; pos <= posts.length; ++i) {
12153
12092
  brandInsight.targeting.pos = 'article' + i;
12154
12093
  posts = insert(posts, pos, brandInsight);
12155
- pos += interval + 1;
12156
- i++;
12094
+ pos += posts.some(function (post) {
12095
+ return post._type === 'feature';
12096
+ }) ? interval : interval + 1;
12157
12097
  }
12158
12098
  } else {
12159
12099
  posts = this.state.data;
@@ -12326,11 +12266,7 @@ var GridContent = function (_React$Component) {
12326
12266
  React__default.createElement(
12327
12267
  LazyLoad,
12328
12268
  { height: _this2.props.imageHeight },
12329
- React__default.createElement(Card.Img, {
12330
- variant: 'top',
12331
- src: _this2.renderCardImage(row, page),
12332
- alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : ''
12333
- })
12269
+ React__default.createElement(Card.Img, { variant: 'top', src: _this2.renderCardImage(row, page), alt: row.thumbnail && row.thumbnail.asset ? row.thumbnail.asset.originalFilename : '' })
12334
12270
  )
12335
12271
  ),
12336
12272
  React__default.createElement(
@@ -12436,7 +12372,7 @@ var GridContent = function (_React$Component) {
12436
12372
  return GridContent;
12437
12373
  }(React__default.Component);
12438
12374
 
12439
- var GridContent$1 = withRouter(GridContent);
12375
+ var GridContent$1 = React__default.memo(withRouter(GridContent));
12440
12376
 
12441
12377
  var DeckQueue = function (_React$Component) {
12442
12378
  inherits(DeckQueue, _React$Component);
@@ -15329,6 +15265,27 @@ exports.SocialIcon = SocialIcon;
15329
15265
  unwrapExports(reactSocialIcons);
15330
15266
  var reactSocialIcons_1 = reactSocialIcons.SocialIcon;
15331
15267
 
15268
+ var year = new Date().getFullYear();
15269
+
15270
+ var renderLink = function renderLink(row) {
15271
+ if (row.blank) {
15272
+ return React__default.createElement(
15273
+ 'a',
15274
+ { href: row.url, target: '_blank', rel: 'noopener noreferrer' },
15275
+ row.title
15276
+ );
15277
+ }
15278
+ return React__default.createElement(
15279
+ Link,
15280
+ { href: row.url },
15281
+ React__default.createElement(
15282
+ 'a',
15283
+ null,
15284
+ row.title
15285
+ )
15286
+ );
15287
+ };
15288
+
15332
15289
  var SideFooter = function SideFooter(props) {
15333
15290
  /*
15334
15291
  useage example: <SideFooter cache={props.cache} logo='/an_mjhls_brand_logo.png' />
@@ -15340,7 +15297,6 @@ var SideFooter = function SideFooter(props) {
15340
15297
 
15341
15298
  var logo = props.logo;
15342
15299
 
15343
- var year = new Date().getFullYear();
15344
15300
  return React__default.createElement(
15345
15301
  'div',
15346
15302
  { className: 'side-footer' },
@@ -15348,33 +15304,24 @@ var SideFooter = function SideFooter(props) {
15348
15304
  'ul',
15349
15305
  null,
15350
15306
  footerLinks && footerLinks.map(function (row, index) {
15351
- if (row.blank) {
15352
- return React__default.createElement(
15353
- 'li',
15354
- { key: index },
15355
- React__default.createElement(
15356
- 'a',
15357
- { href: row.url, target: '_blank' },
15358
- row.title
15359
- )
15360
- );
15361
- } else {
15362
- return React__default.createElement(
15363
- 'li',
15364
- { key: index },
15365
- React__default.createElement(
15366
- 'a',
15367
- { href: row.url },
15368
- row.title
15369
- )
15370
- );
15371
- }
15307
+ return React__default.createElement(
15308
+ 'li',
15309
+ { key: index },
15310
+ renderLink(row)
15311
+ );
15372
15312
  }),
15373
15313
  React__default.createElement(
15374
15314
  'li',
15375
15315
  { style: { marginTop: '10px' } },
15376
15316
  socialLinks && socialLinks.map(function (row, index) {
15377
- return React__default.createElement(reactSocialIcons_1, { target: row.blank ? '_blank' : '_self', key: index, index: index, url: row.url, style: { width: 30, height: 30, marginRight: 5 } });
15317
+ return React__default.createElement(reactSocialIcons_1, {
15318
+ target: row.blank ? '_blank' : '_self',
15319
+ rel: 'noopener noreferrer',
15320
+ key: index,
15321
+ index: index,
15322
+ url: row.url,
15323
+ style: { width: 30, height: 30, marginRight: 5 }
15324
+ });
15378
15325
  })
15379
15326
  )
15380
15327
  ),
@@ -15527,6 +15474,8 @@ var LeftNav = function LeftNav(props) {
15527
15474
  );
15528
15475
  };
15529
15476
 
15477
+ var LeftNav$1 = React__default.memo(LeftNav);
15478
+
15530
15479
  var PageFilter = function PageFilter(props) {
15531
15480
  var getParams = props.getParams,
15532
15481
  filters = props.filters,
@@ -15556,10 +15505,10 @@ var PageFilter = function PageFilter(props) {
15556
15505
  if (filters.length) {
15557
15506
  return React__default.createElement(
15558
15507
  Dropdown,
15559
- null,
15508
+ { alignRight: true },
15560
15509
  React__default.createElement(
15561
15510
  Dropdown.Toggle,
15562
- { id: 'filter-dropdown' },
15511
+ { className: 'filter-dropdown', id: 'filter-dropdown' },
15563
15512
  filter || defaultFilter
15564
15513
  ),
15565
15514
  React__default.createElement(
@@ -15578,7 +15527,7 @@ var PageFilter = function PageFilter(props) {
15578
15527
  React__default.createElement(
15579
15528
  'style',
15580
15529
  { jsx: 'true' },
15581
- '\n .select-dropdown > a {\n color: #8e8c84;\n }\n '
15530
+ '\n .filter-dropdown {\n float: right;\n }\n .select-dropdown > a {\n color: #8e8c84;\n }\n '
15582
15531
  )
15583
15532
  );
15584
15533
  }
@@ -15607,7 +15556,7 @@ var Column3 = function Column3(props) {
15607
15556
  React__default.createElement(
15608
15557
  Col,
15609
15558
  { md: true, className: 'leftCol', style: { width: '200px' } },
15610
- React__default.createElement(LeftNav, { leftItems: leftItems }),
15559
+ React__default.createElement(LeftNav$1, { leftItems: leftItems }),
15611
15560
  website && website.sideFooterContent && website.sideFooterContent.length && website.showFooterOnLeftSide && React__default.createElement(SideFooter, { website: website, cache: website.cache, logo: logo })
15612
15561
  ),
15613
15562
  React__default.createElement(
@@ -15636,7 +15585,7 @@ var Column3 = function Column3(props) {
15636
15585
  React__default.createElement(
15637
15586
  'style',
15638
15587
  { jsx: 'true' },
15639
- '\n .filter-box {\n padding-top: 6px;\n padding-right: 18px;\n }\n @media only screen and (min-width: 768px) {\n .title-wrap {\n display: flex;\n justify-content: space-between;\n }\n }\n @media only screen and (max-width: 767px) {\n .filter-box {\n float: right;\n display: flex;\n justify-content: flex-end;\n }\n .title-wrap {\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n }\n }\n '
15588
+ '\n .filter-box {\n float: right;\n padding-top: 6px;\n padding-right: 18px;\n }\n @media only screen and (min-width: 768px) {\n .title-wrap {\n display: flex;\n justify-content: space-between;\n }\n }\n @media only screen and (max-width: 767px) {\n /* .filter-box {\n float: right;\n display: flex;\n justify-content: flex-end;\n } */\n .title-wrap {\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n }\n }\n '
15640
15589
  ),
15641
15590
  (!main_36 || showRightAd) && React__default.createElement(
15642
15591
  Col,
@@ -15676,12 +15625,12 @@ var Header = function Header(props) {
15676
15625
  ),
15677
15626
  !isLiveSite && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
15678
15627
  React__default.createElement('meta', { name: 'keywords', content: keyword }),
15679
- React__default.createElement('meta', { name: 'description', content: description }),
15680
- React__default.createElement('link', { rel: 'stylesheet', href: '/bootstrap.min.css' }),
15681
- React__default.createElement('link', { rel: 'stylesheet', href: '/magazine.css' })
15628
+ React__default.createElement('meta', { name: 'description', content: description })
15682
15629
  );
15683
15630
  };
15684
15631
 
15632
+ var Header$1 = React__default.memo(Header);
15633
+
15685
15634
  var AccordionPanel = function AccordionPanel(props) {
15686
15635
  var accordionClassName = props.accordionClassName,
15687
15636
  data = props.data;
@@ -15814,6 +15763,8 @@ var SocialShare = function SocialShare(props) {
15814
15763
  );
15815
15764
  };
15816
15765
 
15766
+ var SocialShare$1 = React__default.memo(SocialShare);
15767
+
15817
15768
  // THIS FILE IS AUTO GENERATED
15818
15769
  var MdEmail = function (props) {
15819
15770
  return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 24 24"},"child":[{"tag":"path","attr":{"d":"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"}}]})(props);
@@ -15880,8 +15831,9 @@ var Search = function Search(props) {
15880
15831
  );
15881
15832
  };
15882
15833
 
15834
+ var year$1 = new Date().getFullYear();
15835
+
15883
15836
  var NavFooter = function NavFooter(props) {
15884
- var year = new Date().getFullYear();
15885
15837
  var website = props.website,
15886
15838
  showLogo = props.showLogo;
15887
15839
 
@@ -15898,7 +15850,7 @@ var NavFooter = function NavFooter(props) {
15898
15850
  { key: index },
15899
15851
  React__default.createElement(
15900
15852
  'a',
15901
- { target: '_blank', href: content.url, className: 'nav-link' },
15853
+ { target: '_blank', rel: 'noopener noreferrer', href: content.url, className: 'nav-link' },
15902
15854
  content.title
15903
15855
  )
15904
15856
  ) : React__default.createElement(
@@ -15926,7 +15878,7 @@ var NavFooter = function NavFooter(props) {
15926
15878
  'p',
15927
15879
  { className: 'nav-link' },
15928
15880
  '\xA9 ',
15929
- year,
15881
+ year$1,
15930
15882
  ' MJH Life Sciences and ',
15931
15883
  website.title,
15932
15884
  '. All rights reserved.'
@@ -15934,8 +15886,11 @@ var NavFooter = function NavFooter(props) {
15934
15886
  );
15935
15887
  };
15936
15888
 
15889
+ var NavFooter$1 = React__default.memo(NavFooter);
15890
+
15891
+ var year$2 = new Date().getFullYear();
15892
+
15937
15893
  var SocialNavFooter = function SocialNavFooter(props) {
15938
- var year = new Date().getFullYear();
15939
15894
  var website = props.website,
15940
15895
  showLogo = props.showLogo;
15941
15896
 
@@ -15952,7 +15907,7 @@ var SocialNavFooter = function SocialNavFooter(props) {
15952
15907
  { key: index },
15953
15908
  React__default.createElement(
15954
15909
  'a',
15955
- { target: '_blank', href: content.url, className: 'nav-link' },
15910
+ { target: '_blank', rel: 'noopener noreferrer', href: content.url, className: 'nav-link' },
15956
15911
  content.title
15957
15912
  )
15958
15913
  ) : React__default.createElement(
@@ -15974,7 +15929,14 @@ var SocialNavFooter = function SocialNavFooter(props) {
15974
15929
  'li',
15975
15930
  { style: { marginTop: '10px' }, key: website.footerLinks ? website.footerLinks.length + 1 : 1 },
15976
15931
  website.socialLinks && website.socialLinks.map(function (row, index) {
15977
- return React__default.createElement(reactSocialIcons_1, { target: row.blank ? '_blank' : '_self', key: index, index: index, url: row.url, style: { width: 30, height: 30, marginRight: 5 } });
15932
+ return React__default.createElement(reactSocialIcons_1, {
15933
+ target: row.blank ? '_blank' : '_self',
15934
+ rel: 'noopener noreferrer',
15935
+ key: index,
15936
+ index: index,
15937
+ url: row.url,
15938
+ style: { width: 30, height: 30, marginRight: 5 }
15939
+ });
15978
15940
  })
15979
15941
  ),
15980
15942
  showLogo && React__default.createElement(
@@ -15991,7 +15953,7 @@ var SocialNavFooter = function SocialNavFooter(props) {
15991
15953
  'p',
15992
15954
  { className: 'nav-link' },
15993
15955
  '\xA9 ',
15994
- year,
15956
+ year$2,
15995
15957
  ' MJH Life Sciences and ',
15996
15958
  website.name,
15997
15959
  '. All rights reserved.'
@@ -16280,7 +16242,7 @@ var NavMagazine = function NavMagazine(props) {
16280
16242
  React__default.createElement(
16281
16243
  Nav,
16282
16244
  { className: 'mr-auto' },
16283
- socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website }) : React__default.createElement(NavFooter, { website: website })
16245
+ socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website }) : React__default.createElement(NavFooter$1, { website: website })
16284
16246
  )
16285
16247
  )
16286
16248
  )
@@ -16293,6 +16255,8 @@ var NavMagazine = function NavMagazine(props) {
16293
16255
  );
16294
16256
  };
16295
16257
 
16258
+ var MagazineNav = React__default.memo(NavMagazine);
16259
+
16296
16260
  var NavNative = function NavNative(props) {
16297
16261
  /*
16298
16262
  Example Nav with acceptable props
@@ -16464,7 +16428,7 @@ var NavNative = function NavNative(props) {
16464
16428
  React__default.createElement(
16465
16429
  Nav,
16466
16430
  { className: 'mr-auto' },
16467
- socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website }) : React__default.createElement(NavFooter, { website: website })
16431
+ socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website }) : React__default.createElement(NavFooter$1, { website: website })
16468
16432
  )
16469
16433
  )
16470
16434
  )
@@ -16682,7 +16646,7 @@ var NavDvm = function NavDvm(props) {
16682
16646
  React__default.createElement(
16683
16647
  Nav,
16684
16648
  { className: 'mr-auto' },
16685
- React__default.createElement(NavFooter, { website: website })
16649
+ React__default.createElement(NavFooter$1, { website: website })
16686
16650
  )
16687
16651
  )
16688
16652
  )
@@ -16930,7 +16894,7 @@ var HamMagazine = function HamMagazine(props) {
16930
16894
  if (ddRow.url && ddRow.name) {
16931
16895
  return ddRow.url && ddRow.name ? React__default.createElement(
16932
16896
  'a',
16933
- { key: subIndex, href: ddRow.url, target: ddRow.blank ? '_blank' : '_self', className: 'dropdown-item' },
16897
+ { key: subIndex, href: ddRow.url, target: ddRow.blank ? '_blank' : '_self', rel: 'noopener noreferrer', className: 'dropdown-item' },
16934
16898
  ddRow.name
16935
16899
  ) : null;
16936
16900
  } else return null;
@@ -16940,7 +16904,7 @@ var HamMagazine = function HamMagazine(props) {
16940
16904
  } else {
16941
16905
  return row.url && row.name ? React__default.createElement(
16942
16906
  'a',
16943
- { key: index, href: row.url, target: row.blank ? '_blank' : '_self', className: 'nav-link' },
16907
+ { key: index, href: row.url, target: row.blank ? '_blank' : '_self', rel: 'noopener noreferrer', className: 'nav-link' },
16944
16908
  row.name
16945
16909
  ) : null;
16946
16910
  }
@@ -16969,7 +16933,7 @@ var HamMagazine = function HamMagazine(props) {
16969
16933
  } else {
16970
16934
  return ddRow.url && ddRow.name ? React__default.createElement(
16971
16935
  'a',
16972
- { key: subIndex, href: ddRow.url, target: ddRow.blank ? '_blank' : '_self', className: 'dropdown-item nav-link' },
16936
+ { key: subIndex, href: ddRow.url, target: ddRow.blank ? '_blank' : '_self', rel: 'noopener noreferrer', className: 'dropdown-item nav-link' },
16973
16937
  ddRow.name
16974
16938
  ) : null;
16975
16939
  }
@@ -16978,7 +16942,7 @@ var HamMagazine = function HamMagazine(props) {
16978
16942
  } else {
16979
16943
  return row.url && row.name ? React__default.createElement(
16980
16944
  'a',
16981
- { key: index, href: row.url, target: row.blank ? '_blank' : '_self', className: 'nav-link' },
16945
+ { key: index, href: row.url, target: row.blank ? '_blank' : '_self', rel: 'noopener noreferrer', className: 'nav-link' },
16982
16946
  row.name
16983
16947
  ) : null;
16984
16948
  }
@@ -16992,7 +16956,7 @@ var HamMagazine = function HamMagazine(props) {
16992
16956
  React__default.createElement(
16993
16957
  Nav,
16994
16958
  { className: 'mr-auto' },
16995
- socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website, showLogo: true }) : React__default.createElement(NavFooter, { website: website, showLogo: true })
16959
+ socialFooterNav ? React__default.createElement(SocialNavFooter, { website: website, showLogo: true }) : React__default.createElement(NavFooter$1, { website: website, showLogo: true })
16996
16960
  )
16997
16961
  )
16998
16962
  )
@@ -17050,7 +17014,7 @@ var TemplateNormal = function TemplateNormal(props) {
17050
17014
  case 'normal':
17051
17015
  return React__default.createElement(NavNormal, { logo: website.logo, dataObject: config.navItems });
17052
17016
  case 'magazine':
17053
- return React__default.createElement(NavMagazine, { logo: website.logo, mobileLogo: website.mobileLogo, dataObject: config.navItems, subNav: config.leftItems, website: website });
17017
+ return React__default.createElement(MagazineNav, { logo: website.logo, mobileLogo: website.mobileLogo, dataObject: config.navItems, subNav: config.leftItems, website: website });
17054
17018
  case 'native':
17055
17019
  return React__default.createElement(NavNative, { logo: website.logo, dataObject: config.navItems, subNav: config.leftItems, website: website });
17056
17020
  case 'dvm':
@@ -17112,7 +17076,7 @@ var TemplateNormal = function TemplateNormal(props) {
17112
17076
  return React__default.createElement(
17113
17077
  'section',
17114
17078
  null,
17115
- React__default.createElement(Header, { title: title ? title + ' | ' + website.title : '' + website.title, isLiveSite: config.isLiveSite, keyword: keywords, description: description }),
17079
+ React__default.createElement(Header$1, { title: title ? title + ' | ' + website.title : '' + website.title, isLiveSite: config.isLiveSite, keyword: keywords, description: description }),
17116
17080
  navigation(),
17117
17081
  horizontalAD && horizontalAD.networkID && horizontalAD.adUnit && React__default.createElement(
17118
17082
  Container,
@@ -20898,7 +20862,7 @@ var BlockContent = SanityBlockContent;
20898
20862
  var Sidebar = function Sidebar(_ref) {
20899
20863
  var caption = _ref.caption,
20900
20864
  content = _ref.content,
20901
- serializerArguments = _ref.serializerArguments;
20865
+ getSerializers = _ref.getSerializers;
20902
20866
 
20903
20867
  return React__default.createElement(
20904
20868
  'article',
@@ -20911,7 +20875,7 @@ var Sidebar = function Sidebar(_ref) {
20911
20875
  null,
20912
20876
  caption
20913
20877
  ),
20914
- React__default.createElement(BlockContent, { blocks: content, serializers: getSerializers$1(serializerArguments) })
20878
+ React__default.createElement(BlockContent, { blocks: content, serializers: getSerializers })
20915
20879
  ),
20916
20880
  React__default.createElement(
20917
20881
  'style',
@@ -21159,6 +21123,7 @@ var Media$2 = function Media$$1(_ref) {
21159
21123
  {
21160
21124
  href: uploadDoc.asset.url,
21161
21125
  target: '_blank',
21126
+ rel: 'noopener noreferrer',
21162
21127
  className: 'd-block',
21163
21128
  onClick: function onClick() {
21164
21129
  download(uploadDoc.asset.url, uploadDoc.asset.originalFilename);
@@ -28000,7 +27965,8 @@ var Audio = function Audio(_ref) {
28000
27965
 
28001
27966
  var YouTubeGallery = function YouTubeGallery(_ref) {
28002
27967
  var nodes = _ref.nodes,
28003
- client = _ref.client;
27968
+ client = _ref.client,
27969
+ getSerializers = _ref.getSerializers;
28004
27970
 
28005
27971
  var router = useRouter();
28006
27972
  //state
@@ -28160,7 +28126,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
28160
28126
  { className: 'mb-3' },
28161
28127
  nodes.videos[series - 1].title
28162
28128
  ),
28163
- nodes.videos[series - 1] && React__default.createElement(BlockContent, _extends({ serializers: getSerializers$1(client), blocks: nodes.videos[series - 1].text, imageOptions: { w: 320, h: 240, fit: 'max' } }, client.config()))
28129
+ nodes.videos[series - 1] && React__default.createElement(BlockContent, _extends({ serializers: getSerializers, blocks: nodes.videos[series - 1].text, imageOptions: { w: 320, h: 240, fit: 'max' } }, client.config()))
28164
28130
  ),
28165
28131
  React__default.createElement(
28166
28132
  'style',
@@ -28177,7 +28143,8 @@ var Poll = function Poll(_ref) {
28177
28143
  videoAccountIDs = _ref.videoAccountIDs,
28178
28144
  onVote = _ref.onVote,
28179
28145
  _ref$showVotes = _ref.showVotes,
28180
- showVotes = _ref$showVotes === undefined ? false : _ref$showVotes;
28146
+ showVotes = _ref$showVotes === undefined ? false : _ref$showVotes,
28147
+ getSerializers = _ref.getSerializers;
28181
28148
 
28182
28149
  var _useState = useState(null),
28183
28150
  _useState2 = slicedToArray(_useState, 2),
@@ -28268,7 +28235,7 @@ var Poll = function Poll(_ref) {
28268
28235
  'Total Votes: ',
28269
28236
  choicesTotalCount
28270
28237
  ),
28271
- showAnswer && response && React__default.createElement(BlockContent, { blocks: response, serializers: getSerializers$1(client, pageview, videoAccountIDs) }),
28238
+ showAnswer && response && React__default.createElement(BlockContent, { blocks: response, serializers: getSerializers }),
28272
28239
  React__default.createElement(
28273
28240
  'style',
28274
28241
  { jsx: 'true' },
@@ -28281,7 +28248,7 @@ var numberOfPaginations = main_35 ? 4 : 10;
28281
28248
 
28282
28249
  var Quiz = function Quiz(_ref) {
28283
28250
  var quizzes = _ref.quizzes,
28284
- serializerArguments = _ref.serializerArguments;
28251
+ getSerializers = _ref.getSerializers;
28285
28252
 
28286
28253
  var pageCount = quizzes.length;
28287
28254
 
@@ -28401,7 +28368,7 @@ var Quiz = function Quiz(_ref) {
28401
28368
  return React__default.createElement(
28402
28369
  React__default.Fragment,
28403
28370
  null,
28404
- quizzes[currentPage - 1] && React__default.createElement(BlockContent, { blocks: quizzes[currentPage - 1].question, serializers: getSerializers$1(serializerArguments) }),
28371
+ quizzes[currentPage - 1] && React__default.createElement(BlockContent, { blocks: quizzes[currentPage - 1].question, serializers: getSerializers }),
28405
28372
  !showAnswer && React__default.createElement(
28406
28373
  Button,
28407
28374
  { onClick: function onClick() {
@@ -28417,7 +28384,7 @@ var Quiz = function Quiz(_ref) {
28417
28384
  null,
28418
28385
  'Answer:'
28419
28386
  ),
28420
- React__default.createElement(BlockContent, { blocks: quizzes[currentPage - 1].answer, serializers: getSerializers$1(serializerArguments) })
28387
+ React__default.createElement(BlockContent, { blocks: quizzes[currentPage - 1].answer, serializers: getSerializers })
28421
28388
  ),
28422
28389
  React__default.createElement('br', null),
28423
28390
  pageCount > 1 && React__default.createElement(
@@ -28452,7 +28419,7 @@ var Slideshow$1 = function Slideshow(_ref) {
28452
28419
  var slides = _ref.node.slides,
28453
28420
  client = _ref.client,
28454
28421
  pageview = _ref.pageview,
28455
- serializerArguments = _ref.serializerArguments;
28422
+ getSerializers = _ref.getSerializers;
28456
28423
 
28457
28424
  var router = useRouter();
28458
28425
 
@@ -28504,7 +28471,7 @@ var Slideshow$1 = function Slideshow(_ref) {
28504
28471
  { style: { padding: '0px' } },
28505
28472
  slide.slideshowImage.caption
28506
28473
  ),
28507
- slide.description && React__default.createElement(BlockContent, { blocks: slide.description, serializers: getSerializers$1(serializerArguments) })
28474
+ slide.description && React__default.createElement(BlockContent, { blocks: slide.description, serializers: getSerializers(serializerArguments) })
28508
28475
  )
28509
28476
  );
28510
28477
  }
@@ -28548,7 +28515,18 @@ var convertEntities = function convertEntities(props) {
28548
28515
  return props;
28549
28516
  };
28550
28517
 
28551
- var getSerializers$1 = function getSerializers(client, pageview, videoAccountIDs, onVote, showVotes, drupalLeadSettings) {
28518
+ var getSerializers$1 = function getSerializers() {
28519
+ for (var _len = arguments.length, props = Array(_len), _key = 0; _key < _len; _key++) {
28520
+ props[_key] = arguments[_key];
28521
+ }
28522
+
28523
+ var client = props[0],
28524
+ pageview = props[1],
28525
+ videoAccountIDs = props[2],
28526
+ onVote = props[3],
28527
+ showVotes = props[4],
28528
+ drupalLeadSettings = props[5];
28529
+
28552
28530
  return {
28553
28531
  types: {
28554
28532
  block: function block(props) {
@@ -28564,7 +28542,7 @@ var getSerializers$1 = function getSerializers(client, pageview, videoAccountIDs
28564
28542
  youtubeGallery: function youtubeGallery(_ref2) {
28565
28543
  var node = _ref2.node;
28566
28544
 
28567
- return React__default.createElement(YouTubeGallery, { nodes: node, client: client });
28545
+ return React__default.createElement(YouTubeGallery, { nodes: node, client: client, getSerializers: getSerializers(props) });
28568
28546
  },
28569
28547
  figure: function figure(_ref3) {
28570
28548
  var node = _ref3.node;
@@ -28582,7 +28560,7 @@ var getSerializers$1 = function getSerializers(client, pageview, videoAccountIDs
28582
28560
  var caption = node.caption,
28583
28561
  content = node.content;
28584
28562
 
28585
- return React__default.createElement(Sidebar, { caption: caption, content: content, serializerArguments: (drupalLeadSettings) });
28563
+ return React__default.createElement(Sidebar, { caption: caption, content: content, getSerializers: getSerializers(props) });
28586
28564
  },
28587
28565
  datatable: function datatable(_ref6) {
28588
28566
  var node = _ref6.node;
@@ -28613,13 +28591,13 @@ var getSerializers$1 = function getSerializers(client, pageview, videoAccountIDs
28613
28591
  poll: function poll(_ref11) {
28614
28592
  var node = _ref11.node;
28615
28593
 
28616
- return React__default.createElement(Poll, { node: node, client: client, pageview: pageview, videoAccountIDs: videoAccountIDs, onVote: onVote, showVotes: showVotes });
28594
+ return React__default.createElement(Poll, { node: node, client: client, pageview: pageview, videoAccountIDs: videoAccountIDs, onVote: onVote, showVotes: showVotes, getSerializers: getSerializers(props) });
28617
28595
  },
28618
28596
  quiz: function quiz(_ref12) {
28619
28597
  var node = _ref12.node;
28620
28598
  var quizzes = node.quizzes;
28621
28599
 
28622
- return React__default.createElement(Quiz, { quizzes: quizzes, serializerArguments: (drupalLeadSettings) });
28600
+ return React__default.createElement(Quiz, { quizzes: quizzes, getSerializers: getSerializers(props) });
28623
28601
  },
28624
28602
  leads: function leads(_ref13) {
28625
28603
  var node = _ref13.node;
@@ -28631,7 +28609,7 @@ var getSerializers$1 = function getSerializers(client, pageview, videoAccountIDs
28631
28609
  slideshows: function slideshows(_ref14) {
28632
28610
  var node = _ref14.node;
28633
28611
 
28634
- return React__default.createElement(Slideshow$1, { node: node, client: client, pageview: pageview, serializerArguments: (drupalLeadSettings) });
28612
+ return React__default.createElement(Slideshow$1, { node: node, client: client, pageview: pageview, getSerializers: getSerializers(props) });
28635
28613
  },
28636
28614
  nativeAd: function nativeAd(_ref15) {
28637
28615
  var node = _ref15.node;
@@ -28870,6 +28848,8 @@ var Breadcrumbs = function Breadcrumbs(_ref) {
28870
28848
  );
28871
28849
  };
28872
28850
 
28851
+ var Breadcrumbs$1 = React__default.memo(Breadcrumbs);
28852
+
28873
28853
  var js_cookie = createCommonjsModule(function (module, exports) {
28874
28854
  (function (factory) {
28875
28855
  var registeredInModuleLoader;
@@ -29283,7 +29263,7 @@ var FaRegWindowClose = function (props) {
29283
29263
  };
29284
29264
  FaRegWindowClose.displayName = "FaRegWindowClose";
29285
29265
 
29286
- /*****UStream Component*****/
29266
+ // UStream Component
29287
29267
 
29288
29268
  var Ustream = function Ustream(_ref) {
29289
29269
  var _ref$width = _ref.width,
@@ -29326,7 +29306,7 @@ var Ustream = function Ustream(_ref) {
29326
29306
  container.style.padding = '0 1rem';
29327
29307
  container.classList.add('closed');
29328
29308
  setWidth('100%');
29329
- //aspect ratio
29309
+ // aspect ratio
29330
29310
  var newHeight = 9 / 16 * ustreamContainer.current.clientWidth;
29331
29311
  console.log(newHeight);
29332
29312
  console.log(ustreamContainer);
@@ -29371,7 +29351,8 @@ var Ustream = function Ustream(_ref) {
29371
29351
  webkitallowfullscreen: 'true',
29372
29352
  allowFullScreen: true,
29373
29353
  frameBorder: 'no',
29374
- style: { maxWidth: '100%', height: currentHeight, width: currentWidth } })
29354
+ style: { maxWidth: '100%', height: currentHeight, width: currentWidth }
29355
+ })
29375
29356
  ),
29376
29357
  React__default.createElement(
29377
29358
  'style',
@@ -29381,6 +29362,8 @@ var Ustream = function Ustream(_ref) {
29381
29362
  );
29382
29363
  };
29383
29364
 
29365
+ var Ustream$1 = React__default.memo(Ustream);
29366
+
29384
29367
  var fbsHero = function fbsHero(props) {
29385
29368
  var topArticle = props.dataRecord[0];
29386
29369
  var subArticles = props.dataRecord.slice(1, props.dataRecord.length);
@@ -30092,5 +30075,90 @@ var ConferenceArticleCard = function ConferenceArticleCard(props) {
30092
30075
  );
30093
30076
  };
30094
30077
 
30095
- export { ContentCard as DeckContent, GridContent$1 as GridContent, Queue as DeckQueue, ThumbnailCard, TaxonomyCard, GroupDeck, YoutubeGroup, QueueDeckExpanded, VideoSeriesListing$1 as VideoSeriesListing, MasterDeck$1 as MasterDeck, PublicationDeck, IssueDeck, IssueContentDeck, Column1, Column2, Column3, Header, LeftNav, AccordionPanel, SocialShare, PageFilter, NavMagazine, NavNative, NavNormal, NavDvm, HamMagazine, TemplateNormal, AD, AD300x250, AD300x250x600, AD728x90, ADFooter, getSerializers$1 as getSerializers, Search, Feature, Breadcrumbs, SetCookie, Hero, AlphabeticList, PdfDownload, RelatedTopicsDropdown, Ustream, SideFooter, fbsHero as ForbesHero, HorizontalHero, OncliveHero, OncliveLargeHero, VerticalHero, YahooHero, RelatedContent, ConferenceArticleCard };
30096
- //# sourceMappingURL=index.es.js.map
30078
+ var AD$1 = function AD(_ref) {
30079
+ var networkID = _ref.networkID,
30080
+ adUnit = _ref.adUnit,
30081
+ sizeMapping = _ref.sizeMapping,
30082
+ className = _ref.className,
30083
+ slotId = _ref.slotId,
30084
+ sizes = _ref.sizes,
30085
+ minInViewPercent = _ref.minInViewPercent,
30086
+ _ref$targeting = _ref.targeting,
30087
+ targeting = _ref$targeting === undefined ? {} : _ref$targeting;
30088
+
30089
+ var _useState = useState(false),
30090
+ _useState2 = slicedToArray(_useState, 2),
30091
+ adRendered = _useState2[0],
30092
+ setAdRendered = _useState2[1];
30093
+
30094
+ var _useState3 = useState(false),
30095
+ _useState4 = slicedToArray(_useState3, 2),
30096
+ showPlaceholder = _useState4[0],
30097
+ setShowPlaceholder = _useState4[1];
30098
+
30099
+ var handleVisibilityChange = debounce_1(function (_ref2) {
30100
+ var event = _ref2.event;
30101
+
30102
+ if (event.inViewPercentage <= 0) {
30103
+ setShowPlaceholder(true);
30104
+ }
30105
+ }, 500);
30106
+
30107
+ return React__default.createElement(
30108
+ React__default.Fragment,
30109
+ null,
30110
+ !showPlaceholder && React__default.createElement(
30111
+ lib_1,
30112
+ {
30113
+ dfpNetworkId: networkID,
30114
+ targetingArguments: targeting,
30115
+ sizeMapping: sizeMapping,
30116
+ lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 } },
30117
+ React__default.createElement(
30118
+ 'div',
30119
+ { className: className },
30120
+ React__default.createElement(lib_2, {
30121
+ slotId: slotId,
30122
+ sizes: sizes,
30123
+ adUnit: adUnit,
30124
+ sizeMapping: sizeMapping,
30125
+ onSlotRender: function onSlotRender(eventData) {
30126
+ setAdRendered(true);
30127
+ },
30128
+ onSlotVisibilityChanged: handleVisibilityChange
30129
+ })
30130
+ )
30131
+ ),
30132
+ adRendered && showPlaceholder && React__default.createElement(
30133
+ VisibilitySensor,
30134
+ {
30135
+ partialVisibility: true,
30136
+ onChange: function onChange(isVisible) {
30137
+ if (isVisible) {
30138
+ setShowPlaceholder(false);
30139
+ }
30140
+ } },
30141
+ React__default.createElement(
30142
+ 'div',
30143
+ { style: { height: 'auto' } },
30144
+ '\xA0'
30145
+ )
30146
+ )
30147
+ );
30148
+ };
30149
+
30150
+ AD$1.propTypes = {
30151
+ networkID: PropTypes.string.isRequired,
30152
+ adUnit: PropTypes.string.isRequired,
30153
+ slotId: PropTypes.string,
30154
+ className: PropTypes.string,
30155
+ sizeMapping: PropTypes.array,
30156
+ sizes: PropTypes.array,
30157
+ minInViewPercent: PropTypes.number
30158
+ };
30159
+
30160
+ var Dfp$1 = /*#__PURE__*/Object.freeze({
30161
+ default: AD$1
30162
+ });
30163
+
30164
+ export { ContentCard as DeckContent, GridContent$1 as GridContent, Queue as DeckQueue, ThumbnailCard, TaxonomyCard, GroupDeck, YoutubeGroup, QueueDeckExpanded, VideoSeriesListing$1 as VideoSeriesListing, MasterDeck$1 as MasterDeck, PublicationDeck, IssueDeck, IssueContentDeck, Column1, Column2, Column3, Header$1 as Header, LeftNav$1 as LeftNav, AccordionPanel, SocialShare$1 as SocialShare, PageFilter, MagazineNav as NavMagazine, NavNative, NavNormal, NavDvm, HamMagazine, TemplateNormal, AD, AD300x250, AD300x250x600, AD728x90, ADFooter, getSerializers$1 as getSerializers, Search, Feature, Breadcrumbs$1 as Breadcrumbs, SetCookie, Hero, AlphabeticList, PdfDownload, RelatedTopicsDropdown, Ustream$1 as Ustream, SideFooter, fbsHero as ForbesHero, HorizontalHero, OncliveHero, OncliveLargeHero, VerticalHero, YahooHero, RelatedContent, ConferenceArticleCard };