stormcloud-video-player 0.7.9 → 0.7.10
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/dist/stormcloud-vp.min.js +1 -1
- package/lib/index.cjs +183 -6
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +186 -9
- package/lib/index.js.map +1 -1
- package/lib/ui/OverlayRenderer.cjs +247 -6
- package/lib/ui/OverlayRenderer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +183 -6
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/package.json +1 -1
package/lib/index.cjs
CHANGED
|
@@ -7231,10 +7231,13 @@ function hexToRgb(hex) {
|
|
|
7231
7231
|
var num = parseInt(clean.length === 3 ? clean.replace(/./g, "$&$&") : clean, 16);
|
|
7232
7232
|
return "".concat(num >> 16 & 255, ",").concat(num >> 8 & 255, ",").concat(num & 255);
|
|
7233
7233
|
}
|
|
7234
|
+
var FADE_DURATION_MS = 1e3;
|
|
7234
7235
|
var OverlayRenderer = function OverlayRenderer(param) {
|
|
7235
7236
|
var overlays = param.overlays, currentTime = param.currentTime, videoRef = param.videoRef, coordinateSpace = param.coordinateSpace;
|
|
7236
7237
|
var _ref = _sliced_to_array((0, import_react.useState)(null), 2), dims = _ref[0], setDims = _ref[1];
|
|
7237
7238
|
var rafRef = (0, import_react.useRef)(null);
|
|
7239
|
+
var _ref1 = _sliced_to_array((0, import_react.useState)(/* @__PURE__ */ new Map()), 2), fadeMap = _ref1[0], setFadeMap = _ref1[1];
|
|
7240
|
+
var removeTimers = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
7238
7241
|
var updateDims = (0, import_react.useCallback)(function() {
|
|
7239
7242
|
var video = videoRef.current;
|
|
7240
7243
|
if (video) {
|
|
@@ -7265,10 +7268,181 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7265
7268
|
}, [
|
|
7266
7269
|
updateDims
|
|
7267
7270
|
]);
|
|
7268
|
-
var activeOverlays =
|
|
7269
|
-
return
|
|
7270
|
-
|
|
7271
|
-
|
|
7271
|
+
var activeOverlays = (0, import_react.useMemo)(function() {
|
|
7272
|
+
return overlays.filter(function(o) {
|
|
7273
|
+
return isOverlayActive(o, currentTime);
|
|
7274
|
+
});
|
|
7275
|
+
}, [
|
|
7276
|
+
overlays,
|
|
7277
|
+
currentTime
|
|
7278
|
+
]);
|
|
7279
|
+
(0, import_react.useEffect)(function() {
|
|
7280
|
+
var activeIds = new Set(activeOverlays.map(function(o) {
|
|
7281
|
+
return o.id;
|
|
7282
|
+
}));
|
|
7283
|
+
setFadeMap(function(prev) {
|
|
7284
|
+
var next = new Map(prev);
|
|
7285
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7286
|
+
try {
|
|
7287
|
+
for(var _iterator = activeOverlays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7288
|
+
var overlay = _step.value;
|
|
7289
|
+
if (!next.has(overlay.id)) {
|
|
7290
|
+
next.set(overlay.id, {
|
|
7291
|
+
overlay: overlay,
|
|
7292
|
+
visible: false
|
|
7293
|
+
});
|
|
7294
|
+
} else {
|
|
7295
|
+
var existing = next.get(overlay.id);
|
|
7296
|
+
next.set(overlay.id, _object_spread_props(_object_spread({}, existing), {
|
|
7297
|
+
overlay: overlay
|
|
7298
|
+
}));
|
|
7299
|
+
}
|
|
7300
|
+
}
|
|
7301
|
+
} catch (err) {
|
|
7302
|
+
_didIteratorError = true;
|
|
7303
|
+
_iteratorError = err;
|
|
7304
|
+
} finally{
|
|
7305
|
+
try {
|
|
7306
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7307
|
+
_iterator.return();
|
|
7308
|
+
}
|
|
7309
|
+
} finally{
|
|
7310
|
+
if (_didIteratorError) {
|
|
7311
|
+
throw _iteratorError;
|
|
7312
|
+
}
|
|
7313
|
+
}
|
|
7314
|
+
}
|
|
7315
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
7316
|
+
try {
|
|
7317
|
+
var _loop = function() {
|
|
7318
|
+
var _step_value = _sliced_to_array(_step1.value, 2), id = _step_value[0], state = _step_value[1];
|
|
7319
|
+
if (!activeIds.has(id) && state.visible) {
|
|
7320
|
+
next.set(id, _object_spread_props(_object_spread({}, state), {
|
|
7321
|
+
visible: false
|
|
7322
|
+
}));
|
|
7323
|
+
if (!removeTimers.current.has(id)) {
|
|
7324
|
+
var timer = setTimeout(function() {
|
|
7325
|
+
setFadeMap(function(m) {
|
|
7326
|
+
var updated = new Map(m);
|
|
7327
|
+
updated.delete(id);
|
|
7328
|
+
return updated;
|
|
7329
|
+
});
|
|
7330
|
+
removeTimers.current.delete(id);
|
|
7331
|
+
}, FADE_DURATION_MS);
|
|
7332
|
+
removeTimers.current.set(id, timer);
|
|
7333
|
+
}
|
|
7334
|
+
} else if (!activeIds.has(id) && !state.visible) {}
|
|
7335
|
+
};
|
|
7336
|
+
for(var _iterator1 = next[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true)_loop();
|
|
7337
|
+
} catch (err) {
|
|
7338
|
+
_didIteratorError1 = true;
|
|
7339
|
+
_iteratorError1 = err;
|
|
7340
|
+
} finally{
|
|
7341
|
+
try {
|
|
7342
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
7343
|
+
_iterator1.return();
|
|
7344
|
+
}
|
|
7345
|
+
} finally{
|
|
7346
|
+
if (_didIteratorError1) {
|
|
7347
|
+
throw _iteratorError1;
|
|
7348
|
+
}
|
|
7349
|
+
}
|
|
7350
|
+
}
|
|
7351
|
+
return next;
|
|
7352
|
+
});
|
|
7353
|
+
}, [
|
|
7354
|
+
activeOverlays
|
|
7355
|
+
]);
|
|
7356
|
+
(0, import_react.useEffect)(function() {
|
|
7357
|
+
var toFadeIn = [];
|
|
7358
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7359
|
+
try {
|
|
7360
|
+
var _loop = function() {
|
|
7361
|
+
var _step_value = _sliced_to_array(_step.value, 2), id = _step_value[0], state = _step_value[1];
|
|
7362
|
+
if (!state.visible) {
|
|
7363
|
+
var isActive = activeOverlays.some(function(o) {
|
|
7364
|
+
return o.id === id;
|
|
7365
|
+
});
|
|
7366
|
+
if (isActive) toFadeIn.push(id);
|
|
7367
|
+
}
|
|
7368
|
+
};
|
|
7369
|
+
for(var _iterator = fadeMap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
7370
|
+
} catch (err) {
|
|
7371
|
+
_didIteratorError = true;
|
|
7372
|
+
_iteratorError = err;
|
|
7373
|
+
} finally{
|
|
7374
|
+
try {
|
|
7375
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7376
|
+
_iterator.return();
|
|
7377
|
+
}
|
|
7378
|
+
} finally{
|
|
7379
|
+
if (_didIteratorError) {
|
|
7380
|
+
throw _iteratorError;
|
|
7381
|
+
}
|
|
7382
|
+
}
|
|
7383
|
+
}
|
|
7384
|
+
if (toFadeIn.length === 0) return;
|
|
7385
|
+
var raf = requestAnimationFrame(function() {
|
|
7386
|
+
setFadeMap(function(prev) {
|
|
7387
|
+
var next = new Map(prev);
|
|
7388
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7389
|
+
try {
|
|
7390
|
+
for(var _iterator = toFadeIn[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7391
|
+
var id = _step.value;
|
|
7392
|
+
var state = next.get(id);
|
|
7393
|
+
if (state) next.set(id, _object_spread_props(_object_spread({}, state), {
|
|
7394
|
+
visible: true
|
|
7395
|
+
}));
|
|
7396
|
+
}
|
|
7397
|
+
} catch (err) {
|
|
7398
|
+
_didIteratorError = true;
|
|
7399
|
+
_iteratorError = err;
|
|
7400
|
+
} finally{
|
|
7401
|
+
try {
|
|
7402
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7403
|
+
_iterator.return();
|
|
7404
|
+
}
|
|
7405
|
+
} finally{
|
|
7406
|
+
if (_didIteratorError) {
|
|
7407
|
+
throw _iteratorError;
|
|
7408
|
+
}
|
|
7409
|
+
}
|
|
7410
|
+
}
|
|
7411
|
+
return next;
|
|
7412
|
+
});
|
|
7413
|
+
});
|
|
7414
|
+
return function() {
|
|
7415
|
+
return cancelAnimationFrame(raf);
|
|
7416
|
+
};
|
|
7417
|
+
}, [
|
|
7418
|
+
fadeMap,
|
|
7419
|
+
activeOverlays
|
|
7420
|
+
]);
|
|
7421
|
+
(0, import_react.useEffect)(function() {
|
|
7422
|
+
return function() {
|
|
7423
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7424
|
+
try {
|
|
7425
|
+
for(var _iterator = removeTimers.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7426
|
+
var timer = _step.value;
|
|
7427
|
+
clearTimeout(timer);
|
|
7428
|
+
}
|
|
7429
|
+
} catch (err) {
|
|
7430
|
+
_didIteratorError = true;
|
|
7431
|
+
_iteratorError = err;
|
|
7432
|
+
} finally{
|
|
7433
|
+
try {
|
|
7434
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7435
|
+
_iterator.return();
|
|
7436
|
+
}
|
|
7437
|
+
} finally{
|
|
7438
|
+
if (_didIteratorError) {
|
|
7439
|
+
throw _iteratorError;
|
|
7440
|
+
}
|
|
7441
|
+
}
|
|
7442
|
+
}
|
|
7443
|
+
};
|
|
7444
|
+
}, []);
|
|
7445
|
+
if (!dims || fadeMap.size === 0) return null;
|
|
7272
7446
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
7273
7447
|
"aria-hidden": "true",
|
|
7274
7448
|
style: {
|
|
@@ -7281,14 +7455,16 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7281
7455
|
overflow: "hidden",
|
|
7282
7456
|
zIndex: 8
|
|
7283
7457
|
},
|
|
7284
|
-
children:
|
|
7458
|
+
children: _to_consumable_array(fadeMap.values()).map(function(param) {
|
|
7459
|
+
var overlay = param.overlay, visible = param.visible;
|
|
7285
7460
|
var scaleX = (coordinateSpace === null || coordinateSpace === void 0 ? void 0 : coordinateSpace.width) ? dims.displayWidth / coordinateSpace.width : dims.scaleX;
|
|
7286
7461
|
var scaleY = (coordinateSpace === null || coordinateSpace === void 0 ? void 0 : coordinateSpace.height) ? dims.displayHeight / coordinateSpace.height : dims.scaleY;
|
|
7287
7462
|
var left = overlay.x * scaleX;
|
|
7288
7463
|
var top = overlay.y * scaleY;
|
|
7289
7464
|
var width = overlay.width * scaleX;
|
|
7290
7465
|
var height = overlay.height * scaleY;
|
|
7291
|
-
var
|
|
7466
|
+
var baseOpacity = Math.max(0, Math.min(100, overlay.opacity)) / 100;
|
|
7467
|
+
var opacity = visible ? baseOpacity : 0;
|
|
7292
7468
|
var sz = {
|
|
7293
7469
|
w: width,
|
|
7294
7470
|
h: height
|
|
@@ -7301,6 +7477,7 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7301
7477
|
width: "".concat(width, "px"),
|
|
7302
7478
|
height: "".concat(height, "px"),
|
|
7303
7479
|
opacity: opacity,
|
|
7480
|
+
transition: "opacity ".concat(FADE_DURATION_MS, "ms ease"),
|
|
7304
7481
|
zIndex: overlay.z_index,
|
|
7305
7482
|
overflow: "hidden"
|
|
7306
7483
|
},
|