{"version":3,"file":"static/chunks/1830-8cbfc827d1c153b1.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@brightcove/react-player-loader/dist/brightcove-react-player-loader.es.js","webpack://_N_E/./node_modules/global/document.js","webpack://_N_E/./node_modules/global/window.js","webpack://_N_E/./node_modules/react-hotjar/index.js","webpack://_N_E/./node_modules/react-hotjar/src/react-hotjar.js","webpack://_N_E/"],"sourcesContent":["/*! @name @brightcove/react-player-loader @version 1.4.2 @license Apache-2.0 */\nimport React from 'react';\nimport document from 'global/document';\nimport window from 'global/window';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/*! @name @brightcove/player-loader @version 1.8.0 @license Apache-2.0 */\n\nfunction _extends$1() {\n _extends$1 = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends$1.apply(this, arguments);\n}\n\nvar version = \"1.8.0\";\n\n/*! @name @brightcove/player-url @version 1.2.0 @license Apache-2.0 */\nvar version$1 = \"1.2.0\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n// The parameters that may include JSON.\nvar JSON_ALLOWED_PARAMS = ['catalogSearch', 'catalogSequence'];\n\n// The parameters that may be set as query string parameters for iframes.\nvar IFRAME_ALLOWED_QUERY_PARAMS = ['adConfigId', 'applicationId', 'catalogSearch', 'catalogSequence', 'playlistId', 'playlistVideoId', 'videoId'];\n\n/**\n * Gets the value of a parameter and encodes it as a string.\n *\n * For certain keys, JSON is allowed and will be encoded.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @param {string} key\n * The key in the params object.\n *\n * @return {string|undefined}\n * The encoded value - or `undefined` if none.\n */\nvar getQueryParamValue = function getQueryParamValue(params, key) {\n\n if (!params || params[key] === undefined) {\n return;\n }\n\n // If it's not a string, such as with a catalog search or sequence, we\n // try to encode it as JSON.\n if (typeof params[key] !== 'string' && JSON_ALLOWED_PARAMS.indexOf(key) !== -1) {\n try {\n return encodeURIComponent(JSON.stringify(params[key]));\n } catch (x) {\n\n // If it's not a string and we can't encode as JSON, it's ignored entirely.\n return;\n }\n }\n\n return encodeURIComponent(String(params[key]).trim()) || undefined;\n};\n\n/**\n * In some cases, we need to add query string parameters to an iframe URL.\n *\n * @private\n * @param {Object} params\n * An object of query parameters.\n *\n * @return {string}\n * A query string starting with `?`. If no valid parameters are given,\n * returns an empty string.\n */\nvar getQueryString = function getQueryString(params) {\n return Object.keys(params).filter(function (k) {\n return IFRAME_ALLOWED_QUERY_PARAMS.indexOf(k) !== -1;\n }).reduce(function (qs, k) {\n var value = getQueryParamValue(params, k);\n\n if (value !== undefined) {\n qs += qs ? '&' : '?';\n qs += encodeURIComponent(k) + '=' + value;\n }\n\n return qs;\n }, '');\n};\n\n/**\n * Generate a URL to a Brightcove Player.\n *\n * @param {Object} params\n * A set of parameters describing the player URL to create.\n *\n * @param {string} params.accountId\n * A Brightcove account ID.\n *\n * @param {string} [params.playerId=\"default\"]\n * A Brightcove player ID.\n *\n * @param {string} [params.embedId=\"default\"]\n * A Brightcove player embed ID.\n *\n * @param {boolean} [params.iframe=false]\n * Whether to return a URL for an HTML document to be embedded in\n * an iframe.\n *\n * @param {boolean} [params.minified=true]\n * When the `iframe` argument is `false`, this can be used to control\n * whether the minified or unminified JavaScript URL is returned.\n *\n * @param {string} [params.base=\"https://players.brightcove.net\"]\n * A base CDN protocol and hostname. Mainly used for testing.\n *\n * @return {string}\n * A URL to a Brightcove Player.\n */\nvar brightcovePlayerUrl = function brightcovePlayerUrl(_ref) {\n var accountId = _ref.accountId,\n _ref$base = _ref.base,\n base = _ref$base === undefined ? 'https://players.brightcove.net' : _ref$base,\n _ref$playerId = _ref.playerId,\n playerId = _ref$playerId === undefined ? 'default' : _ref$playerId,\n _ref$embedId = _ref.embedId,\n embedId = _ref$embedId === undefined ? 'default' : _ref$embedId,\n _ref$iframe = _ref.iframe,\n iframe = _ref$iframe === undefined ? false : _ref$iframe,\n _ref$minified = _ref.minified,\n minified = _ref$minified === undefined ? true : _ref$minified,\n _ref$queryParams = _ref.queryParams,\n queryParams = _ref$queryParams === undefined ? null : _ref$queryParams;\n\n var ext = '';\n\n if (iframe) {\n ext += 'html';\n } else {\n if (minified) {\n ext += 'min.';\n }\n ext += 'js';\n }\n\n if (base.charAt(base.length - 1) === '/') {\n base = base.substring(0, base.length - 1);\n }\n\n var qs = '';\n\n if (iframe && queryParams && (typeof queryParams === 'undefined' ? 'undefined' : _typeof(queryParams)) === 'object') {\n qs = getQueryString(queryParams);\n }\n\n accountId = encodeURIComponent(accountId);\n playerId = encodeURIComponent(playerId);\n embedId = encodeURIComponent(embedId);\n\n return base + '/' + accountId + '/' + playerId + '_' + embedId + '/index.' + ext + qs;\n};\n\n/**\n * The version of this module.\n *\n * @type {string}\n */\nbrightcovePlayerUrl.VERSION = version$1;\n\nvar DEFAULTS = {\n embedId: 'default',\n embedType: 'in-page',\n playerId: 'default',\n Promise: window.Promise,\n refNodeInsert: 'append'\n};\nvar DEFAULT_ASPECT_RATIO = '16:9';\nvar DEFAULT_IFRAME_HORIZONTAL_PLAYLIST = false;\nvar DEFAULT_MAX_WIDTH = '100%';\nvar EMBED_TAG_NAME_VIDEO = 'video';\nvar EMBED_TAG_NAME_VIDEOJS = 'video-js';\nvar EMBED_TYPE_IN_PAGE = 'in-page';\nvar EMBED_TYPE_IFRAME = 'iframe';\nvar REF_NODE_INSERT_APPEND = 'append';\nvar REF_NODE_INSERT_PREPEND = 'prepend';\nvar REF_NODE_INSERT_BEFORE = 'before';\nvar REF_NODE_INSERT_AFTER = 'after';\nvar REF_NODE_INSERT_REPLACE = 'replace';\nvar JSON_ALLOWED_ATTRS = ['catalogSearch', 'catalogSequence'];\n\nvar BASE_URL = 'https://players.brightcove.net/';\n/**\n * Gets the URL to a player on CDN.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @return {string}\n * A URL.\n */\n\nvar getUrl = function getUrl(params) {\n if (params.playerUrl) {\n return params.playerUrl;\n }\n\n var accountId = params.accountId,\n playerId = params.playerId,\n embedId = params.embedId,\n embedOptions = params.embedOptions;\n var iframe = params.embedType === EMBED_TYPE_IFRAME;\n return brightcovePlayerUrl({\n accountId: accountId,\n playerId: playerId,\n embedId: embedId,\n iframe: iframe,\n base: BASE_URL,\n // The unminified embed option is the exact reverse of the minified option\n // here.\n minified: embedOptions ? !embedOptions.unminified : true,\n // Pass the entire params object as query params. This is safe because\n // @brightcove/player-url only accepts a whitelist of parameters. Anything\n // else will be ignored.\n queryParams: params\n });\n};\n/**\n * Function used to get the base URL - primarily for testing.\n *\n * @private\n * @return {string}\n * The current base URL.\n */\n\n\nvar getBaseUrl = function getBaseUrl() {\n return BASE_URL;\n};\n/**\n * Function used to set the base URL - primarily for testing.\n *\n * @private\n * @param {string} baseUrl\n * A new base URL (instead of Brightcove CDN).\n */\n\n\nvar setBaseUrl = function setBaseUrl(baseUrl) {\n BASE_URL = baseUrl;\n};\n\nvar urls = {\n getUrl: getUrl,\n getBaseUrl: getBaseUrl,\n setBaseUrl: setBaseUrl\n};\n\n/**\n * Is this value an element?\n *\n * @param {Element} el\n * A maybe element.\n *\n * @return {boolean}\n * Whether or not the value is a element.\n */\n\nvar isEl = function isEl(el) {\n return Boolean(el && el.nodeType === 1);\n};\n/**\n * Is this value an element with a parent node?\n *\n * @param {Element} el\n * A maybe element.\n *\n * @return {boolean}\n * Whether or not the value is a element with a parent node.\n */\n\n\nvar isElInDom = function isElInDom(el) {\n return Boolean(isEl(el) && el.parentNode);\n};\n/**\n * Creates an iframe embed code.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @return {Element}\n * The DOM element that will ultimately be passed to the `bc()` function.\n */\n\n\nvar createIframeEmbed = function createIframeEmbed(params) {\n var el = document.createElement('iframe');\n el.setAttribute('allow', 'autoplay;encrypted-media;fullscreen');\n el.setAttribute('allowfullscreen', 'allowfullscreen');\n el.src = urls.getUrl(params);\n return el;\n};\n/**\n * Creates an in-page embed code.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @return {Element}\n * The DOM element that will ultimately be passed to the `bc()` function.\n */\n\n\nvar createInPageEmbed = function createInPageEmbed(params) {\n var embedOptions = params.embedOptions; // We DO NOT include the data-account, data-player, or data-embed attributes\n // here because we will be manually initializing the player.\n\n var paramsToAttrs = {\n adConfigId: 'data-ad-config-id',\n applicationId: 'data-application-id',\n catalogSearch: 'data-catalog-search',\n catalogSequence: 'data-catalog-sequence',\n deliveryConfigId: 'data-delivery-config-id',\n playlistId: 'data-playlist-id',\n playlistVideoId: 'data-playlist-video-id',\n poster: 'poster',\n videoId: 'data-video-id'\n };\n var tagName = embedOptions && embedOptions.tagName || EMBED_TAG_NAME_VIDEOJS;\n var el = document.createElement(tagName);\n Object.keys(paramsToAttrs).filter(function (key) {\n return params[key];\n }).forEach(function (key) {\n var value; // If it's not a string, such as with a catalog search or sequence, we\n // try to encode it as JSON.\n\n if (typeof params[key] !== 'string' && JSON_ALLOWED_ATTRS.indexOf(key) !== -1) {\n try {\n value = JSON.stringify(params[key]); // If it fails, don't set anything.\n } catch (x) {\n return;\n }\n } else {\n value = String(params[key]).trim();\n }\n\n el.setAttribute(paramsToAttrs[key], value);\n });\n el.setAttribute('controls', 'controls');\n el.classList.add('video-js');\n return el;\n};\n/**\n * Wraps an element in responsive intrinsic ratio elements.\n *\n * @private\n * @param {string} embedType\n * The type of the embed.\n *\n * @param {Object} embedOptions\n * Embed options from the params.\n *\n * @param {Element} el\n * The DOM element.\n *\n * @return {Element}\n * A new element (if needed).\n */\n\n\nvar wrapResponsive = function wrapResponsive(embedType, embedOptions, el) {\n if (!embedOptions.responsive) {\n return el;\n }\n\n el.style.position = 'absolute';\n el.style.top = '0px';\n el.style.right = '0px';\n el.style.bottom = '0px';\n el.style.left = '0px';\n el.style.width = '100%';\n el.style.height = '100%';\n\n var responsive = _extends$1({\n aspectRatio: DEFAULT_ASPECT_RATIO,\n iframeHorizontalPlaylist: DEFAULT_IFRAME_HORIZONTAL_PLAYLIST,\n maxWidth: DEFAULT_MAX_WIDTH\n }, embedOptions.responsive); // This value is validate at a higher level, so we can trust that it's in the\n // correct format.\n\n\n var aspectRatio = responsive.aspectRatio.split(':').map(Number);\n var inner = document.createElement('div');\n var paddingTop = aspectRatio[1] / aspectRatio[0] * 100; // For iframes with a horizontal playlist, the playlist takes up 20% of the\n // vertical space (if shown); so, adjust the vertical size of the embed to\n // avoid black bars.\n\n if (embedType === EMBED_TYPE_IFRAME && responsive.iframeHorizontalPlaylist) {\n paddingTop *= 1.25;\n }\n\n inner.style.paddingTop = paddingTop + '%';\n inner.appendChild(el);\n var outer = document.createElement('div');\n outer.style.position = 'relative';\n outer.style.display = 'block';\n outer.style.maxWidth = responsive.maxWidth;\n outer.appendChild(inner);\n return outer;\n};\n/**\n * Wraps an element in a Picture-in-Picture plugin container.\n *\n * @private\n * @param {Object} embedOptions\n * Embed options from the params.\n *\n * @param {Element} el\n * The DOM element.\n *\n * @return {Element}\n * A new element (if needed).\n */\n\n\nvar wrapPip = function wrapPip(embedOptions, el) {\n if (!embedOptions.pip) {\n return el;\n }\n\n var pip = document.createElement('div');\n pip.classList.add('vjs-pip-container');\n pip.appendChild(el);\n return pip;\n};\n/**\n * Wraps a bare embed element with necessary parent elements, depending on\n * embed options given in params.\n *\n * @private\n * @param {string} embedType\n * The type of the embed.\n *\n * @param {Object} embedOptions\n * Embed options from the params.\n *\n * @param {Element} embed\n * The embed DOM element.\n *\n * @return {Element}\n * A new element (if needed) or the embed itself.\n */\n\n\nvar wrapEmbed = function wrapEmbed(embedType, embedOptions, embed) {\n if (!embedOptions) {\n return embed;\n }\n\n return wrapPip(embedOptions, wrapResponsive(embedType, embedOptions, embed));\n};\n/**\n * Inserts a previously-created embed element into the page based on params.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @param {Element} embed\n * The embed DOM element.\n *\n * @return {Element}\n * The embed DOM element.\n */\n\n\nvar insertEmbed = function insertEmbed(params, embed) {\n var refNode = params.refNode,\n refNodeInsert = params.refNodeInsert;\n var refNodeParent = refNode.parentNode; // Wrap the embed, if needed, in container elements to support various\n // plugins.\n\n var wrapped = wrapEmbed(params.embedType, params.embedOptions, embed); // Decide where to insert the wrapped embed.\n\n if (refNodeInsert === REF_NODE_INSERT_BEFORE) {\n refNodeParent.insertBefore(wrapped, refNode);\n } else if (refNodeInsert === REF_NODE_INSERT_AFTER) {\n refNodeParent.insertBefore(wrapped, refNode.nextElementSibling || null);\n } else if (refNodeInsert === REF_NODE_INSERT_REPLACE) {\n refNodeParent.replaceChild(wrapped, refNode);\n } else if (refNodeInsert === REF_NODE_INSERT_PREPEND) {\n refNode.insertBefore(wrapped, refNode.firstChild || null); // Append is the default.\n } else {\n refNode.appendChild(wrapped);\n } // If the playlist embed option is provided, we need to add a playlist element\n // immediately after the embed. This has to happen after the embed is inserted\n // into the DOM (above).\n\n\n if (params.embedOptions && params.embedOptions.playlist) {\n var playlistTagName = params.embedOptions.playlist.legacy ? 'ul' : 'div';\n var playlist = document.createElement(playlistTagName);\n playlist.classList.add('vjs-playlist');\n embed.parentNode.insertBefore(playlist, embed.nextElementSibling || null);\n } // Clean up internal reference to the refNode to avoid potential memory\n // leaks in case the params get persisted somewhere. We won't need it beyond\n // this point.\n\n\n params.refNode = null; // Return the original embed element that can be passed to `bc()`.\n\n return embed;\n};\n/**\n * Handles `onEmbedCreated` callback invocation.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @param {Element} embed\n * The embed DOM element.\n *\n * @return {Element}\n * A possibly-new DOM element.\n */\n\n\nvar onEmbedCreated = function onEmbedCreated(params, embed) {\n if (typeof params.onEmbedCreated !== 'function') {\n return embed;\n }\n\n var result = params.onEmbedCreated(embed);\n\n if (isEl(result)) {\n return result;\n }\n\n return embed;\n};\n/**\n * Creates an embed code of the appropriate type, runs any customizations\n * necessary, and inserts it into the DOM.\n *\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @return {Element}\n * The DOM element that will ultimately be passed to the `bc()`\n * function. Even when customized or wrapped, the return value will be\n * the target element.\n */\n\n\nvar createEmbed = function createEmbed(params) {\n var embed = params.embedType === EMBED_TYPE_IFRAME ? createIframeEmbed(params) : createInPageEmbed(params);\n return insertEmbed(params, onEmbedCreated(params, embed));\n};\n\n//\n// The keys follow the format \"accountId_playerId_embedId\" where accountId is\n// optional and defaults to \"*\". This happens when we detect pre-existing\n// player globals.\n\nvar actualCache = new window.Map();\n/**\n * Get the cache key given some properties.\n *\n * @private\n * @param {Object} props\n * Properties describing the player record to cache.\n *\n * @param {string} props.playerId\n * A player ID.\n *\n * @param {string} props.embedId\n * An embed ID.\n *\n * @param {string} [props.accountId=\"*\"]\n * An optional account ID. This is optional because when we search for\n * pre-existing players to avoid downloads, we will not necessarily\n * know the account ID.\n *\n * @return {string}\n * A key to be used in the script cache.\n */\n\nvar key = function key(_ref) {\n var accountId = _ref.accountId,\n playerId = _ref.playerId,\n embedId = _ref.embedId;\n return (accountId || '*') + \"_\" + playerId + \"_\" + embedId;\n};\n/**\n * Add an entry to the script cache.\n *\n * @private\n * @param {Object} props\n * Properties describing the player record to cache.\n *\n * @param {string} props.playerId\n * A player ID.\n *\n * @param {string} props.embedId\n * An embed ID.\n *\n * @param {string} [props.accountId=\"*\"]\n * An optional account ID. This is optional because when we search for\n * pre-existing players to avoid downloads, we will not necessarily\n * know the account ID. If not given, we assume that no script was\n * downloaded for this player.\n */\n\n\nvar store = function store(props) {\n actualCache.set(key(props), props.accountId ? urls.getUrl(props) : '');\n};\n/**\n * Checks if the script cache has an entry.\n *\n * @private\n * @param {Object} props\n * Properties describing the player record to cache.\n *\n * @param {string} props.playerId\n * A player ID.\n *\n * @param {string} props.embedId\n * An embed ID.\n *\n * @param {string} [props.accountId=\"*\"]\n * An optional account ID. This is optional because when we search for\n * pre-existing players to avoid downloads, we will not necessarily\n * know the account ID.\n *\n * @return {boolean}\n * Will be `true` if there is a matching cache entry.\n */\n\n\nvar has = function has(props) {\n return actualCache.has(key(props));\n};\n/**\n * Gets a cache entry.\n *\n * @private\n * @param {Object} props\n * Properties describing the player record to cache.\n *\n * @param {string} props.playerId\n * A player ID.\n *\n * @param {string} props.embedId\n * An embed ID.\n *\n * @param {string} [props.accountId=\"*\"]\n * An optional account ID. This is optional because when we search for\n * pre-existing players to avoid downloads, we will not necessarily\n * know the account ID.\n *\n * @return {string}\n * A cache entry - a URL or empty string.\n *\n */\n\n\nvar get = function get(props) {\n return actualCache.get(key(props));\n};\n/**\n * Clears the cache.\n */\n\n\nvar clear = function clear() {\n actualCache.clear();\n};\n/**\n * Iterates over the cache.\n *\n * @param {Function} fn\n * A callback function that will be called with a value and a key\n * for each item in the cache.\n */\n\n\nvar forEach = function forEach(fn) {\n actualCache.forEach(fn);\n};\n\nvar playerScriptCache = {\n clear: clear,\n forEach: forEach,\n get: get,\n has: has,\n key: key,\n store: store\n};\n\nvar REGEX_PLAYER_EMBED = /^([A-Za-z0-9]+)_([A-Za-z0-9]+)$/;\n/**\n * Gets an array of current per-player/per-embed `bc` globals that are\n * attached to the `bc` global (e.g. `bc.abc123xyz_default`).\n *\n * If `bc` is not defined, returns an empty array.\n *\n * @private\n * @return {string[]}\n * An array of keys.\n */\n\nvar getBcGlobalKeys = function getBcGlobalKeys() {\n return window.bc ? Object.keys(window.bc).filter(function (k) {\n return REGEX_PLAYER_EMBED.test(k);\n }) : [];\n};\n/**\n * Gets known global object keys that Brightcove Players may create.\n *\n * @private\n * @return {string[]}\n * An array of global variables that were added during testing.\n */\n\n\nvar getGlobalKeys = function getGlobalKeys() {\n return Object.keys(window).filter(function (k) {\n return /^videojs/i.test(k) || /^(bc)$/.test(k);\n });\n};\n/**\n * Dispose all players from a copy of Video.js.\n *\n * @param {Function} videojs\n * A copy of Video.js.\n */\n\n\nvar disposeAll = function disposeAll(videojs) {\n if (!videojs) {\n return;\n }\n\n Object.keys(videojs.players).forEach(function (k) {\n var p = videojs.players[k];\n\n if (p) {\n p.dispose();\n }\n });\n};\n/**\n * Resets environment state.\n *\n * This will dispose ALL Video.js players on the page and remove ALL `bc` and\n * `videojs` globals it finds.\n */\n\n\nvar reset = function reset() {\n // Remove all script elements from the DOM.\n playerScriptCache.forEach(function (value, key) {\n // If no script URL is associated, skip it.\n if (!value) {\n return;\n } // Find all script elements and remove them.\n\n\n Array.prototype.slice.call(document.querySelectorAll(\"script[src=\\\"\" + value + \"\\\"]\")).forEach(function (el) {\n return el.parentNode.removeChild(el);\n });\n }); // Clear the internal cache that have been downloaded.\n\n playerScriptCache.clear(); // Dispose any remaining players from the `videojs` global.\n\n disposeAll(window.videojs); // There may be other `videojs` instances lurking in the bowels of the\n // `bc` global. This should eliminate any of those.\n\n getBcGlobalKeys().forEach(function (k) {\n return disposeAll(window.bc[k].videojs);\n }); // Delete any global object keys that were created.\n\n getGlobalKeys().forEach(function (k) {\n delete window[k];\n });\n};\n/**\n * At runtime, populate the cache with pre-detected players. This allows\n * people who have bundled their player or included a script tag before this\n * runs to not have to re-download players.\n */\n\n\nvar detectPlayers = function detectPlayers() {\n getBcGlobalKeys().forEach(function (k) {\n var matches = k.match(REGEX_PLAYER_EMBED);\n var props = {\n playerId: matches[1],\n embedId: matches[2]\n };\n\n if (!playerScriptCache.has(props)) {\n playerScriptCache.store(props);\n }\n });\n};\n\nvar env = {\n detectPlayers: detectPlayers,\n reset: reset\n};\n\nenv.detectPlayers();\n/**\n * Is this value a function?\n *\n * @private\n * @param {Function} fn\n * A maybe function.\n *\n * @return {boolean}\n * Whether or not the value is a function.\n */\n\nvar isFn = function isFn(fn) {\n return typeof fn === 'function';\n};\n/**\n * Checks whether an embedType parameter is valid.\n *\n * @private\n * @param {string} embedType\n * The value to test.\n *\n * @return {boolean}\n * Whether the value is valid.\n */\n\n\nvar isValidEmbedType = function isValidEmbedType(embedType) {\n return embedType === EMBED_TYPE_IN_PAGE || embedType === EMBED_TYPE_IFRAME;\n};\n/**\n * Checks whether an embedOptions.tagName parameter is valid.\n *\n * @private\n * @param {string} tagName\n * The value to test.\n *\n * @return {boolean}\n * Whether the value is valid.\n */\n\n\nvar isValidTagName = function isValidTagName(tagName) {\n return tagName === EMBED_TAG_NAME_VIDEOJS || tagName === EMBED_TAG_NAME_VIDEO;\n};\n/**\n * Checks whether a refNodeInsert parameter is valid.\n *\n * @private\n * @param {string} refNodeInsert\n * The value to test.\n *\n * @return {boolean}\n * Whether the value is valid.\n */\n\n\nvar isValidRootInsert = function isValidRootInsert(refNodeInsert) {\n return refNodeInsert === REF_NODE_INSERT_APPEND || refNodeInsert === REF_NODE_INSERT_PREPEND || refNodeInsert === REF_NODE_INSERT_BEFORE || refNodeInsert === REF_NODE_INSERT_AFTER || refNodeInsert === REF_NODE_INSERT_REPLACE;\n};\n/**\n * Checks parameters and throws an error on validation problems.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @throws {Error} If accountId is missing.\n * @throws {Error} If refNode is missing or invalid.\n * @throws {Error} If embedType is missing or invalid.\n * @throws {Error} If attempting to use an iframe embed with options.\n * @throws {Error} If attempting to use embedOptions.responsiveIframe with a\n * non-iframe embed.\n * @throws {Error} If refNodeInsert is missing or invalid.\n */\n\n\nvar checkParams = function checkParams(params) {\n var accountId = params.accountId,\n embedOptions = params.embedOptions,\n embedType = params.embedType,\n options = params.options,\n refNode = params.refNode,\n refNodeInsert = params.refNodeInsert;\n\n if (!accountId) {\n throw new Error('accountId is required');\n } else if (!isElInDom(refNode)) {\n throw new Error('refNode must resolve to a node attached to the DOM');\n } else if (!isValidEmbedType(embedType)) {\n throw new Error('embedType is missing or invalid');\n } else if (embedType === EMBED_TYPE_IFRAME && options) {\n throw new Error('cannot use options with an iframe embed');\n } else if (embedOptions && embedOptions.tagName !== undefined && !isValidTagName(embedOptions.tagName)) {\n throw new Error(\"embedOptions.tagName is invalid (value: \\\"\" + embedOptions.tagName + \"\\\")\");\n } else if (embedOptions && embedOptions.responsive && embedOptions.responsive.aspectRatio && !/^\\d+\\:\\d+$/.test(embedOptions.responsive.aspectRatio)) {\n throw new Error(\"embedOptions.responsive.aspectRatio must be in the \\\"n:n\\\" format (value: \\\"\" + embedOptions.responsive.aspectRatio + \"\\\")\");\n } else if (!isValidRootInsert(refNodeInsert)) {\n throw new Error('refNodeInsert is missing or invalid');\n }\n};\n/**\n * Normalizes a `refNode` param to an element - or `null`.\n *\n * @private\n * @param {Element|string} refNode\n * The value of a `refNode` param.\n *\n * @return {Element|null}\n * A DOM element or `null` if the `refNode` was given as a string and\n * did not match an element.\n */\n\n\nvar resolveRefNode = function resolveRefNode(refNode) {\n if (isElInDom(refNode)) {\n return refNode;\n }\n\n if (typeof refNode === 'string') {\n return document.querySelector(refNode);\n }\n\n return null;\n};\n/**\n * Initializes a player and returns it.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @param {Element} embed\n * An element that will be passed to the `bc()` function.\n *\n * @param {Function} resolve\n * A function to call if a player is successfully initialized.\n *\n * @param {Function} reject\n * A function to call if a player fails to be initialized.\n *\n * @return {Object}\n * A success object whose `ref` is a player.\n */\n\n\nvar initPlayer = function initPlayer(params, embed, resolve, reject) {\n var embedId = params.embedId,\n playerId = params.playerId;\n var bc = window.bc[playerId + \"_\" + embedId] || window.bc;\n\n if (!bc) {\n return reject(new Error(\"missing bc function for \" + playerId));\n }\n\n playerScriptCache.store(params);\n var player;\n\n try {\n player = bc(embed, params.options); // Add a PLAYER_LOADER property to bcinfo to indicate this player was\n // loaded via that mechanism.\n\n if (player.bcinfo) {\n player.bcinfo.PLAYER_LOADER = true;\n }\n } catch (x) {\n var message = 'Could not initialize the Brightcove Player.'; // Update the rejection message based on known conditions that can cause it.\n\n if (params.embedOptions.tagName === EMBED_TAG_NAME_VIDEOJS) {\n message += ' You are attempting to embed using a \"video-js\" element.' + ' Please ensure that your Player is v6.11.0 or newer in order to' + ' support this embed type. Alternatively, pass `\"video\"` for' + ' `embedOptions.tagName`.';\n }\n\n return reject(new Error(message));\n }\n\n resolve({\n type: EMBED_TYPE_IN_PAGE,\n ref: player\n });\n};\n/**\n * Loads a player from CDN and embeds it.\n *\n * @private\n * @param {Object} params\n * A parameters object. See README for details.\n *\n * @param {Function} resolve\n * A function to call if a player is successfully initialized.\n *\n * @param {Function} reject\n * A function to call if a player fails to be initialized.\n */\n\n\nvar loadPlayer = function loadPlayer(params, resolve, reject) {\n params.refNode = resolveRefNode(params.refNode);\n checkParams(params);\n var refNode = params.refNode,\n refNodeInsert = params.refNodeInsert; // Store a reference to the refNode parent. When we use the replace method,\n // we'll need it as the location to store the script element.\n\n var refNodeParent = refNode.parentNode;\n var embed = createEmbed(params); // If this is an iframe, all we need to do is create the embed code and\n // inject it. Because there is no reliable way to hook into an iframe from\n // the parent page, we simply resolve immediately upon creating the embed.\n\n if (params.embedType === EMBED_TYPE_IFRAME) {\n resolve({\n type: EMBED_TYPE_IFRAME,\n ref: embed\n });\n return;\n } // If we've already downloaded this script or detected a matching global, we\n // should have the proper `bc` global and can bypass the script creation\n // process.\n\n\n if (playerScriptCache.has(params)) {\n return initPlayer(params, embed, resolve, reject);\n }\n\n var script = document.createElement('script');\n\n script.onload = function () {\n return initPlayer(params, embed, resolve, reject);\n };\n\n script.onerror = function () {\n reject(new Error('player script could not be downloaded'));\n };\n\n script.async = true;\n script.charset = 'utf-8';\n script.src = urls.getUrl(params);\n\n if (refNodeInsert === REF_NODE_INSERT_REPLACE) {\n refNodeParent.appendChild(script);\n } else {\n refNode.appendChild(script);\n }\n};\n/**\n * A function for asynchronously loading a Brightcove Player into a web page.\n *\n * @param {Object} parameters\n * A parameters object. See README for details.\n *\n * @return {Promise|undefined}\n * A Promise, if possible.\n */\n\n\nvar brightcovePlayerLoader = function brightcovePlayerLoader(parameters) {\n var params = _extends$1({}, DEFAULTS, parameters);\n\n var Promise = params.Promise,\n onSuccess = params.onSuccess,\n onFailure = params.onFailure; // When Promise is not available or any success/failure callback is given,\n // do not attempt to use Promises.\n\n if (!isFn(Promise) || isFn(onSuccess) || isFn(onFailure)) {\n return loadPlayer(params, isFn(onSuccess) ? onSuccess : function () {}, isFn(onFailure) ? onFailure : function (err) {\n throw err;\n });\n } // Promises are supported, use 'em.\n\n\n return new Promise(function (resolve, reject) {\n return loadPlayer(params, resolve, reject);\n });\n};\n/**\n * Expose a non-writable, non-configurable property on the\n * `brightcovePlayerLoader` function.\n *\n * @private\n * @param {string} key\n * The property key.\n *\n * @param {string|Function} value\n * The value.\n */\n\n\nvar expose = function expose(key, value) {\n Object.defineProperty(brightcovePlayerLoader, key, {\n configurable: false,\n enumerable: true,\n value: value,\n writable: false\n });\n};\n/**\n * Get the base URL for players. By default, this will be the Brightcove CDN.\n *\n * @return {string}\n * The current base URL.\n */\n\n\nexpose('getBaseUrl', function () {\n return urls.getBaseUrl();\n});\n/**\n * Set the base URL for players. By default, this will be the Brightcove CDN,\n * but can be overridden with this function.\n *\n * @param {string} baseUrl\n * A new base URL (instead of Brightcove CDN).\n */\n\nexpose('setBaseUrl', function (baseUrl) {\n urls.setBaseUrl(baseUrl);\n});\n/**\n * Get the URL for a player.\n */\n\nexpose('getUrl', function (options) {\n return urls.getUrl(options);\n});\n/**\n * Completely resets global state.\n *\n * This will dispose ALL Video.js players on the page and remove ALL `bc` and\n * `videojs` globals it finds.\n */\n\nexpose('reset', function () {\n return env.reset();\n}); // Define some read-only constants on the exported function.\n\n[['EMBED_TAG_NAME_VIDEO', EMBED_TAG_NAME_VIDEO], ['EMBED_TAG_NAME_VIDEOJS', EMBED_TAG_NAME_VIDEOJS], ['EMBED_TYPE_IN_PAGE', EMBED_TYPE_IN_PAGE], ['EMBED_TYPE_IFRAME', EMBED_TYPE_IFRAME], ['REF_NODE_INSERT_APPEND', REF_NODE_INSERT_APPEND], ['REF_NODE_INSERT_PREPEND', REF_NODE_INSERT_PREPEND], ['REF_NODE_INSERT_BEFORE', REF_NODE_INSERT_BEFORE], ['REF_NODE_INSERT_AFTER', REF_NODE_INSERT_AFTER], ['REF_NODE_INSERT_REPLACE', REF_NODE_INSERT_REPLACE], ['VERSION', version]].forEach(function (arr) {\n expose(arr[0], arr[1]);\n});\n\n/**\n * These prop changes can be handled by an internal player state change rather\n * than a full dispose/recreate.\n *\n * @private\n * @type {Object}\n */\n\nvar UPDATEABLE_PROPS = ['catalogSearch', 'catalogSequence', 'playlistId', 'playlistVideoId', 'videoId'];\n\nvar logError = function logError(err) {\n /* eslint-disable no-console */\n if (err && console && console.error) {\n console.error(err);\n }\n /* eslint-enable no-console */\n\n};\n/**\n * The official React component for the Brightcove Player!\n *\n * This uses `@brightcove/player-loader` to load a player into a React\n * component based on the given props.\n */\n\n\nvar ReactPlayerLoader =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReactPlayerLoader, _React$Component);\n\n /**\n * Create a new Brightcove player.\n *\n * @param {Object} props\n * Most options will be passed along to player-loader, except for\n * options that are listed. See README.md for more detail.\n *\n * @param {string} [props.baseUrl]\n * The base URL to use when requesting a player\n *\n * @param {Object} [props.attrs]\n * Used to set attributes on the component element that contains the\n * embedded Brightcove Player.\n *\n * @param {boolean} [props.manualReloadFromPropChanges]\n * Used to specify if reloading the player after prop changes will be handled manually.\n *\n */\n function ReactPlayerLoader(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.refNode = null;\n\n _this.setRefNode = function (ref) {\n _this.refNode = ref;\n };\n\n _this.loadPlayer = _this.loadPlayer.bind(_assertThisInitialized(_this));\n return _this;\n }\n /**\n * Loads a new player based on the current props.\n */\n\n\n var _proto = ReactPlayerLoader.prototype;\n\n _proto.loadPlayer = function loadPlayer() {\n var _this2 = this;\n\n // If there is any player currently loaded, dispose it before fetching a\n // new one.\n this.disposePlayer(); // We need to provide our own callbacks below, so we cache these\n // user-provided callbacks for use later.\n\n var userSuccess = this.props.onSuccess;\n var userFailure = this.props.onFailure;\n\n var options = _extends({}, this.props, {\n refNode: this.refNode,\n refNodeInsert: 'append',\n onSuccess: function onSuccess(_ref) {\n var ref = _ref.ref,\n type = _ref.type;\n\n // If the component is not mounted when the callback fires, dispose\n // the player and bail out.\n if (!_this2.isMounted_) {\n _this2.disposePlayer(ref);\n\n return;\n } // Store a player reference on the component.\n\n\n _this2.player = ref; // Null out the player reference when the player is disposed from\n // outside the component.\n\n if (type === 'in-page') {\n ref.one('dispose', function () {\n _this2.player = null;\n });\n } // Add a REACT_PLAYER_LOADER property to bcinfo to indicate this player\n // was loaded via that mechanism.\n\n\n if (ref.bcinfo) {\n ref.bcinfo.REACT_PLAYER_LOADER = true;\n } // Call a user-provided onSuccess callback.\n\n\n if (typeof userSuccess === 'function') {\n userSuccess({\n ref: ref,\n type: type\n });\n }\n },\n onFailure: function onFailure(error) {\n // Ignore errors when not mounted.\n if (!_this2.isMounted_) {\n return;\n } // Call a user-provided onFailure callback.\n\n\n if (typeof userFailure === 'function') {\n userFailure(error);\n return;\n } // Fall back to throwing an error;\n\n\n throw new Error(error);\n }\n }); // Delete props that are not meant to be passed to player-loader.\n\n\n delete options.attrs;\n delete options.baseUrl;\n delete options.manualReloadFromPropChanges; // If a base URL is provided, it should only apply to this player load.\n // This means we need to back up the original base URL and restore it\n // _after_ we call player loader.\n\n var originalBaseUrl = brightcovePlayerLoader.getBaseUrl();\n\n if (this.props.baseUrl) {\n brightcovePlayerLoader.setBaseUrl(this.props.baseUrl);\n }\n\n brightcovePlayerLoader(options);\n brightcovePlayerLoader.setBaseUrl(originalBaseUrl);\n }\n /**\n * Disposes the current player, if there is one.\n */\n ;\n\n _proto.disposePlayer = function disposePlayer() {\n // Nothing to dispose.\n if (!this.player) {\n return;\n } // Dispose an in-page player.\n\n\n if (this.player.dispose) {\n this.player.dispose(); // Dispose an iframe player.\n } else if (this.player.parentNode) {\n this.player.parentNode.removeChild(this.player);\n } // Null out the player reference.\n\n\n this.player = null;\n }\n /**\n * Find the index of the `playlistVideoId` prop within the player's playlist.\n *\n * @param {Object[]} playlist\n * An array of playlist item objects.\n *\n * @return {number}\n * The index of the `playlistVideoId` or `-1` if the player has been\n * disposed, is not using the playlist plugin, or if not found.\n */\n ;\n\n _proto.findPlaylistVideoIdIndex_ = function findPlaylistVideoIdIndex_(playlist) {\n var playlistVideoId = this.props.playlistVideoId;\n\n if (Array.isArray(playlist) && playlistVideoId) {\n for (var i = 0; i < playlist.length; i++) {\n var _playlist$i = playlist[i],\n id = _playlist$i.id,\n referenceId = _playlist$i.referenceId;\n\n if (id === playlistVideoId || \"ref:\" + referenceId === playlistVideoId) {\n return i;\n }\n }\n }\n\n return -1;\n }\n /**\n * Create a Playback API callback function for the component's player.\n *\n * @private\n * @param {string} requestType\n * The Playback API request type (e.g. \"video\" or \"playlist\").\n *\n * @param {Object} changes\n * An object. The keys of this object are the props that changed.\n *\n * @return {Function}\n * A callback for the Playback API request.\n */\n ;\n\n _proto.createPlaybackAPICallback_ = function createPlaybackAPICallback_(requestType, changes) {\n var _this3 = this;\n\n return function (err, data) {\n if (err) {\n logError(err);\n return;\n } // If the playlistVideoId changed and this is a playlist request, we\n // need to search through the playlist items to find the correct\n // starting index.\n\n\n if (requestType === 'playlist' && changes.playlistVideoId) {\n var i = _this3.findPlaylistVideoIdIndex_(data);\n\n if (i > -1) {\n data.startingIndex = i;\n }\n }\n\n _this3.player.catalog.load(data);\n };\n }\n /**\n * Update the player based on changes to certain props that do not require\n * a full player dispose/recreate.\n *\n * @param {Object} changes\n * An object. The keys of this object are the props that changed.\n */\n ;\n\n _proto.updatePlayer = function updatePlayer(changes) {\n // No player exists, player is disposed, or not using the catalog\n if (!this.player || !this.player.el || !this.player.el()) {\n return;\n } // If the player is using the catalog plugin, we _may_ populate this\n // variable with an object.\n\n\n var catalogParams;\n\n if (this.player.usingPlugin('catalog')) {\n // There is a new catalog sequence request. This takes precedence over\n // other catalog updates because it is a different call.\n if (changes.catalogSequence && this.props.catalogSequence) {\n var callback = this.createPlaybackAPICallback_('sequence', changes);\n this.player.catalog.getLazySequence(this.props.catalogSequence, callback, this.props.adConfigId);\n return;\n }\n\n if (changes.videoId && this.props.videoId) {\n catalogParams = {\n type: 'video',\n id: this.props.videoId\n };\n } else if (changes.playlistId && this.props.playlistId) {\n catalogParams = {\n type: 'playlist',\n id: this.props.playlistId\n };\n } else if (changes.catalogSearch && this.props.catalogSearch) {\n catalogParams = {\n type: 'search',\n q: this.props.catalogSearch\n };\n }\n } // If `catalogParams` is `undefined` here, that means the player either\n // does not have the catalog plugin or no valid catalog request can be made.\n\n\n if (catalogParams) {\n if (this.props.adConfigId) {\n catalogParams.adConfigId = this.props.adConfigId;\n }\n\n if (this.props.deliveryConfigId) {\n catalogParams.deliveryConfigId = this.props.deliveryConfigId;\n } // We use the callback style here to make tests simpler in IE11 (no need\n // for a Promise polyfill).\n\n\n var _callback = this.createPlaybackAPICallback_(catalogParams.type, changes);\n\n this.player.catalog.get(catalogParams, _callback); // If no catalog request is being made, we may still need to update the\n // playlist selected video.\n } else if (changes.playlistVideoId && this.props.playlistVideoId && this.player.usingPlugin('playlist')) {\n var i = this.findPlaylistVideoIdIndex_(this.player.playlist());\n\n if (i > -1) {\n this.player.playlist.currentItem(i);\n }\n }\n }\n /**\n * Called just after the component has mounted.\n */\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n this.isMounted_ = true;\n this.loadPlayer();\n }\n /**\n * Called when the component props are updated.\n *\n * Some prop changes may trigger special behavior (see `propChangeHandlers`),\n * but if ANY prop is changed that is NOT handled, the player will be\n * disposed/recreated entirely.\n *\n * @param {Object} prevProps\n * The previous props state before change.\n */\n ;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this4 = this;\n\n // Calculate the prop changes.\n var changes = Object.keys(prevProps).reduce(function (acc, key) {\n var previous = prevProps[key];\n var current = _this4.props[key]; // Do not compare functions\n\n if (typeof current === 'function') {\n return acc;\n }\n\n if (typeof current === 'object' && current !== null) {\n if (JSON.stringify(current) !== JSON.stringify(previous)) {\n acc[key] = true;\n }\n\n return acc;\n }\n\n if (current !== previous) {\n acc[key] = true;\n }\n\n return acc;\n }, {});\n\n if (!this.props.manualReloadFromPropChanges) {\n // Dispose and recreate the player if any changed keys cannot be handled.\n if (Object.keys(changes).some(function (k) {\n return UPDATEABLE_PROPS.indexOf(k) === -1;\n })) {\n this.loadPlayer();\n return;\n }\n }\n\n this.updatePlayer(changes);\n }\n /**\n * Called just before a component unmounts. Disposes the player.\n */\n ;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.isMounted_ = false;\n this.disposePlayer();\n }\n /**\n * Renders the component.\n *\n * @return {ReactElement}\n * The react element to render.\n */\n ;\n\n _proto.render = function render() {\n var props = _extends({\n className: 'brightcove-react-player-loader'\n }, this.props.attrs, {\n ref: this.setRefNode\n });\n\n return React.createElement('div', props);\n };\n\n return ReactPlayerLoader;\n}(React.Component);\n\nexport default ReactPlayerLoader;\n","var topLevel = typeof global !== 'undefined' ? global :\n typeof window !== 'undefined' ? window : {}\nvar minDoc = require('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","var hotjar = require('./src/react-hotjar');\n\nfunction hj() {\n\tvar params = Array.prototype.slice.call(arguments);\n\tif (!window.hj) {\n\t\tthrow new Error('Hotjar is not initialized');\n\t}\n\n\twindow.hj.apply(undefined, params);\n}\n\nmodule.exports = {\n\thotjar: {\n\t\tinitialize: function initialize(id, sv) {\n\t\t\thotjar(id, sv);\n\t\t},\n\t\tinitialized: function initialized() {\n\t\t\treturn typeof window !== 'undefined' && typeof window?.hj === 'function';\n\t\t},\n\t\tidentify: function identify(userId, properties) {\n\t\t\thj('identify', userId, properties);\n\t\t},\n\t\tevent: function event(event) {\n\t\t\thj('event', event);\n\t\t},\n\t\tstateChange: function stateChange(relativePath) {\n\t\t\thj('stateChange', relativePath);\n\t\t}\n\t}\n};\n","module.exports = function(id, sv, debug=false) {\n\t(function(h, o, t, j, a, r) {\n\t\th.hj =\n\t\t\th.hj ||\n\t\t\tfunction() {\n\t\t\t\t(h.hj.q = h.hj.q || []).push(arguments);\n\t\t\t};\n\t\th._hjSettings = { hjid: id, hjsv: sv, hjDebug: debug };\n\t\th._scriptPath = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;\n\t\tif(!document.querySelector(\n\t\t\t'script[src*=\"' + h._scriptPath + '\"]'\n\t\t)){\n\t\t\ta = o.getElementsByTagName('head')[0];\n\t\t\tr = o.createElement('script');\n\t\t\tr.async = 1;\n\t\t\tr.src = h._scriptPath;\n\t\t\ta.appendChild(r);\n\t\t}\n\t})(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');\n};\n"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_extends$1","_typeof","Symbol","iterator","obj","constructor","JSON_ALLOWED_PARAMS","IFRAME_ALLOWED_QUERY_PARAMS","getQueryParamValue","params","undefined","indexOf","encodeURIComponent","JSON","stringify","x","String","trim","brightcovePlayerUrl","_ref","accountId","_ref$base","base","_ref$playerId","playerId","_ref$embedId","embedId","_ref$iframe","iframe","_ref$minified","minified","_ref$queryParams","queryParams","ext","charAt","substring","qs","keys","filter","k","reduce","value","VERSION","DEFAULTS","embedType","Promise","global_window__WEBPACK_IMPORTED_MODULE_2___default","refNodeInsert","EMBED_TAG_NAME_VIDEO","EMBED_TAG_NAME_VIDEOJS","EMBED_TYPE_IN_PAGE","EMBED_TYPE_IFRAME","REF_NODE_INSERT_APPEND","REF_NODE_INSERT_PREPEND","REF_NODE_INSERT_BEFORE","REF_NODE_INSERT_AFTER","REF_NODE_INSERT_REPLACE","JSON_ALLOWED_ATTRS","BASE_URL","urls","getUrl","playerUrl","embedOptions","unminified","getBaseUrl","setBaseUrl","baseUrl","isEl","el","Boolean","nodeType","isElInDom","parentNode","createIframeEmbed","global_document__WEBPACK_IMPORTED_MODULE_1___default","createElement","setAttribute","src","createInPageEmbed","paramsToAttrs","adConfigId","applicationId","catalogSearch","catalogSequence","deliveryConfigId","playlistId","playlistVideoId","poster","videoId","tagName","forEach","classList","add","wrapResponsive","responsive","style","position","top","right","bottom","left","width","height","aspectRatio","iframeHorizontalPlaylist","maxWidth","split","map","Number","inner","paddingTop","appendChild","outer","display","wrapPip","pip","insertEmbed","embed","refNode","refNodeParent","wrapped","insertBefore","nextElementSibling","replaceChild","firstChild","playlist","playlistTagName","legacy","onEmbedCreated","result","createEmbed","actualCache","Map","playerScriptCache","clear","fn","get","props","has","store","set","REGEX_PLAYER_EMBED","getBcGlobalKeys","bc","test","disposeAll","videojs","players","p","dispose","env","detectPlayers","matches","match","reset","Array","slice","querySelectorAll","removeChild","getGlobalKeys","isFn","checkParams","options","initPlayer","resolve","reject","player","bcinfo","PLAYER_LOADER","message","type","ref","loadPlayer","querySelector","script","onload","onerror","async","charset","brightcovePlayerLoader","parameters","onSuccess","onFailure","err","expose","defineProperty","configurable","enumerable","writable","arr","UPDATEABLE_PROPS","logError","console","error","ReactPlayerLoader","_React$Component","_this","setRefNode","bind","_assertThisInitialized","self","subClass","create","superClass","__proto__","_proto","_this2","disposePlayer","userSuccess","userFailure","isMounted_","one","REACT_PLAYER_LOADER","attrs","manualReloadFromPropChanges","originalBaseUrl","findPlaylistVideoIdIndex_","isArray","_playlist$i","id","referenceId","createPlaybackAPICallback_","requestType","changes","_this3","data","startingIndex","catalog","load","updatePlayer","usingPlugin","catalogParams","callback","getLazySequence","q","_callback","currentItem","componentDidMount","componentDidUpdate","prevProps","_this4","acc","previous","current","some","componentWillUnmount","render","className","react__WEBPACK_IMPORTED_MODULE_0__","Component","__webpack_exports__","doccy","topLevel","__webpack_require__","g","window","minDoc","document","module","exports","win","hotjar","hj","initialize","sv","initialized","identify","userId","properties","event","stateChange","relativePath","debug","h","o","a","r","push","_hjSettings","hjid","hjsv","hjDebug","_scriptPath","t","getElementsByTagName"],"sourceRoot":""}