{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 1732f23e5952e27a77e7","webpack:///./src/js/utils.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/js/icons.js","webpack:///./node_modules/art-template/lib/runtime.js","webpack:///./src/template/video.art","webpack:///./src/js/index.js","webpack:///./src/js/player.js","webpack:///./node_modules/promise-polyfill/lib/index.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./src/js/options.js","webpack:///./src/js/api.js","webpack:///./src/js/i18n.js","webpack:///./src/js/template.js","webpack:///./src/assets/play.svg","webpack:///./src/assets/pause.svg","webpack:///./src/assets/volume-up.svg","webpack:///./src/assets/volume-down.svg","webpack:///./src/assets/volume-off.svg","webpack:///./src/assets/full.svg","webpack:///./src/assets/full-web.svg","webpack:///./src/assets/setting.svg","webpack:///./src/assets/right.svg","webpack:///./src/assets/comment.svg","webpack:///./src/assets/comment-off.svg","webpack:///./src/assets/send.svg","webpack:///./src/assets/pallette.svg","webpack:///./src/assets/camera.svg","webpack:///./src/assets/subtitle.svg","webpack:///./src/assets/loading.svg","webpack:///./src/template/player.art","webpack:///./node_modules/art-template/lib/compile/runtime.js","webpack:///./node_modules/detect-node/index.js","webpack:///./src/js/danmaku.js","webpack:///./src/js/events.js","webpack:///./src/js/fullscreen.js","webpack:///./src/js/user.js","webpack:///./src/js/subtitle.js","webpack:///./src/js/bar.js","webpack:///./src/js/time.js","webpack:///./src/js/bezel.js","webpack:///./src/js/controller.js","webpack:///./src/js/thumbnails.js","webpack:///./src/js/setting.js","webpack:///./src/js/comment.js","webpack:///./src/js/hotkey.js","webpack:///./src/js/contextmenu.js","webpack:///./src/js/info-panel.js"],"names":["root","factory","exports","module","define","amd","self","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","isMobile","test","window","navigator","userAgent","utils","secondToTime","second","add0","num","hour","Math","floor","min","sec","map","join","getElementViewLeft","element","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","document","body","scrollLeft","documentElement","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","getScrollPosition","left","pageXOffset","top","pageYOffset","scrollTop","setScrollPosition","_ref","_ref$left","undefined","_ref$top","isFirefox","scrollTo","isChrome","storage","set","key","localStorage","setItem","getItem","cumulativeOffset","offsetTop","nameMap","dragStart","dragMove","dragEnd","default","g","_typeof","Symbol","iterator","obj","constructor","Function","eval","e","_interopRequireDefault","_play","_play2","_pause","_pause2","_volumeUp","_volumeUp2","_volumeDown","_volumeDown2","_volumeOff","_volumeOff2","_full","_full2","_fullWeb","_fullWeb2","_setting","_setting2","_right","_right2","_comment","_comment2","_commentOff","_commentOff2","_send","_send2","_pallette","_pallette2","_camera","_camera2","_subtitle","_subtitle2","_loading","_loading2","Icons","play","pause","volumeUp","volumeDown","volumeOff","full","fullWeb","setting","right","comment","commentOff","send","pallette","camera","subtitle","loading","$imports","$data","$$out","enableSubtitle","pic","$escape","screenshot","preload","url","type","_player","_player2","console","log","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","protoProps","staticProps","_promisePolyfill","_promisePolyfill2","_utils","_utils2","_options","_options2","_i18n","_i18n2","_template","_template2","_icons","_icons2","_danmaku","_danmaku2","_events","_events2","_fullscreen","_fullscreen2","_user","_user2","_bar","_bar2","_time","_time2","_bezel","_bezel2","_controller","_controller2","_hotkey","_hotkey2","_contextmenu","_contextmenu2","_infoPanel","_infoPanel2","_video","_video2","index","instances","DPlayer","options","_this","video","quality","qualityIndex","defaultQuality","tran","lang","events","user","container","classList","add","danmaku","live","arrow","offsetWidth","template","bar","bezel","fullScreen","controller","opacity","callback","setTimeout","danmakuLoading","style","display","autoplay","error","msg","notice","apiBackend","borderColor","theme","height","time","currentTime","unlimited","api","id","address","token","maximum","addition","addEventListener","focus","paused","hotkey","contextmenu","initVideo","infoPanel","push","max","duration","toFixed","seek","_this2","switch","playButton","innerHTML","resolve","catch","then","enable","remove","mutex","ended","disable","volume","volumeIcon","percentage","nostorage","nonotice","parseFloat","isNaN","formatPercentage","volumeBarWrapWrap","dataset","balloon","muted","switchVolumeIcon","on","danmakuAPI","poster","src","initMSE","ptime","reload","_this3","customType","toString","exec","Hls","isSupported","hls","loadSource","attachMedia","flvjs","flvPlayer","createPlayer","attachMediaElement","load","dashjs","MediaPlayer","create","initialize","WebTorrent","WEBRTC_SUPPORT","client","torrentId","torrent","files","find","file","endsWith","renderTo","_this4","dtime","buffered","end","loop","danIndex","videoEvents","trigger","hide","_this5","switchingQuality","qualityButton","videoHTML","videoEle","DOMParser","parseFromString","firstChild","videoWrap","insertBefore","getElementsByTagName","prevVideo","removeChild","text","_this6","arguments","noticeTime","clearTimeout","resize","rate","playbackRate","splice","indexOf","destroy","setImmediate","noop","bind","fn","thisArg","apply","Promise","_state","_handled","_value","_deferreds","doResolve","handle","deferred","_immediateFn","cb","onFulfilled","onRejected","reject","promise","ret","newValue","finale","_unhandledRejectionFn","len","Handler","done","reason","ex","setTimeoutFunc","prom","all","arr","res","val","args","remaining","Array","slice","race","values","err","warn","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","timeout","close","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","global","process","task","tasksByHandle","nextHandle","registerImmediate","run","runIfPresent","currentlyRunningATask","doc","attachTo","getPrototypeOf","nextTick","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","random","onGlobalMessage","event","source","data","attachEvent","MessageChannel","channel","port1","port2","createElement","html","script","onreadystatechange","appendChild","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","Item","array","title","browser","env","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","_api","_api2","defaultOption","getElementsByClassName","language","browserLanguage","toLowerCase","defaultKey","fontSize","bottom","color","click","player","triggle","link","SendXMLHttpRequest","success","fail","xhr","XMLHttpRequest","readyState","status","response","JSON","parse","responseText","code","open","stringify","endpoint","danmakuData","alert","read","i18n","tranTxt","zh-cn","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku content!","Set danmaku color","Set danmaku type","Show danmaku","This video fails to load","Switching to","Switched to","FF","REW","Unlimited danmaku","Send danmaku","Setting","Full screen","Web full screen","Send","Screenshot","Show subtitle","Hide subtitle","Volume","Live","Video info","zh-tw","Template","init","icons","volumeBar","querySelector","volumeBarWrap","volumeButton","playedBar","loadedBar","playedBarWrap","playedBarTime","controllerMask","settingButton","settingBox","mask","loopToggle","showDanmaku","showDanmakuToggle","unlimitDanmaku","unlimitDanmakuToggle","speed","speedItem","querySelectorAll","danmakuOpacityBar","danmakuOpacityBarWrap","danmakuOpacityBarWrapWrap","danmakuOpacityBox","commentInput","commentButton","commentSettingBox","commentSettingButton","commentSettingFill","commentSendButton","commentSendFill","commentColorSettingBox","browserFullButton","webFullButton","menu","menuItem","qualityList","camareButton","subtitleButton","subtitleButtonInner","barPreview","barWrap","infoPanelClose","infoVersion","infoFPS","infoType","infoUrl","infoResolution","infoDuration","infoDanmakuId","infoDanmakuApi","infoDanmakuAmount","$each","$value","$index","content","logo","bottm","xmlEscape","regexResult","ESCAPE_REG","result","lastIndex","char","charCodeAt","substring","detectNode","runtime","isArray","_i","Danmaku","danTunnel","dan","showing","_opacity","_measure","apiurl","endpoints","_readAllEndpoints","results","sort","a","b","requestAnimationFrame","frame","newAPI","clear","readCount","typeMap","author","htmlEncode","border","draw","items","itemHeight","danWidth","danHeight","offsetHeight","itemY","parseInt","danItemRight","ele","eleWidth","width","eleRight","getBoundingClientRect","danSpeed","getTunnel","tmp","_ret","v","j","danRight","docFragment","createDocumentFragment","itemWidth","tunnel","transform","context","measureStyle","getComputedStyle","getContext","font","getPropertyValue","measureText","str","replace","boolean","Events","playerEvents","info","FullScreen","lastScrollPosition","fullscreenchange","isFullScreen","contains","anotherType","anotherTypeOn","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","webkitEnterFullscreen","cancel","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","request","User","storageName","Subtitle","textTracks","track","oncuechange","cue","activeCues","getCueAsHTML","show","Bar","elements","played","loaded","direction","Time","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","types","lastPlayPos","currentPlayPos","bufferingDetected","loadingChecker","enableloadingChecker","progressChecker","enableprogressChecker","enablefpsChecker","initfpsChecker","fpsStart","fpsIndex","fpsCurrent","Date","fps","infoChecker","enableinfoChecker","update","Bezel","icon","_thumbnails","_thumbnails2","Controller","autoHideTimer","setAutoHide","initPlayButton","initThumbnails","initPlayedBar","initFullButton","initQualityButton","initScreenshotButton","initSubtitleButton","initVolumeButton","toggle","thumbnails","barWidth","videoHeight","videoWidth","thumbMove","clientX","changedTouches","clientWidth","thumbUp","removeEventListener","px","tx","move","innerText","volumeMove","_this7","switchQuality","_this8","canvas","drawImage","dataURL","toDataURL","href","download","_this9","_this10","disableAutoHide","isShow","Thumbnails","backgroundImage","position","backgroundPosition","ceil","checked","unlimit","danmakuMove","danmakuUp","Comment","toggleSetting","fill","hideSetting","keyCode","showSetting","blur","HotKey","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","_toConsumableArray","arr2","from","ContextMenu","clientRect","clientY","x","y","InfoPanel","beginTime","now"],"mappings":"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AAA9d,GAEc,uDAFdA,GAEgCG,EAAA6D,EAAA8Z,MAFhC9d,GAAA,wBjCo4DDA,GiC/3D6B,qCAAAgE,EAAAa,SAAiDb,EAAAa,QAAjDkZ,QAAA/d,GAAuE,yBAAvEA,GAAkGG,EAAlG6D,EAAAa,QAAAkZ,OAAA/d,GAAA,KjCq4D7BA,GiC/3DK,oOAAAgE,EAAAa,UAAA7E,GACiC,8CADjCA,GACiEG,EAAAmE,EAAA,uBADjEtE,GAAA,qBjCq4DLA,GiCl4DyC,iDjCm4DzCA,GiCn4D6Dqa,EAAAxa,QjCo4D7DG,GiC93D6E,oPjC+3D7EA,GiC/3DkGG,EAAAmE,EAAA,YjCg4DlGtE,GiC/3D4C,4EjCg4D5CA,GiCh4DiEqa,EAAA3a,SjCi4DjEM,GiC73DwD,sMjC83DxDA,GiC93DuFG,EAAAmE,EAAA,sBjC+3DvFtE,GiC73DiE,wGjC83DjEA,GiC93D4EG,EAAA0D,GjC+3D5E7D,GiC33DiE,gNjC43DjEA,GiC53D4EG,EAAA0D,GjC63D5E7D,GiCz3DiE,6MjC03DjEA,GiC13D4EG,EAAA0D,GjC23D5E7D,GiCv3DiE,6MjCw3DjEA,GiCx3D4EG,EAAA0D,GjCy3D5E7D,GiCr3DiE,6MjCs3DjEA,GiCt3D4EG,EAAA0D,GjCu3D5E7D,GiCn3DiE,6MjCo3DjEA,GiCp3D4EG,EAAA0D,GjCq3D5E7D,GiCh3DwD,uPjCi3DxDA,GiCj3DsFG,EAAAmE,EAAA,qBjCk3DtFtE,GiCh3DgE,uGjCi3DhEA,GiCj3D2EG,EAAA0D,GjCk3D3E7D,GiCj3DuB,6CjCk3DvBA,GiCl3DwCG,EAAAmE,EAAA,QjCm3DxCtE,GiCh3DgE,kIjCi3DhEA,GiCj3D2EG,EAAA0D,GjCk3D3E7D,GiCj3DuB,uDjCk3DvBA,GiCl3D4CG,EAAAmE,EAAA,YjCm3D5CtE,GiCh3DgE,kIjCi3DhEA,GiCj3D2EG,EAAA0D,GjCk3D3E7D,GiCj3DuB,gDjCk3DvBA,GiCl3D2CG,EAAAmE,EAAA,WjCm3D3CtE,GiC/2DmE,gJjCg3DnEA,GiCh3DyGG,EAAAmE,EAAA,6BjCi3DzGtE,GiCh3DkE,2FjCi3DlEA,GiCj3DoFG,EAAAm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","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\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();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 5);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar isMobile = /mobile/i.test(window.navigator.userAgent);\nvar utils = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var hour = Math.floor(second / 3600);\n var min = Math.floor((second - hour * 3600) / 60);\n var sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n },\n getElementViewLeft: function getElementViewLeft(element) {\n var actualLeft = element.offsetLeft;\n var current = element.offsetParent;\n var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n } else {\n while (current !== null && current !== element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n return actualLeft - elementScrollLeft;\n },\n getScrollPosition: function getScrollPosition() {\n return {\n left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n };\n },\n setScrollPosition: function setScrollPosition(_ref) {\n var _ref$left = _ref.left, left = _ref$left === undefined ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === undefined ? 0 : _ref$top;\n if (this.isFirefox) {\n document.documentElement.scrollLeft = left;\n document.documentElement.scrollTop = top;\n } else {\n window.scrollTo(left, top);\n }\n },\n isMobile: isMobile,\n isFirefox: /firefox/i.test(window.navigator.userAgent),\n isChrome: /chrome/i.test(window.navigator.userAgent),\n storage: {\n set: function set(key, value) {\n localStorage.setItem(key, value);\n },\n get: function get(key) {\n return localStorage.getItem(key);\n }\n },\n cumulativeOffset: function cumulativeOffset(element) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n return {\n top: top,\n left: left\n };\n },\n nameMap: {\n dragStart: isMobile ? 'touchstart' : 'mousedown',\n dragMove: isMobile ? 'touchmove' : 'mousemove',\n dragEnd: isMobile ? 'touchend' : 'mouseup'\n }\n};\nexports.default = utils;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar g;\ng = function () {\n return this;\n}();\ntry {\n g = g || Function('return this')() || (1, eval)('this');\n} catch (e) {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object')\n g = window;\n}\nmodule.exports = g;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _play = __webpack_require__(16);\nvar _play2 = _interopRequireDefault(_play);\nvar _pause = __webpack_require__(17);\nvar _pause2 = _interopRequireDefault(_pause);\nvar _volumeUp = __webpack_require__(18);\nvar _volumeUp2 = _interopRequireDefault(_volumeUp);\nvar _volumeDown = __webpack_require__(19);\nvar _volumeDown2 = _interopRequireDefault(_volumeDown);\nvar _volumeOff = __webpack_require__(20);\nvar _volumeOff2 = _interopRequireDefault(_volumeOff);\nvar _full = __webpack_require__(21);\nvar _full2 = _interopRequireDefault(_full);\nvar _fullWeb = __webpack_require__(22);\nvar _fullWeb2 = _interopRequireDefault(_fullWeb);\nvar _setting = __webpack_require__(23);\nvar _setting2 = _interopRequireDefault(_setting);\nvar _right = __webpack_require__(24);\nvar _right2 = _interopRequireDefault(_right);\nvar _comment = __webpack_require__(25);\nvar _comment2 = _interopRequireDefault(_comment);\nvar _commentOff = __webpack_require__(26);\nvar _commentOff2 = _interopRequireDefault(_commentOff);\nvar _send = __webpack_require__(27);\nvar _send2 = _interopRequireDefault(_send);\nvar _pallette = __webpack_require__(28);\nvar _pallette2 = _interopRequireDefault(_pallette);\nvar _camera = __webpack_require__(29);\nvar _camera2 = _interopRequireDefault(_camera);\nvar _subtitle = __webpack_require__(30);\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _loading = __webpack_require__(31);\nvar _loading2 = _interopRequireDefault(_loading);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nvar Icons = {\n play: _play2.default,\n pause: _pause2.default,\n volumeUp: _volumeUp2.default,\n volumeDown: _volumeDown2.default,\n volumeOff: _volumeOff2.default,\n full: _full2.default,\n fullWeb: _fullWeb2.default,\n setting: _setting2.default,\n right: _right2.default,\n comment: _comment2.default,\n commentOff: _commentOff2.default,\n send: _send2.default,\n pallette: _pallette2.default,\n camera: _camera2.default,\n subtitle: _subtitle2.default,\n loading: _loading2.default\n};\nexports.default = Icons;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = __webpack_require__(33);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $imports = __webpack_require__(3);\nmodule.exports = function ($data) {\n 'use strict';\n $data = $data || {};\n var $$out = '', enableSubtitle = $data.enableSubtitle, subtitle = $data.subtitle, current = $data.current, pic = $data.pic, $escape = $imports.$escape, screenshot = $data.screenshot, preload = $data.preload, url = $data.url;\n var enableSubtitle = subtitle && subtitle.type === 'webvtt';\n $$out += '\\n time) {\n this.notice(this.tran('REW') + ' ' + (this.video.currentTime - time).toFixed(0) + ' ' + this.tran('s'));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.bar.set('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this2 = this;\n this.paused = false;\n if (this.video.paused) {\n this.bezel.switch(_icons2.default.play);\n }\n this.template.playButton.innerHTML = _icons2.default.pause;\n var playedPromise = _promisePolyfill2.default.resolve(this.video.play());\n playedPromise.catch(function () {\n _this2.pause();\n }).then(function () {\n });\n this.time.enable('loading');\n this.time.enable('progress');\n this.container.classList.remove('dplayer-paused');\n this.container.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n if (this.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (this !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.container.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.switch(_icons2.default.pause);\n }\n this.ended = false;\n this.template.playButton.innerHTML = _icons2.default.play;\n this.video.pause();\n this.time.disable('loading');\n this.time.disable('progress');\n this.container.classList.remove('dplayer-playing');\n this.container.classList.add('dplayer-paused');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeIcon.innerHTML = _icons2.default.volumeUp;\n } else if (this.volume() > 0) {\n this.template.volumeIcon.innerHTML = _icons2.default.volumeDown;\n } else {\n this.template.volumeIcon.innerHTML = _icons2.default.volumeOff;\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage, nonotice) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.bar.set('volume', percentage, 'width');\n var formatPercentage = (percentage * 100).toFixed(0) + '%';\n this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n if (!nonotice) {\n this.notice(this.tran('Volume') + ' ' + (percentage * 100).toFixed(0) + '%');\n }\n this.video.volume = percentage;\n if (this.video.muted) {\n this.video.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.video.volume;\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'switchVideo',\n value: function switchVideo(video, danmakuAPI) {\n this.pause();\n this.video.poster = video.pic ? video.pic : '';\n this.video.src = video.url;\n this.initMSE(this.video, video.type || 'auto');\n if (danmakuAPI) {\n this.template.danmakuLoading.style.display = 'block';\n this.bar.set('played', 0, 'width');\n this.bar.set('loaded', 0, 'width');\n this.template.ptime.innerHTML = '00:00';\n this.template.danmaku.innerHTML = '';\n if (this.danmaku) {\n this.danmaku.reload({\n id: danmakuAPI.id,\n address: danmakuAPI.api,\n token: danmakuAPI.token,\n maximum: danmakuAPI.maximum,\n addition: danmakuAPI.addition,\n user: danmakuAPI.user\n });\n }\n }\n }\n },\n {\n key: 'initMSE',\n value: function initMSE(video, type) {\n var _this3 = this;\n this.type = type;\n if (this.options.video.customType && this.options.video.customType[type]) {\n if (Object.prototype.toString.call(this.options.video.customType[type]) === '[object Function]') {\n this.options.video.customType[type](this.video, this);\n } else {\n console.error('Illegal customType: ' + type);\n }\n } else {\n if (this.type === 'auto') {\n if (/m3u8(#|\\?|$)/i.exec(video.src)) {\n this.type = 'hls';\n } else if (/.flv(#|\\?|$)/i.exec(video.src)) {\n this.type = 'flv';\n } else if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n this.type = 'dash';\n } else {\n this.type = 'normal';\n }\n }\n switch (this.type) {\n case 'hls':\n if (Hls) {\n if (Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n } else {\n this.notice('Error: Hls is not supported.');\n }\n } else {\n this.notice('Error: Can\\'t find Hls.');\n }\n break;\n case 'flv':\n if (flvjs && flvjs.isSupported()) {\n if (flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n } else {\n this.notice('Error: flvjs is not supported.');\n }\n } else {\n this.notice('Error: Can\\'t find flvjs.');\n }\n break;\n case 'dash':\n if (dashjs) {\n dashjs.MediaPlayer().create().initialize(video, video.src, false);\n } else {\n this.notice('Error: Can\\'t find dashjs.');\n }\n break;\n case 'webtorrent':\n if (WebTorrent) {\n if (WebTorrent.WEBRTC_SUPPORT) {\n this.container.classList.add('dplayer-loading');\n var client = new WebTorrent();\n var torrentId = video.src;\n client.add(torrentId, function (torrent) {\n var file = torrent.files.find(function (file) {\n return file.name.endsWith('.mp4');\n });\n file.renderTo(_this3.video, { autoplay: _this3.options.autoplay }, function () {\n _this3.container.classList.remove('dplayer-loading');\n });\n });\n } else {\n this.notice('Error: Webtorrent is not supported.');\n }\n } else {\n this.notice('Error: Can\\'t find Webtorrent.');\n }\n break;\n }\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this4 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this4.template.dtime.innerHTML = _utils2.default.secondToTime(video.duration);\n }\n });\n this.on('progress', function () {\n var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n _this4.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this4.tran && _this4.notice && _this4.type !== 'webtorrent' & _this4.notice(_this4.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this4.bar.set('played', 1, 'width');\n if (!_this4.setting.loop) {\n _this4.ended = true;\n _this4.pause();\n } else {\n _this4.seek(0);\n video.play();\n }\n if (_this4.danmaku) {\n _this4.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this4.paused) {\n _this4.play();\n }\n });\n this.on('pause', function () {\n if (!_this4.paused) {\n _this4.pause();\n }\n });\n var _loop = function _loop(i) {\n video.addEventListener(_this4.events.videoEvents[i], function () {\n _this4.events.trigger(_this4.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop(i);\n }\n this.volume(this.user.get('volume'), true, true);\n if (this.options.subtitle) {\n this.subtitle = new _subtitle2.default(this.template.subtitle, this.video, this.options.subtitle, this.events);\n if (!this.user.get('subtitle')) {\n this.subtitle.hide();\n }\n }\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this5 = this;\n if (this.qualityIndex === index || this.switchingQuality) {\n return;\n } else {\n this.qualityIndex = index;\n }\n this.switchingQuality = true;\n this.quality = this.options.video.quality[index];\n this.template.qualityButton.innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = (0, _video2.default)({\n current: false,\n pic: null,\n screenshot: this.options.screenshot,\n preload: 'auto',\n url: this.quality.url,\n subtitle: this.options.subtitle\n });\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.options.video.type);\n this.seek(this.prevVideo.currentTime);\n this.notice(this.tran('Switching to') + ' ' + this.quality.name + ' ' + this.tran('quality'), -1);\n this.events.trigger('quality_start', this.quality);\n this.on('canplay', function () {\n if (_this5.prevVideo) {\n if (_this5.video.currentTime !== _this5.prevVideo.currentTime) {\n _this5.seek(_this5.prevVideo.currentTime);\n return;\n }\n _this5.template.videoWrap.removeChild(_this5.prevVideo);\n _this5.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this5.video.play();\n }\n _this5.prevVideo = null;\n _this5.notice(_this5.tran('Switched to') + ' ' + _this5.quality.name + ' ' + _this5.tran('quality'));\n _this5.switchingQuality = false;\n _this5.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'notice',\n value: function notice(text) {\n var _this6 = this;\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n this.template.notice.innerHTML = text;\n this.template.notice.style.opacity = opacity;\n if (this.noticeTime) {\n clearTimeout(this.noticeTime);\n }\n this.events.trigger('notice_show', text);\n this.noticeTime = setTimeout(function () {\n _this6.template.notice.style.opacity = 0;\n _this6.events.trigger('notice_hide');\n }, time);\n }\n },\n {\n key: 'resize',\n value: function resize() {\n if (this.danmaku) {\n this.danmaku.resize();\n }\n this.events.trigger('resize');\n }\n },\n {\n key: 'speed',\n value: function speed(rate) {\n this.video.playbackRate = rate;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.controller.destroy();\n this.time.destroy();\n this.video.src = '';\n this.container.innerHTML = '';\n this.events.trigger('destroy');\n for (var key in this) {\n if (this.hasOwnProperty(key) && key !== 'paused') {\n delete this[key];\n }\n }\n }\n }\n ]);\n return DPlayer;\n}();\nexports.default = DPlayer;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nmodule.exports = Promise;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9).setImmediate))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar apply = Function.prototype.apply;\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {\n};\nTimeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n};\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n__webpack_require__(10);\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, process) {\n(function (global, undefined) {\n 'use strict';\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1;\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n if (typeof callback !== 'function') {\n callback = new Function('' + callback);\n }\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n if (currentlyRunningATask) {\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage('', '*');\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n var messagePrefix = 'setImmediate$' + Math.random() + '$';\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === 'string' && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener('message', onGlobalMessage, false);\n } else {\n global.attachEvent('onmessage', onGlobalMessage);\n }\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, '*');\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function registerImmediate(handle) {\n var script = doc.createElement('script');\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n if ({}.toString.call(global.process) === '[object process]') {\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n installMessageChannelImplementation();\n } else if (doc && 'onreadystatechange' in doc.createElement('script')) {\n installReadyStateChangeImplementation();\n } else {\n installSetTimeoutImplementation();\n }\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === 'undefined' ? typeof global === 'undefined' ? undefined : global : self));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(11)))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar process = module.exports = {};\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n}());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = '';\nprocess.versions = {};\nfunction noop() {\n}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _api = __webpack_require__(13);\nvar _api2 = _interopRequireDefault(_api);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('dplayer')[0],\n live: false,\n autoplay: false,\n theme: '#b7daff',\n loop: false,\n lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n screenshot: false,\n hotkey: true,\n preload: 'auto',\n volume: 0.7,\n apiBackend: _api2.default,\n video: {},\n contextmenu: [],\n mutex: true\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (options.video) {\n !options.video.type && (options.video.type = 'auto');\n }\n if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n }\n if (options.subtitle) {\n !options.subtitle.type && (options.subtitle.type = 'webvtt');\n !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n !options.subtitle.color && (options.subtitle.color = '#fff');\n }\n if (options.video.quality) {\n options.video.url = [options.video.quality[options.video.defaultQuality].url];\n }\n if (options.lang) {\n options.lang = options.lang.toLowerCase();\n }\n options.contextmenu = options.contextmenu.concat([\n {\n text: 'Video info',\n click: function click(player) {\n player.infoPanel.triggle();\n }\n },\n {\n text: 'About author',\n link: 'https://diygod.me'\n },\n {\n text: 'DPlayer v' + \"1.22.0\",\n link: 'https://github.com/MoePlayer/DPlayer'\n }\n ]);\n return options;\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar SendXMLHttpRequest = function SendXMLHttpRequest(url, data, success, error, fail) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n var response = JSON.parse(xhr.responseText);\n if (response.code !== 0) {\n return error(xhr, response);\n }\n return success(xhr, response);\n }\n fail(xhr);\n }\n };\n xhr.open(data !== null ? 'POST' : 'GET', url, true);\n xhr.send(data !== null ? JSON.stringify(data) : null);\n};\nexports.default = {\n send: function send(endpoint, danmakuData, callback) {\n SendXMLHttpRequest(endpoint, danmakuData, function (xhr, response) {\n console.log('Post danmaku: ', response);\n if (callback) {\n callback();\n }\n }, function (xhr, response) {\n alert(response.msg);\n }, function (xhr) {\n console.log('Request was unsuccessful: ' + xhr.status);\n });\n },\n read: function read(endpoint, callback) {\n SendXMLHttpRequest(endpoint, null, function (xhr, response) {\n callback(null, response.danmaku);\n }, function (xhr, response) {\n callback({\n status: xhr.status,\n response: response\n });\n }, function (xhr) {\n callback({\n status: xhr.status,\n response: null\n });\n });\n }\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction i18n(lang) {\n var _this = this;\n this.lang = lang;\n this.tran = function (text) {\n if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n return tranTxt[_this.lang][text];\n } else {\n return text;\n }\n };\n}\nvar tranTxt = {\n 'zh-cn': {\n 'Danmaku is loading': '弹幕加载中',\n 'Top': '顶部',\n 'Bottom': '底部',\n 'Rolling': '滚动',\n 'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n 'About author': '关于作者',\n 'DPlayer feedback': '播放器意见反馈',\n 'About DPlayer': '关于 DPlayer 播放器',\n 'Loop': '洗脑循环',\n 'Speed': '速度',\n 'Opacity for danmaku': '弹幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n 'Set danmaku color': '设置弹幕颜色',\n 'Set danmaku type': '设置弹幕类型',\n 'Show danmaku': '显示弹幕',\n 'This video fails to load': '视频加载失败',\n 'Switching to': '正在切换至',\n 'Switched to': '已经切换至',\n 'quality': '画质',\n 'FF': '快进',\n 'REW': '快退',\n 'Unlimited danmaku': '海量弹幕',\n 'Send danmaku': '发送弹幕',\n 'Setting': '设置',\n 'Full screen': '全屏',\n 'Web full screen': '页面全屏',\n 'Send': '发送',\n 'Screenshot': '截图',\n 's': '秒',\n 'Show subtitle': '显示字幕',\n 'Hide subtitle': '隐藏字幕',\n 'Volume': '音量',\n 'Live': '直播',\n 'Video info': '视频统计信息'\n },\n 'zh-tw': {\n 'Danmaku is loading': '彈幕加載中',\n 'Top': '頂部',\n 'Bottom': '底部',\n 'Rolling': '滾動',\n 'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n 'About author': '關於作者',\n 'DPlayer feedback': '播放器意見反饋',\n 'About DPlayer': '關於 DPlayer 播放器',\n 'Loop': '循環播放',\n 'Speed': '速度',\n 'Opacity for danmaku': '彈幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '請輸入彈幕内容啊\\uFF01',\n 'Set danmaku color': '設置彈幕顏色',\n 'Set danmaku type': '設置彈幕類型',\n 'Show danmaku': '顯示彈幕',\n 'This video fails to load': '視頻加載失敗',\n 'Switching to': '正在切換至',\n 'Switched to': '已經切換至',\n 'quality': '畫質',\n 'FF': '快進',\n 'REW': '快退',\n 'Unlimited danmaku': '海量彈幕',\n 'Send danmaku': '發送彈幕',\n 'Setting': '設置',\n 'Full screen': '全屏',\n 'Web full screen': '頁面全屏',\n 'Send': '發送',\n 'Screenshot': '截圖',\n 's': '秒',\n 'Show subtitle': '顯示字幕',\n 'Hide subtitle': '隱藏字幕',\n 'Volume': '音量',\n 'Live': '直播',\n 'Video info': '視頻統計信息'\n }\n};\nexports.default = i18n;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nvar _player = __webpack_require__(32);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.index = options.index;\n this.tran = options.tran;\n this.init();\n }\n _createClass(Template, [{\n key: 'init',\n value: function init() {\n this.container.innerHTML = (0, _player2.default)({\n options: this.options,\n index: this.index,\n tran: this.tran,\n icons: _icons2.default,\n video: {\n current: true,\n pic: this.options.video.pic,\n screenshot: this.options.screenshot,\n preload: this.options.preload,\n url: this.options.video.url,\n subtitle: this.options.subtitle\n }\n });\n this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n this.volumeButton = this.container.querySelector('.dplayer-volume');\n this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n this.playedBar = this.container.querySelector('.dplayer-played');\n this.loadedBar = this.container.querySelector('.dplayer-loaded');\n this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n this.danmaku = this.container.querySelector('.dplayer-danmaku');\n this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n this.video = this.container.querySelector('.dplayer-video-current');\n this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n this.playButton = this.container.querySelector('.dplayer-play-icon');\n this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n this.ptime = this.container.querySelector('.dplayer-ptime');\n this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n this.settingBox = this.container.querySelector('.dplayer-setting-box');\n this.mask = this.container.querySelector('.dplayer-mask');\n this.loop = this.container.querySelector('.dplayer-setting-loop');\n this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n this.speed = this.container.querySelector('.dplayer-setting-speed');\n this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n this.dtime = this.container.querySelector('.dplayer-dtime');\n this.controller = this.container.querySelector('.dplayer-controller');\n this.commentInput = this.container.querySelector('.dplayer-comment-input');\n this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon path');\n this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n this.commentSendFill = this.container.querySelector('.dplayer-send-icon path');\n this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n this.menu = this.container.querySelector('.dplayer-menu');\n this.menuItem = this.container.querySelectorAll('.dplayer-menu-item');\n this.qualityList = this.container.querySelector('.dplayer-quality-list');\n this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n this.subtitle = this.container.querySelector('.dplayer-subtitle');\n this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.notice = this.container.querySelector('.dplayer-notice');\n this.infoPanel = this.container.querySelector('.dplayer-info-panel');\n this.infoPanelClose = this.container.querySelector('.dplayer-info-panel-close');\n this.infoVersion = this.container.querySelector('.dplayer-info-panel-item-version .dplayer-info-panel-item-data');\n this.infoFPS = this.container.querySelector('.dplayer-info-panel-item-fps .dplayer-info-panel-item-data');\n this.infoType = this.container.querySelector('.dplayer-info-panel-item-type .dplayer-info-panel-item-data');\n this.infoUrl = this.container.querySelector('.dplayer-info-panel-item-url .dplayer-info-panel-item-data');\n this.infoResolution = this.container.querySelector('.dplayer-info-panel-item-resolution .dplayer-info-panel-item-data');\n this.infoDuration = this.container.querySelector('.dplayer-info-panel-item-duration .dplayer-info-panel-item-data');\n this.infoDanmakuId = this.container.querySelector('.dplayer-info-panel-item-danmaku-id .dplayer-info-panel-item-data');\n this.infoDanmakuApi = this.container.querySelector('.dplayer-info-panel-item-danmaku-api .dplayer-info-panel-item-data');\n this.infoDanmakuAmount = this.container.querySelector('.dplayer-info-panel-item-danmaku-amount .dplayer-info-panel-item-data');\n }\n }]);\n return Template;\n}();\nexports.default = Template;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $imports = __webpack_require__(3);\nmodule.exports = function ($data) {\n 'use strict';\n $data = $data || {};\n var $$out = '', $$blocks = arguments[1] || {}, include = function (content) {\n $$out += content;\n return $$out;\n }, video = $data.video, options = $data.options, $escape = $imports.$escape, tran = $data.tran, icons = $data.icons, index = $data.index, $each = $imports.$each, $value = $data.$value, $index = $data.$index;\n $$out += '
\\n
\\n ';\n include(__webpack_require__(4)(video));\n $$out += '\\n ';\n if (options.logo) {\n $$out += '\\n
\\n ]/;\nruntime.$escape = function (content) {\n return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n if (Array.isArray(data)) {\n for (var i = 0, len = data.length; i < len; i++) {\n callback(data[i], i);\n }\n } else {\n for (var _i in data) {\n callback(data[_i], _i);\n }\n }\n};\nfunction toString(value) {\n if (typeof value !== 'string') {\n if (value === undefined || value === null) {\n value = '';\n } else if (typeof value === 'function') {\n value = toString(value.call(value));\n } else {\n value = JSON.stringify(value);\n }\n }\n return value;\n}\n;\nfunction xmlEscape(content) {\n var html = '' + content;\n var regexResult = ESCAPE_REG.exec(html);\n if (!regexResult) {\n return content;\n }\n var result = '';\n var i = void 0, lastIndex = void 0, char = void 0;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34:\n char = '"';\n break;\n case 38:\n char = '&';\n break;\n case 39:\n char = ''';\n break;\n case 60:\n char = '<';\n break;\n case 62:\n char = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) {\n result += html.substring(lastIndex, i);\n }\n lastIndex = i + 1;\n result += char;\n }\n if (lastIndex !== i) {\n return result + html.substring(lastIndex, i);\n } else {\n return result;\n }\n}\n;\nmodule.exports = runtime;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nmodule.exports = false;\ntry {\n module.exports = Object.prototype.toString.call(global.process) === '[object process]';\n} catch (e) {\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Danmaku = function () {\n function Danmaku(options) {\n _classCallCheck(this, Danmaku);\n this.options = options;\n this.container = this.options.container;\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.dan = [];\n this.showing = true;\n this._opacity = this.options.opacity;\n this.events = this.options.events;\n this.unlimited = this.options.unlimited;\n this._measure('');\n this.load();\n }\n _createClass(Danmaku, [\n {\n key: 'load',\n value: function load() {\n var _this = this;\n var apiurl = void 0;\n if (this.options.api.maximum) {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id;\n }\n var endpoints = (this.options.api.addition || []).slice(0);\n endpoints.push(apiurl);\n this.events && this.events.trigger('danmaku_load_start', endpoints);\n this._readAllEndpoints(endpoints, function (results) {\n _this.dan = [].concat.apply([], results).sort(function (a, b) {\n return a.time - b.time;\n });\n window.requestAnimationFrame(function () {\n _this.frame();\n });\n _this.options.callback();\n _this.events && _this.events.trigger('danmaku_load_end');\n });\n }\n },\n {\n key: 'reload',\n value: function reload(newAPI) {\n this.options.api = newAPI;\n this.dan = [];\n this.clear();\n this.load();\n }\n },\n {\n key: '_readAllEndpoints',\n value: function _readAllEndpoints(endpoints, callback) {\n var _this2 = this;\n var results = [];\n var readCount = 0;\n var cbk = function cbk(i) {\n return function (err, data) {\n ++readCount;\n if (err) {\n if (err.response) {\n _this2.options.error(err.response.msg);\n } else {\n _this2.options.error('Request was unsuccessful: ' + err.status);\n }\n results[i] = [];\n } else {\n var typeMap = [\n 'right',\n 'top',\n 'bottom'\n ];\n if (data) {\n results[i] = data.map(function (item) {\n return {\n time: item[0],\n type: typeMap[item[1]],\n color: item[2],\n author: item[3],\n text: item[4]\n };\n });\n } else {\n results[i] = [];\n }\n }\n if (readCount === endpoints.length) {\n return callback(results);\n }\n };\n };\n for (var i = 0; i < endpoints.length; ++i) {\n this.options.apiBackend.read(endpoints[i], cbk(i));\n }\n }\n },\n {\n key: 'send',\n value: function send(dan, callback) {\n var danmakuData = {\n token: this.options.api.token,\n player: this.options.api.id,\n author: this.options.api.user,\n time: this.options.time(),\n text: dan.text,\n color: dan.color,\n type: dan.type\n };\n this.options.apiBackend.send(this.options.api.address + 'v2/', danmakuData, callback);\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n var danmaku = {\n text: this.htmlEncode(danmakuData.text),\n color: danmakuData.color,\n type: danmakuData.type,\n border: '2px solid ' + this.options.borderColor\n };\n this.draw(danmaku);\n this.events && this.events.trigger('danmaku_send', danmakuData);\n }\n },\n {\n key: 'frame',\n value: function frame() {\n var _this3 = this;\n if (this.dan.length && !this.paused && this.showing) {\n var item = this.dan[this.danIndex];\n var dan = [];\n while (item && this.options.time() > parseFloat(item.time)) {\n dan.push(item);\n item = this.dan[++this.danIndex];\n }\n this.draw(dan);\n }\n window.requestAnimationFrame(function () {\n _this3.frame();\n });\n }\n },\n {\n key: 'opacity',\n value: function opacity(percentage) {\n if (percentage !== undefined) {\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this._opacity = percentage;\n this.events && this.events.trigger('danmaku_opacity', this._opacity);\n }\n return this._opacity;\n }\n },\n {\n key: 'draw',\n value: function draw(dan) {\n var _this4 = this;\n if (this.showing) {\n var itemHeight = this.options.height;\n var danWidth = this.container.offsetWidth;\n var danHeight = this.container.offsetHeight;\n var itemY = parseInt(danHeight / itemHeight);\n var danItemRight = function danItemRight(ele) {\n var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n var eleRight = ele.getBoundingClientRect().right || _this4.container.getBoundingClientRect().right + eleWidth;\n return _this4.container.getBoundingClientRect().right - eleRight;\n };\n var danSpeed = function danSpeed(width) {\n return (danWidth + width) / 5;\n };\n var getTunnel = function getTunnel(ele, type, width) {\n var tmp = danWidth / danSpeed(width);\n var _loop = function _loop(i) {\n var item = _this4.danTunnel[type][i + ''];\n if (item && item.length) {\n if (type !== 'right') {\n return 'continue';\n }\n for (var j = 0; j < item.length; j++) {\n var danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n _this4.danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n }\n } else {\n _this4.danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n };\n for (var i = 0; _this4.unlimited || i < itemY; i++) {\n var _ret = _loop(i);\n switch (_ret) {\n case 'continue':\n continue;\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object')\n return _ret.v;\n }\n }\n return -1;\n };\n if (Object.prototype.toString.call(dan) !== '[object Array]') {\n dan = [dan];\n }\n var docFragment = document.createDocumentFragment();\n var _loop2 = function _loop2(i) {\n if (!dan[i].type) {\n dan[i].type = 'right';\n }\n if (!dan[i].color) {\n dan[i].color = '#fff';\n }\n var item = document.createElement('div');\n item.classList.add('dplayer-danmaku-item');\n item.classList.add('dplayer-danmaku-' + dan[i].type);\n if (dan[i].border) {\n item.innerHTML = '' + dan[i].text + '';\n } else {\n item.innerHTML = dan[i].text;\n }\n item.style.opacity = _this4._opacity;\n item.style.color = dan[i].color;\n item.addEventListener('animationend', function () {\n _this4.container.removeChild(item);\n });\n var itemWidth = _this4._measure(dan[i].text);\n var tunnel = void 0;\n switch (dan[i].type) {\n case 'right':\n tunnel = getTunnel(item, dan[i].type, itemWidth);\n if (tunnel >= 0) {\n item.style.width = itemWidth + 1 + 'px';\n item.style.top = itemHeight * tunnel + 'px';\n item.style.transform = 'translateX(-' + danWidth + 'px)';\n }\n break;\n case 'top':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.top = itemHeight * tunnel + 'px';\n }\n break;\n case 'bottom':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.bottom = itemHeight * tunnel + 'px';\n }\n break;\n default:\n console.error('Can\\'t handled danmaku type: ' + dan[i].type);\n }\n if (tunnel >= 0) {\n item.classList.add('dplayer-danmaku-move');\n docFragment.appendChild(item);\n }\n };\n for (var i = 0; i < dan.length; i++) {\n _loop2(i);\n }\n this.container.appendChild(docFragment);\n return docFragment;\n }\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n }\n },\n {\n key: '_measure',\n value: function _measure(text) {\n if (!this.context) {\n var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n this.context = document.createElement('canvas').getContext('2d');\n this.context.font = measureStyle.getPropertyValue('font');\n }\n return this.context.measureText(text).width;\n }\n },\n {\n key: 'seek',\n value: function seek() {\n this.clear();\n for (var i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.options.time()) {\n this.danIndex = i;\n break;\n }\n this.danIndex = this.dan.length;\n }\n }\n },\n {\n key: 'clear',\n value: function clear() {\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.options.container.innerHTML = '';\n this.events && this.events.trigger('danmaku_clear');\n }\n },\n {\n key: 'htmlEncode',\n value: function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n },\n {\n key: 'resize',\n value: function resize() {\n var danWidth = this.container.offsetWidth;\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n }\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.showing = false;\n this.pause();\n this.clear();\n this.events && this.events.trigger('danmaku_hide');\n }\n },\n {\n key: 'show',\n value: function show() {\n this.seek();\n this.showing = true;\n this.play();\n this.events && this.events.trigger('danmaku_show');\n }\n },\n {\n key: 'unlimit',\n value: function unlimit(boolean) {\n this.unlimited = boolean;\n }\n }\n ]);\n return Danmaku;\n}();\nexports.default = Danmaku;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Events = function () {\n function Events() {\n _classCallCheck(this, Events);\n this.events = {};\n this.videoEvents = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'mozaudioavailable',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ];\n this.playerEvents = [\n 'screenshot',\n 'thumbnails_show',\n 'thumbnails_hide',\n 'danmaku_show',\n 'danmaku_hide',\n 'danmaku_clear',\n 'danmaku_loaded',\n 'danmaku_send',\n 'danmaku_opacity',\n 'contextmenu_show',\n 'contextmenu_hide',\n 'notice_show',\n 'notice_hide',\n 'quality_start',\n 'quality_end',\n 'destroy',\n 'resize',\n 'fullscreen',\n 'fullscreen_cancel',\n 'webfullscreen',\n 'webfullscreen_cancel',\n 'subtitle_show',\n 'subtitle_hide',\n 'subtitle_change'\n ];\n }\n _createClass(Events, [\n {\n key: 'on',\n value: function on(name, callback) {\n if (this.type(name) && typeof callback === 'function') {\n if (!this.events[name]) {\n this.events[name] = [];\n }\n this.events[name].push(callback);\n }\n }\n },\n {\n key: 'trigger',\n value: function trigger(name, info) {\n if (this.events[name] && this.events[name].length) {\n for (var i = 0; i < this.events[name].length; i++) {\n this.events[name][i](info);\n }\n }\n }\n },\n {\n key: 'type',\n value: function type(name) {\n if (this.playerEvents.indexOf(name) !== -1) {\n return 'player';\n } else if (this.videoEvents.indexOf(name) !== -1) {\n return 'video';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar FullScreen = function () {\n function FullScreen(player) {\n var _this = this;\n _classCallCheck(this, FullScreen);\n this.player = player;\n this.player.events.on('webfullscreen', function () {\n _this.player.resize();\n });\n this.player.events.on('webfullscreen_cancel', function () {\n _this.player.resize();\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n }\n _createClass(FullScreen, [\n {\n key: 'isFullScreen',\n value: function isFullScreen() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n case 'web':\n return this.player.container.classList.contains('dplayer-fulled');\n }\n }\n },\n {\n key: 'request',\n value: function request() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n var anotherType = type === 'browser' ? 'web' : 'browser';\n var anotherTypeOn = this.isFullScreen(anotherType);\n if (!anotherTypeOn) {\n this.lastScrollPosition = _utils2.default.getScrollPosition();\n }\n switch (type) {\n case 'browser':\n if (this.player.container.requestFullscreen) {\n this.player.container.requestFullscreen();\n } else if (this.player.container.mozRequestFullScreen) {\n this.player.container.mozRequestFullScreen();\n } else if (this.player.container.webkitRequestFullscreen) {\n this.player.container.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.container.classList.add('dplayer-fulled');\n document.body.classList.add('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen');\n break;\n }\n if (anotherTypeOn) {\n this.cancel(anotherType);\n }\n }\n },\n {\n key: 'cancel',\n value: function cancel() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n break;\n case 'web':\n this.player.container.classList.remove('dplayer-fulled');\n document.body.classList.remove('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen_cancel');\n break;\n }\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n if (this.isFullScreen(type)) {\n this.cancel(type);\n } else {\n this.request(type);\n }\n }\n }\n ]);\n return FullScreen;\n}();\nexports.default = FullScreen;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar User = function () {\n function User(player) {\n _classCallCheck(this, User);\n this.storageName = {\n opacity: 'dplayer-danmaku-opacity',\n volume: 'dplayer-volume',\n unlimited: 'dplayer-danmaku-unlimited',\n danmaku: 'dplayer-danmaku-show',\n subtitle: 'dplayer-subtitle-show'\n };\n this.default = {\n opacity: 0.7,\n volume: player.options.volume || 0.7,\n unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 1,\n subtitle: 1\n };\n this.data = {};\n this.init();\n }\n _createClass(User, [\n {\n key: 'init',\n value: function init() {\n for (var item in this.storageName) {\n var name = this.storageName[item];\n this.data[item] = parseFloat(_utils2.default.storage.get(name) || this.default[item]);\n }\n }\n },\n {\n key: 'get',\n value: function get(key) {\n return this.data[key];\n }\n },\n {\n key: 'set',\n value: function set(key, value) {\n this.data[key] = value;\n _utils2.default.storage.set(this.storageName[key], value);\n }\n }\n ]);\n return User;\n}();\nexports.default = User;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Subtitle = function () {\n function Subtitle(container, video, options, events) {\n _classCallCheck(this, Subtitle);\n this.container = container;\n this.video = video;\n this.options = options;\n this.events = events;\n this.init();\n }\n _createClass(Subtitle, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.container.style.fontSize = this.options.fontSize;\n this.container.style.bottom = this.options.bottom;\n this.container.style.color = this.options.color;\n if (this.video.textTracks && this.video.textTracks[0]) {\n var track = this.video.textTracks[0];\n track.oncuechange = function () {\n var cue = track.activeCues[0];\n if (cue) {\n _this.container.innerHTML = '';\n var p = document.createElement('p');\n p.appendChild(cue.getCueAsHTML());\n _this.container.appendChild(p);\n } else {\n _this.container.innerHTML = '';\n }\n _this.events.trigger('subtitle_change');\n };\n }\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.classList.remove('dplayer-subtitle-hide');\n this.events.trigger('subtitle_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.classList.add('dplayer-subtitle-hide');\n this.events.trigger('subtitle_hide');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.container.classList.contains('dplayer-subtitle-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n ]);\n return Subtitle;\n}();\nexports.default = Subtitle;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volumeBar;\n this.elements.played = template.playedBar;\n this.elements.loaded = template.loadedBar;\n this.elements.danmaku = template.danmakuOpacityBar;\n }\n _createClass(Bar, [\n {\n key: 'set',\n value: function set(type, percentage, direction) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.elements[type].style[direction] = percentage * 100 + '%';\n }\n },\n {\n key: 'get',\n value: function get(type) {\n return parseFloat(this.elements[type].style.width) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Time = function () {\n function Time(player) {\n _classCallCheck(this, Time);\n this.player = player;\n window.requestAnimationFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n this.types = [\n 'loading',\n 'progress',\n 'info',\n 'fps'\n ];\n this.init();\n }\n _createClass(Time, [\n {\n key: 'init',\n value: function init() {\n for (var i = 0; i < this.types.length; i++) {\n var type = this.types[i];\n if (type !== 'fps') {\n this['init' + type + 'Checker']();\n }\n }\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this.enableloadingChecker) {\n currentPlayPos = _this.player.video.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'initprogressChecker',\n value: function initprogressChecker() {\n var _this2 = this;\n this.progressChecker = setInterval(function () {\n if (_this2.enableprogressChecker) {\n _this2.player.bar.set('played', _this2.player.video.currentTime / _this2.player.video.duration, 'width');\n var currentTime = _utils2.default.secondToTime(_this2.player.video.currentTime);\n if (_this2.player.template.ptime.innerHTML !== currentTime) {\n _this2.player.template.ptime.innerHTML = _utils2.default.secondToTime(_this2.player.video.currentTime);\n }\n }\n }, 100);\n }\n },\n {\n key: 'initfpsChecker',\n value: function initfpsChecker() {\n var _this3 = this;\n window.requestAnimationFrame(function () {\n if (_this3.enablefpsChecker) {\n _this3.initfpsChecker();\n if (!_this3.fpsStart) {\n _this3.fpsStart = new Date();\n _this3.fpsIndex = 0;\n } else {\n _this3.fpsIndex++;\n var fpsCurrent = new Date();\n if (fpsCurrent - _this3.fpsStart > 1000) {\n _this3.player.infoPanel.fps(_this3.fpsIndex / (fpsCurrent - _this3.fpsStart) * 1000);\n _this3.fpsStart = new Date();\n _this3.fpsIndex = 0;\n }\n }\n } else {\n _this3.fpsStart = 0;\n _this3.fpsIndex = 0;\n }\n });\n }\n },\n {\n key: 'initinfoChecker',\n value: function initinfoChecker() {\n var _this4 = this;\n this.infoChecker = setInterval(function () {\n if (_this4.enableinfoChecker) {\n _this4.player.infoPanel.update();\n }\n }, 1000);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n this['enable' + type + 'Checker'] = true;\n if (type === 'fps') {\n this.initfpsChecker();\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n this['enable' + type + 'Checker'] = false;\n }\n },\n {\n key: 'destroy',\n value: function destroy(type) {\n this[type + 'Checker'] && clearInterval(this[type + 'Checker']);\n }\n }\n ]);\n return Time;\n}();\nexports.default = Time;\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bezel = function () {\n function Bezel(container) {\n var _this = this;\n _classCallCheck(this, Bezel);\n this.container = container;\n this.container.addEventListener('animationend', function () {\n _this.container.classList.remove('dplayer-bezel-transition');\n });\n }\n _createClass(Bezel, [{\n key: 'switch',\n value: function _switch(icon) {\n this.container.innerHTML = icon;\n this.container.classList.add('dplayer-bezel-transition');\n }\n }]);\n return Bezel;\n}();\nexports.default = Bezel;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _thumbnails = __webpack_require__(44);\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n var _this = this;\n _classCallCheck(this, Controller);\n this.player = player;\n this.autoHideTimer = 0;\n if (!_utils2.default.isMobile) {\n this.player.container.addEventListener('mousemove', function () {\n _this.setAutoHide();\n });\n this.player.container.addEventListener('click', function () {\n _this.setAutoHide();\n });\n this.player.on('play', function () {\n _this.setAutoHide();\n });\n this.player.on('pause', function () {\n _this.setAutoHide();\n });\n }\n this.initPlayButton();\n this.initThumbnails();\n this.initPlayedBar();\n this.initFullButton();\n this.initQualityButton();\n this.initScreenshotButton();\n this.initSubtitleButton();\n if (!_utils2.default.isMobile) {\n this.initVolumeButton();\n }\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this2 = this;\n this.player.template.playButton.addEventListener('click', function () {\n _this2.player.toggle();\n });\n if (!_utils2.default.isMobile) {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.player.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.player.toggle();\n });\n } else {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.toggle();\n });\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this3 = this;\n if (this.player.options.video.thumbnails) {\n this.thumbnails = new _thumbnails2.default({\n container: this.player.template.barPreview,\n barWidth: this.player.template.barWrap.offsetWidth,\n url: this.player.options.video.thumbnails,\n events: this.player.events\n });\n this.player.on('loadedmetadata', function () {\n _this3.thumbnails.resize(160, _this3.player.video.videoHeight / _this3.player.video.videoWidth * 160);\n });\n }\n }\n },\n {\n key: 'initPlayedBar',\n value: function initPlayedBar() {\n var _this4 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this4.player.video.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.seek(_this4.player.bar.get('played') * _this4.player.video.duration);\n _this4.player.time.enable('progress');\n };\n this.player.template.playedBarWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this4.player.time.disable('progress');\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n this.player.template.playedBarWrap.addEventListener(_utils2.default.nameMap.dragMove, function (e) {\n if (_this4.player.video.duration) {\n var px = _utils2.default.cumulativeOffset(_this4.player.template.playedBarWrap).left;\n var tx = (e.clientX || e.changedTouches[0].clientX) - px;\n if (tx < 0 || tx > _this4.player.template.playedBarWrap.offsetWidth) {\n return;\n }\n var time = _this4.player.video.duration * (tx / _this4.player.template.playedBarWrap.offsetWidth);\n if (_utils2.default.isMobile) {\n _this4.thumbnails && _this4.thumbnails.show();\n }\n _this4.thumbnails && _this4.thumbnails.move(tx);\n _this4.player.template.playedBarTime.style.left = tx - 20 + 'px';\n _this4.player.template.playedBarTime.innerText = _utils2.default.secondToTime(time);\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener(_utils2.default.nameMap.dragEnd, function () {\n if (_utils2.default.isMobile) {\n _this4.thumbnails && _this4.thumbnails.hide();\n }\n });\n if (!_utils2.default.isMobile) {\n this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.show();\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.player.template.playedBarTime.classList.add('hidden');\n }\n });\n }\n }\n },\n {\n key: 'initFullButton',\n value: function initFullButton() {\n var _this5 = this;\n this.player.template.browserFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('browser');\n });\n this.player.template.webFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('web');\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this6 = this;\n var vWidth = 35;\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, volumeUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, volumeMove);\n _this6.player.template.volumeButton.classList.remove('dplayer-volume-active');\n };\n this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n });\n this.player.template.volumeBarWrapWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n document.addEventListener(_utils2.default.nameMap.dragMove, volumeMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, volumeUp);\n _this6.player.template.volumeButton.classList.add('dplayer-volume-active');\n });\n this.player.template.volumeIcon.addEventListener('click', function () {\n if (_this6.player.video.muted) {\n _this6.player.video.muted = false;\n _this6.player.switchVolumeIcon();\n _this6.player.bar.set('volume', _this6.player.volume(), 'width');\n } else {\n _this6.player.video.muted = true;\n _this6.player.template.volumeIcon.innerHTML = _icons2.default.volumeOff;\n _this6.player.bar.set('volume', 0, 'width');\n }\n });\n }\n },\n {\n key: 'initQualityButton',\n value: function initQualityButton() {\n var _this7 = this;\n if (this.player.options.video.quality) {\n this.player.template.qualityList.addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this7.player.switchQuality(e.target.dataset.index);\n }\n });\n }\n }\n },\n {\n key: 'initScreenshotButton',\n value: function initScreenshotButton() {\n var _this8 = this;\n if (this.player.options.screenshot) {\n this.player.template.camareButton.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this8.player.video.videoWidth;\n canvas.height = _this8.player.video.videoHeight;\n canvas.getContext('2d').drawImage(_this8.player.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n _this8.player.template.camareButton.href = dataURL;\n _this8.player.template.camareButton.download = 'DPlayer.png';\n _this8.player.events.trigger('screenshot', dataURL);\n });\n }\n }\n },\n {\n key: 'initSubtitleButton',\n value: function initSubtitleButton() {\n var _this9 = this;\n if (this.player.options.subtitle) {\n this.player.events.on('subtitle_show', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Hide subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '';\n _this9.player.user.set('subtitle', 1);\n });\n this.player.events.on('subtitle_hide', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Show subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '0.4';\n _this9.player.user.set('subtitle', 0);\n });\n this.player.template.subtitleButton.addEventListener('click', function () {\n _this9.player.subtitle.toggle();\n });\n }\n }\n },\n {\n key: 'setAutoHide',\n value: function setAutoHide() {\n var _this10 = this;\n this.show();\n clearTimeout(this.autoHideTimer);\n this.autoHideTimer = setTimeout(function () {\n if (_this10.player.video.played.length && !_this10.player.paused && !_this10.disableAutoHide) {\n _this10.hide();\n }\n }, 3000);\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.container.classList.remove('dplayer-hide-controller');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.container.classList.add('dplayer-hide-controller');\n this.player.setting.hide();\n this.player.comment && this.player.comment.hide();\n }\n },\n {\n key: 'isShow',\n value: function isShow() {\n return !this.player.container.classList.contains('dplayer-hide-controller');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.isShow()) {\n this.hide();\n } else {\n this.show();\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n clearTimeout(this.autoHideTimer);\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Thumbnails = function () {\n function Thumbnails(options) {\n _classCallCheck(this, Thumbnails);\n this.container = options.container;\n this.barWidth = options.barWidth;\n this.container.style.backgroundImage = 'url(\\'' + options.url + '\\')';\n this.events = options.events;\n }\n _createClass(Thumbnails, [\n {\n key: 'resize',\n value: function resize(width, height) {\n this.container.style.width = width + 'px';\n this.container.style.height = height + 'px';\n this.container.style.top = -height + 2 + 'px';\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.style.display = 'block';\n this.events && this.events.trigger('thumbnails_show');\n }\n },\n {\n key: 'move',\n value: function move(position) {\n this.container.style.backgroundPosition = '-' + (Math.ceil(position / this.barWidth * 100) - 1) * 160 + 'px 0';\n this.container.style.left = position - this.container.offsetWidth / 2 + 'px';\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.style.display = 'none';\n this.events && this.events.trigger('thumbnails_hide');\n }\n }\n ]);\n return Thumbnails;\n}();\nexports.default = Thumbnails;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Setting = function () {\n function Setting(player) {\n var _this = this;\n _classCallCheck(this, Setting);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.settingButton.addEventListener('click', function () {\n _this.show();\n });\n this.loop = this.player.options.loop;\n this.player.template.loopToggle.checked = this.loop;\n this.player.template.loop.addEventListener('click', function () {\n _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n if (_this.player.template.loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n _this.hide();\n });\n this.showDanmaku = this.player.user.get('danmaku');\n if (!this.showDanmaku) {\n this.player.danmaku && this.player.danmaku.hide();\n }\n this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n this.player.template.showDanmaku.addEventListener('click', function () {\n _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n if (_this.player.template.showDanmakuToggle.checked) {\n _this.showDanmaku = true;\n _this.player.danmaku.show();\n } else {\n _this.showDanmaku = false;\n _this.player.danmaku.hide();\n }\n _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n _this.hide();\n });\n this.unlimitDanmaku = this.player.user.get('unlimited');\n this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n this.player.template.unlimitDanmaku.addEventListener('click', function () {\n _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n if (_this.player.template.unlimitDanmakuToggle.checked) {\n _this.unlimitDanmaku = true;\n _this.player.danmaku.unlimit(true);\n } else {\n _this.unlimitDanmaku = false;\n _this.player.danmaku.unlimit(false);\n }\n _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n _this.hide();\n });\n this.player.template.speed.addEventListener('click', function () {\n _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n });\n var _loop = function _loop(i) {\n _this.player.template.speedItem[i].addEventListener('click', function () {\n _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n _this.hide();\n });\n };\n for (var i = 0; i < this.player.template.speedItem.length; i++) {\n _loop(i);\n }\n if (this.player.danmaku) {\n var dWidth = 130;\n this.player.on('danmaku_opacity', function (percentage) {\n _this.player.bar.set('danmaku', percentage, 'width');\n _this.player.user.set('opacity', percentage);\n });\n this.player.danmaku.opacity(this.player.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, danmakuUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, danmakuMove);\n _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n };\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n });\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n document.addEventListener(_utils2.default.nameMap.dragMove, danmakuMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, danmakuUp);\n _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n }\n _createClass(Setting, [\n {\n key: 'hide',\n value: function hide() {\n var _this2 = this;\n this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n }, 300);\n this.player.controller.disableAutoHide = false;\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.controller.disableAutoHide = true;\n }\n }\n ]);\n return Setting;\n}();\nexports.default = Setting;\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Comment = function () {\n function Comment(player) {\n var _this = this;\n _classCallCheck(this, Comment);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.commentButton.addEventListener('click', function () {\n _this.show();\n });\n this.player.template.commentSettingButton.addEventListener('click', function () {\n _this.toggleSetting();\n });\n this.player.template.commentColorSettingBox.addEventListener('click', function () {\n var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n if (sele) {\n var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n _this.player.template.commentSettingFill.style.fill = color;\n _this.player.template.commentInput.style.color = color;\n _this.player.template.commentSendFill.style.fill = color;\n }\n });\n this.player.template.commentInput.addEventListener('click', function () {\n _this.hideSetting();\n });\n this.player.template.commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n _this.send();\n }\n });\n this.player.template.commentSendButton.addEventListener('click', function () {\n _this.send();\n });\n }\n _createClass(Comment, [\n {\n key: 'show',\n value: function show() {\n this.player.controller.disableAutoHide = true;\n this.player.template.controller.classList.add('dplayer-controller-comment');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.container.classList.add('dplayer-show-controller');\n this.player.template.commentInput.focus();\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.controller.classList.remove('dplayer-controller-comment');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.container.classList.remove('dplayer-show-controller');\n this.player.controller.disableAutoHide = false;\n this.hideSetting();\n }\n },\n {\n key: 'showSetting',\n value: function showSetting() {\n this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n },\n {\n key: 'hideSetting',\n value: function hideSetting() {\n this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n },\n {\n key: 'toggleSetting',\n value: function toggleSetting() {\n if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n this.hideSetting();\n } else {\n this.showSetting();\n }\n }\n },\n {\n key: 'send',\n value: function send() {\n var _this2 = this;\n this.player.template.commentInput.blur();\n if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n this.player.notice(this.player.tran('Please input danmaku content!'));\n return;\n }\n this.player.danmaku.send({\n text: this.player.template.commentInput.value,\n color: this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n _this2.player.template.commentInput.value = '';\n _this2.hide();\n });\n }\n }\n ]);\n return Comment;\n}();\nexports.default = Comment;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar HotKey = function HotKey(player) {\n _classCallCheck(this, HotKey);\n if (player.options.hotkey) {\n document.addEventListener('keydown', function (e) {\n if (player.focus) {\n var tag = document.activeElement.tagName.toUpperCase();\n var editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n var event = e || window.event;\n var percentage = void 0;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n case 37:\n event.preventDefault();\n player.seek(player.video.currentTime - 5);\n player.controller.setAutoHide();\n break;\n case 39:\n event.preventDefault();\n player.seek(player.video.currentTime + 5);\n player.controller.setAutoHide();\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n break;\n }\n }\n }\n });\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (player.fullScreen.isFullScreen('web')) {\n player.fullScreen.cancel('web');\n }\n break;\n }\n });\n};\nexports.default = HotKey;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar ContextMenu = function () {\n function ContextMenu(player) {\n var _this = this;\n _classCallCheck(this, ContextMenu);\n this.player = player;\n [].concat(_toConsumableArray(this.player.template.menuItem)).map(function (item, index) {\n if (_this.player.options.contextmenu[index].click) {\n item.addEventListener('click', function () {\n _this.player.options.contextmenu[index].click(_this.player);\n _this.hide();\n });\n }\n return item;\n });\n this.player.container.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n var clientRect = _this.player.container.getBoundingClientRect();\n _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n _this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n });\n }\n _createClass(ContextMenu, [\n {\n key: 'show',\n value: function show(x, y) {\n this.player.template.menu.classList.add('dplayer-menu-show');\n var clientRect = this.player.container.getBoundingClientRect();\n if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n this.player.template.menu.style.right = clientRect.width - x + 'px';\n this.player.template.menu.style.left = 'initial';\n } else {\n this.player.template.menu.style.left = x + 'px';\n this.player.template.menu.style.right = 'initial';\n }\n if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n this.player.template.menu.style.top = 'initial';\n } else {\n this.player.template.menu.style.top = y + 'px';\n this.player.template.menu.style.bottom = 'initial';\n }\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.events.trigger('contextmenu_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.template.menu.classList.remove('dplayer-menu-show');\n this.player.events.trigger('contextmenu_hide');\n }\n }\n ]);\n return ContextMenu;\n}();\nexports.default = ContextMenu;\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar InfoPanel = function () {\n function InfoPanel(player) {\n var _this = this;\n _classCallCheck(this, InfoPanel);\n this.container = player.template.infoPanel;\n this.template = player.template;\n this.video = player.video;\n this.player = player;\n this.template.infoPanelClose.addEventListener('click', function () {\n _this.hide();\n });\n }\n _createClass(InfoPanel, [\n {\n key: 'show',\n value: function show() {\n this.beginTime = Date.now();\n this.update();\n this.player.time.enable('info');\n this.player.time.enable('fps');\n this.container.classList.remove('dplayer-info-panel-hide');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.time.disable('info');\n this.player.time.disable('fps');\n this.container.classList.add('dplayer-info-panel-hide');\n }\n },\n {\n key: 'triggle',\n value: function triggle() {\n if (this.container.classList.contains('dplayer-info-panel-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n },\n {\n key: 'update',\n value: function update() {\n this.template.infoVersion.innerHTML = 'v' + \"1.22.0\" + ' ' + \"2b80878\";\n this.template.infoType.innerHTML = this.player.type;\n this.template.infoUrl.innerHTML = this.player.options.video.url;\n this.template.infoResolution.innerHTML = this.player.video.videoWidth + ' x ' + this.player.video.videoHeight;\n this.template.infoDuration.innerHTML = this.player.video.duration;\n if (this.player.options.danmaku) {\n this.template.infoDanmakuId.innerHTML = this.player.options.danmaku.id;\n this.template.infoDanmakuApi.innerHTML = this.player.options.danmaku.api;\n this.template.infoDanmakuAmount.innerHTML = this.player.danmaku.dan.length;\n }\n }\n },\n {\n key: 'fps',\n value: function fps(value) {\n this.template.infoFPS.innerHTML = '' + value.toFixed(1);\n }\n }\n ]);\n return InfoPanel;\n}();\nexports.default = InfoPanel;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// DPlayer.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1732f23e5952e27a77e7","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar isMobile = /mobile/i.test(window.navigator.userAgent);\nvar utils = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var hour = Math.floor(second / 3600);\n var min = Math.floor((second - hour * 3600) / 60);\n var sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n },\n getElementViewLeft: function getElementViewLeft(element) {\n var actualLeft = element.offsetLeft;\n var current = element.offsetParent;\n var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n } else {\n while (current !== null && current !== element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n return actualLeft - elementScrollLeft;\n },\n getScrollPosition: function getScrollPosition() {\n return {\n left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n };\n },\n setScrollPosition: function setScrollPosition(_ref) {\n var _ref$left = _ref.left, left = _ref$left === undefined ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === undefined ? 0 : _ref$top;\n if (this.isFirefox) {\n document.documentElement.scrollLeft = left;\n document.documentElement.scrollTop = top;\n } else {\n window.scrollTo(left, top);\n }\n },\n isMobile: isMobile,\n isFirefox: /firefox/i.test(window.navigator.userAgent),\n isChrome: /chrome/i.test(window.navigator.userAgent),\n storage: {\n set: function set(key, value) {\n localStorage.setItem(key, value);\n },\n get: function get(key) {\n return localStorage.getItem(key);\n }\n },\n cumulativeOffset: function cumulativeOffset(element) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n return {\n top: top,\n left: left\n };\n },\n nameMap: {\n dragStart: isMobile ? 'touchstart' : 'mousedown',\n dragMove: isMobile ? 'touchmove' : 'mousemove',\n dragEnd: isMobile ? 'touchend' : 'mouseup'\n }\n};\nexports.default = utils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/utils.js\n// module id = 0\n// module chunks = 0","'use strict';\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar g;\ng = function () {\n return this;\n}();\ntry {\n g = g || Function('return this')() || (1, eval)('this');\n} catch (e) {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object')\n g = window;\n}\nmodule.exports = g;\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 1\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _play = require('../assets/play.svg');\nvar _play2 = _interopRequireDefault(_play);\nvar _pause = require('../assets/pause.svg');\nvar _pause2 = _interopRequireDefault(_pause);\nvar _volumeUp = require('../assets/volume-up.svg');\nvar _volumeUp2 = _interopRequireDefault(_volumeUp);\nvar _volumeDown = require('../assets/volume-down.svg');\nvar _volumeDown2 = _interopRequireDefault(_volumeDown);\nvar _volumeOff = require('../assets/volume-off.svg');\nvar _volumeOff2 = _interopRequireDefault(_volumeOff);\nvar _full = require('../assets/full.svg');\nvar _full2 = _interopRequireDefault(_full);\nvar _fullWeb = require('../assets/full-web.svg');\nvar _fullWeb2 = _interopRequireDefault(_fullWeb);\nvar _setting = require('../assets/setting.svg');\nvar _setting2 = _interopRequireDefault(_setting);\nvar _right = require('../assets/right.svg');\nvar _right2 = _interopRequireDefault(_right);\nvar _comment = require('../assets/comment.svg');\nvar _comment2 = _interopRequireDefault(_comment);\nvar _commentOff = require('../assets/comment-off.svg');\nvar _commentOff2 = _interopRequireDefault(_commentOff);\nvar _send = require('../assets/send.svg');\nvar _send2 = _interopRequireDefault(_send);\nvar _pallette = require('../assets/pallette.svg');\nvar _pallette2 = _interopRequireDefault(_pallette);\nvar _camera = require('../assets/camera.svg');\nvar _camera2 = _interopRequireDefault(_camera);\nvar _subtitle = require('../assets/subtitle.svg');\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _loading = require('../assets/loading.svg');\nvar _loading2 = _interopRequireDefault(_loading);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nvar Icons = {\n play: _play2.default,\n pause: _pause2.default,\n volumeUp: _volumeUp2.default,\n volumeDown: _volumeDown2.default,\n volumeOff: _volumeOff2.default,\n full: _full2.default,\n fullWeb: _fullWeb2.default,\n setting: _setting2.default,\n right: _right2.default,\n comment: _comment2.default,\n commentOff: _commentOff2.default,\n send: _send2.default,\n pallette: _pallette2.default,\n camera: _camera2.default,\n subtitle: _subtitle2.default,\n loading: _loading2.default\n};\nexports.default = Icons;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/icons.js\n// module id = 2\n// module chunks = 0","'use strict';\nmodule.exports = require('./compile/runtime');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/art-template/lib/runtime.js\n// module id = 3\n// module chunks = 0","{{ set enableSubtitle = subtitle && subtitle.type === 'webvtt' }}\n\n {{ if enableSubtitle }}\n \n {{ /if }}\n\n\n\n// WEBPACK FOOTER //\n// ./src/template/video.art","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nrequire('../css/index.scss');\nvar _player = require('./player');\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c DPlayer v' + DPLAYER_VERSION + ' ' + GIT_HASH + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/index.js\n// module id = 5\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _promisePolyfill = require('promise-polyfill');\nvar _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _options = require('./options');\nvar _options2 = _interopRequireDefault(_options);\nvar _i18n = require('./i18n');\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _template = require('./template');\nvar _template2 = _interopRequireDefault(_template);\nvar _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nvar _danmaku = require('./danmaku');\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _events = require('./events');\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = require('./fullscreen');\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = require('./user');\nvar _user2 = _interopRequireDefault(_user);\nvar _subtitle = require('./subtitle');\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _bar = require('./bar');\nvar _bar2 = _interopRequireDefault(_bar);\nvar _time = require('./time');\nvar _time2 = _interopRequireDefault(_time);\nvar _bezel = require('./bezel');\nvar _bezel2 = _interopRequireDefault(_bezel);\nvar _controller = require('./controller');\nvar _controller2 = _interopRequireDefault(_controller);\nvar _setting = require('./setting');\nvar _setting2 = _interopRequireDefault(_setting);\nvar _comment = require('./comment');\nvar _comment2 = _interopRequireDefault(_comment);\nvar _hotkey = require('./hotkey');\nvar _hotkey2 = _interopRequireDefault(_hotkey);\nvar _contextmenu = require('./contextmenu');\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\nvar _infoPanel = require('./info-panel');\nvar _infoPanel2 = _interopRequireDefault(_infoPanel);\nvar _video = require('../template/video.art');\nvar _video2 = _interopRequireDefault(_video);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar index = 0;\nvar instances = [];\nvar DPlayer = function () {\n function DPlayer(options) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.options = (0, _options2.default)(options);\n if (this.options.video.quality) {\n this.qualityIndex = this.options.video.defaultQuality;\n this.quality = this.options.video.quality[this.options.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.options.lang).tran;\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.container = this.options.container;\n this.container.classList.add('dplayer');\n if (!this.options.danmaku) {\n this.container.classList.add('dplayer-no-danmaku');\n }\n if (this.options.live) {\n this.container.classList.add('dplayer-live');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('dplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 500;\n if (this.arrow) {\n this.container.classList.add('dplayer-arrow');\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n index: index,\n tran: this.tran\n });\n this.video = this.template.video;\n this.bar = new _bar2.default(this.template);\n this.bezel = new _bezel2.default(this.template.bezel);\n this.fullScreen = new _fullscreen2.default(this);\n this.controller = new _controller2.default(this);\n if (this.options.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.template.danmaku,\n opacity: this.user.get('opacity'),\n callback: function callback() {\n setTimeout(function () {\n _this.template.danmakuLoading.style.display = 'none';\n if (_this.options.autoplay) {\n _this.play();\n }\n }, 0);\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.options.apiBackend,\n borderColor: this.options.theme,\n height: this.arrow ? 24 : 30,\n time: function time() {\n return _this.video.currentTime;\n },\n unlimited: this.user.get('unlimited'),\n api: {\n id: this.options.danmaku.id,\n address: this.options.danmaku.api,\n token: this.options.danmaku.token,\n maximum: this.options.danmaku.maximum,\n addition: this.options.danmaku.addition,\n user: this.options.danmaku.user\n },\n events: this.events\n });\n this.comment = new _comment2.default(this);\n }\n this.setting = new _setting2.default(this);\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.container.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n this.paused = true;\n this.time = new _time2.default(this);\n this.hotkey = new _hotkey2.default(this);\n this.contextmenu = new _contextmenu2.default(this);\n this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type);\n this.infoPanel = new _infoPanel2.default(this);\n if (!this.danmaku && this.options.autoplay) {\n this.play();\n }\n index++;\n instances.push(this);\n }\n _createClass(DPlayer, [\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.video.duration) {\n time = Math.min(time, this.video.duration);\n }\n if (this.video.currentTime < time) {\n this.notice(this.tran('FF') + ' ' + (time - this.video.currentTime).toFixed(0) + ' ' + this.tran('s'));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW') + ' ' + (this.video.currentTime - time).toFixed(0) + ' ' + this.tran('s'));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.bar.set('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this2 = this;\n this.paused = false;\n if (this.video.paused) {\n this.bezel.switch(_icons2.default.play);\n }\n this.template.playButton.innerHTML = _icons2.default.pause;\n var playedPromise = _promisePolyfill2.default.resolve(this.video.play());\n playedPromise.catch(function () {\n _this2.pause();\n }).then(function () {\n });\n this.time.enable('loading');\n this.time.enable('progress');\n this.container.classList.remove('dplayer-paused');\n this.container.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n if (this.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (this !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.container.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.switch(_icons2.default.pause);\n }\n this.ended = false;\n this.template.playButton.innerHTML = _icons2.default.play;\n this.video.pause();\n this.time.disable('loading');\n this.time.disable('progress');\n this.container.classList.remove('dplayer-playing');\n this.container.classList.add('dplayer-paused');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeIcon.innerHTML = _icons2.default.volumeUp;\n } else if (this.volume() > 0) {\n this.template.volumeIcon.innerHTML = _icons2.default.volumeDown;\n } else {\n this.template.volumeIcon.innerHTML = _icons2.default.volumeOff;\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage, nonotice) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.bar.set('volume', percentage, 'width');\n var formatPercentage = (percentage * 100).toFixed(0) + '%';\n this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n if (!nonotice) {\n this.notice(this.tran('Volume') + ' ' + (percentage * 100).toFixed(0) + '%');\n }\n this.video.volume = percentage;\n if (this.video.muted) {\n this.video.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.video.volume;\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'switchVideo',\n value: function switchVideo(video, danmakuAPI) {\n this.pause();\n this.video.poster = video.pic ? video.pic : '';\n this.video.src = video.url;\n this.initMSE(this.video, video.type || 'auto');\n if (danmakuAPI) {\n this.template.danmakuLoading.style.display = 'block';\n this.bar.set('played', 0, 'width');\n this.bar.set('loaded', 0, 'width');\n this.template.ptime.innerHTML = '00:00';\n this.template.danmaku.innerHTML = '';\n if (this.danmaku) {\n this.danmaku.reload({\n id: danmakuAPI.id,\n address: danmakuAPI.api,\n token: danmakuAPI.token,\n maximum: danmakuAPI.maximum,\n addition: danmakuAPI.addition,\n user: danmakuAPI.user\n });\n }\n }\n }\n },\n {\n key: 'initMSE',\n value: function initMSE(video, type) {\n var _this3 = this;\n this.type = type;\n if (this.options.video.customType && this.options.video.customType[type]) {\n if (Object.prototype.toString.call(this.options.video.customType[type]) === '[object Function]') {\n this.options.video.customType[type](this.video, this);\n } else {\n console.error('Illegal customType: ' + type);\n }\n } else {\n if (this.type === 'auto') {\n if (/m3u8(#|\\?|$)/i.exec(video.src)) {\n this.type = 'hls';\n } else if (/.flv(#|\\?|$)/i.exec(video.src)) {\n this.type = 'flv';\n } else if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n this.type = 'dash';\n } else {\n this.type = 'normal';\n }\n }\n switch (this.type) {\n case 'hls':\n if (Hls) {\n if (Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n } else {\n this.notice('Error: Hls is not supported.');\n }\n } else {\n this.notice('Error: Can\\'t find Hls.');\n }\n break;\n case 'flv':\n if (flvjs && flvjs.isSupported()) {\n if (flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n } else {\n this.notice('Error: flvjs is not supported.');\n }\n } else {\n this.notice('Error: Can\\'t find flvjs.');\n }\n break;\n case 'dash':\n if (dashjs) {\n dashjs.MediaPlayer().create().initialize(video, video.src, false);\n } else {\n this.notice('Error: Can\\'t find dashjs.');\n }\n break;\n case 'webtorrent':\n if (WebTorrent) {\n if (WebTorrent.WEBRTC_SUPPORT) {\n this.container.classList.add('dplayer-loading');\n var client = new WebTorrent();\n var torrentId = video.src;\n client.add(torrentId, function (torrent) {\n var file = torrent.files.find(function (file) {\n return file.name.endsWith('.mp4');\n });\n file.renderTo(_this3.video, { autoplay: _this3.options.autoplay }, function () {\n _this3.container.classList.remove('dplayer-loading');\n });\n });\n } else {\n this.notice('Error: Webtorrent is not supported.');\n }\n } else {\n this.notice('Error: Can\\'t find Webtorrent.');\n }\n break;\n }\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this4 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this4.template.dtime.innerHTML = _utils2.default.secondToTime(video.duration);\n }\n });\n this.on('progress', function () {\n var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n _this4.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this4.tran && _this4.notice && _this4.type !== 'webtorrent' & _this4.notice(_this4.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this4.bar.set('played', 1, 'width');\n if (!_this4.setting.loop) {\n _this4.ended = true;\n _this4.pause();\n } else {\n _this4.seek(0);\n video.play();\n }\n if (_this4.danmaku) {\n _this4.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this4.paused) {\n _this4.play();\n }\n });\n this.on('pause', function () {\n if (!_this4.paused) {\n _this4.pause();\n }\n });\n var _loop = function _loop(i) {\n video.addEventListener(_this4.events.videoEvents[i], function () {\n _this4.events.trigger(_this4.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop(i);\n }\n this.volume(this.user.get('volume'), true, true);\n if (this.options.subtitle) {\n this.subtitle = new _subtitle2.default(this.template.subtitle, this.video, this.options.subtitle, this.events);\n if (!this.user.get('subtitle')) {\n this.subtitle.hide();\n }\n }\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this5 = this;\n if (this.qualityIndex === index || this.switchingQuality) {\n return;\n } else {\n this.qualityIndex = index;\n }\n this.switchingQuality = true;\n this.quality = this.options.video.quality[index];\n this.template.qualityButton.innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = (0, _video2.default)({\n current: false,\n pic: null,\n screenshot: this.options.screenshot,\n preload: 'auto',\n url: this.quality.url,\n subtitle: this.options.subtitle\n });\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.options.video.type);\n this.seek(this.prevVideo.currentTime);\n this.notice(this.tran('Switching to') + ' ' + this.quality.name + ' ' + this.tran('quality'), -1);\n this.events.trigger('quality_start', this.quality);\n this.on('canplay', function () {\n if (_this5.prevVideo) {\n if (_this5.video.currentTime !== _this5.prevVideo.currentTime) {\n _this5.seek(_this5.prevVideo.currentTime);\n return;\n }\n _this5.template.videoWrap.removeChild(_this5.prevVideo);\n _this5.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this5.video.play();\n }\n _this5.prevVideo = null;\n _this5.notice(_this5.tran('Switched to') + ' ' + _this5.quality.name + ' ' + _this5.tran('quality'));\n _this5.switchingQuality = false;\n _this5.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'notice',\n value: function notice(text) {\n var _this6 = this;\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n this.template.notice.innerHTML = text;\n this.template.notice.style.opacity = opacity;\n if (this.noticeTime) {\n clearTimeout(this.noticeTime);\n }\n this.events.trigger('notice_show', text);\n this.noticeTime = setTimeout(function () {\n _this6.template.notice.style.opacity = 0;\n _this6.events.trigger('notice_hide');\n }, time);\n }\n },\n {\n key: 'resize',\n value: function resize() {\n if (this.danmaku) {\n this.danmaku.resize();\n }\n this.events.trigger('resize');\n }\n },\n {\n key: 'speed',\n value: function speed(rate) {\n this.video.playbackRate = rate;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.controller.destroy();\n this.time.destroy();\n this.video.src = '';\n this.container.innerHTML = '';\n this.events.trigger('destroy');\n for (var key in this) {\n if (this.hasOwnProperty(key) && key !== 'paused') {\n delete this[key];\n }\n }\n }\n }\n ]);\n return DPlayer;\n}();\nexports.default = DPlayer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/player.js\n// module id = 7\n// module chunks = 0","'use strict';\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nmodule.exports = Promise;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise-polyfill/lib/index.js\n// module id = 8\n// module chunks = 0","'use strict';\nvar apply = Function.prototype.apply;\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {\n};\nTimeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n};\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\nrequire('setimmediate');\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/timers-browserify/main.js\n// module id = 9\n// module chunks = 0","'use strict';\n(function (global, undefined) {\n 'use strict';\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1;\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n if (typeof callback !== 'function') {\n callback = new Function('' + callback);\n }\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n if (currentlyRunningATask) {\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage('', '*');\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n var messagePrefix = 'setImmediate$' + Math.random() + '$';\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === 'string' && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener('message', onGlobalMessage, false);\n } else {\n global.attachEvent('onmessage', onGlobalMessage);\n }\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, '*');\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function registerImmediate(handle) {\n var script = doc.createElement('script');\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n if ({}.toString.call(global.process) === '[object process]') {\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n installMessageChannelImplementation();\n } else if (doc && 'onreadystatechange' in doc.createElement('script')) {\n installReadyStateChangeImplementation();\n } else {\n installSetTimeoutImplementation();\n }\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === 'undefined' ? typeof global === 'undefined' ? undefined : global : self));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/setimmediate/setImmediate.js\n// module id = 10\n// module chunks = 0","'use strict';\nvar process = module.exports = {};\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n}());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = '';\nprocess.versions = {};\nfunction noop() {\n}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 11\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _api = require('./api.js');\nvar _api2 = _interopRequireDefault(_api);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('dplayer')[0],\n live: false,\n autoplay: false,\n theme: '#b7daff',\n loop: false,\n lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n screenshot: false,\n hotkey: true,\n preload: 'auto',\n volume: 0.7,\n apiBackend: _api2.default,\n video: {},\n contextmenu: [],\n mutex: true\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (options.video) {\n !options.video.type && (options.video.type = 'auto');\n }\n if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n }\n if (options.subtitle) {\n !options.subtitle.type && (options.subtitle.type = 'webvtt');\n !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n !options.subtitle.color && (options.subtitle.color = '#fff');\n }\n if (options.video.quality) {\n options.video.url = [options.video.quality[options.video.defaultQuality].url];\n }\n if (options.lang) {\n options.lang = options.lang.toLowerCase();\n }\n options.contextmenu = options.contextmenu.concat([\n {\n text: 'Video info',\n click: function click(player) {\n player.infoPanel.triggle();\n }\n },\n {\n text: 'About author',\n link: 'https://diygod.me'\n },\n {\n text: 'DPlayer v' + DPLAYER_VERSION,\n link: 'https://github.com/MoePlayer/DPlayer'\n }\n ]);\n return options;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/options.js\n// module id = 12\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar SendXMLHttpRequest = function SendXMLHttpRequest(url, data, success, error, fail) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n var response = JSON.parse(xhr.responseText);\n if (response.code !== 0) {\n return error(xhr, response);\n }\n return success(xhr, response);\n }\n fail(xhr);\n }\n };\n xhr.open(data !== null ? 'POST' : 'GET', url, true);\n xhr.send(data !== null ? JSON.stringify(data) : null);\n};\nexports.default = {\n send: function send(endpoint, danmakuData, callback) {\n SendXMLHttpRequest(endpoint, danmakuData, function (xhr, response) {\n console.log('Post danmaku: ', response);\n if (callback) {\n callback();\n }\n }, function (xhr, response) {\n alert(response.msg);\n }, function (xhr) {\n console.log('Request was unsuccessful: ' + xhr.status);\n });\n },\n read: function read(endpoint, callback) {\n SendXMLHttpRequest(endpoint, null, function (xhr, response) {\n callback(null, response.danmaku);\n }, function (xhr, response) {\n callback({\n status: xhr.status,\n response: response\n });\n }, function (xhr) {\n callback({\n status: xhr.status,\n response: null\n });\n });\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/api.js\n// module id = 13\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction i18n(lang) {\n var _this = this;\n this.lang = lang;\n this.tran = function (text) {\n if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n return tranTxt[_this.lang][text];\n } else {\n return text;\n }\n };\n}\nvar tranTxt = {\n 'zh-cn': {\n 'Danmaku is loading': '弹幕加载中',\n 'Top': '顶部',\n 'Bottom': '底部',\n 'Rolling': '滚动',\n 'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n 'About author': '关于作者',\n 'DPlayer feedback': '播放器意见反馈',\n 'About DPlayer': '关于 DPlayer 播放器',\n 'Loop': '洗脑循环',\n 'Speed': '速度',\n 'Opacity for danmaku': '弹幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n 'Set danmaku color': '设置弹幕颜色',\n 'Set danmaku type': '设置弹幕类型',\n 'Show danmaku': '显示弹幕',\n 'This video fails to load': '视频加载失败',\n 'Switching to': '正在切换至',\n 'Switched to': '已经切换至',\n 'quality': '画质',\n 'FF': '快进',\n 'REW': '快退',\n 'Unlimited danmaku': '海量弹幕',\n 'Send danmaku': '发送弹幕',\n 'Setting': '设置',\n 'Full screen': '全屏',\n 'Web full screen': '页面全屏',\n 'Send': '发送',\n 'Screenshot': '截图',\n 's': '秒',\n 'Show subtitle': '显示字幕',\n 'Hide subtitle': '隐藏字幕',\n 'Volume': '音量',\n 'Live': '直播',\n 'Video info': '视频统计信息'\n },\n 'zh-tw': {\n 'Danmaku is loading': '彈幕加載中',\n 'Top': '頂部',\n 'Bottom': '底部',\n 'Rolling': '滾動',\n 'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n 'About author': '關於作者',\n 'DPlayer feedback': '播放器意見反饋',\n 'About DPlayer': '關於 DPlayer 播放器',\n 'Loop': '循環播放',\n 'Speed': '速度',\n 'Opacity for danmaku': '彈幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '請輸入彈幕内容啊\\uFF01',\n 'Set danmaku color': '設置彈幕顏色',\n 'Set danmaku type': '設置彈幕類型',\n 'Show danmaku': '顯示彈幕',\n 'This video fails to load': '視頻加載失敗',\n 'Switching to': '正在切換至',\n 'Switched to': '已經切換至',\n 'quality': '畫質',\n 'FF': '快進',\n 'REW': '快退',\n 'Unlimited danmaku': '海量彈幕',\n 'Send danmaku': '發送彈幕',\n 'Setting': '設置',\n 'Full screen': '全屏',\n 'Web full screen': '頁面全屏',\n 'Send': '發送',\n 'Screenshot': '截圖',\n 's': '秒',\n 'Show subtitle': '顯示字幕',\n 'Hide subtitle': '隱藏字幕',\n 'Volume': '音量',\n 'Live': '直播',\n 'Video info': '視頻統計信息'\n }\n};\nexports.default = i18n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/i18n.js\n// module id = 14\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nvar _player = require('../template/player.art');\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.index = options.index;\n this.tran = options.tran;\n this.init();\n }\n _createClass(Template, [{\n key: 'init',\n value: function init() {\n this.container.innerHTML = (0, _player2.default)({\n options: this.options,\n index: this.index,\n tran: this.tran,\n icons: _icons2.default,\n video: {\n current: true,\n pic: this.options.video.pic,\n screenshot: this.options.screenshot,\n preload: this.options.preload,\n url: this.options.video.url,\n subtitle: this.options.subtitle\n }\n });\n this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n this.volumeButton = this.container.querySelector('.dplayer-volume');\n this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n this.playedBar = this.container.querySelector('.dplayer-played');\n this.loadedBar = this.container.querySelector('.dplayer-loaded');\n this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n this.danmaku = this.container.querySelector('.dplayer-danmaku');\n this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n this.video = this.container.querySelector('.dplayer-video-current');\n this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n this.playButton = this.container.querySelector('.dplayer-play-icon');\n this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n this.ptime = this.container.querySelector('.dplayer-ptime');\n this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n this.settingBox = this.container.querySelector('.dplayer-setting-box');\n this.mask = this.container.querySelector('.dplayer-mask');\n this.loop = this.container.querySelector('.dplayer-setting-loop');\n this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n this.speed = this.container.querySelector('.dplayer-setting-speed');\n this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n this.dtime = this.container.querySelector('.dplayer-dtime');\n this.controller = this.container.querySelector('.dplayer-controller');\n this.commentInput = this.container.querySelector('.dplayer-comment-input');\n this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon path');\n this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n this.commentSendFill = this.container.querySelector('.dplayer-send-icon path');\n this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n this.menu = this.container.querySelector('.dplayer-menu');\n this.menuItem = this.container.querySelectorAll('.dplayer-menu-item');\n this.qualityList = this.container.querySelector('.dplayer-quality-list');\n this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n this.subtitle = this.container.querySelector('.dplayer-subtitle');\n this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.notice = this.container.querySelector('.dplayer-notice');\n this.infoPanel = this.container.querySelector('.dplayer-info-panel');\n this.infoPanelClose = this.container.querySelector('.dplayer-info-panel-close');\n this.infoVersion = this.container.querySelector('.dplayer-info-panel-item-version .dplayer-info-panel-item-data');\n this.infoFPS = this.container.querySelector('.dplayer-info-panel-item-fps .dplayer-info-panel-item-data');\n this.infoType = this.container.querySelector('.dplayer-info-panel-item-type .dplayer-info-panel-item-data');\n this.infoUrl = this.container.querySelector('.dplayer-info-panel-item-url .dplayer-info-panel-item-data');\n this.infoResolution = this.container.querySelector('.dplayer-info-panel-item-resolution .dplayer-info-panel-item-data');\n this.infoDuration = this.container.querySelector('.dplayer-info-panel-item-duration .dplayer-info-panel-item-data');\n this.infoDanmakuId = this.container.querySelector('.dplayer-info-panel-item-danmaku-id .dplayer-info-panel-item-data');\n this.infoDanmakuApi = this.container.querySelector('.dplayer-info-panel-item-danmaku-api .dplayer-info-panel-item-data');\n this.infoDanmakuAmount = this.container.querySelector('.dplayer-info-panel-item-danmaku-amount .dplayer-info-panel-item-data');\n }\n }]);\n return Template;\n}();\nexports.default = Template;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/template.js\n// module id = 15\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/play.svg\n// module id = 16\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/pause.svg\n// module id = 17\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-up.svg\n// module id = 18\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-down.svg\n// module id = 19\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-off.svg\n// module id = 20\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/full.svg\n// module id = 21\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/full-web.svg\n// module id = 22\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/setting.svg\n// module id = 23\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/right.svg\n// module id = 24\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/comment.svg\n// module id = 25\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/comment-off.svg\n// module id = 26\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/send.svg\n// module id = 27\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/pallette.svg\n// module id = 28\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/camera.svg\n// module id = 29\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/subtitle.svg\n// module id = 30\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loading.svg\n// module id = 31\n// module chunks = 0","
\n
\n {{ include './video.art' video }}\n {{ if options.logo }}\n
\n \n
\n {{ /if }}\n
\n
\n
\n
\n
\n \n {{ if options.danmaku }}\n {{ tran('Danmaku is loading') }}\n {{ /if }}\n {{@ icons.loading }}\n
\n
\n
\n
\n
\n \n
\n
\n
{{ tran('Set danmaku color') }}
\n \n \n \n \n \n \n
\n
\n
{{ tran('Set danmaku type') }}
\n \n \n \n
\n
\n \n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n \n 0:00 /\n 0:00\n \n {{ if options.live }}\n {{ tran('Live') }}\n {{ /if }}\n
\n
\n {{ if options.video.quality }}\n
\n \n
\n
\n {{ each options.video.quality }}\n
{{ $value.name }}
\n {{ /each }}\n
\n
\n
\n {{ /if }}\n {{ if options.screenshot }}\n \n {{@ icons.camera }}\n \n {{ /if }}\n
\n \n
\n {{ if options.subtitle }}\n
\n \n
\n {{ /if }}\n
\n \n
\n
\n
\n {{ tran('Speed') }}\n
{{@ icons.right }}
\n
\n
\n {{ tran('Loop') }}\n
\n \n \n
\n
\n
\n {{ tran('Show danmaku') }}\n
\n \n \n
\n
\n
\n {{ tran('Unlimited danmaku') }}\n
\n \n \n
\n
\n
\n {{ tran('Opacity for danmaku') }}\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n 0.5\n
\n
\n 0.75\n
\n
\n {{ tran('Normal') }}\n
\n
\n 1.25\n
\n
\n 1.5\n
\n
\n 2\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
00:00
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
[x]
\n
\n Player version\n \n
\n
\n Player FPS\n \n
\n
\n Video type\n \n
\n
\n Video url\n \n
\n
\n Video resolution\n \n
\n
\n Video duration\n \n
\n {{ if options.danmaku }}\n
\n Danamku id\n \n
\n
\n Danamku api\n \n
\n
\n Danamku amount\n \n
\n {{ /if }}\n
\n
\n {{ each options.contextmenu }}\n \n {{ /each }}\n
\n
\n\n\n// WEBPACK FOOTER //\n// ./src/template/player.art","'use strict';\nvar detectNode = require('detect-node');\nvar runtime = Object.create(detectNode ? global : window);\nvar ESCAPE_REG = /[\"&'<>]/;\nruntime.$escape = function (content) {\n return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n if (Array.isArray(data)) {\n for (var i = 0, len = data.length; i < len; i++) {\n callback(data[i], i);\n }\n } else {\n for (var _i in data) {\n callback(data[_i], _i);\n }\n }\n};\nfunction toString(value) {\n if (typeof value !== 'string') {\n if (value === undefined || value === null) {\n value = '';\n } else if (typeof value === 'function') {\n value = toString(value.call(value));\n } else {\n value = JSON.stringify(value);\n }\n }\n return value;\n}\n;\nfunction xmlEscape(content) {\n var html = '' + content;\n var regexResult = ESCAPE_REG.exec(html);\n if (!regexResult) {\n return content;\n }\n var result = '';\n var i = void 0, lastIndex = void 0, char = void 0;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34:\n char = '"';\n break;\n case 38:\n char = '&';\n break;\n case 39:\n char = ''';\n break;\n case 60:\n char = '<';\n break;\n case 62:\n char = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) {\n result += html.substring(lastIndex, i);\n }\n lastIndex = i + 1;\n result += char;\n }\n if (lastIndex !== i) {\n return result + html.substring(lastIndex, i);\n } else {\n return result;\n }\n}\n;\nmodule.exports = runtime;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/art-template/lib/compile/runtime.js\n// module id = 33\n// module chunks = 0","'use strict';\nmodule.exports = false;\ntry {\n module.exports = Object.prototype.toString.call(global.process) === '[object process]';\n} catch (e) {\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/detect-node/index.js\n// module id = 34\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Danmaku = function () {\n function Danmaku(options) {\n _classCallCheck(this, Danmaku);\n this.options = options;\n this.container = this.options.container;\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.dan = [];\n this.showing = true;\n this._opacity = this.options.opacity;\n this.events = this.options.events;\n this.unlimited = this.options.unlimited;\n this._measure('');\n this.load();\n }\n _createClass(Danmaku, [\n {\n key: 'load',\n value: function load() {\n var _this = this;\n var apiurl = void 0;\n if (this.options.api.maximum) {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id;\n }\n var endpoints = (this.options.api.addition || []).slice(0);\n endpoints.push(apiurl);\n this.events && this.events.trigger('danmaku_load_start', endpoints);\n this._readAllEndpoints(endpoints, function (results) {\n _this.dan = [].concat.apply([], results).sort(function (a, b) {\n return a.time - b.time;\n });\n window.requestAnimationFrame(function () {\n _this.frame();\n });\n _this.options.callback();\n _this.events && _this.events.trigger('danmaku_load_end');\n });\n }\n },\n {\n key: 'reload',\n value: function reload(newAPI) {\n this.options.api = newAPI;\n this.dan = [];\n this.clear();\n this.load();\n }\n },\n {\n key: '_readAllEndpoints',\n value: function _readAllEndpoints(endpoints, callback) {\n var _this2 = this;\n var results = [];\n var readCount = 0;\n var cbk = function cbk(i) {\n return function (err, data) {\n ++readCount;\n if (err) {\n if (err.response) {\n _this2.options.error(err.response.msg);\n } else {\n _this2.options.error('Request was unsuccessful: ' + err.status);\n }\n results[i] = [];\n } else {\n var typeMap = [\n 'right',\n 'top',\n 'bottom'\n ];\n if (data) {\n results[i] = data.map(function (item) {\n return {\n time: item[0],\n type: typeMap[item[1]],\n color: item[2],\n author: item[3],\n text: item[4]\n };\n });\n } else {\n results[i] = [];\n }\n }\n if (readCount === endpoints.length) {\n return callback(results);\n }\n };\n };\n for (var i = 0; i < endpoints.length; ++i) {\n this.options.apiBackend.read(endpoints[i], cbk(i));\n }\n }\n },\n {\n key: 'send',\n value: function send(dan, callback) {\n var danmakuData = {\n token: this.options.api.token,\n player: this.options.api.id,\n author: this.options.api.user,\n time: this.options.time(),\n text: dan.text,\n color: dan.color,\n type: dan.type\n };\n this.options.apiBackend.send(this.options.api.address + 'v2/', danmakuData, callback);\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n var danmaku = {\n text: this.htmlEncode(danmakuData.text),\n color: danmakuData.color,\n type: danmakuData.type,\n border: '2px solid ' + this.options.borderColor\n };\n this.draw(danmaku);\n this.events && this.events.trigger('danmaku_send', danmakuData);\n }\n },\n {\n key: 'frame',\n value: function frame() {\n var _this3 = this;\n if (this.dan.length && !this.paused && this.showing) {\n var item = this.dan[this.danIndex];\n var dan = [];\n while (item && this.options.time() > parseFloat(item.time)) {\n dan.push(item);\n item = this.dan[++this.danIndex];\n }\n this.draw(dan);\n }\n window.requestAnimationFrame(function () {\n _this3.frame();\n });\n }\n },\n {\n key: 'opacity',\n value: function opacity(percentage) {\n if (percentage !== undefined) {\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this._opacity = percentage;\n this.events && this.events.trigger('danmaku_opacity', this._opacity);\n }\n return this._opacity;\n }\n },\n {\n key: 'draw',\n value: function draw(dan) {\n var _this4 = this;\n if (this.showing) {\n var itemHeight = this.options.height;\n var danWidth = this.container.offsetWidth;\n var danHeight = this.container.offsetHeight;\n var itemY = parseInt(danHeight / itemHeight);\n var danItemRight = function danItemRight(ele) {\n var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n var eleRight = ele.getBoundingClientRect().right || _this4.container.getBoundingClientRect().right + eleWidth;\n return _this4.container.getBoundingClientRect().right - eleRight;\n };\n var danSpeed = function danSpeed(width) {\n return (danWidth + width) / 5;\n };\n var getTunnel = function getTunnel(ele, type, width) {\n var tmp = danWidth / danSpeed(width);\n var _loop = function _loop(i) {\n var item = _this4.danTunnel[type][i + ''];\n if (item && item.length) {\n if (type !== 'right') {\n return 'continue';\n }\n for (var j = 0; j < item.length; j++) {\n var danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n _this4.danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n }\n } else {\n _this4.danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n };\n for (var i = 0; _this4.unlimited || i < itemY; i++) {\n var _ret = _loop(i);\n switch (_ret) {\n case 'continue':\n continue;\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object')\n return _ret.v;\n }\n }\n return -1;\n };\n if (Object.prototype.toString.call(dan) !== '[object Array]') {\n dan = [dan];\n }\n var docFragment = document.createDocumentFragment();\n var _loop2 = function _loop2(i) {\n if (!dan[i].type) {\n dan[i].type = 'right';\n }\n if (!dan[i].color) {\n dan[i].color = '#fff';\n }\n var item = document.createElement('div');\n item.classList.add('dplayer-danmaku-item');\n item.classList.add('dplayer-danmaku-' + dan[i].type);\n if (dan[i].border) {\n item.innerHTML = '' + dan[i].text + '';\n } else {\n item.innerHTML = dan[i].text;\n }\n item.style.opacity = _this4._opacity;\n item.style.color = dan[i].color;\n item.addEventListener('animationend', function () {\n _this4.container.removeChild(item);\n });\n var itemWidth = _this4._measure(dan[i].text);\n var tunnel = void 0;\n switch (dan[i].type) {\n case 'right':\n tunnel = getTunnel(item, dan[i].type, itemWidth);\n if (tunnel >= 0) {\n item.style.width = itemWidth + 1 + 'px';\n item.style.top = itemHeight * tunnel + 'px';\n item.style.transform = 'translateX(-' + danWidth + 'px)';\n }\n break;\n case 'top':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.top = itemHeight * tunnel + 'px';\n }\n break;\n case 'bottom':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.bottom = itemHeight * tunnel + 'px';\n }\n break;\n default:\n console.error('Can\\'t handled danmaku type: ' + dan[i].type);\n }\n if (tunnel >= 0) {\n item.classList.add('dplayer-danmaku-move');\n docFragment.appendChild(item);\n }\n };\n for (var i = 0; i < dan.length; i++) {\n _loop2(i);\n }\n this.container.appendChild(docFragment);\n return docFragment;\n }\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n }\n },\n {\n key: '_measure',\n value: function _measure(text) {\n if (!this.context) {\n var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n this.context = document.createElement('canvas').getContext('2d');\n this.context.font = measureStyle.getPropertyValue('font');\n }\n return this.context.measureText(text).width;\n }\n },\n {\n key: 'seek',\n value: function seek() {\n this.clear();\n for (var i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.options.time()) {\n this.danIndex = i;\n break;\n }\n this.danIndex = this.dan.length;\n }\n }\n },\n {\n key: 'clear',\n value: function clear() {\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.options.container.innerHTML = '';\n this.events && this.events.trigger('danmaku_clear');\n }\n },\n {\n key: 'htmlEncode',\n value: function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n },\n {\n key: 'resize',\n value: function resize() {\n var danWidth = this.container.offsetWidth;\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n }\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.showing = false;\n this.pause();\n this.clear();\n this.events && this.events.trigger('danmaku_hide');\n }\n },\n {\n key: 'show',\n value: function show() {\n this.seek();\n this.showing = true;\n this.play();\n this.events && this.events.trigger('danmaku_show');\n }\n },\n {\n key: 'unlimit',\n value: function unlimit(boolean) {\n this.unlimited = boolean;\n }\n }\n ]);\n return Danmaku;\n}();\nexports.default = Danmaku;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/danmaku.js\n// module id = 35\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Events = function () {\n function Events() {\n _classCallCheck(this, Events);\n this.events = {};\n this.videoEvents = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'mozaudioavailable',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ];\n this.playerEvents = [\n 'screenshot',\n 'thumbnails_show',\n 'thumbnails_hide',\n 'danmaku_show',\n 'danmaku_hide',\n 'danmaku_clear',\n 'danmaku_loaded',\n 'danmaku_send',\n 'danmaku_opacity',\n 'contextmenu_show',\n 'contextmenu_hide',\n 'notice_show',\n 'notice_hide',\n 'quality_start',\n 'quality_end',\n 'destroy',\n 'resize',\n 'fullscreen',\n 'fullscreen_cancel',\n 'webfullscreen',\n 'webfullscreen_cancel',\n 'subtitle_show',\n 'subtitle_hide',\n 'subtitle_change'\n ];\n }\n _createClass(Events, [\n {\n key: 'on',\n value: function on(name, callback) {\n if (this.type(name) && typeof callback === 'function') {\n if (!this.events[name]) {\n this.events[name] = [];\n }\n this.events[name].push(callback);\n }\n }\n },\n {\n key: 'trigger',\n value: function trigger(name, info) {\n if (this.events[name] && this.events[name].length) {\n for (var i = 0; i < this.events[name].length; i++) {\n this.events[name][i](info);\n }\n }\n }\n },\n {\n key: 'type',\n value: function type(name) {\n if (this.playerEvents.indexOf(name) !== -1) {\n return 'player';\n } else if (this.videoEvents.indexOf(name) !== -1) {\n return 'video';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/events.js\n// module id = 36\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar FullScreen = function () {\n function FullScreen(player) {\n var _this = this;\n _classCallCheck(this, FullScreen);\n this.player = player;\n this.player.events.on('webfullscreen', function () {\n _this.player.resize();\n });\n this.player.events.on('webfullscreen_cancel', function () {\n _this.player.resize();\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n }\n _createClass(FullScreen, [\n {\n key: 'isFullScreen',\n value: function isFullScreen() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n case 'web':\n return this.player.container.classList.contains('dplayer-fulled');\n }\n }\n },\n {\n key: 'request',\n value: function request() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n var anotherType = type === 'browser' ? 'web' : 'browser';\n var anotherTypeOn = this.isFullScreen(anotherType);\n if (!anotherTypeOn) {\n this.lastScrollPosition = _utils2.default.getScrollPosition();\n }\n switch (type) {\n case 'browser':\n if (this.player.container.requestFullscreen) {\n this.player.container.requestFullscreen();\n } else if (this.player.container.mozRequestFullScreen) {\n this.player.container.mozRequestFullScreen();\n } else if (this.player.container.webkitRequestFullscreen) {\n this.player.container.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.container.classList.add('dplayer-fulled');\n document.body.classList.add('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen');\n break;\n }\n if (anotherTypeOn) {\n this.cancel(anotherType);\n }\n }\n },\n {\n key: 'cancel',\n value: function cancel() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n break;\n case 'web':\n this.player.container.classList.remove('dplayer-fulled');\n document.body.classList.remove('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen_cancel');\n break;\n }\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n if (this.isFullScreen(type)) {\n this.cancel(type);\n } else {\n this.request(type);\n }\n }\n }\n ]);\n return FullScreen;\n}();\nexports.default = FullScreen;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/fullscreen.js\n// module id = 37\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar User = function () {\n function User(player) {\n _classCallCheck(this, User);\n this.storageName = {\n opacity: 'dplayer-danmaku-opacity',\n volume: 'dplayer-volume',\n unlimited: 'dplayer-danmaku-unlimited',\n danmaku: 'dplayer-danmaku-show',\n subtitle: 'dplayer-subtitle-show'\n };\n this.default = {\n opacity: 0.7,\n volume: player.options.volume || 0.7,\n unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 1,\n subtitle: 1\n };\n this.data = {};\n this.init();\n }\n _createClass(User, [\n {\n key: 'init',\n value: function init() {\n for (var item in this.storageName) {\n var name = this.storageName[item];\n this.data[item] = parseFloat(_utils2.default.storage.get(name) || this.default[item]);\n }\n }\n },\n {\n key: 'get',\n value: function get(key) {\n return this.data[key];\n }\n },\n {\n key: 'set',\n value: function set(key, value) {\n this.data[key] = value;\n _utils2.default.storage.set(this.storageName[key], value);\n }\n }\n ]);\n return User;\n}();\nexports.default = User;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/user.js\n// module id = 38\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Subtitle = function () {\n function Subtitle(container, video, options, events) {\n _classCallCheck(this, Subtitle);\n this.container = container;\n this.video = video;\n this.options = options;\n this.events = events;\n this.init();\n }\n _createClass(Subtitle, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.container.style.fontSize = this.options.fontSize;\n this.container.style.bottom = this.options.bottom;\n this.container.style.color = this.options.color;\n if (this.video.textTracks && this.video.textTracks[0]) {\n var track = this.video.textTracks[0];\n track.oncuechange = function () {\n var cue = track.activeCues[0];\n if (cue) {\n _this.container.innerHTML = '';\n var p = document.createElement('p');\n p.appendChild(cue.getCueAsHTML());\n _this.container.appendChild(p);\n } else {\n _this.container.innerHTML = '';\n }\n _this.events.trigger('subtitle_change');\n };\n }\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.classList.remove('dplayer-subtitle-hide');\n this.events.trigger('subtitle_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.classList.add('dplayer-subtitle-hide');\n this.events.trigger('subtitle_hide');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.container.classList.contains('dplayer-subtitle-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n ]);\n return Subtitle;\n}();\nexports.default = Subtitle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/subtitle.js\n// module id = 39\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volumeBar;\n this.elements.played = template.playedBar;\n this.elements.loaded = template.loadedBar;\n this.elements.danmaku = template.danmakuOpacityBar;\n }\n _createClass(Bar, [\n {\n key: 'set',\n value: function set(type, percentage, direction) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.elements[type].style[direction] = percentage * 100 + '%';\n }\n },\n {\n key: 'get',\n value: function get(type) {\n return parseFloat(this.elements[type].style.width) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/bar.js\n// module id = 40\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Time = function () {\n function Time(player) {\n _classCallCheck(this, Time);\n this.player = player;\n window.requestAnimationFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n this.types = [\n 'loading',\n 'progress',\n 'info',\n 'fps'\n ];\n this.init();\n }\n _createClass(Time, [\n {\n key: 'init',\n value: function init() {\n for (var i = 0; i < this.types.length; i++) {\n var type = this.types[i];\n if (type !== 'fps') {\n this['init' + type + 'Checker']();\n }\n }\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this.enableloadingChecker) {\n currentPlayPos = _this.player.video.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'initprogressChecker',\n value: function initprogressChecker() {\n var _this2 = this;\n this.progressChecker = setInterval(function () {\n if (_this2.enableprogressChecker) {\n _this2.player.bar.set('played', _this2.player.video.currentTime / _this2.player.video.duration, 'width');\n var currentTime = _utils2.default.secondToTime(_this2.player.video.currentTime);\n if (_this2.player.template.ptime.innerHTML !== currentTime) {\n _this2.player.template.ptime.innerHTML = _utils2.default.secondToTime(_this2.player.video.currentTime);\n }\n }\n }, 100);\n }\n },\n {\n key: 'initfpsChecker',\n value: function initfpsChecker() {\n var _this3 = this;\n window.requestAnimationFrame(function () {\n if (_this3.enablefpsChecker) {\n _this3.initfpsChecker();\n if (!_this3.fpsStart) {\n _this3.fpsStart = new Date();\n _this3.fpsIndex = 0;\n } else {\n _this3.fpsIndex++;\n var fpsCurrent = new Date();\n if (fpsCurrent - _this3.fpsStart > 1000) {\n _this3.player.infoPanel.fps(_this3.fpsIndex / (fpsCurrent - _this3.fpsStart) * 1000);\n _this3.fpsStart = new Date();\n _this3.fpsIndex = 0;\n }\n }\n } else {\n _this3.fpsStart = 0;\n _this3.fpsIndex = 0;\n }\n });\n }\n },\n {\n key: 'initinfoChecker',\n value: function initinfoChecker() {\n var _this4 = this;\n this.infoChecker = setInterval(function () {\n if (_this4.enableinfoChecker) {\n _this4.player.infoPanel.update();\n }\n }, 1000);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n this['enable' + type + 'Checker'] = true;\n if (type === 'fps') {\n this.initfpsChecker();\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n this['enable' + type + 'Checker'] = false;\n }\n },\n {\n key: 'destroy',\n value: function destroy(type) {\n this[type + 'Checker'] && clearInterval(this[type + 'Checker']);\n }\n }\n ]);\n return Time;\n}();\nexports.default = Time;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/time.js\n// module id = 41\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bezel = function () {\n function Bezel(container) {\n var _this = this;\n _classCallCheck(this, Bezel);\n this.container = container;\n this.container.addEventListener('animationend', function () {\n _this.container.classList.remove('dplayer-bezel-transition');\n });\n }\n _createClass(Bezel, [{\n key: 'switch',\n value: function _switch(icon) {\n this.container.innerHTML = icon;\n this.container.classList.add('dplayer-bezel-transition');\n }\n }]);\n return Bezel;\n}();\nexports.default = Bezel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/bezel.js\n// module id = 42\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _thumbnails = require('./thumbnails');\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nvar _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n var _this = this;\n _classCallCheck(this, Controller);\n this.player = player;\n this.autoHideTimer = 0;\n if (!_utils2.default.isMobile) {\n this.player.container.addEventListener('mousemove', function () {\n _this.setAutoHide();\n });\n this.player.container.addEventListener('click', function () {\n _this.setAutoHide();\n });\n this.player.on('play', function () {\n _this.setAutoHide();\n });\n this.player.on('pause', function () {\n _this.setAutoHide();\n });\n }\n this.initPlayButton();\n this.initThumbnails();\n this.initPlayedBar();\n this.initFullButton();\n this.initQualityButton();\n this.initScreenshotButton();\n this.initSubtitleButton();\n if (!_utils2.default.isMobile) {\n this.initVolumeButton();\n }\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this2 = this;\n this.player.template.playButton.addEventListener('click', function () {\n _this2.player.toggle();\n });\n if (!_utils2.default.isMobile) {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.player.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.player.toggle();\n });\n } else {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.toggle();\n });\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this3 = this;\n if (this.player.options.video.thumbnails) {\n this.thumbnails = new _thumbnails2.default({\n container: this.player.template.barPreview,\n barWidth: this.player.template.barWrap.offsetWidth,\n url: this.player.options.video.thumbnails,\n events: this.player.events\n });\n this.player.on('loadedmetadata', function () {\n _this3.thumbnails.resize(160, _this3.player.video.videoHeight / _this3.player.video.videoWidth * 160);\n });\n }\n }\n },\n {\n key: 'initPlayedBar',\n value: function initPlayedBar() {\n var _this4 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this4.player.video.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.seek(_this4.player.bar.get('played') * _this4.player.video.duration);\n _this4.player.time.enable('progress');\n };\n this.player.template.playedBarWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this4.player.time.disable('progress');\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n this.player.template.playedBarWrap.addEventListener(_utils2.default.nameMap.dragMove, function (e) {\n if (_this4.player.video.duration) {\n var px = _utils2.default.cumulativeOffset(_this4.player.template.playedBarWrap).left;\n var tx = (e.clientX || e.changedTouches[0].clientX) - px;\n if (tx < 0 || tx > _this4.player.template.playedBarWrap.offsetWidth) {\n return;\n }\n var time = _this4.player.video.duration * (tx / _this4.player.template.playedBarWrap.offsetWidth);\n if (_utils2.default.isMobile) {\n _this4.thumbnails && _this4.thumbnails.show();\n }\n _this4.thumbnails && _this4.thumbnails.move(tx);\n _this4.player.template.playedBarTime.style.left = tx - 20 + 'px';\n _this4.player.template.playedBarTime.innerText = _utils2.default.secondToTime(time);\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener(_utils2.default.nameMap.dragEnd, function () {\n if (_utils2.default.isMobile) {\n _this4.thumbnails && _this4.thumbnails.hide();\n }\n });\n if (!_utils2.default.isMobile) {\n this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.show();\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.player.template.playedBarTime.classList.add('hidden');\n }\n });\n }\n }\n },\n {\n key: 'initFullButton',\n value: function initFullButton() {\n var _this5 = this;\n this.player.template.browserFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('browser');\n });\n this.player.template.webFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('web');\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this6 = this;\n var vWidth = 35;\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, volumeUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, volumeMove);\n _this6.player.template.volumeButton.classList.remove('dplayer-volume-active');\n };\n this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n });\n this.player.template.volumeBarWrapWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n document.addEventListener(_utils2.default.nameMap.dragMove, volumeMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, volumeUp);\n _this6.player.template.volumeButton.classList.add('dplayer-volume-active');\n });\n this.player.template.volumeIcon.addEventListener('click', function () {\n if (_this6.player.video.muted) {\n _this6.player.video.muted = false;\n _this6.player.switchVolumeIcon();\n _this6.player.bar.set('volume', _this6.player.volume(), 'width');\n } else {\n _this6.player.video.muted = true;\n _this6.player.template.volumeIcon.innerHTML = _icons2.default.volumeOff;\n _this6.player.bar.set('volume', 0, 'width');\n }\n });\n }\n },\n {\n key: 'initQualityButton',\n value: function initQualityButton() {\n var _this7 = this;\n if (this.player.options.video.quality) {\n this.player.template.qualityList.addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this7.player.switchQuality(e.target.dataset.index);\n }\n });\n }\n }\n },\n {\n key: 'initScreenshotButton',\n value: function initScreenshotButton() {\n var _this8 = this;\n if (this.player.options.screenshot) {\n this.player.template.camareButton.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this8.player.video.videoWidth;\n canvas.height = _this8.player.video.videoHeight;\n canvas.getContext('2d').drawImage(_this8.player.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n _this8.player.template.camareButton.href = dataURL;\n _this8.player.template.camareButton.download = 'DPlayer.png';\n _this8.player.events.trigger('screenshot', dataURL);\n });\n }\n }\n },\n {\n key: 'initSubtitleButton',\n value: function initSubtitleButton() {\n var _this9 = this;\n if (this.player.options.subtitle) {\n this.player.events.on('subtitle_show', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Hide subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '';\n _this9.player.user.set('subtitle', 1);\n });\n this.player.events.on('subtitle_hide', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Show subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '0.4';\n _this9.player.user.set('subtitle', 0);\n });\n this.player.template.subtitleButton.addEventListener('click', function () {\n _this9.player.subtitle.toggle();\n });\n }\n }\n },\n {\n key: 'setAutoHide',\n value: function setAutoHide() {\n var _this10 = this;\n this.show();\n clearTimeout(this.autoHideTimer);\n this.autoHideTimer = setTimeout(function () {\n if (_this10.player.video.played.length && !_this10.player.paused && !_this10.disableAutoHide) {\n _this10.hide();\n }\n }, 3000);\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.container.classList.remove('dplayer-hide-controller');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.container.classList.add('dplayer-hide-controller');\n this.player.setting.hide();\n this.player.comment && this.player.comment.hide();\n }\n },\n {\n key: 'isShow',\n value: function isShow() {\n return !this.player.container.classList.contains('dplayer-hide-controller');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.isShow()) {\n this.hide();\n } else {\n this.show();\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n clearTimeout(this.autoHideTimer);\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/controller.js\n// module id = 43\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Thumbnails = function () {\n function Thumbnails(options) {\n _classCallCheck(this, Thumbnails);\n this.container = options.container;\n this.barWidth = options.barWidth;\n this.container.style.backgroundImage = 'url(\\'' + options.url + '\\')';\n this.events = options.events;\n }\n _createClass(Thumbnails, [\n {\n key: 'resize',\n value: function resize(width, height) {\n this.container.style.width = width + 'px';\n this.container.style.height = height + 'px';\n this.container.style.top = -height + 2 + 'px';\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.style.display = 'block';\n this.events && this.events.trigger('thumbnails_show');\n }\n },\n {\n key: 'move',\n value: function move(position) {\n this.container.style.backgroundPosition = '-' + (Math.ceil(position / this.barWidth * 100) - 1) * 160 + 'px 0';\n this.container.style.left = position - this.container.offsetWidth / 2 + 'px';\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.style.display = 'none';\n this.events && this.events.trigger('thumbnails_hide');\n }\n }\n ]);\n return Thumbnails;\n}();\nexports.default = Thumbnails;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/thumbnails.js\n// module id = 44\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Setting = function () {\n function Setting(player) {\n var _this = this;\n _classCallCheck(this, Setting);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.settingButton.addEventListener('click', function () {\n _this.show();\n });\n this.loop = this.player.options.loop;\n this.player.template.loopToggle.checked = this.loop;\n this.player.template.loop.addEventListener('click', function () {\n _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n if (_this.player.template.loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n _this.hide();\n });\n this.showDanmaku = this.player.user.get('danmaku');\n if (!this.showDanmaku) {\n this.player.danmaku && this.player.danmaku.hide();\n }\n this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n this.player.template.showDanmaku.addEventListener('click', function () {\n _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n if (_this.player.template.showDanmakuToggle.checked) {\n _this.showDanmaku = true;\n _this.player.danmaku.show();\n } else {\n _this.showDanmaku = false;\n _this.player.danmaku.hide();\n }\n _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n _this.hide();\n });\n this.unlimitDanmaku = this.player.user.get('unlimited');\n this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n this.player.template.unlimitDanmaku.addEventListener('click', function () {\n _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n if (_this.player.template.unlimitDanmakuToggle.checked) {\n _this.unlimitDanmaku = true;\n _this.player.danmaku.unlimit(true);\n } else {\n _this.unlimitDanmaku = false;\n _this.player.danmaku.unlimit(false);\n }\n _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n _this.hide();\n });\n this.player.template.speed.addEventListener('click', function () {\n _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n });\n var _loop = function _loop(i) {\n _this.player.template.speedItem[i].addEventListener('click', function () {\n _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n _this.hide();\n });\n };\n for (var i = 0; i < this.player.template.speedItem.length; i++) {\n _loop(i);\n }\n if (this.player.danmaku) {\n var dWidth = 130;\n this.player.on('danmaku_opacity', function (percentage) {\n _this.player.bar.set('danmaku', percentage, 'width');\n _this.player.user.set('opacity', percentage);\n });\n this.player.danmaku.opacity(this.player.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, danmakuUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, danmakuMove);\n _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n };\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n });\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n document.addEventListener(_utils2.default.nameMap.dragMove, danmakuMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, danmakuUp);\n _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n }\n _createClass(Setting, [\n {\n key: 'hide',\n value: function hide() {\n var _this2 = this;\n this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n }, 300);\n this.player.controller.disableAutoHide = false;\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.controller.disableAutoHide = true;\n }\n }\n ]);\n return Setting;\n}();\nexports.default = Setting;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/setting.js\n// module id = 45\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Comment = function () {\n function Comment(player) {\n var _this = this;\n _classCallCheck(this, Comment);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.commentButton.addEventListener('click', function () {\n _this.show();\n });\n this.player.template.commentSettingButton.addEventListener('click', function () {\n _this.toggleSetting();\n });\n this.player.template.commentColorSettingBox.addEventListener('click', function () {\n var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n if (sele) {\n var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n _this.player.template.commentSettingFill.style.fill = color;\n _this.player.template.commentInput.style.color = color;\n _this.player.template.commentSendFill.style.fill = color;\n }\n });\n this.player.template.commentInput.addEventListener('click', function () {\n _this.hideSetting();\n });\n this.player.template.commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n _this.send();\n }\n });\n this.player.template.commentSendButton.addEventListener('click', function () {\n _this.send();\n });\n }\n _createClass(Comment, [\n {\n key: 'show',\n value: function show() {\n this.player.controller.disableAutoHide = true;\n this.player.template.controller.classList.add('dplayer-controller-comment');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.container.classList.add('dplayer-show-controller');\n this.player.template.commentInput.focus();\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.controller.classList.remove('dplayer-controller-comment');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.container.classList.remove('dplayer-show-controller');\n this.player.controller.disableAutoHide = false;\n this.hideSetting();\n }\n },\n {\n key: 'showSetting',\n value: function showSetting() {\n this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n },\n {\n key: 'hideSetting',\n value: function hideSetting() {\n this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n },\n {\n key: 'toggleSetting',\n value: function toggleSetting() {\n if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n this.hideSetting();\n } else {\n this.showSetting();\n }\n }\n },\n {\n key: 'send',\n value: function send() {\n var _this2 = this;\n this.player.template.commentInput.blur();\n if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n this.player.notice(this.player.tran('Please input danmaku content!'));\n return;\n }\n this.player.danmaku.send({\n text: this.player.template.commentInput.value,\n color: this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n _this2.player.template.commentInput.value = '';\n _this2.hide();\n });\n }\n }\n ]);\n return Comment;\n}();\nexports.default = Comment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/comment.js\n// module id = 46\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar HotKey = function HotKey(player) {\n _classCallCheck(this, HotKey);\n if (player.options.hotkey) {\n document.addEventListener('keydown', function (e) {\n if (player.focus) {\n var tag = document.activeElement.tagName.toUpperCase();\n var editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n var event = e || window.event;\n var percentage = void 0;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n case 37:\n event.preventDefault();\n player.seek(player.video.currentTime - 5);\n player.controller.setAutoHide();\n break;\n case 39:\n event.preventDefault();\n player.seek(player.video.currentTime + 5);\n player.controller.setAutoHide();\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n break;\n }\n }\n }\n });\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (player.fullScreen.isFullScreen('web')) {\n player.fullScreen.cancel('web');\n }\n break;\n }\n });\n};\nexports.default = HotKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/hotkey.js\n// module id = 47\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar ContextMenu = function () {\n function ContextMenu(player) {\n var _this = this;\n _classCallCheck(this, ContextMenu);\n this.player = player;\n [].concat(_toConsumableArray(this.player.template.menuItem)).map(function (item, index) {\n if (_this.player.options.contextmenu[index].click) {\n item.addEventListener('click', function () {\n _this.player.options.contextmenu[index].click(_this.player);\n _this.hide();\n });\n }\n return item;\n });\n this.player.container.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n var clientRect = _this.player.container.getBoundingClientRect();\n _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n _this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n });\n }\n _createClass(ContextMenu, [\n {\n key: 'show',\n value: function show(x, y) {\n this.player.template.menu.classList.add('dplayer-menu-show');\n var clientRect = this.player.container.getBoundingClientRect();\n if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n this.player.template.menu.style.right = clientRect.width - x + 'px';\n this.player.template.menu.style.left = 'initial';\n } else {\n this.player.template.menu.style.left = x + 'px';\n this.player.template.menu.style.right = 'initial';\n }\n if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n this.player.template.menu.style.top = 'initial';\n } else {\n this.player.template.menu.style.top = y + 'px';\n this.player.template.menu.style.bottom = 'initial';\n }\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.events.trigger('contextmenu_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.template.menu.classList.remove('dplayer-menu-show');\n this.player.events.trigger('contextmenu_hide');\n }\n }\n ]);\n return ContextMenu;\n}();\nexports.default = ContextMenu;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/contextmenu.js\n// module id = 48\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar InfoPanel = function () {\n function InfoPanel(player) {\n var _this = this;\n _classCallCheck(this, InfoPanel);\n this.container = player.template.infoPanel;\n this.template = player.template;\n this.video = player.video;\n this.player = player;\n this.template.infoPanelClose.addEventListener('click', function () {\n _this.hide();\n });\n }\n _createClass(InfoPanel, [\n {\n key: 'show',\n value: function show() {\n this.beginTime = Date.now();\n this.update();\n this.player.time.enable('info');\n this.player.time.enable('fps');\n this.container.classList.remove('dplayer-info-panel-hide');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.time.disable('info');\n this.player.time.disable('fps');\n this.container.classList.add('dplayer-info-panel-hide');\n }\n },\n {\n key: 'triggle',\n value: function triggle() {\n if (this.container.classList.contains('dplayer-info-panel-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n },\n {\n key: 'update',\n value: function update() {\n this.template.infoVersion.innerHTML = 'v' + DPLAYER_VERSION + ' ' + GIT_HASH;\n this.template.infoType.innerHTML = this.player.type;\n this.template.infoUrl.innerHTML = this.player.options.video.url;\n this.template.infoResolution.innerHTML = this.player.video.videoWidth + ' x ' + this.player.video.videoHeight;\n this.template.infoDuration.innerHTML = this.player.video.duration;\n if (this.player.options.danmaku) {\n this.template.infoDanmakuId.innerHTML = this.player.options.danmaku.id;\n this.template.infoDanmakuApi.innerHTML = this.player.options.danmaku.api;\n this.template.infoDanmakuAmount.innerHTML = this.player.danmaku.dan.length;\n }\n }\n },\n {\n key: 'fps',\n value: function fps(value) {\n this.template.infoFPS.innerHTML = '' + value.toFixed(1);\n }\n }\n ]);\n return InfoPanel;\n}();\nexports.default = InfoPanel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/info-panel.js\n// module id = 49\n// module chunks = 0"],"sourceRoot":""}