@mjhls/mjh-framework 1.0.335 → 1.0.337

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/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- # mjh-framework v. 1.0.335
2
+ # mjh-framework v. 1.0.337
3
3
 
4
4
  > Foundation Framework
5
5
 
@@ -44,7 +44,6 @@ var GroupDeck = function GroupDeck(props) {
44
44
  }, []);
45
45
 
46
46
  var setThumbSize = function setThumbSize() {
47
-
48
47
  var thumbSize = void 0;
49
48
  if (window.innerWidth > 1399) {
50
49
  thumbSize = Math.floor(viewableWindow.current.clientWidth / 2 - 48);
@@ -109,8 +108,8 @@ var GroupDeck = function GroupDeck(props) {
109
108
  });
110
109
  }
111
110
 
112
- function handleClick(url, vidIndex) {
113
- props.setState(url, vidIndex);
111
+ function handleClick(url, thumbnail, vidIndex) {
112
+ props.setState(url, thumbnail, vidIndex);
114
113
  }
115
114
 
116
115
  var _props$current = props.current,
@@ -144,7 +143,7 @@ var GroupDeck = function GroupDeck(props) {
144
143
  // If there is a current prop, means this will overlay a currently playing video
145
144
  if (current !== '') {
146
145
  var url = video.url;
147
- var thumbnail = 'https://img.youtube.com/vi/' + smoothscroll.getYoutubeId(video.url) + '/hqdefault.jpg';
146
+ var thumbnail = video.thumbnail || 'https://img.youtube.com/vi/' + smoothscroll.getYoutubeId(video.url) + '/hqdefault.jpg';
148
147
 
149
148
  return React__default.createElement(
150
149
  'div',
@@ -157,7 +156,7 @@ var GroupDeck = function GroupDeck(props) {
157
156
  React__default.createElement(
158
157
  'a',
159
158
  { onClick: function onClick() {
160
- return handleClick(url, index + 1);
159
+ return handleClick(url, thumbnail, index + 1);
161
160
  } },
162
161
  React__default.createElement(
163
162
  'div',
@@ -191,7 +190,7 @@ var GroupDeck = function GroupDeck(props) {
191
190
  } else {
192
191
  // slider by itself
193
192
  var _url = '' + video.link;
194
- var _thumbnail = 'https://img.youtube.com/vi/' + smoothscroll.getYoutubeId(video.url) + '/hqdefault.jpg';
193
+ var _thumbnail = video.thumbnail || 'https://img.youtube.com/vi/' + smoothscroll.getYoutubeId(video.url) + '/hqdefault.jpg';
195
194
  return React__default.createElement(
196
195
  'div',
197
196
  { ref: tile, key: index, className: 'tile', style: { width: tileSize + 'px' } },
@@ -246,7 +245,7 @@ var GroupDeck = function GroupDeck(props) {
246
245
  React__default.createElement(
247
246
  'style',
248
247
  { jsx: 'true' },
249
- '\n #vid-slider * {\n box-sizing: border-box;\n -ms-overflow-style: none;\n }\n #vid-slider::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider {\n position: relative;\n -ms-overflow-style: none;\n padding: 0 1.5rem;\n margin-bottom: 2rem;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 0.5rem;\n left: 1rem;\n color: white;\n background: rgba(0, 0, 0, 0.75);\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider,\n #vidHolder {\n max-width: 805px;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow-x: scroll;\n width: 100%;\n -ms-overflow-style: none;\n overflow-y: hidden !important;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 0.9rem;\n font-weight: bold;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 25px 0 55px !important;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n height: 135px;\n \n margin: 0 12px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile:first-child {\n margin-left: 15px;\n }\n #vid-slider .tile__img {\n height: 135px;\n \n -o-object-fit: cover;\n object-fit: cover;\n object-position: center;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\';\n background: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 64 64\' width=\'64\' height=\'64\' fill=\'white\'><path d=\'M26 46 L46 32 L26 18 Z\'/></svg>")\n no-repeat center center;\n left: 0;\n width: 100%;\n height: 3rem;\n font-size: 30px;\n margin-right: 12px;\n margin-top: -24px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev {\n left: -0.5rem;\n padding: 1rem;\n }\n #vid-slider .tile__slider-next {\n right: -0.5rem;\n padding: 1rem;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding-right: 0 1.2rem;\n }\n\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n @media screen and (max-width: 1399px) {\n #vid-slider,\n #vidHolder {\n max-width: 620px;\n }\n }\n @media screen and (max-width: 1200px) {\n #vid-slider,\n #vidHolder {\n max-width: 580px;\n }\n }\n @media screen and (max-width: 967px) {\n #vid-slider {\n max-width: 100%;\n }\n \n\n #vid-slider .tile__img {\n height: 85px;\n object-fit: cover;\n }\n }\n\n @media screen and (max-width: 768px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 110px;\n object-fit: cover;\n }\n #vid-slider .row__inner{\n margin: 30px 0 60px;\n }\n }\n @media screen and (max-width: 568px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 180px;\n object-fit: cover;\n }\n #vid-slider .row__inner{\n margin: 30px 0 60px;\n }\n }\n '
248
+ '\n #vid-slider * {\n box-sizing: border-box;\n -ms-overflow-style: none;\n }\n #vid-slider::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider {\n position: relative;\n -ms-overflow-style: none;\n padding: 0 1.5rem;\n margin-bottom: 2rem;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 0.5rem;\n left: 1rem;\n color: white;\n background: rgba(0, 0, 0, 0.75);\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider,\n #vidHolder {\n max-width: 805px;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow-x: scroll;\n width: 100%;\n -ms-overflow-style: none;\n overflow-y: hidden !important;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 0.9rem;\n font-weight: bold;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 25px 0 55px !important;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n height: 135px;\n\n margin: 0 12px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile:first-child {\n margin-left: 15px;\n }\n #vid-slider .tile__img {\n height: 135px;\n\n -o-object-fit: cover;\n object-fit: cover;\n object-position: center;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\';\n background: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 64 64\' width=\'64\' height=\'64\' fill=\'white\'><path d=\'M26 46 L46 32 L26 18 Z\'/></svg>")\n no-repeat center center;\n left: 0;\n width: 100%;\n height: 3rem;\n font-size: 30px;\n margin-right: 12px;\n margin-top: -24px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev {\n left: -0.5rem;\n padding: 1rem;\n }\n #vid-slider .tile__slider-next {\n right: -0.5rem;\n padding: 1rem;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding-right: 0 1.2rem;\n }\n\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n @media screen and (max-width: 1399px) {\n #vid-slider,\n #vidHolder {\n max-width: 620px;\n }\n }\n @media screen and (max-width: 1200px) {\n #vid-slider,\n #vidHolder {\n max-width: 580px;\n }\n }\n @media screen and (max-width: 967px) {\n #vid-slider {\n max-width: 100%;\n }\n\n #vid-slider .tile__img {\n height: 85px;\n object-fit: cover;\n }\n }\n\n @media screen and (max-width: 768px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 110px;\n object-fit: cover;\n }\n #vid-slider .row__inner {\n margin: 30px 0 60px;\n }\n }\n @media screen and (max-width: 568px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 180px;\n object-fit: cover;\n }\n #vid-slider .row__inner {\n margin: 30px 0 60px;\n }\n }\n '
250
249
  )
251
250
  );
252
251
  };
@@ -434,14 +434,14 @@ var Header = function Header(props) {
434
434
  return React__default.createElement(
435
435
  Head,
436
436
  null,
437
- React__default.createElement(
437
+ title && React__default.createElement(
438
438
  'title',
439
439
  null,
440
440
  title
441
441
  ),
442
- !isLiveSite && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
443
- React__default.createElement('meta', { name: 'keywords', content: keyword }),
444
- React__default.createElement('meta', { name: 'description', content: description })
442
+ keyword && React__default.createElement('meta', { name: 'keywords', content: keyword }),
443
+ description && React__default.createElement('meta', { name: 'description', content: description }),
444
+ !isLiveSite && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' })
445
445
  );
446
446
  };
447
447
 
@@ -261,6 +261,11 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
261
261
  showAuthor && article.authorMapping && article.authorMapping.length > 0 && article.authorMapping.map(function (authorDetail, index) {
262
262
  return renderAuthor(authorDetail, index, article.authorMapping.length);
263
263
  }),
264
+ article.publicationSource && React__default.createElement(
265
+ 'p',
266
+ { className: 'p-0 mb-1' },
267
+ article.publicationSource
268
+ ),
264
269
  showCategory && article.contentCategory && React__default.createElement(
265
270
  'p',
266
271
  {
@@ -336,6 +341,11 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
336
341
  showAuthor && article.authorMapping && article.authorMapping.length > 0 && article.authorMapping.map(function (authorDetail, index) {
337
342
  return renderAuthor(authorDetail, index, article.authorMapping.length);
338
343
  }),
344
+ article.publicationSource && React__default.createElement(
345
+ 'p',
346
+ { className: 'p-0 mb-1' },
347
+ article.publicationSource
348
+ ),
339
349
  showCategory && article.contentCategory && React__default.createElement(
340
350
  'p',
341
351
  {
@@ -412,6 +422,11 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
412
422
  showAuthor && article.authorMapping && article.authorMapping.length > 0 && article.authorMapping.map(function (authorDetail, index) {
413
423
  return renderAuthor(authorDetail, index, article.authorMapping.length);
414
424
  }),
425
+ article.publicationSource && React__default.createElement(
426
+ 'p',
427
+ { className: 'p-0 mb-1' },
428
+ article.publicationSource
429
+ ),
415
430
  showCategory && article.contentCategory && React__default.createElement(
416
431
  'p',
417
432
  {
@@ -19,7 +19,7 @@ require('./react-social-icons-cd0d9d3b.js');
19
19
  require('react-bootstrap');
20
20
  require('./index.esm-340d3792.js');
21
21
  require('react-bootstrap/Button');
22
- var TemplateNormal = require('./Normal-c85aee96.js');
22
+ var TemplateNormal = require('./Normal-b3782788.js');
23
23
  require('react-bootstrap/ListGroup');
24
24
  require('next/head');
25
25
  require('react-bootstrap/Nav');
package/dist/cjs/index.js CHANGED
@@ -53,7 +53,7 @@ var IssueDeck = require('./IssueDeck.js');
53
53
  require('react-bootstrap/Badge');
54
54
  var IssueContentDeck = require('./IssueContentDeck.js');
55
55
  var Spinner = _interopDefault(require('react-bootstrap/Spinner'));
56
- var TemplateNormal = require('./Normal-c85aee96.js');
56
+ var TemplateNormal = require('./Normal-b3782788.js');
57
57
  require('react-bootstrap/ListGroup');
58
58
  var Head = _interopDefault(require('next/head'));
59
59
  var Accordion = _interopDefault(require('react-bootstrap/Accordion'));
@@ -2774,24 +2774,26 @@ var SocialShare = function SocialShare(props) {
2774
2774
  shareImage = props.shareImage,
2775
2775
  size = props.size,
2776
2776
  siteName = props.siteName,
2777
- twitterSiteName = props.twitterSiteName;
2777
+ twitterSiteName = props.twitterSiteName,
2778
+ _props$disableMeta = props.disableMeta,
2779
+ disableMeta = _props$disableMeta === undefined ? false : _props$disableMeta;
2778
2780
 
2779
2781
  return React__default.createElement(
2780
2782
  React__default.Fragment,
2781
2783
  null,
2782
- React__default.createElement(
2784
+ !disableMeta && React__default.createElement(
2783
2785
  Head,
2784
2786
  null,
2785
- React__default.createElement('meta', { property: 'og:url', content: shareUrl }),
2786
- React__default.createElement('meta', { property: 'og:title', content: shareTitle }),
2787
- React__default.createElement('meta', { property: 'og:image', content: shareImage }),
2788
- React__default.createElement('meta', { property: 'og:site_name', content: siteName }),
2789
- React__default.createElement('meta', { property: 'og:description', content: shareSummary }),
2790
- React__default.createElement('meta', { name: 'twitter:card', content: 'summary' }),
2791
- React__default.createElement('meta', { name: 'twitter:title', content: shareTitle }),
2792
- React__default.createElement('meta', { name: 'twitter:image', content: shareImage }),
2793
- React__default.createElement('meta', { name: 'twitter:site', content: twitterSiteName }),
2794
- React__default.createElement('meta', { name: 'twitter:description', content: shareSummary })
2787
+ React__default.createElement('meta', { property: 'og:url', content: shareUrl, key: 'og:url' }),
2788
+ React__default.createElement('meta', { property: 'og:title', content: shareTitle, key: 'og:title' }),
2789
+ React__default.createElement('meta', { property: 'og:image', content: shareImage, key: 'og:image' }),
2790
+ React__default.createElement('meta', { property: 'og:site_name', content: siteName, key: 'og:site_name' }),
2791
+ React__default.createElement('meta', { property: 'og:description', content: shareSummary, key: 'og:description' }),
2792
+ React__default.createElement('meta', { name: 'twitter:card', content: 'summary', key: 'og:card' }),
2793
+ React__default.createElement('meta', { name: 'twitter:title', content: shareTitle, key: 'og:title' }),
2794
+ React__default.createElement('meta', { name: 'twitter:image', content: shareImage, key: 'og:image' }),
2795
+ React__default.createElement('meta', { name: 'twitter:site', content: twitterSiteName, key: 'og:site' }),
2796
+ React__default.createElement('meta', { name: 'twitter:description', content: shareSummary, key: 'og:description' })
2795
2797
  ),
2796
2798
  React__default.createElement(
2797
2799
  reactShare.FacebookShareButton,
@@ -12884,6 +12886,7 @@ var Audio = function Audio(_ref) {
12884
12886
 
12885
12887
  var VideoMp4 = function VideoMp4(_ref) {
12886
12888
  var url = _ref.url,
12889
+ thumbnail = _ref.thumbnail,
12887
12890
  vidLoaded = _ref.vidLoaded;
12888
12891
 
12889
12892
  var _useState = React.useState(false),
@@ -12971,6 +12974,7 @@ var VideoMp4 = function VideoMp4(_ref) {
12971
12974
  vidLoaded && React__default.createElement(
12972
12975
  'video',
12973
12976
  {
12977
+ poster: thumbnail || '',
12974
12978
  style: { width: '100%' },
12975
12979
  controls: true,
12976
12980
  onCanPlay: function onCanPlay(e) {
@@ -13027,25 +13031,30 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13027
13031
  vidUrl = _useState8[0],
13028
13032
  setVidUrl = _useState8[1];
13029
13033
 
13030
- var _useState9 = React.useState(false),
13034
+ var _useState9 = React.useState(''),
13031
13035
  _useState10 = slicedToArray._slicedToArray(_useState9, 2),
13032
- vidLoaded = _useState10[0],
13033
- setVidLoaded = _useState10[1];
13036
+ vidThumbnail = _useState10[0],
13037
+ setVidThumbnail = _useState10[1];
13034
13038
 
13035
- var _useState11 = React.useState('youtube'),
13039
+ var _useState11 = React.useState(false),
13036
13040
  _useState12 = slicedToArray._slicedToArray(_useState11, 2),
13037
- vidType = _useState12[0],
13038
- setVidType = _useState12[1];
13041
+ vidLoaded = _useState12[0],
13042
+ setVidLoaded = _useState12[1];
13039
13043
 
13040
- var _useState13 = React.useState(''),
13044
+ var _useState13 = React.useState('youtube'),
13041
13045
  _useState14 = slicedToArray._slicedToArray(_useState13, 2),
13042
- series = _useState14[0],
13043
- setSeries = _useState14[1];
13046
+ vidType = _useState14[0],
13047
+ setVidType = _useState14[1];
13044
13048
 
13045
- var _useState15 = React.useState([]),
13049
+ var _useState15 = React.useState(''),
13046
13050
  _useState16 = slicedToArray._slicedToArray(_useState15, 2),
13047
- seriesData = _useState16[0],
13048
- setData = _useState16[1];
13051
+ series = _useState16[0],
13052
+ setSeries = _useState16[1];
13053
+
13054
+ var _useState17 = React.useState([]),
13055
+ _useState18 = slicedToArray._slicedToArray(_useState17, 2),
13056
+ seriesData = _useState18[0],
13057
+ setData = _useState18[1];
13049
13058
  //variables
13050
13059
 
13051
13060
 
@@ -13059,10 +13068,10 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13059
13068
 
13060
13069
  nodes.videos.forEach(function (vid) {
13061
13070
  if (vid.type == 'mp4') {
13062
- data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset), url: vid.url });
13071
+ data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset).url(), url: vid.url });
13063
13072
  } else {
13064
13073
  if (vid.thumbnail && vid.thumbnail.asset) {
13065
- data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset), url: vid.url });
13074
+ data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset).url(), url: vid.url });
13066
13075
  } else {
13067
13076
  data.push({ title: vid.title, thumbnail: 'https://img.youtube.com/vi/' + smoothscroll.getYoutubeId(vid.url) + '/hqdefault.jpg', url: vid.url });
13068
13077
  }
@@ -13073,6 +13082,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13073
13082
  if (data.length < seriesVid) {
13074
13083
  setSeries(1);
13075
13084
  setVidUrl(nodes.videos[0].url);
13085
+ setVidThumbnail(nodes.videos[0].thumbnail && nodes.videos[0].thumbnail.asset ? urlFor(nodes.videos[0].thumbnail.asset).url() : '');
13076
13086
  if (nodes.videos[0].type) {
13077
13087
  setVidType(nodes.videos[0].type);
13078
13088
  }
@@ -13083,7 +13093,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13083
13093
  } else {
13084
13094
  setSeries(seriesVid);
13085
13095
  setVidUrl(nodes.videos[seriesVid - 1].url);
13086
-
13096
+ setVidThumbnail(nodes.videos[seriesVid - 1].thumbnail && nodes.videos[seriesVid - 1].thumbnail.asset ? urlFor(nodes.videos[seriesVid - 1].thumbnail.asset).url() : '');
13087
13097
  if (nodes.videos[0].type) {
13088
13098
  setVidType(nodes.videos[seriesVid - 1].type);
13089
13099
  }
@@ -13109,10 +13119,11 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13109
13119
  }
13110
13120
 
13111
13121
  // This function is passed to the GroupDeck to change the youtube iframe src
13112
- function setState(url, vidIndex) {
13122
+ function setState(url, thumbnail, vidIndex) {
13113
13123
  setVidLoaded(false);
13114
13124
  setTimeout(function () {
13115
13125
  setVidUrl(url);
13126
+ setVidThumbnail(thumbnail);
13116
13127
  toggleSeries();
13117
13128
  debounce.lib_3.refresh();
13118
13129
  var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
@@ -13233,7 +13244,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13233
13244
  { className: 'video-block', style: { position: 'relative', overflow: 'hidden' } },
13234
13245
  vidUrl && vidType == 'youtube' ? React__default.createElement(YouTube, { videoId: smoothscroll.getYoutubeId(vidUrl), opts: opts, onReady: handleOnReady, onPlay: handleOnPlay, onPause: handleOnPause, onEnd: function onEnd(e) {
13235
13246
  return handleOnEnd(e);
13236
- } }) : React__default.createElement(VideoMp4, { url: vidUrl, vidLoaded: vidLoaded }),
13247
+ } }) : React__default.createElement(VideoMp4, { url: vidUrl, thumbnail: vidThumbnail, vidLoaded: vidLoaded }),
13237
13248
  React__default.createElement(
13238
13249
  'div',
13239
13250
  {
@@ -16474,12 +16485,21 @@ var Article = function Article(props) {
16474
16485
  shareBaseUrl = shareOptions.shareBaseUrl,
16475
16486
  shareSiteTitle = shareOptions.shareSiteTitle;
16476
16487
 
16477
- var shareUrl = shareBaseUrl + props.url;
16488
+ var shareUrl = shareBaseUrl + props.article.url.current;
16478
16489
  var shareTitle = title;
16479
16490
  var shareSummary = summary;
16480
16491
  var shareImage = thumbnail && thumbnail.asset ? urlFor(thumbnail.asset).url() : shareImageDefault;
16481
16492
  var siteName = props.website.title;
16482
16493
 
16494
+ var meta = {
16495
+ shareTitle: shareTitle,
16496
+ shareSiteName: props.cache.siteSettingCache.name,
16497
+ shareSummary: shareSummary,
16498
+ shareUrl: shareUrl,
16499
+ shareImage: shareImage,
16500
+ shareVia: props.Settings.title
16501
+ };
16502
+
16483
16503
  return React__default.createElement(
16484
16504
  React__default.Fragment,
16485
16505
  null,
@@ -16489,7 +16509,7 @@ var Article = function Article(props) {
16489
16509
  offSetTop: 45,
16490
16510
  onChange: function onChange(visible) {
16491
16511
  if (visible !== false) {
16492
- changeUrl(url, visible);
16512
+ changeUrl(url, visible, meta);
16493
16513
  }
16494
16514
  } },
16495
16515
  React__default.createElement(
@@ -16500,20 +16520,21 @@ var Article = function Article(props) {
16500
16520
  null,
16501
16521
  React__default.createElement(
16502
16522
  'title',
16503
- null,
16523
+ { key: 'title' },
16504
16524
  shareTitle + ' | ' + props.cache.siteSettingCache.name
16505
16525
  ),
16526
+ React__default.createElement('meta', { name: 'description', key: 'description', content: shareSummary }),
16506
16527
  passwordLock && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
16507
- React__default.createElement('meta', { property: 'og:url', content: shareUrl }),
16508
- React__default.createElement('meta', { property: 'og:title', content: shareTitle }),
16509
- React__default.createElement('meta', { property: 'og:image', content: shareImage }),
16510
- React__default.createElement('meta', { property: 'og:site_name', content: props.Settings.title }),
16511
- React__default.createElement('meta', { property: 'og:description', content: shareSummary }),
16512
- React__default.createElement('meta', { name: 'twitter:card', content: 'summary' }),
16513
- React__default.createElement('meta', { name: 'twitter:title', content: shareTitle }),
16514
- React__default.createElement('meta', { name: 'twitter:image', content: shareImage }),
16515
- React__default.createElement('meta', { name: 'twitter:site', content: '@' + shareSiteTitle }),
16516
- React__default.createElement('meta', { name: 'twitter:description', content: shareSummary })
16528
+ React__default.createElement('meta', { property: 'og:url', content: shareUrl, key: 'og:url' }),
16529
+ React__default.createElement('meta', { property: 'og:title', content: shareTitle, key: 'og:title' }),
16530
+ React__default.createElement('meta', { property: 'og:image', content: shareImage, key: 'og:image' }),
16531
+ React__default.createElement('meta', { property: 'og:site_name', content: props.Settings.title, key: 'og:site_name' }),
16532
+ React__default.createElement('meta', { property: 'og:description', content: shareSummary, key: 'og:description' }),
16533
+ React__default.createElement('meta', { name: 'twitter:card', content: 'summary', key: 'twitter:card' }),
16534
+ React__default.createElement('meta', { name: 'twitter:title', content: shareTitle, key: 'twitter:title' }),
16535
+ React__default.createElement('meta', { name: 'twitter:image', content: shareImage, key: 'twitter:image' }),
16536
+ React__default.createElement('meta', { name: 'twitter:site', content: '@' + props.Settings.title, key: 'twitter:site' }),
16537
+ React__default.createElement('meta', { name: 'twitter:description', content: shareSummary, key: 'twitter:description' })
16517
16538
  ),
16518
16539
  React__default.createElement(
16519
16540
  'h1',
@@ -16588,7 +16609,8 @@ var Article = function Article(props) {
16588
16609
  shareImage: shareImage,
16589
16610
  size: 32,
16590
16611
  siteName: siteName,
16591
- twitterSiteName: twitterSiteName
16612
+ twitterSiteName: twitterSiteName,
16613
+ disableMeta: true
16592
16614
  })
16593
16615
  ),
16594
16616
  renderRelevantTopicsDropdown(),
@@ -16719,6 +16741,10 @@ var ArticleQueue = function ArticleQueue(props) {
16719
16741
  }
16720
16742
  }
16721
16743
 
16744
+ if (props.cache.hyperTargeting) {
16745
+ targeting = _extends$2._extends({}, targeting, { campaign_id: props.cache.hyperTargeting });
16746
+ }
16747
+
16722
16748
  return targeting;
16723
16749
  };
16724
16750
 
@@ -16809,7 +16835,20 @@ var ArticleQueue = function ArticleQueue(props) {
16809
16835
  }
16810
16836
  };
16811
16837
 
16812
- var changeUrl = function changeUrl(path, visibility) {
16838
+ var changeMeta = function changeMeta(meta) {
16839
+ document.title = meta.shareTitle;
16840
+ document.querySelector('meta[name="description"]').setAttribute("content", meta.shareSummary);
16841
+ document.querySelector('meta[property="og:url"]').setAttribute("content", meta.shareUrl);
16842
+ document.querySelector('meta[property="og:title"]').setAttribute("content", meta.shareTitle);
16843
+ document.querySelector('meta[property="og:site_name"]').setAttribute("content", meta.shareVia);
16844
+ document.querySelector('meta[property="og:description"]').setAttribute("content", meta.shareSummary);
16845
+ document.querySelector('meta[name="twitter:title"]').setAttribute("content", meta.shareTitle);
16846
+ document.querySelector('meta[name="twitter:image"]').setAttribute("content", meta.shareImage);
16847
+ document.querySelector('meta[name="twitter:site"]').setAttribute("content", meta.shareVia);
16848
+ document.querySelector('meta[name="twitter:description"]').setAttribute("content", meta.shareSummary);
16849
+ };
16850
+
16851
+ var changeUrl = function changeUrl(path, visibility, meta) {
16813
16852
  var newPath = '/view/' + path;
16814
16853
  if (!isScrollDown) {
16815
16854
  if (visibility === 'top') {
@@ -16819,6 +16858,7 @@ var ArticleQueue = function ArticleQueue(props) {
16819
16858
  props.pageview(newPath);
16820
16859
  }
16821
16860
  refreshAD(path);
16861
+ changeMeta(meta);
16822
16862
  }
16823
16863
  } else {
16824
16864
  if (visibility === 'bottom') {
@@ -16828,13 +16868,14 @@ var ArticleQueue = function ArticleQueue(props) {
16828
16868
  props.pageview(newPath);
16829
16869
  }
16830
16870
  refreshAD(path);
16871
+ changeMeta(meta);
16831
16872
  }
16832
16873
  }
16833
16874
  };
16834
16875
 
16835
16876
  return React__default.createElement(
16836
16877
  visibilitySensor.InfiniteScroll,
16837
- { dataLength: queueData.length, next: loadmore, scrollThreshold: 0.8, hasMore: true },
16878
+ { dataLength: queueData.length, next: loadmore, scrollThreshold: '60%', hasMore: true },
16838
16879
  queueData.map(function (article, index) {
16839
16880
  if (!checkSponseredArticle(article) && Ads.getNativeContextualAD) {
16840
16881
  article.contextualAD = Ads.getNativeContextualAD(getTargeting(article));
@@ -39,7 +39,6 @@ var GroupDeck = function GroupDeck(props) {
39
39
  }, []);
40
40
 
41
41
  var setThumbSize = function setThumbSize() {
42
-
43
42
  var thumbSize = void 0;
44
43
  if (window.innerWidth > 1399) {
45
44
  thumbSize = Math.floor(viewableWindow.current.clientWidth / 2 - 48);
@@ -104,8 +103,8 @@ var GroupDeck = function GroupDeck(props) {
104
103
  });
105
104
  }
106
105
 
107
- function handleClick(url, vidIndex) {
108
- props.setState(url, vidIndex);
106
+ function handleClick(url, thumbnail, vidIndex) {
107
+ props.setState(url, thumbnail, vidIndex);
109
108
  }
110
109
 
111
110
  var _props$current = props.current,
@@ -139,7 +138,7 @@ var GroupDeck = function GroupDeck(props) {
139
138
  // If there is a current prop, means this will overlay a currently playing video
140
139
  if (current !== '') {
141
140
  var url = video.url;
142
- var thumbnail = 'https://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
141
+ var thumbnail = video.thumbnail || 'https://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
143
142
 
144
143
  return React__default.createElement(
145
144
  'div',
@@ -152,7 +151,7 @@ var GroupDeck = function GroupDeck(props) {
152
151
  React__default.createElement(
153
152
  'a',
154
153
  { onClick: function onClick() {
155
- return handleClick(url, index + 1);
154
+ return handleClick(url, thumbnail, index + 1);
156
155
  } },
157
156
  React__default.createElement(
158
157
  'div',
@@ -186,7 +185,7 @@ var GroupDeck = function GroupDeck(props) {
186
185
  } else {
187
186
  // slider by itself
188
187
  var _url = '' + video.link;
189
- var _thumbnail = 'https://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
188
+ var _thumbnail = video.thumbnail || 'https://img.youtube.com/vi/' + getYoutubeId(video.url) + '/hqdefault.jpg';
190
189
  return React__default.createElement(
191
190
  'div',
192
191
  { ref: tile, key: index, className: 'tile', style: { width: tileSize + 'px' } },
@@ -241,7 +240,7 @@ var GroupDeck = function GroupDeck(props) {
241
240
  React__default.createElement(
242
241
  'style',
243
242
  { jsx: 'true' },
244
- '\n #vid-slider * {\n box-sizing: border-box;\n -ms-overflow-style: none;\n }\n #vid-slider::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider {\n position: relative;\n -ms-overflow-style: none;\n padding: 0 1.5rem;\n margin-bottom: 2rem;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 0.5rem;\n left: 1rem;\n color: white;\n background: rgba(0, 0, 0, 0.75);\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider,\n #vidHolder {\n max-width: 805px;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow-x: scroll;\n width: 100%;\n -ms-overflow-style: none;\n overflow-y: hidden !important;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 0.9rem;\n font-weight: bold;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 25px 0 55px !important;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n height: 135px;\n \n margin: 0 12px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile:first-child {\n margin-left: 15px;\n }\n #vid-slider .tile__img {\n height: 135px;\n \n -o-object-fit: cover;\n object-fit: cover;\n object-position: center;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\';\n background: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 64 64\' width=\'64\' height=\'64\' fill=\'white\'><path d=\'M26 46 L46 32 L26 18 Z\'/></svg>")\n no-repeat center center;\n left: 0;\n width: 100%;\n height: 3rem;\n font-size: 30px;\n margin-right: 12px;\n margin-top: -24px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev {\n left: -0.5rem;\n padding: 1rem;\n }\n #vid-slider .tile__slider-next {\n right: -0.5rem;\n padding: 1rem;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding-right: 0 1.2rem;\n }\n\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n @media screen and (max-width: 1399px) {\n #vid-slider,\n #vidHolder {\n max-width: 620px;\n }\n }\n @media screen and (max-width: 1200px) {\n #vid-slider,\n #vidHolder {\n max-width: 580px;\n }\n }\n @media screen and (max-width: 967px) {\n #vid-slider {\n max-width: 100%;\n }\n \n\n #vid-slider .tile__img {\n height: 85px;\n object-fit: cover;\n }\n }\n\n @media screen and (max-width: 768px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 110px;\n object-fit: cover;\n }\n #vid-slider .row__inner{\n margin: 30px 0 60px;\n }\n }\n @media screen and (max-width: 568px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 180px;\n object-fit: cover;\n }\n #vid-slider .row__inner{\n margin: 30px 0 60px;\n }\n }\n '
243
+ '\n #vid-slider * {\n box-sizing: border-box;\n -ms-overflow-style: none;\n }\n #vid-slider::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider {\n position: relative;\n -ms-overflow-style: none;\n padding: 0 1.5rem;\n margin-bottom: 2rem;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 0.5rem;\n left: 1rem;\n color: white;\n background: rgba(0, 0, 0, 0.75);\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider,\n #vidHolder {\n max-width: 805px;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow-x: scroll;\n width: 100%;\n -ms-overflow-style: none;\n overflow-y: hidden !important;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 0.9rem;\n font-weight: bold;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 25px 0 55px !important;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n height: 135px;\n\n margin: 0 12px;\n font-size: 20px;\n cursor: pointer;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n #vid-slider .tile:first-child {\n margin-left: 15px;\n }\n #vid-slider .tile__img {\n height: 135px;\n\n -o-object-fit: cover;\n object-fit: cover;\n object-position: center;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n\n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\';\n background: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 64 64\' width=\'64\' height=\'64\' fill=\'white\'><path d=\'M26 46 L46 32 L26 18 Z\'/></svg>")\n no-repeat center center;\n left: 0;\n width: 100%;\n height: 3rem;\n font-size: 30px;\n margin-right: 12px;\n margin-top: -24px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n\n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n\n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev {\n left: -0.5rem;\n padding: 1rem;\n }\n #vid-slider .tile__slider-next {\n right: -0.5rem;\n padding: 1rem;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n padding-right: 0 1.2rem;\n }\n\n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n @media screen and (max-width: 1399px) {\n #vid-slider,\n #vidHolder {\n max-width: 620px;\n }\n }\n @media screen and (max-width: 1200px) {\n #vid-slider,\n #vidHolder {\n max-width: 580px;\n }\n }\n @media screen and (max-width: 967px) {\n #vid-slider {\n max-width: 100%;\n }\n\n #vid-slider .tile__img {\n height: 85px;\n object-fit: cover;\n }\n }\n\n @media screen and (max-width: 768px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 110px;\n object-fit: cover;\n }\n #vid-slider .row__inner {\n margin: 30px 0 60px;\n }\n }\n @media screen and (max-width: 568px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n #vid-slider .tile {\n height: 180px;\n }\n\n #vid-slider .tile__img {\n height: 180px;\n object-fit: cover;\n }\n #vid-slider .row__inner {\n margin: 30px 0 60px;\n }\n }\n '
245
244
  )
246
245
  );
247
246
  };
@@ -429,14 +429,14 @@ var Header = function Header(props) {
429
429
  return React__default.createElement(
430
430
  Head,
431
431
  null,
432
- React__default.createElement(
432
+ title && React__default.createElement(
433
433
  'title',
434
434
  null,
435
435
  title
436
436
  ),
437
- !isLiveSite && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
438
- React__default.createElement('meta', { name: 'keywords', content: keyword }),
439
- React__default.createElement('meta', { name: 'description', content: description })
437
+ keyword && React__default.createElement('meta', { name: 'keywords', content: keyword }),
438
+ description && React__default.createElement('meta', { name: 'description', content: description }),
439
+ !isLiveSite && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' })
440
440
  );
441
441
  };
442
442
 
@@ -255,6 +255,11 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
255
255
  showAuthor && article.authorMapping && article.authorMapping.length > 0 && article.authorMapping.map(function (authorDetail, index) {
256
256
  return renderAuthor(authorDetail, index, article.authorMapping.length);
257
257
  }),
258
+ article.publicationSource && React__default.createElement(
259
+ 'p',
260
+ { className: 'p-0 mb-1' },
261
+ article.publicationSource
262
+ ),
258
263
  showCategory && article.contentCategory && React__default.createElement(
259
264
  'p',
260
265
  {
@@ -330,6 +335,11 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
330
335
  showAuthor && article.authorMapping && article.authorMapping.length > 0 && article.authorMapping.map(function (authorDetail, index) {
331
336
  return renderAuthor(authorDetail, index, article.authorMapping.length);
332
337
  }),
338
+ article.publicationSource && React__default.createElement(
339
+ 'p',
340
+ { className: 'p-0 mb-1' },
341
+ article.publicationSource
342
+ ),
333
343
  showCategory && article.contentCategory && React__default.createElement(
334
344
  'p',
335
345
  {
@@ -406,6 +416,11 @@ var cardLoader = function cardLoader(data, builder, mapping, values, seoPaginate
406
416
  showAuthor && article.authorMapping && article.authorMapping.length > 0 && article.authorMapping.map(function (authorDetail, index) {
407
417
  return renderAuthor(authorDetail, index, article.authorMapping.length);
408
418
  }),
419
+ article.publicationSource && React__default.createElement(
420
+ 'p',
421
+ { className: 'p-0 mb-1' },
422
+ article.publicationSource
423
+ ),
409
424
  showCategory && article.contentCategory && React__default.createElement(
410
425
  'p',
411
426
  {
@@ -17,7 +17,7 @@ import './react-social-icons-a7d5c5c7.js';
17
17
  import 'react-bootstrap';
18
18
  import './index.esm-536609db.js';
19
19
  import 'react-bootstrap/Button';
20
- export { T as default } from './Normal-cbddc3c0.js';
20
+ export { T as default } from './Normal-e07e4324.js';
21
21
  import 'react-bootstrap/ListGroup';
22
22
  import 'next/head';
23
23
  import 'react-bootstrap/Nav';
package/dist/esm/index.js CHANGED
@@ -48,8 +48,8 @@ export { default as IssueDeck } from './IssueDeck.js';
48
48
  import 'react-bootstrap/Badge';
49
49
  export { default as IssueContentDeck } from './IssueContentDeck.js';
50
50
  import Spinner from 'react-bootstrap/Spinner';
51
- import { M as MdPictureAsPdf } from './Normal-cbddc3c0.js';
52
- export { A as AD728x90, C as Column1, a as Column2, b as Column3, f as HamMagazine, H as Header, L as LeftNav, e as NavDvm, c as NavMagazine, N as NavNative, d as NavNormal, P as PageFilter, S as Search, g as SideFooter, T as TemplateNormal } from './Normal-cbddc3c0.js';
51
+ import { M as MdPictureAsPdf } from './Normal-e07e4324.js';
52
+ export { A as AD728x90, C as Column1, a as Column2, b as Column3, f as HamMagazine, H as Header, L as LeftNav, e as NavDvm, c as NavMagazine, N as NavNative, d as NavNormal, P as PageFilter, S as Search, g as SideFooter, T as TemplateNormal } from './Normal-e07e4324.js';
53
53
  import 'react-bootstrap/ListGroup';
54
54
  import Head from 'next/head';
55
55
  import Accordion from 'react-bootstrap/Accordion';
@@ -2771,24 +2771,26 @@ var SocialShare = function SocialShare(props) {
2771
2771
  shareImage = props.shareImage,
2772
2772
  size = props.size,
2773
2773
  siteName = props.siteName,
2774
- twitterSiteName = props.twitterSiteName;
2774
+ twitterSiteName = props.twitterSiteName,
2775
+ _props$disableMeta = props.disableMeta,
2776
+ disableMeta = _props$disableMeta === undefined ? false : _props$disableMeta;
2775
2777
 
2776
2778
  return React__default.createElement(
2777
2779
  React__default.Fragment,
2778
2780
  null,
2779
- React__default.createElement(
2781
+ !disableMeta && React__default.createElement(
2780
2782
  Head,
2781
2783
  null,
2782
- React__default.createElement('meta', { property: 'og:url', content: shareUrl }),
2783
- React__default.createElement('meta', { property: 'og:title', content: shareTitle }),
2784
- React__default.createElement('meta', { property: 'og:image', content: shareImage }),
2785
- React__default.createElement('meta', { property: 'og:site_name', content: siteName }),
2786
- React__default.createElement('meta', { property: 'og:description', content: shareSummary }),
2787
- React__default.createElement('meta', { name: 'twitter:card', content: 'summary' }),
2788
- React__default.createElement('meta', { name: 'twitter:title', content: shareTitle }),
2789
- React__default.createElement('meta', { name: 'twitter:image', content: shareImage }),
2790
- React__default.createElement('meta', { name: 'twitter:site', content: twitterSiteName }),
2791
- React__default.createElement('meta', { name: 'twitter:description', content: shareSummary })
2784
+ React__default.createElement('meta', { property: 'og:url', content: shareUrl, key: 'og:url' }),
2785
+ React__default.createElement('meta', { property: 'og:title', content: shareTitle, key: 'og:title' }),
2786
+ React__default.createElement('meta', { property: 'og:image', content: shareImage, key: 'og:image' }),
2787
+ React__default.createElement('meta', { property: 'og:site_name', content: siteName, key: 'og:site_name' }),
2788
+ React__default.createElement('meta', { property: 'og:description', content: shareSummary, key: 'og:description' }),
2789
+ React__default.createElement('meta', { name: 'twitter:card', content: 'summary', key: 'og:card' }),
2790
+ React__default.createElement('meta', { name: 'twitter:title', content: shareTitle, key: 'og:title' }),
2791
+ React__default.createElement('meta', { name: 'twitter:image', content: shareImage, key: 'og:image' }),
2792
+ React__default.createElement('meta', { name: 'twitter:site', content: twitterSiteName, key: 'og:site' }),
2793
+ React__default.createElement('meta', { name: 'twitter:description', content: shareSummary, key: 'og:description' })
2792
2794
  ),
2793
2795
  React__default.createElement(
2794
2796
  FacebookShareButton,
@@ -12881,6 +12883,7 @@ var Audio = function Audio(_ref) {
12881
12883
 
12882
12884
  var VideoMp4 = function VideoMp4(_ref) {
12883
12885
  var url = _ref.url,
12886
+ thumbnail = _ref.thumbnail,
12884
12887
  vidLoaded = _ref.vidLoaded;
12885
12888
 
12886
12889
  var _useState = useState(false),
@@ -12968,6 +12971,7 @@ var VideoMp4 = function VideoMp4(_ref) {
12968
12971
  vidLoaded && React__default.createElement(
12969
12972
  'video',
12970
12973
  {
12974
+ poster: thumbnail || '',
12971
12975
  style: { width: '100%' },
12972
12976
  controls: true,
12973
12977
  onCanPlay: function onCanPlay(e) {
@@ -13024,25 +13028,30 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13024
13028
  vidUrl = _useState8[0],
13025
13029
  setVidUrl = _useState8[1];
13026
13030
 
13027
- var _useState9 = useState(false),
13031
+ var _useState9 = useState(''),
13028
13032
  _useState10 = _slicedToArray(_useState9, 2),
13029
- vidLoaded = _useState10[0],
13030
- setVidLoaded = _useState10[1];
13033
+ vidThumbnail = _useState10[0],
13034
+ setVidThumbnail = _useState10[1];
13031
13035
 
13032
- var _useState11 = useState('youtube'),
13036
+ var _useState11 = useState(false),
13033
13037
  _useState12 = _slicedToArray(_useState11, 2),
13034
- vidType = _useState12[0],
13035
- setVidType = _useState12[1];
13038
+ vidLoaded = _useState12[0],
13039
+ setVidLoaded = _useState12[1];
13036
13040
 
13037
- var _useState13 = useState(''),
13041
+ var _useState13 = useState('youtube'),
13038
13042
  _useState14 = _slicedToArray(_useState13, 2),
13039
- series = _useState14[0],
13040
- setSeries = _useState14[1];
13043
+ vidType = _useState14[0],
13044
+ setVidType = _useState14[1];
13041
13045
 
13042
- var _useState15 = useState([]),
13046
+ var _useState15 = useState(''),
13043
13047
  _useState16 = _slicedToArray(_useState15, 2),
13044
- seriesData = _useState16[0],
13045
- setData = _useState16[1];
13048
+ series = _useState16[0],
13049
+ setSeries = _useState16[1];
13050
+
13051
+ var _useState17 = useState([]),
13052
+ _useState18 = _slicedToArray(_useState17, 2),
13053
+ seriesData = _useState18[0],
13054
+ setData = _useState18[1];
13046
13055
  //variables
13047
13056
 
13048
13057
 
@@ -13056,10 +13065,10 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13056
13065
 
13057
13066
  nodes.videos.forEach(function (vid) {
13058
13067
  if (vid.type == 'mp4') {
13059
- data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset), url: vid.url });
13068
+ data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset).url(), url: vid.url });
13060
13069
  } else {
13061
13070
  if (vid.thumbnail && vid.thumbnail.asset) {
13062
- data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset), url: vid.url });
13071
+ data.push({ title: vid.title, thumbnail: urlFor(vid.thumbnail.asset).url(), url: vid.url });
13063
13072
  } else {
13064
13073
  data.push({ title: vid.title, thumbnail: 'https://img.youtube.com/vi/' + getYoutubeId(vid.url) + '/hqdefault.jpg', url: vid.url });
13065
13074
  }
@@ -13070,6 +13079,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13070
13079
  if (data.length < seriesVid) {
13071
13080
  setSeries(1);
13072
13081
  setVidUrl(nodes.videos[0].url);
13082
+ setVidThumbnail(nodes.videos[0].thumbnail && nodes.videos[0].thumbnail.asset ? urlFor(nodes.videos[0].thumbnail.asset).url() : '');
13073
13083
  if (nodes.videos[0].type) {
13074
13084
  setVidType(nodes.videos[0].type);
13075
13085
  }
@@ -13080,7 +13090,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13080
13090
  } else {
13081
13091
  setSeries(seriesVid);
13082
13092
  setVidUrl(nodes.videos[seriesVid - 1].url);
13083
-
13093
+ setVidThumbnail(nodes.videos[seriesVid - 1].thumbnail && nodes.videos[seriesVid - 1].thumbnail.asset ? urlFor(nodes.videos[seriesVid - 1].thumbnail.asset).url() : '');
13084
13094
  if (nodes.videos[0].type) {
13085
13095
  setVidType(nodes.videos[seriesVid - 1].type);
13086
13096
  }
@@ -13106,10 +13116,11 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13106
13116
  }
13107
13117
 
13108
13118
  // This function is passed to the GroupDeck to change the youtube iframe src
13109
- function setState(url, vidIndex) {
13119
+ function setState(url, thumbnail, vidIndex) {
13110
13120
  setVidLoaded(false);
13111
13121
  setTimeout(function () {
13112
13122
  setVidUrl(url);
13123
+ setVidThumbnail(thumbnail);
13113
13124
  toggleSeries();
13114
13125
  lib_3.refresh();
13115
13126
  var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
@@ -13230,7 +13241,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13230
13241
  { className: 'video-block', style: { position: 'relative', overflow: 'hidden' } },
13231
13242
  vidUrl && vidType == 'youtube' ? React__default.createElement(YouTube, { videoId: getYoutubeId(vidUrl), opts: opts, onReady: handleOnReady, onPlay: handleOnPlay, onPause: handleOnPause, onEnd: function onEnd(e) {
13232
13243
  return handleOnEnd(e);
13233
- } }) : React__default.createElement(VideoMp4, { url: vidUrl, vidLoaded: vidLoaded }),
13244
+ } }) : React__default.createElement(VideoMp4, { url: vidUrl, thumbnail: vidThumbnail, vidLoaded: vidLoaded }),
13234
13245
  React__default.createElement(
13235
13246
  'div',
13236
13247
  {
@@ -16471,12 +16482,21 @@ var Article = function Article(props) {
16471
16482
  shareBaseUrl = shareOptions.shareBaseUrl,
16472
16483
  shareSiteTitle = shareOptions.shareSiteTitle;
16473
16484
 
16474
- var shareUrl = shareBaseUrl + props.url;
16485
+ var shareUrl = shareBaseUrl + props.article.url.current;
16475
16486
  var shareTitle = title;
16476
16487
  var shareSummary = summary;
16477
16488
  var shareImage = thumbnail && thumbnail.asset ? urlFor(thumbnail.asset).url() : shareImageDefault;
16478
16489
  var siteName = props.website.title;
16479
16490
 
16491
+ var meta = {
16492
+ shareTitle: shareTitle,
16493
+ shareSiteName: props.cache.siteSettingCache.name,
16494
+ shareSummary: shareSummary,
16495
+ shareUrl: shareUrl,
16496
+ shareImage: shareImage,
16497
+ shareVia: props.Settings.title
16498
+ };
16499
+
16480
16500
  return React__default.createElement(
16481
16501
  React__default.Fragment,
16482
16502
  null,
@@ -16486,7 +16506,7 @@ var Article = function Article(props) {
16486
16506
  offSetTop: 45,
16487
16507
  onChange: function onChange(visible) {
16488
16508
  if (visible !== false) {
16489
- changeUrl(url, visible);
16509
+ changeUrl(url, visible, meta);
16490
16510
  }
16491
16511
  } },
16492
16512
  React__default.createElement(
@@ -16497,20 +16517,21 @@ var Article = function Article(props) {
16497
16517
  null,
16498
16518
  React__default.createElement(
16499
16519
  'title',
16500
- null,
16520
+ { key: 'title' },
16501
16521
  shareTitle + ' | ' + props.cache.siteSettingCache.name
16502
16522
  ),
16523
+ React__default.createElement('meta', { name: 'description', key: 'description', content: shareSummary }),
16503
16524
  passwordLock && React__default.createElement('meta', { name: 'robots', content: 'noindex, nofollow' }),
16504
- React__default.createElement('meta', { property: 'og:url', content: shareUrl }),
16505
- React__default.createElement('meta', { property: 'og:title', content: shareTitle }),
16506
- React__default.createElement('meta', { property: 'og:image', content: shareImage }),
16507
- React__default.createElement('meta', { property: 'og:site_name', content: props.Settings.title }),
16508
- React__default.createElement('meta', { property: 'og:description', content: shareSummary }),
16509
- React__default.createElement('meta', { name: 'twitter:card', content: 'summary' }),
16510
- React__default.createElement('meta', { name: 'twitter:title', content: shareTitle }),
16511
- React__default.createElement('meta', { name: 'twitter:image', content: shareImage }),
16512
- React__default.createElement('meta', { name: 'twitter:site', content: '@' + shareSiteTitle }),
16513
- React__default.createElement('meta', { name: 'twitter:description', content: shareSummary })
16525
+ React__default.createElement('meta', { property: 'og:url', content: shareUrl, key: 'og:url' }),
16526
+ React__default.createElement('meta', { property: 'og:title', content: shareTitle, key: 'og:title' }),
16527
+ React__default.createElement('meta', { property: 'og:image', content: shareImage, key: 'og:image' }),
16528
+ React__default.createElement('meta', { property: 'og:site_name', content: props.Settings.title, key: 'og:site_name' }),
16529
+ React__default.createElement('meta', { property: 'og:description', content: shareSummary, key: 'og:description' }),
16530
+ React__default.createElement('meta', { name: 'twitter:card', content: 'summary', key: 'twitter:card' }),
16531
+ React__default.createElement('meta', { name: 'twitter:title', content: shareTitle, key: 'twitter:title' }),
16532
+ React__default.createElement('meta', { name: 'twitter:image', content: shareImage, key: 'twitter:image' }),
16533
+ React__default.createElement('meta', { name: 'twitter:site', content: '@' + props.Settings.title, key: 'twitter:site' }),
16534
+ React__default.createElement('meta', { name: 'twitter:description', content: shareSummary, key: 'twitter:description' })
16514
16535
  ),
16515
16536
  React__default.createElement(
16516
16537
  'h1',
@@ -16585,7 +16606,8 @@ var Article = function Article(props) {
16585
16606
  shareImage: shareImage,
16586
16607
  size: 32,
16587
16608
  siteName: siteName,
16588
- twitterSiteName: twitterSiteName
16609
+ twitterSiteName: twitterSiteName,
16610
+ disableMeta: true
16589
16611
  })
16590
16612
  ),
16591
16613
  renderRelevantTopicsDropdown(),
@@ -16716,6 +16738,10 @@ var ArticleQueue = function ArticleQueue(props) {
16716
16738
  }
16717
16739
  }
16718
16740
 
16741
+ if (props.cache.hyperTargeting) {
16742
+ targeting = _extends$2({}, targeting, { campaign_id: props.cache.hyperTargeting });
16743
+ }
16744
+
16719
16745
  return targeting;
16720
16746
  };
16721
16747
 
@@ -16806,7 +16832,20 @@ var ArticleQueue = function ArticleQueue(props) {
16806
16832
  }
16807
16833
  };
16808
16834
 
16809
- var changeUrl = function changeUrl(path, visibility) {
16835
+ var changeMeta = function changeMeta(meta) {
16836
+ document.title = meta.shareTitle;
16837
+ document.querySelector('meta[name="description"]').setAttribute("content", meta.shareSummary);
16838
+ document.querySelector('meta[property="og:url"]').setAttribute("content", meta.shareUrl);
16839
+ document.querySelector('meta[property="og:title"]').setAttribute("content", meta.shareTitle);
16840
+ document.querySelector('meta[property="og:site_name"]').setAttribute("content", meta.shareVia);
16841
+ document.querySelector('meta[property="og:description"]').setAttribute("content", meta.shareSummary);
16842
+ document.querySelector('meta[name="twitter:title"]').setAttribute("content", meta.shareTitle);
16843
+ document.querySelector('meta[name="twitter:image"]').setAttribute("content", meta.shareImage);
16844
+ document.querySelector('meta[name="twitter:site"]').setAttribute("content", meta.shareVia);
16845
+ document.querySelector('meta[name="twitter:description"]').setAttribute("content", meta.shareSummary);
16846
+ };
16847
+
16848
+ var changeUrl = function changeUrl(path, visibility, meta) {
16810
16849
  var newPath = '/view/' + path;
16811
16850
  if (!isScrollDown) {
16812
16851
  if (visibility === 'top') {
@@ -16816,6 +16855,7 @@ var ArticleQueue = function ArticleQueue(props) {
16816
16855
  props.pageview(newPath);
16817
16856
  }
16818
16857
  refreshAD(path);
16858
+ changeMeta(meta);
16819
16859
  }
16820
16860
  } else {
16821
16861
  if (visibility === 'bottom') {
@@ -16825,13 +16865,14 @@ var ArticleQueue = function ArticleQueue(props) {
16825
16865
  props.pageview(newPath);
16826
16866
  }
16827
16867
  refreshAD(path);
16868
+ changeMeta(meta);
16828
16869
  }
16829
16870
  }
16830
16871
  };
16831
16872
 
16832
16873
  return React__default.createElement(
16833
16874
  InfiniteScroll,
16834
- { dataLength: queueData.length, next: loadmore, scrollThreshold: 0.8, hasMore: true },
16875
+ { dataLength: queueData.length, next: loadmore, scrollThreshold: '60%', hasMore: true },
16835
16876
  queueData.map(function (article, index) {
16836
16877
  if (!checkSponseredArticle(article) && Ads.getNativeContextualAD) {
16837
16878
  article.contextualAD = Ads.getNativeContextualAD(getTargeting(article));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjhls/mjh-framework",
3
- "version": "1.0.335",
3
+ "version": "1.0.337",
4
4
  "description": "Foundation Framework",
5
5
  "author": "mjh-framework",
6
6
  "license": "MIT",