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
|
@@ -7053,10 +7053,13 @@ function hexToRgb(hex) {
|
|
|
7053
7053
|
var num = parseInt(clean.length === 3 ? clean.replace(/./g, "$&$&") : clean, 16);
|
|
7054
7054
|
return "".concat(num >> 16 & 255, ",").concat(num >> 8 & 255, ",").concat(num & 255);
|
|
7055
7055
|
}
|
|
7056
|
+
var FADE_DURATION_MS = 1e3;
|
|
7056
7057
|
var OverlayRenderer = function OverlayRenderer(param) {
|
|
7057
7058
|
var overlays = param.overlays, currentTime = param.currentTime, videoRef = param.videoRef, coordinateSpace = param.coordinateSpace;
|
|
7058
7059
|
var _ref = _sliced_to_array((0, import_react.useState)(null), 2), dims = _ref[0], setDims = _ref[1];
|
|
7059
7060
|
var rafRef = (0, import_react.useRef)(null);
|
|
7061
|
+
var _ref1 = _sliced_to_array((0, import_react.useState)(/* @__PURE__ */ new Map()), 2), fadeMap = _ref1[0], setFadeMap = _ref1[1];
|
|
7062
|
+
var removeTimers = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
7060
7063
|
var updateDims = (0, import_react.useCallback)(function() {
|
|
7061
7064
|
var video = videoRef.current;
|
|
7062
7065
|
if (video) {
|
|
@@ -7087,10 +7090,181 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7087
7090
|
}, [
|
|
7088
7091
|
updateDims
|
|
7089
7092
|
]);
|
|
7090
|
-
var activeOverlays =
|
|
7091
|
-
return
|
|
7092
|
-
|
|
7093
|
-
|
|
7093
|
+
var activeOverlays = (0, import_react.useMemo)(function() {
|
|
7094
|
+
return overlays.filter(function(o) {
|
|
7095
|
+
return isOverlayActive(o, currentTime);
|
|
7096
|
+
});
|
|
7097
|
+
}, [
|
|
7098
|
+
overlays,
|
|
7099
|
+
currentTime
|
|
7100
|
+
]);
|
|
7101
|
+
(0, import_react.useEffect)(function() {
|
|
7102
|
+
var activeIds = new Set(activeOverlays.map(function(o) {
|
|
7103
|
+
return o.id;
|
|
7104
|
+
}));
|
|
7105
|
+
setFadeMap(function(prev) {
|
|
7106
|
+
var next = new Map(prev);
|
|
7107
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7108
|
+
try {
|
|
7109
|
+
for(var _iterator = activeOverlays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7110
|
+
var overlay = _step.value;
|
|
7111
|
+
if (!next.has(overlay.id)) {
|
|
7112
|
+
next.set(overlay.id, {
|
|
7113
|
+
overlay: overlay,
|
|
7114
|
+
visible: false
|
|
7115
|
+
});
|
|
7116
|
+
} else {
|
|
7117
|
+
var existing = next.get(overlay.id);
|
|
7118
|
+
next.set(overlay.id, _object_spread_props(_object_spread({}, existing), {
|
|
7119
|
+
overlay: overlay
|
|
7120
|
+
}));
|
|
7121
|
+
}
|
|
7122
|
+
}
|
|
7123
|
+
} catch (err) {
|
|
7124
|
+
_didIteratorError = true;
|
|
7125
|
+
_iteratorError = err;
|
|
7126
|
+
} finally{
|
|
7127
|
+
try {
|
|
7128
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7129
|
+
_iterator.return();
|
|
7130
|
+
}
|
|
7131
|
+
} finally{
|
|
7132
|
+
if (_didIteratorError) {
|
|
7133
|
+
throw _iteratorError;
|
|
7134
|
+
}
|
|
7135
|
+
}
|
|
7136
|
+
}
|
|
7137
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
7138
|
+
try {
|
|
7139
|
+
var _loop = function() {
|
|
7140
|
+
var _step_value = _sliced_to_array(_step1.value, 2), id = _step_value[0], state = _step_value[1];
|
|
7141
|
+
if (!activeIds.has(id) && state.visible) {
|
|
7142
|
+
next.set(id, _object_spread_props(_object_spread({}, state), {
|
|
7143
|
+
visible: false
|
|
7144
|
+
}));
|
|
7145
|
+
if (!removeTimers.current.has(id)) {
|
|
7146
|
+
var timer = setTimeout(function() {
|
|
7147
|
+
setFadeMap(function(m) {
|
|
7148
|
+
var updated = new Map(m);
|
|
7149
|
+
updated.delete(id);
|
|
7150
|
+
return updated;
|
|
7151
|
+
});
|
|
7152
|
+
removeTimers.current.delete(id);
|
|
7153
|
+
}, FADE_DURATION_MS);
|
|
7154
|
+
removeTimers.current.set(id, timer);
|
|
7155
|
+
}
|
|
7156
|
+
} else if (!activeIds.has(id) && !state.visible) {}
|
|
7157
|
+
};
|
|
7158
|
+
for(var _iterator1 = next[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true)_loop();
|
|
7159
|
+
} catch (err) {
|
|
7160
|
+
_didIteratorError1 = true;
|
|
7161
|
+
_iteratorError1 = err;
|
|
7162
|
+
} finally{
|
|
7163
|
+
try {
|
|
7164
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
7165
|
+
_iterator1.return();
|
|
7166
|
+
}
|
|
7167
|
+
} finally{
|
|
7168
|
+
if (_didIteratorError1) {
|
|
7169
|
+
throw _iteratorError1;
|
|
7170
|
+
}
|
|
7171
|
+
}
|
|
7172
|
+
}
|
|
7173
|
+
return next;
|
|
7174
|
+
});
|
|
7175
|
+
}, [
|
|
7176
|
+
activeOverlays
|
|
7177
|
+
]);
|
|
7178
|
+
(0, import_react.useEffect)(function() {
|
|
7179
|
+
var toFadeIn = [];
|
|
7180
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7181
|
+
try {
|
|
7182
|
+
var _loop = function() {
|
|
7183
|
+
var _step_value = _sliced_to_array(_step.value, 2), id = _step_value[0], state = _step_value[1];
|
|
7184
|
+
if (!state.visible) {
|
|
7185
|
+
var isActive = activeOverlays.some(function(o) {
|
|
7186
|
+
return o.id === id;
|
|
7187
|
+
});
|
|
7188
|
+
if (isActive) toFadeIn.push(id);
|
|
7189
|
+
}
|
|
7190
|
+
};
|
|
7191
|
+
for(var _iterator = fadeMap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
7192
|
+
} catch (err) {
|
|
7193
|
+
_didIteratorError = true;
|
|
7194
|
+
_iteratorError = err;
|
|
7195
|
+
} finally{
|
|
7196
|
+
try {
|
|
7197
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7198
|
+
_iterator.return();
|
|
7199
|
+
}
|
|
7200
|
+
} finally{
|
|
7201
|
+
if (_didIteratorError) {
|
|
7202
|
+
throw _iteratorError;
|
|
7203
|
+
}
|
|
7204
|
+
}
|
|
7205
|
+
}
|
|
7206
|
+
if (toFadeIn.length === 0) return;
|
|
7207
|
+
var raf = requestAnimationFrame(function() {
|
|
7208
|
+
setFadeMap(function(prev) {
|
|
7209
|
+
var next = new Map(prev);
|
|
7210
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7211
|
+
try {
|
|
7212
|
+
for(var _iterator = toFadeIn[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7213
|
+
var id = _step.value;
|
|
7214
|
+
var state = next.get(id);
|
|
7215
|
+
if (state) next.set(id, _object_spread_props(_object_spread({}, state), {
|
|
7216
|
+
visible: true
|
|
7217
|
+
}));
|
|
7218
|
+
}
|
|
7219
|
+
} catch (err) {
|
|
7220
|
+
_didIteratorError = true;
|
|
7221
|
+
_iteratorError = err;
|
|
7222
|
+
} finally{
|
|
7223
|
+
try {
|
|
7224
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7225
|
+
_iterator.return();
|
|
7226
|
+
}
|
|
7227
|
+
} finally{
|
|
7228
|
+
if (_didIteratorError) {
|
|
7229
|
+
throw _iteratorError;
|
|
7230
|
+
}
|
|
7231
|
+
}
|
|
7232
|
+
}
|
|
7233
|
+
return next;
|
|
7234
|
+
});
|
|
7235
|
+
});
|
|
7236
|
+
return function() {
|
|
7237
|
+
return cancelAnimationFrame(raf);
|
|
7238
|
+
};
|
|
7239
|
+
}, [
|
|
7240
|
+
fadeMap,
|
|
7241
|
+
activeOverlays
|
|
7242
|
+
]);
|
|
7243
|
+
(0, import_react.useEffect)(function() {
|
|
7244
|
+
return function() {
|
|
7245
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7246
|
+
try {
|
|
7247
|
+
for(var _iterator = removeTimers.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7248
|
+
var timer = _step.value;
|
|
7249
|
+
clearTimeout(timer);
|
|
7250
|
+
}
|
|
7251
|
+
} catch (err) {
|
|
7252
|
+
_didIteratorError = true;
|
|
7253
|
+
_iteratorError = err;
|
|
7254
|
+
} finally{
|
|
7255
|
+
try {
|
|
7256
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7257
|
+
_iterator.return();
|
|
7258
|
+
}
|
|
7259
|
+
} finally{
|
|
7260
|
+
if (_didIteratorError) {
|
|
7261
|
+
throw _iteratorError;
|
|
7262
|
+
}
|
|
7263
|
+
}
|
|
7264
|
+
}
|
|
7265
|
+
};
|
|
7266
|
+
}, []);
|
|
7267
|
+
if (!dims || fadeMap.size === 0) return null;
|
|
7094
7268
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
7095
7269
|
"aria-hidden": "true",
|
|
7096
7270
|
style: {
|
|
@@ -7103,14 +7277,16 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7103
7277
|
overflow: "hidden",
|
|
7104
7278
|
zIndex: 8
|
|
7105
7279
|
},
|
|
7106
|
-
children:
|
|
7280
|
+
children: _to_consumable_array(fadeMap.values()).map(function(param) {
|
|
7281
|
+
var overlay = param.overlay, visible = param.visible;
|
|
7107
7282
|
var scaleX = (coordinateSpace === null || coordinateSpace === void 0 ? void 0 : coordinateSpace.width) ? dims.displayWidth / coordinateSpace.width : dims.scaleX;
|
|
7108
7283
|
var scaleY = (coordinateSpace === null || coordinateSpace === void 0 ? void 0 : coordinateSpace.height) ? dims.displayHeight / coordinateSpace.height : dims.scaleY;
|
|
7109
7284
|
var left = overlay.x * scaleX;
|
|
7110
7285
|
var top = overlay.y * scaleY;
|
|
7111
7286
|
var width = overlay.width * scaleX;
|
|
7112
7287
|
var height = overlay.height * scaleY;
|
|
7113
|
-
var
|
|
7288
|
+
var baseOpacity = Math.max(0, Math.min(100, overlay.opacity)) / 100;
|
|
7289
|
+
var opacity = visible ? baseOpacity : 0;
|
|
7114
7290
|
var sz = {
|
|
7115
7291
|
w: width,
|
|
7116
7292
|
h: height
|
|
@@ -7123,6 +7299,7 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7123
7299
|
width: "".concat(width, "px"),
|
|
7124
7300
|
height: "".concat(height, "px"),
|
|
7125
7301
|
opacity: opacity,
|
|
7302
|
+
transition: "opacity ".concat(FADE_DURATION_MS, "ms ease"),
|
|
7126
7303
|
zIndex: overlay.z_index,
|
|
7127
7304
|
overflow: "hidden"
|
|
7128
7305
|
},
|