@wistia/wistia-player-react
Version:
An embeddable wistia-player web component and React wrapper to add responsive, lightweight, and SEO-friendly videos to your site.
1,276 lines • 679 kB
JavaScript
// ../wistia-player/dist/wistia-player.js
var __webpack_modules__ = {
/***/
159: (
/***/
((__unused_webpack___webpack_module__2, __webpack_exports__3, __webpack_require__3) => {
__webpack_require__3.d(__webpack_exports__3, {
/* harmony export */
Rb: () => (
/* binding */
findScriptInDomBySrc
)
/* harmony export */
});
var utilities_wlog_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(6637);
var utilities_obj_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__3(731);
var utilities_runScript_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__3(1248);
function ownKeys2(e, r) {
var t = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(e);
r && (o = o.filter(function(r2) {
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
})), t.push.apply(t, o);
}
return t;
}
function _objectSpread2(e) {
for (var r = 1; r < arguments.length; r++) {
var t = null != arguments[r] ? arguments[r] : {};
r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) {
_defineProperty2(e, r2, t[r2]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) {
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
});
}
return e;
}
function _defineProperty2(e, r, t) {
return (r = _toPropertyKey2(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
}
function _toPropertyKey2(t) {
var i2 = _toPrimitive2(t, "string");
return "symbol" == typeof i2 ? i2 : i2 + "";
}
function _toPrimitive2(t, r) {
if ("object" != typeof t || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i2 = e.call(t, r || "default");
if ("object" != typeof i2) return i2;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
var findScriptInDomBySrc = function findScriptInDomBySrc2(targetSrc) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
var scriptTags2 = document.getElementsByTagName("script");
for (var i2 = 0; i2 < scriptTags2.length; i2++) {
var s = scriptTags2[i2];
var src2 = s.getAttribute("src") || "";
if (options.ignoreQueryParams) {
var matches2 = src2.split("?");
var urlWithoutParams = matches2[0];
src2 = urlWithoutParams;
}
if (!options.scriptRegex && options.ignoreProtocol) {
src2 = src2.replace(/^https?:/, "");
targetSrc = targetSrc.replace(/^https?:/, "");
}
if (options.scriptRegex && options.scriptRegex.test(src2)) {
return s;
}
if (options.testStartsWith && src2.indexOf(targetSrc) === 0) {
return s;
}
if (src2 === targetSrc) {
return s;
}
}
return null;
};
var removeScriptsBySrc2 = function removeScriptsBySrc3(targetSrc) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
var s;
var _loop2 = function _loop3() {
if (s) {
s.onload = s.onreadystatechange = s.onerror = null;
if (s.parentNode && typeof s.parentNode.removeChild) {
try {
s.parentNode.removeChild(s);
} catch (e) {
setTimeout(function() {
throw e;
}, 0);
}
}
}
};
while (s = findScriptInDomBySrc(targetSrc, options)) {
_loop2();
}
};
var runScript = function runScript2(src2) {
var timeout = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 8e3;
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
if (timeout == null) {
timeout = 8e3;
}
if (options == null) {
options = {};
}
var s;
var alreadyExists;
return new Promise(function(resolve) {
if (options.once === true && (s = findScriptInDomBySrc(src2))) {
alreadyExists = true;
}
if (options.once && alreadyExists) {
if (!s.readyState || /loaded|complete/.test(s.readyState)) {
setTimeout(function() {
resolve();
}, 1);
}
} else {
runScriptWithPromise(src2, timeout).then(resolve).catch(function(msg) {
resolve(msg);
setTimeout(function() {
console.error(msg);
}, 1);
});
}
});
};
var runScripts2 = function runScripts3() {
var scripts;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (args[0] instanceof Array) {
scripts = args[0];
} else {
scripts = args;
}
scripts = scriptInputsToHash(scripts);
var asyncScripts = [];
var syncScripts = [];
var scriptPromises = [];
scripts.forEach(function(s) {
var script = _objectSpread2({}, s);
var p = new Promise(function(resolve) {
script.resolve = resolve;
});
script.promise = p;
scriptPromises.push(script.promise);
if (s.async) {
asyncScripts.push(script);
} else {
syncScripts.push(script);
}
});
syncScripts.reduce(function(prev, script) {
if (script.fn) {
try {
script.fn();
} catch (e) {
wlog.error(e);
} finally {
script.resolve();
}
} else if (script.src) {
runScript(script.src, null, script).then(script.resolve);
}
return prev.then(script.promise);
}, Promise.resolve());
setTimeout(function() {
asyncScripts.forEach(function(script) {
if (script.fn) {
try {
script.fn();
} catch (e) {
wlog.error(e);
} finally {
script.resolve();
}
} else if (script.src) {
runScript(script.src, null, script).then(script.resolve);
}
});
}, 1);
return Promise.all(scriptPromises);
};
var scriptInputsToHash = function scriptInputsToHash2(scripts) {
var result = [];
for (var i2 = 0; i2 < scripts.length; i2++) {
var script = scripts[i2];
if (typeof script === "string") {
result.push({
src: script,
async: false
});
} else if (isObject(script)) {
result.push(script);
} else {
result.push({
fn: script,
async: false
});
}
}
return result;
};
})
),
/***/
267: (
/***/
((__unused_webpack_module, __webpack_exports__3, __webpack_require__3) => {
__webpack_require__3.d(__webpack_exports__3, {
/* harmony export */
O: () => (
/* binding */
hasPerformanceMeasureSupport
)
/* harmony export */
});
var hasPerformanceMeasureSupport = function hasPerformanceMeasureSupport2() {
var _window = window, performance2 = _window.performance;
return Boolean(performance2) && Boolean(performance2.measure);
};
})
),
/***/
438: (
/***/
((__unused_webpack___webpack_module__2, __webpack_exports__3, __webpack_require__3) => {
__webpack_require__3.d(__webpack_exports__3, {
/* harmony export */
$F: () => (
/* binding */
choosePlayer
),
/* harmony export */
gC: () => (
/* binding */
buildContext
)
/* harmony export */
});
var utilities_obj_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(731);
var utilities_detect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__3(7231);
var utilities_metrics_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__3(655);
var utilities_legacyLocalstorage_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__3(3695);
var utilities_root_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__3(8176);
var utilities_wlog_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__3(6637);
var _assets_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__3(7209);
var _wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__3(5509);
function ownKeys2(e, r) {
var t = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(e);
r && (o = o.filter(function(r2) {
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
})), t.push.apply(t, o);
}
return t;
}
function _objectSpread2(e) {
for (var r = 1; r < arguments.length; r++) {
var t = null != arguments[r] ? arguments[r] : {};
r % 2 ? ownKeys2(Object(t), true).forEach(function(r2) {
_defineProperty2(e, r2, t[r2]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys2(Object(t)).forEach(function(r2) {
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
});
}
return e;
}
function _defineProperty2(e, r, t) {
return (r = _toPropertyKey2(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: true, configurable: true, writable: true }) : e[r] = t, e;
}
function _toPropertyKey2(t) {
var i2 = _toPrimitive2(t, "string");
return "symbol" == typeof i2 ? i2 : i2 + "";
}
function _toPrimitive2(t, r) {
if ("object" != typeof t || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i2 = e.call(t, r || "default");
if ("object" != typeof i2) return i2;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
var wlog2 = utilities_wlog_js__WEBPACK_IMPORTED_MODULE_5__.ct.getPrefixedFunctions("judy");
var AUTO = "auto";
var CAROUSEL_HARD_WALL = "carouselHardWall";
var EXTERNAL = "external";
var HLS_VIDEO = "hlsVideo";
var HTML5 = "html5";
var MANUAL_QUALITY_VIDEO = "manualQualityVideo";
var NATIVE_HLS_VIDEO = "nativeHlsVideo";
var NOT_PLAYABLE = "notplayable";
var PASSWORD_PROTECTED = "passwordprotected";
var SIMPLE_HTML5 = "simplehtml5";
var VULCAN_V2 = "vulcan-v2";
var SPHERICAL_VIDEO = "sphericalVideo";
var PLAYERS = [VULCAN_V2, HTML5, SIMPLE_HTML5, EXTERNAL, NOT_PLAYABLE, PASSWORD_PROTECTED];
var PLUGIN_CONFIGS = {
notPlayableVideo: {
on: true,
initBeforeHasData: true,
async: false,
loadWeight: -1
},
vulcanV2Player: {
on: true,
initBeforeHasData: false,
async: false,
loadWeight: -1
},
hlsVideo: {
on: true,
initBeforeHasData: false,
async: false,
loadWeight: 0
},
nativeHlsVideo: {
on: true,
initBeforeHasData: false,
async: false,
loadWeight: 0
},
passwordProtectedVideo: {
on: true,
initBeforeHasData: true,
async: false,
loadWeight: -1
},
externalPlayer: {
on: true,
initBeforeHasData: false,
async: false,
loadWeight: -1
},
html5Player: {
on: true,
initBeforeHasData: false,
async: false,
loadWeight: -1
},
playlist: {
on: true,
initBeforeHasData: false,
async: false,
loadWeight: -1
}
};
var bestPlayer = function bestPlayer2(context, mediaData, embedOptions) {
var detect = context.detect, logger = context.logger;
var isSpherical = isSphericalVideo({
mediaData,
options: embedOptions
}, detect);
if (detect.oldandroid) {
logger.info("external on old android");
return EXTERNAL;
}
if (canUsePlayer(context, VULCAN_V2, mediaData)) {
logger.info("default, ret", VULCAN_V2);
return VULCAN_V2;
}
if (mediaData.mediaType === "Audio" || mediaData.mediaType === "LiveStream") {
return VULCAN_V2;
}
if (canUsePlayer(context, HTML5, mediaData)) {
logger.info("default, ret", HTML5);
return HTML5;
}
logger.info("nothing left, use", EXTERNAL);
return EXTERNAL;
};
var bestUsableEngine = function bestUsableEngine2(context, mediaData) {
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
var detect = context.detect, logger = context.logger;
logger.info("bestUsableEngineClass");
var allowHls = shouldServeHls(context, mediaData, options);
var isSpherical = isSphericalVideo({
mediaData,
options
}, detect);
if (options.engine) {
return options.engine;
}
if (isSpherical) {
logger.info(SPHERICAL_VIDEO);
return "engines/spherical_video.js";
}
if (mediaData.mediaType === "Audio") {
return "engines/simple_audio.js";
}
var isApple = detect.safari || detect.ios.version > 0;
var allowsSameOrigin = window.origin !== "null";
var restrictedBySameOrigin = isApple && !allowsSameOrigin;
if (allowHls && detect.nativeHls && (detect.managedMediaSource === false || restrictedBySameOrigin)) {
logger.info(NATIVE_HLS_VIDEO);
return "engines/native_hls_video.js";
}
if (allowHls) {
logger.info(HLS_VIDEO);
return "engines/hls_video.js";
}
logger.info(MANUAL_QUALITY_VIDEO);
return "engines/manual_quality_video.js";
};
var bestUsableEngineClass = function bestUsableEngineClass2(context, mediaData) {
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
var detect = context.detect, logger = context.logger;
logger.info("bestUsableEngineClass");
var allowHls = shouldServeHls(context, mediaData, options);
var engines = Wistia.engines || {};
if (mediaData.mediaType === "Audio") {
return engines.SimpleAudio;
}
if (allowHls && detect.nativeHls && engines.NativeHlsVideo) {
logger.info(NATIVE_HLS_VIDEO);
return engines.NativeHlsVideo;
}
if (allowHls && engines.HlsVideo) {
logger.info(HLS_VIDEO);
return engines.HlsVideo;
}
logger.info(MANUAL_QUALITY_VIDEO);
return engines.ManualQualityVideo;
};
var buildContext = function buildContext2() {
var overrides = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
var pageUrl = contextUrl(overrides);
return _objectSpread2(_objectSpread2(_objectSpread2({}, getDefaultContext()), overrides), {}, {
pageUrl
});
};
var canPlayInline = function canPlayInline2(context) {
var detect = context.detect;
return detect.android || detect.ios.version >= 10;
};
var canUsePlayer = function canUsePlayer2(context, player, mediaData) {
return isSupportedPlayer(context, player) && hasAssetsForPlayer(context, player, mediaData);
};
var choosePlayer = function choosePlayer2(context, mediaData, embedOptions) {
var detect = context.detect;
var logger = context.logger;
var playerForce = embedOptions.playerForce;
logger.info("choosePlayer input", mediaData.hashedId);
var playerPreference = determinePlayerPreferenceFromInput(context, mediaData, embedOptions);
if (playerForce && !isValidPlayer(context, playerForce)) {
logger.error('Invalid playerForce option: "'.concat(playerForce, '", ignoring'));
playerForce = null;
}
if (playerPreference && playerPreference !== AUTO && !isValidPlayer(context, playerPreference)) {
logger.error('Invalid playerPreference option: "'.concat(playerPreference, '", ignoring'));
playerPreference = AUTO;
}
logger.info("playerPreference is", playerPreference);
if (playerForce) {
logger.info('"playerForce" used, return', playerForce);
return playerForce;
}
if (mediaData.carouselHardWall) {
logger.info("return", CAROUSEL_HARD_WALL);
return CAROUSEL_HARD_WALL;
}
if (isPasswordProtected(context, embedOptions)) {
logger.info("return", PASSWORD_PROTECTED);
return PASSWORD_PROTECTED;
}
if (isNotPlayable(context, mediaData, embedOptions)) {
logger.info("return", NOT_PLAYABLE);
return NOT_PLAYABLE;
}
if (mediaData.protected) {
return VULCAN_V2;
}
if (playerPreference !== AUTO && canUsePlayer(context, playerPreference, mediaData)) {
var isSpherical = isSphericalVideo({
mediaData,
options: embedOptions
}, detect);
if (playerPreference !== VULCAN_V2 && isSpherical) {
logger.info("this player doesn't support spherical, return", VULCAN_V2);
return VULCAN_V2;
}
logger.info('"playerPreference" used, return', playerPreference);
return playerPreference;
}
logger.info("choosing player with no preference");
return bestPlayer(context, mediaData, embedOptions);
};
var contextUrl = function contextUrl2() {
var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
if (opts.pageUrl) {
return opts.pageUrl;
}
if (Object(window.FreshUrl).originalUrl) {
return window.FreshUrl.originalUrl;
}
if (window.top === window.self) {
return location.href || "";
}
return document.referrer || "";
};
var determinePlayerPreferenceFromInput = function determinePlayerPreferenceFromInput2(context, mediaData, embedOptions) {
var playerPreference = embedOptions.playerPreference || embedOptions.platformPreference;
if (playerPreference && playerPreference !== AUTO) {
if (playerPreference === HTML5) {
if (isMobile(context)) {
return HTML5;
}
return VULCAN_V2;
}
if (playerPreference === SIMPLE_HTML5) {
return HTML5;
}
return playerPreference;
}
return AUTO;
};
var doesBrowserSupportHlsTools = function doesBrowserSupportHlsTools2(detect) {
var hasPromise = Boolean(window.Promise);
return (detect.mediaSource || detect.nativeHls) && hasPromise;
};
var enginesToLoad = function enginesToLoad2(context, mediaData) {
var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
var detect = context.detect, logger = context.logger;
var engineNames = [];
logger.info("enginesToLoad");
var allowHls = shouldServeHls(context, mediaData, options);
if (allowHls && detect.nativeHls) {
logger.info(NATIVE_HLS_VIDEO);
engineNames.push(NATIVE_HLS_VIDEO);
} else if (allowHls) {
logger.info(HLS_VIDEO);
engineNames.push(HLS_VIDEO);
} else {
logger.info(MANUAL_QUALITY_VIDEO);
engineNames.push(MANUAL_QUALITY_VIDEO);
}
var isSpherical = isSphericalVideo({
mediaData,
options
}, detect);
if (isSpherical) {
engineNames.push(SPHERICAL_VIDEO);
logger.info(SPHERICAL_VIDEO);
}
var tmpHash = {};
engineNames.forEach(function(engineName2) {
tmpHash[engineName2] = true;
});
var result = [];
for (var engineName in tmpHash) {
result.push(engineName);
}
return result;
};
var cachedDefaultContext;
var getDefaultContext = function getDefaultContext2() {
if (cachedDefaultContext) {
return cachedDefaultContext;
}
cachedDefaultContext = {
detect: (0, utilities_obj_js__WEBPACK_IMPORTED_MODULE_0__.o8)((0, utilities_detect_js__WEBPACK_IMPORTED_MODULE_1__.o1)()),
inIframe: top !== self,
location: window.location,
logger: wlog2,
pageUrl: location.href,
silenceGlobalWarnings: utilities_root_js__WEBPACK_IMPORTED_MODULE_4__.z.wistiaSilenceGlobalWarnings,
userAgent: navigator.userAgent
};
return cachedDefaultContext;
};
var getPluginConfig = function getPluginConfig2(context, pluginName) {
var result = {};
result[pluginName] = PLUGIN_CONFIGS[pluginName];
return result;
};
var canUseInstantHls = function canUseInstantHls2(context, mediaData) {
var embedOptions = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
return embedOptions.instantHls !== false && mediaData.instantHlsAssetsReady && shouldServeHls(context, mediaData, embedOptions);
};
var canUseOriginalFilePlayback = function canUseOriginalFilePlayback2(context, mediaData) {
var embedOptions = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
return mediaData.originalIsEligibleForDirectPlayback && shouldServeHls(context, mediaData, embedOptions);
};
var hasAssetsForPlayer = function hasAssetsForPlayer2(context, player, mediaData) {
if (!isValidPlayer(context, player)) {
return false;
}
if (player === NOT_PLAYABLE || player === PASSWORD_PROTECTED || player === CAROUSEL_HARD_WALL) {
return true;
}
var assets = mediaData.assets;
if (player === VULCAN_V2) {
return canUseInstantHls(context, mediaData) || canUseOriginalFilePlayback(context, mediaData) || hasReadyVideoAssets(assets) || hasReadyAudioAssets(assets);
}
if (player === HTML5) {
return (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.Fi)(assets).length > 0;
}
if (player === EXTERNAL) {
return (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.Fi)(assets).length > 0;
}
throw new Error("Unhandled player type '".concat(player, "'"));
};
var hasReadyVideoAssets = function hasReadyVideoAssets2(assets) {
return (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.Fi)(assets).length > 0 || (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.x4)(assets).length > 0;
};
var hasReadyAudioAssets = function hasReadyAudioAssets2(assets) {
return (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.o2)(assets).length > 0;
};
var hasEnoughReadyMp4Assets = function hasEnoughReadyMp4Assets2(assets) {
var mp4Assets = (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.pb)(assets, {
container: "mp4",
metadata: function metadata(m) {
return m && m.max_bitrate;
},
public: true,
sortBy: "width desc",
status: _assets_js__WEBPACK_IMPORTED_MODULE_6__.yE,
type: /\b(?!captioned_video)\S+/
// no burned in captions
});
var hasAssetWithBitRateAndSize = Boolean(mp4Assets[0] && mp4Assets[0].width >= 400);
return hasAssetWithBitRateAndSize;
};
var hasSupportedHlsAssets = function hasSupportedHlsAssets2(mediaData) {
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
if (options.instantHls !== false && mediaData.instantHlsAssetsReady) {
return true;
}
if (mediaData.originalIsEligibleForDirectPlayback) {
return true;
}
var hasAssets = hasEnoughReadyMp4Assets(mediaData.assets);
if (!hasAssets) {
(0, utilities_metrics_js__WEBPACK_IMPORTED_MODULE_2__.U9)("player/originV2/media-has-no-metadata", 1, {
hashedId: mediaData.hashedId
});
}
return hasAssets;
};
var hlsOverrideValue = function hlsOverrideValue2(_ref, embedOptions) {
var pageUrl = _ref.pageUrl;
var paramVal = hlsQueryParamValue(pageUrl);
if (paramVal != null) {
return paramVal;
}
var localStorageVal = (0, utilities_legacyLocalstorage_js__WEBPACK_IMPORTED_MODULE_3__.Qy)("forceHls");
if (localStorageVal != null) {
return localStorageVal;
}
return embedOptions.hls;
};
var hlsQueryParamValue = function hlsQueryParamValue2(pageUrl) {
var match = pageUrl && pageUrl.match && pageUrl.match(/[&?]whls=([^&]+)/);
var val = match && match[1];
if (val != null) {
return (0, utilities_obj_js__WEBPACK_IMPORTED_MODULE_0__.wg)(val);
}
return null;
};
var isBrowserInNativeAndroid = function isBrowserInNativeAndroid2(detect, embedOptions) {
return detect.android && (embedOptions.playsinline === false || embedOptions.nativeMode === true);
};
var isBrowserOldChrome = function isBrowserOldChrome2(detect) {
return detect.chrome && parseInt(detect.chrome.version, 10) < 50;
};
var isHlsEnabled = function isHlsEnabled2(context, mediaData, embedOptions) {
var overrideValue = hlsOverrideValue(context, embedOptions);
if (overrideValue === true || overrideValue === false) {
return overrideValue;
}
if (mediaData.hls_enabled === false) {
return false;
}
return true;
};
var isMobile = function isMobile2(_ref2) {
var detect = _ref2.detect;
return detect.iphone || detect.ipad || detect.android;
};
var isNotPlayable = function isNotPlayable2(context, mediaData) {
var _embedOptions$authori;
var embedOptions = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
var assets = mediaData.assets;
if (!mediaData.protected && (canUseInstantHls(context, mediaData, embedOptions) || canUseOriginalFilePlayback(context, mediaData, embedOptions))) {
return false;
}
var assetsArentReady = mediaData.type === "Audio" ? (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.o2)(assets).length == 0 : (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.Fi)(assets).length == 0;
if (mediaData.mediaType === "LiveStream") {
return false;
}
if (mediaData.protected && !((_embedOptions$authori = embedOptions.authorization) !== null && _embedOptions$authori !== void 0 && _embedOptions$authori.jwt)) {
embedOptions.notPlayableOptions = {
fadeIn: false,
message: "This video is set to private.",
shouldRefresh: false
};
return true;
}
var allowHls = shouldServeHls(context, mediaData, embedOptions);
if (mediaData.protected && allowHls === false) {
embedOptions.notPlayableOptions = {
fadeIn: false,
message: "This video is not playable.",
shouldRefresh: false
};
return true;
}
return assets.length === 0 || assets.length === 1 && assets[0].type === "original" || assetsArentReady || (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.aF)(assets).length > 0 && (0, _assets_js__WEBPACK_IMPORTED_MODULE_6__.n9)(assets).length === 0;
};
var isPasswordProtected = function isPasswordProtected2(context, embedOptions) {
var pluginOpts = (0, utilities_obj_js__WEBPACK_IMPORTED_MODULE_0__.b$)(embedOptions, "plugin.passwordProtectedVideo");
return pluginOpts != null && pluginOpts.on !== false;
};
var isSphericalVideo = function isSphericalVideo2() {
var _mediaInfo$mediaData, _mediaInfo$opts;
var mediaInfo = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
if (mediaInfo.options.overrideSpherical) {
return false;
}
var mediaDataSpherical = String((_mediaInfo$mediaData = mediaInfo.mediaData) === null || _mediaInfo$mediaData === void 0 ? void 0 : _mediaInfo$mediaData.spherical);
var optsSpherical = String((_mediaInfo$opts = mediaInfo.opts) === null || _mediaInfo$opts === void 0 ? void 0 : _mediaInfo$opts.spherical);
return mediaDataSpherical === "true" || optsSpherical === "true";
};
var isSupportedPlayer = function isSupportedPlayer2(context, player) {
if (!isValidPlayer(context, player)) {
return false;
}
return (0, utilities_obj_js__WEBPACK_IMPORTED_MODULE_0__.qh)(supportedPlayers(context), player) >= 0;
};
var isValidPlayer = function isValidPlayer2(context, player) {
return (0, utilities_obj_js__WEBPACK_IMPORTED_MODULE_0__.qh)(PLAYERS, player) >= 0;
};
var logWarnings = function logWarnings2(context) {
var detect = context.detect, userAgent = context.userAgent, logger = context.logger, silenceGlobalWarnings = context.silenceGlobalWarnings;
if (silenceGlobalWarnings) {
return;
}
var isHeadless = /phantomjs/i.test(userAgent);
if (xhrHasBeenTamperedWith()) {
if (!isHeadless) {
logger.error("The XMLHttpRequest constructor has been tampered with. Because this affects CORS/Range XHR requests, HLS playback has been disabled. To enable HLS playback and other important features, please remove code that changes the definition of window.XMLHttpRequest.");
}
}
if (urlHasBeenTamperedWith()) {
if (detect.mediaSource && !isHeadless) {
logger.error("window.URL.createObjectURL has been tampered with. Because this affects use of Media Source Extensions, HLS playback has been disabled. window.URL is a browser API that should not be clobbered. Its current value is:", window.URL);
}
}
};
var playerPlugins = function playerPlugins2(context, player, mediaData, embedOptions) {
var logger = context.logger;
var plugins = {};
logger.info("playerPlugins input", player, mediaData.hashedId, mediaData, embedOptions);
if (player === NOT_PLAYABLE) {
merge(plugins, getPluginConfig(context, "notPlayableVideo"));
} else if (player === PASSWORD_PROTECTED) {
merge(plugins, getPluginConfig(context, "passwordProtectedVideo"));
} else if (player === HTML5) {
merge(plugins, getPluginConfig(context, "html5Player"));
} else if (player === EXTERNAL) {
merge(plugins, getPluginConfig(context, "externalPlayer"));
} else if (player === VULCAN_V2) {
merge(plugins, getPluginConfig(context, "vulcanV2Player"));
}
var pluginNames = [];
for (var k in plugins) {
pluginNames.push(k);
}
logger.info.apply(logger, ["playerPlugins output"].concat(pluginNames, [plugins]));
return plugins;
};
var report = function report2(context, mediaData, embedOptions) {
return {
bestPlayer: bestPlayer(context, mediaData, embedOptions),
playerPreferenceFromInput: determinePlayerPreferenceFromInput(context, mediaData, embedOptions),
supportedPlayers: supportedPlayers(context),
usablePlayers: usablePlayers(context, mediaData.assets)
};
};
var shouldServeHls = function shouldServeHls2(context, mediaData, embedOptions) {
if (mediaData.type === "LiveStream") {
return true;
}
var detect = context.detect;
return doesBrowserSupportHlsTools(detect) && !isBrowserOldChrome(detect) && !isBrowserInNativeAndroid(detect, embedOptions) && // the account has hls enabled or explicitly trying to force
isHlsEnabled(context, mediaData, embedOptions) && // the media actually has desktop assets compatable with the delivery system
hasSupportedHlsAssets(mediaData) && // Some sites completely replace the XMLHttpRequest constructor with one
// that doesn't work with hls.js. If we detect that, don't use HLS
// (...unless we explicitly say to try it.)
(!xhrHasBeenTamperedWith(context) && !urlHasBeenTamperedWith(context) || hlsOverrideValue(context, embedOptions));
};
var supportedPlayers = function supportedPlayers2(context) {
var detect = context.detect;
var result = [NOT_PLAYABLE, PASSWORD_PROTECTED, EXTERNAL, CAROUSEL_HARD_WALL];
if (detect.vulcanV2Support) {
result.push(VULCAN_V2);
}
if (detect.video.h264) {
result.push(HTML5);
}
return result;
};
var usablePlayers = function usablePlayers2(context, mediaData) {
var result = [];
var candidates = supportedPlayers(context);
for (var i2 = 0; i2 < candidates.length; i2++) {
var player = candidates[i2];
if (canUsePlayer(context, player, mediaData)) {
result.push(player);
}
}
return result;
};
var urlHasBeenTamperedWith = function urlHasBeenTamperedWith2() {
return typeof (window.URL && window.URL.createObjectURL) !== "function";
};
var XMLHTTPREQUEST_CONSTRUCTOR_RE = /\s*function\s+XMLHttpRequest\(\)\s*{\s*\[native code\]\s*}\s*/m;
var XMLHTTPREQUEST_CONSTRUCTOR_IN_SAFARI_9_RE = /\[object XMLHttpRequestConstructor\]/m;
var xhrHasBeenTamperedWith = function xhrHasBeenTamperedWith2() {
if (XMLHttpRequest && XMLHttpRequest.prototype && XMLHttpRequest.prototype.constructor) {
var constructorString = XMLHttpRequest.prototype.constructor.toString();
return !(XMLHTTPREQUEST_CONSTRUCTOR_RE.test(constructorString) || XMLHTTPREQUEST_CONSTRUCTOR_IN_SAFARI_9_RE.test(constructorString));
}
return true;
};
})
),
/***/
541: (
/***/
((__unused_webpack_module, __webpack_exports__3, __webpack_require__3) => {
__webpack_require__3.d(__webpack_exports__3, {
/* harmony export */
z: () => (
/* binding */
maybeStartWistiaQueue
)
/* harmony export */
});
var _wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(5509);
var QUEUE_INTERVAL = 500;
var wistiaQueue = null;
var maybeStartWistiaQueue = function maybeStartWistiaQueue2() {
if (wistiaQueue) {
return;
}
wistiaQueue = setInterval(function() {
var queue = window._wq;
if (!queue || queue.length === 0) {
return;
}
queue.slice(0).forEach(function(item) {
if (typeof item === "function") {
item(_wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_0__.s);
queue.splice(queue.indexOf(item), 1);
} else if (!_wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_0__.s.flushInitQueue) {
queue.splice(queue.indexOf(item), 1);
console.warn("<wistia-player> elements must be configured via window.wistiaOptions instead of window._wq. Config not applied", item);
}
});
}, QUEUE_INTERVAL);
};
var stopWistiaQueue = function stopWistiaQueue2() {
if (wistiaQueue) {
clearInterval(wistiaQueue);
wistiaQueue = null;
}
};
})
),
/***/
655: (
/***/
((__unused_webpack___webpack_module__2, __webpack_exports__3, __webpack_require__3) => {
__webpack_require__3.d(__webpack_exports__3, {
/* harmony export */
U9: () => (
/* binding */
count
)
/* harmony export */
});
var utilities_timeout_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(3737);
var utilities_wlog_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__3(6637);
var utilities_obj_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__3(731);
var utilities_elem_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__3(7715);
var utilities_url_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__3(2671);
var utilities_hosts_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__3(5857);
var utilities_trackingConsentApi_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__3(4755);
var _wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__3(5509);
var _this = void 0;
var W = (
/* unused pure expression or super */
null
);
if (_wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_7__.s._metricsCache == null) {
_wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_7__.s._metricsCache = {};
}
var METRICS_CACHE = _wistia_namespace_ts__WEBPACK_IMPORTED_MODULE_7__.s._metricsCache;
var send = function send2(type, key, val) {
var extraData = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
try {
if (METRICS_CACHE.toMput == null) {
METRICS_CACHE.toMput = [];
}
if (METRICS_CACHE.requestId == null) {
METRICS_CACHE.requestId = 0;
}
var messageObj = (0, utilities_obj_js__WEBPACK_IMPORTED_MODULE_2__.h1)({
type,
key,
value: val != null ? val : null,
request_id: METRICS_CACHE.requestId
}, extraData);
var serialized = JSON.stringify(messageObj);
utilities_wlog_js__WEBPACK_IMPORTED_MODULE_1__.ct.debug("send metrics", serialized);
METRICS_CACHE.toMput.push(serialized);
(0, utilities_timeout_utils_js__WEBPACK_IMPORTED_MODULE_0__.L)("metrics.debounce", function() {
(0, utilities_elem_js__WEBPACK_IMPORTED_MODULE_3__.Rx)(function() {
msend.apply(_this, METRICS_CACHE.toMput);
METRICS_CACHE.toMput = [];
METRICS_CACHE.requestId += 1;
});
}, 500);
} catch (e) {
utilities_wlog_js__WEBPACK_IMPORTED_MODULE_1__.ct.error(e);
}
};
var msend = function msend2() {
if (!(0, utilities_trackingConsentApi_js__WEBPACK_IMPORTED_MODULE_6__.D5)()) {
return;
}
var url = "".concat((0, utilities_url_js__WEBPACK_IMPORTED_MODULE_4__.ff)(), "//").concat((0, utilities_hosts_js__WEBPACK_IMPORTED_MODULE_5__.Qz)(), "/mput?topic=metrics");
for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {
messages[_key] = arguments[_key];
}
return fetch(url, {
method: "POST",
mode: "cors",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: messages.join("\n")
}).then(function(response) {
if (!response.ok) {
console.error(response);
}
}).catch(function(reason) {
console.error(reason);
});
};
var count = function count2(key) {
var val = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1;
var extraData = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
return send("count", key, val, extraData);
};
var sample = function sample2(key, val, extraData) {
return send("sample", key, val, extraData);
};
})
),
/***/
731: (
/***/
((__unused_webpack___webpack_module__2, __webpack_exports__3, __webpack_require__3) => {
__webpack_require__3.d(__webpack_exports__3, {
/* harmony export */
Cs: () => (
/* binding */
eachLeaf
),
/* harmony export */
G0: () => (
/* binding */
unsetDeep
),
/* harmony export */
Im: () => (
/* binding */
isEmpty
),
/* harmony export */
Lt: () => (
/* binding */
select
),
/* harmony export */
b$: () => (
/* binding */
getDeep
),
/* harmony export */
cy: () => (
/* binding */
isArray2
),
/* harmony export */
di: () => (
/* binding */
sort
),
/* harmony export */
h1: () => (
/* binding */
merge2
),
/* harmony export */
iu: () => (
/* binding */
except
),
/* harmony export */
j6: () => (
/* binding */
only
),
/* harmony export */
kp: () => (
/* reexport safe */
utilities_assign_js__WEBPACK_IMPORTED_MODULE_0__.k
),
/* harmony export */
mA: () => (
/* binding */
setAndPreserveUndefined
),
/* harmony export */
o8: () => (
/* binding */
clone2
),
/* harmony export */
qh: () => (
/* binding */
indexOf
),
/* harmony export */
vd: () => (
/* binding */
setDeep
),
/* harmony export */
wg: () => (
/* binding */
cast2
)
/* harmony export */
});
var utilities_assign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__3(9025);
var _this = (
/* unused pure expression or super */
null
);
var _objectHasOwn = function(object, property) {
if (typeof object === "undefined" || object === null) {
throw new TypeError("Cannot convert undefined or null to object");
}
return Object.prototype.hasOwnProperty.call(Object(object), property);
};
var aps = Array.prototype.slice;
var merge2 = function merge3(obj1) {
if ((arguments.length <= 1 ? 0 : arguments.length - 1) === 0) {
return obj1;
}
for (var i2 = 0; i2 < (arguments.length <= 1 ? 0 : arguments.length - 1); i2++) {
_mergeOne(obj1, i2 + 1 < 1 || arguments.length <= i2 + 1 ? void 0 : arguments[i2 + 1]);
}
return obj1;
};
var _mergeOne = function mergeOne(obj1, obj2) {
var transformerFn = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : identityFunc;
var shouldDeleteFn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : legacyShouldDeleteFromMerge;
if (isArray2(obj2)) {
if (!isArray2(obj1)) {
obj1 = [];
}
for (var i2 = 0; i2 < obj2.length; i2++) {
var v = obj2[i2];
if (obj1[i2] == null && v != null) {
if (isArray2(v)) {
obj1[i2] = [];
} else if (isObject2(v)) {
obj1[i2] = {};
}
}
var result = _mergeOne(obj1[i2], v, transformerFn);
if (shouldDeleteFn(obj2, i2, result)) {
delete obj1[i2];
} else {
obj1[i2] = result;
}
}
return transformerFn(obj1);
}
if (isObject2(obj2)) {
for (var k in obj2) {
if (_objectHasOwn(obj2, k) && (_objectHasOwn(obj1, k) || obj1[k] == null)) {
var _v = obj2[k];
if (isArray2(_v)) {
if (!isArray2(obj1[k])) {
obj1[k] = [];
}
_mergeOne(obj1[k], _v, transformerFn);
obj1[k] = transformerFn(obj1[k]);
} else if (isObject2(_v)) {
if (!isObject2(obj1[k])) {
obj1[k] = {};
}
_mergeOne(obj1[k], _v, transformerFn);
obj1[k] = transformerFn(obj1[k]);
} else if (obj1 == null) {
obj1 = {};
if (!shouldDeleteFn(obj2, k, _v)) {
obj1[k] = transformerFn(_v);
}
} else if (shouldDeleteFn(obj2, k, _v)) {
delete obj1[k];
} else {
obj1[k] = transformerFn(_v);
}
}
}
return transformerFn(obj1);
}
return transformerFn(obj2);
};
var identityFunc = function identityFunc2(v) {
return v;
};
var legacyShouldDeleteFromMerge = function legacyShouldDeleteFromMerge2(obj, k, v) {
return v == null;
};
var clone2 = function clone3(obj, transformerFn) {
if (isArray2(obj)) {
return _mergeOne([], obj, transformerFn);
}
return _mergeOne({}, obj, transformerFn);
};
var getDeep = function getDeep2(obj, parts, create) {
if (typeof parts === "string") {
parts = parts.split(".");
} else {
parts = aps.call(parts);
}
var lastObj = obj;
var lastP;
while (obj != null && parts.length) {
var p = parts.shift();
if ((obj[p] === void 0 || !isObject2(obj[p]) && !isArray2(obj[p])) && create) {
if (p === 0) {
obj = lastObj[lastP] = [];
obj[p] = {};
} else {
obj[p] = {};
}
}
lastObj = obj;
lastP = p;
if (_objectHasOwn(obj, p)) {
obj = obj[p];
} else {
obj = void 0;
}
}
return obj;
};
var setDeep = function setDeep2(obj, parts, value) {
return setAndMaybeDeleteUndefined(obj, parts, value, true);
};
var setAndPreserveUndefined = function setAndPreserveUndefined2(obj, parts, value) {
return setAndMaybeDeleteUndefined(obj, parts, value, false);
};
var setAndMaybeDeleteUndefined = function setAndMaybeDeleteUndefined2(obj, parts, value) {
var shouldDeleteUndefined = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
if (typeof parts === "string") {
parts = parts.split(".");
} else {
parts = aps.call(parts);
}
var prop = parts.pop();
obj = getDeep(obj, parts, true);
if (obj != null && (isObject2(obj) || isArray2(obj)) && prop != null) {
if (!shouldDeleteUndefined || value != null) {
obj[prop] = value;
} else {
delete obj[prop];
}
} else {
return void 0;
}
};
var unsetDeep = function unsetDeep2(obj, parts) {
return setDeep(obj, parts);
};
var exists = function exists2(obj, name) {
return getDeep(obj, name) !== void 0;
};
var cast2 = function cast3(maybeStr) {
if (maybeStr == null) {
return maybeStr;
}
if (isObject2(maybeStr) || isArray2(maybeStr)) {
return castDeep(maybeStr);
}
return castStr("".concat(maybeStr), maybeStr);
};
var castStr = function castStr2(str) {
var defaultRet = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : str;
if (/^-?[1-9]\d*?$/.test(str)) {
return parseInt(str, 10);
}
if (str === "0" || str === "-0") {
return 0;
}
if (/^-?\d*\.\d+$/.test(str)) {
return parseFloat(str);
}
if (/^true$/i.test(str)) {
return true;
}
if (/^false$/i.test(str)) {
return false;
}
return defaultRet;
};
var castDeep = function castDeep2(obj) {
var castTransformer = function castTransformer2(val) {
if (typeof val === "string") {
return castStr(val);
}
return val;
};
var dontDeleteAnything = function dontDeleteAnything2() {
return false;
};
return _mergeOne(obj, obj, castTransformer, dontDeleteAnything);
};
var only = function only2(hash2, keys2) {
var result = {};
var keyHash = {};
for (var i2 = 0; i2 < keys2.length; i2++) {
keyHash[keys2[i2]] = true;
}
for (var k in hash2) {
if (keyHash[k]) {
result[k] = hash2[k];
}
}
return result;
};
var except = function except2(hash2, keys2) {
var result = {};
var keyHash = {};
for (var i2 = 0; i2 < keys2.length; i2++) {
keyHash[keys2[i2]] = true;
}
for (var k in hash2) {
if (!keyHash[k]) {
result[k] = hash2[k];
}
}
return result;
};
var select = function