@mjhls/mjh-framework 1.0.258 → 1.0.260

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.258
2
+ # mjh-framework v. 1.0.260
3
3
 
4
4
  > Foundation Framework
5
5
 
@@ -1085,7 +1085,8 @@ var DFPAdSlot = function DFPAdSlot(_ref) {
1085
1085
  _ref$targeting = _ref.targeting,
1086
1086
  targeting = _ref$targeting === undefined ? {} : _ref$targeting,
1087
1087
  _ref$refreshFlag = _ref.refreshFlag,
1088
- refreshFlag = _ref$refreshFlag === undefined ? true : _ref$refreshFlag;
1088
+ refreshFlag = _ref$refreshFlag === undefined ? true : _ref$refreshFlag,
1089
+ setShowAd = _ref.setShowAd;
1089
1090
 
1090
1091
  var _useState = React.useState(false),
1091
1092
  _useState2 = slicedToArray._slicedToArray(_useState, 2),
@@ -1122,6 +1123,9 @@ var DFPAdSlot = function DFPAdSlot(_ref) {
1122
1123
  sizeMapping: sizeMapping,
1123
1124
  targetingArguments: targeting,
1124
1125
  onSlotRender: function onSlotRender(eventData) {
1126
+ if (slotId === 'floating-ad' && eventData && eventData.event && eventData.event.creativeId == null) {
1127
+ setShowAd(false);
1128
+ }
1125
1129
  setAdRendered(true);
1126
1130
  if (eventData && eventData.event) {
1127
1131
  var cID = eventData.event.creativeId;
@@ -28,7 +28,7 @@ var index$1 = require('./index-be0c82be.js');
28
28
  var index$2 = require('./index-fa0fb52c.js');
29
29
  var entities = require('./entities-310b46ee.js');
30
30
  require('./slicedToArray-e38fb29d.js');
31
- var AdSlot = require('./AdSlot-9f3af35d.js');
31
+ var AdSlot = require('./AdSlot-3877c8c0.js');
32
32
  require('./promise-b96c61f8.js');
33
33
 
34
34
  var DeckContent = function (_React$Component) {
@@ -21,7 +21,7 @@ var Router__default = _interopDefault(Router);
21
21
  var index$1 = require('./index-be0c82be.js');
22
22
  var index$2 = require('./index-fa0fb52c.js');
23
23
  var entities = require('./entities-310b46ee.js');
24
- var AdSlot = require('./AdSlot-9f3af35d.js');
24
+ var AdSlot = require('./AdSlot-3877c8c0.js');
25
25
  var get$1 = require('./get-1f91592f.js');
26
26
 
27
27
  var Dfp = React__default.lazy(function () {
@@ -24,10 +24,10 @@ require('./index-be0c82be.js');
24
24
  require('./index-fa0fb52c.js');
25
25
  require('./entities-310b46ee.js');
26
26
  require('./slicedToArray-e38fb29d.js');
27
- require('./AdSlot-9f3af35d.js');
27
+ require('./AdSlot-3877c8c0.js');
28
28
  require('./promise-b96c61f8.js');
29
29
  require('./get-1f91592f.js');
30
- var GridContent = require('./GridContent-c7d7ebe4.js');
30
+ var GridContent = require('./GridContent-32ad136e.js');
31
31
 
32
32
 
33
33
 
@@ -12,7 +12,7 @@ var Row = _interopDefault(require('react-bootstrap/Row'));
12
12
  var Col = _interopDefault(require('react-bootstrap/Col'));
13
13
  var Link = _interopDefault(require('next/link'));
14
14
  var slicedToArray = require('./slicedToArray-e38fb29d.js');
15
- var AdSlot = require('./AdSlot-9f3af35d.js');
15
+ var AdSlot = require('./AdSlot-3877c8c0.js');
16
16
  var get$1 = require('./get-1f91592f.js');
17
17
  var reactBootstrap = require('react-bootstrap');
18
18
  var index_esm = require('./index.esm-340d3792.js');
@@ -14,13 +14,13 @@ require('react-bootstrap/Row');
14
14
  require('react-bootstrap/Col');
15
15
  require('next/link');
16
16
  require('./slicedToArray-e38fb29d.js');
17
- require('./AdSlot-9f3af35d.js');
17
+ require('./AdSlot-3877c8c0.js');
18
18
  require('./promise-b96c61f8.js');
19
19
  require('./get-1f91592f.js');
20
20
  require('react-bootstrap');
21
21
  require('./index.esm-340d3792.js');
22
22
  require('react-bootstrap/Button');
23
- var TemplateNormal = require('./Normal-2ef3e500.js');
23
+ var TemplateNormal = require('./Normal-83b88703.js');
24
24
  require('react-bootstrap/ListGroup');
25
25
  require('next/head');
26
26
  require('react-bootstrap/Nav');
package/dist/cjs/index.js CHANGED
@@ -30,11 +30,11 @@ var index$1 = require('./index-be0c82be.js');
30
30
  require('./index-fa0fb52c.js');
31
31
  var entities = require('./entities-310b46ee.js');
32
32
  var slicedToArray = require('./slicedToArray-e38fb29d.js');
33
- var AdSlot = require('./AdSlot-9f3af35d.js');
33
+ var AdSlot = require('./AdSlot-3877c8c0.js');
34
34
  require('./promise-b96c61f8.js');
35
35
  var DeckContent = require('./DeckContent.js');
36
36
  require('./get-1f91592f.js');
37
- var GridContent = require('./GridContent-c7d7ebe4.js');
37
+ var GridContent = require('./GridContent-32ad136e.js');
38
38
  var DeckQueue = require('./DeckQueue.js');
39
39
  require('react-bootstrap/Media');
40
40
  var ThumbnailCard = require('./ThumbnailCard.js');
@@ -52,7 +52,7 @@ var IssueDeck = require('./IssueDeck.js');
52
52
  require('react-bootstrap/Badge');
53
53
  var IssueContentDeck = require('./IssueContentDeck.js');
54
54
  var Spinner = _interopDefault(require('react-bootstrap/Spinner'));
55
- var TemplateNormal = require('./Normal-2ef3e500.js');
55
+ var TemplateNormal = require('./Normal-83b88703.js');
56
56
  require('react-bootstrap/ListGroup');
57
57
  var Head = _interopDefault(require('next/head'));
58
58
  var Accordion = _interopDefault(require('react-bootstrap/Accordion'));
@@ -2879,7 +2879,7 @@ var ADFloatingFooter = function ADFloatingFooter(_ref) {
2879
2879
  showAd && React__default.createElement(
2880
2880
  'div',
2881
2881
  { className: 'floating-ad-wrapper ' + title },
2882
- React__default.createElement(AdSlot.DFPAdSlot, { className: className, slotId: slotId, networkID: networkID, sizes: sizes, adUnit: adUnit, targeting: adTargeting, refreshFlag: false }),
2882
+ React__default.createElement(AdSlot.DFPAdSlot, { className: className, slotId: slotId, networkID: networkID, sizes: sizes, adUnit: adUnit, targeting: adTargeting, refreshFlag: false, setShowAd: setShowAd }),
2883
2883
  React__default.createElement(
2884
2884
  'div',
2885
2885
  { className: 'closeButton', onClick: function onClick() {
@@ -12799,6 +12799,115 @@ var Audio = function Audio(_ref) {
12799
12799
  return null;
12800
12800
  };
12801
12801
 
12802
+ var VideoMp4 = function VideoMp4(_ref) {
12803
+ var url = _ref.url,
12804
+ vidLoaded = _ref.vidLoaded;
12805
+
12806
+ var _useState = React.useState(false),
12807
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
12808
+ playReported = _useState2[0],
12809
+ setPlayReported = _useState2[1];
12810
+
12811
+ var _useState3 = React.useState(false),
12812
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
12813
+ endReported = _useState4[0],
12814
+ setEndReported = _useState4[1];
12815
+
12816
+ var _useState5 = React.useState(null),
12817
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
12818
+ intervalID = _useState6[0],
12819
+ setIntervalID = _useState6[1];
12820
+
12821
+ var queueProgress = [];
12822
+
12823
+ var handleOnReady = function handleOnReady(event) {
12824
+ var player = event.target;
12825
+ var current = player.currentTime;
12826
+ var duration = player.duration;
12827
+ var queue = Math.floor(duration / 10);
12828
+ var segment = Math.floor(current / queue);
12829
+ AdSlot.Beam.report_beam_video('Ready', main.main_16, duration, current, segment);
12830
+ };
12831
+
12832
+ var handlePlayPercent = function handlePlayPercent(player) {
12833
+ var current = player.currentTime;
12834
+ var duration = player.duration;
12835
+ var queue = Math.floor(duration / 10);
12836
+ var segment = Math.floor(current / queue);
12837
+ if (!queueProgress.includes(segment)) {
12838
+ AdSlot.Beam.report_beam_video('Segment', main.main_16, duration, current, segment);
12839
+ queueProgress.push(segment);
12840
+ }
12841
+ };
12842
+
12843
+ var handleOnPlay = function handleOnPlay(event) {
12844
+ // report play
12845
+ var player = event.target;
12846
+ var current = player.currentTime;
12847
+ var duration = player.duration;
12848
+ var queue = Math.floor(duration / 10);
12849
+ var segment = Math.floor(current / queue);
12850
+ AdSlot.Beam.report_beam_video('Play', main.main_16, duration, current, segment);
12851
+
12852
+ if (!playReported) {
12853
+ event.persist();
12854
+ setPlayReported(true);
12855
+ var _intervalID = setInterval(function () {
12856
+ handlePlayPercent(event.target);
12857
+ }, 1000);
12858
+ setIntervalID(_intervalID);
12859
+ }
12860
+ };
12861
+
12862
+ var handleOnEnd = function handleOnEnd(event) {
12863
+ if (!endReported) {
12864
+ var player = event.target;
12865
+ var current = player.currentTime;
12866
+ var duration = player.duration;
12867
+ var queue = Math.floor(duration / 10);
12868
+ var segment = Math.floor(current / queue);
12869
+
12870
+ AdSlot.Beam.report_beam_video('End', main.main_16, duration, current, segment);
12871
+ setEndReported(true);
12872
+ clearInterval(intervalID);
12873
+ }
12874
+ };
12875
+
12876
+ var handleOnPause = function handleOnPause(event) {
12877
+ var player = event.target;
12878
+ var current = player.currentTime;
12879
+ var duration = player.duration - current;
12880
+ var queue = Math.floor(duration / 10);
12881
+ var segment = Math.floor(current / queue);
12882
+ AdSlot.Beam.report_beam_video('Pause', main.main_16, duration, current, segment);
12883
+ };
12884
+
12885
+ return React__default.createElement(
12886
+ 'div',
12887
+ null,
12888
+ vidLoaded && React__default.createElement(
12889
+ 'video',
12890
+ {
12891
+ style: { width: '100%' },
12892
+ controls: true,
12893
+ onCanPlay: function onCanPlay(e) {
12894
+ return handleOnReady(e);
12895
+ },
12896
+ onPause: function onPause(e) {
12897
+ return handleOnPause(e);
12898
+ },
12899
+ onEnded: function onEnded(e) {
12900
+ return handleOnEnd(e);
12901
+ },
12902
+ onPlay: function onPlay(e) {
12903
+ return handleOnPlay(e);
12904
+ } },
12905
+ React__default.createElement('source', { src: url, type: 'video/mp4' }),
12906
+ 'Your browser does not support the video tag.'
12907
+ )
12908
+ );
12909
+ };
12910
+
12802
12911
  var YouTubeGallery = function YouTubeGallery(_ref) {
12803
12912
  var nodes = _ref.nodes,
12804
12913
  client = _ref.client,
@@ -12835,20 +12944,25 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12835
12944
  vidUrl = _useState8[0],
12836
12945
  setVidUrl = _useState8[1];
12837
12946
 
12838
- var _useState9 = React.useState('youtube'),
12947
+ var _useState9 = React.useState(false),
12839
12948
  _useState10 = slicedToArray._slicedToArray(_useState9, 2),
12840
- vidType = _useState10[0],
12841
- setVidType = _useState10[1];
12949
+ vidLoaded = _useState10[0],
12950
+ setVidLoaded = _useState10[1];
12842
12951
 
12843
- var _useState11 = React.useState(''),
12952
+ var _useState11 = React.useState('youtube'),
12844
12953
  _useState12 = slicedToArray._slicedToArray(_useState11, 2),
12845
- series = _useState12[0],
12846
- setSeries = _useState12[1];
12954
+ vidType = _useState12[0],
12955
+ setVidType = _useState12[1];
12847
12956
 
12848
- var _useState13 = React.useState([]),
12957
+ var _useState13 = React.useState(''),
12849
12958
  _useState14 = slicedToArray._slicedToArray(_useState13, 2),
12850
- seriesData = _useState14[0],
12851
- setData = _useState14[1];
12959
+ series = _useState14[0],
12960
+ setSeries = _useState14[1];
12961
+
12962
+ var _useState15 = React.useState([]),
12963
+ _useState16 = slicedToArray._slicedToArray(_useState15, 2),
12964
+ seriesData = _useState16[0],
12965
+ setData = _useState16[1];
12852
12966
  //variables
12853
12967
 
12854
12968
 
@@ -12886,9 +13000,11 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12886
13000
  } else {
12887
13001
  setSeries(seriesVid);
12888
13002
  setVidUrl(nodes.videos[seriesVid - 1].url);
13003
+
12889
13004
  if (nodes.videos[0].type) {
12890
13005
  setVidType(nodes.videos[seriesVid - 1].type);
12891
13006
  }
13007
+ setVidLoaded(true);
12892
13008
  }
12893
13009
  setData(data);
12894
13010
  }, []);
@@ -12905,13 +13021,17 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12905
13021
 
12906
13022
  // This function is passed to the GroupDeck to change the youtube iframe src
12907
13023
  function setState(url, vidIndex) {
12908
- setVidUrl(url);
12909
- toggleSeries();
12910
- index.lib_3.refresh();
12911
- var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
12912
- var vidState = { vid_id: vidIndex };
12913
- window.history.pushState(vidState, '', newPath);
12914
- setSeries(vidIndex);
13024
+ setVidLoaded(false);
13025
+ setTimeout(function () {
13026
+ setVidUrl(url);
13027
+ toggleSeries();
13028
+ index.lib_3.refresh();
13029
+ var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
13030
+ var vidState = { vid_id: vidIndex };
13031
+ window.history.pushState(vidState, '', newPath);
13032
+ setSeries(vidIndex);
13033
+ setVidLoaded(true);
13034
+ }, 100);
12915
13035
  }
12916
13036
 
12917
13037
  var handleOnReady = function handleOnReady(event) {
@@ -12972,7 +13092,6 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12972
13092
  var duration = player.getDuration();
12973
13093
  var queue = Math.floor(duration / 10);
12974
13094
  var segment = Math.floor(current / queue);
12975
-
12976
13095
  if (!queueProgress.includes(segment)) {
12977
13096
  AdSlot.Beam.report_beam_video('Segment', main.main_16, duration, current, segment);
12978
13097
  queueProgress.push(segment);
@@ -12980,7 +13099,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12980
13099
  };
12981
13100
 
12982
13101
  var handleOnPlay = function handleOnPlay(event) {
12983
- // report play
13102
+ // report play
12984
13103
  var player = event.target;
12985
13104
  var current = player.getCurrentTime();
12986
13105
  var duration = player.getDuration();
@@ -13024,12 +13143,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13024
13143
  { className: 'video-block', style: { position: 'relative', overflow: 'hidden' } },
13025
13144
  vidUrl && vidType == 'youtube' ? React__default.createElement(YouTube, { videoId: YoutubeGroup.getYoutubeId(vidUrl), opts: opts, onReady: handleOnReady, onPlay: handleOnPlay, onPause: handleOnPause, onEnd: function onEnd(e) {
13026
13145
  return handleOnEnd(e);
13027
- } }) : React__default.createElement(
13028
- 'video',
13029
- { style: { width: '100%' }, controls: true },
13030
- React__default.createElement('source', { src: vidUrl, type: 'video/mp4' }),
13031
- 'Your browser does not support the video tag.'
13032
- ),
13146
+ } }) : React__default.createElement(VideoMp4, { url: vidUrl, vidLoaded: vidLoaded }),
13033
13147
  React__default.createElement(
13034
13148
  'div',
13035
13149
  {
@@ -1080,7 +1080,8 @@ var DFPAdSlot = function DFPAdSlot(_ref) {
1080
1080
  _ref$targeting = _ref.targeting,
1081
1081
  targeting = _ref$targeting === undefined ? {} : _ref$targeting,
1082
1082
  _ref$refreshFlag = _ref.refreshFlag,
1083
- refreshFlag = _ref$refreshFlag === undefined ? true : _ref$refreshFlag;
1083
+ refreshFlag = _ref$refreshFlag === undefined ? true : _ref$refreshFlag,
1084
+ setShowAd = _ref.setShowAd;
1084
1085
 
1085
1086
  var _useState = useState(false),
1086
1087
  _useState2 = _slicedToArray(_useState, 2),
@@ -1117,6 +1118,9 @@ var DFPAdSlot = function DFPAdSlot(_ref) {
1117
1118
  sizeMapping: sizeMapping,
1118
1119
  targetingArguments: targeting,
1119
1120
  onSlotRender: function onSlotRender(eventData) {
1121
+ if (slotId === 'floating-ad' && eventData && eventData.event && eventData.event.creativeId == null) {
1122
+ setShowAd(false);
1123
+ }
1120
1124
  setAdRendered(true);
1121
1125
  if (eventData && eventData.event) {
1122
1126
  var cID = eventData.event.creativeId;
@@ -22,7 +22,7 @@ import { i as imageUrlBuilder } from './index-73819142.js';
22
22
  import { L as LazyLoad } from './index-5f9f807a.js';
23
23
  import { c as clean_html_1 } from './entities-7cc3bf45.js';
24
24
  import './slicedToArray-d0a9593a.js';
25
- import { D as DFPAdSlot } from './AdSlot-0f82b407.js';
25
+ import { D as DFPAdSlot } from './AdSlot-dd75e467.js';
26
26
  import './promise-683a9c54.js';
27
27
 
28
28
  var DeckContent = function (_React$Component) {
@@ -15,7 +15,7 @@ import { withRouter } from 'next/router';
15
15
  import { i as imageUrlBuilder } from './index-73819142.js';
16
16
  import { L as LazyLoad } from './index-5f9f807a.js';
17
17
  import { c as clean_html_1 } from './entities-7cc3bf45.js';
18
- import { D as DFPAdSlot } from './AdSlot-0f82b407.js';
18
+ import { D as DFPAdSlot } from './AdSlot-dd75e467.js';
19
19
  import { g as get_1 } from './get-b2201dc8.js';
20
20
 
21
21
  var Dfp = React__default.lazy(function () {
@@ -22,7 +22,7 @@ import './index-73819142.js';
22
22
  import './index-5f9f807a.js';
23
23
  import './entities-7cc3bf45.js';
24
24
  import './slicedToArray-d0a9593a.js';
25
- import './AdSlot-0f82b407.js';
25
+ import './AdSlot-dd75e467.js';
26
26
  import './promise-683a9c54.js';
27
27
  import './get-b2201dc8.js';
28
- export { G as default } from './GridContent-bb694d2c.js';
28
+ export { G as default } from './GridContent-423f1e21.js';
@@ -7,7 +7,7 @@ import Row from 'react-bootstrap/Row';
7
7
  import Col from 'react-bootstrap/Col';
8
8
  import Link from 'next/link';
9
9
  import { _ as _slicedToArray } from './slicedToArray-d0a9593a.js';
10
- import { D as DFPAdSlot } from './AdSlot-0f82b407.js';
10
+ import { D as DFPAdSlot } from './AdSlot-dd75e467.js';
11
11
  import { g as get_1 } from './get-b2201dc8.js';
12
12
  import { Dropdown } from 'react-bootstrap';
13
13
  import { G as GenIcon, b as IoMdLogIn, c as IoIosHome } from './index.esm-536609db.js';
@@ -12,13 +12,13 @@ import 'react-bootstrap/Row';
12
12
  import 'react-bootstrap/Col';
13
13
  import 'next/link';
14
14
  import './slicedToArray-d0a9593a.js';
15
- import './AdSlot-0f82b407.js';
15
+ import './AdSlot-dd75e467.js';
16
16
  import './promise-683a9c54.js';
17
17
  import './get-b2201dc8.js';
18
18
  import 'react-bootstrap';
19
19
  import './index.esm-536609db.js';
20
20
  import 'react-bootstrap/Button';
21
- export { T as default } from './Normal-e37f2efa.js';
21
+ export { T as default } from './Normal-171a973b.js';
22
22
  import 'react-bootstrap/ListGroup';
23
23
  import 'next/head';
24
24
  import 'react-bootstrap/Nav';
package/dist/esm/index.js CHANGED
@@ -22,12 +22,12 @@ import { i as imageUrlBuilder } from './index-73819142.js';
22
22
  import './index-5f9f807a.js';
23
23
  import { h as html_decode_1, c as clean_html_1 } from './entities-7cc3bf45.js';
24
24
  import { _ as _slicedToArray } from './slicedToArray-d0a9593a.js';
25
- import { _ as _JSON$stringify, a as _asyncToGenerator, r as regenerator, D as DFPAdSlot, B as Beam } from './AdSlot-0f82b407.js';
26
- export { D as AdSlot, B as Beam } from './AdSlot-0f82b407.js';
25
+ import { _ as _JSON$stringify, a as _asyncToGenerator, r as regenerator, D as DFPAdSlot, B as Beam } from './AdSlot-dd75e467.js';
26
+ export { D as AdSlot, B as Beam } from './AdSlot-dd75e467.js';
27
27
  import './promise-683a9c54.js';
28
28
  export { default as DeckContent } from './DeckContent.js';
29
29
  import './get-b2201dc8.js';
30
- export { A as AD, G as GridContent } from './GridContent-bb694d2c.js';
30
+ export { A as AD, G as GridContent } from './GridContent-423f1e21.js';
31
31
  export { default as DeckQueue } from './DeckQueue.js';
32
32
  import 'react-bootstrap/Media';
33
33
  export { default as ThumbnailCard } from './ThumbnailCard.js';
@@ -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, T as TemplateNormal } from './Normal-e37f2efa.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-e37f2efa.js';
51
+ import { M as MdPictureAsPdf, T as TemplateNormal } from './Normal-171a973b.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-171a973b.js';
53
53
  import 'react-bootstrap/ListGroup';
54
54
  import Head from 'next/head';
55
55
  import Accordion from 'react-bootstrap/Accordion';
@@ -2877,7 +2877,7 @@ var ADFloatingFooter = function ADFloatingFooter(_ref) {
2877
2877
  showAd && React__default.createElement(
2878
2878
  'div',
2879
2879
  { className: 'floating-ad-wrapper ' + title },
2880
- React__default.createElement(DFPAdSlot, { className: className, slotId: slotId, networkID: networkID, sizes: sizes, adUnit: adUnit, targeting: adTargeting, refreshFlag: false }),
2880
+ React__default.createElement(DFPAdSlot, { className: className, slotId: slotId, networkID: networkID, sizes: sizes, adUnit: adUnit, targeting: adTargeting, refreshFlag: false, setShowAd: setShowAd }),
2881
2881
  React__default.createElement(
2882
2882
  'div',
2883
2883
  { className: 'closeButton', onClick: function onClick() {
@@ -12797,6 +12797,115 @@ var Audio = function Audio(_ref) {
12797
12797
  return null;
12798
12798
  };
12799
12799
 
12800
+ var VideoMp4 = function VideoMp4(_ref) {
12801
+ var url = _ref.url,
12802
+ vidLoaded = _ref.vidLoaded;
12803
+
12804
+ var _useState = useState(false),
12805
+ _useState2 = _slicedToArray(_useState, 2),
12806
+ playReported = _useState2[0],
12807
+ setPlayReported = _useState2[1];
12808
+
12809
+ var _useState3 = useState(false),
12810
+ _useState4 = _slicedToArray(_useState3, 2),
12811
+ endReported = _useState4[0],
12812
+ setEndReported = _useState4[1];
12813
+
12814
+ var _useState5 = useState(null),
12815
+ _useState6 = _slicedToArray(_useState5, 2),
12816
+ intervalID = _useState6[0],
12817
+ setIntervalID = _useState6[1];
12818
+
12819
+ var queueProgress = [];
12820
+
12821
+ var handleOnReady = function handleOnReady(event) {
12822
+ var player = event.target;
12823
+ var current = player.currentTime;
12824
+ var duration = player.duration;
12825
+ var queue = Math.floor(duration / 10);
12826
+ var segment = Math.floor(current / queue);
12827
+ Beam.report_beam_video('Ready', main_16, duration, current, segment);
12828
+ };
12829
+
12830
+ var handlePlayPercent = function handlePlayPercent(player) {
12831
+ var current = player.currentTime;
12832
+ var duration = player.duration;
12833
+ var queue = Math.floor(duration / 10);
12834
+ var segment = Math.floor(current / queue);
12835
+ if (!queueProgress.includes(segment)) {
12836
+ Beam.report_beam_video('Segment', main_16, duration, current, segment);
12837
+ queueProgress.push(segment);
12838
+ }
12839
+ };
12840
+
12841
+ var handleOnPlay = function handleOnPlay(event) {
12842
+ // report play
12843
+ var player = event.target;
12844
+ var current = player.currentTime;
12845
+ var duration = player.duration;
12846
+ var queue = Math.floor(duration / 10);
12847
+ var segment = Math.floor(current / queue);
12848
+ Beam.report_beam_video('Play', main_16, duration, current, segment);
12849
+
12850
+ if (!playReported) {
12851
+ event.persist();
12852
+ setPlayReported(true);
12853
+ var _intervalID = setInterval(function () {
12854
+ handlePlayPercent(event.target);
12855
+ }, 1000);
12856
+ setIntervalID(_intervalID);
12857
+ }
12858
+ };
12859
+
12860
+ var handleOnEnd = function handleOnEnd(event) {
12861
+ if (!endReported) {
12862
+ var player = event.target;
12863
+ var current = player.currentTime;
12864
+ var duration = player.duration;
12865
+ var queue = Math.floor(duration / 10);
12866
+ var segment = Math.floor(current / queue);
12867
+
12868
+ Beam.report_beam_video('End', main_16, duration, current, segment);
12869
+ setEndReported(true);
12870
+ clearInterval(intervalID);
12871
+ }
12872
+ };
12873
+
12874
+ var handleOnPause = function handleOnPause(event) {
12875
+ var player = event.target;
12876
+ var current = player.currentTime;
12877
+ var duration = player.duration - current;
12878
+ var queue = Math.floor(duration / 10);
12879
+ var segment = Math.floor(current / queue);
12880
+ Beam.report_beam_video('Pause', main_16, duration, current, segment);
12881
+ };
12882
+
12883
+ return React__default.createElement(
12884
+ 'div',
12885
+ null,
12886
+ vidLoaded && React__default.createElement(
12887
+ 'video',
12888
+ {
12889
+ style: { width: '100%' },
12890
+ controls: true,
12891
+ onCanPlay: function onCanPlay(e) {
12892
+ return handleOnReady(e);
12893
+ },
12894
+ onPause: function onPause(e) {
12895
+ return handleOnPause(e);
12896
+ },
12897
+ onEnded: function onEnded(e) {
12898
+ return handleOnEnd(e);
12899
+ },
12900
+ onPlay: function onPlay(e) {
12901
+ return handleOnPlay(e);
12902
+ } },
12903
+ React__default.createElement('source', { src: url, type: 'video/mp4' }),
12904
+ 'Your browser does not support the video tag.'
12905
+ )
12906
+ );
12907
+ };
12908
+
12800
12909
  var YouTubeGallery = function YouTubeGallery(_ref) {
12801
12910
  var nodes = _ref.nodes,
12802
12911
  client = _ref.client,
@@ -12833,20 +12942,25 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12833
12942
  vidUrl = _useState8[0],
12834
12943
  setVidUrl = _useState8[1];
12835
12944
 
12836
- var _useState9 = useState('youtube'),
12945
+ var _useState9 = useState(false),
12837
12946
  _useState10 = _slicedToArray(_useState9, 2),
12838
- vidType = _useState10[0],
12839
- setVidType = _useState10[1];
12947
+ vidLoaded = _useState10[0],
12948
+ setVidLoaded = _useState10[1];
12840
12949
 
12841
- var _useState11 = useState(''),
12950
+ var _useState11 = useState('youtube'),
12842
12951
  _useState12 = _slicedToArray(_useState11, 2),
12843
- series = _useState12[0],
12844
- setSeries = _useState12[1];
12952
+ vidType = _useState12[0],
12953
+ setVidType = _useState12[1];
12845
12954
 
12846
- var _useState13 = useState([]),
12955
+ var _useState13 = useState(''),
12847
12956
  _useState14 = _slicedToArray(_useState13, 2),
12848
- seriesData = _useState14[0],
12849
- setData = _useState14[1];
12957
+ series = _useState14[0],
12958
+ setSeries = _useState14[1];
12959
+
12960
+ var _useState15 = useState([]),
12961
+ _useState16 = _slicedToArray(_useState15, 2),
12962
+ seriesData = _useState16[0],
12963
+ setData = _useState16[1];
12850
12964
  //variables
12851
12965
 
12852
12966
 
@@ -12884,9 +12998,11 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12884
12998
  } else {
12885
12999
  setSeries(seriesVid);
12886
13000
  setVidUrl(nodes.videos[seriesVid - 1].url);
13001
+
12887
13002
  if (nodes.videos[0].type) {
12888
13003
  setVidType(nodes.videos[seriesVid - 1].type);
12889
13004
  }
13005
+ setVidLoaded(true);
12890
13006
  }
12891
13007
  setData(data);
12892
13008
  }, []);
@@ -12903,13 +13019,17 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12903
13019
 
12904
13020
  // This function is passed to the GroupDeck to change the youtube iframe src
12905
13021
  function setState(url, vidIndex) {
12906
- setVidUrl(url);
12907
- toggleSeries();
12908
- lib_3.refresh();
12909
- var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
12910
- var vidState = { vid_id: vidIndex };
12911
- window.history.pushState(vidState, '', newPath);
12912
- setSeries(vidIndex);
13022
+ setVidLoaded(false);
13023
+ setTimeout(function () {
13024
+ setVidUrl(url);
13025
+ toggleSeries();
13026
+ lib_3.refresh();
13027
+ var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
13028
+ var vidState = { vid_id: vidIndex };
13029
+ window.history.pushState(vidState, '', newPath);
13030
+ setSeries(vidIndex);
13031
+ setVidLoaded(true);
13032
+ }, 100);
12913
13033
  }
12914
13034
 
12915
13035
  var handleOnReady = function handleOnReady(event) {
@@ -12970,7 +13090,6 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12970
13090
  var duration = player.getDuration();
12971
13091
  var queue = Math.floor(duration / 10);
12972
13092
  var segment = Math.floor(current / queue);
12973
-
12974
13093
  if (!queueProgress.includes(segment)) {
12975
13094
  Beam.report_beam_video('Segment', main_16, duration, current, segment);
12976
13095
  queueProgress.push(segment);
@@ -12978,7 +13097,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12978
13097
  };
12979
13098
 
12980
13099
  var handleOnPlay = function handleOnPlay(event) {
12981
- // report play
13100
+ // report play
12982
13101
  var player = event.target;
12983
13102
  var current = player.getCurrentTime();
12984
13103
  var duration = player.getDuration();
@@ -13022,12 +13141,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13022
13141
  { className: 'video-block', style: { position: 'relative', overflow: 'hidden' } },
13023
13142
  vidUrl && vidType == 'youtube' ? React__default.createElement(YouTube, { videoId: getYoutubeId(vidUrl), opts: opts, onReady: handleOnReady, onPlay: handleOnPlay, onPause: handleOnPause, onEnd: function onEnd(e) {
13024
13143
  return handleOnEnd(e);
13025
- } }) : React__default.createElement(
13026
- 'video',
13027
- { style: { width: '100%' }, controls: true },
13028
- React__default.createElement('source', { src: vidUrl, type: 'video/mp4' }),
13029
- 'Your browser does not support the video tag.'
13030
- ),
13144
+ } }) : React__default.createElement(VideoMp4, { url: vidUrl, vidLoaded: vidLoaded }),
13031
13145
  React__default.createElement(
13032
13146
  'div',
13033
13147
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjhls/mjh-framework",
3
- "version": "1.0.258",
3
+ "version": "1.0.260",
4
4
  "description": "Foundation Framework",
5
5
  "author": "mjh-framework",
6
6
  "license": "MIT",