{"version":3,"sources":["webpack://@verndale/toolkit/./node_modules/@vidyard/embed-code/dist/v4.umd.js"],"names":["root","factory","module","modules","installedModules","moduleId","exports","name","getter","value","mode","ns","key","object","property","g","_extends","target","i","source","CustomEvent","util","mainEl","trappedEl","dirtyObjects","filterSvg","item","showElementPrep","el","useHiddenProperty","preparedElement","prepareElement","hideElementPrep","attributeName","dirtyValue","isProperty","dirtyElement","preparedObj","cleanElement","untrap","defaultOptions","trap","selectedOptions","options","ancestors","siblings","siblingsOfAncestors","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","error","urlLike","regExp","parts","filtered","line","tokens","locationParts","functionName","fileName","functionNameRegex","matches","e","lineRE","lines","result","len","match","functionCall","argsRaw","args","__webpack_require__","Shylog","_a","_b","emit","logger","level","log","_this","logFn","_i","message","__webpack_exports__","callback","constructor","reason","setImmediate","_finally__WEBPACK_IMPORTED_MODULE_0__","setTimeoutFunc","noop","bind","fn","thisArg","Promise","doResolve","handle","self","deferred","cb","resolve","reject","ret","newValue","then","finale","Handler","onFulfilled","onRejected","promise","done","ex","prom","arr","remaining","res","val","values","err","src","isFn","checkNativePromise","promiseFn","addListener","eventName","oldIeEventName","handler","element","removeListener","createEvent","payload","legacyCustomEvent","isObjectEmpty","obj","prop","indexOfArray","shallowMerge","a","b","getElementByClass","className","tagName","topLevelNode","results","re","nodes","toArray","nodes_1","node","calcAspectRatio","imageEl","additionalWidth","size","getNaturalDimensions","embed_helpers_log","logType","find","array","test","array_1","includes","itemToCheck","once","expired","spaceOrEnterKeyPressEvent","escKeyPressEvent","getCurrentScript","script","ele","img","isArray","arg","htmlCollection","checkJSONParse","jsonString","rej","xhrRequest","endpoint","_c","method","isXDomain","xhr","getFullscreenAPI","apiMap","browserAPI","fullscreenAPI","apiMap_1","browserMethods","dataSet","collection","parseAttributeName","attr","getQueryParam","regexString","regex","parseNestedData","encodedData","type","nestedData_1","acc","parseVyData","data","parsedData_1","parsedKey","toggleClass","classToToggle","forceBoolean","hasClass","targetClass","addClass","removeClass","VERSION","ERROR_ORIGIN_RE","INTEGRATIONS_URL","OVERLAY_FADE_TIME","PLAYLIST_WIDTH","SEO_DETAILS_URL","STYLE_PATH","dynamicPlaybackURL","playbackURLOverride","url","currentScript","stagingPlaybackUrl","setPlaybackURL","getPlaybackURL","getBaseURL","getErrorURL","send","targetOrigin","stringMessage","targetSrc","receive","postMessage","parse","event","iframe","contentWindow","sameSource","validEvent","cookieNames","messageNames","IntegrationsWatcher","cookieCheckInterval","loadedEloquaScript","organizations","player","orgId","currentPlayer","eloqua","eloquaFirstPartyDomain","loadEloquaTrackingScript","handleStatus","checkForIntegrations","integration","externalIdentifier","haveSentIntegrationToPlayer","communicateIntegration","setIntegrationSent","integrationName","visitorData","org","communicateKnownVisitor","organization","cookies","cookieName","alterDynamicCookieName","cookies_1","currentCookie","equalIndex","foundName","foundId","setupFoundIntegration","playerUuid","setIntegrationIdentifier","messagePlayersFoundIntegration","players","players_1","sendKnownVisitor","leadType","leadData","messageNames_1","orgKey","currentOrganization","cookieValue","parseCookieValue","msgName","siteId","firstPartyDomain","createEloquaScriptNode","eloquaScript","firstScript","readyCallback","readyEvent","dispatchReady","dispatch_ready","build","build_default","debug_currentScript","debug","api_debug","addReadyListener","uuid","playerReadyListeners","processReadyListeners","callbacks","k","allowFeaturePolicy","features","createIframe","dataParams","sizing","maxSizeDiv","children","createJsonLD","playerDetailsScriptTag","getStyle","request","getIntegrations","getSEO","getMarketoLead","marketoCookie","cookie","contactUrl","createJSONPTag","requestUuid","jsonpRequests","success","onRes","messages","__rest","s","t","p","loadPlaceholder","width","height","createPlaceholder","container","aspect","other","image","style","loadServerThumbnail","injectInlineElements","updateAspectRatio","iframeLoadedPromise","playerReadyPromise","handleResize","newAspectRatio","innerContainer","updateInlineIframeTitle","metadata","aboveBreakpoint","playlistAlwaysOpen","inline_player","ariaHideChildElements","undoAriaHideChildElements","user_agent_checker","array_toArray","arrayFind","search","asArray","FOCUS_GROUP","FOCUS_DISABLED","FOCUS_ALLOW","FOCUS_AUTO","focusIsHidden_focusIsHidden","es2015_focusIsHidden","_typeof","filterNested","l","_loop","j","x","_ret","getTopParent","all_affected_getAllAffectedNodes","currentNode","group","all_affected","focusInFrame","frame","focusInside_focusInsideIframe","topNode","focusInside_focusInside","activeElement","es2015_focusInside","tabSort","tabDiff","indexDiff","tabOrder_orderByTabIndex","filterNegative","keepGuards","index","tabbables","queryTabbables","queryGuardTabbables","tabUtils_getFocusables","parents","withGuards","parent","tabUtils_getParentAutofocusables","parentFocus","isElementHidden","computedStyle","isVisible","notHiddenInput","getParents","getCommonParent","nodea","nodeb","parentsA","parentsB","currentParent","DOMutils_filterFocusable","DOMutils_getTabbableNodes","topNodes","DOMutils_getAllTabbableNodes","DOMutils_parentAutofocusables","isRadio","findSelectedRadio","pickFirstFocus","pickFocusable","utils_firstFocus","findAutoFocused","autoFocusables","isGuard","notAGuard","focusMerge_newFocus","innerNodes","outerNodes","lastNode","autoFocused","cnt","firstFocus","lastFocus","isOnGuard","activeIndex","lastIndex","lastNodeInside","firstNodeIndex","lastNodeIndex","returnFirstNode","returnLastNode","focusMerge_getTopCommonParent","baseActiveElement","leftEntry","rightEntries","activeElements","leftEntries","topCommon","entry","subEntry","common","focusMerge_allParentAutofocusables","entries","reorderNodes","srcNodes","dstNodes","remap","entity","focusMerge_getFocusabledIn","commonParent","innerElements","_ref","_ref2","_ref3","focusMerge_getFocusMerge","_ref4","_ref5","_ref6","orderedInnerElements","_ref7","newId","focusMerge","focusOn","guardCount","lockDisabled","setFocus","focusable","es2015","lastActiveTrap","lastActiveFocus","focusOnBody","index_esm_isFreeFocus","index_esm_activateTrap","observed","reducePropsToState","propsList","handleStateChangeOnClient","instances","emitChange","attachHandler","detachHandler","focusLock","domNode","index_esm","makeup_screenreader_trap","makeup_screenreader_trap_default","show","iframeString","thumbnailContainer","overlayZindex","generateLightboxContainer","lightbox","generateLightboxHTML","lightboxConstraint","generateConstraintImage","focusableElement","remove","fixedElement","overlay","overlayWrapper","popbox","cleanup","makeIframeVisible","contentFixed","closeContainer","generateCloseButton","closeButton","playerIframeDOMString","backerElement","containerElement","containingDiv","iframeParent","ACTIVE_ELEMENT","LIGHTBOX_EVENTS","setupAnimations","showLightbox","removeLightbox","lightboxDOM","updateLightboxIframeTitle","iframeLoaded","onIframeLoad","listenForKeyPress","iframeListenForKeyPress","onEscInIframe","lightbox_animator_handleResize","constraintImage","windowRatio","imageRatio","orientation","postMessageData","__assign","getPlayerMetadata","metadataEndpoint","init","embedScriptElement","queryParams","lightboxThumbnailUrl","lightboxString","composeLightboxString","playButton","applyLightboxPlayButton","pbData","injectLightboxElements","iframeSizing","playerIframe","thumbnailSizing","lightbox_player","SKIP_BACKLINK_HOSTNAMES_RE","injectBacklink","force","linkEl","linkTextEl","imgEl","backlink","integrationsControler","integrations","seoController","jsonLD","createContainer","styles","views_container","data_params_DataParams","DataParams","placeHolderImage","vyac","vyplayer","queryParamsString","data_params","preloadFrames","embeds","embeds_1","preloadHref","addPrefetchLink","href","preloadLink","vidyard_player_assign","vidyard_player_Player","Player","callbackStore","eventCallbacks","eventCallbacks_1","_loop_1","this_1","evt","position","newVolume","speed","chapterIndex","audioTrackId","label","language","consent","attributes","ctaId","title","milliseconds","start","duration","videoIndex","eventId","fullscreenPromise","vidyard_player","sweepDocument","embedLocations","renderPlayer","placeholderImg","api","newPlayer","jsonpData","unsubscribeProgressEvents","destroyPlayer","userConsent","hasConsentOnReady","playersReady","gdpr","players_2","c","getPlayersByUUID","get_players_by_uuid","removeDuplicates","targetArray","templates","listeners","addTemplate","thresholds","copyTemplate","setup_event_listeners_addListener","getListener","removeTemplateAndListeners","updateTimeWatched","time","listener","deltaTime","percentWatched","setupEventListeners","onTimeUpdate","progressEvents","singlePlayerScope","removeEventListeners","getPlayers","dedupedThresholds","removeCb","progressEventsWrapper","subscriptions","renderPlayerFromPlaceholder","render_player_renderPlayer","placeholder","vidyardV4Global","vidyard_v4_global","vidyardGlobal","vidyard_global","css_style","error_stack_parser","createErrorReport","location","navigator","timeStamp","vyGlobal","vyError","errorHandler","filename","location_1","navigator_1","logErrors","_debug","index_module_api","index_module_players","index_module","_isNumber","n","_capitalize","str","_getter","booleanProps","numericProps","stringProps","arrayProps","props","v","lineNumber","columnNumber","css","baseUrl","currentDir","fixedCss","fullMatch","origUrl","unquotedOrigUrl","o","$1","newUrl","stylesInDom","memoize","memo","isOldIE","getTarget","getElement","styleTarget","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","list","listToStyles","addStylesToDom","newList","mayRemove","domStyle","newStyles","addStyle","id","media","sourceMap","part","insertStyleElement","lastStyleElementInsertedAtTop","nextSibling","removeStyleElement","idx","createStyleElement","addAttrs","createLinkElement","link","attrs","update","styleIndex","applyToSingletonTag","updateLink","applyToTag","newObj","replaceText","textStore","replacement","cssNode","childNodes","autoFixUrls","blob","oldSrc","useSourceMap","content","cssWithMappingToString","mediaQuery","alreadyImportedModules","cssMapping","sourceMapping","toComment","sourceURLs","base64","transform","insertInto","filterAncestor","filterSibling","flattenArrays","getPreviousSiblings","previousSibling","getNextSiblings","getSiblings","allSiblings","getAllAncestors","nextAncestor","getAncestors","getSiblingsOfAncestors","global","NativeCustomEvent","useNative","params","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","Item","dir","undefined","nextHandle","tasksByHandle","currentlyRunningATask","doc","registerImmediate","task","clearImmediate","run","runIfPresent","installNextTickImplementation","canUsePostMessage","postMessageIsAsynchronous","oldOnMessage","installPostMessageImplementation","messagePrefix","onGlobalMessage","installMessageChannelImplementation","channel","installReadyStateChangeImplementation","html","installSetTimeoutImplementation","attachTo","scope","apply","Timeout","clearFn","msecs"],"mappings":"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","file":"scripts/155.1ed449983b033a83d4e8.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vidyardEmbed\"] = factory();\n\telse\n\t\troot[\"vidyardEmbed\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n // requires CustomEvent polyfill for IE\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar CustomEvent = __webpack_require__(14);\n\nvar util = __webpack_require__(13); // the main landmark\n\n\nvar mainEl; // the element that will be trapped\n\nvar trappedEl; // collection of elements that get 'dirtied' with aria-hidden attr or hidden prop\n\nvar dirtyObjects; // filter function for svg elements\n\nvar filterSvg = function filterSvg(item) {\n return item.tagName.toLowerCase() !== 'svg';\n};\n\nfunction showElementPrep(el, useHiddenProperty) {\n var preparedElement;\n\n if (useHiddenProperty === false) {\n preparedElement = prepareElement(el, 'aria-hidden', 'false');\n } else {\n preparedElement = prepareElement(el, 'hidden', false);\n }\n\n return preparedElement;\n}\n\nfunction hideElementPrep(el, useHiddenProperty) {\n var preparedElement;\n\n if (useHiddenProperty === false) {\n preparedElement = prepareElement(el, 'aria-hidden', 'true');\n } else {\n preparedElement = prepareElement(el, 'hidden', true);\n }\n\n return preparedElement;\n}\n\nfunction prepareElement(el, attributeName, dirtyValue) {\n var isProperty = typeof dirtyValue === 'boolean';\n return {\n el: el,\n attributeName: attributeName,\n cleanValue: isProperty ? el[attributeName] : el.getAttribute(attributeName),\n dirtyValue: dirtyValue,\n isProperty: isProperty\n };\n}\n\nfunction dirtyElement(preparedObj) {\n if (preparedObj.isProperty === true) {\n preparedObj.el[preparedObj.attributeName] = preparedObj.dirtyValue;\n } else {\n preparedObj.el.setAttribute(preparedObj.attributeName, preparedObj.dirtyValue);\n }\n}\n\nfunction cleanElement(preparedObj) {\n if (preparedObj.cleanValue) {\n if (preparedObj.isProperty === true) {\n preparedObj.el[preparedObj.attributeName] = preparedObj.cleanValue;\n } else {\n preparedObj.el.setAttribute(preparedObj.attributeName, preparedObj.cleanValue);\n }\n } else {\n preparedObj.el.removeAttribute(preparedObj.attributeName);\n }\n}\n\nfunction untrap() {\n if (trappedEl) {\n // restore 'dirtied' elements to their original state\n dirtyObjects.forEach(function (item) {\n return cleanElement(item);\n });\n dirtyObjects = []; // 're-enable' the main landmark\n\n if (mainEl) {\n mainEl.setAttribute('role', 'main');\n } // let observers know the screenreader is now untrapped\n\n\n trappedEl.dispatchEvent(new CustomEvent('screenreaderUntrap', {\n bubbles: true\n }));\n trappedEl = null;\n }\n}\n\nvar defaultOptions = {\n useHiddenProperty: false\n};\n\nfunction trap(el, selectedOptions) {\n // ensure current trap is deactivated\n untrap();\n\n var options = _extends({}, defaultOptions, selectedOptions); // update the trapped el reference\n\n\n trappedEl = el; // update the main landmark reference\n\n mainEl = document.querySelector('main, [role=\"main\"]'); // we must remove the main landmark to avoid issues on voiceover iOS\n\n if (mainEl) {\n mainEl.setAttribute('role', 'presentation');\n } // cache all ancestors, siblings & siblings of ancestors for trappedEl\n\n\n var ancestors = util.getAncestors(trappedEl);\n var siblings = util.getSiblings(trappedEl);\n var siblingsOfAncestors = util.getSiblingsOfAncestors(trappedEl); // if using hidden property, filter out SVG elements as they do not support this property\n\n if (options.useHiddenProperty === true) {\n siblings = siblings.filter(filterSvg);\n siblingsOfAncestors = siblingsOfAncestors.filter(filterSvg);\n } // prepare elements\n\n\n dirtyObjects = [showElementPrep(trappedEl, options.useHiddenProperty)].concat(ancestors.map(function (item) {\n return showElementPrep(item, options.useHiddenProperty);\n })).concat(siblings.map(function (item) {\n return hideElementPrep(item, options.useHiddenProperty);\n })).concat(siblingsOfAncestors.map(function (item) {\n return hideElementPrep(item, options.useHiddenProperty);\n })); // update DOM\n\n dirtyObjects.forEach(function (item) {\n return dirtyElement(item);\n }); // let observers know the screenreader is now trapped\n\n trappedEl.dispatchEvent(new CustomEvent('screenreaderTrap', {\n bubbles: true\n }));\n}\n\nmodule.exports = {\n trap: trap,\n untrap: untrap\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(7)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n var tokens = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Shylog = (function () {\n function Shylog(_a) {\n var _b = _a === void 0 ? { emit: false, logger: console.log } : _a, emit = _b.emit, logger = _b.logger;\n this.emit = emit;\n this.externalLogger = logger;\n this.buffer = [];\n this.customLevel = {};\n this.error = this.setLevel(1);\n this.warn = this.setLevel(2);\n this.info = this.setLevel(3);\n this.log = this.setLevel(4);\n }\n Shylog.prototype.getLogs = function (level) {\n if (typeof level === 'function') {\n return this.buffer.filter(function (log) { return log.level === level.level; });\n }\n else {\n return level ? this.buffer.filter(function (log) { return log.level === level; }) : this.buffer;\n }\n };\n Shylog.prototype.setLevel = function (level) {\n var _this = this;\n var logFn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var message = { level: level, time: Date.now(), msg: args.join(' ') };\n _this.buffer.push(message);\n _this.emit && _this.externalLogger(message);\n };\n logFn.level = level;\n this.customLevel[level] = logFn;\n return logFn;\n };\n return Shylog;\n}());\nexports.default = Shylog;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = (function(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n return constructor.resolve(callback()).then(function() {\n return constructor.reject(reason);\n });\n }\n );\n});\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {/* harmony import */ var _finally__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);\n\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = _finally__WEBPACK_IMPORTED_MODULE_0__[/* default */ \"a\"];\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(values) {\n return new Promise(function(resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n (typeof setImmediate === 'function' &&\n function(fn) {\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Promise);\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(18).setImmediate))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// EXTERNAL MODULE: /vidyard/vidyard-player-sdk/node_modules/promise-polyfill/src/index.js\nvar src = __webpack_require__(5);\n\n// CONCATENATED MODULE: ./src/utils/promise.ts\n\nvar isFn = function (fn) { return typeof fn === 'function'; };\nvar checkNativePromise = function (_a) {\n var Promise = (_a === void 0 ? window : _a).Promise;\n return Promise &&\n Promise.all &&\n Promise.race &&\n Promise.resolve &&\n Promise.reject &&\n isFn(Promise) &&\n isFn(Promise.all) &&\n isFn(Promise.race) &&\n isFn(Promise.resolve) &&\n isFn(Promise.reject);\n};\nvar promiseFn = checkNativePromise() ? window.Promise : src[\"a\" /* default */];\n/* harmony default export */ var promise = (promiseFn);\n\n// CONCATENATED MODULE: ./src/utils/embed-helpers.ts\n/*\n* File contains the minimum amount of helper functions to allow embed to work in IE9+\n* Has no access to jQuery / Underscore etc\n*/\n\nvar addListener = function (eventName, oldIeEventName, handler, element) {\n if (element === void 0) { element = window; }\n if (window.addEventListener) {\n element.addEventListener(eventName, handler, false);\n }\n else if (window.attachEvent) {\n element.attachEvent(oldIeEventName, handler);\n }\n return { eventName: eventName, handler: handler, element: element };\n};\nvar removeListener = function (eventName, handler, element) {\n if (element === void 0) { element = window; }\n if (element.removeEventListener) {\n element.removeEventListener(eventName, handler, false);\n }\n else if (element.detachEvent) {\n element.detachEvent('on' + eventName, handler);\n }\n else {\n element['on' + eventName] = null;\n }\n};\nvar createEvent = function (eventName, payload) {\n if (typeof window.CustomEvent === 'function') {\n return new window.CustomEvent(eventName, { detail: payload });\n }\n else if (typeof document.createEvent === 'function') {\n var legacyCustomEvent = document.createEvent('CustomEvent');\n legacyCustomEvent.initCustomEvent(eventName, false, false, payload);\n return legacyCustomEvent;\n }\n};\nvar isObjectEmpty = function (obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n return false;\n }\n }\n return JSON.stringify(obj) === JSON.stringify({});\n};\nvar indexOfArray = function (item, arr) {\n if (arr.indexOf) {\n return arr.indexOf(item);\n }\n for (var i = 0; i < arr.length; i++) {\n if (arr[i] === item) {\n return i;\n }\n }\n return -1;\n};\nvar shallowMerge = function (a, b) {\n for (var key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n return a;\n};\n// TODO: change to getElementsByClass\nvar getElementByClass = function (className, tagName, topLevelNode) {\n if (tagName === void 0) { tagName = '*'; }\n if (topLevelNode === void 0) { topLevelNode = document; }\n if (typeof document.getElementsByClassName === 'function') {\n return topLevelNode.getElementsByClassName(className);\n }\n var results = [];\n var re = new RegExp('(^| )' + className + '( |$)');\n var nodes = toArray(topLevelNode.getElementsByTagName(tagName));\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (re.test(node.className)) {\n results.push(node);\n }\n }\n return results;\n};\nvar calcAspectRatio = function (imageEl, additionalWidth) {\n if (additionalWidth === void 0) { additionalWidth = 0; }\n var size = getNaturalDimensions(imageEl);\n // fallback to landscape aspect ratio if the image does not have proper size\n return size.height !== 0 || size.width !== 0\n ? ((size.height / (size.width + additionalWidth)) * 100).toFixed(2)\n : ((9 / 16) * 100).toFixed(2); // landscape 16:9 aspect ratio, equals to 56.25%\n};\nvar embed_helpers_log = function (message, logType) {\n if (logType === void 0) { logType = 'log'; }\n if (window.console && typeof window.console[logType] === 'function') {\n console[logType](message);\n }\n};\nvar find = function (array, test) {\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\n var item = array_1[_i];\n var res = test(item);\n if (res === true) {\n return item;\n }\n }\n};\nvar includes = function (array, itemToCheck) { return find(array, function (item) { return item === itemToCheck; }); };\nvar once = function (callback) {\n var expired = false;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (expired) {\n return;\n }\n if (callback) {\n callback.apply(void 0, args);\n }\n expired = true;\n };\n};\nvar spaceOrEnterKeyPressEvent = function (callback) { return function (e) {\n // spacebar or enter\n if (e.keyCode === 32 || e.keyCode === 13) {\n callback(e);\n }\n}; };\nvar escKeyPressEvent = function (callback) { return function (e) {\n // esc\n if (e.keyCode === 27) {\n callback(e);\n }\n}; };\nvar getCurrentScript = function () {\n // need to check for currentScript because it does not exist in IE\n return document.currentScript\n ? document.currentScript\n : find(toArray(document.getElementsByTagName('script')), function (script) {\n return script.src &&\n (script.src.match('vidyard-embed-code.js') !== null ||\n script.src.match(/v4(\\.umd)?\\.js/) !== null);\n });\n};\nvar getNaturalDimensions = function (ele) {\n if (ele.naturalWidth) {\n return { width: ele.naturalWidth, height: ele.naturalHeight };\n }\n var img = new Image();\n img.src = ele.src;\n return { width: img.width, height: img.height };\n};\nvar isArray = function (arg) { return Object.prototype.toString.call(arg) === '[object Array]'; };\nvar toArray = function (htmlCollection) { return Array.prototype.slice.call(htmlCollection); };\nvar checkJSONParse = function (jsonString) {\n return new promise(function (res, rej) {\n try {\n res(JSON.parse(jsonString));\n }\n catch (err) {\n rej(err);\n }\n });\n};\nvar xhrRequest = function (_a) {\n var endpoint = _a.endpoint, _b = _a.payload, payload = _b === void 0 ? {} : _b, _c = _a.method, method = _c === void 0 ? 'GET' : _c;\n return new promise(function (res, rej) {\n // IE 8/9 needs to send CORS requests over XDomainRequest\n var isXDomain = new XMLHttpRequest().withCredentials === undefined && XDomainRequest;\n var xhr = isXDomain ? new XDomainRequest() : new XMLHttpRequest();\n xhr.open(method, endpoint);\n if (xhr instanceof XMLHttpRequest) {\n xhr.setRequestHeader('Content-Type', 'text/plain');\n }\n xhr.onerror = function (e) { return rej(e); };\n xhr.onload = function () {\n if (xhr instanceof XMLHttpRequest) {\n if (Math.floor(xhr.status / 100) === 2) {\n // 200 range\n res(xhr.responseText);\n }\n else {\n rej();\n }\n }\n else {\n // XDomainRequest does not have status\n res(xhr.responseText);\n }\n };\n xhr.send(JSON.stringify(payload));\n });\n};\nvar getFullscreenAPI = function () {\n var apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n ['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenchange'],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitfullscreenchange',\n ],\n // Mozilla\n ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozfullscreenchange'],\n // Microsoft\n ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'MSFullscreenChange'],\n ];\n var browserAPI = [];\n var fullscreenAPI = {};\n for (var _i = 0, apiMap_1 = apiMap; _i < apiMap_1.length; _i++) {\n var browserMethods = apiMap_1[_i];\n // check for exitFullscreen function\n if (browserMethods[1] in document) {\n browserAPI = browserMethods;\n break;\n }\n }\n // map the browser API names to the spec API names\n if (browserAPI && browserAPI.length) {\n for (var i = 0; i < browserAPI.length; i++) {\n fullscreenAPI[apiMap[0][i]] = browserAPI[i];\n }\n return fullscreenAPI;\n }\n else {\n return null;\n }\n};\nvar dataSet = function (el) {\n var collection = {};\n var parseAttributeName = function (attr) { return attr.name.replace('data-', ''); };\n // can't do for-of here as el.attributes is not an array\n // tslint:disable-next-line\n for (var i = 0; i < el.attributes.length; i += 1) {\n var attr = el.attributes[i];\n if (attr.name.indexOf('data-') < 0) {\n continue;\n }\n collection[parseAttributeName(attr)] = attr.value;\n }\n return collection;\n};\nvar getQueryParam = function (name) {\n name = name.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n var regexString = '[\\\\?&]' + name + '=([^&#]*)';\n var regex = new RegExp(regexString);\n var results = regex.exec(window.location.search);\n if (results !== null) {\n return results[1];\n }\n};\nvar parseNestedData = function (encodedData, type) {\n try {\n var nestedData_1 = JSON.parse(decodeURIComponent(encodedData));\n return Object.keys(nestedData_1).reduce(function (acc, key) {\n acc[type + \"[\" + key + \"]\"] = nestedData_1[key];\n return acc;\n }, {});\n }\n catch (e) {\n embed_helpers_log(\"Invalid \" + type + \" payload\", 'warn');\n return {};\n }\n};\nvar parseVyData = function (data) {\n return Object.keys(data).reduce(function (acc, key) {\n if (key === 'vydata') {\n var parsedData_1 = parseNestedData(data[key], 'vydata');\n Object.keys(parsedData_1).forEach(function (parsedKey) {\n acc[parsedKey] = parsedData_1[parsedKey];\n });\n }\n else {\n acc[key] = data[key];\n }\n return acc;\n }, {});\n};\n// https://stackoverflow.com/questions/6787383/how-to-add-remove-a-class-in-javascript\nvar toggleClass = function (element, classToToggle, forceBoolean) {\n var hasClass = function (ele, targetClass) {\n return ele.className.indexOf(targetClass) !== -1;\n };\n var addClass = function (ele, targetClass) {\n if (!hasClass(ele, targetClass)) {\n ele.className = ele.className.trim() + \" \" + targetClass;\n }\n };\n var removeClass = function (ele, targetClass) {\n if (hasClass(ele, targetClass)) {\n ele.className = ele.className.replace(targetClass, ' ').trim();\n }\n };\n if (forceBoolean === true) {\n addClass(element, classToToggle);\n }\n else if (forceBoolean === false) {\n removeClass(element, classToToggle);\n }\n else if (hasClass(element, classToToggle)) {\n removeClass(element, classToToggle);\n }\n else {\n addClass(element, classToToggle);\n }\n};\n\n// CONCATENATED MODULE: ./src/utils/constants.ts\nvar VERSION = \"4.3.10\";\nvar ERROR_ORIGIN_RE = /vidyard\\.com\\/embed\\/v4/;\nvar INTEGRATIONS_URL = '/integrations.js';\nvar OVERLAY_FADE_TIME = 0.5;\nvar PLAYLIST_WIDTH = 319;\nvar SEO_DETAILS_URL = '/details.js';\nvar STYLE_PATH = '/style.js';\n\n// CONCATENATED MODULE: ./src/utils/config.ts\n\nvar dynamicPlaybackURL = (function playbackURL() {\n var playbackURLOverride;\n return {\n setPlaybackURL: function (url) {\n playbackURLOverride = url;\n return playbackURLOverride;\n },\n getPlaybackURL: function () {\n // override the `PLAYBACK_URL` if data-playbackurl exists on the script tag\n var currentScript = getCurrentScript();\n var stagingPlaybackUrl = currentScript\n ? currentScript.getAttribute('data-playbackurl')\n : null;\n return (playbackURLOverride ||\n window.VIDYARD_PLAYBACK_URL ||\n stagingPlaybackUrl ||\n 'play.vidyard.com');\n },\n };\n})();\n\nvar setPlaybackURL = dynamicPlaybackURL.setPlaybackURL;\nvar getPlaybackURL = dynamicPlaybackURL.getPlaybackURL;\nvar getBaseURL = function () { return \"https://\" + getPlaybackURL() + \"/v4/\"; };\nvar getErrorURL = function () { return \"https://\" + getPlaybackURL() + \"/v4/error\"; };\n\n// CONCATENATED MODULE: ./src/utils/frame-messenger.ts\n/*\n* Provides an ie7 compatable way of sending messages to iframes\n* If in a modern browser, will just use postmessage\n*/\n\n// --- Public Functions ---\nvar send = function (message, targetOrigin, target) {\n if (!targetOrigin || !target) {\n return;\n }\n if (window.postMessage && target.contentWindow) {\n // The browser supports window.postMessage, so call it with a targetOrigin\n // set appropriately, based on the target_url parameter.\n target.contentWindow.postMessage(JSON.stringify(message), targetOrigin);\n }\n else {\n // If the window does not support postmessaging, only 'associateVisitor' events are supported\n // Internally the player will have specific handling for these cases\n if (message.event !== 'associateVisitor') {\n return;\n }\n var stringMessage = message.event + \",\" + message.data.type + \",\" + message.data.value + \"|\";\n var targetSrc = target.src;\n if (targetSrc.indexOf('#') === -1) {\n targetSrc += '#';\n }\n // The browser does not support window.postMessage, so set the location\n // of the target to target_url#message. A bit ugly, but it works!\n targetSrc += stringMessage;\n target.src = targetSrc;\n }\n};\nvar receive = function (callback) { return function (postMessage) {\n var data = parse(postMessage);\n if (!data) {\n return;\n }\n callback(data);\n}; };\n// --- Private Functions ---\nfunction parse(event) {\n if (typeof event.data !== 'string' || event.data === '') {\n return;\n }\n try {\n var data = JSON.parse(event.data);\n var iframe = getElementByClass('vidyard-iframe-' + data.uuid, 'iframe')[0];\n // event validation\n var contentWindow = iframe ? iframe.contentWindow : null;\n var sameSource = contentWindow === event.source;\n var validEvent = typeof data.event === 'string';\n if (!sameSource || !validEvent) {\n return;\n }\n return data;\n }\n catch (e) {\n embed_helpers_log('Invalid postMessage received', 'warn');\n return;\n }\n}\n\n// CONCATENATED MODULE: ./src/models/integrations-watcher.ts\n\n\n\n// All possible cookie names we would look for, the message names are different from the cookie keys\nvar cookieNames = [\n 'pardot',\n 'hubspotutk',\n '_mkto_trk',\n 'vy_dreamforce',\n 'eloqua',\n];\nvar messageNames = [\n 'pardot',\n 'hubspot',\n 'marketo',\n 'dreamforce',\n 'eloqua',\n];\nfunction IntegrationsWatcher() {\n var _this = this;\n var cookieCheckInterval = null;\n var loadedEloquaScript = false;\n var organizations = {};\n // --- Public Functions ---\n this.updatePlayer = function (player) {\n // Don't continue if we don't have an iframe and integration information\n if (!player._tmpOrg || !player.iframe) {\n return;\n }\n var orgId = player._tmpOrg.orgId;\n if (!organizations[orgId]) {\n organizations[orgId] = {\n foundIntegrations: {},\n id: orgId,\n // All integrations supported by this organization\n integrations: player._tmpOrg,\n // Store of cookie data found keyed by integration name\n // Each integration has an externalIdentifier set with the tracking cookie/uuid if found\n // as well as an object with which players have been sent the associateVisitor event\n // e.g. {integration: {externalIdentifier: 'cookie_value', sentPlayers: ['player1.uuid']}}\n // In DOM players associated with this organization\n players: [],\n };\n }\n player.org = organizations[orgId];\n // Check if this player has already been added to the organizations list\n // if so, do nothing\n for (var _i = 0, _a = organizations[orgId].players; _i < _a.length; _i++) {\n var currentPlayer = _a[_i];\n if (currentPlayer.iframe === player.iframe) {\n return;\n }\n }\n organizations[orgId].players.push(player);\n var _b = player.org.integrations, eloqua = _b.eloqua, eloquaFirstPartyDomain = _b.eloquaFirstPartyDomain;\n if (eloqua) { // Only load the eloqua script if the player needs it\n // Only load the tracking script if the user has given GDPR consent\n if (player.status !== null && player.status.consent) {\n // Note: This function only does something the first time it is called\n loadEloquaTrackingScript(eloqua, eloquaFirstPartyDomain);\n }\n else {\n player.on('status', function handleStatus() {\n if (player.status.consent) {\n loadEloquaTrackingScript(eloqua, eloquaFirstPartyDomain);\n player.off('status', handleStatus);\n }\n });\n }\n }\n // Loop over all integrations setup with this org & communicate them to the player\n // making sure to only send the event once per player & integration\n checkForIntegrations();\n };\n // Use function chaining to ensure a Player is only messaged about an integration once\n // It is expected that `updatePlayer` is called on a player before this\n this.safelyCommunicateIntegration = function (player, integration, externalIdentifier) {\n if (player.org !== undefined &&\n externalIdentifier !== undefined &&\n externalIdentifier !== null &&\n !haveSentIntegrationToPlayer(player, integration) &&\n communicateIntegration(player, integration, externalIdentifier)) {\n player.org = setIntegrationSent(player.org, integration, player.uuid);\n }\n };\n this.addKnownVisitor = function (integrationName, visitorData, org) {\n if (!org) {\n return;\n }\n // Go through and message all active players\n for (var _i = 0, _a = org.players; _i < _a.length; _i++) {\n var player = _a[_i];\n communicateKnownVisitor(player, integrationName, visitorData);\n }\n };\n // @TODO: switch the return type form any to unknown once we upgrade TS\n // Loop through all available cookies and return the value for cookieName if found\n this.getCookie = function (integration, organization) {\n var cookies = document.cookie.split(';');\n if (integration === 'eloqua' && typeof window.GetElqCustomerGUID === 'function') {\n // GetElqCustomerGUID is put on the DOM by Eloqua tracking scripts\n return window.GetElqCustomerGUID();\n }\n var cookieName = alterDynamicCookieName(cookieNames[messageNames.indexOf(integration)], organization);\n // Loop through all cookies looking for supplied cookie name\n for (var _i = 0, cookies_1 = cookies; _i < cookies_1.length; _i++) {\n var currentCookie = cookies_1[_i];\n var equalIndex = currentCookie.indexOf('=');\n var foundName = currentCookie.substr(0, equalIndex).replace(/^\\s+|\\s+$/g, '');\n var foundId = currentCookie.substr(equalIndex + 1);\n if (foundName === cookieName) {\n return decodeURIComponent(foundId);\n }\n }\n };\n // --- Private Functions ---\n // Return true if the integration cookie event has already been sent to this Player\n var haveSentIntegrationToPlayer = function (player, integration) {\n return (player.org &&\n player.org.foundIntegrations &&\n player.org.foundIntegrations[integration] &&\n player.org.foundIntegrations[integration].sentPlayers &&\n indexOfArray(player.uuid, player.org.foundIntegrations[integration].sentPlayers) !== -1);\n };\n // Initialize object to track integration cookies and\n // players which have been sent the cookie already\n var setupFoundIntegration = function (org, integration) {\n if (!org.foundIntegrations[integration]) {\n org.foundIntegrations[integration] = {\n externalIdentifier: null,\n sentPlayers: [],\n };\n }\n return org;\n };\n var setIntegrationSent = function (org, integration, playerUuid) {\n org = setupFoundIntegration(org, integration);\n org.foundIntegrations[integration].sentPlayers.push(playerUuid);\n return org;\n };\n var setIntegrationIdentifier = function (org, integration, externalIdentifier) {\n org = setupFoundIntegration(org, integration);\n org.foundIntegrations[integration].externalIdentifier = externalIdentifier;\n return org;\n };\n // Send event to Player with integration external identifier\n var communicateIntegration = function (player, integration, externalIdentifier) {\n if (!player.ready()) {\n return false;\n }\n // Player iframe already exists, message it about the integration\n var message = {\n data: { type: integration, value: externalIdentifier },\n event: 'associateVisitor',\n uuid: player.uuid,\n };\n embed_helpers_log('IntegrationsWatcher.communicateIntegration ' + message, 'debug');\n send(message, \"https://\" + getPlaybackURL(), player.iframe);\n return true;\n };\n // Go through and message all active players on DOM which haven't already been sent\n var messagePlayersFoundIntegration = function (players, integration, externalIdentifier) {\n if (players === undefined || externalIdentifier === undefined || externalIdentifier === null) {\n return;\n }\n for (var _i = 0, players_1 = players; _i < players_1.length; _i++) {\n var player = players_1[_i];\n _this.safelyCommunicateIntegration(player, integration, externalIdentifier);\n }\n };\n var sendKnownVisitor = function (player, leadType, leadData) {\n var message = {\n data: { type: leadType, value: leadData },\n event: 'identifyVisitor',\n uuid: player.uuid,\n };\n send(message, \"https://\" + getPlaybackURL(), player.iframe);\n };\n var communicateKnownVisitor = function (player, leadType, leadData) {\n if (!player.ready()) {\n // Setup callback if Player not ready yet\n player.on('ready', function () {\n sendKnownVisitor(player, leadType, leadData);\n });\n }\n else {\n // Player iframe already exists, message it about the lead\n sendKnownVisitor(player, leadType, leadData);\n }\n };\n // Find any integration trackers on the page and send to each player that hasn't received yet\n var checkForIntegrations = function () {\n // Go through all possible integration\n for (var _i = 0, messageNames_1 = messageNames; _i < messageNames_1.length; _i++) {\n var integration = messageNames_1[_i];\n // Loop through all orgs and see if they care about this integration\n for (var orgKey in organizations) {\n if (organizations.hasOwnProperty(orgKey)) {\n var currentOrganization = organizations[orgKey];\n // Do nothing if the org doesn't have this integration\n if (!currentOrganization.integrations[integration]) {\n continue;\n }\n // Check if integration tracker is present on the page\n var cookieValue = _this.getCookie(integration, currentOrganization);\n if (!cookieValue) {\n continue;\n }\n cookieValue = parseCookieValue(integration, cookieValue, currentOrganization);\n // parseCookieValue can return null if Marketo cookie doesn't match Munchkin ID\n if (!cookieValue) {\n continue;\n }\n currentOrganization = setIntegrationIdentifier(currentOrganization, integration, cookieValue);\n messagePlayersFoundIntegration(currentOrganization.players, integration, cookieValue);\n }\n }\n }\n };\n // Pardot uses a dynamic cookie name, set it up here\n var alterDynamicCookieName = function (cookieName, organization) {\n if (cookieName === 'pardot' && organization && organization.integrations.pardot) {\n return 'visitor_id' + organization.integrations.pardot;\n }\n return cookieName;\n };\n var parseCookieValue = function (msgName, cookieValue, org) {\n if (msgName === 'marketo') {\n // Make sure this cookie is actually for this players organization\n if (!org.integrations.marketo ||\n cookieValue.toLowerCase().indexOf(org.integrations.marketo.toLowerCase()) === -1) {\n return null;\n }\n cookieValue = encodeURIComponent(cookieValue);\n }\n return cookieValue;\n };\n var loadEloquaTrackingScript = function (siteId, firstPartyDomain) {\n if (loadedEloquaScript) {\n return;\n }\n loadedEloquaScript = true;\n var createEloquaScriptNode = function () {\n // Only set up Eloqua tracking script once (including v3 & hubs)\n if (document.getElementById('vidyard-eloqua-include')) {\n return;\n }\n window._elqQ = window._elqQ || [];\n window._elqQ.push(['elqSetSiteId', siteId]);\n if (firstPartyDomain) {\n window._elqQ.push(['elqUseFirstPartyCookie', firstPartyDomain]);\n }\n window._elqQ.push(['elqTrackPageView']);\n window._elqQ.push(['elqGetCustomerGUID']);\n var eloquaScript = document.createElement('script');\n eloquaScript.id = 'vidyard-eloqua-include';\n eloquaScript.type = 'text/javascript';\n eloquaScript.async = true;\n eloquaScript.src = 'https://img.en25.com/i/elqCfg.min.js';\n var firstScript = document.getElementsByTagName('script')[0];\n firstScript.parentNode.insertBefore(eloquaScript, firstScript);\n };\n if (document.readyState === 'complete') {\n createEloquaScriptNode();\n }\n else {\n addListener('DOMContentLoaded', 'onload', createEloquaScriptNode);\n }\n };\n cookieCheckInterval = setInterval(function () {\n // We check for new cookies every second in case the player is on a page with\n // tracking scripts that will be dynamically adding new cookies at some point\n checkForIntegrations();\n }, 1000);\n}\n\n// CONCATENATED MODULE: ./src/api/dispatch-ready.ts\n\n// Allows the client to listen for the Vidyard API to become available\n// Example:\n// window.VidyardV4\n// ? initApp(window.VidyardV4)\n// : (window.onVidyardAPI = (vyApi) => initApp(vyApi));\n//\n// Or with promises:\n// new Promise(res => window.VidyardV4\n// ? res(window.VidyardV4)\n// : (window['onVidyardAPI'] = (vyApi) => res(vyApi))\n// ).then((vyApi) => {\n// console.log('api is ready ', vyApi);\n// });\nvar readyCallback = function () {\n if (window.onVidyardAPI && typeof window.onVidyardAPI === 'function') {\n window.onVidyardAPI(window.VidyardV4);\n }\n};\n// We also dispatch a custom event on document indicating that the API is ready\n// Example:\n// window.VidyardV4\n// ? initApp(window.VidyardV4)\n// : document.addEventListener('onVidyardAPI', ({ detail: vyApi }) => initApp(vyApi));\nvar readyEvent = function () {\n document.dispatchEvent(createEvent('onVidyardAPI', window.VidyardV4));\n};\nvar dispatchReady = once(function () {\n readyCallback();\n readyEvent();\n});\n/* harmony default export */ var dispatch_ready = (dispatchReady);\n\n// EXTERNAL MODULE: /vidyard/vidyard-player-sdk/node_modules/shylog/build/index.js\nvar build = __webpack_require__(3);\nvar build_default = /*#__PURE__*/__webpack_require__.n(build);\n\n// CONCATENATED MODULE: ./src/api/debug.ts\n\n\n\nvar logger = new build_default.a({\n emit: !!window.location.search.match('vydebug=1'),\n logger: function (message) { return embed_helpers_log(message, 'info'); },\n});\nvar debug_currentScript = getCurrentScript();\nif (debug_currentScript) {\n logger.info(\"vidyardEmbed V\" + VERSION + \" loaded from \" + debug_currentScript.src);\n logger.info(\"data-playbackurl=\" + debug_currentScript.getAttribute('data-playbackurl'));\n}\nlogger.info(\"userAgent \" + window.navigator.userAgent);\nlogger.info(\"cookies \" + navigator.cookieEnabled);\nif (window.performance && window.performance.timing && window.performance.timing.navigationStart) {\n logger.info(\"Script load time \" + (Date.now() - window.performance.timing.navigationStart));\n}\nvar debug = { logger: logger, getPlaybackURL: getPlaybackURL, setPlaybackURL: setPlaybackURL, version: VERSION };\n/* harmony default export */ var api_debug = (debug);\n\n// CONCATENATED MODULE: ./src/api/add-ready-listener.ts\n\n// cb: callback when a player is ready, uuid: optional filter to only listen for individual player uuids\nfunction addReadyListener(cb, uuid) {\n var playerReadyListeners = window.VidyardV4.playerReadyListeners;\n // Store all callbacks for any yet to be created players\n playerReadyListeners[uuid] = playerReadyListeners[uuid] || [];\n playerReadyListeners[uuid].push(cb);\n // Add ready listeners to all currently available players\n for (var _i = 0, _a = window.VidyardV4.players; _i < _a.length; _i++) {\n var currentPlayer = _a[_i];\n // Is this the correct player OR are they setting up listeners for every player\n if (uuid !== undefined && currentPlayer.uuid !== uuid) {\n continue;\n }\n currentPlayer.on('ready', cb);\n }\n}\nfunction processReadyListeners(player) {\n var playerReadyListeners = window.VidyardV4.playerReadyListeners;\n var uuid = player.uuid;\n var log = logger.setLevel(player.uuid);\n // Ensure the cb set for this uuid is defined\n playerReadyListeners[uuid] = playerReadyListeners[uuid] || [];\n // Get the total set of callbacks for this uuid && all uuids\n var callbacks = playerReadyListeners[uuid].concat(playerReadyListeners[undefined]);\n // Loop through all cbs and add them to the players listeners\n Object.keys(callbacks).forEach(function (k) {\n var callback = callbacks[k];\n player.on('ready', callback);\n log(\"attaching ready callbacks\");\n });\n}\n\n// CONCATENATED MODULE: ./src/models/markup-injector.ts\n/*\n* Injection of the base html / CSS for the player iframe\n* Does not handle showing/hiding lightboxes, see LightboxHelper for that madness\n*/\n\nvar allowFeaturePolicy = function () {\n var features = [\n 'autoplay',\n 'fullscreen',\n 'picture-in-picture',\n 'camera',\n 'microphone',\n 'display-capture',\n ];\n return features.join('; ');\n};\nvar createIframe = function (dataParams, sizing) {\n // We only want to limit the max-height and max-width for inline embeds\n // Can't apply this directly to the iframe element because it affects fullscreen in IE11\n var maxSizeDiv = function (children) { return (dataParams.type === 'inline' ? ('
' +\n children +\n '
') : children); };\n return ('
' +\n maxSizeDiv('') +\n '
');\n};\n// @TODO: better data type\nvar createJsonLD = function (data) {\n var playerDetailsScriptTag = document.createElement('script');\n playerDetailsScriptTag.type = 'application/ld+json';\n playerDetailsScriptTag.text = JSON.stringify(data);\n return playerDetailsScriptTag;\n};\n\n// CONCATENATED MODULE: ./src/utils/jsonp.ts\n/*\n* Provides functions which perform JSONP requests to the server.\n* All URLs etc are stored within this file.\n*/\n\n\n\nvar getStyle = function (uuid) {\n return new promise(function (res, rej) {\n return request({\n error: rej,\n success: res,\n url: \"\" + getBaseURL() + uuid + STYLE_PATH,\n uuid: \"style_\" + uuid,\n });\n });\n};\nvar getIntegrations = function (uuid) {\n return new promise(function (res, rej) {\n return request({\n error: rej,\n success: res,\n url: \"\" + getBaseURL() + uuid + INTEGRATIONS_URL,\n uuid: \"integrations_\" + uuid,\n });\n });\n};\nvar getSEO = function (uuid) {\n return new promise(function (res, rej) {\n return request({\n error: rej,\n success: res,\n url: \"\" + getBaseURL() + uuid + SEO_DETAILS_URL,\n uuid: \"details_\" + uuid,\n });\n });\n};\nvar getMarketoLead = function (uuid, marketoCookie) {\n return new promise(function (res, rej) {\n var cookie = encodeURIComponent(marketoCookie);\n var contactUrl = \"\" + getBaseURL() + uuid + \"/contact/\" + cookie + \"/marketoContact.js\";\n request({\n error: rej,\n success: res,\n url: contactUrl,\n uuid: \"marketoContact_\" + uuid,\n });\n });\n};\nvar createJSONPTag = function (_a) {\n var error = _a.error, url = _a.url, requestUuid = _a.requestUuid;\n var script = document.createElement('script');\n script.type = 'application/javascript';\n script.onerror = error;\n script.src = url + \"?callback=window.VidyardV4.jsonp.\" + requestUuid + \".done\";\n // Anticipating a potential error when getPlaybackURL() is called when the JSONP script is current:\n // Setting data-playbackurl here makes it safe to use getPlaybackURL during all stages of load.\n script.setAttribute('data-playbackurl', getPlaybackURL());\n document.body.appendChild(script);\n return script;\n};\n// track all jsonp requests\nvar jsonpRequests = {};\nvar request = function (_a) {\n var url = _a.url, uuid = _a.uuid, success = _a.success, error = _a.error;\n // Function names can't include \"-\" because it's interpreted as a subtract operator\n // Strip them out here and in the player backend to prevent errors\n var requestUuid = uuid.replace(/-/g, '');\n var script = createJSONPTag({ error: error, url: url, requestUuid: requestUuid });\n // each response callback will only be called once\n var onRes = once(function (data) {\n success(data);\n script.parentNode.removeChild(script);\n });\n // store all jsonp requests in a closure\n jsonpRequests[requestUuid] = jsonpRequests[requestUuid] || [];\n jsonpRequests[requestUuid].push(onRes);\n window.VidyardV4.jsonp[requestUuid] = {\n done: function (data) {\n // call data on all response callbacks that share the same request_uuid\n jsonpRequests[requestUuid].forEach(function (cb) { return cb(data); });\n },\n };\n};\n\n// CONCATENATED MODULE: ./src/utils/messages.ts\n/* harmony default export */ var messages = ({\n errors: {\n placeholder: 'Cannot render the player, check the placeholder Image',\n }\n});\n\n// CONCATENATED MODULE: ./src/models/placeholder.ts\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n t[p[i]] = s[p[i]];\n return t;\n};\n\n\n\n\n\nvar loadPlaceholder = function (img) {\n if (!img) {\n return promise.reject(new Error(messages.errors.placeholder));\n }\n var _a = getNaturalDimensions(img), width = _a.width, height = _a.height;\n var uuid = img.getAttribute('data-uuid');\n // reject images without source or uuid\n if (img.src === '' || !uuid) {\n return promise.reject(new Error(messages.errors.placeholder));\n }\n // reject images that are loaded and have no size\n if (img.complete && (width === 0 || height === 0)) {\n return promise.reject(new Error(messages.errors.placeholder));\n }\n if (img.complete) {\n // image is already loaded\n return promise.resolve(img);\n }\n else {\n // load the image\n return new promise(function (res, rej) {\n img.onload = function () { return res(img); };\n img.onerror = function () { return rej(img); };\n });\n }\n};\nvar createPlaceholder = function (_a) {\n if (_a === void 0) { _a = {}; }\n var uuid = _a.uuid, container = _a.container, _b = _a.type, type = _b === void 0 ? 'inline' : _b, _c = _a.aspect, aspect = _c === void 0 ? 'landscape' : _c, other = __rest(_a, [\"uuid\", \"container\", \"type\", \"aspect\"]);\n if (!uuid || !container) {\n return;\n }\n logger.setLevel('placeholder')('creating placeholder image');\n var image = document.createElement('img');\n var width = other.width ? other.width + \"px\" : '100%';\n var height = other.height ? other.height + \"px\" : '100%';\n var style = \"\\n display: block;\\n margin: 0 auto;\\n max-height: \" + height + \";\\n max-width: \" + width + \";\\n opacity: 0;\\n \";\n image.src = \"https://\" + getPlaybackURL() + \"/\" + uuid + \".jpg\";\n image.className = 'vidyard-player-embed';\n image.setAttribute('style', style);\n image.setAttribute('data-uuid', uuid);\n image.setAttribute('data-type', type);\n // assign all of the other keys as data params on the image\n Object.keys(other).forEach(function (k) { return image.setAttribute(\"data-\" + k, other[k]); });\n return container.appendChild(image);\n};\nvar loadServerThumbnail = function (uuid) {\n var image = document.createElement('img');\n image.setAttribute('data-uuid', uuid);\n image.src = \"//\" + getPlaybackURL() + \"/\" + uuid + \".jpg\";\n return loadPlaceholder(image);\n};\n\n// CONCATENATED MODULE: ./src/controllers/inline-player.ts\n\n\n\n\n\n\n\nvar injectInlineElements = function (_a) {\n var dataParams = _a.dataParams, player = _a.player;\n var log = logger.setLevel(dataParams.uuid);\n log(\"injecting inline embed\");\n var updateAspectRatio = function () {\n // Get thumbnail from server and calculate aspect ratio if the placeholder is different (edge case)\n if (player.placeholder.src !== \"//\" + getPlaybackURL() + \"/\" + player.uuid + \".jpg\") {\n return loadServerThumbnail(player.uuid)\n .then(calcAspectRatio)\n .catch(function () { return false; });\n }\n return promise.resolve(false);\n };\n var sizing = {\n maxHeight: dataParams.height ? parseInt(dataParams.height, 10).toString() : null,\n maxWidth: dataParams.width ? parseInt(dataParams.width, 10).toString() : null,\n ratio: calcAspectRatio(player.placeholder),\n };\n // Create and attach the players iframe & containing
\n player.container.innerHTML = createIframe(dataParams, sizing);\n var iframe = player.container.getElementsByTagName('iframe')[0];\n player.iframe = iframe;\n var iframeLoadedPromise = new promise(function (res) {\n addListener('load', 'onload', res, iframe);\n });\n var playerReadyPromise = new promise(function (res) {\n player.on('ready', res);\n });\n player.on('sidePlaylistOpen', function () {\n handleResize();\n });\n // The iframe will finish first, usually.\n promise.race([iframeLoadedPromise, playerReadyPromise]).then(function () {\n log(\"player or iFrame is ready\");\n // If the placeholder image is different than the server thumbnail, update the aspect ratio\n // to be consistent with the server thumbnail (edge case)\n updateAspectRatio().then(function (newAspectRatio) {\n if (newAspectRatio) {\n iframe.parentElement.parentElement.style.paddingBottom = newAspectRatio + \"%\";\n }\n });\n var innerContainer = player.container.getElementsByClassName(\"vidyard-inner-container-\" + player.uuid)[0];\n // Copy the place holder image to the iframe's parent element\n player.placeholder.parentElement.removeChild(player.placeholder);\n toggleClass(player.placeholder, 'inserted', true);\n innerContainer.appendChild(player.placeholder);\n // This inserts the iframe into the document flow\n iframe.parentElement.parentElement.style.position = 'relative';\n // Be sure that the iframe is fully visible\n iframe.style.opacity = '1';\n });\n iframeLoadedPromise.then(function () {\n // Hide the placeholder image only after the iframe has loaded\n player.placeholder.style.display = 'none';\n iframe.parentElement.parentElement.style.backgroundColor = 'transparent';\n });\n // Set the iframe title to match the video title after player metadata is ready\n player.on('metadata', function updateInlineIframeTitle(args) {\n var metadata = args[0];\n iframe.title = metadata.name;\n player.off('metadata', updateInlineIframeTitle);\n });\n function handleResize() {\n // The breakpoint is the side playlist width, doubled. If the available space is less, we need to hide the side playlist.\n var aboveBreakpoint = player.container.clientWidth >= PLAYLIST_WIDTH * 2;\n toggleClass(player.container, 'playlist-open', aboveBreakpoint);\n }\n log(\"getStyle sent\");\n getStyle(player.uuid).then(\n // pl is the \"playlist always open\" setting from the Dashboard.\n function (data) {\n log(\"getStyle received: \" + JSON.stringify(data));\n var playlistAlwaysOpen = (data.pl === 1 && dataParams.playlist_always_open !== '0') ||\n dataParams.playlist_always_open === '1';\n if (playlistAlwaysOpen) {\n player.iframe.parentElement.setAttribute('data-pl', 'true');\n addListener('resize', 'onresize', handleResize);\n handleResize();\n }\n else {\n player.iframe.parentElement.setAttribute('data-pl', 'false');\n }\n }).catch(function (e) {\n log('getStyle failed, likely a network error');\n });\n};\n/* harmony default export */ var inline_player = (injectInlineElements);\n\n// CONCATENATED MODULE: ./src/utils/accessibility-helpers.ts\n/*\n* The following helpers are needed for an iOS modal accessibility workaround\n* https://www.tpgi.com/the-current-state-of-modal-dialog-accessibility/\n*/\n/*\n* Apply aria-hidden=\"true\" for all children of element, and if necessary\n* storing the current aria-hidden value as data-vy-keep-hidden\n*/\nvar ariaHideChildElements = function (element) {\n if (element === void 0) { element = document.body; }\n for (var _i = 0, _a = Array.from(element.children); _i < _a.length; _i++) {\n var el = _a[_i];\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-vy-keep-hidden', el.getAttribute('aria-hidden'));\n }\n el.setAttribute('aria-hidden', 'true');\n }\n};\n/*\n* Restore the previous aria-hidden value for all children of element\n* data-vy-keep-hidden indicates the previous value was \"true\"\n*/\nvar undoAriaHideChildElements = function (element) {\n if (element === void 0) { element = document.body; }\n for (var _i = 0, _a = Array.from(element.children); _i < _a.length; _i++) {\n var el = _a[_i];\n if (el.getAttribute('data-vy-keep-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-vy-keep-hidden'));\n }\n else {\n el.removeAttribute('aria-hidden');\n }\n el.removeAttribute('data-vy-keep-hidden');\n }\n};\n\n// CONCATENATED MODULE: ./src/utils/user-agent-checker.ts\n/* harmony default export */ var user_agent_checker = ({\n ios: function () {\n return /ipad|iphone|ipod/i.test(navigator.userAgent);\n },\n});\n\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/array.js\nvar array_toArray = function toArray(a) {\n var ret = Array(a.length);\n for (var i = 0; i < a.length; ++i) {\n ret[i] = a[i];\n }\n return ret;\n};\n\nvar arrayFind = function arrayFind(array, search) {\n return array.filter(function (a) {\n return a === search;\n })[0];\n};\n\nvar asArray = function asArray(a) {\n return Array.isArray(a) ? a : [a];\n};\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/constants.js\nvar FOCUS_GROUP = 'data-focus-lock';\nvar FOCUS_DISABLED = 'data-focus-lock-disabled';\nvar FOCUS_ALLOW = 'data-no-focus-lock';\nvar FOCUS_AUTO = 'data-autofocus-inside';\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/focusIsHidden.js\n\n\n\nvar focusIsHidden_focusIsHidden = function focusIsHidden() {\n return document && array_toArray(document.querySelectorAll('[' + FOCUS_ALLOW + ']')).some(function (node) {\n return node.contains(document.activeElement);\n });\n};\n\n/* harmony default export */ var es2015_focusIsHidden = (focusIsHidden_focusIsHidden);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/all-affected.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n\nvar filterNested = function filterNested(nodes) {\n var l = nodes.length;\n for (var i = 0; i < l; i += 1) {\n var _loop = function _loop(j) {\n if (i !== j) {\n if (nodes[i].contains(nodes[j])) {\n return {\n v: filterNested(nodes.filter(function (x) {\n return x !== nodes[j];\n }))\n };\n }\n }\n };\n\n for (var j = 0; j < l; j += 1) {\n var _ret = _loop(j);\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n }\n return nodes;\n};\n\nvar getTopParent = function getTopParent(node) {\n return node.parentNode ? getTopParent(node.parentNode) : node;\n};\n\nvar all_affected_getAllAffectedNodes = function getAllAffectedNodes(node) {\n var nodes = asArray(node);\n return nodes.filter(Boolean).reduce(function (acc, currentNode) {\n var group = currentNode.getAttribute(FOCUS_GROUP);\n acc.push.apply(acc, group ? filterNested(array_toArray(getTopParent(currentNode).querySelectorAll('[' + FOCUS_GROUP + '=\"' + group + '\"]:not([' + FOCUS_DISABLED + '=\"disabled\"])'))) : [currentNode]);\n return acc;\n }, []);\n};\n\n/* harmony default export */ var all_affected = (all_affected_getAllAffectedNodes);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/focusInside.js\n\n\n\nvar focusInFrame = function focusInFrame(frame) {\n return frame === document.activeElement;\n};\n\nvar focusInside_focusInsideIframe = function focusInsideIframe(topNode) {\n return !!arrayFind(array_toArray(topNode.querySelectorAll('iframe')), focusInFrame);\n};\n\nvar focusInside_focusInside = function focusInside(topNode) {\n var activeElement = document && document.activeElement;\n\n if (!activeElement || activeElement.dataset && activeElement.dataset.focusGuard) {\n return false;\n }\n return all_affected(topNode).reduce(function (result, node) {\n return result || node.contains(activeElement) || focusInside_focusInsideIframe(node);\n }, false);\n};\n\n/* harmony default export */ var es2015_focusInside = (focusInside_focusInside);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/tabOrder.js\n\n\nvar tabSort = function tabSort(a, b) {\n var tabDiff = a.tabIndex - b.tabIndex;\n var indexDiff = a.index - b.index;\n\n if (tabDiff) {\n if (!a.tabIndex) return 1;\n if (!b.tabIndex) return -1;\n }\n\n return tabDiff || indexDiff;\n};\n\nvar tabOrder_orderByTabIndex = function orderByTabIndex(nodes, filterNegative, keepGuards) {\n return array_toArray(nodes).map(function (node, index) {\n return {\n node: node,\n index: index,\n tabIndex: keepGuards && node.tabIndex === -1 ? (node.dataset || {}).focusGuard ? 0 : -1 : node.tabIndex\n };\n }).filter(function (data) {\n return !filterNegative || data.tabIndex >= 0;\n }).sort(tabSort);\n};\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/tabbables.js\n/* harmony default export */ var tabbables = (['button:enabled:not([readonly])', 'select:enabled:not([readonly])', 'textarea:enabled:not([readonly])', 'input:enabled:not([readonly])', 'a[href]', 'area[href]', 'iframe', 'object', 'embed', '[tabindex]', '[contenteditable]', '[autofocus]']);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/tabUtils.js\n\n\n\n\nvar queryTabbables = tabbables.join(',');\nvar queryGuardTabbables = queryTabbables + ', [data-focus-guard]';\n\nvar tabUtils_getFocusables = function getFocusables(parents, withGuards) {\n return parents.reduce(function (acc, parent) {\n return acc.concat(\n // add all tabbables inside\n array_toArray(parent.querySelectorAll(withGuards ? queryGuardTabbables : queryTabbables)),\n // add if node is tabble itself\n parent.parentNode ? array_toArray(parent.parentNode.querySelectorAll(tabbables.join(','))).filter(function (node) {\n return node === parent;\n }) : []);\n }, []);\n};\n\nvar tabUtils_getParentAutofocusables = function getParentAutofocusables(parent) {\n var parentFocus = parent.querySelectorAll('[' + FOCUS_AUTO + ']');\n return array_toArray(parentFocus).map(function (node) {\n return tabUtils_getFocusables([node]);\n }).reduce(function (acc, nodes) {\n return acc.concat(nodes);\n }, []);\n};\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/DOMutils.js\n\n\n\n\nvar isElementHidden = function isElementHidden(computedStyle) {\n if (!computedStyle || !computedStyle.getPropertyValue) {\n return false;\n }\n return computedStyle.getPropertyValue('display') === 'none' || computedStyle.getPropertyValue('visibility') === 'hidden';\n};\n\nvar isVisible = function isVisible(node) {\n return !node || node === document || node.nodeType === Node.DOCUMENT_NODE || !isElementHidden(window.getComputedStyle(node, null)) && isVisible(node.parentNode);\n};\n\nvar notHiddenInput = function notHiddenInput(node) {\n return !((node.tagName === 'INPUT' || node.tagName === 'BUTTON') && (node.type === 'hidden' || node.disabled));\n};\n\nvar getParents = function getParents(node) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n parents.push(node);\n if (node.parentNode) {\n getParents(node.parentNode, parents);\n }\n return parents;\n};\n\nvar getCommonParent = function getCommonParent(nodea, nodeb) {\n var parentsA = getParents(nodea);\n var parentsB = getParents(nodeb);\n\n for (var i = 0; i < parentsA.length; i += 1) {\n var currentParent = parentsA[i];\n if (parentsB.indexOf(currentParent) >= 0) {\n return currentParent;\n }\n }\n return false;\n};\n\nvar DOMutils_filterFocusable = function filterFocusable(nodes) {\n return array_toArray(nodes).filter(function (node) {\n return isVisible(node);\n }).filter(function (node) {\n return notHiddenInput(node);\n });\n};\n\nvar DOMutils_getTabbableNodes = function getTabbableNodes(topNodes, withGuards) {\n return tabOrder_orderByTabIndex(DOMutils_filterFocusable(tabUtils_getFocusables(topNodes, withGuards)), true, withGuards);\n};\n\nvar DOMutils_getAllTabbableNodes = function getAllTabbableNodes(topNodes) {\n return tabOrder_orderByTabIndex(DOMutils_filterFocusable(tabUtils_getFocusables(topNodes)), false);\n};\n\nvar DOMutils_parentAutofocusables = function parentAutofocusables(topNode) {\n return DOMutils_filterFocusable(tabUtils_getParentAutofocusables(topNode));\n};\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/utils/firstFocus.js\nvar isRadio = function isRadio(node) {\n return node.tagName === 'INPUT' && node.type === 'radio';\n};\n\nvar findSelectedRadio = function findSelectedRadio(node, nodes) {\n return nodes.filter(isRadio).filter(function (el) {\n return el.name === node.name;\n }).filter(function (el) {\n return el.checked;\n })[0] || node;\n};\n\nvar pickFirstFocus = function pickFirstFocus(nodes) {\n if (nodes[0] && nodes.length > 1) {\n if (isRadio(nodes[0]) && nodes[0].name) {\n return findSelectedRadio(nodes[0], nodes);\n }\n }\n return nodes[0];\n};\n\nvar pickFocusable = function pickFocusable(nodes, index) {\n if (nodes.length > 1) {\n if (isRadio(nodes[index]) && nodes[index].name) {\n return nodes.indexOf(findSelectedRadio(nodes[index], nodes));\n }\n }\n return index;\n};\n\n/* harmony default export */ var utils_firstFocus = (pickFirstFocus);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/focusMerge.js\n\n\n\n\n\nvar findAutoFocused = function findAutoFocused(autoFocusables) {\n return function (node) {\n return !!node.autofocus || node.dataset && !!node.dataset.autofocus || autoFocusables.indexOf(node) >= 0;\n };\n};\n\nvar isGuard = function isGuard(node) {\n return node && node.dataset && node.dataset.focusGuard;\n};\nvar notAGuard = function notAGuard(node) {\n return !isGuard(node);\n};\n\nvar focusMerge_newFocus = function newFocus(innerNodes, outerNodes, activeElement, lastNode, autoFocused) {\n var cnt = innerNodes.length;\n var firstFocus = innerNodes[0];\n var lastFocus = innerNodes[cnt - 1];\n var isOnGuard = isGuard(activeElement);\n\n // focus is inside\n if (innerNodes.indexOf(activeElement) >= 0) {\n return undefined;\n }\n\n var activeIndex = outerNodes.indexOf(activeElement);\n var lastIndex = outerNodes.indexOf(lastNode || activeIndex);\n var lastNodeInside = innerNodes.indexOf(lastNode);\n var indexDiff = activeIndex - lastIndex;\n var firstNodeIndex = outerNodes.indexOf(firstFocus);\n var lastNodeIndex = outerNodes.indexOf(lastFocus);\n\n var returnFirstNode = pickFocusable(innerNodes, 0);\n var returnLastNode = pickFocusable(innerNodes, cnt - 1);\n\n // new focus\n if (activeIndex === -1 || lastNodeInside === -1) {\n return innerNodes.indexOf(autoFocused && autoFocused.length ? utils_firstFocus(autoFocused) : utils_firstFocus(innerNodes));\n }\n // old focus\n if (!indexDiff && lastNodeInside >= 0) {\n return lastNodeInside;\n }\n // first element\n if (activeIndex <= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnLastNode;\n }\n // last element\n if (activeIndex >= firstNodeIndex && isOnGuard && Math.abs(indexDiff) > 1) {\n return returnFirstNode;\n }\n // jump out, but not on the guard\n if (indexDiff && Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n // focus above lock\n if (activeIndex <= firstNodeIndex) {\n return returnLastNode;\n }\n // focus below lock\n if (activeIndex > lastNodeIndex) {\n return returnFirstNode;\n }\n // index is inside tab order, but outside Lock\n if (indexDiff) {\n if (Math.abs(indexDiff) > 1) {\n return lastNodeInside;\n }\n return (cnt + lastNodeInside + indexDiff) % cnt;\n }\n // do nothing\n return undefined;\n};\n\nvar focusMerge_getTopCommonParent = function getTopCommonParent(baseActiveElement, leftEntry, rightEntries) {\n var activeElements = asArray(baseActiveElement);\n var leftEntries = asArray(leftEntry);\n var activeElement = activeElements[0];\n var topCommon = null;\n leftEntries.filter(Boolean).forEach(function (entry) {\n topCommon = getCommonParent(topCommon || entry, entry) || topCommon;\n rightEntries.filter(Boolean).forEach(function (subEntry) {\n var common = getCommonParent(activeElement, subEntry);\n if (common) {\n if (!topCommon || common.contains(topCommon)) {\n topCommon = common;\n } else {\n topCommon = getCommonParent(common, topCommon);\n }\n }\n });\n });\n return topCommon;\n};\n\nvar focusMerge_allParentAutofocusables = function allParentAutofocusables(entries) {\n return entries.reduce(function (acc, node) {\n return acc.concat(DOMutils_parentAutofocusables(node));\n }, []);\n};\n\nvar reorderNodes = function reorderNodes(srcNodes, dstNodes) {\n var remap = new Map();\n // no Set(dstNodes) for IE11 :(\n dstNodes.forEach(function (entity) {\n return remap.set(entity.node, entity);\n });\n // remap to dstNodes\n return srcNodes.map(function (node) {\n return remap.get(node);\n }).filter(Boolean);\n};\n\nvar focusMerge_getFocusabledIn = function getFocusabledIn(topNode) {\n var entries = all_affected(topNode).filter(notAGuard);\n var commonParent = focusMerge_getTopCommonParent(topNode, topNode, entries);\n var outerNodes = DOMutils_getTabbableNodes([commonParent], true);\n var innerElements = DOMutils_getTabbableNodes(entries).filter(function (_ref) {\n var node = _ref.node;\n return notAGuard(node);\n }).map(function (_ref2) {\n var node = _ref2.node;\n return node;\n });\n\n return outerNodes.map(function (_ref3) {\n var node = _ref3.node,\n index = _ref3.index;\n return {\n node: node,\n index: index,\n lockItem: innerElements.indexOf(node) >= 0,\n guard: isGuard(node)\n };\n });\n};\n\nvar focusMerge_getFocusMerge = function getFocusMerge(topNode, lastNode) {\n var activeElement = document && document.activeElement;\n var entries = all_affected(topNode).filter(notAGuard);\n\n var commonParent = focusMerge_getTopCommonParent(activeElement || topNode, topNode, entries);\n\n var innerElements = DOMutils_getTabbableNodes(entries).filter(function (_ref4) {\n var node = _ref4.node;\n return notAGuard(node);\n });\n\n if (!innerElements[0]) {\n innerElements = DOMutils_getAllTabbableNodes(entries).filter(function (_ref5) {\n var node = _ref5.node;\n return notAGuard(node);\n });\n if (!innerElements[0]) {\n return undefined;\n }\n }\n\n var outerNodes = DOMutils_getTabbableNodes([commonParent]).map(function (_ref6) {\n var node = _ref6.node;\n return node;\n });\n var orderedInnerElements = reorderNodes(outerNodes, innerElements);\n var innerNodes = orderedInnerElements.map(function (_ref7) {\n var node = _ref7.node;\n return node;\n });\n\n var newId = focusMerge_newFocus(innerNodes, outerNodes, activeElement, lastNode, innerNodes.filter(findAutoFocused(focusMerge_allParentAutofocusables(entries))));\n\n if (newId === undefined) {\n return newId;\n }\n return orderedInnerElements[newId];\n};\n\n/* harmony default export */ var focusMerge = (focusMerge_getFocusMerge);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/setFocus.js\n\n\nvar focusOn = function focusOn(target) {\n target.focus();\n if (target.contentWindow) {\n target.contentWindow.focus();\n }\n};\n\nvar guardCount = 0;\nvar lockDisabled = false;\n\n/* harmony default export */ var setFocus = (function (topNode, lastNode) {\n var focusable = focusMerge(topNode, lastNode);\n\n if (lockDisabled) {\n return;\n }\n\n if (focusable) {\n if (guardCount > 2) {\n // eslint-disable-next-line no-console\n console.error('FocusLock: focus-fighting detected. Only one focus management system could be active. ' + 'See https://github.com/theKashey/focus-lock/#focus-fighting');\n lockDisabled = true;\n setTimeout(function () {\n lockDisabled = false;\n }, 1);\n return;\n }\n guardCount++;\n focusOn(focusable.node);\n guardCount--;\n }\n});\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/focus-lock/dist/es2015/index.js\n\n\n\n\n\n\n\n\n\n\n/* harmony default export */ var es2015 = (setFocus);\n// CONCATENATED MODULE: /vidyard/vidyard-player-sdk/node_modules/dom-focus-lock/dist/index.esm.js\n\n\nvar lastActiveTrap = 0;\nvar lastActiveFocus = null;\n\nvar focusOnBody = function focusOnBody() {\n return document && document.activeElement === document.body;\n};\n\nvar index_esm_isFreeFocus = function isFreeFocus() {\n return focusOnBody() || es2015_focusIsHidden();\n};\n\nvar index_esm_activateTrap = function activateTrap() {\n var result = false;\n\n if (lastActiveTrap) {\n var observed = lastActiveTrap;\n\n if (!index_esm_isFreeFocus()) {\n if (observed && !es2015_focusInside(observed)) {\n result = es2015(observed, lastActiveFocus);\n }\n\n lastActiveFocus = document.activeElement;\n }\n }\n\n return result;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return propsList.filter(function (node) {\n return node;\n }).slice(-1)[0];\n};\n\nvar handleStateChangeOnClient = function handleStateChangeOnClient(trap) {\n lastActiveTrap = trap;\n\n if (trap) {\n index_esm_activateTrap();\n }\n};\n\nvar instances = [];\n\nvar emitChange = function emitChange(event) {\n if (handleStateChangeOnClient(reducePropsToState(instances))) {\n event && event.preventDefault();\n return true;\n }\n\n return false;\n};\n\nvar attachHandler = function attachHandler() {\n document.addEventListener('focusin', emitChange);\n};\n\nvar detachHandler = function detachHandler() {\n document.removeEventListener('focusin', emitChange);\n};\n\nvar focusLock = {\n on: function on(domNode) {\n if (instances.length === 0) {\n attachHandler();\n }\n\n if (instances.indexOf(domNode) < 0) {\n instances.push(domNode);\n emitChange();\n }\n },\n off: function off(domNode) {\n instances = instances.filter(function (node) {\n return node !== domNode;\n });\n emitChange();\n\n if (instances.length === 0) {\n detachHandler();\n }\n }\n};\n\n/* harmony default export */ var index_esm = (focusLock);\n\n// EXTERNAL MODULE: /vidyard/vidyard-player-sdk/node_modules/makeup-screenreader-trap/index.js\nvar makeup_screenreader_trap = __webpack_require__(1);\nvar makeup_screenreader_trap_default = /*#__PURE__*/__webpack_require__.n(makeup_screenreader_trap);\n\n// CONCATENATED MODULE: ./src/views/lightbox.ts\n/*\n* Applies and controls styles relating to centering the lightbox within the parent window\n*/\n\n\n\n\n\n\nfunction show(iframeString, thumbnailContainer, overlayZindex) {\n var container = generateLightboxContainer(iframeString);\n var lightbox = generateLightboxHTML(overlayZindex);\n var lightboxConstraint = generateConstraintImage(thumbnailContainer);\n // Needed so that the lightbox isn't the last element in the to\n // allow focusLock to listen for a focus event when focus leaves the\n // last element in the lightbox\n var focusableElement = document.createElement('div');\n focusableElement.id = 'vidyard-focusable-element';\n focusableElement.tabIndex = 0;\n lightbox.popbox.appendChild(container.backerElement);\n lightbox.popbox.appendChild(container.containingDiv);\n lightbox.popbox.appendChild(lightboxConstraint);\n if (user_agent_checker.ios()) {\n ariaHideChildElements();\n }\n // Add them to the DOM\n document.body.appendChild(lightbox.overlayWrapper);\n document.body.appendChild(focusableElement);\n lightbox.closeContainer.focus();\n index_esm.on(lightbox.overlayWrapper);\n makeup_screenreader_trap_default.a.trap(lightbox.overlayWrapper);\n // Have to use a timeout so css will actually transition the opacity\n setTimeout(function animateOpacity() {\n lightbox.overlayWrapper.style.opacity = '1';\n lightbox.overlayWrapper.style.filter = 'alpha(opacity=100)';\n }, 0);\n return {\n container: container,\n lightbox: lightbox,\n };\n}\nfunction remove(callbacks) {\n var fixedElement = document.getElementById('vidyard-content-fixed');\n var focusableElement = document.getElementById('vidyard-focusable-element');\n var overlay = document.getElementById('vidyard-overlay');\n var overlayWrapper = document.getElementById('vidyard-overlay-wrapper');\n var popbox = document.getElementById('vidyard-popbox');\n if (!fixedElement || !overlay || !overlayWrapper || !popbox) {\n return;\n }\n if (callbacks) {\n Object.keys(callbacks).forEach(function (k) {\n var cb = callbacks[k];\n cb();\n });\n }\n if (focusableElement) {\n focusableElement.parentNode.removeChild(focusableElement);\n }\n index_esm.off(overlayWrapper);\n makeup_screenreader_trap_default.a.untrap(overlayWrapper);\n overlayWrapper.style.opacity = '0';\n overlayWrapper.style.filter = 'alpha(opacity=0)';\n var cleanup = function () {\n overlayWrapper.parentNode.removeChild(overlayWrapper);\n };\n if (user_agent_checker.ios()) {\n undoAriaHideChildElements();\n }\n // Clean up the added DOM elements once fade out is complete\n setTimeout(cleanup, OVERLAY_FADE_TIME * 1000);\n}\nfunction makeIframeVisible(iframe) {\n iframe.style.opacity = '1';\n}\n// --- Private Functions ---\nfunction generateLightboxHTML(overlayZindex) {\n // Create all the elements for the overlay\n var overlay = document.createElement('div');\n var contentFixed = document.createElement('div');\n var popbox = document.createElement('div');\n var overlayWrapper = document.createElement('div');\n var closeContainer = generateCloseButton().closeContainer;\n overlay.id = 'vidyard-overlay';\n overlay.setAttribute('aria-hidden', 'true');\n overlay.style.display = 'block';\n contentFixed.id = 'vidyard-content-fixed';\n contentFixed.setAttribute('aria-label', 'media player lightbox');\n contentFixed.setAttribute('role', 'dialog');\n contentFixed.style.display = 'block';\n popbox.id = 'vidyard-popbox';\n overlayWrapper.id = 'vidyard-overlay-wrapper';\n overlayWrapper.style.display = 'block';\n contentFixed.appendChild(popbox);\n overlayWrapper.appendChild(overlay);\n overlayWrapper.appendChild(closeContainer);\n overlayWrapper.appendChild(contentFixed);\n if (overlayZindex) {\n overlay.style.zIndex = '' + overlayZindex;\n contentFixed.style.zIndex = '' + (overlayZindex + 2);\n closeContainer.style.zIndex = '' + (overlayZindex + 1);\n }\n return {\n closeContainer: closeContainer,\n contentFixed: contentFixed,\n overlay: overlay,\n overlayWrapper: overlayWrapper,\n popbox: popbox,\n };\n}\nfunction generateCloseButton() {\n var closeContainer = document.createElement('div');\n var closeButton = document.createElement('div');\n closeContainer.className = 'vidyard-close-container';\n closeContainer.setAttribute('aria-label', 'Close Player');\n closeContainer.setAttribute('role', 'button');\n closeContainer.setAttribute('tabindex', '0');\n closeButton.className = 'vidyard-close-x';\n // Fix for ie7 not supporting :before pseudo elements\n // Fix for ie8 not supporting transform rotate\n if (document.documentMode < 9) {\n closeButton.className += ' simple-close';\n closeButton.innerHTML = '×';\n }\n closeContainer.appendChild(closeButton);\n return { closeButton: closeButton, closeContainer: closeContainer };\n}\nfunction generateLightboxContainer(playerIframeDOMString) {\n var backerElement = document.createElement('div');\n backerElement.className = 'vidyard-lightbox-content-backer';\n var containerElement = document.createElement('div');\n // hydrate the markup string into actual DOM\n containerElement.innerHTML = playerIframeDOMString;\n var containingDiv = containerElement.getElementsByTagName('div')[0];\n containingDiv.style.position = 'absolute';\n containingDiv.style.height = '100%';\n containingDiv.style.width = '100%';\n containingDiv.style.zIndex = '2';\n var iframe = containerElement.getElementsByTagName('iframe')[0];\n var iframeParent = iframe.parentNode;\n // Lightbox specific styling for the iframe\n iframeParent.style.position = 'static';\n // This overwrites the padding bottom set by createIframe\n iframeParent.style.paddingBottom = '0';\n iframe.style.opacity = '1';\n // This is to ensure the background actually animates\n setTimeout(function () {\n backerElement.style.opacity = '1';\n backerElement.style.filter = 'alpha(opacity=100)';\n }, 0);\n return {\n backerElement: backerElement,\n containerElement: containerElement,\n containingDiv: containingDiv,\n iframe: iframe,\n };\n}\nfunction generateConstraintImage(container) {\n var image = getElementByClass('vidyard-lightbox-image', 'img', container)[0].cloneNode();\n image.className = '';\n image.id = 'vidyard-popbox-constraint';\n image.alt = '';\n image.setAttribute('aria-hidden', 'true');\n return image;\n}\n\n// CONCATENATED MODULE: ./src/models/lightbox-animator.ts\n/*\n* Controls showing & hiding of the lightbox\n*/\n\n\n\n\n\n// --- Private Vars ---\nvar ACTIVE_ELEMENT;\n// need to cleanup these after the lightbox is removed\nvar LIGHTBOX_EVENTS = {};\nfunction setupAnimations(options) {\n var thumbnailContainer = getElementByClass('vidyard-lightbox-centering', 'div', options.container)[0];\n // expose the show and hide functions to the player API\n options.player.showLightbox = function showLightboxHandler() {\n logger.setLevel(options.player.uuid)('show lightbox');\n showLightbox({\n container: options.container,\n iframe: options.iframe,\n overlayZindex: options.overlayZindex,\n player: options.player,\n });\n };\n options.player.hideLightbox = function () { return removeLightbox(options.player); };\n // event listeners on the thumbnail\n addListener('click', 'onclick', options.player.showLightbox, thumbnailContainer);\n addListener('keydown', 'onkeydown', spaceOrEnterKeyPressEvent(function (e) {\n e.preventDefault();\n options.player.showLightbox(e);\n }), thumbnailContainer);\n}\n// --- Private Functions ---\nfunction showLightbox(options) {\n // The lightbox cannot be shown if no iframe HTML was provided\n // or if there is already a lightbox showing\n if (!options.iframe || document.getElementById('vidyard-overlay')) {\n return;\n }\n ACTIVE_ELEMENT = document.activeElement;\n var lightboxDOM = show(options.iframe, options.container, options.overlayZindex);\n // Set the vidyardPlayers iframe to the newly injected one\n options.player.iframe = lightboxDOM.container.iframe;\n // update iframe title to video title once player metadata ready\n options.player.on('metadata', function updateLightboxIframeTitle(args) {\n var metadata = args[0];\n options.player.iframe.title = metadata.name;\n options.player.off('metadata', updateLightboxIframeTitle);\n });\n // callback to run when the iframe has loaded, only once\n var uuid = options.player.uuid;\n var iframe = lightboxDOM.container.iframe;\n var iframeLoaded = onIframeLoad(iframe, uuid, options.player);\n var listenForKeyPress = iframeListenForKeyPress(iframe, uuid);\n // iframe load listener\n LIGHTBOX_EVENTS.iframeLoaded = addListener('load', 'onload', iframeLoaded, lightboxDOM.container.iframe);\n // postMessage receipt from the player listener\n LIGHTBOX_EVENTS.messageHandler = addListener('message', 'onmessage', \n // @TODO add better types for data\n receive(function (data) {\n iframeLoaded();\n listenForKeyPress();\n onEscInIframe(data, options.player);\n }), window);\n // click on lightbox overlay listener\n LIGHTBOX_EVENTS.overlayClick = addListener('click', 'onclick', function () { return removeLightbox(options.player); }, lightboxDOM.lightbox.overlayWrapper);\n // click on lightbox fixed content wrapper listener\n LIGHTBOX_EVENTS.fixedClick = addListener('click', 'onclick', function () { return removeLightbox(options.player); }, lightboxDOM.lightbox.contentFixed);\n // space or enter on the X button listener\n LIGHTBOX_EVENTS.closeKeyPress = addListener('keydown', 'onkeydown', spaceOrEnterKeyPressEvent(function () { return removeLightbox(options.player); }), lightboxDOM.lightbox.closeContainer);\n LIGHTBOX_EVENTS.responsivePlayerSize = addListener('resize', 'onresize', lightbox_animator_handleResize, window);\n}\nfunction lightbox_animator_handleResize() {\n var constraintImage = document.getElementById('vidyard-popbox-constraint');\n var windowRatio = parseFloat(((window.innerHeight / window.innerWidth) * 100).toFixed(2));\n var imageRatio = parseFloat(calcAspectRatio(constraintImage));\n var orientation = windowRatio < imageRatio ? 'landscape' : 'portrait';\n if (constraintImage.className !== orientation) {\n constraintImage.className = orientation;\n }\n}\nfunction removeLightbox(player) {\n remove();\n if (ACTIVE_ELEMENT) {\n ACTIVE_ELEMENT.focus();\n }\n Object.keys(LIGHTBOX_EVENTS).forEach(function (key) {\n var _a = LIGHTBOX_EVENTS[key], eventName = _a.eventName, handler = _a.handler, element = _a.element;\n removeListener(eventName, handler, element);\n });\n // Trigger all registered lightboxClose callbacks\n if (player) {\n player.trigger('lightboxClose');\n }\n}\n// @TODO: add better type for postMessageData\nfunction onEscInIframe(postMessageData, player) {\n // if esc was pressed in the iframe\n if (postMessageData.event === 'keyPressed' && postMessageData.params === 27) {\n removeLightbox(player);\n }\n}\nfunction onIframeLoad(iframe, uuid, player) {\n return once(function () {\n makeIframeVisible(iframe);\n lightbox_animator_handleResize();\n // start listening for esc key presses in parent\n LIGHTBOX_EVENTS.parentEsc = addListener('keydown', 'onkeydown', escKeyPressEvent(function () { return removeLightbox(player); }), document);\n });\n}\n// Send message to start listening for esc key presses in iframe\nfunction iframeListenForKeyPress(iframe, uuid) {\n return once(function () {\n var message = { uuid: uuid, event: 'listenForKeyPress', keyCode: '27' };\n send(message, \"https://\" + getPlaybackURL(), iframe);\n });\n}\n\n// CONCATENATED MODULE: ./src/api/get-player-metadata.ts\nvar __assign = (undefined && undefined.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nfunction getPlayerMetadata(uuid) {\n if (!uuid || typeof uuid !== 'string' || uuid.length < 20) {\n throw new Error('Invalid UUID given');\n return;\n }\n var log = logger.setLevel(uuid);\n // @TODO: add proper API to fetch metadata as this endpoint is private and not stable\n var metadataEndpoint = \"https://\" + getPlaybackURL() + \"/player/\" + uuid + \".json?pomo=0&pomo_reason=fetchMetaData\";\n log('fetching metadata');\n return xhrRequest({ endpoint: metadataEndpoint })\n .then(JSON.parse)\n .then(function (data) {\n log('metadata successfully fetched');\n return __assign({ uuid: uuid }, data.payload.vyContext.metadata);\n })\n .catch(function (e) {\n log(\"failed to fetch metadata, \" + e);\n throw new Error('Error parsing player metadata, make sure the UUID is correct');\n });\n}\n\n// CONCATENATED MODULE: ./src/models/lightbox-page-thumbnail.ts\n/*\n* Handles injecting html & css related specfically to lightbox embeds\n*/\n\n\n\n// This code sets up the css and listeners for the on page splash screen & play button\nfunction init(embedScriptElement, queryParams, sizing) {\n var lightboxThumbnailUrl = \"https://\" + getPlaybackURL() + \"/\" + queryParams.uuid + \".jpg\";\n var lightboxString = composeLightboxString(lightboxThumbnailUrl, queryParams, sizing);\n embedScriptElement.insertAdjacentHTML('afterbegin', lightboxString);\n getPlayerMetadata(queryParams.uuid)\n .then(function (metadata) {\n var playButton = getElementByClass('play-button', 'button', embedScriptElement);\n if (playButton.length !== 1) {\n return;\n }\n playButton[0].setAttribute('aria-label', 'Play video ' + metadata.name + '. Opens in a modal');\n }, function () {\n // Ignore errors fetching metadata\n });\n}\nfunction applyLightboxPlayButton(pbData, embedScriptElement) {\n if (pbData.pb !== 1) {\n return;\n }\n var playButton = getElementByClass('play-button', 'button', embedScriptElement);\n if (playButton.length !== 1) {\n return;\n }\n playButton[0].style.display = 'block';\n playButton[0].style.backgroundColor = '#' + pbData.pbc;\n}\n// --- Private Functions ---\nfunction composeLightboxString(lightboxThumbnailUrl, queryParams, sizing) {\n return ('
' +\n '
' +\n '\"video' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
');\n}\n\n// CONCATENATED MODULE: ./src/controllers/lightbox-player.ts\n\n\n\n\n\n\nvar injectLightboxElements = function (_a) {\n var dataParams = _a.dataParams, player = _a.player;\n var log = logger.setLevel(dataParams.uuid);\n log(\"injecting lighbox embed\");\n // hide the placeholder image right away if lightbox\n player.placeholder.style.display = 'none';\n var iframeSizing = { ratio: calcAspectRatio(player.placeholder) };\n var playerIframe = createIframe(dataParams, iframeSizing);\n var thumbnailSizing = {\n maxHeight: dataParams.height ? parseInt(dataParams.height, 10) : null,\n maxWidth: dataParams.width ? parseInt(dataParams.width, 10) : null,\n ratio: calcAspectRatio(player.placeholder),\n };\n // Inject lightbox thumbnail\n init(player.container, dataParams, thumbnailSizing);\n setupAnimations({\n container: player.container,\n iframe: playerIframe,\n overlayZindex: dataParams.overlayZindex,\n player: player,\n });\n log(\"getStyle sent\");\n getStyle(player.uuid).then(function (data) {\n log(\"getStyle received: \" + JSON.stringify(data));\n // Update the play button of the lightbox thumbnail to match the colours on the model\n applyLightboxPlayButton(data, player.container);\n }).catch(function (e) {\n log('getStyle failed, likely a network error');\n });\n};\n/* harmony default export */ var lightbox_player = (injectLightboxElements);\n\n// CONCATENATED MODULE: ./src/controllers/backlink.ts\n\n\n\nvar SKIP_BACKLINK_HOSTNAMES_RE = /(vidyard|vystaging|hubspot)\\.com$/;\nvar injectBacklink = function (player, data, force) {\n if (force === void 0) { force = false; }\n if (!force && (!data || !data.hasBacklink || SKIP_BACKLINK_HOSTNAMES_RE.test(document.location.host))) {\n return;\n }\n var linkEl = document.createElement('a');\n var linkTextEl = document.createElement('span');\n var imgEl = document.createElement('img');\n imgEl.src = 'https://cdn.vidyard.com/client-logos/vidyard.png';\n imgEl.id = 'backlink-icon';\n imgEl.alt = 'Vidyard Logo';\n linkTextEl.id = 'backlink-text';\n linkTextEl.textContent = 'Powered by Vidyard';\n linkEl.id = 'backlink';\n linkEl.appendChild(imgEl);\n linkEl.appendChild(linkTextEl);\n linkEl.href = data.backlinkURL;\n linkEl.rel = 'nofollow';\n linkEl.target = '_blank';\n linkEl.setAttribute('aria-label', 'Link to Vidyard');\n linkEl.dataset.testid = 'backlink';\n addListener('click', 'onclick', function () {\n var message = {\n data: {\n event: 'Acquisition - Clicked the Backlink',\n },\n event: 'sendMetricsEvent',\n uuid: player.uuid,\n };\n send(message, \"https://\" + getPlaybackURL(), player.iframe);\n }, linkEl);\n player.container.appendChild(linkEl);\n};\n/* harmony default export */ var backlink = (injectBacklink);\n\n// CONCATENATED MODULE: ./src/controllers/integrations.ts\n\n\n\nfunction integrationsControler(player) {\n var integrations = window.VidyardV4.integrations;\n var log = logger.setLevel(player.uuid);\n var marketoCookie = integrations.getCookie('marketo');\n if (marketoCookie) {\n log(\"getMarketoLead sent\");\n getMarketoLead(player.uuid, marketoCookie)\n .then(checkJSONParse)\n // @TODO: add better types here\n .then(function (leadData) {\n log(\"getMarketoLead received: \" + leadData);\n player.on('ready', function () {\n integrations.addKnownVisitor('marketo', leadData, player.org);\n });\n })\n .catch(function () {\n logger.warn('Invalid Marketo cookie');\n });\n }\n // Get info on what our integrations are by hitting /v4/:uuid/integrations.js\n log(\"getIntegrations\");\n // @TODO: add better types here\n getIntegrations(player.uuid).then(function (data) {\n log(\"getIntegrations received: \" + JSON.stringify(data));\n player.on('ready', function () {\n player._tmpOrg = data;\n integrations.updatePlayer(player);\n });\n }).catch(function (e) {\n log('getIntegrations failed, likely a network error');\n });\n}\n\n// CONCATENATED MODULE: ./src/controllers/seo.ts\n\n\n\n\nfunction seoController(uuid) {\n var log = logger.setLevel(uuid);\n log(\"getSEO sent\");\n return getSEO(uuid)\n .then(function (data) {\n log(\"getSEO: \" + JSON.stringify(data));\n if (!isObjectEmpty(data)) {\n var jsonLD = createJsonLD(data);\n document.getElementsByTagName('head')[0].appendChild(jsonLD);\n }\n return data;\n })\n .catch(function (e) {\n log('getSEO failed, likely a network error');\n });\n}\n\n// CONCATENATED MODULE: ./src/views/container.ts\nvar createContainer = function (uuid, dataParams) {\n var container = document.createElement('div');\n container.className = 'vidyard-player-container';\n container.setAttribute('uuid', uuid);\n var styles = container.style;\n styles.margin = 'auto';\n styles.width = '100%';\n styles.height = 'auto';\n styles.overflow = 'hidden';\n styles.display = 'block';\n if (dataParams.type === 'inline') {\n styles.maxWidth = dataParams.width ? dataParams.width + 'px' : '';\n styles.maxHeight = dataParams.height ? dataParams.height + 'px' : '';\n }\n return container;\n};\n/* harmony default export */ var views_container = (createContainer);\n\n// CONCATENATED MODULE: ./src/models/data-params.ts\n/* tslint:disable variable-name */\n\n\nvar data_params_DataParams = /** @class */ (function () {\n function DataParams(placeHolderImage) {\n var _this = this;\n this.disable_popouts = 1;\n var data = parseVyData(dataSet(placeHolderImage));\n Object.keys(data).forEach(function (key) {\n _this[key] = data[key];\n });\n // Default to inline embed\n if (this.type !== 'inline' && this.type !== 'lightbox') {\n embed_helpers_log('Invalid Vidyard player embed type, defaulting to inline.', 'warn');\n this.type = 'inline';\n }\n // Report the embed script version\n this.v = VERSION;\n // This embed code no longer supports popout CTAs\n this.disable_popouts = 1;\n // Gets the vycustomid query string param, used to identify personalized videos\n this.custom_id = this.custom_id || getQueryParam('vycustom_id');\n // Gets the vyemail query string param, which connects views to an email entered\n this.vyemail = this.vyemail || getQueryParam('vyemail');\n // Sets a fixed Vidyard Salesforce ID for every view\n this.vysfid = this.vysfid || getQueryParam('vysfid');\n // Sets a fixed Vidyard Salesforce ID for every view\n this.vyetoken = this.vyetoken || getQueryParam('vyetoken');\n // Gets & sets the access code parameter which will bypass having the user enter it manually\n var vyac = getQueryParam('vyac');\n var vyplayer = getQueryParam('vyplayer');\n if (vyac && vyplayer && vyplayer === this.uuid) {\n this.access_code = vyac;\n }\n else if (vyac && vyplayer) {\n embed_helpers_log('Invalid Vidyard player access code.', 'warn');\n }\n }\n DataParams.prototype.toQueryString = function () {\n var queryParamsString = '?';\n var key;\n for (key in this) {\n if (!this.hasOwnProperty(key)) {\n continue;\n }\n // don't include these in the query string\n if (key === 'height' || key === 'uuid' || key === 'width') {\n continue;\n }\n // don't include undefined keys\n if (this[key] === undefined) {\n continue;\n }\n // Add '&' here so we don't end up with one trailing\n queryParamsString += queryParamsString !== '?' ? '&' : '';\n queryParamsString += encodeURIComponent(key) + '=' + encodeURIComponent(this[key]);\n }\n // Just return an empty string if no params were found\n return queryParamsString === '?' ? '' : queryParamsString;\n };\n return DataParams;\n}());\n/* harmony default export */ var data_params = (data_params_DataParams);\n\n// CONCATENATED MODULE: ./src/models/preload-frames.ts\n/*\n* Adds link rel prefetch for the iframes\n*/\n\n\n\nfunction preloadFrames(embeds) {\n if (embeds === void 0) { embeds = getElementByClass('vidyard-player-embed', 'img'); }\n for (var _i = 0, embeds_1 = embeds; _i < embeds_1.length; _i++) {\n var ele = embeds_1[_i];\n var dataParams = new data_params(ele);\n var uuid = dataParams.uuid;\n var preloadHref = \"https://\" + getPlaybackURL() + \"/\" + uuid + dataParams.toQueryString();\n if (!uuid) {\n continue;\n }\n if (indexOfArray(preloadHref, window.VidyardV4.preloadLinks) === -1) {\n addPrefetchLink(uuid, preloadHref);\n window.VidyardV4.preloadLinks.push(preloadHref);\n }\n }\n}\n// --- Private Functions ---\nfunction addPrefetchLink(uuid, href) {\n var preloadLink = document.createElement('link');\n preloadLink.rel = 'prefetch';\n preloadLink.crossOrigin = 'anonymous';\n preloadLink.href = href;\n document.body.appendChild(preloadLink);\n return href;\n}\n\n// CONCATENATED MODULE: ./src/models/vidyard-player.ts\nvar vidyard_player_assign = (undefined && undefined.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\n\n\n\nvar vidyard_player_Player = /** @class */ (function () {\n function Player(element, uuid, callbackStore) {\n var _this = this;\n this._ready = false;\n this._previousTime = null;\n this._onMessageEventHandler = function (event) {\n if (event.origin !== \"https://\" + getPlaybackURL()) {\n return;\n }\n var data;\n try {\n data = JSON.parse(event.data);\n }\n catch (e) {\n return;\n }\n // For a different player\n if (_this.uuid && data.uuid !== _this.uuid) {\n return;\n }\n // All vy events will have a string event name\n if (typeof data.event !== 'string') {\n return;\n }\n _this._updateStatus(data);\n if (data.event === 'ready') {\n _this._ready = true;\n window.VidyardV4.integrations.updatePlayer(_this);\n }\n var eventCallbacks = _this._callbackStore[data.event];\n if (eventCallbacks) {\n for (var _i = 0, eventCallbacks_1 = eventCallbacks; _i < eventCallbacks_1.length; _i++) {\n var callback = eventCallbacks_1[_i];\n callback.call(_this, data.params, _this);\n }\n }\n };\n this._callbackStore = callbackStore || {\n beforeSeek: [],\n chapterComplete: [],\n createCta: [],\n fullScreenChange: [],\n lightboxClose: [],\n metadata: [],\n pause: [],\n play: [],\n playerComplete: [],\n ready: [],\n seek: [],\n sidePlaylistOpen: [],\n status: [],\n timeupdate: [],\n videoComplete: [],\n volumeChange: [],\n };\n this.element = element;\n this.uuid = uuid;\n this.status = null;\n this.metadata = null;\n this.progressEventsUnsubscribe = [];\n addListener('message', 'onmessage', this._onMessageEventHandler);\n }\n Player.prototype.on = function (eventName, callback) {\n var _this = this;\n if (eventName === 'ready' && this.ready()) {\n setTimeout(function () { return callback.call(_this, undefined, _this); }, 0);\n return;\n }\n if (this._callbackStore[eventName] === undefined) {\n this._callbackStore[eventName] = [callback];\n embed_helpers_log(\"The event name: \" + eventName + \" is not supported, your handler was setup regardless\", 'warn');\n return;\n }\n this._callbackStore[eventName].push(callback);\n };\n Player.prototype.trigger = function (eventName) {\n var _this = this;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _loop_1 = function (callback) {\n if (eventName === 'ready' && this_1.ready()) {\n setTimeout(function () { return callback.call(_this, args, _this); }, 0);\n }\n else {\n callback.call(this_1, args, this_1);\n }\n };\n var this_1 = this;\n for (var _a = 0, _b = this._callbackStore[eventName]; _a < _b.length; _a++) {\n var callback = _b[_a];\n _loop_1(callback);\n }\n };\n Player.prototype.off = function (eventName, callback) {\n if (eventName === undefined) {\n // No event name given, clear out all event handlers\n for (var evt in this._callbackStore) {\n if (this._callbackStore.hasOwnProperty(evt)) {\n this._callbackStore[evt] = [];\n }\n }\n return;\n }\n // If no handlers have been created with this eventName, do nothing\n if (!this._callbackStore[eventName]) {\n return;\n }\n if (callback) {\n // Only remove the callback associated with the correct function\n var index = indexOfArray(callback, this._callbackStore[eventName]);\n if (index > -1) {\n this._callbackStore[eventName].splice(index, 1);\n }\n }\n else {\n // Remove all callbacks associated with this eventName\n this._callbackStore[eventName] = [];\n }\n };\n Player.prototype.ready = function () {\n return this._ready;\n };\n // API METHODS\n Player.prototype.play = function () {\n this._message({ event: 'play' });\n };\n Player.prototype.pause = function () {\n this._message({ event: 'pause' });\n };\n Player.prototype.resume = function () {\n this._message({ event: 'resume' });\n };\n Player.prototype.seek = function (position) {\n this._message({ event: 'seek', position: position });\n };\n Player.prototype.setVolume = function (newVolume) {\n this._message({ event: 'setVolume', newVolume: newVolume });\n };\n Player.prototype.setPlaybackSpeed = function (speed) {\n this._message({ event: 'setPlaybackSpeed', speed: speed });\n };\n Player.prototype.playChapter = function (chapterIndex) {\n embed_helpers_log('playChapter() is deprecated. We recommend to use playVideoAtIndex() instead.');\n this.playVideoAtIndex(chapterIndex);\n };\n Player.prototype.playVideoAtIndex = function (index) {\n this._message({ chapter_index: index, event: 'playChapter' });\n };\n Player.prototype.setAudioTrack = function (audioTrackId) {\n this._message({ audioTrackId: audioTrackId, event: 'setAudioTrack' });\n };\n Player.prototype.enableCaption = function (label, language) {\n this._message({ event: 'enableCaption', label: label, language: language });\n };\n Player.prototype.disableCaption = function (label, language) {\n this._message({ event: 'disableCaption', label: label, language: language });\n };\n Player.prototype.consentToGDPR = function (consent) {\n this._message({ consent: consent, event: 'consentToGDPR' });\n };\n Player.prototype.createCta = function (attributes) {\n this._message({\n attributes: shallowMerge({\n display_once: false,\n duration: 10,\n fullscreen: false,\n html: '',\n opacity: 1.0,\n start: 0,\n width: 300,\n }, attributes),\n event: 'createCta',\n });\n };\n Player.prototype.updateCta = function (ctaId, attributes) {\n this._message({\n attributes: attributes,\n event: 'updateCta',\n id: ctaId,\n });\n };\n Player.prototype.createVideoSection = function (title, milliseconds) {\n this._message({ event: 'createVideoSection', title: title, milliseconds: milliseconds });\n };\n Player.prototype.updateVideoSection = function (index, title, milliseconds) {\n this._message({ event: 'updateVideoSection', index: index, title: title, milliseconds: milliseconds });\n };\n Player.prototype.deleteVideoSection = function (index) {\n this._message({ event: 'deleteVideoSection', index: index });\n };\n Player.prototype.addEvent = function (_a) {\n var _b = _a.start, start = _b === void 0 ? 0 : _b, _c = _a.duration, duration = _c === void 0 ? 1 : _c, videoIndex = _a.videoIndex, chapterIndex = _a.chapterIndex, eventId = _a.eventId;\n if (!eventId) {\n embed_helpers_log('Missing arguments. Need eventId');\n return;\n }\n if (chapterIndex >= 0) {\n embed_helpers_log('Parameter chapterIndex is deprecated. We recommend to use videoIndex instead.');\n }\n // We need to default chapterIndex to 0 because that's what we did previously, and we need to ensure all changes are backwards compatible\n var index = 0;\n index = chapterIndex ? chapterIndex : index;\n index = videoIndex ? videoIndex : index;\n this._message({\n chapterIndex: index,\n duration: duration,\n event: 'addEvent',\n id: eventId,\n start: start,\n });\n };\n Player.prototype.getCurrentChapter = function () {\n embed_helpers_log('getCurrentChapter() is deprecated. We recommend to use getCurrentVideoIndex() instead.');\n return this.getCurrentVideoIndex();\n };\n Player.prototype.getCurrentVideoIndex = function () {\n return this.status === null ? null : this.status.chapterIndex;\n };\n Player.prototype.currentTime = function () {\n return this.status === null ? null : this.status.currentTime;\n };\n Player.prototype.scrubbing = function () {\n return this.status === null ? null : this.status.scrubbing;\n };\n Player.prototype.toggleFullscreen = function () {\n var _this = this;\n // Request iframe to go fullscreen if possible, to get around user gesture requirements\n var fullscreenAPI = getFullscreenAPI();\n if (fullscreenAPI) {\n var fullscreenPromise = this.iframe[fullscreenAPI.requestFullscreen]();\n if (fullscreenPromise) {\n fullscreenPromise.then(function () {\n _this._message({ event: 'toggleFullscreen' });\n });\n }\n else {\n this._message({ event: 'toggleFullscreen' });\n }\n // Listens to when the window exits fullscreen via the 'Esc' key\n addListener(fullscreenAPI.fullscreenchange, 'MSFullscreenChange', function () {\n if (!document[fullscreenAPI.fullscreenElement]) {\n _this._message({ event: 'exitFullscreen' });\n }\n });\n addListener('message', 'onmessage', receive(function (data) {\n if (data.event === 'fullScreenChange' && data.params === false) {\n if (document[fullscreenAPI.fullscreenElement]) {\n document[fullscreenAPI.exitFullscreen]();\n }\n }\n }));\n }\n else {\n // Simply send message for iOS\n this._message({ event: 'toggleFullscreen' });\n }\n };\n Player.prototype.resetPlayer = function () {\n this._message({ event: 'resetPlayer' });\n };\n Player.prototype._message = function (options) {\n if (this.ready() !== true) {\n embed_helpers_log('Player is not ready yet! No messages can be recieved.', 'error');\n return;\n }\n send(vidyard_player_assign({}, options, { uuid: this.uuid }), \"https://\" + getPlaybackURL(), this.iframe);\n };\n Player.prototype._updateStatus = function (data) {\n if (typeof data.status === 'object') {\n this.status = data.status;\n }\n if (typeof data.metadata === 'object') {\n this.metadata = data.metadata;\n this.trigger('metadata', data.metadata);\n }\n if (this.status) {\n if (this.status.currentTime !== this._previousTime && this._callbackStore.timeupdate) {\n for (var _i = 0, _a = this._callbackStore.timeupdate; _i < _a.length; _i++) {\n var callback = _a[_i];\n callback.call(this, this.status.currentTime, this);\n }\n }\n this._previousTime = this.status.currentTime;\n }\n };\n return Player;\n}());\n/* harmony default export */ var vidyard_player = (vidyard_player_Player);\n\n// CONCATENATED MODULE: ./src/models/renderer.ts\n/*\n* Handles sweeping over the DOM and injecting all types of players\n* Effectively is the puppet master for all the embed code stuff\n*/\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar sweepDocument = function (container) {\n if (container === void 0) { container = document; }\n // Find all divs that belong to vy\n var embedLocations = getElementByClass('vidyard-player-embed', 'img', container);\n preloadFrames(embedLocations);\n toArray(embedLocations).forEach(renderPlayer);\n dispatch_ready();\n};\nvar renderPlayer = function (placeholderImg) {\n var _a = window.VidyardV4, integrations = _a.integrations, api = _a.api, players = _a.players, playerReadyListeners = _a.playerReadyListeners;\n var dataParams = new data_params(placeholderImg);\n var uuid = dataParams.uuid;\n var log = logger.setLevel(uuid);\n log(\"rendering\");\n // Cant do anything without a uuid, just skip it\n if (uuid === undefined) {\n embed_helpers_log('Embed without a UUID detected, it is impossible to insert a player without a UUID. Add \"data-uuid=some_uuid\" to the offending element.' +\n placeholderImg);\n return;\n }\n if (dataParams.rendered === 'true') {\n log(\"Already rendered\");\n return find(players, function (player) { return player.placeholder === placeholderImg; });\n }\n var container = views_container(uuid, dataParams);\n var newPlayer = new vidyard_player(container, uuid);\n placeholderImg.setAttribute('data-rendered', 'true');\n placeholderImg.parentNode.insertBefore(container, placeholderImg);\n newPlayer.placeholder = placeholderImg;\n newPlayer.container = container;\n players.push(newPlayer);\n processReadyListeners(newPlayer);\n // Inject player HTML into the dom\n if (dataParams.type === 'inline') {\n inline_player({ dataParams: dataParams, player: newPlayer });\n }\n else if (dataParams.type === 'lightbox') {\n lightbox_player({ dataParams: dataParams, player: newPlayer });\n }\n integrationsControler(newPlayer);\n seoController(newPlayer.uuid).then(function (jsonpData) {\n if (dataParams.type === 'inline') {\n backlink(newPlayer, jsonpData, dataParams.backlink && dataParams.backlink === 1);\n }\n });\n // add the player to the window.Vidyard global\n // used for progress events and some integrations\n window.Vidyard._players[newPlayer.uuid] = newPlayer;\n return newPlayer;\n};\n\n// CONCATENATED MODULE: ./src/api/destroy-player.ts\n\nfunction unsubscribeProgressEvents(player) {\n player.progressEventsUnsubscribe.forEach(function (cb) { return cb(); });\n player.progressEventsUnsubscribe = [];\n}\nfunction destroyPlayer(player) {\n var players = window.VidyardV4.players;\n if (includes(players, player)) {\n unsubscribeProgressEvents(player);\n player.off();\n player.container.parentNode.removeChild(player.container);\n player.placeholder.parentNode.removeChild(player.placeholder);\n players.splice(indexOfArray(player, players));\n }\n else {\n embed_helpers_log(\"Cannot destroy an unknown player\", 'warn');\n }\n}\n\n// CONCATENATED MODULE: ./src/api/gdpr.ts\nfunction consent(userConsent) {\n if (userConsent === undefined) {\n return;\n }\n var players = window.VidyardV4.players;\n var _loop_1 = function (player) {\n player.on('ready', function () {\n player.consentToGDPR(userConsent);\n });\n };\n for (var _i = 0, players_1 = players; _i < players_1.length; _i++) {\n var player = players_1[_i];\n _loop_1(player);\n }\n}\n// Used to determine whether or not to ask for GDPR consent on page load\n// _readyConsent does not change based on calls to the consent function to limit usage\n// to the expected use case at page load\nfunction hasConsentOnReady(callback) {\n var playersReady = 0;\n var gdpr = window.VidyardV4.api.GDPR;\n var players = window.VidyardV4.players;\n if (players.length === 0) {\n return callback(false);\n }\n if (gdpr._readyConsent !== undefined) {\n return callback(gdpr._readyConsent);\n }\n // Make sure all the players are ready before returning the consent\n for (var _i = 0, players_2 = players; _i < players_2.length; _i++) {\n var player = players_2[_i];\n player.on('ready', function () {\n if (playersReady !== players.length) {\n playersReady += 1;\n }\n if (playersReady === players.length) {\n // TODO: can't use reduce in old IE, add helper\n gdpr._readyConsent = players.reduce(function (c, p) { return p.status.consent && c; }, true);\n return callback(gdpr._readyConsent);\n }\n });\n }\n}\n\n// CONCATENATED MODULE: ./src/api/get-players-by-uuid.ts\nfunction getPlayersByUUID(uuid) {\n return window.VidyardV4.players.filter(function (player) { return player.uuid === uuid; });\n}\n/* harmony default export */ var get_players_by_uuid = (getPlayersByUUID);\n\n// CONCATENATED MODULE: ./src/api/progress-events/remove-duplicates.ts\nvar removeDuplicates = function (targetArray) {\n targetArray.sort(function (a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n });\n var i = 0;\n while (i < targetArray.length) {\n if (targetArray[i] === targetArray[i + 1]) {\n targetArray.splice(i + 1, 1);\n }\n else {\n i += 1;\n }\n }\n return targetArray;\n};\n\n// CONCATENATED MODULE: ./src/api/progress-events/setup-event-listeners.ts\nvar templates = {};\nvar listeners = {};\nfunction addTemplate(player, callback, thresholds) {\n // Prepare the listeners object when the template gets registered\n if (typeof listeners[player.uuid] !== 'object') {\n listeners[player.uuid] = {};\n }\n templates[player.uuid] = {\n callback: callback,\n thresholds: thresholds.slice().sort(function (a, b) { return b - a; }),\n };\n}\nfunction copyTemplate(player, videoIndex) {\n setup_event_listeners_addListener(player, videoIndex, templates[player.uuid].callback, templates[player.uuid].thresholds.slice());\n}\nfunction getListener(player, videoIndex) {\n // If there's no template, then there's no listeners\n if (typeof templates[player.uuid] !== 'object') {\n return undefined;\n }\n // If necessary, create the listener using the matching template\n if (typeof listeners[player.uuid][videoIndex] !== 'object') {\n copyTemplate(player, videoIndex);\n }\n return listeners[player.uuid][videoIndex];\n}\n// Adds a new listeners entry based on player/videoIndex\nfunction setup_event_listeners_addListener(player, videoIndex, callback, thresholds) {\n listeners[player.uuid][videoIndex] = {\n callback: callback,\n lastTimeUpdate: player.currentTime(),\n player: player,\n thresholds: thresholds,\n timeWatched: 0,\n };\n}\nfunction removeTemplateAndListeners(player) {\n templates[player.uuid] = undefined;\n listeners[player.uuid] = undefined;\n}\n// Updates the new listeners entry based on player/videoIndex.\n// Trigger the callback for any thresholds passed in the process.\nfunction updateTimeWatched(player, time) {\n var videoIndex = player.getCurrentVideoIndex();\n var listener = getListener(player, videoIndex);\n if (typeof listener === 'undefined'\n || typeof listener.player.metadata !== 'object'\n || listener.thresholds.length === 0) {\n return;\n }\n var deltaTime = time - listener.lastTimeUpdate;\n listener.lastTimeUpdate = time;\n // If the time change moved backwards or was > 1 second,\n // then assume the player was seeking and ignore this timeupdate\n if (deltaTime <= 0 || deltaTime > 1) {\n return;\n }\n listener.timeWatched += deltaTime;\n // Trigger the callback for any thresholds that have been passed since the last timeupdate.\n // Progress events can only be triggered once, so remove the threshold when it's hit.\n var duration = listener.player.metadata.chapters_attributes[videoIndex].video_attributes.length_in_seconds;\n var percentWatched = listener.timeWatched / duration * 100;\n while (percentWatched >= listener.thresholds[listener.thresholds.length - 1]) {\n listener.callback({\n // Deprecated. Only included for backwards compatibility\n chapter: videoIndex,\n event: listener.thresholds.pop(),\n player: player,\n videoIndex: videoIndex,\n });\n }\n}\nfunction setupEventListeners(player, callback, thresholds) {\n // Instead of creating a listener for each chapter,\n // store a template that will create the listener when needed.\n // Doing so allows progressEvents() to be registered before the player ready event is fired\n addTemplate(player, callback, thresholds);\n var onTimeUpdate = function (time) { return updateTimeWatched(player, time); };\n player.on('timeupdate', onTimeUpdate);\n return {\n player: player,\n removeEventListeners: function () {\n player.off('timeupdate', onTimeUpdate);\n removeTemplateAndListeners(player);\n },\n };\n}\n\n// CONCATENATED MODULE: ./src/api/progress-events-wrapper.ts\n\n\n\n// Initialize analytics for each player when called\nfunction progressEvents(callback, thresholds, singlePlayerScope) {\n var _a;\n if (thresholds === void 0) { thresholds = [1, 25, 50, 75, 90]; }\n var removeEventListeners = [];\n var players = singlePlayerScope\n ? (_a = {}, _a[singlePlayerScope.uuid] = singlePlayerScope, _a) : getPlayers();\n // Sort and unique the array in case we are passed an unusual array of thresholds\n var dedupedThresholds = removeDuplicates(thresholds);\n var _loop_1 = function (uuid) {\n if (players.hasOwnProperty(uuid) && uuid.length > 0 && players[uuid] !== '') {\n // set the listener\n var removeCb = setupEventListeners(players[uuid], callback, dedupedThresholds);\n removeEventListeners.push(removeCb);\n }\n else {\n embed_helpers_log(function () {\n return console.error(\"Could not attach Progress Events to player \" + uuid + \", make sure to load the Vidyard Player API\");\n });\n }\n };\n for (var uuid in players) {\n _loop_1(uuid);\n }\n if (removeEventListeners.length === 0) {\n embed_helpers_log(function () {\n return console.warn('No Vidyard Players found. (include this script below player embed codes)');\n });\n }\n return removeEventListeners;\n}\nfunction getPlayers() {\n try {\n return window.Vidyard.players();\n }\n catch (e) {\n embed_helpers_log(function () {\n return console.error('The Vidyard Player API must be loaded before this script can execute');\n });\n return {};\n }\n}\nfunction progressEventsWrapper() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var subscriptions = progressEvents.apply(void 0, args);\n Object.keys(subscriptions).forEach(function (k) {\n var _a = subscriptions[k], player = _a.player, removeEventListeners = _a.removeEventListeners;\n if (player.progressEventsUnsubscribe) {\n player.progressEventsUnsubscribe.push(removeEventListeners);\n }\n });\n}\n\n// CONCATENATED MODULE: ./src/api/render-player.ts\n\n\n\n\n\n\n// TODO: change Promise to Promise once we have a proper type for it\nvar renderPlayerFromPlaceholder = function (image) {\n logger.setLevel('placeholder')('rendering player from placeholder image');\n var player = renderPlayer(image);\n // resolve when the player is ready, unless the player is a lightbox\n return new promise(function (res) {\n if (player.showLightbox) {\n res(player);\n }\n else {\n player.on('ready', function () { return res(player); });\n }\n });\n};\nfunction render_player_renderPlayer(options) {\n // TODO: instead of creating an image make render.renderPlayer work with an options objects\n var placeholder = options instanceof HTMLImageElement ? options : createPlaceholder(options);\n return loadPlaceholder(placeholder)\n .then(renderPlayerFromPlaceholder)\n .catch(function (e) { return embed_helpers_log(messages.errors.placeholder, 'warn'); });\n}\n\n// CONCATENATED MODULE: ./src/api/vidyard-v4-global.ts\n\n\n\n\n\n\n\n\n\n\nvar vidyardV4Global = {\n _debug: api_debug,\n api: {\n GDPR: { consent: consent, hasConsentOnReady: hasConsentOnReady },\n addReadyListener: addReadyListener,\n destroyPlayer: destroyPlayer,\n getPlayerMetadata: getPlayerMetadata,\n getPlayersByUUID: get_players_by_uuid,\n progressEvents: progressEventsWrapper,\n renderDOMPlayers: sweepDocument,\n renderPlayer: render_player_renderPlayer,\n },\n integrations: new IntegrationsWatcher(),\n jsonp: {},\n // Just ensure that the undefined uuid option is always present\n playerReadyListeners: { undefined: [] },\n players: [],\n preloadLinks: [],\n};\n/* harmony default export */ var vidyard_v4_global = (vidyardV4Global);\n\n// CONCATENATED MODULE: ./src/api/vidyard-global.ts\nvar vidyardGlobal = {\n _players: {},\n players: function () {\n return window.VidyardV4.players.reduce(function (acc, player) {\n acc[player.uuid] = player;\n return acc;\n }, {});\n },\n};\n/* harmony default export */ var vidyard_global = (vidyardGlobal);\n\n// EXTERNAL MODULE: ./src/css/style.css\nvar css_style = __webpack_require__(12);\n\n// EXTERNAL MODULE: /vidyard/vidyard-player-sdk/node_modules/error-stack-parser/error-stack-parser.js\nvar error_stack_parser = __webpack_require__(2);\n\n// CONCATENATED MODULE: ./src/utils/error-report.ts\n\n\n// based on the Rollbar API\n// https://docs.rollbar.com/v1.0.0/reference#section-data-format\nfunction createErrorReport(_a) {\n var error = _a.error, location = _a.location, message = _a.message, navigator = _a.navigator, timeStamp = _a.timeStamp, type = _a.type, vyGlobal = _a.vyGlobal;\n return {\n data: {\n // Required: body\n // The main data being sent. It can either be a message, an exception, or a crash report.\n body: {\n // If this payload is a single exception, use \"trace\"\n // A list of stack frames, ordered such that the most recent call is last in the list.\n trace: {\n // Required: exception\n // An object describing the exception instance.\n exception: {\n // Required: class\n // The exception class name.\n class: error.name,\n // Optional: message\n // The exception message, as a string\n message: message,\n },\n // Each frame is an object.\n frames: error_stack_parser[\"parse\"](error).map(function (frame) { return ({\n // Optional: code\n // The line of code\n code: frame.source,\n // Optional: colno\n // The column number as an integer\n colno: frame.columnNumber,\n // Required: filename\n // The filename including its full path.\n filename: frame.fileName,\n // Optional: colno\n // The column number as an integer\n lineno: frame.lineNumber,\n // Optional: method\n // The method or function name\n method: frame.functionName,\n }); }),\n },\n },\n // Optional: client\n // Data about the client device this event occurred on.\n // As there can be multiple client environments for a given event (i.e. Flash running inside\n // an HTML page), data should be namespaced by platform.\n client: {\n // Can contain any arbitrary keys. Rollbar understands the following:\n // Optional: cpu\n // A string up to 255 characters\n cpu: navigator.platform,\n javascript: {\n // Optional: browser\n // The user agent string\n browser: navigator.userAgent,\n // Optional: guess_uncaught_frames\n // Set to true to enable frame guessing\n // See the \"Source Maps\" guide for more details.\n guess_uncaught_frames: true,\n // Optional: source_map_enabled\n // Set to true to enable source map deobfuscation\n // See the \"Source Maps\" guide for more details.\n source_map_enabled: true,\n },\n },\n // Optional: code_version\n // A string, up to 40 characters, describing the version of the application code\n // Rollbar understands these formats:\n // - semantic version (i.e. \"2.1.12\")\n // - integer (i.e. \"45\")\n // - git SHA (i.e. \"3da541559918a808c2402bba5012f6c60b27661c\")\n code_version: VERSION,\n // Optional: custom\n // Any arbitrary metadata you want to send. \"custom\" itself should be an object.\n custom: {\n jsonpRequests: Object.keys(vyGlobal.jsonp),\n playbackUrlOverride: window.VIDYARD_PLAYBACK_URL,\n players: vyGlobal.players.map(function (player) { return ({\n iframe: player.iframe ? { src: player.iframe.src } : {},\n metadata: player.metadata,\n org: player.org\n ? { id: player.org.id, foundIntegrations: player.org.foundIntegrations }\n : {},\n uuid: player.uuid,\n }); }),\n preloadLinks: vyGlobal.preloadLinks,\n },\n // Required: environment\n // The name of the environment in which this occurrence was seen.\n // A string up to 255 characters. For best results, use \"production\" or \"prod\" for your\n // production environment.\n // You don't need to configure anything in the Rollbar UI for new environment names;\n // we'll detect them automatically.\n environment: getPlaybackURL(),\n // Optional: fingerprint\n // A string controlling how this occurrence should be grouped. Occurrences with the same\n // fingerprint are grouped together. See the \"Grouping\" guide for more information.\n // Should be a string up to 40 characters long; if longer than 40 characters, we'll use its SHA1 hash.\n // If omitted, we'll determine this on the backend.\n fingerprint: error.name,\n // Optional: language\n // The name of the language your code is written in.\n // This can affect the order of the frames in the stack trace. The following languages set the most\n // recent call first - 'ruby', 'javascript', 'php', 'java', 'objective-c', 'lua'\n // It will also change the way the individual frames are displayed, with what is most consistent with\n // users of the language.\n language: 'javascript',\n // Optional: level\n // The severity level. One of: \"critical\", \"error\", \"warning\", \"info\", \"debug\"\n // Defaults to \"error\" for exceptions and \"info\" for messages.\n // The level of the *first* occurrence of an item is used as the item's level.\n level: type,\n // Optional: platform\n // The platform on which this occurred. Meaningful platform names:\n // \"browser\", \"android\", \"ios\", \"flash\", \"client\", \"heroku\", \"google-app-engine\"\n // If this is a client-side event, be sure to specify the platform and use a post_client_item access token.\n platform: 'browser',\n // Optional: request\n // Data about the request this event occurred in.\n // Can contain any arbitrary keys. Rollbar understands the following:\n // query_string: the raw query string\n // url: full URL where this event occurred\n request: { query_string: location.search, url: location.href },\n // Optional: timestamp\n // When this occurred, as a unix timestamp.\n timestamp: timeStamp,\n },\n };\n}\n\n// CONCATENATED MODULE: ./src/utils/error-logger.ts\n\n\n\nvar vyError = function (source) {\n if (source === void 0) { source = ''; }\n return source.match(ERROR_ORIGIN_RE);\n};\nvar errorHandler = function (_a) {\n var error = _a.error, filename = _a.filename, message = _a.message, timeStamp = _a.timeStamp, type = _a.type;\n if (vyError(filename)) {\n var location_1 = window.location, navigator_1 = window.navigator, vyGlobal = window.VidyardV4;\n var payload = createErrorReport({\n error: error,\n location: location_1,\n message: message,\n navigator: navigator_1,\n timeStamp: timeStamp,\n type: type,\n vyGlobal: vyGlobal,\n });\n xhrRequest({ endpoint: getErrorURL(), method: 'POST', payload: payload }).then(function (res) { return embed_helpers_log(\"Error logged \" + res); }, function (e) { return embed_helpers_log(\"Error log failed \" + e); });\n }\n};\nfunction logErrors() {\n addListener('error', 'onerror', errorHandler, window);\n addListener('unhandledrejection', '', function (e) {\n var error = e.reason, timeStamp = e.timeStamp, type = e.type;\n if (e.reason instanceof Error && vyError(error.stack)) {\n // prevent errors in the console\n e.preventDefault();\n errorHandler({\n error: error,\n // PromiseRejectionEvents do not have a filename field\n // the workaround is to look for the v4.js script in the stack trace\n filename: error.stack,\n message: error.message,\n timeStamp: timeStamp,\n type: type,\n });\n }\n });\n}\n\n// CONCATENATED MODULE: ./src/index.module.ts\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"_debug\", function() { return _debug; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"api\", function() { return index_module_api; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"players\", function() { return index_module_players; });\n\n\n\n\n\n// --- Runs on script execution ---\nlogErrors();\n// Bind legacy globals\nwindow.VidyardV4 = window.VidyardV4 || vidyard_v4_global;\nwindow.Vidyard = window.Vidyard || vidyard_global;\ndispatch_ready();\nvar _debug = vidyard_v4_global._debug, index_module_api = vidyard_v4_global.api, index_module_players = vidyard_v4_global.players;\n// Export the public API\n\n/* harmony default export */ var index_module = __webpack_exports__[\"default\"] = (vidyard_v4_global);\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = __webpack_require__(8);\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of