stormcloud-video-player 0.8.75 → 0.8.77
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/Player.cjs +10 -12
- package/lib/Player.cjs.map +1 -1
- package/lib/Player.d.cts +9 -1
- package/lib/StormcloudPlayer.cjs +173 -78
- package/lib/StormcloudPlayer.cjs.map +1 -1
- package/lib/index.cjs +184 -133
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +1 -1
- package/lib/index.d.ts +9 -19
- package/lib/index.js +178 -131
- package/lib/index.js.map +1 -1
- package/lib/player/AdBreakOrchestrator.cjs +45 -13
- package/lib/player/AdBreakOrchestrator.cjs.map +1 -1
- package/lib/player/AdConfigManager.cjs +17 -3
- package/lib/player/AdConfigManager.cjs.map +1 -1
- package/lib/player/AdConfigManager.d.cts +3 -0
- package/lib/player/EdgePodRequest.cjs +31 -1
- package/lib/player/EdgePodRequest.cjs.map +1 -1
- package/lib/player/EdgePodRequest.d.cts +21 -3
- package/lib/player/FloorLadder.cjs +86 -27
- package/lib/player/FloorLadder.cjs.map +1 -1
- package/lib/player/FloorLadder.d.cts +8 -7
- package/lib/player/StormcloudVideoPlayer.cjs +163 -78
- package/lib/player/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/player/StormcloudVideoPlayer.d.cts +3 -9
- package/lib/players/HlsPlayer.cjs +169 -78
- package/lib/players/HlsPlayer.cjs.map +1 -1
- package/lib/players/index.cjs +169 -78
- package/lib/players/index.cjs.map +1 -1
- package/lib/props.cjs +10 -12
- package/lib/props.cjs.map +1 -1
- package/lib/props.d.cts +5 -1
- package/lib/types.d.cts +3 -7
- package/lib/ui/StormcloudVideoPlayer.cjs +167 -139
- package/lib/ui/StormcloudVideoPlayer.cjs.map +1 -1
- package/lib/utils/tracking.cjs +7 -0
- package/lib/utils/tracking.cjs.map +1 -1
- package/lib/utils/tracking.d.cts +2 -1
- package/package.json +1 -1
package/lib/index.d.cts
CHANGED
|
@@ -3,7 +3,7 @@ export { default as StormcloudPlayer, createStormcloudPlayer } from './Stormclou
|
|
|
3
3
|
export { StormcloudVideoPlayer } from './player/StormcloudVideoPlayer.cjs';
|
|
4
4
|
export { AdBreak, AdController, AdControllerOptions, AdDetectInfo, AdFloorLadderConfig, AdImpressionInfo, AdLoadedInfo, AdPosition, AdSchedule, ClientInfo, FloorLadderMode, HeartbeatData, ImaController, ImaControllerOptions, LateJoinPolicy, PlayerAnalyticsContext, StormcloudVideoPlayerConfig, TrackingData } from './types.cjs';
|
|
5
5
|
export { AdPodConfig, DEFAULT_REQUEST_SAFETY_MS, GAM_AD_OPPORTUNITY_DURATION_MS, OptimizedPodDiagnostics, PodResponseDiagnostics } from './player/OptimizedPodRequest.cjs';
|
|
6
|
-
export { DEFAULT_FLOOR_LADDER_BOUNDS,
|
|
6
|
+
export { DEFAULT_FLOOR_LADDER_BOUNDS, DISABLED_FLOOR_LADDER_CONFIG, FloorLadderBounds, FloorLadderValidationReport, FloorSelectionContext, FloorSelector, FloorSelectorResult, FloorSource, FloorValidation, OpportunityFloor, fixedFloorSelector, generateFloorLevels, parseApiFloorLadder, resolveFloorLadderBounds, validateFloorCents, validateFloorLadderConfig } from './player/FloorLadder.cjs';
|
|
7
7
|
export { BaseStormcloudPlayerProps, OnProgressProps } from './props.cjs';
|
|
8
8
|
export { canPlay } from './patterns.cjs';
|
|
9
9
|
export { IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, SUPPORTS_DASH, SUPPORTS_HLS, isMediaStream, lazy, merge, omit, parseQuery, randomString, supportsWebKitPresentationMode } from './utils.cjs';
|
package/lib/index.d.ts
CHANGED
|
@@ -82,13 +82,6 @@ interface StormcloudVideoPlayerConfig {
|
|
|
82
82
|
podMaxAds?: number;
|
|
83
83
|
podMaxDurationMs?: number;
|
|
84
84
|
podExactDuration?: boolean;
|
|
85
|
-
adFloorLadderEnabled?: boolean;
|
|
86
|
-
adFloorLadder?: Partial<AdFloorLadderConfig>;
|
|
87
|
-
adFloorMinCents?: number;
|
|
88
|
-
adFloorMaxCents?: number;
|
|
89
|
-
adFloorStepCents?: number;
|
|
90
|
-
enableEdgePodRequest?: boolean;
|
|
91
|
-
edgePodUrl?: string;
|
|
92
85
|
}
|
|
93
86
|
type AdPosition = "preroll" | "midroll" | "postroll";
|
|
94
87
|
type FloorLadderMode = "fixed";
|
|
@@ -224,7 +217,7 @@ interface AdImpressionInfo {
|
|
|
224
217
|
timestamp: string;
|
|
225
218
|
}
|
|
226
219
|
|
|
227
|
-
declare const
|
|
220
|
+
declare const DISABLED_FLOOR_LADDER_CONFIG: Readonly<AdFloorLadderConfig>;
|
|
228
221
|
type FloorValidationReason = "not_integer" | "out_of_range" | "not_step_multiple" | "not_ready";
|
|
229
222
|
type FloorValidation = {
|
|
230
223
|
ok: true;
|
|
@@ -233,7 +226,6 @@ type FloorValidation = {
|
|
|
233
226
|
reason: FloorValidationReason;
|
|
234
227
|
};
|
|
235
228
|
type FloorSource = "selected" | "fallback" | "none";
|
|
236
|
-
/** Levels that have targeting values in GAM; the ladder config can narrow these but never widen them. */
|
|
237
229
|
interface FloorLadderBounds {
|
|
238
230
|
minCents: number;
|
|
239
231
|
maxCents: number;
|
|
@@ -242,7 +234,6 @@ interface FloorLadderBounds {
|
|
|
242
234
|
declare const DEFAULT_FLOOR_LADDER_BOUNDS: Readonly<FloorLadderBounds>;
|
|
243
235
|
interface FloorSelectionContext {
|
|
244
236
|
position: AdPosition;
|
|
245
|
-
isCtv: boolean;
|
|
246
237
|
bounds: Readonly<FloorLadderBounds>;
|
|
247
238
|
}
|
|
248
239
|
interface FloorSelectorResult {
|
|
@@ -275,6 +266,7 @@ declare function resolveFloorLadderBounds(overrides?: Partial<FloorLadderBounds>
|
|
|
275
266
|
declare function validateFloorCents(value: unknown, config: Readonly<AdFloorLadderConfig>, bounds?: Readonly<FloorLadderBounds>): FloorValidation;
|
|
276
267
|
declare function validateFloorLadderConfig(config: Readonly<AdFloorLadderConfig>, bounds?: Readonly<FloorLadderBounds>): FloorLadderValidationReport;
|
|
277
268
|
declare const fixedFloorSelector: FloorSelector;
|
|
269
|
+
declare function parseApiFloorLadder(raw: unknown): Partial<AdFloorLadderConfig> | undefined;
|
|
278
270
|
|
|
279
271
|
declare class StormcloudVideoPlayer {
|
|
280
272
|
private readonly video;
|
|
@@ -293,19 +285,13 @@ declare class StormcloudVideoPlayer {
|
|
|
293
285
|
private readonly hlsEngine;
|
|
294
286
|
private readonly adBreak;
|
|
295
287
|
private readonly floorLadder;
|
|
296
|
-
private floorLadderEnabled;
|
|
297
288
|
private edgePodBaseUrl;
|
|
298
289
|
constructor(config: StormcloudVideoPlayerConfig);
|
|
299
290
|
private get debug();
|
|
300
291
|
private createAdPlayer;
|
|
301
|
-
private
|
|
302
|
-
setAdFloorLadder(update: Partial<AdFloorLadderConfig>): FloorLadderValidationReport;
|
|
303
|
-
setAdFloorLadderEnabled(enabled: boolean): void;
|
|
292
|
+
private applyFloorLadderFromApi;
|
|
304
293
|
isAdFloorLadderEnabled(): boolean;
|
|
305
|
-
|
|
306
|
-
enableEdgePodRequest?: boolean;
|
|
307
|
-
edgePodUrl?: string;
|
|
308
|
-
}): void;
|
|
294
|
+
private applyEdgePodFromApi;
|
|
309
295
|
getEdgePodUrl(): string | undefined;
|
|
310
296
|
private warnOnInvalidFloorLadder;
|
|
311
297
|
getAdFloorLadder(): AdFloorLadderConfig;
|
|
@@ -388,9 +374,13 @@ interface BaseStormcloudPlayerProps {
|
|
|
388
374
|
licenseKey?: string;
|
|
389
375
|
isVmap?: boolean;
|
|
390
376
|
vmapUrl?: string;
|
|
377
|
+
vastTagUrl?: string;
|
|
391
378
|
adFailsafeTimeoutMs?: number;
|
|
392
379
|
minSegmentsBeforePlay?: number;
|
|
393
380
|
ctvAdRequest?: boolean;
|
|
381
|
+
minRemainingMsToRequestAd?: number;
|
|
382
|
+
maxNoFillsPerBreak?: number;
|
|
383
|
+
maxAdBreakExtensionMs?: number;
|
|
394
384
|
onReady?: (player: StormcloudVideoPlayer) => void;
|
|
395
385
|
onStart?: () => void;
|
|
396
386
|
onPlay?: () => void;
|
|
@@ -4174,4 +4164,4 @@ interface PalNonceManager {
|
|
|
4174
4164
|
}
|
|
4175
4165
|
declare function createPalNonceManager(): PalNonceManager;
|
|
4176
4166
|
|
|
4177
|
-
export { type AdBreak, type AdController, type AdControllerOptions, type AdDetectInfo, type AdFloorLadderConfig, type AdImpressionInfo, type AdLoadedInfo, type AdPodConfig, type AdPosition, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, DEFAULT_FLOOR_LADDER_BOUNDS, DEFAULT_REQUEST_SAFETY_MS, DEFAULT_TRACKING_INGEST_CONFIG,
|
|
4167
|
+
export { type AdBreak, type AdController, type AdControllerOptions, type AdDetectInfo, type AdFloorLadderConfig, type AdImpressionInfo, type AdLoadedInfo, type AdPodConfig, type AdPosition, type AdSchedule, type BaseStormcloudPlayerProps, type BrowserInfo, type ClientInfo, DEFAULT_FLOOR_LADDER_BOUNDS, DEFAULT_REQUEST_SAFETY_MS, DEFAULT_TRACKING_INGEST_CONFIG, DISABLED_FLOOR_LADDER_CONFIG, type FloorLadderBounds, type FloorLadderMode, type FloorLadderValidationReport, type FloorSelectionContext, type FloorSelector, type FloorSelectorResult, type FloorSource, type FloorValidation, GAM_AD_OPPORTUNITY_DURATION_MS, type HeartbeatData, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, type ImaController, type ImaControllerOptions, type LateJoinPolicy, type OnProgressProps, type OpportunityFloor, type OptimizedPodDiagnostics, type PalNonceManager, type PalNonceOptions, type PlayerAnalyticsContext, type PodResponseDiagnostics, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, type StormcloudVideoPlayerConfig, type StormcloudVideoPlayerProps, type TrackingData, type TrackingIngestChannel, type TrackingIngestConfig, applyTrackingIngestConfig, buildAnalyticsContext, canPlay, configureTrackingIngest, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fixedFloorSelector, generateFloorLevels, getBrowserConfigOverrides, getBrowserID, getClientInfo, ingestPlayerTracking, initializePolyfills, isMediaStream, isTrackingIngestEnabled, lazy, logBrowserInfo, merge, omit, parseApiFloorLadder, parseQuery, players, randomString, requiresMediaPipelineResetAfterAds, resolveFloorLadderBounds, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, trackingIngestConfig, validateFloorCents, validateFloorLadderConfig };
|
package/lib/index.js
CHANGED
|
@@ -1664,21 +1664,19 @@ function fetchConsentSignals() {
|
|
|
1664
1664
|
});
|
|
1665
1665
|
}
|
|
1666
1666
|
// src/player/FloorLadder.ts
|
|
1667
|
-
var
|
|
1667
|
+
var DISABLED_FLOOR_LADDER_CONFIG = Object.freeze({
|
|
1668
1668
|
enabled: false,
|
|
1669
|
-
targetingKey: "
|
|
1670
|
-
minFloorCents:
|
|
1671
|
-
maxFloorCents:
|
|
1672
|
-
stepCents:
|
|
1673
|
-
selectedFloorCents:
|
|
1674
|
-
fallbackFloorCents:
|
|
1669
|
+
targetingKey: "",
|
|
1670
|
+
minFloorCents: 0,
|
|
1671
|
+
maxFloorCents: 0,
|
|
1672
|
+
stepCents: 0,
|
|
1673
|
+
selectedFloorCents: 0,
|
|
1674
|
+
fallbackFloorCents: 0,
|
|
1675
1675
|
readyFloorCents: [],
|
|
1676
1676
|
mode: "fixed",
|
|
1677
|
-
allowedPositions: [
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
targetAdUnitPath: "/21821455290/airytvadx/airytv-web",
|
|
1681
|
-
configurationVersion: "2026-09-29.1"
|
|
1677
|
+
allowedPositions: [],
|
|
1678
|
+
targetAdUnitPath: "",
|
|
1679
|
+
configurationVersion: ""
|
|
1682
1680
|
});
|
|
1683
1681
|
var DEFAULT_FLOOR_LADDER_BOUNDS = Object.freeze({
|
|
1684
1682
|
minCents: 25,
|
|
@@ -1837,7 +1835,6 @@ function resolveOpportunityFloor(config, context) {
|
|
|
1837
1835
|
if (!config.enabled) return skipped("disabled");
|
|
1838
1836
|
var positions = Array.isArray(config.allowedPositions) ? config.allowedPositions : [];
|
|
1839
1837
|
if (positions.indexOf(context.position) === -1) return skipped("position_not_allowed");
|
|
1840
|
-
if (context.isCtv) return skipped("ctv_excluded");
|
|
1841
1838
|
if (!config.targetingKey) return skipped("missing_targeting_key");
|
|
1842
1839
|
if (!config.targetAdUnitPath) return skipped("missing_target_ad_unit");
|
|
1843
1840
|
var result;
|
|
@@ -1991,16 +1988,81 @@ function mergeDefined(target, update) {
|
|
|
1991
1988
|
}
|
|
1992
1989
|
return copyConfig(next);
|
|
1993
1990
|
}
|
|
1991
|
+
var AD_POSITIONS = [
|
|
1992
|
+
"preroll",
|
|
1993
|
+
"midroll",
|
|
1994
|
+
"postroll"
|
|
1995
|
+
];
|
|
1996
|
+
function finiteNumber(value) {
|
|
1997
|
+
return typeof value === "number" && isFinite(value) ? value : void 0;
|
|
1998
|
+
}
|
|
1999
|
+
function parseApiFloorLadder(raw) {
|
|
2000
|
+
if (!raw || (typeof raw === "undefined" ? "undefined" : _type_of(raw)) !== "object" || Array.isArray(raw)) return void 0;
|
|
2001
|
+
var src = raw;
|
|
2002
|
+
var out = {};
|
|
2003
|
+
if (typeof src.enabled === "boolean") out.enabled = src.enabled;
|
|
2004
|
+
if (typeof src.targetingKey === "string") out.targetingKey = src.targetingKey;
|
|
2005
|
+
if (typeof src.targetAdUnitPath === "string") out.targetAdUnitPath = src.targetAdUnitPath;
|
|
2006
|
+
if (typeof src.configurationVersion === "string") out.configurationVersion = src.configurationVersion;
|
|
2007
|
+
if (typeof src.mode === "string") out.mode = src.mode;
|
|
2008
|
+
var min = finiteNumber(src.minFloorCents);
|
|
2009
|
+
var max = finiteNumber(src.maxFloorCents);
|
|
2010
|
+
var step = finiteNumber(src.stepCents);
|
|
2011
|
+
var selected = finiteNumber(src.selectedFloorCents);
|
|
2012
|
+
var fallback = finiteNumber(src.fallbackFloorCents);
|
|
2013
|
+
if (min !== void 0) out.minFloorCents = min;
|
|
2014
|
+
if (max !== void 0) out.maxFloorCents = max;
|
|
2015
|
+
if (step !== void 0) out.stepCents = step;
|
|
2016
|
+
if (selected !== void 0) out.selectedFloorCents = selected;
|
|
2017
|
+
if (fallback !== void 0) out.fallbackFloorCents = fallback;
|
|
2018
|
+
if (Array.isArray(src.readyFloorCents)) {
|
|
2019
|
+
out.readyFloorCents = src.readyFloorCents.filter(function(cents) {
|
|
2020
|
+
return finiteNumber(cents) !== void 0;
|
|
2021
|
+
});
|
|
2022
|
+
}
|
|
2023
|
+
if (Array.isArray(src.allowedPositions)) {
|
|
2024
|
+
out.allowedPositions = src.allowedPositions.filter(function(position) {
|
|
2025
|
+
return AD_POSITIONS.indexOf(position) !== -1;
|
|
2026
|
+
});
|
|
2027
|
+
}
|
|
2028
|
+
return out;
|
|
2029
|
+
}
|
|
1994
2030
|
var FloorLadderController = /*#__PURE__*/ function() {
|
|
1995
2031
|
"use strict";
|
|
1996
|
-
function FloorLadderController(
|
|
1997
|
-
var selector = arguments.length >
|
|
2032
|
+
function FloorLadderController() {
|
|
2033
|
+
var selector = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : fixedFloorSelector;
|
|
1998
2034
|
_class_call_check(this, FloorLadderController);
|
|
1999
|
-
this.
|
|
2000
|
-
this.
|
|
2035
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2036
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2001
2037
|
this.selector = selector;
|
|
2002
2038
|
}
|
|
2003
2039
|
_create_class(FloorLadderController, [
|
|
2040
|
+
{
|
|
2041
|
+
key: "isEnabled",
|
|
2042
|
+
value: function isEnabled() {
|
|
2043
|
+
return this.config.enabled === true;
|
|
2044
|
+
}
|
|
2045
|
+
},
|
|
2046
|
+
{
|
|
2047
|
+
key: "applyApiConfig",
|
|
2048
|
+
value: function applyApiConfig(raw) {
|
|
2049
|
+
var parsed = parseApiFloorLadder(raw);
|
|
2050
|
+
this.config = mergeDefined(copyConfig(DISABLED_FLOOR_LADDER_CONFIG), parsed);
|
|
2051
|
+
this.bounds = Object.freeze({
|
|
2052
|
+
minCents: this.config.minFloorCents,
|
|
2053
|
+
maxCents: this.config.maxFloorCents,
|
|
2054
|
+
stepCents: this.config.stepCents
|
|
2055
|
+
});
|
|
2056
|
+
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2057
|
+
}
|
|
2058
|
+
},
|
|
2059
|
+
{
|
|
2060
|
+
key: "reset",
|
|
2061
|
+
value: function reset() {
|
|
2062
|
+
this.config = copyConfig(DISABLED_FLOOR_LADDER_CONFIG);
|
|
2063
|
+
this.bounds = DEFAULT_FLOOR_LADDER_BOUNDS;
|
|
2064
|
+
}
|
|
2065
|
+
},
|
|
2004
2066
|
{
|
|
2005
2067
|
key: "get",
|
|
2006
2068
|
value: function get() {
|
|
@@ -2013,13 +2075,6 @@ var FloorLadderController = /*#__PURE__*/ function() {
|
|
|
2013
2075
|
return _object_spread({}, this.bounds);
|
|
2014
2076
|
}
|
|
2015
2077
|
},
|
|
2016
|
-
{
|
|
2017
|
-
key: "update",
|
|
2018
|
-
value: function update(update) {
|
|
2019
|
-
this.config = mergeDefined(this.config, update);
|
|
2020
|
-
return validateFloorLadderConfig(this.config, this.bounds);
|
|
2021
|
-
}
|
|
2022
|
-
},
|
|
2023
2078
|
{
|
|
2024
2079
|
key: "validate",
|
|
2025
2080
|
value: function validate() {
|
|
@@ -6281,6 +6336,9 @@ function resolvePlayerIdentitySeed(clientInfo) {
|
|
|
6281
6336
|
}
|
|
6282
6337
|
return "fingerprint:".concat(JSON.stringify(clientInfo));
|
|
6283
6338
|
}
|
|
6339
|
+
function getCachedBrowserId() {
|
|
6340
|
+
return cachedBrowserId !== null && cachedBrowserId !== void 0 ? cachedBrowserId : void 0;
|
|
6341
|
+
}
|
|
6284
6342
|
function getBrowserID(clientInfo) {
|
|
6285
6343
|
return _async_to_generator(function() {
|
|
6286
6344
|
return _ts_generator(this, function(_state) {
|
|
@@ -7955,7 +8013,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
7955
8013
|
key: "fetchAdConfiguration",
|
|
7956
8014
|
value: function fetchAdConfiguration() {
|
|
7957
8015
|
return _async_to_generator(function() {
|
|
7958
|
-
var _data_response_ima_publisherdeskima, _data_response_ima,
|
|
8016
|
+
var _data_response, _data_response1, _data_response2, _data_response_ima_publisherdeskima, _data_response_ima, _data_response3, _data_response_options_vast_cue_tones, _data_response_options_vast, _data_response_options, _data_response4, apiUrl, headers, response, data, apiEnableEdge, apiEdgeUrl, imaPayload, decodedPayload, numberAds;
|
|
7959
8017
|
return _ts_generator(this, function(_state) {
|
|
7960
8018
|
switch(_state.label){
|
|
7961
8019
|
case 0:
|
|
@@ -8015,7 +8073,21 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8015
8073
|
];
|
|
8016
8074
|
case 4:
|
|
8017
8075
|
data = _state.sent();
|
|
8018
|
-
|
|
8076
|
+
apiEnableEdge = (_data_response = data.response) === null || _data_response === void 0 ? void 0 : _data_response.enableEdgePodRequest;
|
|
8077
|
+
apiEdgeUrl = (_data_response1 = data.response) === null || _data_response1 === void 0 ? void 0 : _data_response1.edgePodUrl;
|
|
8078
|
+
this.apiEnableEdgePodRequest = typeof apiEnableEdge === "boolean" ? apiEnableEdge : void 0;
|
|
8079
|
+
this.apiEdgePodUrl = typeof apiEdgeUrl === "string" ? apiEdgeUrl : void 0;
|
|
8080
|
+
if (this.debug) {
|
|
8081
|
+
console.log("[StormcloudVideoPlayer] Edge pod settings from API:", {
|
|
8082
|
+
enableEdgePodRequest: this.apiEnableEdgePodRequest,
|
|
8083
|
+
edgePodUrl: this.apiEdgePodUrl
|
|
8084
|
+
});
|
|
8085
|
+
}
|
|
8086
|
+
this.apiFloorLadder = (_data_response2 = data.response) === null || _data_response2 === void 0 ? void 0 : _data_response2.floorLadder;
|
|
8087
|
+
if (this.debug) {
|
|
8088
|
+
console.log(this.apiFloorLadder ? "[StormcloudVideoPlayer] Floor ladder from API:" : "[StormcloudVideoPlayer] No floorLadder block in /ads/web response", this.apiFloorLadder);
|
|
8089
|
+
}
|
|
8090
|
+
imaPayload = (_data_response3 = data.response) === null || _data_response3 === void 0 ? void 0 : (_data_response_ima = _data_response3.ima) === null || _data_response_ima === void 0 ? void 0 : (_data_response_ima_publisherdeskima = _data_response_ima["publisherdesk.ima"]) === null || _data_response_ima_publisherdeskima === void 0 ? void 0 : _data_response_ima_publisherdeskima.payload;
|
|
8019
8091
|
if (imaPayload) {
|
|
8020
8092
|
decodedPayload = imaPayload;
|
|
8021
8093
|
try {
|
|
@@ -8033,7 +8105,7 @@ var AdConfigManager = /*#__PURE__*/ function() {
|
|
|
8033
8105
|
console.warn("[StormcloudVideoPlayer] No VAST tag URL found in /ads/web response");
|
|
8034
8106
|
}
|
|
8035
8107
|
}
|
|
8036
|
-
numberAds = (
|
|
8108
|
+
numberAds = (_data_response4 = data.response) === null || _data_response4 === void 0 ? void 0 : (_data_response_options = _data_response4.options) === null || _data_response_options === void 0 ? void 0 : (_data_response_options_vast = _data_response_options.vast) === null || _data_response_options_vast === void 0 ? void 0 : (_data_response_options_vast_cue_tones = _data_response_options_vast.cue_tones) === null || _data_response_options_vast_cue_tones === void 0 ? void 0 : _data_response_options_vast_cue_tones.number_ads;
|
|
8037
8109
|
if (numberAds != null && numberAds > 0) {
|
|
8038
8110
|
this.apiNumberAds = numberAds;
|
|
8039
8111
|
if (this.debug) {
|
|
@@ -9870,7 +9942,23 @@ function resolveEdgePodBaseUrl(config) {
|
|
|
9870
9942
|
return void 0;
|
|
9871
9943
|
}
|
|
9872
9944
|
}
|
|
9945
|
+
function resolveEdgePodRequestContext(config) {
|
|
9946
|
+
var extra = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
9947
|
+
return {
|
|
9948
|
+
width: extra.width,
|
|
9949
|
+
height: extra.height,
|
|
9950
|
+
playerId: extra.playerId,
|
|
9951
|
+
contentNetwork: config.contentNetwork,
|
|
9952
|
+
contentChannel: config.channelName,
|
|
9953
|
+
contentTitle: config.programTitle
|
|
9954
|
+
};
|
|
9955
|
+
}
|
|
9956
|
+
function setOptionalParam(url, key, value) {
|
|
9957
|
+
var trimmed = value === null || value === void 0 ? void 0 : value.trim();
|
|
9958
|
+
if (trimmed) url.searchParams.set(key, trimmed);
|
|
9959
|
+
}
|
|
9873
9960
|
function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
9961
|
+
var context = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
|
|
9874
9962
|
var url = new URL(baseUrl);
|
|
9875
9963
|
var maxMs = Math.max(0, Math.floor(remainingMs));
|
|
9876
9964
|
var maxAds = Math.max(1, Math.min(EDGE_POD_MAX_ADS, Math.floor(remainingAdLimit)));
|
|
@@ -9878,6 +9966,16 @@ function buildEdgePodUrl(baseUrl, remainingMs, remainingAdLimit) {
|
|
|
9878
9966
|
url.searchParams.set("pmad", String(maxAds));
|
|
9879
9967
|
url.searchParams.set("duration", String(Math.floor(maxMs / 1e3)));
|
|
9880
9968
|
url.searchParams.set("count", String(maxAds));
|
|
9969
|
+
if (context.width != null && Number.isFinite(context.width) && context.width > 0) {
|
|
9970
|
+
url.searchParams.set("width", String(Math.round(context.width)));
|
|
9971
|
+
}
|
|
9972
|
+
if (context.height != null && Number.isFinite(context.height) && context.height > 0) {
|
|
9973
|
+
url.searchParams.set("height", String(Math.round(context.height)));
|
|
9974
|
+
}
|
|
9975
|
+
setOptionalParam(url, "pid", context.playerId);
|
|
9976
|
+
setOptionalParam(url, "cn", context.contentNetwork);
|
|
9977
|
+
setOptionalParam(url, "cc", context.contentChannel);
|
|
9978
|
+
setOptionalParam(url, "ct", context.contentTitle);
|
|
9881
9979
|
return url.toString();
|
|
9882
9980
|
}
|
|
9883
9981
|
function classifyEdgeVastResponse(result) {
|
|
@@ -10766,7 +10864,12 @@ var AdBreakOrchestrator = /*#__PURE__*/ function() {
|
|
|
10766
10864
|
return void 0;
|
|
10767
10865
|
}
|
|
10768
10866
|
try {
|
|
10769
|
-
|
|
10867
|
+
var playerId = getCachedBrowserId();
|
|
10868
|
+
return buildEdgePodUrl(baseUrl, remainingMs, remainingAds, resolveEdgePodRequestContext(this.host.config, {
|
|
10869
|
+
width: this.host.video.offsetWidth || this.host.video.clientWidth,
|
|
10870
|
+
height: this.host.video.offsetHeight || this.host.video.clientHeight,
|
|
10871
|
+
playerId: playerId
|
|
10872
|
+
}));
|
|
10770
10873
|
} catch (unused) {
|
|
10771
10874
|
this.markEdgeExhausted("invalid_edge_url");
|
|
10772
10875
|
return void 0;
|
|
@@ -12277,14 +12380,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12277
12380
|
this.config = _object_spread({}, browserOverrides, config);
|
|
12278
12381
|
this.video = config.videoElement;
|
|
12279
12382
|
logBrowserInfo(config.debugAdTiming);
|
|
12280
|
-
|
|
12281
|
-
if (this.config.adFloorMinCents != null) floorBounds.minCents = this.config.adFloorMinCents;
|
|
12282
|
-
if (this.config.adFloorMaxCents != null) floorBounds.maxCents = this.config.adFloorMaxCents;
|
|
12283
|
-
if (this.config.adFloorStepCents != null) floorBounds.stepCents = this.config.adFloorStepCents;
|
|
12284
|
-
this.floorLadder = new FloorLadderController(this.config.adFloorLadder, floorBounds);
|
|
12285
|
-
this.floorLadderEnabled = this.config.adFloorLadderEnabled === true;
|
|
12286
|
-
this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12287
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12383
|
+
this.floorLadder = new FloorLadderController();
|
|
12288
12384
|
this.adPlayer = this.createAdPlayer(false);
|
|
12289
12385
|
this.palNonce = createPalNonceManager();
|
|
12290
12386
|
this.cueManager = new Scte35CueManager(!!this.config.debugAdTiming, {
|
|
@@ -12391,9 +12487,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12391
12487
|
return _this.edgePodBaseUrl;
|
|
12392
12488
|
},
|
|
12393
12489
|
getFloorSnapshot: function getFloorSnapshot(position) {
|
|
12394
|
-
return _this.
|
|
12395
|
-
position: position
|
|
12396
|
-
isCtv: _this.isCtvEnvironment()
|
|
12490
|
+
return _this.floorLadder.isEnabled() ? _this.floorLadder.snapshotFor({
|
|
12491
|
+
position: position
|
|
12397
12492
|
}) : void 0;
|
|
12398
12493
|
},
|
|
12399
12494
|
onAdClick: function onAdClick() {
|
|
@@ -12430,45 +12525,42 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12430
12525
|
}
|
|
12431
12526
|
},
|
|
12432
12527
|
{
|
|
12433
|
-
key: "
|
|
12434
|
-
value: function
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
key: "setAdFloorLadder",
|
|
12442
|
-
value: function setAdFloorLadder(update) {
|
|
12443
|
-
var report = this.floorLadder.update(update);
|
|
12528
|
+
key: "applyFloorLadderFromApi",
|
|
12529
|
+
value: function applyFloorLadderFromApi() {
|
|
12530
|
+
var raw = this.adConfig.apiFloorLadder;
|
|
12531
|
+
if (raw == null) {
|
|
12532
|
+
this.floorLadder.reset();
|
|
12533
|
+
return;
|
|
12534
|
+
}
|
|
12535
|
+
var report = this.floorLadder.applyApiConfig(raw);
|
|
12444
12536
|
this.warnOnInvalidFloorLadder(report);
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12450
|
-
|
|
12451
|
-
|
|
12452
|
-
if (enabled) this.warnOnInvalidFloorLadder(this.floorLadder.validate());
|
|
12537
|
+
if (this.debug) {
|
|
12538
|
+
console.log("[AdBreak][FLOOR] configuration applied from API", {
|
|
12539
|
+
config: this.floorLadder.get(),
|
|
12540
|
+
bounds: this.floorLadder.getBounds(),
|
|
12541
|
+
validation: report
|
|
12542
|
+
});
|
|
12543
|
+
}
|
|
12453
12544
|
}
|
|
12454
12545
|
},
|
|
12455
12546
|
{
|
|
12456
12547
|
key: "isAdFloorLadderEnabled",
|
|
12457
12548
|
value: function isAdFloorLadderEnabled() {
|
|
12458
|
-
return this.
|
|
12549
|
+
return this.floorLadder.isEnabled();
|
|
12459
12550
|
}
|
|
12460
12551
|
},
|
|
12461
12552
|
{
|
|
12462
|
-
key: "
|
|
12463
|
-
value: function
|
|
12464
|
-
|
|
12465
|
-
|
|
12553
|
+
key: "applyEdgePodFromApi",
|
|
12554
|
+
value: function applyEdgePodFromApi() {
|
|
12555
|
+
this.edgePodBaseUrl = resolveEdgePodBaseUrl({
|
|
12556
|
+
enableEdgePodRequest: this.adConfig.apiEnableEdgePodRequest,
|
|
12557
|
+
edgePodUrl: this.adConfig.apiEdgePodUrl,
|
|
12558
|
+
licenseKey: this.config.licenseKey
|
|
12559
|
+
});
|
|
12560
|
+
if (this.debug) {
|
|
12561
|
+
var _this_edgePodBaseUrl;
|
|
12562
|
+
console.log("[AdBreak][EDGE] edge pod base URL from API:", (_this_edgePodBaseUrl = this.edgePodBaseUrl) !== null && _this_edgePodBaseUrl !== void 0 ? _this_edgePodBaseUrl : "(disabled; GAM only)");
|
|
12466
12563
|
}
|
|
12467
|
-
if (update.enableEdgePodRequest === void 0) delete this.config.enableEdgePodRequest;
|
|
12468
|
-
else this.config.enableEdgePodRequest = update.enableEdgePodRequest;
|
|
12469
|
-
if (update.edgePodUrl === void 0) delete this.config.edgePodUrl;
|
|
12470
|
-
else this.config.edgePodUrl = update.edgePodUrl;
|
|
12471
|
-
this.edgePodBaseUrl = resolveEdgePodBaseUrl(this.config);
|
|
12472
12564
|
}
|
|
12473
12565
|
},
|
|
12474
12566
|
{
|
|
@@ -12481,7 +12573,7 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12481
12573
|
key: "warnOnInvalidFloorLadder",
|
|
12482
12574
|
value: function warnOnInvalidFloorLadder(report) {
|
|
12483
12575
|
var config = this.floorLadder.get();
|
|
12484
|
-
if (report.ok || !
|
|
12576
|
+
if (report.ok || !config.enabled) return;
|
|
12485
12577
|
console.warn("[AdBreak][FLOOR] configuration has issues; invalid floors will not be sent", {
|
|
12486
12578
|
errors: report.errors,
|
|
12487
12579
|
configurationVersion: config.configurationVersion,
|
|
@@ -12556,6 +12648,8 @@ var StormcloudVideoPlayer = /*#__PURE__*/ function() {
|
|
|
12556
12648
|
4
|
|
12557
12649
|
];
|
|
12558
12650
|
case 4:
|
|
12651
|
+
this.applyFloorLadderFromApi();
|
|
12652
|
+
this.applyEdgePodFromApi();
|
|
12559
12653
|
palDescriptionUrl = this.config.ctvAdRequest ? this.adConfig.getPalDescriptionUrl() : void 0;
|
|
12560
12654
|
fetchConsentSignals().catch(function() {
|
|
12561
12655
|
return {};
|
|
@@ -13309,15 +13403,12 @@ var CRITICAL_PROPS = [
|
|
|
13309
13403
|
"vmapUrl",
|
|
13310
13404
|
"lowLatencyMode",
|
|
13311
13405
|
"driftToleranceMs",
|
|
13312
|
-
"ctvAdRequest"
|
|
13313
|
-
"adFloorMinCents",
|
|
13314
|
-
"adFloorMaxCents",
|
|
13315
|
-
"adFloorStepCents"
|
|
13406
|
+
"ctvAdRequest"
|
|
13316
13407
|
];
|
|
13317
13408
|
var CONTROLS_HIDE_DELAY = 3e3;
|
|
13318
13409
|
var DEFAULT_PLAYER_ASPECT_RATIO = 16 / 9;
|
|
13319
13410
|
var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
13320
|
-
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, isLiveStream = props.isLiveStream, 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, vastTagUrl = props.vastTagUrl, isVmap = props.isVmap, vmapUrl = props.vmapUrl, minSegmentsBeforePlay = props.minSegmentsBeforePlay, ctvAdRequest = props.ctvAdRequest, programTitle = props.programTitle, channelName = props.channelName, contentNetwork = props.contentNetwork, minRemainingMsToStartAd = props.minRemainingMsToStartAd, minRemainingMsToRequestAd = props.minRemainingMsToRequestAd, maxNoFillsPerBreak = props.maxNoFillsPerBreak, maxAdBreakExtensionMs = props.maxAdBreakExtensionMs,
|
|
13411
|
+
var src = props.src, autoplay = props.autoplay, muted = props.muted, lowLatencyMode = props.lowLatencyMode, allowNativeHls = props.allowNativeHls, isLiveStream = props.isLiveStream, 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, vastTagUrl = props.vastTagUrl, isVmap = props.isVmap, vmapUrl = props.vmapUrl, minSegmentsBeforePlay = props.minSegmentsBeforePlay, ctvAdRequest = props.ctvAdRequest, programTitle = props.programTitle, channelName = props.channelName, contentNetwork = props.contentNetwork, minRemainingMsToStartAd = props.minRemainingMsToStartAd, minRemainingMsToRequestAd = props.minRemainingMsToRequestAd, maxNoFillsPerBreak = props.maxNoFillsPerBreak, maxAdBreakExtensionMs = props.maxAdBreakExtensionMs, restVideoAttrs = _object_without_properties(props, [
|
|
13321
13412
|
"src",
|
|
13322
13413
|
"autoplay",
|
|
13323
13414
|
"muted",
|
|
@@ -13354,19 +13445,10 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
13354
13445
|
"minRemainingMsToStartAd",
|
|
13355
13446
|
"minRemainingMsToRequestAd",
|
|
13356
13447
|
"maxNoFillsPerBreak",
|
|
13357
|
-
"maxAdBreakExtensionMs"
|
|
13358
|
-
"adFloorLadderEnabled",
|
|
13359
|
-
"adFloorLadder",
|
|
13360
|
-
"adFloorMinCents",
|
|
13361
|
-
"adFloorMaxCents",
|
|
13362
|
-
"adFloorStepCents",
|
|
13363
|
-
"enableEdgePodRequest",
|
|
13364
|
-
"edgePodUrl"
|
|
13448
|
+
"maxAdBreakExtensionMs"
|
|
13365
13449
|
]);
|
|
13366
|
-
var adFloorLadderKey = JSON.stringify(adFloorLadder !== null && adFloorLadder !== void 0 ? adFloorLadder : null);
|
|
13367
13450
|
var videoRef = useRef(null);
|
|
13368
13451
|
var playerRef = useRef(null);
|
|
13369
|
-
var appliedFloorLadderKeyRef = useRef(null);
|
|
13370
13452
|
var bufferingTimeoutRef = useRef(null);
|
|
13371
13453
|
var controlsTimerRef = useRef(null);
|
|
13372
13454
|
var wrapperRef = useRef(null);
|
|
@@ -13508,10 +13590,7 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
13508
13590
|
isVmap,
|
|
13509
13591
|
vmapUrl,
|
|
13510
13592
|
lowLatencyMode,
|
|
13511
|
-
driftToleranceMs
|
|
13512
|
-
adFloorMinCents,
|
|
13513
|
-
adFloorMaxCents,
|
|
13514
|
-
adFloorStepCents
|
|
13593
|
+
driftToleranceMs
|
|
13515
13594
|
]);
|
|
13516
13595
|
useEffect(function() {
|
|
13517
13596
|
if (typeof window === "undefined") return;
|
|
@@ -13562,16 +13641,8 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
13562
13641
|
if (minRemainingMsToRequestAd !== void 0) cfg.minRemainingMsToRequestAd = minRemainingMsToRequestAd;
|
|
13563
13642
|
if (maxNoFillsPerBreak !== void 0) cfg.maxNoFillsPerBreak = maxNoFillsPerBreak;
|
|
13564
13643
|
if (maxAdBreakExtensionMs !== void 0) cfg.maxAdBreakExtensionMs = maxAdBreakExtensionMs;
|
|
13565
|
-
if (adFloorLadderEnabled !== void 0) cfg.adFloorLadderEnabled = adFloorLadderEnabled;
|
|
13566
|
-
if (adFloorLadder !== void 0) cfg.adFloorLadder = adFloorLadder;
|
|
13567
|
-
if (adFloorMinCents !== void 0) cfg.adFloorMinCents = adFloorMinCents;
|
|
13568
|
-
if (adFloorMaxCents !== void 0) cfg.adFloorMaxCents = adFloorMaxCents;
|
|
13569
|
-
if (adFloorStepCents !== void 0) cfg.adFloorStepCents = adFloorStepCents;
|
|
13570
|
-
if (enableEdgePodRequest !== void 0) cfg.enableEdgePodRequest = enableEdgePodRequest;
|
|
13571
|
-
if (edgePodUrl !== void 0) cfg.edgePodUrl = edgePodUrl;
|
|
13572
13644
|
var player = new StormcloudVideoPlayer(cfg);
|
|
13573
13645
|
playerRef.current = player;
|
|
13574
|
-
appliedFloorLadderKeyRef.current = adFloorLadderKey;
|
|
13575
13646
|
player.load().then(function() {
|
|
13576
13647
|
var showNative = player.shouldShowNativeControls();
|
|
13577
13648
|
setShouldShowNativeControls(showNative);
|
|
@@ -13609,33 +13680,6 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
13609
13680
|
autoplay,
|
|
13610
13681
|
muted
|
|
13611
13682
|
]);
|
|
13612
|
-
useEffect(function() {
|
|
13613
|
-
if (!playerRef.current || adFloorLadder === void 0) return;
|
|
13614
|
-
if (appliedFloorLadderKeyRef.current === adFloorLadderKey) return;
|
|
13615
|
-
appliedFloorLadderKeyRef.current = adFloorLadderKey;
|
|
13616
|
-
playerRef.current.setAdFloorLadder(adFloorLadder);
|
|
13617
|
-
}, [
|
|
13618
|
-
adFloorLadderKey
|
|
13619
|
-
]);
|
|
13620
|
-
useEffect(function() {
|
|
13621
|
-
if (!playerRef.current) return;
|
|
13622
|
-
var enabled = adFloorLadderEnabled === true;
|
|
13623
|
-
if (playerRef.current.isAdFloorLadderEnabled() === enabled) return;
|
|
13624
|
-
playerRef.current.setAdFloorLadderEnabled(enabled);
|
|
13625
|
-
}, [
|
|
13626
|
-
adFloorLadderEnabled
|
|
13627
|
-
]);
|
|
13628
|
-
useEffect(function() {
|
|
13629
|
-
if (!playerRef.current) return;
|
|
13630
|
-
playerRef.current.setEdgePodRequest(_object_spread({}, enableEdgePodRequest !== void 0 ? {
|
|
13631
|
-
enableEdgePodRequest: enableEdgePodRequest
|
|
13632
|
-
} : {}, edgePodUrl !== void 0 ? {
|
|
13633
|
-
edgePodUrl: edgePodUrl
|
|
13634
|
-
} : {}));
|
|
13635
|
-
}, [
|
|
13636
|
-
enableEdgePodRequest,
|
|
13637
|
-
edgePodUrl
|
|
13638
|
-
]);
|
|
13639
13683
|
useEffect(function() {
|
|
13640
13684
|
if (!playerRef.current) return;
|
|
13641
13685
|
var checkAdStatus = function checkAdStatus() {
|
|
@@ -14625,7 +14669,6 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
14625
14669
|
]
|
|
14626
14670
|
});
|
|
14627
14671
|
}, function(prevProps, nextProps) {
|
|
14628
|
-
var _prevProps_adFloorLadder, _nextProps_adFloorLadder;
|
|
14629
14672
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
14630
14673
|
try {
|
|
14631
14674
|
for(var _iterator = CRITICAL_PROPS[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
@@ -14712,12 +14755,6 @@ var StormcloudVideoPlayerComponent = React.memo(function(props) {
|
|
|
14712
14755
|
}
|
|
14713
14756
|
}
|
|
14714
14757
|
}
|
|
14715
|
-
if (prevProps.adFloorLadderEnabled !== nextProps.adFloorLadderEnabled || prevProps.enableEdgePodRequest !== nextProps.enableEdgePodRequest || prevProps.edgePodUrl !== nextProps.edgePodUrl) {
|
|
14716
|
-
return false;
|
|
14717
|
-
}
|
|
14718
|
-
if (JSON.stringify((_prevProps_adFloorLadder = prevProps.adFloorLadder) !== null && _prevProps_adFloorLadder !== void 0 ? _prevProps_adFloorLadder : null) !== JSON.stringify((_nextProps_adFloorLadder = nextProps.adFloorLadder) !== null && _nextProps_adFloorLadder !== void 0 ? _nextProps_adFloorLadder : null)) {
|
|
14719
|
-
return false;
|
|
14720
|
-
}
|
|
14721
14758
|
return true;
|
|
14722
14759
|
});
|
|
14723
14760
|
// src/StormcloudPlayer.tsx
|
|
@@ -14938,6 +14975,12 @@ var HlsPlayer = /*#__PURE__*/ function(Component) {
|
|
|
14938
14975
|
if (_this1.props.adFailsafeTimeoutMs !== void 0) config.adFailsafeTimeoutMs = _this1.props.adFailsafeTimeoutMs;
|
|
14939
14976
|
if (_this1.props.minSegmentsBeforePlay !== void 0) config.minSegmentsBeforePlay = _this1.props.minSegmentsBeforePlay;
|
|
14940
14977
|
if (_this1.props.ctvAdRequest !== void 0) config.ctvAdRequest = _this1.props.ctvAdRequest;
|
|
14978
|
+
if (_this1.props.vastTagUrl !== void 0) config.vastTagUrl = _this1.props.vastTagUrl;
|
|
14979
|
+
if (_this1.props.isVmap !== void 0) config.isVmap = _this1.props.isVmap;
|
|
14980
|
+
if (_this1.props.vmapUrl !== void 0) config.vmapUrl = _this1.props.vmapUrl;
|
|
14981
|
+
if (_this1.props.minRemainingMsToRequestAd !== void 0) config.minRemainingMsToRequestAd = _this1.props.minRemainingMsToRequestAd;
|
|
14982
|
+
if (_this1.props.maxNoFillsPerBreak !== void 0) config.maxNoFillsPerBreak = _this1.props.maxNoFillsPerBreak;
|
|
14983
|
+
if (_this1.props.maxAdBreakExtensionMs !== void 0) config.maxAdBreakExtensionMs = _this1.props.maxAdBreakExtensionMs;
|
|
14941
14984
|
_this1.player = new StormcloudVideoPlayer(config);
|
|
14942
14985
|
(_this_props_onMount = (_this_props = _this1.props).onMount) === null || _this_props_onMount === void 0 ? void 0 : _this_props_onMount.call(_this_props, _this1);
|
|
14943
14986
|
return [
|
|
@@ -15703,9 +15746,13 @@ var SUPPORTED_PROPS = [
|
|
|
15703
15746
|
"licenseKey",
|
|
15704
15747
|
"isVmap",
|
|
15705
15748
|
"vmapUrl",
|
|
15749
|
+
"vastTagUrl",
|
|
15706
15750
|
"adFailsafeTimeoutMs",
|
|
15707
15751
|
"minSegmentsBeforePlay",
|
|
15708
15752
|
"ctvAdRequest",
|
|
15753
|
+
"minRemainingMsToRequestAd",
|
|
15754
|
+
"maxNoFillsPerBreak",
|
|
15755
|
+
"maxAdBreakExtensionMs",
|
|
15709
15756
|
"onReady",
|
|
15710
15757
|
"onStart",
|
|
15711
15758
|
"onPlay",
|
|
@@ -15891,5 +15938,5 @@ var createStormcloudPlayer = function createStormcloudPlayer(playerList, fallbac
|
|
|
15891
15938
|
};
|
|
15892
15939
|
var StormcloudPlayer = createStormcloudPlayer(players_default, players_default[players_default.length - 1]);
|
|
15893
15940
|
var StormcloudPlayer_default = StormcloudPlayer;
|
|
15894
|
-
export { DEFAULT_FLOOR_LADDER_BOUNDS, DEFAULT_REQUEST_SAFETY_MS, DEFAULT_TRACKING_INGEST_CONFIG,
|
|
15941
|
+
export { DEFAULT_FLOOR_LADDER_BOUNDS, DEFAULT_REQUEST_SAFETY_MS, DEFAULT_TRACKING_INGEST_CONFIG, DISABLED_FLOOR_LADDER_CONFIG, GAM_AD_OPPORTUNITY_DURATION_MS, IS_BROWSER, IS_GLOBAL, IS_IOS, IS_SAFARI, SUPPORTS_DASH, SUPPORTS_HLS, StormcloudPlayer_default as StormcloudPlayer, StormcloudVideoPlayer, StormcloudVideoPlayerComponent, applyTrackingIngestConfig, buildAnalyticsContext, canPlay, configureTrackingIngest, createHlsAdPlayer, createPalNonceManager, createStormcloudPlayer, StormcloudVideoPlayerComponent as default, detectBrowser, fixedFloorSelector, generateFloorLevels, getBrowserConfigOverrides, getBrowserID, getClientInfo, ingestPlayerTracking, initializePolyfills, isMediaStream, isTrackingIngestEnabled, lazy, logBrowserInfo, merge, omit, parseApiFloorLadder, parseQuery, players_default as players, randomString, requiresMediaPipelineResetAfterAds, resolveFloorLadderBounds, sendAdDetectTracking, sendAdImpressionTracking, sendAdLoadedTracking, sendHeartbeat, sendInitialTracking, supportsFeature, supportsModernJS, supportsWebKitPresentationMode, trackingIngestConfig, validateFloorCents, validateFloorLadderConfig };
|
|
15895
15942
|
//# sourceMappingURL=index.js.map
|