{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///clappr-chromecast-plugin.min.js","webpack:///webpack/bootstrap f4908445f0a34cad8a33","webpack:///./src/chromecast.js","webpack:///external {\"amd\":\"clappr\",\"commonjs\":\"clappr\",\"commonjs2\":\"clappr\",\"root\":\"Clappr\"}","webpack:///./src/chromecast_playback.js","webpack:///./src/public/chromecast.html","webpack:///./src/public/style.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/lodash.assign/index.js","webpack:///./~/lodash._baseassign/index.js","webpack:///./~/lodash._basecopy/index.js","webpack:///./~/lodash.keys/index.js","webpack:///./~/lodash._getnative/index.js","webpack:///./~/lodash.isarguments/index.js","webpack:///./~/lodash.isarray/index.js","webpack:///./~/lodash._createassigner/index.js","webpack:///./~/lodash._bindcallback/index.js","webpack:///./~/lodash._isiterateecall/index.js","webpack:///./~/lodash.restparam/index.js","webpack:///./src/public/ic_cast_24dp.svg","webpack:///./src/public/ic_cast0_24dp.svg","webpack:///./src/public/ic_cast1_24dp.svg","webpack:///./src/public/ic_cast2_24dp.svg","webpack:///./src/public/ic_cast_connected_24dp.svg"],"names":["root","factory","exports","module","require","define","amd","ChromecastPlugin","Clappr","this","__WEBPACK_EXTERNAL_MODULE_1__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","defineProperty","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_get","_x","_x2","_x3","_again","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","getter","get","parent","getPrototypeOf","_clappr","_chromecast_playback","_chromecast_playback2","_publicStyleScss","_publicStyleScss2","_lodashAssign","_lodashAssign2","_publicIc_cast_24dpSvg","_publicIc_cast_24dpSvg2","_publicIc_cast0_24dpSvg","_publicIc_cast0_24dpSvg2","_publicIc_cast1_24dpSvg","_publicIc_cast1_24dpSvg2","_publicIc_cast2_24dpSvg","_publicIc_cast2_24dpSvg2","_publicIc_cast_connected_24dpSvg","_publicIc_cast_connected_24dpSvg2","DEVICE_STATE","IDLE","ACTIVE","WARNING","ERROR","DEFAULT_CLAPPR_APP_ID","MIMETYPES","mp4","ogg","3gpp","webm","mkv","m3u8","mpd","ogv","_UICorePlugin","core","bootTryDelay","options","bootMaxTryCount","bootTryCount","isBootable","appId","deviceState","embedScript","disable","class","type","click","chromecast","getCurrentContainer","activeContainer","getCurrentPlayback","activePlayback","listenTo","mediaControl","Events","MEDIACONTROL_RENDERED","render","CORE_ACTIVE_CONTAINER_CHANGED","containerChanged","MEDIACONTROL_CONTAINERCHANGED","container","CONTAINER_TIMEUPDATE","containerTimeUpdate","CONTAINER_PLAY","containerPlay","CONTAINER_ENDED","sessionStopped","Browser","isChrome","version","isSecure","window","location","protocol","_this","chrome","cast","isAvailable","bootstrapCastApi","script","document","createElement","setAttribute","onload","body","appendChild","_this2","Log","warn","initializeCastApi","__onGCastApiAvailable","errorInfo","setTimeout","_this3","autoJoinPolicy","AutoJoinPolicy","ORIGIN_SCOPED","sessionRequest","SessionRequest","apiConfig","ApiConfig","session","sessionListener","e","receiverListener","initialize","debug","name","sessionId","newSession","status","SessionStatus","STOPPED","ReceiverAvailability","AVAILABLE","show","hide","renderConnected","clearInterval","connectAnimInterval","resetKeepVisible","renderDisconnected","play","how","mediaSession","originalPlayback","playback","currentMedia","poster","settings","src","playbackProxy","$el","addClass","remove","append","stopListening","bindEvents","settingsUpdate","_this4","addUpdateListener","sessionUpdateListener","time","currentTime","playerState","removeClass","load","sources","isPlaying","once","CONTAINER_READY","seek","getDuration","stop","_this5","pause","mediaInfo","createMediaInfo","request","media","LoadRequest","autoplay","loadMedia","loadMediaSuccess","loadMediaError","mimeType","mimeTypeFor","MediaInfo","contentType","customData","metadata","createMediaMetadata","createCastMediaMetadata","title","subtitle","releaseDate","TvShow","episode","originalAirdate","season","seriesTitle","Movie","studio","images","map","url","Image","MovieMediaMetadata","TvShowMediaMetadata","GenericMediaMetadata","_this6","getCurrentTime","requestSession","launchSuccess","launchError","position","connectingIcons","setInterval","html","setKeepVisible","timeProgress","current","find","$style","Styler","getStyleFor","baseUrl","srcUrl","extension","split","match","indexOf","UICorePlugin","_publicChromecastHtml","_publicChromecastHtml2","TICK_INTERVAL","ChromecastPlayback","_Playback","onMediaStatusUpdate","noVolume","filter","left","right","template","$","css","stopTimer","getPlaybackType","Playback","LIVE","trigger","PLAYBACK_DVR","SeekRequest","startTimer","percentage","duration","timer","updateMediaControl","liveSeekableRange","VOD","changeTogglePlay","isBuffering","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","prevState","PLAYBACK_PLAY","PLAYBACK_ENDED","PLAYBACK_PAUSE","getEstimatedTime","PLAYBACK_TIMEUPDATE","total","push","list","toString","result","item","join","mediaQuery","alreadyImportedModules","assignWith","source","customizer","index","keys","baseAssign","createAssigner","assign","baseCopy","baseProperty","isArrayLike","isLength","getLength","isIndex","reIsUint","test","MAX_SAFE_INTEGER","shimKeys","keysIn","propsLength","allowIndexes","isArray","isArguments","hasOwnProperty","isObject","Ctor","isProto","Array","skipIndexes","getNative","objectProto","nativeKeys","isObjectLike","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","RegExp","replace","isArrayLikeObject","propertyIsEnumerable","objectToString","argsTag","tag","genTag","arrayTag","nativeIsArray","assigner","restParam","guard","thisArg","bindCallback","isIterateeCall","func","argCount","identity","collection","accumulator","other","apply","arguments","start","FUNC_ERROR_TEXT","nativeMax","args","rest","otherArgs","Math","max"],"mappings":"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","file":"clappr-chromecast-plugin.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"clappr\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"clappr\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ChromecastPlugin\"] = factory(require(\"clappr\"));\n\telse\n\t\troot[\"ChromecastPlugin\"] = factory(root[\"Clappr\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"clappr\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"clappr\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ChromecastPlugin\"] = factory(require(\"clappr\"));\n\telse\n\t\troot[\"ChromecastPlugin\"] = factory(root[\"Clappr\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./src/chromecast.js ***!\n \\***************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _clappr = __webpack_require__(/*! clappr */ 1);\n\t\n\tvar _chromecast_playback = __webpack_require__(/*! ./chromecast_playback */ 2);\n\t\n\tvar _chromecast_playback2 = _interopRequireDefault(_chromecast_playback);\n\t\n\tvar _publicStyleScss = __webpack_require__(/*! ./public/style.scss */ 4);\n\t\n\tvar _publicStyleScss2 = _interopRequireDefault(_publicStyleScss);\n\t\n\tvar _lodashAssign = __webpack_require__(/*! lodash.assign */ 6);\n\t\n\tvar _lodashAssign2 = _interopRequireDefault(_lodashAssign);\n\t\n\tvar _publicIc_cast_24dpSvg = __webpack_require__(/*! ./public/ic_cast_24dp.svg */ 17);\n\t\n\tvar _publicIc_cast_24dpSvg2 = _interopRequireDefault(_publicIc_cast_24dpSvg);\n\t\n\tvar _publicIc_cast0_24dpSvg = __webpack_require__(/*! ./public/ic_cast0_24dp.svg */ 18);\n\t\n\tvar _publicIc_cast0_24dpSvg2 = _interopRequireDefault(_publicIc_cast0_24dpSvg);\n\t\n\tvar _publicIc_cast1_24dpSvg = __webpack_require__(/*! ./public/ic_cast1_24dp.svg */ 19);\n\t\n\tvar _publicIc_cast1_24dpSvg2 = _interopRequireDefault(_publicIc_cast1_24dpSvg);\n\t\n\tvar _publicIc_cast2_24dpSvg = __webpack_require__(/*! ./public/ic_cast2_24dp.svg */ 20);\n\t\n\tvar _publicIc_cast2_24dpSvg2 = _interopRequireDefault(_publicIc_cast2_24dpSvg);\n\t\n\tvar _publicIc_cast_connected_24dpSvg = __webpack_require__(/*! ./public/ic_cast_connected_24dp.svg */ 21);\n\t\n\tvar _publicIc_cast_connected_24dpSvg2 = _interopRequireDefault(_publicIc_cast_connected_24dpSvg);\n\t\n\tvar DEVICE_STATE = {\n\t 'IDLE': 0,\n\t 'ACTIVE': 1,\n\t 'WARNING': 2,\n\t 'ERROR': 3\n\t};\n\t\n\tvar DEFAULT_CLAPPR_APP_ID = '9DFB77C0';\n\t\n\tvar MIMETYPES = {\n\t 'mp4': 'video/mp4',\n\t 'ogg': 'video/ogg',\n\t '3gpp': 'video/3gpp',\n\t 'webm': 'video/webm',\n\t 'mkv': 'video/x-matroska',\n\t 'm3u8': 'application/x-mpegurl',\n\t 'mpd': 'application/dash+xml'\n\t};\n\tMIMETYPES['ogv'] = MIMETYPES['ogg'];\n\tMIMETYPES['3gp'] = MIMETYPES['3gpp'];\n\t\n\tvar ChromecastPlugin = (function (_UICorePlugin) {\n\t _inherits(ChromecastPlugin, _UICorePlugin);\n\t\n\t _createClass(ChromecastPlugin, [{\n\t key: 'version',\n\t get: function get() {\n\t return (\"0.1.1\");\n\t }\n\t }, {\n\t key: 'name',\n\t get: function get() {\n\t return 'chromecast';\n\t }\n\t }, {\n\t key: 'tagName',\n\t get: function get() {\n\t return 'button';\n\t }\n\t }, {\n\t key: 'attributes',\n\t get: function get() {\n\t return {\n\t 'class': 'chromecast-button',\n\t 'type': 'button'\n\t };\n\t }\n\t }, {\n\t key: 'events',\n\t get: function get() {\n\t return {\n\t 'click': 'click'\n\t };\n\t }\n\t }, {\n\t key: 'options',\n\t get: function get() {\n\t return this.core.options.chromecast || (this.core.options.chromecast = {});\n\t }\n\t }, {\n\t key: 'container',\n\t get: function get() {\n\t return this.core.getCurrentContainer ? this.core.getCurrentContainer() : this.core.activeContainer; // Clappr 0.3.0 or greater\n\t }\n\t }, {\n\t key: 'playback',\n\t get: function get() {\n\t return this.core.getCurrentPlayback ? this.core.getCurrentPlayback() : this.core.activePlayback; // Clappr 0.3.0 or greater\n\t }\n\t }], [{\n\t key: 'Movie',\n\t get: function get() {\n\t return 'movie';\n\t }\n\t }, {\n\t key: 'TvShow',\n\t get: function get() {\n\t return 'tv_show';\n\t }\n\t }, {\n\t key: 'Generic',\n\t get: function get() {\n\t return 'none';\n\t }\n\t }, {\n\t key: 'version',\n\t get: function get() {\n\t return (\"0.1.1\");\n\t }\n\t }]);\n\t\n\t function ChromecastPlugin(core) {\n\t _classCallCheck(this, ChromecastPlugin);\n\t\n\t _get(Object.getPrototypeOf(ChromecastPlugin.prototype), 'constructor', this).call(this, core);\n\t\n\t this.bootTryDelay = this.options.bootTryDelay || 500; // Default is 500 milliseconds between each attempt\n\t this.bootMaxTryCount = this.options.bootMaxTryCount || 6; // Default is 6 attempts (3 seconds)\n\t this.bootTryCount = 0;\n\t\n\t if (this.isBootable()) {\n\t this.appId = this.options.appId || DEFAULT_CLAPPR_APP_ID;\n\t this.deviceState = DEVICE_STATE.IDLE;\n\t this.embedScript();\n\t } else {\n\t this.disable();\n\t }\n\t }\n\t\n\t _createClass(ChromecastPlugin, [{\n\t key: 'bindEvents',\n\t value: function bindEvents() {\n\t this.listenTo(this.core.mediaControl, _clappr.Events.MEDIACONTROL_RENDERED, this.render);\n\t\n\t if (_clappr.Events.CORE_ACTIVE_CONTAINER_CHANGED) {\n\t // Clappr 0.3.0 or greater\n\t this.listenTo(this.core, _clappr.Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);\n\t } else {\n\t this.listenTo(this.core.mediaControl, _clappr.Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged);\n\t }\n\t\n\t if (this.container) {\n\t this.listenTo(this.container, _clappr.Events.CONTAINER_TIMEUPDATE, this.containerTimeUpdate);\n\t this.listenTo(this.container, _clappr.Events.CONTAINER_PLAY, this.containerPlay);\n\t this.listenTo(this.container, _clappr.Events.CONTAINER_ENDED, this.sessionStopped);\n\t }\n\t }\n\t }, {\n\t key: 'isBootable',\n\t value: function isBootable() {\n\t // Browser must be Chrome\n\t if (!_clappr.Browser.isChrome) {\n\t return false;\n\t }\n\t\n\t // Chrome lesser than or equals to 71\n\t // does not require secure page\n\t if (_clappr.Browser.version <= 71) {\n\t return true;\n\t }\n\t\n\t // Chrome greater than or equals to 72\n\t // require secure page\n\t return this.isSecure();\n\t }\n\t }, {\n\t key: 'isSecure',\n\t value: function isSecure() {\n\t return window.location.protocol === 'https:';\n\t }\n\t }, {\n\t key: 'enable',\n\t value: function enable() {\n\t _get(Object.getPrototypeOf(ChromecastPlugin.prototype), 'enable', this).call(this);\n\t this.render();\n\t this.embedScript();\n\t }\n\t }, {\n\t key: 'embedScript',\n\t value: function embedScript() {\n\t var _this = this;\n\t\n\t if (!window.chrome || !window.chrome.cast || !window.chrome.cast.isAvailable) {\n\t var script = document.createElement('script');\n\t script.setAttribute('type', 'text/javascript');\n\t script.setAttribute('async', 'async');\n\t script.setAttribute('src', 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js');\n\t script.onload = function () {\n\t return _this.bootstrapCastApi();\n\t };\n\t document.body.appendChild(script);\n\t } else {\n\t this.bootstrapCastApi();\n\t }\n\t }\n\t }, {\n\t key: 'bootstrapCastApi',\n\t value: function bootstrapCastApi() {\n\t var _this2 = this;\n\t\n\t this.bootTryCount++;\n\t\n\t if (this.bootTryCount > this.bootMaxTryCount) {\n\t this.bootTryCount = 0;\n\t _clappr.Log.warn('GCastApi bootstrap timeout');\n\t this.disable();\n\t return;\n\t }\n\t\n\t // The \"chrome\" property may not be available immediately on some iOS devices\n\t if (window.chrome) {\n\t this.bootTryCount = 0;\n\t\n\t if (window.chrome.cast && window.chrome.cast.isAvailable) {\n\t this.appId = this.appId || DEFAULT_CLAPPR_APP_ID;\n\t this.initializeCastApi();\n\t } else {\n\t window['__onGCastApiAvailable'] = function (loaded, errorInfo) {\n\t if (loaded) {\n\t _this2.appId = _this2.appId || DEFAULT_CLAPPR_APP_ID;\n\t _this2.initializeCastApi();\n\t } else {\n\t _clappr.Log.warn('GCastApi error', errorInfo);\n\t _this2.disable();\n\t }\n\t };\n\t }\n\t } else {\n\t setTimeout(function () {\n\t _this2.bootstrapCastApi();\n\t }, this.bootTryDelay);\n\t }\n\t }\n\t }, {\n\t key: 'initializeCastApi',\n\t value: function initializeCastApi() {\n\t var _this3 = this;\n\t\n\t var autoJoinPolicy = chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED;\n\t var sessionRequest = new chrome.cast.SessionRequest(this.appId);\n\t var apiConfig = new chrome.cast.ApiConfig(sessionRequest, function (session) {\n\t return _this3.sessionListener(session);\n\t }, function (e) {\n\t return _this3.receiverListener(e);\n\t }, autoJoinPolicy);\n\t chrome.cast.initialize(apiConfig, function () {\n\t return _clappr.Log.debug(_this3.name, 'init success');\n\t }, function () {\n\t return _clappr.Log.warn(_this3.name, 'init error');\n\t });\n\t }\n\t }, {\n\t key: 'sessionListener',\n\t value: function sessionListener(session) {\n\t _clappr.Log.debug(this.name, 'new session id:' + session.sessionId);\n\t this.newSession(session);\n\t }\n\t }, {\n\t key: 'sessionUpdateListener',\n\t value: function sessionUpdateListener() {\n\t if (this.session) {\n\t _clappr.Log.debug(this.name, this.session.status);\n\t if (this.session.status === chrome.cast.SessionStatus.STOPPED) {\n\t this.sessionStopped();\n\t this.session = null;\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'receiverListener',\n\t value: function receiverListener(e) {\n\t if (e === chrome.cast.ReceiverAvailability.AVAILABLE) {\n\t _clappr.Log.debug(this.name, 'receiver found');\n\t this.show();\n\t } else {\n\t _clappr.Log.debug(this.name, 'receiver list empty');\n\t this.hide();\n\t }\n\t }\n\t }, {\n\t key: 'launchSuccess',\n\t value: function launchSuccess(session) {\n\t this.renderConnected();\n\t clearInterval(this.connectAnimInterval);\n\t this.core.mediaControl.resetKeepVisible();\n\t _clappr.Log.debug(this.name, 'launch success - session: ' + session.sessionId);\n\t this.newSession(session);\n\t }\n\t }, {\n\t key: 'launchError',\n\t value: function launchError(e) {\n\t _clappr.Log.debug(this.name, 'error on launch', e);\n\t this.renderDisconnected();\n\t clearInterval(this.connectAnimInterval);\n\t this.core.mediaControl.resetKeepVisible();\n\t this.container.play();\n\t }\n\t }, {\n\t key: 'loadMediaSuccess',\n\t value: function loadMediaSuccess(how, mediaSession) {\n\t _clappr.Log.debug(this.name, 'new media session', mediaSession, '(', how, ')');\n\t\n\t this.originalPlayback = this.playback;\n\t\n\t var options = (0, _lodashAssign2['default'])({}, this.originalPlayback.options, {\n\t currentMedia: mediaSession,\n\t mediaControl: this.core.mediaControl,\n\t poster: this.options.poster || this.core.options.poster,\n\t settings: this.originalPlayback.settings\n\t });\n\t this.src = this.originalPlayback.src;\n\t this.playbackProxy = new _chromecast_playback2['default'](options);\n\t this.playbackProxy.render();\n\t this.core.$el.addClass('chromecast-active');\n\t\n\t this.mediaSession = mediaSession;\n\t\n\t this.originalPlayback.$el.remove();\n\t\n\t var container = this.container;\n\t container.$el.append(this.playbackProxy.$el);\n\t container.stopListening();\n\t container.playback = this.playbackProxy;\n\t container.bindEvents();\n\t container.settingsUpdate();\n\t }\n\t }, {\n\t key: 'loadMediaError',\n\t value: function loadMediaError(e) {\n\t _clappr.Log.warn(this.name, 'media error', e);\n\t }\n\t }, {\n\t key: 'newSession',\n\t value: function newSession(session) {\n\t var _this4 = this;\n\t\n\t this.session = session;\n\t this.deviceState = DEVICE_STATE.ACTIVE;\n\t this.renderConnected();\n\t\n\t session.addUpdateListener(function () {\n\t return _this4.sessionUpdateListener();\n\t });\n\t\n\t this.containerPlay();\n\t }\n\t }, {\n\t key: 'sessionStopped',\n\t value: function sessionStopped() {\n\t this.renderDisconnected();\n\t\n\t var time = this.currentTime;\n\t\n\t var playerState = undefined;\n\t if (this.mediaSession) {\n\t playerState = this.mediaSession.playerState;\n\t this.mediaSession = null;\n\t }\n\t\n\t this.core.$el.removeClass('chromecast-active');\n\t this.core.load(this.src || this.core.options.sources);\n\t\n\t var container = this.container;\n\t\n\t if (this.playbackProxy) {\n\t if (this.playbackProxy.isPlaying() || playerState === 'PAUSED') {\n\t container.once(_clappr.Events.CONTAINER_READY, function () {\n\t container.play();\n\t container.playback.seek(100 * time / container.getDuration());\n\t });\n\t }\n\t this.playbackProxy.stop();\n\t }\n\t }\n\t }, {\n\t key: 'loadMedia',\n\t value: function loadMedia() {\n\t var _this5 = this;\n\t\n\t this.container.pause();\n\t var src = this.container.options.src;\n\t _clappr.Log.debug(this.name, 'loading... ' + src);\n\t var mediaInfo = this.createMediaInfo(src);\n\t var request = new chrome.cast.media.LoadRequest(mediaInfo);\n\t request.autoplay = true;\n\t if (this.currentTime) {\n\t request.currentTime = this.currentTime;\n\t }\n\t this.session.loadMedia(request, function (mediaSession) {\n\t return _this5.loadMediaSuccess('loadMedia', mediaSession);\n\t }, function (e) {\n\t return _this5.loadMediaError(e);\n\t });\n\t }\n\t }, {\n\t key: 'createMediaInfo',\n\t value: function createMediaInfo(src) {\n\t var mimeType = ChromecastPlugin.mimeTypeFor(src);\n\t var mediaInfo = new chrome.cast.media.MediaInfo(src);\n\t mediaInfo.contentType = this.options.contentType || mimeType;\n\t mediaInfo.customData = this.options.customData;\n\t var metadata = this.createMediaMetadata();\n\t mediaInfo.metadata = metadata;\n\t return mediaInfo;\n\t }\n\t }, {\n\t key: 'createMediaMetadata',\n\t value: function createMediaMetadata() {\n\t this.options.media || (this.options.media = {});\n\t var type = this.options.media.type;\n\t\n\t var metadata = this.createCastMediaMetadata(type);\n\t metadata.title = this.options.media.title;\n\t metadata.subtitle = this.options.media.subtitle;\n\t metadata.releaseDate = this.options.media.releaseDate;\n\t\n\t if (type === ChromecastPlugin.TvShow) {\n\t metadata.episode = this.options.media.episode;\n\t metadata.originalAirdate = this.options.media.originalAirdate;\n\t metadata.season = this.options.media.season;\n\t metadata.seriesTitle = this.options.media.seriesTitle;\n\t } else if (type === ChromecastPlugin.Movie) {\n\t metadata.studio = this.options.media.studio;\n\t }\n\t\n\t if (this.options.media.images) {\n\t metadata.images = this.options.media.images.map(function (url) {\n\t return new chrome.cast.Image(url);\n\t });\n\t }\n\t if (!metadata.images && this.options.poster) {\n\t metadata.images = [new chrome.cast.Image(this.options.poster)];\n\t }\n\t if (!metadata.images && this.core.options.poster) {\n\t metadata.images = [new chrome.cast.Image(this.core.options.poster)];\n\t }\n\t return metadata;\n\t }\n\t }, {\n\t key: 'createCastMediaMetadata',\n\t value: function createCastMediaMetadata(type) {\n\t switch (type) {\n\t case ChromecastPlugin.Movie:\n\t return new chrome.cast.media.MovieMediaMetadata();\n\t case ChromecastPlugin.TvShow:\n\t return new chrome.cast.media.TvShowMediaMetadata();\n\t default:\n\t return new chrome.cast.media.GenericMediaMetadata();\n\t }\n\t }\n\t }, {\n\t key: 'show',\n\t value: function show() {\n\t this.$el.show();\n\t }\n\t }, {\n\t key: 'hide',\n\t value: function hide() {\n\t this.$el.hide();\n\t }\n\t }, {\n\t key: 'click',\n\t value: function click() {\n\t var _this6 = this;\n\t\n\t this.currentTime = this.container.getCurrentTime();\n\t this.container.pause();\n\t chrome.cast.requestSession(function (session) {\n\t return _this6.launchSuccess(session);\n\t }, function (e) {\n\t return _this6.launchError(e);\n\t });\n\t if (!this.session) {\n\t (function () {\n\t var position = 0;\n\t var connectingIcons = [_publicIc_cast0_24dpSvg2['default'], _publicIc_cast1_24dpSvg2['default'], _publicIc_cast2_24dpSvg2['default']];\n\t clearInterval(_this6.connectAnimInterval);\n\t _this6.connectAnimInterval = setInterval(function () {\n\t _this6.$el.html(connectingIcons[position]);\n\t position = (position + 1) % 3;\n\t }, 600);\n\t _this6.core.mediaControl.setKeepVisible();\n\t })();\n\t }\n\t }\n\t }, {\n\t key: 'containerChanged',\n\t value: function containerChanged() {\n\t this.stopListening();\n\t this.bindEvents();\n\t }\n\t }, {\n\t key: 'containerTimeUpdate',\n\t value: function containerTimeUpdate(timeProgress) {\n\t this.currentTime = timeProgress.current;\n\t }\n\t }, {\n\t key: 'containerPlay',\n\t value: function containerPlay() {\n\t if (this.session && (!this.mediaSession || this.mediaSession.playerState === 'IDLE' || this.mediaSession.playerState === 'PAUSED')) {\n\t _clappr.Log.debug(this.name, 'load media');\n\t this.loadMedia();\n\t }\n\t }\n\t }, {\n\t key: 'renderConnected',\n\t value: function renderConnected() {\n\t this.$el.html(_publicIc_cast_connected_24dpSvg2['default']);\n\t }\n\t }, {\n\t key: 'renderDisconnected',\n\t value: function renderDisconnected() {\n\t this.$el.html(_publicIc_cast_24dpSvg2['default']);\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t this.session ? this.renderConnected() : this.renderDisconnected();\n\t this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').append(this.$el);\n\t this.$style && this.$style.remove();\n\t this.$style = _clappr.Styler.getStyleFor(_publicStyleScss2['default'], { baseUrl: this.core.options.baseUrl });\n\t this.core.$el.append(this.$style);\n\t return this;\n\t }\n\t }], [{\n\t key: 'mimeTypeFor',\n\t value: function mimeTypeFor(srcUrl) {\n\t var extension = (srcUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1];\n\t if (MIMETYPES[extension]) {\n\t return MIMETYPES[extension];\n\t } else if (srcUrl.indexOf('.ism') > -1) {\n\t return 'application/vnd.ms-sstr+xml';\n\t }\n\t }\n\t }]);\n\t\n\t return ChromecastPlugin;\n\t})(_clappr.UICorePlugin);\n\t\n\texports['default'] = ChromecastPlugin;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/*!******************************************************************************************!*\\\n !*** external {\"amd\":\"clappr\",\"commonjs\":\"clappr\",\"commonjs2\":\"clappr\",\"root\":\"Clappr\"} ***!\n \\******************************************************************************************/\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/*!************************************!*\\\n !*** ./src/chromecast_playback.js ***!\n \\************************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _clappr = __webpack_require__(/*! clappr */ 1);\n\t\n\tvar _publicChromecastHtml = __webpack_require__(/*! ./public/chromecast.html */ 3);\n\t\n\tvar _publicChromecastHtml2 = _interopRequireDefault(_publicChromecastHtml);\n\t\n\tvar TICK_INTERVAL = 100;\n\t\n\tvar ChromecastPlayback = (function (_Playback) {\n\t _inherits(ChromecastPlayback, _Playback);\n\t\n\t _createClass(ChromecastPlayback, [{\n\t key: 'name',\n\t get: function get() {\n\t return 'chromecast_playback';\n\t }\n\t }, {\n\t key: 'template',\n\t get: function get() {\n\t return (0, _clappr.template)(_publicChromecastHtml2['default']);\n\t }\n\t }, {\n\t key: 'attributes',\n\t get: function get() {\n\t return { 'class': 'chromecast-playback' };\n\t }\n\t }, {\n\t key: 'isReady',\n\t get: function get() {\n\t return true;\n\t }\n\t }]);\n\t\n\t function ChromecastPlayback(options) {\n\t var _this = this;\n\t\n\t _classCallCheck(this, ChromecastPlayback);\n\t\n\t _get(Object.getPrototypeOf(ChromecastPlayback.prototype), 'constructor', this).call(this, options);\n\t this.src = options.src;\n\t this.currentMedia = options.currentMedia;\n\t this.mediaControl = options.mediaControl;\n\t this.currentMedia.addUpdateListener(function () {\n\t return _this.onMediaStatusUpdate();\n\t });\n\t this.settings = options.settings;\n\t var noVolume = function noVolume(name) {\n\t return name != 'volume';\n\t };\n\t this.settings['default'] && (this.settings['default'] = this.settings['default'].filter(noVolume));\n\t this.settings.left && (this.settings.left = this.settings.left.filter(noVolume));\n\t this.settings.right && (this.settings.right = this.settings.right.filter(noVolume));\n\t }\n\t\n\t _createClass(ChromecastPlayback, [{\n\t key: 'render',\n\t value: function render() {\n\t var template = this.template();\n\t this.$el.html(template);\n\t if (this.options.poster) {\n\t this.$('.chromecast-playback-background').css('background-image', 'url(' + this.options.poster + ')');\n\t } else {\n\t this.$('.chromecast-playback-background').css('background-color', '#666');\n\t }\n\t }\n\t }, {\n\t key: 'play',\n\t value: function play() {\n\t this.currentMedia.play();\n\t }\n\t }, {\n\t key: 'pause',\n\t value: function pause() {\n\t this.stopTimer();\n\t this.currentMedia.pause();\n\t if (this.getPlaybackType() === _clappr.Playback.LIVE) {\n\t this.trigger(_clappr.Events.PLAYBACK_DVR, true);\n\t }\n\t }\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t this.stopTimer();\n\t this.currentMedia.pause(); // FIXME: properly handle media stop\n\t }\n\t }, {\n\t key: 'seek',\n\t value: function seek(time) {\n\t var _this2 = this;\n\t\n\t this.stopTimer();\n\t var request = new chrome.cast.media.SeekRequest();\n\t request.currentTime = time;\n\t this.currentMedia.seek(request, function () {\n\t return _this2.startTimer();\n\t }, function () {\n\t return _clappr.Log.warn('seek failed');\n\t });\n\t if (this.getPlaybackType() === _clappr.Playback.LIVE) {\n\t // assume live if time within 30 seconds of end of live stream\n\t this.trigger(_clappr.Events.PLAYBACK_DVR, time < this.getDuration() - 30);\n\t }\n\t }\n\t }, {\n\t key: 'seekPercentage',\n\t value: function seekPercentage(percentage) {\n\t if (percentage >= 0 && percentage <= 100) {\n\t var duration = this.getDuration();\n\t this.seek(percentage * duration / 100);\n\t }\n\t }\n\t }, {\n\t key: 'startTimer',\n\t value: function startTimer() {\n\t var _this3 = this;\n\t\n\t this.timer = setInterval(function () {\n\t return _this3.updateMediaControl();\n\t }, TICK_INTERVAL);\n\t }\n\t }, {\n\t key: 'stopTimer',\n\t value: function stopTimer() {\n\t clearInterval(this.timer);\n\t this.timer = null;\n\t }\n\t }, {\n\t key: 'getDuration',\n\t value: function getDuration() {\n\t return this.currentMedia.media.duration;\n\t }\n\t }, {\n\t key: 'isPlaying',\n\t value: function isPlaying() {\n\t return this.currentMedia.playerState === 'PLAYING' || this.currentMedia.playerState === 'BUFFERING';\n\t }\n\t }, {\n\t key: 'getPlaybackType',\n\t value: function getPlaybackType() {\n\t return !!this.currentMedia.liveSeekableRange ? _clappr.Playback.LIVE : _clappr.Playback.VOD;\n\t }\n\t }, {\n\t key: 'onMediaStatusUpdate',\n\t value: function onMediaStatusUpdate() {\n\t this.mediaControl.changeTogglePlay();\n\t if (this.isPlaying() && !this.timer) {\n\t this.startTimer();\n\t }\n\t\n\t if (this.currentMedia.playerState === 'BUFFERING') {\n\t this.isBuffering = true;\n\t this.trigger(_clappr.Events.PLAYBACK_BUFFERING, this.name);\n\t } else if (this.currentMedia.playerState === 'PLAYING') {\n\t if (this.isBuffering) {\n\t this.isBuffering = false;\n\t this.trigger(_clappr.Events.PLAYBACK_BUFFERFULL, this.name);\n\t }\n\t if (this.prevState !== this.currentMedia.playerState) {\n\t this.trigger(_clappr.Events.PLAYBACK_PLAY, this.name);\n\t }\n\t } else if (this.currentMedia.playerState === 'IDLE') {\n\t if (this.isBuffering) {\n\t this.isBuffering = false;\n\t this.trigger(_clappr.Events.PLAYBACK_BUFFERFULL, this.name);\n\t }\n\t this.trigger(_clappr.Events.PLAYBACK_ENDED, this.name);\n\t } else if (this.currentMedia.playerState === 'PAUSED') {\n\t if (this.prevState !== this.currentMedia.playerState) {\n\t this.trigger(_clappr.Events.PLAYBACK_PAUSE, this.name);\n\t }\n\t }\n\t\n\t this.prevState = this.currentMedia.playerState;\n\t }\n\t }, {\n\t key: 'updateMediaControl',\n\t value: function updateMediaControl() {\n\t var position = this.currentMedia.getEstimatedTime();\n\t var duration = this.currentMedia.media.duration;\n\t this.trigger(_clappr.Events.PLAYBACK_TIMEUPDATE, { current: position, total: duration }, this.name);\n\t }\n\t }, {\n\t key: 'show',\n\t value: function show() {\n\t this.$el.show();\n\t }\n\t }, {\n\t key: 'hide',\n\t value: function hide() {\n\t this.$el.hide();\n\t }\n\t }]);\n\t\n\t return ChromecastPlayback;\n\t})(_clappr.Playback);\n\t\n\texports['default'] = ChromecastPlayback;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 3 */\n/*!************************************!*\\\n !*** ./src/public/chromecast.html ***!\n \\************************************/\n/***/ (function(module, exports) {\n\n\tmodule.exports = \"
\";\n\n/***/ }),\n/* 4 */\n/*!*******************************!*\\\n !*** ./src/public/style.scss ***!\n \\*******************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(/*! ../../~/css-loader/lib/css-base.js */ 5)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".chromecast-playback{height:100%;width:100%}.chromecast-playback .chromecast-playback-background,.chromecast-playback .chromecast-playback-overlay{position:absolute;height:100%;width:100%}.chromecast-playback .chromecast-playback-background{background-size:contain}.chromecast-playback .chromecast-playback-overlay{background-color:#000;opacity:.4}.chromecast-button{background:transparent;border:0;width:32px;height:32px;font-size:22px;line-height:32px;letter-spacing:0;margin:0 6px;color:#fff;opacity:.5;vertical-align:middle;text-align:left;cursor:pointer;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:all .1s ease}.chromecast-button:hover{opacity:.75;text-shadow:hsla(0,0%,100%,.8) 0 0 5px}.chromecast-button:focus{outline:none}.chromecast-button svg{width:24px;height:24px}.chromecast-button svg #cast,.chromecast-button svg #cast-on,.chromecast-button svg #Path{fill:#fff;stroke:#fff;stroke-width:.5px}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ }),\n/* 5 */\n/*!**************************************!*\\\n !*** ./~/css-loader/lib/css-base.js ***!\n \\**************************************/\n/***/ (function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ }),\n/* 6 */\n/*!**********************************!*\\\n !*** ./~/lodash.assign/index.js ***!\n \\**********************************/\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.2.0 (Custom Build)