UNPKG

@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
// ../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