@mjhls/mjh-framework 1.0.259 → 1.0.261

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.259
2
+ # mjh-framework v. 1.0.261
3
3
 
4
4
  > Foundation Framework
5
5
 
@@ -1131,7 +1131,7 @@ var DFPAdSlot = function DFPAdSlot(_ref) {
1131
1131
  var cID = eventData.event.creativeId;
1132
1132
  var lID = eventData.event.lineItemId;
1133
1133
  var campID = eventData.event.campaignId;
1134
- var adSize = eventData.event.size.length > 1 ? eventData.event.size[0] + 'x' + eventData.event.size[1] : '';
1134
+ var adSize = eventData.event.size && eventData.event.size.length > 1 ? eventData.event.size[0] + 'x' + eventData.event.size[1] : '';
1135
1135
  var slot_id = eventData.slotId ? eventData.slotId : '';
1136
1136
 
1137
1137
  Beam.report_beam_ad('Impression', main.main_16, cID, lID, campID, adSize, slot_id);
@@ -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-3877c8c0.js');
31
+ var AdSlot = require('./AdSlot-f998168a.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-3877c8c0.js');
24
+ var AdSlot = require('./AdSlot-f998168a.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-3877c8c0.js');
27
+ require('./AdSlot-f998168a.js');
28
28
  require('./promise-b96c61f8.js');
29
29
  require('./get-1f91592f.js');
30
- var GridContent = require('./GridContent-32ad136e.js');
30
+ var GridContent = require('./GridContent-002e17fb.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-3877c8c0.js');
15
+ var AdSlot = require('./AdSlot-f998168a.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-3877c8c0.js');
17
+ require('./AdSlot-f998168a.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-83b88703.js');
23
+ var TemplateNormal = require('./Normal-a0a4f0b8.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-3877c8c0.js');
33
+ var AdSlot = require('./AdSlot-f998168a.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-32ad136e.js');
37
+ var GridContent = require('./GridContent-002e17fb.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-83b88703.js');
55
+ var TemplateNormal = require('./Normal-a0a4f0b8.js');
56
56
  require('react-bootstrap/ListGroup');
57
57
  var Head = _interopDefault(require('next/head'));
58
58
  var Accordion = _interopDefault(require('react-bootstrap/Accordion'));
@@ -2835,7 +2835,8 @@ var AdSlotsProvider = function AdSlotsProvider(_ref) {
2835
2835
  dfpNetworkId: networkID,
2836
2836
  targeting: targeting,
2837
2837
  singleRequest: singleRequest,
2838
- lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 } },
2838
+ lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 },
2839
+ collapseEmptyDivs: true },
2839
2840
  children
2840
2841
  );
2841
2842
  };
@@ -12799,6 +12800,115 @@ var Audio = function Audio(_ref) {
12799
12800
  return null;
12800
12801
  };
12801
12802
 
12803
+ var VideoMp4 = function VideoMp4(_ref) {
12804
+ var url = _ref.url,
12805
+ vidLoaded = _ref.vidLoaded;
12806
+
12807
+ var _useState = React.useState(false),
12808
+ _useState2 = slicedToArray._slicedToArray(_useState, 2),
12809
+ playReported = _useState2[0],
12810
+ setPlayReported = _useState2[1];
12811
+
12812
+ var _useState3 = React.useState(false),
12813
+ _useState4 = slicedToArray._slicedToArray(_useState3, 2),
12814
+ endReported = _useState4[0],
12815
+ setEndReported = _useState4[1];
12816
+
12817
+ var _useState5 = React.useState(null),
12818
+ _useState6 = slicedToArray._slicedToArray(_useState5, 2),
12819
+ intervalID = _useState6[0],
12820
+ setIntervalID = _useState6[1];
12821
+
12822
+ var queueProgress = [];
12823
+
12824
+ var handleOnReady = function handleOnReady(event) {
12825
+ var player = event.target;
12826
+ var current = player.currentTime;
12827
+ var duration = player.duration;
12828
+ var queue = Math.floor(duration / 10);
12829
+ var segment = Math.floor(current / queue);
12830
+ AdSlot.Beam.report_beam_video('Ready', main.main_16, duration, current, segment);
12831
+ };
12832
+
12833
+ var handlePlayPercent = function handlePlayPercent(player) {
12834
+ var current = player.currentTime;
12835
+ var duration = player.duration;
12836
+ var queue = Math.floor(duration / 10);
12837
+ var segment = Math.floor(current / queue);
12838
+ if (!queueProgress.includes(segment)) {
12839
+ AdSlot.Beam.report_beam_video('Segment', main.main_16, duration, current, segment);
12840
+ queueProgress.push(segment);
12841
+ }
12842
+ };
12843
+
12844
+ var handleOnPlay = function handleOnPlay(event) {
12845
+ // report play
12846
+ var player = event.target;
12847
+ var current = player.currentTime;
12848
+ var duration = player.duration;
12849
+ var queue = Math.floor(duration / 10);
12850
+ var segment = Math.floor(current / queue);
12851
+ AdSlot.Beam.report_beam_video('Play', main.main_16, duration, current, segment);
12852
+
12853
+ if (!playReported) {
12854
+ event.persist();
12855
+ setPlayReported(true);
12856
+ var _intervalID = setInterval(function () {
12857
+ handlePlayPercent(event.target);
12858
+ }, 1000);
12859
+ setIntervalID(_intervalID);
12860
+ }
12861
+ };
12862
+
12863
+ var handleOnEnd = function handleOnEnd(event) {
12864
+ if (!endReported) {
12865
+ var player = event.target;
12866
+ var current = player.currentTime;
12867
+ var duration = player.duration;
12868
+ var queue = Math.floor(duration / 10);
12869
+ var segment = Math.floor(current / queue);
12870
+
12871
+ AdSlot.Beam.report_beam_video('End', main.main_16, duration, current, segment);
12872
+ setEndReported(true);
12873
+ clearInterval(intervalID);
12874
+ }
12875
+ };
12876
+
12877
+ var handleOnPause = function handleOnPause(event) {
12878
+ var player = event.target;
12879
+ var current = player.currentTime;
12880
+ var duration = player.duration - current;
12881
+ var queue = Math.floor(duration / 10);
12882
+ var segment = Math.floor(current / queue);
12883
+ AdSlot.Beam.report_beam_video('Pause', main.main_16, duration, current, segment);
12884
+ };
12885
+
12886
+ return React__default.createElement(
12887
+ 'div',
12888
+ null,
12889
+ vidLoaded && React__default.createElement(
12890
+ 'video',
12891
+ {
12892
+ style: { width: '100%' },
12893
+ controls: true,
12894
+ onCanPlay: function onCanPlay(e) {
12895
+ return handleOnReady(e);
12896
+ },
12897
+ onPause: function onPause(e) {
12898
+ return handleOnPause(e);
12899
+ },
12900
+ onEnded: function onEnded(e) {
12901
+ return handleOnEnd(e);
12902
+ },
12903
+ onPlay: function onPlay(e) {
12904
+ return handleOnPlay(e);
12905
+ } },
12906
+ React__default.createElement('source', { src: url, type: 'video/mp4' }),
12907
+ 'Your browser does not support the video tag.'
12908
+ )
12909
+ );
12910
+ };
12911
+
12802
12912
  var YouTubeGallery = function YouTubeGallery(_ref) {
12803
12913
  var nodes = _ref.nodes,
12804
12914
  client = _ref.client,
@@ -12835,20 +12945,25 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12835
12945
  vidUrl = _useState8[0],
12836
12946
  setVidUrl = _useState8[1];
12837
12947
 
12838
- var _useState9 = React.useState('youtube'),
12948
+ var _useState9 = React.useState(false),
12839
12949
  _useState10 = slicedToArray._slicedToArray(_useState9, 2),
12840
- vidType = _useState10[0],
12841
- setVidType = _useState10[1];
12950
+ vidLoaded = _useState10[0],
12951
+ setVidLoaded = _useState10[1];
12842
12952
 
12843
- var _useState11 = React.useState(''),
12953
+ var _useState11 = React.useState('youtube'),
12844
12954
  _useState12 = slicedToArray._slicedToArray(_useState11, 2),
12845
- series = _useState12[0],
12846
- setSeries = _useState12[1];
12955
+ vidType = _useState12[0],
12956
+ setVidType = _useState12[1];
12847
12957
 
12848
- var _useState13 = React.useState([]),
12958
+ var _useState13 = React.useState(''),
12849
12959
  _useState14 = slicedToArray._slicedToArray(_useState13, 2),
12850
- seriesData = _useState14[0],
12851
- setData = _useState14[1];
12960
+ series = _useState14[0],
12961
+ setSeries = _useState14[1];
12962
+
12963
+ var _useState15 = React.useState([]),
12964
+ _useState16 = slicedToArray._slicedToArray(_useState15, 2),
12965
+ seriesData = _useState16[0],
12966
+ setData = _useState16[1];
12852
12967
  //variables
12853
12968
 
12854
12969
 
@@ -12886,9 +13001,11 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12886
13001
  } else {
12887
13002
  setSeries(seriesVid);
12888
13003
  setVidUrl(nodes.videos[seriesVid - 1].url);
13004
+
12889
13005
  if (nodes.videos[0].type) {
12890
13006
  setVidType(nodes.videos[seriesVid - 1].type);
12891
13007
  }
13008
+ setVidLoaded(true);
12892
13009
  }
12893
13010
  setData(data);
12894
13011
  }, []);
@@ -12905,13 +13022,17 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12905
13022
 
12906
13023
  // This function is passed to the GroupDeck to change the youtube iframe src
12907
13024
  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);
13025
+ setVidLoaded(false);
13026
+ setTimeout(function () {
13027
+ setVidUrl(url);
13028
+ toggleSeries();
13029
+ index.lib_3.refresh();
13030
+ var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
13031
+ var vidState = { vid_id: vidIndex };
13032
+ window.history.pushState(vidState, '', newPath);
13033
+ setSeries(vidIndex);
13034
+ setVidLoaded(true);
13035
+ }, 100);
12915
13036
  }
12916
13037
 
12917
13038
  var handleOnReady = function handleOnReady(event) {
@@ -12972,7 +13093,6 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12972
13093
  var duration = player.getDuration();
12973
13094
  var queue = Math.floor(duration / 10);
12974
13095
  var segment = Math.floor(current / queue);
12975
-
12976
13096
  if (!queueProgress.includes(segment)) {
12977
13097
  AdSlot.Beam.report_beam_video('Segment', main.main_16, duration, current, segment);
12978
13098
  queueProgress.push(segment);
@@ -12980,7 +13100,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12980
13100
  };
12981
13101
 
12982
13102
  var handleOnPlay = function handleOnPlay(event) {
12983
- // report play
13103
+ // report play
12984
13104
  var player = event.target;
12985
13105
  var current = player.getCurrentTime();
12986
13106
  var duration = player.getDuration();
@@ -13024,12 +13144,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13024
13144
  { className: 'video-block', style: { position: 'relative', overflow: 'hidden' } },
13025
13145
  vidUrl && vidType == 'youtube' ? React__default.createElement(YouTube, { videoId: YoutubeGroup.getYoutubeId(vidUrl), opts: opts, onReady: handleOnReady, onPlay: handleOnPlay, onPause: handleOnPause, onEnd: function onEnd(e) {
13026
13146
  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
- ),
13147
+ } }) : React__default.createElement(VideoMp4, { url: vidUrl, vidLoaded: vidLoaded }),
13033
13148
  React__default.createElement(
13034
13149
  'div',
13035
13150
  {
@@ -1126,7 +1126,7 @@ var DFPAdSlot = function DFPAdSlot(_ref) {
1126
1126
  var cID = eventData.event.creativeId;
1127
1127
  var lID = eventData.event.lineItemId;
1128
1128
  var campID = eventData.event.campaignId;
1129
- var adSize = eventData.event.size.length > 1 ? eventData.event.size[0] + 'x' + eventData.event.size[1] : '';
1129
+ var adSize = eventData.event.size && eventData.event.size.length > 1 ? eventData.event.size[0] + 'x' + eventData.event.size[1] : '';
1130
1130
  var slot_id = eventData.slotId ? eventData.slotId : '';
1131
1131
 
1132
1132
  Beam.report_beam_ad('Impression', main_16, cID, lID, campID, adSize, slot_id);
@@ -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-dd75e467.js';
25
+ import { D as DFPAdSlot } from './AdSlot-3167a14d.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-dd75e467.js';
18
+ import { D as DFPAdSlot } from './AdSlot-3167a14d.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-dd75e467.js';
25
+ import './AdSlot-3167a14d.js';
26
26
  import './promise-683a9c54.js';
27
27
  import './get-b2201dc8.js';
28
- export { G as default } from './GridContent-423f1e21.js';
28
+ export { G as default } from './GridContent-e0d261eb.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-dd75e467.js';
10
+ import { D as DFPAdSlot } from './AdSlot-3167a14d.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-dd75e467.js';
15
+ import './AdSlot-3167a14d.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-171a973b.js';
21
+ export { T as default } from './Normal-efd518ce.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-dd75e467.js';
26
- export { D as AdSlot, B as Beam } from './AdSlot-dd75e467.js';
25
+ import { _ as _JSON$stringify, a as _asyncToGenerator, r as regenerator, D as DFPAdSlot, B as Beam } from './AdSlot-3167a14d.js';
26
+ export { D as AdSlot, B as Beam } from './AdSlot-3167a14d.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-423f1e21.js';
30
+ export { A as AD, G as GridContent } from './GridContent-e0d261eb.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-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';
51
+ import { M as MdPictureAsPdf, T as TemplateNormal } from './Normal-efd518ce.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-efd518ce.js';
53
53
  import 'react-bootstrap/ListGroup';
54
54
  import Head from 'next/head';
55
55
  import Accordion from 'react-bootstrap/Accordion';
@@ -2833,7 +2833,8 @@ var AdSlotsProvider = function AdSlotsProvider(_ref) {
2833
2833
  dfpNetworkId: networkID,
2834
2834
  targeting: targeting,
2835
2835
  singleRequest: singleRequest,
2836
- lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 } },
2836
+ lazyLoad: { fetchMarginPercent: 500, renderMarginPercent: 200, mobileScaling: 2.0 },
2837
+ collapseEmptyDivs: true },
2837
2838
  children
2838
2839
  );
2839
2840
  };
@@ -12797,6 +12798,115 @@ var Audio = function Audio(_ref) {
12797
12798
  return null;
12798
12799
  };
12799
12800
 
12801
+ var VideoMp4 = function VideoMp4(_ref) {
12802
+ var url = _ref.url,
12803
+ vidLoaded = _ref.vidLoaded;
12804
+
12805
+ var _useState = useState(false),
12806
+ _useState2 = _slicedToArray(_useState, 2),
12807
+ playReported = _useState2[0],
12808
+ setPlayReported = _useState2[1];
12809
+
12810
+ var _useState3 = useState(false),
12811
+ _useState4 = _slicedToArray(_useState3, 2),
12812
+ endReported = _useState4[0],
12813
+ setEndReported = _useState4[1];
12814
+
12815
+ var _useState5 = useState(null),
12816
+ _useState6 = _slicedToArray(_useState5, 2),
12817
+ intervalID = _useState6[0],
12818
+ setIntervalID = _useState6[1];
12819
+
12820
+ var queueProgress = [];
12821
+
12822
+ var handleOnReady = function handleOnReady(event) {
12823
+ var player = event.target;
12824
+ var current = player.currentTime;
12825
+ var duration = player.duration;
12826
+ var queue = Math.floor(duration / 10);
12827
+ var segment = Math.floor(current / queue);
12828
+ Beam.report_beam_video('Ready', main_16, duration, current, segment);
12829
+ };
12830
+
12831
+ var handlePlayPercent = function handlePlayPercent(player) {
12832
+ var current = player.currentTime;
12833
+ var duration = player.duration;
12834
+ var queue = Math.floor(duration / 10);
12835
+ var segment = Math.floor(current / queue);
12836
+ if (!queueProgress.includes(segment)) {
12837
+ Beam.report_beam_video('Segment', main_16, duration, current, segment);
12838
+ queueProgress.push(segment);
12839
+ }
12840
+ };
12841
+
12842
+ var handleOnPlay = function handleOnPlay(event) {
12843
+ // report play
12844
+ var player = event.target;
12845
+ var current = player.currentTime;
12846
+ var duration = player.duration;
12847
+ var queue = Math.floor(duration / 10);
12848
+ var segment = Math.floor(current / queue);
12849
+ Beam.report_beam_video('Play', main_16, duration, current, segment);
12850
+
12851
+ if (!playReported) {
12852
+ event.persist();
12853
+ setPlayReported(true);
12854
+ var _intervalID = setInterval(function () {
12855
+ handlePlayPercent(event.target);
12856
+ }, 1000);
12857
+ setIntervalID(_intervalID);
12858
+ }
12859
+ };
12860
+
12861
+ var handleOnEnd = function handleOnEnd(event) {
12862
+ if (!endReported) {
12863
+ var player = event.target;
12864
+ var current = player.currentTime;
12865
+ var duration = player.duration;
12866
+ var queue = Math.floor(duration / 10);
12867
+ var segment = Math.floor(current / queue);
12868
+
12869
+ Beam.report_beam_video('End', main_16, duration, current, segment);
12870
+ setEndReported(true);
12871
+ clearInterval(intervalID);
12872
+ }
12873
+ };
12874
+
12875
+ var handleOnPause = function handleOnPause(event) {
12876
+ var player = event.target;
12877
+ var current = player.currentTime;
12878
+ var duration = player.duration - current;
12879
+ var queue = Math.floor(duration / 10);
12880
+ var segment = Math.floor(current / queue);
12881
+ Beam.report_beam_video('Pause', main_16, duration, current, segment);
12882
+ };
12883
+
12884
+ return React__default.createElement(
12885
+ 'div',
12886
+ null,
12887
+ vidLoaded && React__default.createElement(
12888
+ 'video',
12889
+ {
12890
+ style: { width: '100%' },
12891
+ controls: true,
12892
+ onCanPlay: function onCanPlay(e) {
12893
+ return handleOnReady(e);
12894
+ },
12895
+ onPause: function onPause(e) {
12896
+ return handleOnPause(e);
12897
+ },
12898
+ onEnded: function onEnded(e) {
12899
+ return handleOnEnd(e);
12900
+ },
12901
+ onPlay: function onPlay(e) {
12902
+ return handleOnPlay(e);
12903
+ } },
12904
+ React__default.createElement('source', { src: url, type: 'video/mp4' }),
12905
+ 'Your browser does not support the video tag.'
12906
+ )
12907
+ );
12908
+ };
12909
+
12800
12910
  var YouTubeGallery = function YouTubeGallery(_ref) {
12801
12911
  var nodes = _ref.nodes,
12802
12912
  client = _ref.client,
@@ -12833,20 +12943,25 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12833
12943
  vidUrl = _useState8[0],
12834
12944
  setVidUrl = _useState8[1];
12835
12945
 
12836
- var _useState9 = useState('youtube'),
12946
+ var _useState9 = useState(false),
12837
12947
  _useState10 = _slicedToArray(_useState9, 2),
12838
- vidType = _useState10[0],
12839
- setVidType = _useState10[1];
12948
+ vidLoaded = _useState10[0],
12949
+ setVidLoaded = _useState10[1];
12840
12950
 
12841
- var _useState11 = useState(''),
12951
+ var _useState11 = useState('youtube'),
12842
12952
  _useState12 = _slicedToArray(_useState11, 2),
12843
- series = _useState12[0],
12844
- setSeries = _useState12[1];
12953
+ vidType = _useState12[0],
12954
+ setVidType = _useState12[1];
12845
12955
 
12846
- var _useState13 = useState([]),
12956
+ var _useState13 = useState(''),
12847
12957
  _useState14 = _slicedToArray(_useState13, 2),
12848
- seriesData = _useState14[0],
12849
- setData = _useState14[1];
12958
+ series = _useState14[0],
12959
+ setSeries = _useState14[1];
12960
+
12961
+ var _useState15 = useState([]),
12962
+ _useState16 = _slicedToArray(_useState15, 2),
12963
+ seriesData = _useState16[0],
12964
+ setData = _useState16[1];
12850
12965
  //variables
12851
12966
 
12852
12967
 
@@ -12884,9 +12999,11 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12884
12999
  } else {
12885
13000
  setSeries(seriesVid);
12886
13001
  setVidUrl(nodes.videos[seriesVid - 1].url);
13002
+
12887
13003
  if (nodes.videos[0].type) {
12888
13004
  setVidType(nodes.videos[seriesVid - 1].type);
12889
13005
  }
13006
+ setVidLoaded(true);
12890
13007
  }
12891
13008
  setData(data);
12892
13009
  }, []);
@@ -12903,13 +13020,17 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12903
13020
 
12904
13021
  // This function is passed to the GroupDeck to change the youtube iframe src
12905
13022
  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);
13023
+ setVidLoaded(false);
13024
+ setTimeout(function () {
13025
+ setVidUrl(url);
13026
+ toggleSeries();
13027
+ lib_3.refresh();
13028
+ var newPath = '/' + get2 + '/' + get3 + ('?seriesVid=' + vidIndex);
13029
+ var vidState = { vid_id: vidIndex };
13030
+ window.history.pushState(vidState, '', newPath);
13031
+ setSeries(vidIndex);
13032
+ setVidLoaded(true);
13033
+ }, 100);
12913
13034
  }
12914
13035
 
12915
13036
  var handleOnReady = function handleOnReady(event) {
@@ -12970,7 +13091,6 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12970
13091
  var duration = player.getDuration();
12971
13092
  var queue = Math.floor(duration / 10);
12972
13093
  var segment = Math.floor(current / queue);
12973
-
12974
13094
  if (!queueProgress.includes(segment)) {
12975
13095
  Beam.report_beam_video('Segment', main_16, duration, current, segment);
12976
13096
  queueProgress.push(segment);
@@ -12978,7 +13098,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
12978
13098
  };
12979
13099
 
12980
13100
  var handleOnPlay = function handleOnPlay(event) {
12981
- // report play
13101
+ // report play
12982
13102
  var player = event.target;
12983
13103
  var current = player.getCurrentTime();
12984
13104
  var duration = player.getDuration();
@@ -13022,12 +13142,7 @@ var YouTubeGallery = function YouTubeGallery(_ref) {
13022
13142
  { className: 'video-block', style: { position: 'relative', overflow: 'hidden' } },
13023
13143
  vidUrl && vidType == 'youtube' ? React__default.createElement(YouTube, { videoId: getYoutubeId(vidUrl), opts: opts, onReady: handleOnReady, onPlay: handleOnPlay, onPause: handleOnPause, onEnd: function onEnd(e) {
13024
13144
  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
- ),
13145
+ } }) : React__default.createElement(VideoMp4, { url: vidUrl, vidLoaded: vidLoaded }),
13031
13146
  React__default.createElement(
13032
13147
  'div',
13033
13148
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mjhls/mjh-framework",
3
- "version": "1.0.259",
3
+ "version": "1.0.261",
4
4
  "description": "Foundation Framework",
5
5
  "author": "mjh-framework",
6
6
  "license": "MIT",