@micromag/core 0.3.459 → 0.3.463

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/es/components.js CHANGED
@@ -1084,14 +1084,14 @@ var PlayIcon = function PlayIcon(_ref) {
1084
1084
  var color = _ref.color,
1085
1085
  className = _ref.className;
1086
1086
  return /*#__PURE__*/React.createElement("svg", {
1087
- width: "20",
1088
- height: "23",
1089
- viewBox: "0 0 20 23",
1087
+ width: "40",
1088
+ height: "45.1",
1089
+ viewBox: "0 0 40 45.1",
1090
1090
  fill: "none",
1091
1091
  xmlns: "http://www.w3.org/2000/svg",
1092
1092
  className: className
1093
1093
  }, /*#__PURE__*/React.createElement("path", {
1094
- d: "M16.25 12.5574L2.74999 20.3516C1.74999 20.9289 0.499993 20.2073 0.499993 19.0526L0.499994 3.4641C0.499994 2.3094 1.74999 1.58771 2.74999 2.16506L16.25 9.95929C17.25 10.5366 17.25 11.98 16.25 12.5574Z",
1094
+ d: "M38.2,25.7L5.5,44.6C3,46,0,44.2,0,41.4L0,3.6c0-2.8,3-4.5,5.5-3.1l32.7,18.9C40.6,20.8,40.6,24.3,38.2,25.7z",
1095
1095
  fill: color,
1096
1096
  stroke: color
1097
1097
  }));
package/es/contexts.js CHANGED
@@ -825,6 +825,7 @@ var defaultValue$1 = {
825
825
  paused: false,
826
826
  muted: true,
827
827
  controls: false,
828
+ controlsSuggestPlay: false,
828
829
  controlsVisible: false,
829
830
  media: null,
830
831
  controlsTheme: defaultControlsThemeValue
@@ -862,6 +863,7 @@ var usePlaybackMediaRef = function usePlaybackMediaRef(active) {
862
863
  var propTypes$7 = {
863
864
  children: PropTypes.node.isRequired,
864
865
  controls: PropTypes.bool,
866
+ controlsSuggestPlay: PropTypes.bool,
865
867
  controlsVisible: PropTypes.bool,
866
868
  controlsTheme: PropTypes.shape({
867
869
  seekBarOnly: PropTypes.bool,
@@ -878,6 +880,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
878
880
  initialPlaying = _ref.playing,
879
881
  paused = _ref.paused,
880
882
  initialControls = _ref.controls,
883
+ initialControlsSuggestPlay = _ref.controlsSuggestPlay,
881
884
  initialControlsVisible = _ref.controlsVisible,
882
885
  initialControlsTheme = _ref.controlsTheme,
883
886
  children = _ref.children;
@@ -897,26 +900,43 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
897
900
  _useState8 = _slicedToArray(_useState7, 2),
898
901
  controls = _useState8[0],
899
902
  setControls = _useState8[1];
900
- var _useState9 = useState(initialControlsVisible),
903
+ var _useState9 = useState(initialControlsSuggestPlay),
901
904
  _useState10 = _slicedToArray(_useState9, 2),
902
- controlsVisible = _useState10[0],
903
- setControlsVisible = _useState10[1];
904
- var _useState11 = useState(initialControlsTheme),
905
+ controlsSuggestPlay = _useState10[0],
906
+ setControlsSuggestPlay = _useState10[1];
907
+ var _useState11 = useState(initialControlsVisible),
905
908
  _useState12 = _slicedToArray(_useState11, 2),
906
- controlsTheme = _useState12[0],
907
- setControlsTheme = _useState12[1];
909
+ controlsVisible = _useState12[0],
910
+ setControlsVisible = _useState12[1];
911
+ var _useState13 = useState(initialControlsTheme),
912
+ _useState14 = _slicedToArray(_useState13, 2),
913
+ controlsTheme = _useState14[0],
914
+ setControlsTheme = _useState14[1];
908
915
  var finalSetControls = useCallback(function (newControls) {
909
916
  if (newControls) {
910
917
  setControls(true);
911
918
  setControlsVisible(true);
919
+ setControlsSuggestPlay(false);
912
920
  } else {
913
921
  setControls(false);
914
922
  setControlsVisible(false);
923
+ setControlsSuggestPlay(false);
915
924
  }
916
- }, [setControls, setControlsVisible]);
925
+ }, [setControls, setControlsVisible, setControlsSuggestPlay]);
917
926
  var finalSetControlsTheme = useCallback(function (newTheme) {
918
927
  setControlsTheme(_objectSpread(_objectSpread({}, defaultControlsThemeValue), newTheme));
919
928
  }, [setControlsTheme]);
929
+ var finalSetPlaying = useCallback(function (value) {
930
+ if (value) {
931
+ setControlsSuggestPlay(false);
932
+ }
933
+ setPlaying(value);
934
+ }, [setPlaying, setControlsSuggestPlay]);
935
+
936
+ // Reset on media change
937
+ useEffect(function () {
938
+ setControlsSuggestPlay(false);
939
+ }, [media, setControlsSuggestPlay]);
920
940
  var showControls = useCallback(function () {
921
941
  return setControlsVisible(true);
922
942
  }, [setControlsVisible]);
@@ -940,20 +960,22 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
940
960
  muted: muted,
941
961
  playing: playing && !paused,
942
962
  controls: controls,
963
+ controlsSuggestPlay: controlsSuggestPlay,
943
964
  controlsVisible: controlsVisible,
944
965
  media: media,
945
966
  hasAudio: hasAudio,
946
967
  controlsTheme: controlsTheme,
947
968
  setMuted: setMuted,
948
- setPlaying: setPlaying,
969
+ setPlaying: finalSetPlaying,
949
970
  setControls: finalSetControls,
971
+ setControlsSuggestPlay: setControlsSuggestPlay,
950
972
  setControlsVisible: setControlsVisible,
951
973
  setControlsTheme: finalSetControlsTheme,
952
974
  showControls: showControls,
953
975
  hideControls: hideControls,
954
976
  setMedia: setMedia
955
977
  };
956
- }, [muted, playing, paused, controls, controlsVisible, controlsTheme, media, hasAudio, setMuted, setPlaying, finalSetControls, finalSetControlsTheme, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
978
+ }, [muted, playing, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
957
979
  return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
958
980
  value: value
959
981
  }, children);
package/es/hooks.js CHANGED
@@ -16,6 +16,7 @@ import screenfull from 'screenfull';
16
16
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
17
17
  import isArray from 'lodash/isArray';
18
18
  import isObject from 'lodash/isObject';
19
+ import createDebug from 'debug';
19
20
  import raf from 'raf';
20
21
  import { useScreensManager, useFieldsManager, useTracking, useScreen } from '@micromag/core/contexts';
21
22
  import { match } from 'css-mediaquery';
@@ -972,6 +973,10 @@ var useMediaApi = function useMediaApi() {
972
973
  setPlaying(true);
973
974
  setSuspended(false);
974
975
  }, [initialPlay, setPlaying, onPlay]);
976
+ var onCustomPlaying = useCallback(function () {
977
+ setPlaying(true);
978
+ setSuspended(false);
979
+ }, []);
975
980
  var onCustomPause = useCallback(function (e) {
976
981
  var eventMedia = e.currentTarget;
977
982
  setPlaying(false);
@@ -1072,6 +1077,7 @@ var useMediaApi = function useMediaApi() {
1072
1077
  if (media !== null) {
1073
1078
  media.addEventListener('volumechange', onCustomVolumeChange);
1074
1079
  media.addEventListener('play', onCustomPlay);
1080
+ media.addEventListener('playing', onCustomPlaying);
1075
1081
  media.addEventListener('pause', onCustomPause);
1076
1082
  media.addEventListener('ended', onCustomEnded);
1077
1083
  media.addEventListener('seeked', onCustomSeeked);
@@ -1085,6 +1091,7 @@ var useMediaApi = function useMediaApi() {
1085
1091
  if (media !== null) {
1086
1092
  media.removeEventListener('volumechange', onCustomVolumeChange);
1087
1093
  media.removeEventListener('play', onCustomPlay);
1094
+ media.removeEventListener('playing', onCustomPlaying);
1088
1095
  media.removeEventListener('pause', onCustomPause);
1089
1096
  media.removeEventListener('ended', onCustomEnded);
1090
1097
  media.removeEventListener('seeked', onCustomSeeked);
@@ -1180,6 +1187,232 @@ var useMediaApi = function useMediaApi() {
1180
1187
  };
1181
1188
  };
1182
1189
 
1190
+ var useMediaBuffering = function useMediaBuffering() {
1191
+ var mediaElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1192
+ var _useState = useState(false),
1193
+ _useState2 = _slicedToArray(_useState, 2),
1194
+ buffering = _useState2[0],
1195
+ setBuffering = _useState2[1];
1196
+ useEffect(function () {
1197
+ if (mediaElement === null) {
1198
+ return function () {};
1199
+ }
1200
+ function onBufferingEvent(e) {
1201
+ // networkstate
1202
+ if (mediaElement.networkState === mediaElement.NETWORK_LOADING) {
1203
+ // The user agent is actively trying to download data.
1204
+ console.log('buffering? NETWORK_LOADING', e);
1205
+ setBuffering(true);
1206
+ }
1207
+
1208
+ // readystate
1209
+ if (mediaElement.readyState < mediaElement.HAVE_FUTURE_DATA) {
1210
+ // There is not enough data to keep playing from this point
1211
+ console.log('buffering? You have very little data', e);
1212
+ setBuffering(true);
1213
+ }
1214
+ }
1215
+ function onPlay() {
1216
+ setBuffering(false);
1217
+ }
1218
+ function onPlaying() {
1219
+ setBuffering(false);
1220
+ }
1221
+ function onPause() {
1222
+ setBuffering(false);
1223
+ }
1224
+ function onEnded() {
1225
+ setBuffering(false);
1226
+ }
1227
+ mediaElement.addEventListener('waiting', onBufferingEvent);
1228
+ mediaElement.addEventListener('stalled', onBufferingEvent);
1229
+ mediaElement.addEventListener('play', onPlay);
1230
+ mediaElement.addEventListener('playing', onPlaying);
1231
+ mediaElement.addEventListener('pause', onPause);
1232
+ mediaElement.addEventListener('ended', onEnded);
1233
+ return function () {
1234
+ mediaElement.removeEventListener('waiting', onBufferingEvent);
1235
+ mediaElement.removeEventListener('stalled', onBufferingEvent);
1236
+ mediaElement.removeEventListener('play', onPlay);
1237
+ mediaElement.removeEventListener('playing', onPlaying);
1238
+ mediaElement.removeEventListener('pause', onPause);
1239
+ mediaElement.removeEventListener('ended', onEnded);
1240
+ };
1241
+ }, [mediaElement]);
1242
+
1243
+ // useEffect(() => {
1244
+ // if (mediaElement === null) {
1245
+ // return () => {};
1246
+ // }
1247
+ // let lastPlayPos = 0;
1248
+ // let currentPlayPos = 0;
1249
+ // let bufferingDetected = false;
1250
+
1251
+ // function checkBuffering(player, checkInterval) {
1252
+ // currentPlayPos = player.currentTime;
1253
+
1254
+ // // checking offset should be at most the check interval
1255
+ // // but allow for some margin
1256
+ // const offset = (checkInterval - 20) / 1000;
1257
+
1258
+ // // if no buffering is currently detected,
1259
+ // // and the position does not seem to increase
1260
+ // // and the player isn't manually paused...
1261
+ // if (!bufferingDetected && currentPlayPos < lastPlayPos + offset && !player.paused) {
1262
+ // console.log('buffering!');
1263
+ // bufferingDetected = true;
1264
+ // }
1265
+
1266
+ // // if we were buffering but the player has advanced,
1267
+ // // then there is no buffering
1268
+ // if (bufferingDetected && currentPlayPos > lastPlayPos + offset && !player.paused) {
1269
+ // console.log('not buffering anymore!');
1270
+ // bufferingDetected = false;
1271
+ // }
1272
+ // lastPlayPos = currentPlayPos;
1273
+
1274
+ // return bufferingDetected;
1275
+ // }
1276
+
1277
+ // const id = setInterval(() => {
1278
+ // setBuffering(checkBuffering(mediaElement, interval));
1279
+ // }, interval);
1280
+
1281
+ // return () => {
1282
+ // clearInterval(id);
1283
+ // };
1284
+ // }, [mediaElement, interval]);
1285
+
1286
+ return {
1287
+ buffering: buffering
1288
+ };
1289
+ };
1290
+
1291
+ var useMediaState = function useMediaState() {
1292
+ var mediaElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1293
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1294
+ _ref$playing = _ref.playing,
1295
+ wantedPlaying = _ref$playing === void 0 ? false : _ref$playing,
1296
+ _ref$muted = _ref.muted,
1297
+ wantedMuted = _ref$muted === void 0 ? false : _ref$muted;
1298
+ var debug = useMemo(function () {
1299
+ var mediaKey = mediaElement !== null && isString(mediaElement.src) ? mediaElement.src.split('/')[mediaElement.src.split('/').length - 1].split('#')[0] || null : null;
1300
+ return createDebug(mediaKey !== null ? "micromag:media:".concat(mediaKey) : 'micromag:media');
1301
+ }, [mediaElement]);
1302
+ var _useState = useState(wantedPlaying),
1303
+ _useState2 = _slicedToArray(_useState, 2),
1304
+ playing = _useState2[0],
1305
+ setPlaying = _useState2[1];
1306
+ var _useState3 = useState(false),
1307
+ _useState4 = _slicedToArray(_useState3, 2),
1308
+ buffering = _useState4[0],
1309
+ setBuffering = _useState4[1];
1310
+ var _useState5 = useState(mediaElement !== null && (mediaElement.muted || mediaElement.volume === 0) || wantedMuted),
1311
+ _useState6 = _slicedToArray(_useState5, 2),
1312
+ muted = _useState6[0],
1313
+ setMuted = _useState6[1];
1314
+ useEffect(function () {
1315
+ debug('State change %o', {
1316
+ playing: playing,
1317
+ buffering: buffering,
1318
+ muted: muted
1319
+ });
1320
+ }, [playing, buffering, muted, debug]);
1321
+ useEffect(function () {
1322
+ if (mediaElement === null) {
1323
+ setPlaying(wantedPlaying);
1324
+ setBuffering(false);
1325
+ setMuted(wantedMuted);
1326
+ debug('Unset media: %o', {
1327
+ wantedPlaying: wantedPlaying,
1328
+ wantedMuted: wantedMuted
1329
+ });
1330
+ }
1331
+ }, [mediaElement, debug, wantedPlaying, wantedMuted]);
1332
+ useEffect(function () {
1333
+ if (mediaElement === null) {
1334
+ return function () {};
1335
+ }
1336
+ function onBufferingEvent(e) {
1337
+ // networkstate
1338
+ if (mediaElement.networkState === mediaElement.NETWORK_LOADING) {
1339
+ debug('onBufferingEvent: NETWORK_LOADING');
1340
+ setBuffering(true);
1341
+ }
1342
+
1343
+ // readystate
1344
+ if (mediaElement.readyState < mediaElement.HAVE_FUTURE_DATA) {
1345
+ debug('onBufferingEvent: HAVE_FUTURE_DATA');
1346
+ setBuffering(true);
1347
+ }
1348
+ }
1349
+ function onPlay() {
1350
+ debug('onPlay');
1351
+ setPlaying(true);
1352
+ setBuffering(false);
1353
+ }
1354
+ function onPlaying() {
1355
+ debug('onPlaying');
1356
+ setPlaying(true);
1357
+ setBuffering(false);
1358
+ }
1359
+ function onTimeUpdate(e) {
1360
+ debug('onTimeUpdate');
1361
+ setPlaying(!e.currentTarget.paused && !e.currentTarget.ended);
1362
+ setBuffering(false);
1363
+ }
1364
+ function onPause() {
1365
+ debug('onPause');
1366
+ setPlaying(false);
1367
+ setBuffering(false);
1368
+ }
1369
+ function onEnded() {
1370
+ debug('onEnded');
1371
+ setPlaying(false);
1372
+ setBuffering(false);
1373
+ }
1374
+ function onSuspend(e) {
1375
+ debug('onSuspend');
1376
+ setPlaying(!e.currentTarget.paused && !e.currentTarget.ended);
1377
+ setBuffering(false);
1378
+ }
1379
+ function onVolumeChange() {
1380
+ setMuted(mediaElement.muted || mediaElement.volume === 0);
1381
+ }
1382
+ if (mediaElement.paused || mediaElement.ended) {
1383
+ setPlaying(false);
1384
+ }
1385
+ if (muted !== mediaElement.muted) {
1386
+ setMuted(mediaElement.muted);
1387
+ }
1388
+ mediaElement.addEventListener('waiting', onBufferingEvent);
1389
+ mediaElement.addEventListener('stalled', onBufferingEvent);
1390
+ mediaElement.addEventListener('timeupdate', onTimeUpdate);
1391
+ mediaElement.addEventListener('play', onPlay);
1392
+ mediaElement.addEventListener('playing', onPlaying);
1393
+ mediaElement.addEventListener('pause', onPause);
1394
+ mediaElement.addEventListener('suspend', onSuspend);
1395
+ mediaElement.addEventListener('ended', onEnded);
1396
+ mediaElement.addEventListener('volumechange', onVolumeChange);
1397
+ return function () {
1398
+ mediaElement.removeEventListener('waiting', onBufferingEvent);
1399
+ mediaElement.removeEventListener('stalled', onBufferingEvent);
1400
+ mediaElement.removeEventListener('timeupdate', onTimeUpdate);
1401
+ mediaElement.removeEventListener('play', onPlay);
1402
+ mediaElement.removeEventListener('playing', onPlaying);
1403
+ mediaElement.removeEventListener('pause', onPause);
1404
+ mediaElement.removeEventListener('suspend', onSuspend);
1405
+ mediaElement.removeEventListener('ended', onEnded);
1406
+ mediaElement.removeEventListener('volumechange', onVolumeChange);
1407
+ };
1408
+ }, [mediaElement, debug]);
1409
+ return {
1410
+ playing: playing,
1411
+ muted: muted,
1412
+ buffering: buffering
1413
+ };
1414
+ };
1415
+
1183
1416
  function useMediaCurrentTime(element) {
1184
1417
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
1185
1418
  _ref$id = _ref.id,
@@ -1347,28 +1580,31 @@ function useMediaProgress(media) {
1347
1580
  if (media === null) {
1348
1581
  return function () {};
1349
1582
  }
1350
- function onResume() {
1351
- if (!playing) {
1352
- setPlaying(true);
1353
- }
1354
- updateProgress(media.currentTime / media.duration);
1583
+ function onResume(e) {
1584
+ setPlaying(true);
1585
+ var newProgress = media.currentTime / media.duration;
1586
+ updateProgress(newProgress);
1587
+ }
1588
+ function onUpdate(e) {
1589
+ setPlaying(!e.currentTarget.paused && !e.currentTarget.ended);
1590
+ var newProgress = media.currentTime / media.duration;
1591
+ updateProgress(newProgress);
1355
1592
  }
1356
1593
  function onPause() {
1357
- if (playing) {
1358
- setPlaying(false);
1359
- }
1360
- updateProgress(media.currentTime / media.duration);
1594
+ setPlaying(false);
1595
+ var newProgress = media.currentTime / media.duration;
1596
+ updateProgress(newProgress);
1361
1597
  }
1362
1598
  media.addEventListener('play', onResume);
1363
- media.addEventListener('seeked', onResume);
1364
1599
  media.addEventListener('playing', onResume);
1365
- // media.addEventListener('timeupdate', onResume);
1600
+ media.addEventListener('seeked', onUpdate);
1601
+ // media.addEventListener('timeupdate', onUpdate);
1366
1602
  media.addEventListener('pause', onPause);
1367
1603
  media.addEventListener('ended', onPause);
1368
1604
  media.addEventListener('waiting', onPause);
1369
1605
  media.addEventListener('stalled', onPause);
1370
1606
  media.addEventListener('seeking', onPause);
1371
- // media.addEventListener('suspend', onPause);
1607
+ media.addEventListener('suspend', onUpdate);
1372
1608
  // if (media.paused) {
1373
1609
  // onPause();
1374
1610
  // } else {
@@ -1384,7 +1620,7 @@ function useMediaProgress(media) {
1384
1620
  media.removeEventListener('waiting', onPause);
1385
1621
  media.removeEventListener('stalled', onPause);
1386
1622
  media.removeEventListener('seeking', onPause);
1387
- // media.removeEventListener('suspend', onPause);
1623
+ media.removeEventListener('suspend', onUpdate);
1388
1624
  };
1389
1625
  }, [media, updateProgress, setPlaying, playing]);
1390
1626
  useEffect(function () {
@@ -1399,9 +1635,8 @@ function useMediaProgress(media) {
1399
1635
  }
1400
1636
  var newTime = Date.now() / 1000;
1401
1637
  var elapsed = newTime - updateTimeRef.current;
1402
- updateTimeRef.current = newTime;
1403
1638
  var step = elapsed / duration;
1404
- var newProgress = realProgressRef.current + step;
1639
+ var newProgress = realProgressRef.current < 0.1 ? media.currentTime / media.duration : realProgressRef.current + step;
1405
1640
  updateProgress(newProgress);
1406
1641
  handle = raf(tick);
1407
1642
  }
@@ -2103,4 +2338,4 @@ var useTrackMedia = function useTrackMedia() {
2103
2338
  var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;
2104
2339
  var useWindowEvent = createUseEvent(eventsManager);
2105
2340
 
2106
- export { getObserver, useActivityDetector, useAnimationFrame, useDebounced as useDebounce, useDimensionObserver, useDocumentEvent, useDragProgress, useForm, useFormTransition, useFormattedDate, useFormattedTime, useFullscreen, useIntersectionObserver, useIsVisible, useLoadedFonts, useLongPress, useMediaApi, useMediaCurrentTime, useMediaDuration, useMediaLoad, useMediaProgress, useMediaReady, useMediaThumbnail, useMediaWaveform, useMediasParser, useObserver, useParsedStory, useProgressSteps, useResizeObserver, useScreenSizeFromElement, useScreenSizeFromWindow, useSpringValue, useSwipe, useThemeParser, useTrackEvent, useTrackMedia, useTrackScreenEvent, useTrackScreenMedia, useTrackScreenView, useWindowEvent };
2341
+ export { getObserver, useActivityDetector, useAnimationFrame, useDebounced as useDebounce, useDimensionObserver, useDocumentEvent, useDragProgress, useForm, useFormTransition, useFormattedDate, useFormattedTime, useFullscreen, useIntersectionObserver, useIsVisible, useLoadedFonts, useLongPress, useMediaApi, useMediaBuffering, useMediaCurrentTime, useMediaDuration, useMediaLoad, useMediaProgress, useMediaReady, useMediaState, useMediaThumbnail, useMediaWaveform, useMediasParser, useObserver, useParsedStory, useProgressSteps, useResizeObserver, useScreenSizeFromElement, useScreenSizeFromWindow, useSpringValue, useSwipe, useThemeParser, useTrackEvent, useTrackMedia, useTrackScreenEvent, useTrackScreenMedia, useTrackScreenView, useWindowEvent };
package/es/index.js CHANGED
@@ -9,8 +9,8 @@ import isArray from 'lodash/isArray';
9
9
  import isObject from 'lodash/isObject';
10
10
  import uniqWith from 'lodash/uniqWith';
11
11
  import sortBy from 'lodash/sortBy';
12
+ import _callSuper from '@babel/runtime/helpers/callSuper';
12
13
  import _inherits from '@babel/runtime/helpers/inherits';
13
- import _createSuper from '@babel/runtime/helpers/createSuper';
14
14
  import EventEmitter from 'wolfy87-eventemitter';
15
15
  import 'lodash/isNumber';
16
16
  import '@babel/runtime/helpers/regeneratorRuntime';
@@ -1012,12 +1012,11 @@ var getComponentFromName = function getComponentFromName() {
1012
1012
 
1013
1013
  var ComponentsManager = /*#__PURE__*/function (_EventEmitter) {
1014
1014
  _inherits(ComponentsManager, _EventEmitter);
1015
- var _super = _createSuper(ComponentsManager);
1016
1015
  function ComponentsManager() {
1017
1016
  var _this;
1018
1017
  var components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1019
1018
  _classCallCheck(this, ComponentsManager);
1020
- _this = _super.call(this);
1019
+ _this = _callSuper(this, ComponentsManager);
1021
1020
  _this.components = components;
1022
1021
  return _this;
1023
1022
  }
@@ -1086,12 +1085,11 @@ var ComponentsManager = /*#__PURE__*/function (_EventEmitter) {
1086
1085
 
1087
1086
  var DefinitionsManager = /*#__PURE__*/function (_EventEmitter) {
1088
1087
  _inherits(DefinitionsManager, _EventEmitter);
1089
- var _super = _createSuper(DefinitionsManager);
1090
1088
  function DefinitionsManager() {
1091
1089
  var _this;
1092
1090
  var definitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1093
1091
  _classCallCheck(this, DefinitionsManager);
1094
- _this = _super.call(this);
1092
+ _this = _callSuper(this, DefinitionsManager);
1095
1093
  _this.definitions = definitions || [];
1096
1094
  return _this;
1097
1095
  }
@@ -1166,11 +1164,10 @@ var DefinitionsManager = /*#__PURE__*/function (_EventEmitter) {
1166
1164
 
1167
1165
  var EventsManager = /*#__PURE__*/function (_EventEmitter) {
1168
1166
  _inherits(EventsManager, _EventEmitter);
1169
- var _super = _createSuper(EventsManager);
1170
1167
  function EventsManager(element) {
1171
1168
  var _this;
1172
1169
  _classCallCheck(this, EventsManager);
1173
- _this = _super.call(this);
1170
+ _this = _callSuper(this, EventsManager);
1174
1171
  _this.element = element;
1175
1172
  _this.events = {};
1176
1173
  _this.listeners = {};
@@ -1228,10 +1225,9 @@ var EventsManager = /*#__PURE__*/function (_EventEmitter) {
1228
1225
 
1229
1226
  var FieldsManager = /*#__PURE__*/function (_DefinitionsManager) {
1230
1227
  _inherits(FieldsManager, _DefinitionsManager);
1231
- var _super = _createSuper(FieldsManager);
1232
1228
  function FieldsManager() {
1233
1229
  _classCallCheck(this, FieldsManager);
1234
- return _super.apply(this, arguments);
1230
+ return _callSuper(this, FieldsManager, arguments);
1235
1231
  }
1236
1232
  _createClass(FieldsManager, [{
1237
1233
  key: "filter",
@@ -1518,10 +1514,9 @@ var MediasParser = /*#__PURE__*/function () {
1518
1514
 
1519
1515
  var ScreensManager = /*#__PURE__*/function (_DefinitionsManager) {
1520
1516
  _inherits(ScreensManager, _DefinitionsManager);
1521
- var _super = _createSuper(ScreensManager);
1522
1517
  function ScreensManager() {
1523
1518
  _classCallCheck(this, ScreensManager);
1524
- return _super.apply(this, arguments);
1519
+ return _callSuper(this, ScreensManager, arguments);
1525
1520
  }
1526
1521
  _createClass(ScreensManager, [{
1527
1522
  key: "getFields",
@@ -2152,12 +2147,11 @@ var _excluded = ["value"],
2152
2147
  _excluded2 = ["value", "currentTime"];
2153
2148
  var Tracking = /*#__PURE__*/function (_BaseTracking) {
2154
2149
  _inherits(Tracking, _BaseTracking);
2155
- var _super = _createSuper(Tracking);
2156
2150
  function Tracking() {
2157
2151
  var _this;
2158
2152
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2159
2153
  _classCallCheck(this, Tracking);
2160
- _this = _super.call(this, opts);
2154
+ _this = _callSuper(this, Tracking, [opts]);
2161
2155
  var _this$options$variabl = _this.options.variables,
2162
2156
  variables = _this$options$variabl === void 0 ? null : _this$options$variabl;
2163
2157
  _this.variables = null;
package/lib/components.js CHANGED
@@ -1086,14 +1086,14 @@ var PlayIcon = function PlayIcon(_ref) {
1086
1086
  var color = _ref.color,
1087
1087
  className = _ref.className;
1088
1088
  return /*#__PURE__*/React.createElement("svg", {
1089
- width: "20",
1090
- height: "23",
1091
- viewBox: "0 0 20 23",
1089
+ width: "40",
1090
+ height: "45.1",
1091
+ viewBox: "0 0 40 45.1",
1092
1092
  fill: "none",
1093
1093
  xmlns: "http://www.w3.org/2000/svg",
1094
1094
  className: className
1095
1095
  }, /*#__PURE__*/React.createElement("path", {
1096
- d: "M16.25 12.5574L2.74999 20.3516C1.74999 20.9289 0.499993 20.2073 0.499993 19.0526L0.499994 3.4641C0.499994 2.3094 1.74999 1.58771 2.74999 2.16506L16.25 9.95929C17.25 10.5366 17.25 11.98 16.25 12.5574Z",
1096
+ d: "M38.2,25.7L5.5,44.6C3,46,0,44.2,0,41.4L0,3.6c0-2.8,3-4.5,5.5-3.1l32.7,18.9C40.6,20.8,40.6,24.3,38.2,25.7z",
1097
1097
  fill: color,
1098
1098
  stroke: color
1099
1099
  }));
package/lib/contexts.js CHANGED
@@ -826,6 +826,7 @@ var defaultValue$1 = {
826
826
  paused: false,
827
827
  muted: true,
828
828
  controls: false,
829
+ controlsSuggestPlay: false,
829
830
  controlsVisible: false,
830
831
  media: null,
831
832
  controlsTheme: defaultControlsThemeValue
@@ -863,6 +864,7 @@ var usePlaybackMediaRef = function usePlaybackMediaRef(active) {
863
864
  var propTypes$7 = {
864
865
  children: PropTypes.node.isRequired,
865
866
  controls: PropTypes.bool,
867
+ controlsSuggestPlay: PropTypes.bool,
866
868
  controlsVisible: PropTypes.bool,
867
869
  controlsTheme: PropTypes.shape({
868
870
  seekBarOnly: PropTypes.bool,
@@ -879,6 +881,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
879
881
  initialPlaying = _ref.playing,
880
882
  paused = _ref.paused,
881
883
  initialControls = _ref.controls,
884
+ initialControlsSuggestPlay = _ref.controlsSuggestPlay,
882
885
  initialControlsVisible = _ref.controlsVisible,
883
886
  initialControlsTheme = _ref.controlsTheme,
884
887
  children = _ref.children;
@@ -898,26 +901,43 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
898
901
  _useState8 = _slicedToArray(_useState7, 2),
899
902
  controls = _useState8[0],
900
903
  setControls = _useState8[1];
901
- var _useState9 = React.useState(initialControlsVisible),
904
+ var _useState9 = React.useState(initialControlsSuggestPlay),
902
905
  _useState10 = _slicedToArray(_useState9, 2),
903
- controlsVisible = _useState10[0],
904
- setControlsVisible = _useState10[1];
905
- var _useState11 = React.useState(initialControlsTheme),
906
+ controlsSuggestPlay = _useState10[0],
907
+ setControlsSuggestPlay = _useState10[1];
908
+ var _useState11 = React.useState(initialControlsVisible),
906
909
  _useState12 = _slicedToArray(_useState11, 2),
907
- controlsTheme = _useState12[0],
908
- setControlsTheme = _useState12[1];
910
+ controlsVisible = _useState12[0],
911
+ setControlsVisible = _useState12[1];
912
+ var _useState13 = React.useState(initialControlsTheme),
913
+ _useState14 = _slicedToArray(_useState13, 2),
914
+ controlsTheme = _useState14[0],
915
+ setControlsTheme = _useState14[1];
909
916
  var finalSetControls = React.useCallback(function (newControls) {
910
917
  if (newControls) {
911
918
  setControls(true);
912
919
  setControlsVisible(true);
920
+ setControlsSuggestPlay(false);
913
921
  } else {
914
922
  setControls(false);
915
923
  setControlsVisible(false);
924
+ setControlsSuggestPlay(false);
916
925
  }
917
- }, [setControls, setControlsVisible]);
926
+ }, [setControls, setControlsVisible, setControlsSuggestPlay]);
918
927
  var finalSetControlsTheme = React.useCallback(function (newTheme) {
919
928
  setControlsTheme(_objectSpread(_objectSpread({}, defaultControlsThemeValue), newTheme));
920
929
  }, [setControlsTheme]);
930
+ var finalSetPlaying = React.useCallback(function (value) {
931
+ if (value) {
932
+ setControlsSuggestPlay(false);
933
+ }
934
+ setPlaying(value);
935
+ }, [setPlaying, setControlsSuggestPlay]);
936
+
937
+ // Reset on media change
938
+ React.useEffect(function () {
939
+ setControlsSuggestPlay(false);
940
+ }, [media, setControlsSuggestPlay]);
921
941
  var showControls = React.useCallback(function () {
922
942
  return setControlsVisible(true);
923
943
  }, [setControlsVisible]);
@@ -941,20 +961,22 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
941
961
  muted: muted,
942
962
  playing: playing && !paused,
943
963
  controls: controls,
964
+ controlsSuggestPlay: controlsSuggestPlay,
944
965
  controlsVisible: controlsVisible,
945
966
  media: media,
946
967
  hasAudio: hasAudio,
947
968
  controlsTheme: controlsTheme,
948
969
  setMuted: setMuted,
949
- setPlaying: setPlaying,
970
+ setPlaying: finalSetPlaying,
950
971
  setControls: finalSetControls,
972
+ setControlsSuggestPlay: setControlsSuggestPlay,
951
973
  setControlsVisible: setControlsVisible,
952
974
  setControlsTheme: finalSetControlsTheme,
953
975
  showControls: showControls,
954
976
  hideControls: hideControls,
955
977
  setMedia: setMedia
956
978
  };
957
- }, [muted, playing, paused, controls, controlsVisible, controlsTheme, media, hasAudio, setMuted, setPlaying, finalSetControls, finalSetControlsTheme, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
979
+ }, [muted, playing, paused, controls, controlsSuggestPlay, controlsVisible, controlsTheme, media, hasAudio, setMuted, finalSetPlaying, finalSetControls, finalSetControlsTheme, setControlsSuggestPlay, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
958
980
  return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
959
981
  value: value
960
982
  }, children);
@@ -1954,7 +1976,7 @@ var VisitorProvider = function VisitorProvider(_ref) {
1954
1976
  VisitorProvider.propTypes = propTypes;
1955
1977
  VisitorProvider.defaultProps = defaultProps;
1956
1978
 
1957
- Object.defineProperty(exports, 'TrackingContext', {
1979
+ Object.defineProperty(exports, "TrackingContext", {
1958
1980
  enumerable: true,
1959
1981
  get: function () { return tracking.TrackingContext; }
1960
1982
  });