@micromag/core 0.3.576 → 0.3.583
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/hooks.js +44 -6
- package/es/utils.js +1 -1
- package/package.json +2 -2
package/es/hooks.js
CHANGED
|
@@ -1414,6 +1414,42 @@ var useMediaState = function useMediaState() {
|
|
|
1414
1414
|
};
|
|
1415
1415
|
};
|
|
1416
1416
|
|
|
1417
|
+
function useMediaTimestampOffset(element) {
|
|
1418
|
+
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
1419
|
+
_ref$attributeName = _ref.attributeName,
|
|
1420
|
+
attributeName = _ref$attributeName === void 0 ? 'data-ts-offset' : _ref$attributeName;
|
|
1421
|
+
var getTimestampOffset = function getTimestampOffset() {
|
|
1422
|
+
return element !== null && element.hasAttribute(attributeName) ? parseFloat(element.getAttribute(attributeName)) : 0;
|
|
1423
|
+
};
|
|
1424
|
+
var _useState = useState(getTimestampOffset()),
|
|
1425
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1426
|
+
timestampOffset = _useState2[0],
|
|
1427
|
+
setTimestampOffset = _useState2[1];
|
|
1428
|
+
var observerRef = useRef(null);
|
|
1429
|
+
useEffect(function () {
|
|
1430
|
+
if (element !== null) {
|
|
1431
|
+
observerRef.current = new MutationObserver(function (mutations) {
|
|
1432
|
+
mutations.forEach(function (_ref2) {
|
|
1433
|
+
var mutationType = _ref2.type;
|
|
1434
|
+
if (mutationType === 'attributes') {
|
|
1435
|
+
setTimestampOffset(getTimestampOffset());
|
|
1436
|
+
}
|
|
1437
|
+
});
|
|
1438
|
+
});
|
|
1439
|
+
observerRef.current.observe(element, {
|
|
1440
|
+
attributes: true,
|
|
1441
|
+
attributeFilter: [attributeName]
|
|
1442
|
+
});
|
|
1443
|
+
}
|
|
1444
|
+
return function () {
|
|
1445
|
+
if (observerRef.current !== null) {
|
|
1446
|
+
observerRef.current.disconnect();
|
|
1447
|
+
}
|
|
1448
|
+
};
|
|
1449
|
+
}, [element]);
|
|
1450
|
+
return timestampOffset;
|
|
1451
|
+
}
|
|
1452
|
+
|
|
1417
1453
|
function useMediaCurrentTime(element) {
|
|
1418
1454
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
1419
1455
|
_ref$id = _ref.id,
|
|
@@ -1429,13 +1465,14 @@ function useMediaCurrentTime(element) {
|
|
|
1429
1465
|
currentTime = _useState2[0],
|
|
1430
1466
|
setCurrentTime = _useState2[1];
|
|
1431
1467
|
var realCurrentTime = useRef(currentTime);
|
|
1468
|
+
var tsOffset = useMediaTimestampOffset(element);
|
|
1432
1469
|
var finalId = id || element;
|
|
1433
1470
|
var lastIdRef = useRef(finalId);
|
|
1434
1471
|
var idChanged = lastIdRef.current !== finalId;
|
|
1435
1472
|
var disabledRef = useRef(disabled);
|
|
1436
1473
|
var disabledChanged = disabledRef.current !== disabled;
|
|
1437
1474
|
if (idChanged || disabledChanged) {
|
|
1438
|
-
realCurrentTime.current = element !== null ? element.currentTime || 0 : 0;
|
|
1475
|
+
realCurrentTime.current = element !== null ? Math.max((element.currentTime || 0) - tsOffset, 0) : 0;
|
|
1439
1476
|
lastIdRef.current = finalId;
|
|
1440
1477
|
disabledRef.current = disabled;
|
|
1441
1478
|
}
|
|
@@ -1446,7 +1483,7 @@ function useMediaCurrentTime(element) {
|
|
|
1446
1483
|
return function () {};
|
|
1447
1484
|
}
|
|
1448
1485
|
function updateTime() {
|
|
1449
|
-
var time = element.currentTime || 0;
|
|
1486
|
+
var time = Math.max((element.currentTime || 0) - tsOffset, 0);
|
|
1450
1487
|
if (time !== realCurrentTime.current) {
|
|
1451
1488
|
realCurrentTime.current = time;
|
|
1452
1489
|
setCurrentTime(time);
|
|
@@ -1471,7 +1508,7 @@ function useMediaCurrentTime(element) {
|
|
|
1471
1508
|
loop();
|
|
1472
1509
|
return function () {
|
|
1473
1510
|
if (element !== null) {
|
|
1474
|
-
realCurrentTime.current = element.currentTime;
|
|
1511
|
+
realCurrentTime.current = element.currentTime - tsOffset;
|
|
1475
1512
|
}
|
|
1476
1513
|
if (timeout !== null) {
|
|
1477
1514
|
clearInterval(timeout);
|
|
@@ -1489,12 +1526,13 @@ function useMediaDuration(element) {
|
|
|
1489
1526
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1490
1527
|
duration = _useState2[0],
|
|
1491
1528
|
setDuration = _useState2[1];
|
|
1529
|
+
var tsOffset = useMediaTimestampOffset(element);
|
|
1492
1530
|
var realDuration = useRef(duration);
|
|
1493
1531
|
var finalId = id || element;
|
|
1494
1532
|
var lastIdRef = useRef(finalId);
|
|
1495
1533
|
var idChanged = lastIdRef.current !== finalId;
|
|
1496
1534
|
if (idChanged) {
|
|
1497
|
-
realDuration.current = element !== null ? element.duration || 0 : 0;
|
|
1535
|
+
realDuration.current = element !== null ? Math.max((element.duration || 0) - tsOffset, 0) : 0;
|
|
1498
1536
|
lastIdRef.current = finalId;
|
|
1499
1537
|
}
|
|
1500
1538
|
useEffect(function () {
|
|
@@ -1504,7 +1542,7 @@ function useMediaDuration(element) {
|
|
|
1504
1542
|
return function () {};
|
|
1505
1543
|
}
|
|
1506
1544
|
function updateDuration() {
|
|
1507
|
-
var newDuration = element.duration || 0;
|
|
1545
|
+
var newDuration = Math.max((element.duration || 0) - tsOffset, 0);
|
|
1508
1546
|
if (newDuration !== realDuration.current) {
|
|
1509
1547
|
realDuration.current = newDuration;
|
|
1510
1548
|
setDuration(newDuration);
|
|
@@ -2341,4 +2379,4 @@ var useTrackMedia = function useTrackMedia() {
|
|
|
2341
2379
|
var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;
|
|
2342
2380
|
var useWindowEvent = createUseEvent(eventsManager);
|
|
2343
2381
|
|
|
2344
|
-
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 };
|
|
2382
|
+
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, useMediaTimestampOffset, useMediaWaveform, useMediasParser, useObserver, useParsedStory, useProgressSteps, useResizeObserver, useScreenSizeFromElement, useScreenSizeFromWindow, useSpringValue, useSwipe, useThemeParser, useTrackEvent, useTrackMedia, useTrackScreenEvent, useTrackScreenMedia, useTrackScreenView, useWindowEvent };
|
package/es/utils.js
CHANGED
|
@@ -971,7 +971,7 @@ var getStyleFromMargin = function getStyleFromMargin(value) {
|
|
|
971
971
|
} : null);
|
|
972
972
|
};
|
|
973
973
|
|
|
974
|
-
var possibleMimes = ['video/webm', 'video/mp4', 'video/ogg'];
|
|
974
|
+
var possibleMimes = ['video/webm', 'video/mp4', 'video/ogg', 'application/vnd.apple.mpegurl'];
|
|
975
975
|
var supportedMimes = null;
|
|
976
976
|
function getVideoSupportedMimes() {
|
|
977
977
|
var mimes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : possibleMimes;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.583",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -144,5 +144,5 @@
|
|
|
144
144
|
"access": "public",
|
|
145
145
|
"registry": "https://registry.npmjs.org/"
|
|
146
146
|
},
|
|
147
|
-
"gitHead": "
|
|
147
|
+
"gitHead": "d899cc28ac1f5b552114d8bfcd668a9bb8ab651c"
|
|
148
148
|
}
|