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.js
CHANGED
|
@@ -367,7 +367,7 @@ function _ts_values(o) {
|
|
|
367
367
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
368
368
|
}
|
|
369
369
|
// src/ui/StormcloudVideoPlayer.tsx
|
|
370
|
-
import React2, { useEffect as useEffect2, useRef as useRef2, useMemo, useCallback as useCallback2 } from "react";
|
|
370
|
+
import React2, { useEffect as useEffect2, useRef as useRef2, useMemo as useMemo2, useCallback as useCallback2 } from "react";
|
|
371
371
|
// src/player/StormcloudVideoPlayer.ts
|
|
372
372
|
import Hls from "hls.js";
|
|
373
373
|
// src/sdk/vastParser.ts
|
|
@@ -6016,7 +6016,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
6016
6016
|
// src/ui/StormcloudVideoPlayer.tsx
|
|
6017
6017
|
import { FaPlay, FaPause, FaVolumeUp, FaVolumeMute, FaVolumeDown, FaExpand, FaCompress, FaCog, FaTimes } from "react-icons/fa";
|
|
6018
6018
|
// src/ui/OverlayRenderer.tsx
|
|
6019
|
-
import React, { useEffect, useRef, useState, useCallback } from "react";
|
|
6019
|
+
import React, { useEffect, useRef, useState, useCallback, useMemo } from "react";
|
|
6020
6020
|
// src/utils/overlays.ts
|
|
6021
6021
|
var OVERLAY_API_BASE = "https://adstorm.co/api-adstorm-dev";
|
|
6022
6022
|
function timeStringToSeconds(timeStr) {
|
|
@@ -7065,10 +7065,13 @@ function hexToRgb(hex) {
|
|
|
7065
7065
|
var num = parseInt(clean.length === 3 ? clean.replace(/./g, "$&$&") : clean, 16);
|
|
7066
7066
|
return "".concat(num >> 16 & 255, ",").concat(num >> 8 & 255, ",").concat(num & 255);
|
|
7067
7067
|
}
|
|
7068
|
+
var FADE_DURATION_MS = 1e3;
|
|
7068
7069
|
var OverlayRenderer = function OverlayRenderer(param) {
|
|
7069
7070
|
var overlays = param.overlays, currentTime = param.currentTime, videoRef = param.videoRef, coordinateSpace = param.coordinateSpace;
|
|
7070
7071
|
var _useState = _sliced_to_array(useState(null), 2), dims = _useState[0], setDims = _useState[1];
|
|
7071
7072
|
var rafRef = useRef(null);
|
|
7073
|
+
var _useState1 = _sliced_to_array(useState(/* @__PURE__ */ new Map()), 2), fadeMap = _useState1[0], setFadeMap = _useState1[1];
|
|
7074
|
+
var removeTimers = useRef(/* @__PURE__ */ new Map());
|
|
7072
7075
|
var updateDims = useCallback(function() {
|
|
7073
7076
|
var video = videoRef.current;
|
|
7074
7077
|
if (video) {
|
|
@@ -7099,10 +7102,181 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7099
7102
|
}, [
|
|
7100
7103
|
updateDims
|
|
7101
7104
|
]);
|
|
7102
|
-
var activeOverlays =
|
|
7103
|
-
return
|
|
7104
|
-
|
|
7105
|
-
|
|
7105
|
+
var activeOverlays = useMemo(function() {
|
|
7106
|
+
return overlays.filter(function(o) {
|
|
7107
|
+
return isOverlayActive(o, currentTime);
|
|
7108
|
+
});
|
|
7109
|
+
}, [
|
|
7110
|
+
overlays,
|
|
7111
|
+
currentTime
|
|
7112
|
+
]);
|
|
7113
|
+
useEffect(function() {
|
|
7114
|
+
var activeIds = new Set(activeOverlays.map(function(o) {
|
|
7115
|
+
return o.id;
|
|
7116
|
+
}));
|
|
7117
|
+
setFadeMap(function(prev) {
|
|
7118
|
+
var next = new Map(prev);
|
|
7119
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7120
|
+
try {
|
|
7121
|
+
for(var _iterator = activeOverlays[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7122
|
+
var overlay = _step.value;
|
|
7123
|
+
if (!next.has(overlay.id)) {
|
|
7124
|
+
next.set(overlay.id, {
|
|
7125
|
+
overlay: overlay,
|
|
7126
|
+
visible: false
|
|
7127
|
+
});
|
|
7128
|
+
} else {
|
|
7129
|
+
var existing = next.get(overlay.id);
|
|
7130
|
+
next.set(overlay.id, _object_spread_props(_object_spread({}, existing), {
|
|
7131
|
+
overlay: overlay
|
|
7132
|
+
}));
|
|
7133
|
+
}
|
|
7134
|
+
}
|
|
7135
|
+
} catch (err) {
|
|
7136
|
+
_didIteratorError = true;
|
|
7137
|
+
_iteratorError = err;
|
|
7138
|
+
} finally{
|
|
7139
|
+
try {
|
|
7140
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7141
|
+
_iterator.return();
|
|
7142
|
+
}
|
|
7143
|
+
} finally{
|
|
7144
|
+
if (_didIteratorError) {
|
|
7145
|
+
throw _iteratorError;
|
|
7146
|
+
}
|
|
7147
|
+
}
|
|
7148
|
+
}
|
|
7149
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
7150
|
+
try {
|
|
7151
|
+
var _loop = function() {
|
|
7152
|
+
var _step_value = _sliced_to_array(_step1.value, 2), id = _step_value[0], state = _step_value[1];
|
|
7153
|
+
if (!activeIds.has(id) && state.visible) {
|
|
7154
|
+
next.set(id, _object_spread_props(_object_spread({}, state), {
|
|
7155
|
+
visible: false
|
|
7156
|
+
}));
|
|
7157
|
+
if (!removeTimers.current.has(id)) {
|
|
7158
|
+
var timer = setTimeout(function() {
|
|
7159
|
+
setFadeMap(function(m) {
|
|
7160
|
+
var updated = new Map(m);
|
|
7161
|
+
updated.delete(id);
|
|
7162
|
+
return updated;
|
|
7163
|
+
});
|
|
7164
|
+
removeTimers.current.delete(id);
|
|
7165
|
+
}, FADE_DURATION_MS);
|
|
7166
|
+
removeTimers.current.set(id, timer);
|
|
7167
|
+
}
|
|
7168
|
+
} else if (!activeIds.has(id) && !state.visible) {}
|
|
7169
|
+
};
|
|
7170
|
+
for(var _iterator1 = next[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true)_loop();
|
|
7171
|
+
} catch (err) {
|
|
7172
|
+
_didIteratorError1 = true;
|
|
7173
|
+
_iteratorError1 = err;
|
|
7174
|
+
} finally{
|
|
7175
|
+
try {
|
|
7176
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
7177
|
+
_iterator1.return();
|
|
7178
|
+
}
|
|
7179
|
+
} finally{
|
|
7180
|
+
if (_didIteratorError1) {
|
|
7181
|
+
throw _iteratorError1;
|
|
7182
|
+
}
|
|
7183
|
+
}
|
|
7184
|
+
}
|
|
7185
|
+
return next;
|
|
7186
|
+
});
|
|
7187
|
+
}, [
|
|
7188
|
+
activeOverlays
|
|
7189
|
+
]);
|
|
7190
|
+
useEffect(function() {
|
|
7191
|
+
var toFadeIn = [];
|
|
7192
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7193
|
+
try {
|
|
7194
|
+
var _loop = function() {
|
|
7195
|
+
var _step_value = _sliced_to_array(_step.value, 2), id = _step_value[0], state = _step_value[1];
|
|
7196
|
+
if (!state.visible) {
|
|
7197
|
+
var isActive = activeOverlays.some(function(o) {
|
|
7198
|
+
return o.id === id;
|
|
7199
|
+
});
|
|
7200
|
+
if (isActive) toFadeIn.push(id);
|
|
7201
|
+
}
|
|
7202
|
+
};
|
|
7203
|
+
for(var _iterator = fadeMap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
7204
|
+
} catch (err) {
|
|
7205
|
+
_didIteratorError = true;
|
|
7206
|
+
_iteratorError = err;
|
|
7207
|
+
} finally{
|
|
7208
|
+
try {
|
|
7209
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7210
|
+
_iterator.return();
|
|
7211
|
+
}
|
|
7212
|
+
} finally{
|
|
7213
|
+
if (_didIteratorError) {
|
|
7214
|
+
throw _iteratorError;
|
|
7215
|
+
}
|
|
7216
|
+
}
|
|
7217
|
+
}
|
|
7218
|
+
if (toFadeIn.length === 0) return;
|
|
7219
|
+
var raf = requestAnimationFrame(function() {
|
|
7220
|
+
setFadeMap(function(prev) {
|
|
7221
|
+
var next = new Map(prev);
|
|
7222
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7223
|
+
try {
|
|
7224
|
+
for(var _iterator = toFadeIn[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7225
|
+
var id = _step.value;
|
|
7226
|
+
var state = next.get(id);
|
|
7227
|
+
if (state) next.set(id, _object_spread_props(_object_spread({}, state), {
|
|
7228
|
+
visible: true
|
|
7229
|
+
}));
|
|
7230
|
+
}
|
|
7231
|
+
} catch (err) {
|
|
7232
|
+
_didIteratorError = true;
|
|
7233
|
+
_iteratorError = err;
|
|
7234
|
+
} finally{
|
|
7235
|
+
try {
|
|
7236
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7237
|
+
_iterator.return();
|
|
7238
|
+
}
|
|
7239
|
+
} finally{
|
|
7240
|
+
if (_didIteratorError) {
|
|
7241
|
+
throw _iteratorError;
|
|
7242
|
+
}
|
|
7243
|
+
}
|
|
7244
|
+
}
|
|
7245
|
+
return next;
|
|
7246
|
+
});
|
|
7247
|
+
});
|
|
7248
|
+
return function() {
|
|
7249
|
+
return cancelAnimationFrame(raf);
|
|
7250
|
+
};
|
|
7251
|
+
}, [
|
|
7252
|
+
fadeMap,
|
|
7253
|
+
activeOverlays
|
|
7254
|
+
]);
|
|
7255
|
+
useEffect(function() {
|
|
7256
|
+
return function() {
|
|
7257
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
7258
|
+
try {
|
|
7259
|
+
for(var _iterator = removeTimers.current.values()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
7260
|
+
var timer = _step.value;
|
|
7261
|
+
clearTimeout(timer);
|
|
7262
|
+
}
|
|
7263
|
+
} catch (err) {
|
|
7264
|
+
_didIteratorError = true;
|
|
7265
|
+
_iteratorError = err;
|
|
7266
|
+
} finally{
|
|
7267
|
+
try {
|
|
7268
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
7269
|
+
_iterator.return();
|
|
7270
|
+
}
|
|
7271
|
+
} finally{
|
|
7272
|
+
if (_didIteratorError) {
|
|
7273
|
+
throw _iteratorError;
|
|
7274
|
+
}
|
|
7275
|
+
}
|
|
7276
|
+
}
|
|
7277
|
+
};
|
|
7278
|
+
}, []);
|
|
7279
|
+
if (!dims || fadeMap.size === 0) return null;
|
|
7106
7280
|
return /* @__PURE__ */ jsx("div", {
|
|
7107
7281
|
"aria-hidden": "true",
|
|
7108
7282
|
style: {
|
|
@@ -7115,14 +7289,16 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7115
7289
|
overflow: "hidden",
|
|
7116
7290
|
zIndex: 8
|
|
7117
7291
|
},
|
|
7118
|
-
children:
|
|
7292
|
+
children: _to_consumable_array(fadeMap.values()).map(function(param) {
|
|
7293
|
+
var overlay = param.overlay, visible = param.visible;
|
|
7119
7294
|
var scaleX = (coordinateSpace === null || coordinateSpace === void 0 ? void 0 : coordinateSpace.width) ? dims.displayWidth / coordinateSpace.width : dims.scaleX;
|
|
7120
7295
|
var scaleY = (coordinateSpace === null || coordinateSpace === void 0 ? void 0 : coordinateSpace.height) ? dims.displayHeight / coordinateSpace.height : dims.scaleY;
|
|
7121
7296
|
var left = overlay.x * scaleX;
|
|
7122
7297
|
var top = overlay.y * scaleY;
|
|
7123
7298
|
var width = overlay.width * scaleX;
|
|
7124
7299
|
var height = overlay.height * scaleY;
|
|
7125
|
-
var
|
|
7300
|
+
var baseOpacity = Math.max(0, Math.min(100, overlay.opacity)) / 100;
|
|
7301
|
+
var opacity = visible ? baseOpacity : 0;
|
|
7126
7302
|
var sz = {
|
|
7127
7303
|
w: width,
|
|
7128
7304
|
h: height
|
|
@@ -7135,6 +7311,7 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7135
7311
|
width: "".concat(width, "px"),
|
|
7136
7312
|
height: "".concat(height, "px"),
|
|
7137
7313
|
opacity: opacity,
|
|
7314
|
+
transition: "opacity ".concat(FADE_DURATION_MS, "ms ease"),
|
|
7138
7315
|
zIndex: overlay.z_index,
|
|
7139
7316
|
overflow: "hidden"
|
|
7140
7317
|
},
|
|
@@ -7404,7 +7581,7 @@ var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
|
7404
7581
|
var debugPanelBottomOffset = shouldShowEnhancedControls ? Math.max(74, 92 * responsiveScale) : Math.max(52, 58 * responsiveScale);
|
|
7405
7582
|
var panelBaseRight = PANEL_BASE_RIGHT_OFFSET * responsiveScale;
|
|
7406
7583
|
var debugPanelRightOffset = showAiPanel && !shouldStackPanels ? panelBaseRight + analyzerPanelWidth + panelGap : panelBaseRight;
|
|
7407
|
-
var criticalPropsKey =
|
|
7584
|
+
var criticalPropsKey = useMemo2(function() {
|
|
7408
7585
|
return CRITICAL_PROPS.map(function(prop) {
|
|
7409
7586
|
return "".concat(prop, ":").concat(props[prop]);
|
|
7410
7587
|
}).join("|");
|