stormcloud-video-player 0.7.36 → 0.7.38
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 +169 -35
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +17 -2
- package/lib/index.d.ts +17 -2
- package/lib/index.js +159 -37
- package/lib/index.js.map +1 -1
- package/lib/player/StormcloudVideoPlayer.cjs +40 -0
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +4 -0
- package/lib/players/HlsPlayer.cjs +40 -0
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +40 -0
- package/lib/players/index.cjs.map +1 -1
- package/lib/ui/OverlayRenderer.cjs +9 -7
- package/lib/ui/OverlayRenderer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.cjs +157 -35
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/ui/StormcloudVideoPlayer.d.cts +5 -0
- package/lib/utils/overlays.cjs +87 -7
- package/lib/utils/overlays.cjs.map +1 -1
- package/lib/utils/overlays.d.cts +8 -2
- package/package.json +1 -1
package/lib/index.d.cts
CHANGED
|
@@ -260,6 +260,10 @@ declare class StormcloudVideoPlayer {
|
|
|
260
260
|
width: number;
|
|
261
261
|
height: number;
|
|
262
262
|
} | null;
|
|
263
|
+
getMaxHlsResolution(): {
|
|
264
|
+
width: number;
|
|
265
|
+
height: number;
|
|
266
|
+
} | null;
|
|
263
267
|
getCurrentHlsSegmentDurationMs(): number | null;
|
|
264
268
|
get videoElement(): HTMLVideoElement;
|
|
265
269
|
resize(): void;
|
|
@@ -273,6 +277,11 @@ type StormcloudVideoPlayerProps = Omit<StormcloudVideoPlayerConfig, "videoElemen
|
|
|
273
277
|
licenseKey?: string;
|
|
274
278
|
swirlProjectId?: number;
|
|
275
279
|
swirlShowcaseDemo?: boolean;
|
|
280
|
+
swirlOverlayApiBaseUrl?: string;
|
|
281
|
+
swirlOverlayCoordinateSpace?: {
|
|
282
|
+
width: number;
|
|
283
|
+
height: number;
|
|
284
|
+
} | null;
|
|
276
285
|
adcisionChannelId?: number;
|
|
277
286
|
disableOverlays?: boolean;
|
|
278
287
|
showAdsControl?: boolean;
|
|
@@ -4007,6 +4016,7 @@ declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
|
|
|
4007
4016
|
declare function sendInitialTracking(licenseKey?: string): Promise<void>;
|
|
4008
4017
|
declare function sendHeartbeat(licenseKey?: string): Promise<void>;
|
|
4009
4018
|
|
|
4019
|
+
declare const OVERLAY_API_BASE = "https://adstorm.co/api-adstorm-dev";
|
|
4010
4020
|
interface OverlayCoordinateSpace {
|
|
4011
4021
|
width: number;
|
|
4012
4022
|
height: number;
|
|
@@ -4071,7 +4081,12 @@ interface SwirlOverlay {
|
|
|
4071
4081
|
}
|
|
4072
4082
|
declare function timeStringToSeconds(timeStr: string): number;
|
|
4073
4083
|
declare function isOverlayActive(overlay: SwirlOverlay, currentTime: number): boolean;
|
|
4074
|
-
declare function
|
|
4084
|
+
declare function scrollerLooksLikeMarketsStock(o: SwirlOverlay): boolean;
|
|
4085
|
+
type DemoStockTickerOptions = {
|
|
4086
|
+
stackAboveNews?: boolean;
|
|
4087
|
+
};
|
|
4088
|
+
declare function createDemoStockTickerOverlay(projectId: number, opts?: DemoStockTickerOptions): SwirlOverlay;
|
|
4089
|
+
declare function normalizeSwirlOverlay(raw: SwirlOverlay & Record<string, unknown>): SwirlOverlay;
|
|
4075
4090
|
declare function fetchProjectOverlays(projectId: number, apiBaseUrl?: string): Promise<SwirlOverlay[]>;
|
|
4076
4091
|
declare function resolveImageUrl(imageUrl: string, apiBaseUrl?: string): string;
|
|
4077
4092
|
|
|
@@ -4132,4 +4147,4 @@ interface AdStormAdLayer extends AdController {
|
|
|
4132
4147
|
}
|
|
4133
4148
|
declare function createAdStormPlayer(contentVideo: HTMLVideoElement, options: AdStormPlayerOptions): AdStormAdLayer;
|
|
4134
4149
|
|
|
4135
|
-
export { type AdBreak, type AdSchedule, type AdStormAdLayer, type AdStormLayerOptionsUpdate, type AdStormPlayerOptions, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type LateJoinPolicy, type OnProgressProps, type OverlayCoordinateSpace, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type SwirlOverlay, type SwirlOverlayType, type SwirlScrollerConfig, type TrackingData, type VastBidResponse, canPlay, createAdStormPlayer, createDemoStockTickerOverlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fetchProjectOverlays, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, isOverlayActive, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, resolveImageUrl, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, timeStringToSeconds };
|
|
4150
|
+
export { type AdBreak, type AdSchedule, type AdStormAdLayer, type AdStormLayerOptionsUpdate, type AdStormPlayerOptions, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type DemoStockTickerOptions, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type LateJoinPolicy, OVERLAY_API_BASE, type OnProgressProps, type OverlayCoordinateSpace, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type SwirlOverlay, type SwirlOverlayType, type SwirlScrollerConfig, type TrackingData, type VastBidResponse, canPlay, createAdStormPlayer, createDemoStockTickerOverlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fetchProjectOverlays, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, isOverlayActive, lazy, logBrowserInfo, merge, normalizeSwirlOverlay, omit, parseQuery, players, randomString, resolveImageUrl, scrollerLooksLikeMarketsStock, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, timeStringToSeconds };
|
package/lib/index.d.ts
CHANGED
|
@@ -260,6 +260,10 @@ declare class StormcloudVideoPlayer {
|
|
|
260
260
|
width: number;
|
|
261
261
|
height: number;
|
|
262
262
|
} | null;
|
|
263
|
+
getMaxHlsResolution(): {
|
|
264
|
+
width: number;
|
|
265
|
+
height: number;
|
|
266
|
+
} | null;
|
|
263
267
|
getCurrentHlsSegmentDurationMs(): number | null;
|
|
264
268
|
get videoElement(): HTMLVideoElement;
|
|
265
269
|
resize(): void;
|
|
@@ -273,6 +277,11 @@ type StormcloudVideoPlayerProps = Omit<StormcloudVideoPlayerConfig, "videoElemen
|
|
|
273
277
|
licenseKey?: string;
|
|
274
278
|
swirlProjectId?: number;
|
|
275
279
|
swirlShowcaseDemo?: boolean;
|
|
280
|
+
swirlOverlayApiBaseUrl?: string;
|
|
281
|
+
swirlOverlayCoordinateSpace?: {
|
|
282
|
+
width: number;
|
|
283
|
+
height: number;
|
|
284
|
+
} | null;
|
|
276
285
|
adcisionChannelId?: number;
|
|
277
286
|
disableOverlays?: boolean;
|
|
278
287
|
showAdsControl?: boolean;
|
|
@@ -4007,6 +4016,7 @@ declare function getBrowserID(clientInfo: ClientInfo): Promise<string>;
|
|
|
4007
4016
|
declare function sendInitialTracking(licenseKey?: string): Promise<void>;
|
|
4008
4017
|
declare function sendHeartbeat(licenseKey?: string): Promise<void>;
|
|
4009
4018
|
|
|
4019
|
+
declare const OVERLAY_API_BASE = "https://adstorm.co/api-adstorm-dev";
|
|
4010
4020
|
interface OverlayCoordinateSpace {
|
|
4011
4021
|
width: number;
|
|
4012
4022
|
height: number;
|
|
@@ -4071,7 +4081,12 @@ interface SwirlOverlay {
|
|
|
4071
4081
|
}
|
|
4072
4082
|
declare function timeStringToSeconds(timeStr: string): number;
|
|
4073
4083
|
declare function isOverlayActive(overlay: SwirlOverlay, currentTime: number): boolean;
|
|
4074
|
-
declare function
|
|
4084
|
+
declare function scrollerLooksLikeMarketsStock(o: SwirlOverlay): boolean;
|
|
4085
|
+
type DemoStockTickerOptions = {
|
|
4086
|
+
stackAboveNews?: boolean;
|
|
4087
|
+
};
|
|
4088
|
+
declare function createDemoStockTickerOverlay(projectId: number, opts?: DemoStockTickerOptions): SwirlOverlay;
|
|
4089
|
+
declare function normalizeSwirlOverlay(raw: SwirlOverlay & Record<string, unknown>): SwirlOverlay;
|
|
4075
4090
|
declare function fetchProjectOverlays(projectId: number, apiBaseUrl?: string): Promise<SwirlOverlay[]>;
|
|
4076
4091
|
declare function resolveImageUrl(imageUrl: string, apiBaseUrl?: string): string;
|
|
4077
4092
|
|
|
@@ -4132,4 +4147,4 @@ interface AdStormAdLayer extends AdController {
|
|
|
4132
4147
|
}
|
|
4133
4148
|
declare function createAdStormPlayer(contentVideo: HTMLVideoElement, options: AdStormPlayerOptions): AdStormAdLayer;
|
|
4134
4149
|
|
|
4135
|
-
export { type AdBreak, type AdSchedule, type AdStormAdLayer, type AdStormLayerOptionsUpdate, type AdStormPlayerOptions, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type LateJoinPolicy, type OnProgressProps, type OverlayCoordinateSpace, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type SwirlOverlay, type SwirlOverlayType, type SwirlScrollerConfig, type TrackingData, type VastBidResponse, canPlay, createAdStormPlayer, createDemoStockTickerOverlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fetchProjectOverlays, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, isOverlayActive, lazy, logBrowserInfo, merge, omit, parseQuery, players, randomString, resolveImageUrl, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, timeStringToSeconds };
|
|
4150
|
+
export { type AdBreak, type AdSchedule, type AdStormAdLayer, type AdStormLayerOptionsUpdate, type AdStormPlayerOptions, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, type DemoStockTickerOptions, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type LateJoinPolicy, OVERLAY_API_BASE, type OnProgressProps, type OverlayCoordinateSpace, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type SwirlOverlay, type SwirlOverlayType, type SwirlScrollerConfig, type TrackingData, type VastBidResponse, canPlay, createAdStormPlayer, createDemoStockTickerOverlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fetchProjectOverlays, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, isOverlayActive, lazy, logBrowserInfo, merge, normalizeSwirlOverlay, omit, parseQuery, players, randomString, resolveImageUrl, scrollerLooksLikeMarketsStock, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, timeStringToSeconds };
|
package/lib/index.js
CHANGED
|
@@ -5514,6 +5514,46 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
5514
5514
|
return min;
|
|
5515
5515
|
}
|
|
5516
5516
|
},
|
|
5517
|
+
{
|
|
5518
|
+
key: "getMaxHlsResolution",
|
|
5519
|
+
value: function getMaxHlsResolution() {
|
|
5520
|
+
var _this_hls;
|
|
5521
|
+
var levels = (_this_hls = this.hls) === null || _this_hls === void 0 ? void 0 : _this_hls.levels;
|
|
5522
|
+
if (!levels || levels.length === 0) return null;
|
|
5523
|
+
var max = null;
|
|
5524
|
+
var maxPixels = 0;
|
|
5525
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
5526
|
+
try {
|
|
5527
|
+
for(var _iterator = levels[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
5528
|
+
var level = _step.value;
|
|
5529
|
+
if (level.width && level.height) {
|
|
5530
|
+
var pixels = level.width * level.height;
|
|
5531
|
+
if (pixels > maxPixels) {
|
|
5532
|
+
maxPixels = pixels;
|
|
5533
|
+
max = {
|
|
5534
|
+
width: level.width,
|
|
5535
|
+
height: level.height
|
|
5536
|
+
};
|
|
5537
|
+
}
|
|
5538
|
+
}
|
|
5539
|
+
}
|
|
5540
|
+
} catch (err) {
|
|
5541
|
+
_didIteratorError = true;
|
|
5542
|
+
_iteratorError = err;
|
|
5543
|
+
} finally{
|
|
5544
|
+
try {
|
|
5545
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
5546
|
+
_iterator.return();
|
|
5547
|
+
}
|
|
5548
|
+
} finally{
|
|
5549
|
+
if (_didIteratorError) {
|
|
5550
|
+
throw _iteratorError;
|
|
5551
|
+
}
|
|
5552
|
+
}
|
|
5553
|
+
}
|
|
5554
|
+
return max;
|
|
5555
|
+
}
|
|
5556
|
+
},
|
|
5517
5557
|
{
|
|
5518
5558
|
key: "getCurrentHlsSegmentDurationMs",
|
|
5519
5559
|
value: function getCurrentHlsSegmentDurationMs() {
|
|
@@ -5624,7 +5664,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
5624
5664
|
// src/ui/StormcloudVideoPlayer.tsx
|
|
5625
5665
|
import { FaPlay, FaPause, FaVolumeUp, FaVolumeMute, FaVolumeDown, FaExpand, FaCompress, FaCog, FaTimes, FaCopy, FaLayerGroup } from "react-icons/fa";
|
|
5626
5666
|
// src/ui/OverlayRenderer.tsx
|
|
5627
|
-
import React, { useEffect, useRef, useState, useCallback, useMemo, useId } from "react";
|
|
5667
|
+
import React, { useEffect, useLayoutEffect, useRef, useState, useCallback, useMemo, useId } from "react";
|
|
5628
5668
|
// src/utils/overlays.ts
|
|
5629
5669
|
var OVERLAY_API_BASE = "https://adstorm.co/api-adstorm-dev";
|
|
5630
5670
|
function timeStringToSeconds(timeStr) {
|
|
@@ -5661,7 +5701,15 @@ function isOverlayActive(overlay, currentTime) {
|
|
|
5661
5701
|
if (durationSec <= 0) return false;
|
|
5662
5702
|
return currentTime >= startSec && currentTime < startSec + durationSec;
|
|
5663
5703
|
}
|
|
5664
|
-
function
|
|
5704
|
+
function scrollerLooksLikeMarketsStock(o) {
|
|
5705
|
+
var _ref, _ref1, _ref2, _ref3;
|
|
5706
|
+
if (o.type !== "scroller") return false;
|
|
5707
|
+
var cfg = o.scroller_config;
|
|
5708
|
+
var blob = "".concat(o.name, " ").concat((_ref = cfg === null || cfg === void 0 ? void 0 : cfg.label) !== null && _ref !== void 0 ? _ref : "", " ").concat((_ref1 = cfg === null || cfg === void 0 ? void 0 : cfg.label_line2) !== null && _ref1 !== void 0 ? _ref1 : "", " ").concat((_ref2 = cfg === null || cfg === void 0 ? void 0 : cfg.custom_text) !== null && _ref2 !== void 0 ? _ref2 : "", " ").concat((_ref3 = cfg === null || cfg === void 0 ? void 0 : cfg.preset) !== null && _ref3 !== void 0 ? _ref3 : "");
|
|
5709
|
+
return /\b(MARKETS?|NYSE|NASDAQ|DJIA|\bS&P\b|STOCK|AAPL|TSLA|NVDA|EQUITIES)\b/i.test(blob);
|
|
5710
|
+
}
|
|
5711
|
+
function createDemoStockTickerOverlay(projectId, opts) {
|
|
5712
|
+
var stack = (opts === null || opts === void 0 ? void 0 : opts.stackAboveNews) === true;
|
|
5665
5713
|
return {
|
|
5666
5714
|
id: -9001,
|
|
5667
5715
|
project_id: projectId,
|
|
@@ -5669,13 +5717,13 @@ function createDemoStockTickerOverlay(projectId) {
|
|
|
5669
5717
|
type: "scroller",
|
|
5670
5718
|
visible: true,
|
|
5671
5719
|
x: 144,
|
|
5672
|
-
y: 950,
|
|
5720
|
+
y: stack ? 818 : 950,
|
|
5673
5721
|
width: 1632,
|
|
5674
|
-
height: 97,
|
|
5722
|
+
height: stack ? 78 : 97,
|
|
5675
5723
|
opacity: 100,
|
|
5676
5724
|
start_time: "00:00:00.000",
|
|
5677
5725
|
duration: "24:00:00.000",
|
|
5678
|
-
z_index: 120,
|
|
5726
|
+
z_index: stack ? 125 : 120,
|
|
5679
5727
|
scroller_config: {
|
|
5680
5728
|
use_custom_text: true,
|
|
5681
5729
|
custom_text: "AAPL +1.24% \u2022 MSFT +0.42% \u2022 GOOGL \u22120.11% \u2022 TSLA +2.31% \u2022 NVDA +1.87% \u2022 AMZN +0.65% \u2022 META +0.38% \u2022 DJIA +0.52% \u2022 S&P 500 +0.33% \u2022 NDAQ +0.41%",
|
|
@@ -5697,17 +5745,43 @@ function createDemoStockTickerOverlay(projectId) {
|
|
|
5697
5745
|
}
|
|
5698
5746
|
};
|
|
5699
5747
|
}
|
|
5748
|
+
function normalizeScrollerConfig(raw) {
|
|
5749
|
+
if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object") return void 0;
|
|
5750
|
+
var r = raw;
|
|
5751
|
+
var merged = _object_spread({}, raw);
|
|
5752
|
+
if (merged.use_custom_text === void 0 && typeof r.useCustomText === "boolean") {
|
|
5753
|
+
merged.use_custom_text = r.useCustomText;
|
|
5754
|
+
}
|
|
5755
|
+
if ((merged.custom_text === void 0 || merged.custom_text === "") && typeof r.customText === "string") {
|
|
5756
|
+
merged.custom_text = r.customText;
|
|
5757
|
+
}
|
|
5758
|
+
if (!merged.rss_url && typeof r.rssUrl === "string") {
|
|
5759
|
+
merged.rss_url = r.rssUrl;
|
|
5760
|
+
}
|
|
5761
|
+
return merged;
|
|
5762
|
+
}
|
|
5763
|
+
function normalizeSwirlOverlay(raw) {
|
|
5764
|
+
var o = _object_spread({}, raw);
|
|
5765
|
+
if (o.type === "scroller") {
|
|
5766
|
+
var _raw_scroller_config;
|
|
5767
|
+
var sc = (_raw_scroller_config = raw.scroller_config) !== null && _raw_scroller_config !== void 0 ? _raw_scroller_config : raw.scrollerConfig;
|
|
5768
|
+
var normalized = normalizeScrollerConfig(sc);
|
|
5769
|
+
if (normalized) o.scroller_config = normalized;
|
|
5770
|
+
}
|
|
5771
|
+
return o;
|
|
5772
|
+
}
|
|
5700
5773
|
function fetchProjectOverlays(_0) {
|
|
5701
5774
|
return _async_to_generator(function(projectId) {
|
|
5702
|
-
var apiBaseUrl, response, data;
|
|
5775
|
+
var apiBaseUrl, base, response, data;
|
|
5703
5776
|
var _arguments = arguments;
|
|
5704
5777
|
return _ts_generator(this, function(_state) {
|
|
5705
5778
|
switch(_state.label){
|
|
5706
5779
|
case 0:
|
|
5707
5780
|
apiBaseUrl = _arguments.length > 1 && _arguments[1] !== void 0 ? _arguments[1] : OVERLAY_API_BASE;
|
|
5781
|
+
base = apiBaseUrl.replace(/\/$/, "");
|
|
5708
5782
|
return [
|
|
5709
5783
|
4,
|
|
5710
|
-
fetch("".concat(
|
|
5784
|
+
fetch("".concat(base, "/adstorm/swirl/projects/").concat(projectId, "/overlays"))
|
|
5711
5785
|
];
|
|
5712
5786
|
case 1:
|
|
5713
5787
|
response = _state.sent();
|
|
@@ -5720,9 +5794,15 @@ function fetchProjectOverlays(_0) {
|
|
|
5720
5794
|
];
|
|
5721
5795
|
case 2:
|
|
5722
5796
|
data = _state.sent();
|
|
5797
|
+
if (!Array.isArray(data)) return [
|
|
5798
|
+
2,
|
|
5799
|
+
[]
|
|
5800
|
+
];
|
|
5723
5801
|
return [
|
|
5724
5802
|
2,
|
|
5725
|
-
|
|
5803
|
+
data.map(function(row) {
|
|
5804
|
+
return normalizeSwirlOverlay(row);
|
|
5805
|
+
})
|
|
5726
5806
|
];
|
|
5727
5807
|
}
|
|
5728
5808
|
});
|
|
@@ -7197,7 +7277,8 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7197
7277
|
var activeOverlays = useMemo(function() {
|
|
7198
7278
|
if (showcaseMode) {
|
|
7199
7279
|
return overlays.filter(function(o) {
|
|
7200
|
-
|
|
7280
|
+
if (!o.visible) return false;
|
|
7281
|
+
return showcasePhase < SHOWCASE_POP_OUT_END_MS;
|
|
7201
7282
|
});
|
|
7202
7283
|
}
|
|
7203
7284
|
return overlays.filter(function(o) {
|
|
@@ -7216,7 +7297,7 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7216
7297
|
}, [
|
|
7217
7298
|
activeOverlays
|
|
7218
7299
|
]);
|
|
7219
|
-
|
|
7300
|
+
useLayoutEffect(function() {
|
|
7220
7301
|
var activeIds = new Set(activeOverlays.map(function(o) {
|
|
7221
7302
|
return o.id;
|
|
7222
7303
|
}));
|
|
@@ -7405,8 +7486,9 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7405
7486
|
var height = overlay.height * scaleY;
|
|
7406
7487
|
var baseOpacity = Math.max(0, Math.min(100, overlay.opacity)) / 100;
|
|
7407
7488
|
var inShowcaseBeat = showcaseMode && activeBeatIds.has(overlay.id);
|
|
7408
|
-
var
|
|
7409
|
-
var
|
|
7489
|
+
var useShowcasePop = inShowcaseBeat;
|
|
7490
|
+
var opacity = useShowcasePop ? baseOpacity * showcaseOpacity(showcasePhase) : visible ? baseOpacity : 0;
|
|
7491
|
+
var popScale = useShowcasePop ? showcaseScale(showcasePhase) : 1;
|
|
7410
7492
|
var sz = {
|
|
7411
7493
|
w: width,
|
|
7412
7494
|
h: height
|
|
@@ -7419,9 +7501,9 @@ var OverlayRenderer = function OverlayRenderer(param) {
|
|
|
7419
7501
|
width: "".concat(width, "px"),
|
|
7420
7502
|
height: "".concat(height, "px"),
|
|
7421
7503
|
opacity: opacity,
|
|
7422
|
-
transition:
|
|
7423
|
-
transform: showcaseMode ? "scale(".concat(popScale, ")") : void 0,
|
|
7424
|
-
transformOrigin: showcaseMode ? "center center" : void 0,
|
|
7504
|
+
transition: useShowcasePop ? "none" : "opacity ".concat(FADE_DURATION_MS, "ms ease"),
|
|
7505
|
+
transform: showcaseMode && useShowcasePop ? "scale(".concat(popScale, ")") : void 0,
|
|
7506
|
+
transformOrigin: showcaseMode && useShowcasePop ? "center center" : void 0,
|
|
7425
7507
|
zIndex: overlay.z_index,
|
|
7426
7508
|
overflow: "hidden"
|
|
7427
7509
|
},
|
|
@@ -7547,7 +7629,7 @@ var PANEL_BASE_RIGHT_OFFSET = 10;
|
|
|
7547
7629
|
var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
7548
7630
|
var _ref;
|
|
7549
7631
|
var _aiLiveContext_context;
|
|
7550
|
-
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, driftToleranceMs = props.driftToleranceMs, immediateManifestAds = props.immediateManifestAds, debugAdTiming = props.debugAdTiming, showCustomControls = props.showCustomControls, hideLoadingIndicator = props.hideLoadingIndicator, onVolumeToggle = props.onVolumeToggle, onFullscreenToggle = props.onFullscreenToggle, onControlClick = props.onControlClick, onReady = props.onReady, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, className = props.className, style = props.style, controls = props.controls, playsInline = props.playsInline, preload = props.preload, poster = props.poster, children = props.children, licenseKey = props.licenseKey, minSegmentsBeforePlay = props.minSegmentsBeforePlay, disableAds = props.disableAds, disableFiller = props.disableFiller, swirlProjectId = props.swirlProjectId, swirlShowcaseDemo = props.swirlShowcaseDemo, adcisionChannelId = props.adcisionChannelId, disableOverlays = props.disableOverlays, showAdsControl = props.showAdsControl, showOverlaysControl = props.showOverlaysControl, showAiContextControl = props.showAiContextControl, showDebugControl = props.showDebugControl, restVideoAttrs = _object_without_properties(props, [
|
|
7632
|
+
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, driftToleranceMs = props.driftToleranceMs, immediateManifestAds = props.immediateManifestAds, debugAdTiming = props.debugAdTiming, showCustomControls = props.showCustomControls, hideLoadingIndicator = props.hideLoadingIndicator, onVolumeToggle = props.onVolumeToggle, onFullscreenToggle = props.onFullscreenToggle, onControlClick = props.onControlClick, onReady = props.onReady, wrapperClassName = props.wrapperClassName, wrapperStyle = props.wrapperStyle, className = props.className, style = props.style, controls = props.controls, playsInline = props.playsInline, preload = props.preload, poster = props.poster, children = props.children, licenseKey = props.licenseKey, minSegmentsBeforePlay = props.minSegmentsBeforePlay, disableAds = props.disableAds, disableFiller = props.disableFiller, swirlProjectId = props.swirlProjectId, swirlShowcaseDemo = props.swirlShowcaseDemo, swirlOverlayApiBaseUrl = props.swirlOverlayApiBaseUrl, swirlOverlayCoordinateSpace = props.swirlOverlayCoordinateSpace, adcisionChannelId = props.adcisionChannelId, disableOverlays = props.disableOverlays, showAdsControl = props.showAdsControl, showOverlaysControl = props.showOverlaysControl, showAiContextControl = props.showAiContextControl, showDebugControl = props.showDebugControl, restVideoAttrs = _object_without_properties(props, [
|
|
7551
7633
|
"src",
|
|
7552
7634
|
"autoplay",
|
|
7553
7635
|
"muted",
|
|
@@ -7577,6 +7659,8 @@ var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
|
7577
7659
|
"disableFiller",
|
|
7578
7660
|
"swirlProjectId",
|
|
7579
7661
|
"swirlShowcaseDemo",
|
|
7662
|
+
"swirlOverlayApiBaseUrl",
|
|
7663
|
+
"swirlOverlayCoordinateSpace",
|
|
7580
7664
|
"adcisionChannelId",
|
|
7581
7665
|
"disableOverlays",
|
|
7582
7666
|
"showAdsControl",
|
|
@@ -7613,13 +7697,21 @@ var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
|
7613
7697
|
var _React2_useState14 = _sliced_to_array(React2.useState(false), 2), showLicenseWarning = _React2_useState14[0], setShowLicenseWarning = _React2_useState14[1];
|
|
7614
7698
|
var _React2_useState15 = _sliced_to_array(React2.useState(true), 2), controlsVisible = _React2_useState15[0], setControlsVisible = _React2_useState15[1];
|
|
7615
7699
|
var _React2_useState16 = _sliced_to_array(React2.useState([]), 2), overlays = _React2_useState16[0], setOverlays = _React2_useState16[1];
|
|
7700
|
+
var overlayApiBase = React2.useMemo(function() {
|
|
7701
|
+
return (swirlOverlayApiBaseUrl === null || swirlOverlayApiBaseUrl === void 0 ? void 0 : swirlOverlayApiBaseUrl.replace(/\/$/, "")) || OVERLAY_API_BASE;
|
|
7702
|
+
}, [
|
|
7703
|
+
swirlOverlayApiBaseUrl
|
|
7704
|
+
]);
|
|
7616
7705
|
var displayOverlays = React2.useMemo(function() {
|
|
7617
7706
|
if (!swirlProjectId || !swirlShowcaseDemo) return overlays;
|
|
7618
|
-
if (overlays.some(
|
|
7707
|
+
if (overlays.some(scrollerLooksLikeMarketsStock)) return overlays;
|
|
7708
|
+
var hasOtherScroller = overlays.some(function(o) {
|
|
7619
7709
|
return o.type === "scroller";
|
|
7620
|
-
})
|
|
7710
|
+
});
|
|
7621
7711
|
return _to_consumable_array(overlays).concat([
|
|
7622
|
-
createDemoStockTickerOverlay(swirlProjectId
|
|
7712
|
+
createDemoStockTickerOverlay(swirlProjectId, {
|
|
7713
|
+
stackAboveNews: hasOtherScroller
|
|
7714
|
+
})
|
|
7623
7715
|
]);
|
|
7624
7716
|
}, [
|
|
7625
7717
|
overlays,
|
|
@@ -7899,7 +7991,7 @@ var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
|
7899
7991
|
}
|
|
7900
7992
|
var cancelled = false;
|
|
7901
7993
|
var loadOverlays = function loadOverlays() {
|
|
7902
|
-
fetchProjectOverlays(swirlProjectId).then(function(data) {
|
|
7994
|
+
fetchProjectOverlays(swirlProjectId, overlayApiBase).then(function(data) {
|
|
7903
7995
|
if (!cancelled) setOverlays(data);
|
|
7904
7996
|
}).catch(function(err) {
|
|
7905
7997
|
if (!cancelled) {
|
|
@@ -7915,41 +8007,69 @@ var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
|
7915
8007
|
};
|
|
7916
8008
|
}, [
|
|
7917
8009
|
swirlProjectId,
|
|
7918
|
-
adcisionChannelId
|
|
8010
|
+
adcisionChannelId,
|
|
8011
|
+
overlayApiBase
|
|
7919
8012
|
]);
|
|
7920
8013
|
useEffect2(function() {
|
|
8014
|
+
var _playerRef_current;
|
|
7921
8015
|
if (!swirlProjectId) return;
|
|
7922
|
-
var player = playerRef.current;
|
|
7923
|
-
if (!player) return;
|
|
7924
|
-
var attempts = 0;
|
|
7925
|
-
var maxAttempts = 30;
|
|
7926
8016
|
var tryResolve = function tryResolve() {
|
|
7927
|
-
var
|
|
7928
|
-
|
|
7929
|
-
|
|
8017
|
+
var _player_getMaxHlsResolution, _player_getMinHlsResolution;
|
|
8018
|
+
var player = playerRef.current;
|
|
8019
|
+
var fixed = swirlOverlayCoordinateSpace;
|
|
8020
|
+
if (fixed && fixed.width > 0 && fixed.height > 0) {
|
|
8021
|
+
setOverlayCoordSpace({
|
|
8022
|
+
width: fixed.width,
|
|
8023
|
+
height: fixed.height
|
|
8024
|
+
});
|
|
7930
8025
|
return true;
|
|
7931
8026
|
}
|
|
7932
|
-
|
|
7933
|
-
|
|
8027
|
+
if (!player) return false;
|
|
8028
|
+
var video2 = player.videoElement;
|
|
8029
|
+
if (video2 && video2.videoWidth > 0 && video2.videoHeight > 0) {
|
|
7934
8030
|
setOverlayCoordSpace({
|
|
7935
|
-
width:
|
|
7936
|
-
height:
|
|
8031
|
+
width: video2.videoWidth,
|
|
8032
|
+
height: video2.videoHeight
|
|
7937
8033
|
});
|
|
7938
8034
|
return true;
|
|
7939
8035
|
}
|
|
8036
|
+
var maxRes = (_player_getMaxHlsResolution = player.getMaxHlsResolution) === null || _player_getMaxHlsResolution === void 0 ? void 0 : _player_getMaxHlsResolution.call(player);
|
|
8037
|
+
if (maxRes) {
|
|
8038
|
+
setOverlayCoordSpace(maxRes);
|
|
8039
|
+
return true;
|
|
8040
|
+
}
|
|
8041
|
+
var minRes = (_player_getMinHlsResolution = player.getMinHlsResolution) === null || _player_getMinHlsResolution === void 0 ? void 0 : _player_getMinHlsResolution.call(player);
|
|
8042
|
+
if (minRes) {
|
|
8043
|
+
setOverlayCoordSpace(minRes);
|
|
8044
|
+
return true;
|
|
8045
|
+
}
|
|
7940
8046
|
return false;
|
|
7941
8047
|
};
|
|
7942
|
-
|
|
8048
|
+
var attempts = 0;
|
|
8049
|
+
var maxAttempts = 40;
|
|
8050
|
+
tryResolve();
|
|
7943
8051
|
var interval = setInterval(function() {
|
|
7944
8052
|
attempts++;
|
|
7945
|
-
if (
|
|
8053
|
+
if (!swirlOverlayCoordinateSpace) {
|
|
8054
|
+
tryResolve();
|
|
8055
|
+
}
|
|
8056
|
+
if (attempts >= maxAttempts) clearInterval(interval);
|
|
7946
8057
|
}, 300);
|
|
8058
|
+
var onVideoDims = function onVideoDims() {
|
|
8059
|
+
if (!swirlOverlayCoordinateSpace) {
|
|
8060
|
+
tryResolve();
|
|
8061
|
+
}
|
|
8062
|
+
};
|
|
8063
|
+
var video = (_playerRef_current = playerRef.current) === null || _playerRef_current === void 0 ? void 0 : _playerRef_current.videoElement;
|
|
8064
|
+
video === null || video === void 0 ? void 0 : video.addEventListener("loadedmetadata", onVideoDims);
|
|
7947
8065
|
return function() {
|
|
7948
|
-
|
|
8066
|
+
clearInterval(interval);
|
|
8067
|
+
video === null || video === void 0 ? void 0 : video.removeEventListener("loadedmetadata", onVideoDims);
|
|
7949
8068
|
};
|
|
7950
8069
|
}, [
|
|
7951
8070
|
swirlProjectId,
|
|
7952
|
-
criticalPropsKey
|
|
8071
|
+
criticalPropsKey,
|
|
8072
|
+
swirlOverlayCoordinateSpace
|
|
7953
8073
|
]);
|
|
7954
8074
|
useEffect2(function() {
|
|
7955
8075
|
if (!playerRef.current) return;
|
|
@@ -9751,6 +9871,8 @@ var StormcloudVideoPlayerComponent = React2.memo(function(props) {
|
|
|
9751
9871
|
"children",
|
|
9752
9872
|
"swirlProjectId",
|
|
9753
9873
|
"swirlShowcaseDemo",
|
|
9874
|
+
"swirlOverlayApiBaseUrl",
|
|
9875
|
+
"swirlOverlayCoordinateSpace",
|
|
9754
9876
|
"adcisionChannelId",
|
|
9755
9877
|
"disableOverlays",
|
|
9756
9878
|
"showAdsControl",
|
|
@@ -10976,5 +11098,5 @@ var createStormcloudPlayer = function createStormcloudPlayer(playerList, fallbac
|
|
|
10976
11098
|
};
|
|
10977
11099
|
var StormcloudPlayer = createStormcloudPlayer(players_default, players_default[players_default.length - 1]);
|
|
10978
11100
|
var StormcloudPlayer_default = StormcloudPlayer;
|
|
10979
|
-
export { IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer_default as StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, canPlay, createAdStormPlayer, createDemoStockTickerOverlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fetchProjectOverlays, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, isOverlayActive, lazy, logBrowserInfo, merge, omit, parseQuery, players_default as players, randomString, resolveImageUrl, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, timeStringToSeconds };
|
|
11101
|
+
export { IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, OVERLAY_API_BASE, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer_default as StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, canPlay, createAdStormPlayer, createDemoStockTickerOverlay, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fetchProjectOverlays, getBrowserConfigOverrides, getBrowserID, getClientInfo, initializePolyfills, isMediaStream, isOverlayActive, lazy, logBrowserInfo, merge, normalizeSwirlOverlay, omit, parseQuery, players_default as players, randomString, resolveImageUrl, scrollerLooksLikeMarketsStock, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, timeStringToSeconds };
|
|
10980
11102
|
//# sourceMappingURL=index.js.map
|