{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/spinner/spinner.js","webpack:///./node_modules/core-js/modules/es.json.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./src/views/site/channels/play/Play.vue?ef73","webpack:///./src/views/site/channels/play/PlayerBitmovin.vue?e3d8","webpack:///src/views/site/channels/play/PlayerBitmovin.vue","webpack:///./src/views/site/channels/play/PlayerBitmovin.vue?add3","webpack:///./src/views/site/channels/play/PlayerBitmovin.vue","webpack:///./src/views/site/channels/play/PlayerJs.vue?43ca","webpack:///./src/views/site/channels/play/useCast.js","webpack:///src/views/site/channels/play/PlayerJs.vue","webpack:///./src/views/site/channels/play/PlayerJs.vue?50c8","webpack:///./src/views/site/channels/play/PlayerJs.vue","webpack:///src/views/site/channels/play/Play.vue","webpack:///./src/views/site/channels/play/Play.vue?b83d","webpack:///./src/views/site/channels/play/Play.vue","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/core-js/modules/es.math.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./src/views/site/channels/play/PlayerJs.vue?a81c","webpack:///./node_modules/bootstrap-vue/esm/components/alert/alert.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.string.link.js","webpack:///./node_modules/bootstrap-vue/esm/components/overlay/overlay.js","webpack:///./node_modules/bootstrap-vue/esm/components/layout/row.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack:///./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack:///./src/views/site/channels/play/PlayerBitmovin.vue?5e7c"],"names":["_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","props","label","role","small","tag","type","variant","BSpinner","extend","name","functional","render","h","_ref","_class","data","slots","scopedSlots","$slots","$scopedSlots","$label","staticClass","attrs","class","concat","global","setToStringTag","JSON","$","setPrototypeOf","target","stat","_vm","this","_h","$createElement","_c","_self","show","on","$event","$router","go","_v","opPlayer","canal","infoPlayer","_e","msn","_s","userData","fullName","msn_pago","params","id","idcanal","staticRenderFns","_u","fn","proxy","components","BOverlay","BIconWatch","default","require","setup","playerConfig","container","player","chanel","channels","created","console","log","getChannels","loadScript","methods","_this","bitmovin","document","createElement","setAttribute","head","appendChild","setTimeout","loadPlayer","atob","playback","muted","autoplay","timeShift","cast","enable","remotecontrol","live","lowLatency","targetLatency","catchup","playbackRateThreshold","seekThreshold","playbackRate","fallback","LicensingConfig","delay","skin","screenLogoImage","getElementById","Player","switchChannel","channelID","event","pause","title","nombre","hls","link","sourceConfig","description","poster","load","then","catch","reason","setPara","_this2","querySelector","style","display","select","addEventListener","_this3","$http","get","estado","response","forEach","item","op_live","path","error","component","useCast","MEDIA_SOURCE_ROOT","PROGRESS_BAR_WIDTH","TIMER_STEP","DEFAULT_VOLUME","FULL_VOLUME_HEIGHT","PLAYER_STATE","IDLE","LOADING","LOADED","PLAYING","PAUSED","STOPPED","ERROR","CastPlayer","playerHandler","PlayerHandler","playerState","remotePlayer","remotePlayerController","currentMediaIndex","currentMediaTime","currentMediaDuration","timer","mediaContents","fullscreen","incrementMediaTimeHandler","incrementMediaTime","bind","setupLocalPlayer","prototype","initializeCastPlayer","options","receiverApplicationId","chrome","media","DEFAULT_MEDIA_RECEIVER_APP_ID","autoJoinPolicy","AutoJoinPolicy","ORIGIN_SCOPED","androidReceiverCompatible","framework","CastContext","getInstance","setOptions","credentialsData","CredentialsData","setLaunchCredentialsData","RemotePlayer","RemotePlayerController","RemotePlayerEventType","IS_CONNECTED_CHANGED","switchPlayer","stopProgressTimer","resetVolumeSlider","stop","isConnected","setupRemotePlayer","castPlayer","setTarget","play","updateDisplayMessage","mediaIndex","innerHTML","loaded","getMediaDuration","updateMediaDuration","seekTo","startProgressTimer","getCurrentMediaTime","setVolume","volumeSliderPosition","mute","unMute","isMuted","time","localPlayer","onMediaLoadedLocally","playerTarget","vi","src","currentTime","duration","volume","p","height","marginTop","showFullscreenButton","castSession","getCurrentSession","IS_PAUSED_CHANGED","isPaused","IS_MUTED_CHANGED","VOLUME_LEVEL_CHANGED","newVolume","volumeLevel","playOrPause","mediaInfo","MediaInfo","metadata","GenericMediaMetadata","metadataType","MetadataType","GENERIC","images","url","request","LoadRequest","credentials","atvCredentials","loadMedia","errorCode","getErrorMessage","getCastDevice","friendlyName","currentVolume","vScale","pos","setVolumeLevel","muteOrUnmute","seek","hideFullscreenButton","selectMedia","pi","width","marginLeft","seekMedia","parseInt","offsetX","currentTarget","curr","pp","pw","mouseEvent","offsetY","clientHeight","setInterval","clearInterval","updateProgressBarByTimer","endPlayback","isNaN","Math","floor","getDurationString","durationInSec","durationString","durationInMin","durationInHour","requestFullScreen","element","requestMethod","call","cancelFullScreen","fullscreenChangeHandler","showMediaControl","opacity","hideMediaControl","showVolumeSlider","hideVolumeSlider","volumeTrackHeight","defaultVolumeSliderHeight","initializeUI","draggable","addVideoThumbs","mediaJSON","ni","newdiv","divIdName","i","length","code","ErrorCode","API_NOT_INITIALIZED","CANCEL","CHANNEL_ERROR","EXTENSION_MISSING","INVALID_PARAMETER","RECEIVER_UNAVAILABLE","SESSION_ERROR","TIMEOUT","categories","videos","sources","subtitle","thumb","BRow","BCol","canales","playList","getCanales","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","idcanaltipo","oplive","push","file","path_play","script","async","Playerjs","castJs","_useCast","window","isAvailable","BButton","BAlert","BCard","PlayerBitmovin","PlayerJs","parse","localStorage","getItem","acceso","router","currentRoute","idusuario","info","op_player","addTrack","_error$response$data$","$swal","icon","customClass","confirmButton","buttonsStyling","result","$gtag","event_category","event_label","asyncGeneratorStep","n","t","e","r","o","a","c","u","done","Promise","resolve","arguments","apply","_next","_throw","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","FAILS_ON_PRIMITIVES","forced","sham","getPrototypeOf","it","_watch","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","source","getOwnPropertyDescriptors","defineProperties","_makeModelMixin","defaultValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","parseCountDown","parseShow","dismissLabel","dismissible","fade","mixins","countDown","localShow","watch","newValue","clearCountDownInterval","$emit","$_countDownTimeout","$nextTick","$_filterTimer","beforeDestroy","dismiss","clearTimeout","$alert","$dismissButton","click","normalizeSlot","noFade","requireObjectCoercible","quot","module","exports","string","attribute","S","String","p1","replace","defineWellKnownSymbol","createHTML","forcedStringHTMLMethod","proto","POSITION_COVER","top","left","bottom","right","bgColor","blur","fixed","noCenter","noWrap","number","overlayTag","rounded","spinnerSmall","spinnerType","spinnerVariant","wrapTag","zIndex","computed","computedRounded","computedVariant","slotScope","defaultOverlayFn","$overlay","$background","backgroundColor","backdropFilter","$content","transform","appear","COMMON_ALIGNMENT","computeRowColsClass","breakpoint","cols","join","computeRowColsBreakpoint","rowColsPropList","generateProps","rowColsProps","reduce","alignContent","alignH","alignV","noGutters","_classList$push","children","classList","METHOD_NAME","test","toLowerCase","split","hasOwnProperty","Symbol","iterator","asyncIterator","toStringTag","define","Generator","create","Context","makeInvokeMethod","tryCatch","arg","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","d","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","__await","callInvokeWithMethodAndArg","Error","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","__proto__","awrap","reverse","pop","charAt","slice","rval","handle","complete","finish","delegateYield"],"mappings":"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","file":"js/chunk-3f530330.7ee86b38.js","sourcesContent":["function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_SPINNER } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_LABEL } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n label: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING, 'status'),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'span'),\n type: makeProp(PROP_TYPE_STRING, 'border'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_SPINNER); // --- Main component ---\n// @vue/component\n\nexport var BSpinner = /*#__PURE__*/Vue.extend({\n name: NAME_SPINNER,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots;\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n var $label = normalizeSlot(SLOT_NAME_LABEL, {}, $scopedSlots, $slots) || props.label;\n\n if ($label) {\n $label = h('span', {\n staticClass: 'sr-only'\n }, $label);\n }\n\n return h(props.tag, mergeData(data, {\n attrs: {\n role: $label ? props.role || 'status' : null,\n 'aria-hidden': $label ? null : 'true'\n },\n class: (_class = {}, _defineProperty(_class, \"spinner-\".concat(props.type), props.type), _defineProperty(_class, \"spinner-\".concat(props.type, \"-sm\"), props.small), _defineProperty(_class, \"text-\".concat(props.variant), props.variant), _class)\n }), [$label || h()]);\n }\n});","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-overlay',{staticClass:\"pt-20\",attrs:{\"show\":_vm.show,\"rounded\":\"sm\"}},[(_vm.acceso)?_c('div',[_c('b-card',{staticClass:\"position-static\",attrs:{\"sub-title\":\"\"}},[_c('div',[_c('b-row',[_c('b-col',{attrs:{\"md\":\"12\",\"sm\":\"12\"}},[_c('b-button',{staticClass:\"mb-1 btn-sm-block\",attrs:{\"variant\":\"secondary\",\"pill\":\"\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":\"ArrowLeftIcon\"}}),_vm._v(\" Volver \")],1)],1)],1)],1),(_vm.opPlayer == 1)?_c('div',[_c('player-bitmovin',{attrs:{\"canal\":_vm.canal,\"info-player\":_vm.infoPlayer}})],1):(_vm.opPlayer == 2)?_c('div',[_c('player-js',{attrs:{\"canal\":_vm.canal,\"info-player\":_vm.infoPlayer}})],1):_vm._e()])],1):_c('div',[_c('b-alert',{staticClass:\"mt-500\",attrs:{\"variant\":\"warning\",\"show\":true}},[(_vm.msn != '')?_c('div',{staticClass:\"alert-body\"},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":\"InfoIcon\"}}),_vm._v(\" Estimado(a) \"+_vm._s(_vm.userData.fullName)+\", \"+_vm._s(_vm.msn)+\" \"),(_vm.msn_pago != '')?_c('strong',[_vm._v(\" \"+_vm._s(_vm.msn_pago)+\" \"),_c('b-button',{staticClass:\"btn\",attrs:{\"variant\":\"warning\",\"to\":{\n name: 'canal-pago',\n params: { id: _vm.idcanal }\n }}},[_c('feather-icon',{staticClass:\"mr-50\",attrs:{\"icon\":\"ShoppingCartIcon\"}}),_c('span',[_vm._v(\"COMPRAR\")])],1)],1):_vm._e()],1):_vm._e()])],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-overlay',{attrs:{\"show\":_vm.show,\"rounded\":\"sm\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('div',{staticClass:\"h2 mb-0\"},[_c('b-icon-watch',{attrs:{\"font-scale\":\"3\",\"animation\":\"cylon\"}})],1),_c('h2',{staticClass:\"text-dark\"},[_vm._v(\"Cargando ...\")])])]},proxy:true}])},[_c('div',{attrs:{\"id\":\"my-player\"}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerBitmovin.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerBitmovin.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PlayerBitmovin.vue?vue&type=template&id=27b0a297&scoped=true\"\nimport script from \"./PlayerBitmovin.vue?vue&type=script&lang=js\"\nexport * from \"./PlayerBitmovin.vue?vue&type=script&lang=js\"\nimport style0 from \"./PlayerBitmovin.vue?vue&type=style&index=0&id=27b0a297&prod&lang=css&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"27b0a297\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-col',{staticClass:\"tt-video\",attrs:{\"md\":\"12\",\"align\":\"center\"}},[_c('b-overlay',{attrs:{\"show\":_vm.show,\"rounded\":\"sm\"},scopedSlots:_vm._u([{key:\"overlay\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_c('div',{staticClass:\"h2 mb-0\"},[_c('b-icon-watch',{attrs:{\"font-scale\":\"3\",\"animation\":\"cylon\"}})],1),_c('h2',{staticClass:\"text-dark\"},[_vm._v(\"Cargando ...\")])])]},proxy:true}])},[_c('div',{attrs:{\"id\":\"my-player\"}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Copyright 2021 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\"use strict\";\n\nexport const useCast = () => {\n /**\n * Media source root URL\n * @const\n */\n var MEDIA_SOURCE_ROOT =\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/\";\n\n /**\n * Width of progress bar in pixel\n * @const\n */\n var PROGRESS_BAR_WIDTH = 600;\n\n /** @const {number} Time in milliseconds for minimal progress update */\n var TIMER_STEP = 1000;\n\n /** @const {number} Cast volume upon initial connection */\n var DEFAULT_VOLUME = 0.5;\n\n /** @const {number} Height, in pixels, of volume bar */\n var FULL_VOLUME_HEIGHT = 100;\n\n /**\n * Constants of states for media playback\n * @enum {string}\n */\n var PLAYER_STATE = {\n IDLE: \"IDLE\",\n LOADING: \"LOADING\",\n LOADED: \"LOADED\",\n PLAYING: \"PLAYING\",\n PAUSED: \"PAUSED\",\n STOPPED: \"STOPPED\",\n ERROR: \"ERROR\"\n };\n\n /**\n * Cast player object\n * Main variables:\n * - PlayerHandler object for handling media playback\n * - Cast player variables for controlling Cast mode media playback\n * - Current media variables for transition between Cast and local modes\n * @struct @constructor\n */\n var CastPlayer = function() {\n /** @type {PlayerHandler} Delegation proxy for media playback */\n this.playerHandler = new PlayerHandler(this);\n\n /** @type {PLAYER_STATE} A state for media playback */\n this.playerState = PLAYER_STATE.IDLE;\n\n /* Cast player variables */\n /** @type {cast.framework.RemotePlayer} */\n this.remotePlayer = null;\n /** @type {cast.framework.RemotePlayerController} */\n this.remotePlayerController = null;\n\n /* Current media variables */\n /** @type {number} A number for current media index */\n this.currentMediaIndex = 0;\n /** @type {number} A number for current media time */\n this.currentMediaTime = 0;\n /** @type {number} A number for current media duration */\n this.currentMediaDuration = -1;\n /** @type {?number} A timer for tracking progress of media */\n this.timer = null;\n\n /** @type {Object} media contents from JSON */\n this.mediaContents = null;\n\n /** @type {boolean} Fullscreen mode on/off */\n this.fullscreen = false;\n\n /** @type {function()} */\n this.incrementMediaTimeHandler = this.incrementMediaTime.bind(this);\n\n this.setupLocalPlayer();\n //this.addVideoThumbs();\n //this.initializeUI();\n };\n\n CastPlayer.prototype.initializeCastPlayer = function() {\n var options = {};\n\n // Set the receiver application ID to your own (created in the\n // Google Cast Developer Console), or optionally\n // use the chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID\n options.receiverApplicationId = chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID;\n\n // Auto join policy can be one of the following three:\n // ORIGIN_SCOPED - Auto connect from same appId and page origin\n // TAB_AND_ORIGIN_SCOPED - Auto connect from same appId, page origin, and tab\n // PAGE_SCOPED - No auto connect\n options.autoJoinPolicy = chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED;\n options.androidReceiverCompatible = false;\n\n cast.framework.CastContext.getInstance().setOptions(options);\n\n let credentialsData = new chrome.cast.CredentialsData(\n '{\"userId\": \"abc\"}'\n );\n cast.framework.CastContext.getInstance().setLaunchCredentialsData(\n credentialsData\n );\n\n this.remotePlayer = new cast.framework.RemotePlayer();\n this.remotePlayerController = new cast.framework.RemotePlayerController(\n this.remotePlayer\n );\n this.remotePlayerController.addEventListener(\n cast.framework.RemotePlayerEventType.IS_CONNECTED_CHANGED,\n this.switchPlayer.bind(this)\n );\n };\n\n /*\n * PlayerHandler and setup functions\n */\n\n CastPlayer.prototype.switchPlayer = function() {\n this.stopProgressTimer();\n this.resetVolumeSlider();\n this.playerHandler.stop();\n this.playerState = PLAYER_STATE.IDLE;\n if (cast && cast.framework) {\n if (this.remotePlayer.isConnected) {\n this.setupRemotePlayer();\n return;\n }\n }\n this.setupLocalPlayer();\n };\n\n /**\n * PlayerHandler\n *\n * This is a handler through which the application will interact\n * with both the RemotePlayer and LocalPlayer. Combining these two into\n * one interface is one approach to the dual-player nature of a Cast\n * Chrome application. Otherwise, the state of the RemotePlayer can be\n * queried at any time to decide whether to interact with the local\n * or remote players.\n *\n * To set the player used, implement the following methods for a target object\n * and call setTarget(target).\n *\n * Methods to implement:\n * - play()\n * - pause()\n * - stop()\n * - seekTo(time)\n * - load(mediaIndex)\n * - getMediaDuration()\n * - getCurrentMediaTime()\n * - setVolume(volumeSliderPosition)\n * - mute()\n * - unMute()\n * - isMuted()\n * - updateDisplayMessage()\n */\n var PlayerHandler = function(castPlayer) {\n this.target = {};\n\n this.setTarget = function(target) {\n this.target = target;\n };\n\n this.play = function() {\n if (\n castPlayer.playerState !== PLAYER_STATE.PLAYING &&\n castPlayer.playerState !== PLAYER_STATE.PAUSED &&\n castPlayer.playerState !== PLAYER_STATE.LOADED\n ) {\n this.load(castPlayer.currentMediaIndex);\n return;\n }\n\n this.target.play();\n castPlayer.playerState = PLAYER_STATE.PLAYING;\n document.getElementById(\"play\").style.display = \"none\";\n document.getElementById(\"pause\").style.display = \"block\";\n this.updateDisplayMessage();\n };\n\n this.pause = function() {\n if (castPlayer.playerState !== PLAYER_STATE.PLAYING) {\n return;\n }\n\n this.target.pause();\n castPlayer.playerState = PLAYER_STATE.PAUSED;\n document.getElementById(\"play\").style.display = \"block\";\n document.getElementById(\"pause\").style.display = \"none\";\n this.updateDisplayMessage();\n };\n\n this.stop = function() {\n this.pause();\n castPlayer.playerState = PLAYER_STATE.STOPPED;\n this.updateDisplayMessage();\n };\n\n this.load = function(mediaIndex) {\n castPlayer.playerState = PLAYER_STATE.LOADING;\n\n document.getElementById(\"media_title\").innerHTML =\n castPlayer.mediaContents[castPlayer.currentMediaIndex][\"title\"];\n document.getElementById(\"media_subtitle\").innerHTML =\n castPlayer.mediaContents[castPlayer.currentMediaIndex][\n \"subtitle\"\n ];\n document.getElementById(\"media_desc\").innerHTML =\n castPlayer.mediaContents[castPlayer.currentMediaIndex][\n \"description\"\n ];\n\n this.target.load(mediaIndex);\n this.updateDisplayMessage();\n };\n\n this.loaded = function() {\n castPlayer.currentMediaDuration = this.getMediaDuration();\n castPlayer.updateMediaDuration();\n castPlayer.playerState = PLAYER_STATE.LOADED;\n if (castPlayer.currentMediaTime > 0) {\n this.seekTo(castPlayer.currentMediaTime);\n }\n this.play();\n castPlayer.startProgressTimer();\n this.updateDisplayMessage();\n };\n\n this.getCurrentMediaTime = function() {\n return this.target.getCurrentMediaTime();\n };\n\n this.getMediaDuration = function() {\n return this.target.getMediaDuration();\n };\n\n this.updateDisplayMessage = function() {\n this.target.updateDisplayMessage();\n };\n this.setVolume = function(volumeSliderPosition) {\n this.target.setVolume(volumeSliderPosition);\n };\n\n this.mute = function() {\n this.target.mute();\n document.getElementById(\"audio_on\").style.display = \"none\";\n document.getElementById(\"audio_off\").style.display = \"block\";\n };\n\n this.unMute = function() {\n this.target.unMute();\n document.getElementById(\"audio_on\").style.display = \"block\";\n document.getElementById(\"audio_off\").style.display = \"none\";\n };\n\n this.isMuted = function() {\n return this.target.isMuted();\n };\n\n this.seekTo = function(time) {\n this.target.seekTo(time);\n this.updateDisplayMessage();\n };\n };\n\n /**\n * Set the PlayerHandler target to use the video-element player\n */\n CastPlayer.prototype.setupLocalPlayer = function() {\n var localPlayer = document.getElementById(\"my-player\");\n localPlayer.addEventListener(\n \"loadeddata\",\n this.onMediaLoadedLocally.bind(this)\n );\n\n // This object will implement PlayerHandler callbacks with localPlayer\n var playerTarget = {};\n\n playerTarget.play = function() {\n localPlayer.play();\n\n var vi = document.getElementById(\"video_image\");\n vi.style.display = \"none\";\n localPlayer.style.display = \"block\";\n };\n\n playerTarget.pause = function() {\n localPlayer.pause();\n };\n\n playerTarget.stop = function() {\n localPlayer.stop();\n };\n\n playerTarget.load = function(mediaIndex) {\n localPlayer.src = this.mediaContents[mediaIndex][\"sources\"][0];\n localPlayer.load();\n }.bind(this);\n\n playerTarget.getCurrentMediaTime = function() {\n return localPlayer.currentTime;\n };\n\n playerTarget.getMediaDuration = function() {\n return localPlayer.duration;\n };\n\n playerTarget.updateDisplayMessage = function() {\n document.getElementById(\"playerstate\").style.display = \"none\";\n document.getElementById(\"playerstatebg\").style.display = \"none\";\n document.getElementById(\"video_image_overlay\").style.display =\n \"none\";\n };\n\n playerTarget.setVolume = function(volumeSliderPosition) {\n localPlayer.volume =\n volumeSliderPosition < FULL_VOLUME_HEIGHT\n ? volumeSliderPosition / FULL_VOLUME_HEIGHT\n : 1;\n var p = document.getElementById(\"audio_bg_level\");\n p.style.height = volumeSliderPosition + \"px\";\n p.style.marginTop = -volumeSliderPosition + \"px\";\n };\n\n playerTarget.mute = function() {\n localPlayer.muted = true;\n };\n\n playerTarget.unMute = function() {\n localPlayer.muted = false;\n };\n\n playerTarget.isMuted = function() {\n return localPlayer.muted;\n };\n\n playerTarget.seekTo = function(time) {\n localPlayer.currentTime = time;\n };\n\n this.playerHandler.setTarget(playerTarget);\n\n this.playerHandler.setVolume(DEFAULT_VOLUME * FULL_VOLUME_HEIGHT);\n\n this.showFullscreenButton();\n\n if (this.currentMediaTime > 0) {\n this.playerHandler.play();\n }\n };\n\n /**\n * Set the PlayerHandler target to use the remote player\n */\n CastPlayer.prototype.setupRemotePlayer = function() {\n var castSession = cast.framework.CastContext.getInstance().getCurrentSession();\n\n // Add event listeners for player changes which may occur outside sender app\n this.remotePlayerController.addEventListener(\n cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED,\n function() {\n if (this.remotePlayer.isPaused) {\n this.playerHandler.pause();\n } else {\n this.playerHandler.play();\n }\n }.bind(this)\n );\n\n this.remotePlayerController.addEventListener(\n cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED,\n function() {\n if (this.remotePlayer.isMuted) {\n this.playerHandler.mute();\n } else {\n this.playerHandler.unMute();\n }\n }.bind(this)\n );\n\n this.remotePlayerController.addEventListener(\n cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED,\n function() {\n var newVolume =\n this.remotePlayer.volumeLevel * FULL_VOLUME_HEIGHT;\n var p = document.getElementById(\"audio_bg_level\");\n p.style.height = newVolume + \"px\";\n p.style.marginTop = -newVolume + \"px\";\n }.bind(this)\n );\n\n // This object will implement PlayerHandler callbacks with\n // remotePlayerController, and makes necessary UI updates specific\n // to remote playback\n var playerTarget = {};\n\n playerTarget.play = function() {\n if (this.remotePlayer.isPaused) {\n this.remotePlayerController.playOrPause();\n }\n\n var vi = document.getElementById(\"video_image\");\n vi.style.display = \"block\";\n var localPlayer = document.getElementById(\"my-player\");\n localPlayer.style.display = \"none\";\n }.bind(this);\n\n playerTarget.pause = function() {\n if (!this.remotePlayer.isPaused) {\n this.remotePlayerController.playOrPause();\n }\n }.bind(this);\n\n playerTarget.stop = function() {\n this.remotePlayerController.stop();\n }.bind(this);\n\n playerTarget.load = function(mediaIndex) {\n console.log(\"Loading...\" + this.mediaContents[mediaIndex][\"title\"]);\n var mediaInfo = new chrome.cast.media.MediaInfo(\n this.mediaContents[mediaIndex][\"sources\"][0],\n \"video/mp4\"\n );\n\n mediaInfo.metadata = new chrome.cast.media.GenericMediaMetadata();\n mediaInfo.metadata.metadataType =\n chrome.cast.media.MetadataType.GENERIC;\n mediaInfo.metadata.title = this.mediaContents[mediaIndex][\"title\"];\n mediaInfo.metadata.images = [\n {\n url:\n MEDIA_SOURCE_ROOT +\n this.mediaContents[mediaIndex][\"thumb\"]\n }\n ];\n\n var request = new chrome.cast.media.LoadRequest(mediaInfo);\n request.credentials = \"user-credentials\";\n request.atvCredentials = \"atv-user-credentials\";\n castSession.loadMedia(request).then(\n this.playerHandler.loaded.bind(this.playerHandler),\n function(errorCode) {\n this.playerState = PLAYER_STATE.ERROR;\n console.log(\n \"Remote media load error: \" +\n CastPlayer.getErrorMessage(errorCode)\n );\n }.bind(this)\n );\n }.bind(this);\n\n playerTarget.getCurrentMediaTime = function() {\n return this.remotePlayer.currentTime;\n }.bind(this);\n\n playerTarget.getMediaDuration = function() {\n return this.remotePlayer.duration;\n }.bind(this);\n\n playerTarget.updateDisplayMessage = function() {\n document.getElementById(\"playerstate\").style.display = \"block\";\n document.getElementById(\"playerstatebg\").style.display = \"block\";\n document.getElementById(\"video_image_overlay\").style.display =\n \"block\";\n document.getElementById(\"playerstate\").innerHTML =\n this.mediaContents[this.currentMediaIndex][\"title\"] +\n \" \" +\n this.playerState +\n \" on \" +\n castSession.getCastDevice().friendlyName;\n }.bind(this);\n\n playerTarget.setVolume = function(volumeSliderPosition) {\n // Add resistance to avoid loud volume\n var currentVolume = this.remotePlayer.volumeLevel;\n var p = document.getElementById(\"audio_bg_level\");\n if (volumeSliderPosition < FULL_VOLUME_HEIGHT) {\n var vScale = this.currentVolume * FULL_VOLUME_HEIGHT;\n if (volumeSliderPosition > vScale) {\n volumeSliderPosition = vScale + (pos - vScale) / 2;\n }\n p.style.height = volumeSliderPosition + \"px\";\n p.style.marginTop = -volumeSliderPosition + \"px\";\n currentVolume = volumeSliderPosition / FULL_VOLUME_HEIGHT;\n } else {\n currentVolume = 1;\n }\n this.remotePlayer.volumeLevel = currentVolume;\n this.remotePlayerController.setVolumeLevel();\n }.bind(this);\n\n playerTarget.mute = function() {\n if (!this.remotePlayer.isMuted) {\n this.remotePlayerController.muteOrUnmute();\n }\n }.bind(this);\n\n playerTarget.unMute = function() {\n if (this.remotePlayer.isMuted) {\n this.remotePlayerController.muteOrUnmute();\n }\n }.bind(this);\n\n playerTarget.isMuted = function() {\n return this.remotePlayer.isMuted;\n }.bind(this);\n\n playerTarget.seekTo = function(time) {\n this.remotePlayer.currentTime = time;\n this.remotePlayerController.seek();\n }.bind(this);\n\n this.playerHandler.setTarget(playerTarget);\n\n // Setup remote player volume right on setup\n // The remote player may have had a volume set from previous playback\n if (this.remotePlayer.isMuted) {\n this.playerHandler.mute();\n }\n var currentVolume = this.remotePlayer.volumeLevel * FULL_VOLUME_HEIGHT;\n var p = document.getElementById(\"audio_bg_level\");\n p.style.height = currentVolume + \"px\";\n p.style.marginTop = -currentVolume + \"px\";\n\n this.hideFullscreenButton();\n\n this.playerHandler.play();\n };\n\n /**\n * Callback when media is loaded in local player\n */\n CastPlayer.prototype.onMediaLoadedLocally = function() {\n var localPlayer = document.getElementById(\"my-player\");\n localPlayer.currentTime = this.currentMediaTime;\n\n this.playerHandler.loaded();\n };\n\n /**\n * Select a media content\n * @param {number} mediaIndex A number for media index\n */\n CastPlayer.prototype.selectMedia = function(mediaIndex) {\n console.log(\"Media index selected: \" + mediaIndex);\n\n this.currentMediaIndex = mediaIndex;\n\n // Set video image\n var vi = document.getElementById(\"video_image\");\n vi.src = MEDIA_SOURCE_ROOT + this.mediaContents[mediaIndex][\"thumb\"];\n\n // Reset progress bar\n var pi = document.getElementById(\"progress_indicator\");\n var p = document.getElementById(\"progress\");\n p.style.width = \"0px\";\n pi.style.marginLeft = -21 - PROGRESS_BAR_WIDTH + \"px\";\n\n // Reset currentMediaTime\n this.currentMediaTime = 0;\n\n this.playerState = PLAYER_STATE.IDLE;\n this.playerHandler.play();\n };\n\n /**\n * Media seek function\n * @param {Event} event An event object from seek\n */\n CastPlayer.prototype.seekMedia = function(event) {\n var pos = parseInt(event.offsetX, 10);\n var pi = document.getElementById(\"progress_indicator\");\n var p = document.getElementById(\"progress\");\n if (event.currentTarget.id == \"progress_indicator\") {\n var curr = parseInt(\n this.currentMediaTime +\n (this.currentMediaDuration * pos) / PROGRESS_BAR_WIDTH,\n 10\n );\n var pp = parseInt(pi.style.marginLeft, 10) + pos;\n var pw = parseInt(p.style.width, 10) + pos;\n } else {\n var curr = parseInt(\n (pos * this.currentMediaDuration) / PROGRESS_BAR_WIDTH,\n 10\n );\n var pp = pos - 21 - PROGRESS_BAR_WIDTH;\n var pw = pos;\n }\n\n if (\n this.playerState === PLAYER_STATE.PLAYING ||\n this.playerState === PLAYER_STATE.PAUSED\n ) {\n this.currentMediaTime = curr;\n p.style.width = pw + \"px\";\n pi.style.marginLeft = pp + \"px\";\n }\n\n this.playerHandler.seekTo(curr);\n };\n\n /**\n * Set current player volume\n * @param {Event} mouseEvent\n */\n CastPlayer.prototype.setVolume = function(mouseEvent) {\n var p = document.getElementById(\"audio_bg_level\");\n var pos = 0;\n if (mouseEvent.currentTarget.id === \"audio_bg_track\") {\n pos = FULL_VOLUME_HEIGHT - parseInt(mouseEvent.offsetY, 10);\n } else {\n pos =\n parseInt(p.clientHeight, 10) - parseInt(mouseEvent.offsetY, 10);\n }\n this.playerHandler.setVolume(pos);\n };\n\n /**\n * Starts the timer to increment the media progress bar\n */\n CastPlayer.prototype.startProgressTimer = function() {\n this.stopProgressTimer();\n\n // Start progress timer\n this.timer = setInterval(this.incrementMediaTimeHandler, TIMER_STEP);\n };\n\n /**\n * Stops the timer to increment the media progress bar\n */\n CastPlayer.prototype.stopProgressTimer = function() {\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n };\n\n /**\n * Helper function\n * Increment media current position by 1 second\n */\n CastPlayer.prototype.incrementMediaTime = function() {\n // First sync with the current player's time\n this.currentMediaTime = this.playerHandler.getCurrentMediaTime();\n this.currentMediaDuration = this.playerHandler.getMediaDuration();\n\n if (this.playerState === PLAYER_STATE.PLAYING) {\n if (this.currentMediaTime < this.currentMediaDuration) {\n this.currentMediaTime += 1;\n this.updateProgressBarByTimer();\n } else {\n this.endPlayback();\n }\n }\n };\n\n /**\n * Update progress bar based on timer\n */\n CastPlayer.prototype.updateProgressBarByTimer = function() {\n var p = document.getElementById(\"progress\");\n if (isNaN(parseInt(p.style.width, 10))) {\n p.style.width = 0;\n }\n if (this.currentMediaDuration > 0) {\n var pp = Math.floor(\n (PROGRESS_BAR_WIDTH * this.currentMediaTime) /\n this.currentMediaDuration\n );\n }\n\n p.style.width = pp + \"px\";\n var pi = document.getElementById(\"progress_indicator\");\n pi.style.marginLeft = -21 - PROGRESS_BAR_WIDTH + pp + \"px\";\n\n if (pp >= PROGRESS_BAR_WIDTH) {\n this.endPlayback();\n }\n };\n\n /**\n * End playback. Called when media ends.\n */\n CastPlayer.prototype.endPlayback = function() {\n this.currentMediaTime = 0;\n this.stopProgressTimer();\n this.playerState = PLAYER_STATE.IDLE;\n this.playerHandler.updateDisplayMessage();\n\n document.getElementById(\"play\").style.display = \"block\";\n document.getElementById(\"pause\").style.display = \"none\";\n };\n\n /**\n * @param {number} durationInSec\n * @return {string}\n */\n CastPlayer.getDurationString = function(durationInSec) {\n var durationString = \"\" + Math.floor(durationInSec % 60);\n var durationInMin = Math.floor(durationInSec / 60);\n if (durationInMin === 0) {\n return durationString;\n }\n durationString = (durationInMin % 60) + \":\" + durationString;\n var durationInHour = Math.floor(durationInMin / 60);\n if (durationInHour === 0) {\n return durationString;\n }\n return durationInHour + \":\" + durationString;\n };\n\n /**\n * Updates media duration text in UI\n */\n CastPlayer.prototype.updateMediaDuration = function() {\n document.getElementById(\n \"duration\"\n ).innerHTML = CastPlayer.getDurationString(this.currentMediaDuration);\n };\n\n /**\n * Request full screen mode\n */\n CastPlayer.prototype.requestFullScreen = function() {\n // Supports most browsers and their versions.\n var element = document.getElementById(\"my-player\");\n var requestMethod =\n element[\"requestFullScreen\"] || element[\"webkitRequestFullScreen\"];\n\n if (requestMethod) {\n // Native full screen.\n requestMethod.call(element);\n console.log(\"Requested fullscreen\");\n }\n };\n\n /**\n * Exit full screen mode\n */\n CastPlayer.prototype.cancelFullScreen = function() {\n // Supports most browsers and their versions.\n var requestMethod =\n document[\"cancelFullScreen\"] || document[\"webkitCancelFullScreen\"];\n\n if (requestMethod) {\n requestMethod.call(document);\n }\n };\n\n /**\n * Exit fullscreen mode by escape\n */\n CastPlayer.prototype.fullscreenChangeHandler = function() {\n this.fullscreen = !this.fullscreen;\n };\n\n /**\n * Show expand/collapse fullscreen button\n */\n CastPlayer.prototype.showFullscreenButton = function() {\n if (this.fullscreen) {\n document.getElementById(\"fullscreen_expand\").style.display = \"none\";\n document.getElementById(\"fullscreen_collapse\").style.display =\n \"block\";\n } else {\n document.getElementById(\"fullscreen_expand\").style.display =\n \"block\";\n document.getElementById(\"fullscreen_collapse\").style.display =\n \"none\";\n }\n };\n\n /**\n * Hide expand/collapse fullscreen button\n */\n CastPlayer.prototype.hideFullscreenButton = function() {\n document.getElementById(\"fullscreen_expand\").style.display = \"none\";\n document.getElementById(\"fullscreen_collapse\").style.display = \"none\";\n };\n\n /**\n * Show the media control\n */\n CastPlayer.prototype.showMediaControl = function() {\n document.getElementById(\"media_control\").style.opacity = 0.7;\n };\n\n /**\n * Hide the media control\n */\n CastPlayer.prototype.hideMediaControl = function() {\n document.getElementById(\"media_control\").style.opacity = 0;\n };\n\n /**\n * Show the volume slider\n */\n CastPlayer.prototype.showVolumeSlider = function() {\n if (!this.playerHandler.isMuted()) {\n document.getElementById(\"audio_bg\").style.opacity = 1;\n document.getElementById(\"audio_bg_track\").style.opacity = 1;\n document.getElementById(\"audio_bg_level\").style.opacity = 1;\n document.getElementById(\"audio_indicator\").style.opacity = 1;\n }\n };\n\n /**\n * Hide the volume slider\n */\n CastPlayer.prototype.hideVolumeSlider = function() {\n document.getElementById(\"audio_bg\").style.opacity = 0;\n document.getElementById(\"audio_bg_track\").style.opacity = 0;\n document.getElementById(\"audio_bg_level\").style.opacity = 0;\n document.getElementById(\"audio_indicator\").style.opacity = 0;\n };\n\n /**\n * Reset the volume slider\n */\n CastPlayer.prototype.resetVolumeSlider = function() {\n var volumeTrackHeight = document.getElementById(\"audio_bg_track\")\n .clientHeight;\n var defaultVolumeSliderHeight = DEFAULT_VOLUME * volumeTrackHeight;\n document.getElementById(\"audio_bg_level\").style.height =\n defaultVolumeSliderHeight + \"px\";\n document.getElementById(\"audio_on\").style.display = \"block\";\n document.getElementById(\"audio_off\").style.display = \"none\";\n };\n\n /**\n * Initialize UI components and add event listeners\n */\n CastPlayer.prototype.initializeUI = function() {\n // Set initial values for title, subtitle, and description\n document.getElementById(\n \"media_title\"\n ).innerHTML = this.mediaContents[0][\"title\"];\n document.getElementById(\n \"media_subtitle\"\n ).innerHTML = this.mediaContents[this.currentMediaIndex][\"subtitle\"];\n document.getElementById(\"media_desc\").innerHTML = this.mediaContents[\n this.currentMediaIndex\n ][\"description\"];\n\n // Add event handlers to UI components\n document\n .getElementById(\"progress_bg\")\n .addEventListener(\"click\", this.seekMedia.bind(this));\n document\n .getElementById(\"progress\")\n .addEventListener(\"click\", this.seekMedia.bind(this));\n document\n .getElementById(\"progress_indicator\")\n .addEventListener(\"dragend\", this.seekMedia.bind(this));\n document\n .getElementById(\"audio_on\")\n .addEventListener(\n \"click\",\n this.playerHandler.mute.bind(this.playerHandler)\n );\n document\n .getElementById(\"audio_off\")\n .addEventListener(\n \"click\",\n this.playerHandler.unMute.bind(this.playerHandler)\n );\n document\n .getElementById(\"audio_bg\")\n .addEventListener(\"mouseover\", this.showVolumeSlider.bind(this));\n document\n .getElementById(\"audio_on\")\n .addEventListener(\"mouseover\", this.showVolumeSlider.bind(this));\n document\n .getElementById(\"audio_bg_level\")\n .addEventListener(\"mouseover\", this.showVolumeSlider.bind(this));\n document\n .getElementById(\"audio_bg_track\")\n .addEventListener(\"mouseover\", this.showVolumeSlider.bind(this));\n document\n .getElementById(\"audio_bg_level\")\n .addEventListener(\"click\", this.setVolume.bind(this));\n document\n .getElementById(\"audio_bg_track\")\n .addEventListener(\"click\", this.setVolume.bind(this));\n document\n .getElementById(\"audio_bg\")\n .addEventListener(\"mouseout\", this.hideVolumeSlider.bind(this));\n document\n .getElementById(\"audio_on\")\n .addEventListener(\"mouseout\", this.hideVolumeSlider.bind(this));\n document\n .getElementById(\"main_video\")\n .addEventListener(\"mouseover\", this.showMediaControl.bind(this));\n document\n .getElementById(\"main_video\")\n .addEventListener(\"mouseout\", this.hideMediaControl.bind(this));\n document\n .getElementById(\"media_control\")\n .addEventListener(\"mouseover\", this.showMediaControl.bind(this));\n document\n .getElementById(\"media_control\")\n .addEventListener(\"mouseout\", this.hideMediaControl.bind(this));\n document\n .getElementById(\"fullscreen_expand\")\n .addEventListener(\"click\", this.requestFullScreen.bind(this));\n document\n .getElementById(\"fullscreen_collapse\")\n .addEventListener(\"click\", this.cancelFullScreen.bind(this));\n document.addEventListener(\n \"fullscreenchange\",\n this.fullscreenChangeHandler.bind(this),\n false\n );\n document.addEventListener(\n \"webkitfullscreenchange\",\n this.fullscreenChangeHandler.bind(this),\n false\n );\n\n // Enable play/pause buttons\n document\n .getElementById(\"play\")\n .addEventListener(\n \"click\",\n this.playerHandler.play.bind(this.playerHandler)\n );\n document\n .getElementById(\"pause\")\n .addEventListener(\n \"click\",\n this.playerHandler.pause.bind(this.playerHandler)\n );\n document.getElementById(\"progress_indicator\").draggable = true;\n };\n\n /**\n * Add video thumbnails div's to UI for media JSON contents\n */\n CastPlayer.prototype.addVideoThumbs = function() {\n this.mediaContents = mediaJSON[\"categories\"][0][\"videos\"];\n var ni = document.getElementById(\"carousel\");\n var newdiv = null;\n var divIdName = null;\n for (var i = 0; i < this.mediaContents.length; i++) {\n newdiv = document.createElement(\"div\");\n divIdName = \"thumb\" + i + \"Div\";\n newdiv.setAttribute(\"id\", divIdName);\n newdiv.setAttribute(\"class\", \"thumb\");\n newdiv.innerHTML =\n '';\n newdiv.addEventListener(\"click\", this.selectMedia.bind(this, i));\n ni.appendChild(newdiv);\n }\n };\n\n /**\n * Makes human-readable message from chrome.cast.Error\n * @param {chrome.cast.Error} error\n * @return {string} error message\n */\n CastPlayer.getErrorMessage = function(error) {\n switch (error.code) {\n case chrome.cast.ErrorCode.API_NOT_INITIALIZED:\n return (\n \"The API is not initialized.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.CANCEL:\n return (\n \"The operation was canceled by the user\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.CHANNEL_ERROR:\n return (\n \"A channel to the receiver is not available.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.EXTENSION_MISSING:\n return (\n \"The Cast extension is not available.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.INVALID_PARAMETER:\n return (\n \"The parameters to the operation were not valid.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.RECEIVER_UNAVAILABLE:\n return (\n \"No receiver was compatible with the session request.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.SESSION_ERROR:\n return (\n \"A session could not be created, or a session was invalid.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n case chrome.cast.ErrorCode.TIMEOUT:\n return (\n \"The operation timed out.\" +\n (error.description ? \" :\" + error.description : \"\")\n );\n }\n };\n\n /**\n * Hardcoded media json objects\n */\n var mediaJSON = {\n categories: [\n {\n name: \"Movies\",\n videos: [\n {\n description:\n \"Big Buck Bunny tells the story of a giant rabbit with a heart bigger than himself. When one sunny day three rodents rudely harass him, something snaps... and the rabbit ain't no bunny anymore! In the typical cartoon tradition he prepares the nasty rodents a comical revenge.\\n\\nLicensed under the Creative Commons Attribution license\\nhttp://www.bigbuckbunny.org\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"\n ],\n subtitle: \"By Blender Foundation\",\n thumb: \"images/BigBuckBunny.jpg\",\n title: \"Big Buck Bunny\"\n },\n {\n description: \"The first Blender Open Movie from 2006\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4\"\n ],\n subtitle: \"By Blender Foundation\",\n thumb: \"images/ElephantsDream.jpg\",\n title: \"Elephant Dream\"\n },\n {\n description:\n \"HBO GO now works with Chromecast -- the easiest way to enjoy online video on your TV. For when you want to settle into your Iron Throne to watch the latest episodes. For $35.\\nLearn how to use Chromecast with HBO GO and more at google.com/chromecast.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4\"\n ],\n subtitle: \"By Google\",\n thumb: \"images/ForBiggerBlazes.jpg\",\n title: \"For Bigger Blazes\"\n },\n {\n description:\n \"Introducing Chromecast. The easiest way to enjoy online video and music on your TV. For when Batman's escapes aren't quite big enough. For $35. Learn how to use Chromecast with Google Play Movies and more at google.com/chromecast.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerEscapes.mp4\"\n ],\n subtitle: \"By Google\",\n thumb: \"images/ForBiggerEscapes.jpg\",\n title: \"For Bigger Escape\"\n },\n {\n description:\n \"Introducing Chromecast. The easiest way to enjoy online video and music on your TV. For $35. Find out more at google.com/chromecast.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerFun.mp4\"\n ],\n subtitle: \"By Google\",\n thumb: \"images/ForBiggerFun.jpg\",\n title: \"For Bigger Fun\"\n },\n {\n description:\n \"Introducing Chromecast. The easiest way to enjoy online video and music on your TV. For the times that call for bigger joyrides. For $35. Learn how to use Chromecast with YouTube and more at google.com/chromecast.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerJoyrides.mp4\"\n ],\n subtitle: \"By Google\",\n thumb: \"images/ForBiggerJoyrides.jpg\",\n title: \"For Bigger Joyrides\"\n },\n {\n description:\n \"Introducing Chromecast. The easiest way to enjoy online video and music on your TV. For when you want to make Buster's big meltdowns even bigger. For $35. Learn how to use Chromecast with Netflix and more at google.com/chromecast.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerMeltdowns.mp4\"\n ],\n subtitle: \"By Google\",\n thumb: \"images/ForBiggerMeltdowns.jpg\",\n title: \"For Bigger Meltdowns\"\n },\n {\n description:\n \"Sintel is an independently produced short film, initiated by the Blender Foundation as a means to further improve and validate the free/open source 3D creation suite Blender. With initial funding provided by 1000s of donations via the internet community, it has again proven to be a viable development model for both open 3D technology as for independent animation film.\\nThis 15 minute film has been realized in the studio of the Amsterdam Blender Institute, by an international team of artists and developers. In addition to that, several crucial technical and creative targets have been realized online, by developers and artists and teams all over the world.\\nwww.sintel.org\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/Sintel.mp4\"\n ],\n subtitle: \"By Blender Foundation\",\n thumb: \"images/Sintel.jpg\",\n title: \"Sintel\"\n },\n {\n description:\n \"Smoking Tire takes the all-new Subaru Outback to the highest point we can find in hopes our customer-appreciation Balloon Launch will get some free T-shirts into the hands of our viewers.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4\"\n ],\n subtitle: \"By Garage419\",\n thumb: \"images/SubaruOutbackOnStreetAndDirt.jpg\",\n title: \"Subaru Outback On Street And Dirt\"\n },\n {\n description:\n \"Tears of Steel was realized with crowd-funding by users of the open source 3D creation tool Blender. Target was to improve and test a complete open and free pipeline for visual effects in film - and to make a compelling sci-fi film in Amsterdam, the Netherlands. The film itself, and all raw material used for making it, have been released under the Creatieve Commons 3.0 Attribution license. Visit the tearsofsteel.org website to find out more about this, or to purchase the 4-DVD box with a lot of extras. (CC) Blender Foundation - http://www.tearsofsteel.org\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/TearsOfSteel.mp4\"\n ],\n subtitle: \"By Blender Foundation\",\n thumb: \"images/TearsOfSteel.jpg\",\n title: \"Tears of Steel\"\n },\n {\n description:\n \"The Smoking Tire heads out to Adams Motorsports Park in Riverside, CA to test the most requested car of 2010, the Volkswagen GTI. Will it beat the Mazdaspeed3's standard-setting lap time? Watch and see...\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/VolkswagenGTIReview.mp4\"\n ],\n subtitle: \"By Garage419\",\n thumb: \"images/VolkswagenGTIReview.jpg\",\n title: \"Volkswagen GTI Review\"\n },\n {\n description:\n \"The Smoking Tire is going on the 2010 Bullrun Live Rally in a 2011 Shelby GT500, and posting a video from the road every single day! The only place to watch them is by subscribing to The Smoking Tire or watching at BlackMagicShine.com\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/WeAreGoingOnBullrun.mp4\"\n ],\n subtitle: \"By Garage419\",\n thumb: \"images/WeAreGoingOnBullrun.jpg\",\n title: \"We Are Going On Bullrun\"\n },\n {\n description:\n \"The Smoking Tire meets up with Chris and Jorge from CarsForAGrand.com to see just how far $1,000 can go when looking for a car. The Smoking Tire meets up with Chris and Jorge from CarsForAGrand.com to see just how far $1,000 can go when looking for a car.\",\n sources: [\n \"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/WhatCarCanYouGetForAGrand.mp4\"\n ],\n subtitle: \"By Garage419\",\n thumb: \"images/WhatCarCanYouGetForAGrand.jpg\",\n title: \"What care can you get for a grand?\"\n }\n ]\n }\n ]\n };\n\n return {\n CastPlayer\n };\n};\n","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerJs.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerJs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PlayerJs.vue?vue&type=template&id=155ca987&scoped=true\"\nimport script from \"./PlayerJs.vue?vue&type=script&lang=js\"\nexport * from \"./PlayerJs.vue?vue&type=script&lang=js\"\nimport style0 from \"./PlayerJs.vue?vue&type=style&index=0&id=155ca987&prod&lang=css&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"155ca987\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Play.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Play.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Play.vue?vue&type=template&id=58599fab\"\nimport script from \"./Play.vue?vue&type=script&lang=js\"\nexport * from \"./Play.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.github.io/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerJs.vue?vue&type=style&index=0&id=155ca987&prod&lang=css&scoped=true\"","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { COMPONENT_UID_KEY, Vue } from '../../vue';\nimport { NAME_ALERT } from '../../constants/components';\nimport { EVENT_NAME_DISMISSED, EVENT_NAME_DISMISS_COUNT_DOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DISMISS } from '../../constants/slots';\nimport { requestAF } from '../../utils/dom';\nimport { isBoolean, isNumeric } from '../../utils/inspect';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BButtonClose } from '../button/button-close';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('show', {\n type: PROP_TYPE_BOOLEAN_NUMBER_STRING,\n defaultValue: false\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event; // --- Helper methods ---\n// Convert `show` value to a number\n\n\nvar parseCountDown = function parseCountDown(show) {\n if (show === '' || isBoolean(show)) {\n return 0;\n }\n\n show = toInteger(show, 0);\n return show > 0 ? show : 0;\n}; // Convert `show` value to a boolean\n\n\nvar parseShow = function parseShow(show) {\n if (show === '' || show === true) {\n return true;\n }\n\n if (toInteger(show, 0) < 1) {\n // Boolean will always return false for the above comparison\n return false;\n }\n\n return !!show;\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, modelProps), {}, {\n dismissLabel: makeProp(PROP_TYPE_STRING, 'Close'),\n dismissible: makeProp(PROP_TYPE_BOOLEAN, false),\n fade: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING, 'info')\n})), NAME_ALERT); // --- Main component ---\n// @vue/component\n\nexport var BAlert = /*#__PURE__*/Vue.extend({\n name: NAME_ALERT,\n mixins: [modelMixin, normalizeSlotMixin],\n props: props,\n data: function data() {\n return {\n countDown: 0,\n // If initially shown, we need to set these for SSR\n localShow: parseShow(this[MODEL_PROP_NAME])\n };\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n this.countDown = parseCountDown(newValue);\n this.localShow = parseShow(newValue);\n }), _defineProperty(_watch, \"countDown\", function countDown(newValue) {\n var _this = this;\n\n this.clearCountDownInterval();\n var show = this[MODEL_PROP_NAME]; // Ignore if `show` transitions to a boolean value\n\n if (isNumeric(show)) {\n this.$emit(EVENT_NAME_DISMISS_COUNT_DOWN, newValue); // Update the v-model if needed\n\n if (show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n\n if (newValue > 0) {\n this.localShow = true;\n this.$_countDownTimeout = setTimeout(function () {\n _this.countDown--;\n }, 1000);\n } else {\n // Slightly delay the hide to allow any UI updates\n this.$nextTick(function () {\n requestAF(function () {\n _this.localShow = false;\n });\n });\n }\n }\n }), _defineProperty(_watch, \"localShow\", function localShow(newValue) {\n var show = this[MODEL_PROP_NAME]; // Only emit dismissed events for dismissible or auto-dismissing alerts\n\n if (!newValue && (this.dismissible || isNumeric(show))) {\n this.$emit(EVENT_NAME_DISMISSED);\n } // Only emit booleans if we weren't passed a number via v-model\n\n\n if (!isNumeric(show) && show !== newValue) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_filterTimer = null;\n var show = this[MODEL_PROP_NAME];\n this.countDown = parseCountDown(show);\n this.localShow = parseShow(show);\n },\n beforeDestroy: function beforeDestroy() {\n this.clearCountDownInterval();\n },\n methods: {\n dismiss: function dismiss() {\n this.clearCountDownInterval();\n this.countDown = 0;\n this.localShow = false;\n },\n clearCountDownInterval: function clearCountDownInterval() {\n clearTimeout(this.$_countDownTimeout);\n this.$_countDownTimeout = null;\n }\n },\n render: function render(h) {\n var $alert = h();\n\n if (this.localShow) {\n var dismissible = this.dismissible,\n variant = this.variant;\n var $dismissButton = h();\n\n if (dismissible) {\n // Add dismiss button\n $dismissButton = h(BButtonClose, {\n attrs: {\n 'aria-label': this.dismissLabel\n },\n on: {\n click: this.dismiss\n }\n }, [this.normalizeSlot(SLOT_NAME_DISMISS)]);\n }\n\n $alert = h('div', {\n staticClass: 'alert',\n class: _defineProperty({\n 'alert-dismissible': dismissible\n }, \"alert-\".concat(variant), variant),\n attrs: {\n role: 'alert',\n 'aria-live': 'polite',\n 'aria-atomic': true\n },\n key: this[COMPONENT_UID_KEY]\n }, [$dismissButton, this.normalizeSlot()]);\n }\n\n return h(BVTransition, {\n props: {\n noFade: !this.fade\n }\n }, [$alert]);\n }\n});","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_OVERLAY } from '../../constants/components';\nimport { EVENT_NAME_CLICK, EVENT_NAME_HIDDEN, EVENT_NAME_SHOWN } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_OVERLAY } from '../../constants/slots';\nimport { toFloat } from '../../utils/number';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BSpinner } from '../spinner/spinner';\nimport { BVTransition } from '../transition/bv-transition'; // --- Constants ---\n\nvar POSITION_COVER = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n}; // --- Props ---\n\nexport var props = makePropsConfigurable({\n // Alternative to variant, allowing a specific\n // CSS color to be applied to the overlay\n bgColor: makeProp(PROP_TYPE_STRING),\n blur: makeProp(PROP_TYPE_STRING, '2px'),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n noCenter: makeProp(PROP_TYPE_BOOLEAN, false),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n // If `true, does not render the default slot\n // and switches to absolute positioning\n noWrap: makeProp(PROP_TYPE_BOOLEAN, false),\n opacity: makeProp(PROP_TYPE_NUMBER_STRING, 0.85, function (value) {\n var number = toFloat(value, 0);\n return number >= 0 && number <= 1;\n }),\n overlayTag: makeProp(PROP_TYPE_STRING, 'div'),\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n show: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerSmall: makeProp(PROP_TYPE_BOOLEAN, false),\n spinnerType: makeProp(PROP_TYPE_STRING, 'border'),\n spinnerVariant: makeProp(PROP_TYPE_STRING),\n variant: makeProp(PROP_TYPE_STRING, 'light'),\n wrapTag: makeProp(PROP_TYPE_STRING, 'div'),\n zIndex: makeProp(PROP_TYPE_NUMBER_STRING, 10)\n}, NAME_OVERLAY); // --- Main component ---\n// @vue/component\n\nexport var BOverlay = /*#__PURE__*/Vue.extend({\n name: NAME_OVERLAY,\n mixins: [normalizeSlotMixin],\n props: props,\n computed: {\n computedRounded: function computedRounded() {\n var rounded = this.rounded;\n return rounded === true || rounded === '' ? 'rounded' : !rounded ? '' : \"rounded-\".concat(rounded);\n },\n computedVariant: function computedVariant() {\n var variant = this.variant;\n return variant && !this.bgColor ? \"bg-\".concat(variant) : '';\n },\n slotScope: function slotScope() {\n return {\n spinnerType: this.spinnerType || null,\n spinnerVariant: this.spinnerVariant || null,\n spinnerSmall: this.spinnerSmall\n };\n }\n },\n methods: {\n defaultOverlayFn: function defaultOverlayFn(_ref) {\n var spinnerType = _ref.spinnerType,\n spinnerVariant = _ref.spinnerVariant,\n spinnerSmall = _ref.spinnerSmall;\n return this.$createElement(BSpinner, {\n props: {\n type: spinnerType,\n variant: spinnerVariant,\n small: spinnerSmall\n }\n });\n }\n },\n render: function render(h) {\n var _this = this;\n\n var show = this.show,\n fixed = this.fixed,\n noFade = this.noFade,\n noWrap = this.noWrap,\n slotScope = this.slotScope;\n var $overlay = h();\n\n if (show) {\n var $background = h('div', {\n staticClass: 'position-absolute',\n class: [this.computedVariant, this.computedRounded],\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n opacity: this.opacity,\n backgroundColor: this.bgColor || null,\n backdropFilter: this.blur ? \"blur(\".concat(this.blur, \")\") : null\n })\n });\n var $content = h('div', {\n staticClass: 'position-absolute',\n style: this.noCenter ?\n /* istanbul ignore next */\n _objectSpread({}, POSITION_COVER) : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)'\n }\n }, [this.normalizeSlot(SLOT_NAME_OVERLAY, slotScope) || this.defaultOverlayFn(slotScope)]);\n $overlay = h(this.overlayTag, {\n staticClass: 'b-overlay',\n class: {\n 'position-absolute': !noWrap || noWrap && !fixed,\n 'position-fixed': noWrap && fixed\n },\n style: _objectSpread(_objectSpread({}, POSITION_COVER), {}, {\n zIndex: this.zIndex || 10\n }),\n on: {\n click: function click(event) {\n return _this.$emit(EVENT_NAME_CLICK, event);\n }\n },\n key: 'overlay'\n }, [$background, $content]);\n } // Wrap in a fade transition\n\n\n $overlay = h(BVTransition, {\n props: {\n noFade: noFade,\n appear: true\n },\n on: {\n 'after-enter': function afterEnter() {\n return _this.$emit(EVENT_NAME_SHOWN);\n },\n 'after-leave': function afterLeave() {\n return _this.$emit(EVENT_NAME_HIDDEN);\n }\n }\n }, [$overlay]);\n\n if (noWrap) {\n return $overlay;\n }\n\n return h(this.wrapTag, {\n staticClass: 'b-overlay-wrap position-relative',\n attrs: {\n 'aria-busy': show ? 'true' : null\n }\n }, noWrap ? [$overlay] : [this.normalizeSlot(), $overlay]);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_ROW } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { memoize } from '../../utils/memoize';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase, toString, trim } from '../../utils/string'; // --- Constants ---\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center']; // --- Helper methods ---\n// Compute a `row-cols-{breakpoint}-{cols}` class name\n// Memoized function for better performance on generating class names\n\nvar computeRowColsClass = memoize(function (breakpoint, cols) {\n cols = trim(toString(cols));\n return cols ? lowerCase(['row-cols', breakpoint, cols].filter(identity).join('-')) : null;\n}); // Get the breakpoint name from the `rowCols` prop name\n// Memoized function for better performance on extracting breakpoint names\n\nvar computeRowColsBreakpoint = memoize(function (prop) {\n return lowerCase(prop.replace('cols', ''));\n}); // Cached copy of the `row-cols` breakpoint prop names\n// Will be populated when the props are generated\n\nvar rowColsPropList = []; // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // i.e. 'row-cols-2', 'row-cols-md-4', 'row-cols-xl-6', ...\n var rowColsProps = getBreakpointsUpCached().reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'cols')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // Cache the row-cols prop names\n\n rowColsPropList = keys(rowColsProps); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread({}, rowColsProps), {}, {\n alignContent: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around', 'stretch'), value);\n }),\n alignH: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'between', 'around'), value);\n }),\n alignV: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(concat(COMMON_ALIGNMENT, 'baseline', 'stretch'), value);\n }),\n noGutters: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_ROW);\n}; // --- Main component ---\n// We do not use `Vue.extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BRow = {\n name: NAME_ROW,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props;\n this.props = generateProps();\n return this.props;\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var alignV = props.alignV,\n alignH = props.alignH,\n alignContent = props.alignContent; // Loop through row-cols breakpoint props and generate the classes\n\n var classList = [];\n rowColsPropList.forEach(function (prop) {\n var c = computeRowColsClass(computeRowColsBreakpoint(prop), props[prop]); // If a class is returned, push it onto the array\n\n if (c) {\n classList.push(c);\n }\n });\n classList.push((_classList$push = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_classList$push, \"align-items-\".concat(alignV), alignV), _defineProperty(_classList$push, \"justify-content-\".concat(alignH), alignH), _defineProperty(_classList$push, \"align-content-\".concat(alignContent), alignContent), _classList$push));\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: classList\n }), children);\n }\n};","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerBitmovin.vue?vue&type=style&index=0&id=27b0a297&prod&lang=css&scoped=true\""],"sourceRoot":""}