{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 4c40a0471ae0b00e6cd3","webpack:///./src/utils.js","webpack:///./src/svg.js","webpack:///./src/index.js","webpack:///./src/DPlayer.js","webpack:///./src/option.js","webpack:///./src/api.js","webpack:///./src/i18n.js","webpack:///./src/html.js","webpack:///./src/danmaku.js","webpack:///./src/thumbnails.js","webpack:///./src/events.js","webpack:///./src/fullscreen.js","webpack:///./src/user.js"],"names":["root","factory","exports","module","define","amd","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","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","element","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","document","body","scrollLeft","documentElement","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","isMobile","test","window","navigator","userAgent","storage","set","key","value","localStorage","setItem","getItem","svgSource","play","pause","volume-up","volume-down","volume-off","loop","full","full-in","setting","right","comment","comment-off","send","menu","camera","type","console","log","_interopRequireDefault","obj","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","protoProps","staticProps","_utils","_utils2","_svg","_svg2","_option","_option2","_i18n","_i18n2","_html","_html2","_danmaku","_danmaku2","_thumbnails","_thumbnails2","_events","_events2","_fullscreen","_fullscreen2","_user","_user2","index","DPlayer","option","_this","classList","add","video","quality","qualityIndex","defaultQuality","tran","lang","events","user","danmaku","innerHTML","main","bar","volumeBar","getElementsByClassName","playedBar","loadedBar","pbar","pbarTimeTips","barWidth","updateBar","percentage","direction","style","addEventListener","focus","container","opacity","callback","display","autoplay","error","msg","notice","apiBackend","borderColor","theme","height","arrow","time","currentTime","unlimited","api","id","address","token","maximum","addition","offsetWidth","arrowStyle","createElement","head","appendChild","bezel","remove","playButton","paused","toggle","videoWrap","conMask","toggleController","contains","lastPlayPos","currentPlayPos","bufferingDetected","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","setCheckLoadingTime","checkLoading","setInterval","clearCheckLoadingTime","clearInterval","playedTime","animationFrame","duration","setTime","clearTime","event","e","clientWidth","clientX","seek","parseFloat","width","thumbnails","initThumbnails","isTimeTipsShow","mouseHandler","bind","thumbMove","thumbUp","removeEventListener","volumeEle","volumeBarWrapWrap","volumeBarWrap","volumeicon","switchVolumeIcon","volume","volumeMove","volumeUp","muted","hideTime","hideController","clearTimeout","played","closeSetting","closeComment","settingHTML","settingIcon","settingBox","mask","original","settingEvent","openSetting","showdan","hide","unlimitDan","loopEle","loopToggle","checked","showDanEle","showDanToggle","show","unlimitDanEle","unlimitDanToggle","unlimit","speed","speedItem","playbackRate","dataset","danmakuBar","danmakuBarWrapWrap","danmakuBarWrap","danmakuSettingBox","on","danmakuMove","danmakuUp","commentInput","commentIcon","commentBox","commentSettingIcon","commentSettingBox","commentSendIcon","closeCommentSetting","toggleCommentSetting","disableHide","commentFocusTimeout","openComment","querySelector","fill","sendComment","blur","replace","text","color","keyCode","fullScreen","handleKeyDown","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","hotkey","isFullScreen","cancel","clientRect","getBoundingClientRect","menuLeft","left","menuTop","clientY","top","offsetHeight","bottom","trigger","switchQuality","screenshot","camareIcon","canvas","videoWidth","videoHeight","getContext","drawImage","dataURL","toDataURL","href","download","initVideo","Math","max","ended","nonotice","nostorage","isNaN","toFixed","danmakuAPI","poster","pic","src","url","initMSE","reload","exec","Hls","isSupported","hls","loadSource","attachMedia","flvjs","flvPlayer","createPlayer","attachMediaElement","load","_this2","buffered","end","danIndex","videoEvents","_this3","switchingQuality","videoHTML","videoEle","DOMParser","parseFromString","firstChild","parent","insertBefore","getElementsByTagName","prevVideo","removeChild","timeTips","_this4","cumulativeOffset","offsetTop","px","tx","move","innerText","timeTipsDisplay","_this5","resize","_this6","arguments","undefined","noticeEle","noticeTime","defaultApiBackend","defaultOption","language","browserLanguage","toLowerCase","preload","contextmenu","defaultKey","concat","link","SendXMLHttpRequest","data","success","fail","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","open","stringify","endpoint","danmakuData","alert","read","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 to","REW to","Unlimited danmaku","zh-tw","svg","html","videos","logo","danmakumargin","margin","qualityList","contextmenuList","result","_typeof","Symbol","iterator","constructor","Danmaku","options","danTunnel","dan","showing","_opacity","_measure","apiurl","endpoints","slice","push","_readAllEndpoints","results","apply","sort","a","b","frame","newAPI","clear","readCount","err","player","author","splice","htmlEncode","border","draw","item","items","itemHeight","danWidth","danHeight","itemY","danItemRight","ele","eleWidth","eleRight","danSpeed","getTunnel","tmp","_ret","v","j","danRight","toString","docFragment","createDocumentFragment","itemWidth","tunnel","transform","context","measureStyle","getComputedStyle","font","getPropertyValue","measureText","str","boolean","Thumbnails","backgroundImage","position","backgroundPosition","ceil","Events","playerEvents","info","indexOf","FullScreen","fullscreenchange","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","webkitEnterFullscreen","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","request","User","storageName","init"],"mappings":"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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})(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})(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 = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var min = parseInt(second / 60);\n var sec = parseInt(second - min * 60);\n return add0(min) + ':' + add0(sec);\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 isMobile: /mobile/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};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar svgSource = {\n 'play': [\n '0 0 16 32',\n 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'\n ],\n 'pause': [\n '0 0 17 32',\n 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'\n ],\n 'volume-up': [\n '0 0 21 32',\n 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'\n ],\n 'volume-down': [\n '0 0 21 32',\n 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'\n ],\n 'volume-off': [\n '0 0 21 32',\n 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'\n ],\n 'loop': [\n '0 0 32 32',\n 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'\n ],\n 'full': [\n '0 0 32 33',\n 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'\n ],\n 'full-in': [\n '0 0 32 33',\n 'M24.965 24.38h-18.132c-1.366 0-2.478-1.113-2.478-2.478v-11.806c0-1.364 1.111-2.478 2.478-2.478h18.132c1.366 0 2.478 1.113 2.478 2.478v11.806c0 1.364-1.11 2.478-2.478 2.478zM6.833 10.097v11.806h18.134l-0.002-11.806h-18.132zM2.478 28.928h5.952c0.684 0 1.238-0.554 1.238-1.239 0-0.684-0.554-1.238-1.238-1.238h-5.952v-5.802c0-0.684-0.554-1.239-1.238-1.239s-1.239 0.556-1.239 1.239v5.802c0 1.365 1.111 2.478 2.478 2.478zM30.761 19.412c-0.684 0-1.238 0.554-1.238 1.238v5.801h-5.951c-0.686 0-1.239 0.554-1.239 1.238 0 0.686 0.554 1.239 1.239 1.239h5.951c1.366 0 2.478-1.111 2.478-2.478v-5.801c0-0.683-0.554-1.238-1.239-1.238zM0 5.55v5.802c0 0.683 0.554 1.238 1.238 1.238s1.238-0.555 1.238-1.238v-5.802h5.952c0.684 0 1.238-0.554 1.238-1.238s-0.554-1.238-1.238-1.238h-5.951c-1.366-0.001-2.478 1.111-2.478 2.476zM32 11.35v-5.801c0-1.365-1.11-2.478-2.478-2.478h-5.951c-0.686 0-1.239 0.554-1.239 1.238s0.554 1.238 1.239 1.238h5.951v5.801c0 0.683 0.554 1.237 1.238 1.237 0.686 0.002 1.239-0.553 1.239-1.236z'\n ],\n 'setting': [\n '0 0 32 28',\n 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'\n ],\n 'right': [\n '0 0 32 32',\n 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'\n ],\n 'comment': [\n '0 0 32 32',\n 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'\n ],\n 'comment-off': [\n '0 0 32 32',\n 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'\n ],\n 'send': [\n '0 0 32 32',\n 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'\n ],\n 'menu': [\n '0 0 22 32',\n 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'\n ],\n 'camera': [\n '0 0 32 32',\n 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z'\n ]\n};\nmodule.exports = function (type) {\n return '\\n';\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nconsole.log('\\n' + ' %c DPlayer ' + \"1.10.0\" + ' ' + \"0bad7b7\" + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nmodule.exports = __webpack_require__(3);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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}();\n__webpack_require__(4);\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _svg = __webpack_require__(1);\nvar _svg2 = _interopRequireDefault(_svg);\nvar _option = __webpack_require__(5);\nvar _option2 = _interopRequireDefault(_option);\nvar _i18n = __webpack_require__(7);\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _html = __webpack_require__(8);\nvar _html2 = _interopRequireDefault(_html);\nvar _danmaku = __webpack_require__(9);\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _thumbnails = __webpack_require__(10);\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nvar _events = __webpack_require__(11);\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = __webpack_require__(12);\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = __webpack_require__(13);\nvar _user2 = _interopRequireDefault(_user);\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 DPlayer = function () {\n function DPlayer(option) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.option = (0, _option2.default)(option);\n this.option.element.classList.add('dplayer');\n if (this.option.video.quality) {\n this.qualityIndex = this.option.video.defaultQuality;\n this.quality = this.option.video.quality[this.option.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.option.lang).tran;\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.element = this.option.element;\n if (!this.option.danmaku) {\n this.element.classList.add('dplayer-no-danmaku');\n }\n if (_utils.isMobile) {\n this.element.classList.add('dplayer-mobile');\n }\n this.element.innerHTML = _html2.default.main(option, index, this.tran);\n var bar = {};\n bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n var pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n var pbarTimeTips = this.element.getElementsByClassName('dplayer-bar-time')[0];\n var barWidth = void 0;\n this.updateBar = function (type, percentage, direction) {\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n };\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.element.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n if (this.option.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.element.getElementsByClassName('dplayer-danmaku')[0],\n opacity: this.user.get('opacity'),\n callback: function callback() {\n _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n if (_this.option.autoplay && !_utils.isMobile) {\n _this.play();\n } else if (_utils.isMobile) {\n _this.pause();\n }\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.option.apiBackend,\n borderColor: this.option.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.option.danmaku.id,\n address: this.option.danmaku.api,\n token: this.option.danmaku.token,\n maximum: this.option.danmaku.maximum,\n addition: this.option.danmaku.addition,\n user: this.option.danmaku.user\n },\n events: this.events\n });\n }\n this.arrow = this.element.offsetWidth <= 500;\n if (this.arrow) {\n var arrowStyle = document.createElement('style');\n arrowStyle.innerHTML = '.dplayer .dplayer-danmaku{font-size:18px}';\n document.head.appendChild(arrowStyle);\n }\n this.video = this.element.getElementsByClassName('dplayer-video-current')[0];\n this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n this.bezel.addEventListener('animationend', function () {\n _this.bezel.classList.remove('dplayer-bezel-transition');\n });\n this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n this.paused = true;\n this.playButton.addEventListener('click', function () {\n _this.toggle();\n });\n var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n if (!_utils.isMobile) {\n videoWrap.addEventListener('click', function () {\n _this.toggle();\n });\n conMask.addEventListener('click', function () {\n _this.toggle();\n });\n } else {\n var toggleController = function toggleController() {\n if (_this.element.classList.contains('dplayer-hide-controller')) {\n _this.element.classList.remove('dplayer-hide-controller');\n } else {\n _this.element.classList.add('dplayer-hide-controller');\n }\n };\n videoWrap.addEventListener('click', toggleController);\n conMask.addEventListener('click', toggleController);\n }\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\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 var setCheckLoadingTime = function setCheckLoadingTime() {\n _this.checkLoading = setInterval(function () {\n currentPlayPos = _this.video.currentTime;\n if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this.video.paused) {\n _this.element.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this.video.paused) {\n _this.element.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }, 100);\n };\n var clearCheckLoadingTime = function clearCheckLoadingTime() {\n clearInterval(_this.checkLoading);\n };\n this.playedTime = false;\n this.animationFrame = function () {\n if (_this.playedTime) {\n _this.updateBar('played', _this.video.currentTime / _this.video.duration, 'width');\n _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = _utils2.default.secondToTime(_this.video.currentTime);\n }\n window.requestAnimationFrame(_this.animationFrame);\n };\n window.requestAnimationFrame(this.animationFrame);\n this.setTime = function (type) {\n if (!type) {\n _this.playedTime = true;\n setCheckLoadingTime();\n } else {\n _this[type + 'Time'] = true;\n if (type === 'played') {\n setCheckLoadingTime();\n }\n }\n };\n this.clearTime = function (type) {\n if (!type) {\n _this.playedTime = false;\n clearCheckLoadingTime();\n } else {\n _this[type + 'Time'] = false;\n if (type === 'played') {\n clearCheckLoadingTime();\n }\n }\n };\n pbar.addEventListener('click', function (event) {\n var e = event || window.event;\n barWidth = pbar.clientWidth;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(pbar)) / barWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.updateBar('played', percentage, 'width');\n _this.seek(parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration);\n });\n if (this.option.video.thumbnails) {\n this.initThumbnails();\n }\n this.isTimeTipsShow = true;\n this.mouseHandler = this.mouseHandler(pbar, pbarTimeTips).bind(this);\n pbar.addEventListener('mousemove', this.mouseHandler);\n pbar.addEventListener('mouseenter', this.mouseHandler);\n pbar.addEventListener('mouseleave', this.mouseHandler);\n var thumbMove = function thumbMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(pbar)) / barWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.updateBar('played', percentage, 'width');\n _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = _utils2.default.secondToTime(percentage * _this.video.duration);\n };\n var thumbUp = function thumbUp() {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n _this.seek(parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration);\n _this.setTime();\n };\n pbar.addEventListener('mousedown', function () {\n barWidth = pbar.clientWidth;\n _this.clearTime();\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n var vWidth = 35;\n this.switchVolumeIcon = function () {\n var volumeicon = _this.element.getElementsByClassName('dplayer-volume-icon')[0];\n if (_this.volume() >= 0.95) {\n volumeicon.innerHTML = (0, _svg2.default)('volume-up');\n } else if (_this.volume() > 0) {\n volumeicon.innerHTML = (0, _svg2.default)('volume-down');\n } else {\n volumeicon.innerHTML = (0, _svg2.default)('volume-off');\n }\n };\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n _this.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n volumeEle.classList.remove('dplayer-volume-active');\n };\n volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n _this.volume(percentage);\n });\n volumeBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n volumeEle.classList.add('dplayer-volume-active');\n });\n volumeicon.addEventListener('click', function () {\n if (_this.video.muted) {\n _this.video.muted = false;\n _this.switchVolumeIcon();\n _this.updateBar('volume', _this.volume(), 'width');\n } else {\n _this.video.muted = true;\n volumeicon.innerHTML = (0, _svg2.default)('volume-off');\n _this.updateBar('volume', 0, 'width');\n }\n });\n this.hideTime = 0;\n var hideController = function hideController() {\n _this.element.classList.remove('dplayer-hide-controller');\n clearTimeout(_this.hideTime);\n _this.hideTime = setTimeout(function () {\n if (_this.video.played.length) {\n _this.element.classList.add('dplayer-hide-controller');\n closeSetting();\n closeComment();\n }\n }, 2000);\n };\n if (!_utils.isMobile) {\n this.element.addEventListener('mousemove', hideController);\n this.element.addEventListener('click', hideController);\n }\n var settingHTML = _html2.default.setting(this.tran);\n var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n settingBox.innerHTML = settingHTML.original;\n var closeSetting = function closeSetting() {\n if (settingBox.classList.contains('dplayer-setting-box-open')) {\n settingBox.classList.remove('dplayer-setting-box-open');\n mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n settingBox.classList.remove('dplayer-setting-box-narrow');\n settingBox.innerHTML = settingHTML.original;\n settingEvent();\n }, 300);\n }\n };\n var openSetting = function openSetting() {\n settingBox.classList.add('dplayer-setting-box-open');\n mask.classList.add('dplayer-mask-show');\n };\n mask.addEventListener('click', function () {\n closeSetting();\n });\n settingIcon.addEventListener('click', function () {\n openSetting();\n });\n this.loop = this.option.loop;\n var showdan = this.user.get('danmaku');\n if (!showdan) {\n this.danmaku && this.danmaku.hide();\n }\n var unlimitDan = this.user.get('unlimited');\n var settingEvent = function settingEvent() {\n var loopEle = _this.element.getElementsByClassName('dplayer-setting-loop')[0];\n var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n loopToggle.checked = _this.loop;\n loopEle.addEventListener('click', function () {\n loopToggle.checked = !loopToggle.checked;\n if (loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n closeSetting();\n });\n var showDanEle = _this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n var showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n showDanToggle.checked = showdan;\n showDanEle.addEventListener('click', function () {\n showDanToggle.checked = !showDanToggle.checked;\n if (showDanToggle.checked) {\n showdan = true;\n if (!_this.paused) {\n _this.danmaku.show();\n }\n } else {\n showdan = false;\n _this.danmaku.hide();\n }\n _this.user.set('danmaku', showdan ? 1 : 0);\n closeSetting();\n });\n var unlimitDanEle = _this.element.getElementsByClassName('dplayer-setting-danunlimit')[0];\n var unlimitDanToggle = unlimitDanEle.getElementsByClassName('dplayer-danunlimit-setting-input')[0];\n unlimitDanToggle.checked = unlimitDan;\n unlimitDanEle.addEventListener('click', function () {\n unlimitDanToggle.checked = !unlimitDanToggle.checked;\n if (unlimitDanToggle.checked) {\n unlimitDan = true;\n _this.danmaku.unlimit(true);\n } else {\n unlimitDan = false;\n _this.danmaku.unlimit(false);\n }\n _this.user.set('unlimited', unlimitDan ? 1 : 0);\n closeSetting();\n });\n var speedEle = _this.element.getElementsByClassName('dplayer-setting-speed')[0];\n speedEle.addEventListener('click', function () {\n settingBox.classList.add('dplayer-setting-box-narrow');\n settingBox.innerHTML = settingHTML.speed;\n var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n var _loop = function _loop(i) {\n speedItem[i].addEventListener('click', function () {\n _this.video.playbackRate = speedItem[i].dataset.speed;\n closeSetting();\n });\n };\n for (var i = 0; i < speedItem.length; i++) {\n _loop(i);\n }\n });\n if (_this.danmaku) {\n bar.danmakuBar = _this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n var danmakuBarWrapWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n var danmakuBarWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n var danmakuSettingBox = _this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n var dWidth = 130;\n _this.on('danmaku_opacity', function (percentage) {\n _this.updateBar('danmaku', percentage, 'width');\n _this.user.set('opacity', percentage);\n });\n _this.danmaku.opacity(_this.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(danmakuBarWrap)) / dWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n };\n danmakuBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(danmakuBarWrap)) / dWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.danmaku.opacity(percentage);\n });\n danmakuBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n };\n settingEvent();\n if (this.video.duration !== 1) {\n this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? _utils2.default.secondToTime(this.video.duration) : '00:00';\n }\n if (!this.danmaku) {\n if (this.option.autoplay && !_utils.isMobile) {\n this.play();\n } else if (_utils.isMobile) {\n this.pause();\n }\n }\n var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n var closeCommentSetting = function closeCommentSetting() {\n if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n };\n var toggleCommentSetting = function toggleCommentSetting() {\n if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n commentSettingBox.classList.remove('dplayer-comment-setting-open');\n } else {\n commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n };\n var disableHide = 0;\n var commentFocusTimeout = 0;\n var closeComment = function closeComment() {\n if (!commentBox.classList.contains('dplayer-comment-box-open')) {\n return;\n }\n commentBox.classList.remove('dplayer-comment-box-open');\n mask.classList.remove('dplayer-mask-show');\n _this.element.classList.remove('dplayer-show-controller');\n clearInterval(disableHide);\n clearTimeout(commentFocusTimeout);\n closeCommentSetting();\n };\n var openComment = function openComment() {\n if (commentBox.classList.contains('dplayer-comment-box-open')) {\n return;\n }\n commentBox.classList.add('dplayer-comment-box-open');\n mask.classList.add('dplayer-mask-show');\n _this.element.classList.add('dplayer-show-controller');\n disableHide = setInterval(function () {\n clearTimeout(_this.hideTime);\n }, 1000);\n commentFocusTimeout = setTimeout(function () {\n commentInput.focus();\n }, 300);\n };\n mask.addEventListener('click', function () {\n closeComment();\n });\n commentIcon.addEventListener('click', function () {\n openComment();\n });\n commentSettingIcon.addEventListener('click', function () {\n toggleCommentSetting();\n });\n this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n var sele = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n if (sele) {\n commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n }\n });\n var sendComment = function sendComment() {\n commentInput.blur();\n if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n _this.notice(_this.tran('Please input danmaku content!'));\n return;\n }\n _this.danmaku.send({\n text: commentInput.value,\n color: _this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: _this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n commentInput.value = '';\n closeComment();\n });\n };\n commentInput.addEventListener('click', function () {\n closeCommentSetting();\n });\n commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n sendComment();\n }\n });\n commentSendIcon.addEventListener('click', sendComment);\n this.fullScreen = new _fullscreen2.default(this);\n this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n _this.fullScreen.toggle('browser');\n });\n this.element.getElementsByClassName('dplayer-full-in-icon')[0].addEventListener('click', function () {\n _this.fullScreen.toggle('web');\n });\n var handleKeyDown = function handleKeyDown(e) {\n if (_this.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 _this.toggle();\n break;\n case 37:\n event.preventDefault();\n _this.seek(_this.video.currentTime - 5);\n hideController();\n break;\n case 39:\n event.preventDefault();\n _this.seek(_this.video.currentTime + 5);\n hideController();\n break;\n case 38:\n event.preventDefault();\n percentage = _this.volume() + 0.1;\n _this.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = _this.volume() - 0.1;\n _this.volume(percentage);\n break;\n }\n }\n }\n };\n if (this.option.hotkey) {\n document.addEventListener('keydown', handleKeyDown);\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (_this.fullScreen.isFullScreen('web')) {\n _this.fullScreen.cancel('web');\n }\n break;\n }\n });\n var menu = this.element.getElementsByClassName('dplayer-menu')[0];\n this.element.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n menu.classList.add('dplayer-menu-show');\n var clientRect = _this.element.getBoundingClientRect();\n var menuLeft = event.clientX - clientRect.left;\n var menuTop = event.clientY - clientRect.top;\n if (menuLeft + menu.offsetWidth >= clientRect.width) {\n menu.style.right = clientRect.width - menuLeft + 'px';\n menu.style.left = 'initial';\n } else {\n menu.style.left = event.clientX - _this.element.getBoundingClientRect().left + 'px';\n menu.style.right = 'initial';\n }\n if (menuTop + menu.offsetHeight >= clientRect.height) {\n menu.style.bottom = clientRect.height - menuTop + 'px';\n menu.style.top = 'initial';\n } else {\n menu.style.top = event.clientY - _this.element.getBoundingClientRect().top + 'px';\n menu.style.bottom = 'initial';\n }\n mask.classList.add('dplayer-mask-show');\n _this.events.trigger('contextmenu_show');\n mask.addEventListener('click', function () {\n mask.classList.remove('dplayer-mask-show');\n menu.classList.remove('dplayer-menu-show');\n _this.events.trigger('contextmenu_hide');\n });\n });\n if (this.option.video.quality) {\n this.element.getElementsByClassName('dplayer-quality-list')[0].addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this.switchQuality(e.target.dataset.index);\n }\n });\n }\n if (this.option.screenshot) {\n var camareIcon = this.element.getElementsByClassName('dplayer-camera-icon')[0];\n camareIcon.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this.video.videoWidth;\n canvas.height = _this.video.videoHeight;\n canvas.getContext('2d').drawImage(_this.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n camareIcon.href = dataURL;\n camareIcon.download = 'DPlayer.png';\n _this.events.trigger('screenshot', dataURL);\n });\n }\n this.initVideo(this.video, this.quality && this.quality.type || this.option.video.type);\n index++;\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 to') + ' ' + _utils2.default.secondToTime(time));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW to') + ' ' + _utils2.default.secondToTime(time));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.updateBar('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n if (this.video.paused) {\n this.bezel.innerHTML = (0, _svg2.default)('play');\n this.bezel.classList.add('dplayer-bezel-transition');\n }\n this.playButton.innerHTML = (0, _svg2.default)('pause');\n this.video.play();\n this.setTime();\n this.element.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.element.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.innerHTML = (0, _svg2.default)('pause');\n this.bezel.classList.add('dplayer-bezel-transition');\n }\n this.ended = false;\n this.playButton.innerHTML = (0, _svg2.default)('play');\n this.video.pause();\n this.clearTime();\n this.element.classList.remove('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nonotice, nostorage) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('volume', percentage, 'width');\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.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n this.updateBar('played', 0, 'width');\n this.updateBar('loaded', 0, 'width');\n this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n this.element.getElementsByClassName('dplayer-danmaku')[0].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 this.type = type;\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 {\n this.type = 'normal';\n }\n }\n if (this.type === 'hls' && Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n }\n if (this.type === 'flv' && flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this2 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this2.element.getElementsByClassName('dplayer-dtime')[0].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 _this2.updateBar('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this2.tran && _this2.notice && _this2.notice(_this2.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this2.updateBar('played', 1, 'width');\n if (!_this2.loop) {\n _this2.ended = true;\n _this2.pause();\n } else {\n _this2.seek(0);\n video.play();\n }\n if (_this2.danmaku) {\n _this2.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this2.paused) {\n _this2.play();\n }\n });\n this.on('pause', function () {\n if (!_this2.paused) {\n _this2.pause();\n }\n });\n var _loop2 = function _loop2(i) {\n video.addEventListener(_this2.events.videoEvents[i], function () {\n _this2.events.trigger(_this2.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop2(i);\n }\n this.volume(this.user.get('volume'), true, true);\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this3 = 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.option.video.quality[index];\n this.element.getElementsByClassName('dplayer-quality-icon')[0].innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = _html2.default.video(false, null, this.option.screenshot, 'auto', this.quality.url);\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n var parent = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n parent.insertBefore(videoEle, parent.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.option.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 (_this3.prevVideo) {\n if (_this3.video.currentTime !== _this3.prevVideo.currentTime) {\n _this3.seek(_this3.prevVideo.currentTime);\n return;\n }\n parent.removeChild(_this3.prevVideo);\n _this3.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this3.video.play();\n }\n _this3.prevVideo = null;\n _this3.notice(_this3.tran('Switched to') + ' ' + _this3.quality.name + ' ' + _this3.tran('quality'));\n _this3.switchingQuality = false;\n _this3.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'mouseHandler',\n value: function mouseHandler(pbar, timeTips) {\n var _this4 = this;\n var 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 return function (e) {\n if (!_this4.video.duration) {\n return;\n }\n var clientX = e.clientX;\n var px = cumulativeOffset(pbar).left;\n var tx = clientX - px;\n if (tx < 0 || tx > pbar.offsetWidth) {\n return;\n }\n var time = _this4.video.duration * (tx / pbar.offsetWidth);\n timeTips.style.left = tx - 20 + 'px';\n switch (e.type) {\n case 'mouseenter':\n _this4.thumbnails && _this4.thumbnails.show();\n break;\n case 'mousemove':\n _this4.thumbnails && _this4.thumbnails.move(tx);\n timeTips.innerText = _utils2.default.secondToTime(time);\n _this4.timeTipsDisplay(true, timeTips);\n break;\n case 'mouseleave':\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.timeTipsDisplay(false, timeTips);\n break;\n }\n };\n }\n },\n {\n key: 'timeTipsDisplay',\n value: function timeTipsDisplay(show, timeTips) {\n if (show) {\n if (this.isTimeTipsShow) {\n return;\n }\n timeTips.classList.remove('hidden');\n this.isTimeTipsShow = true;\n } else {\n if (!this.isTimeTipsShow) {\n return;\n }\n timeTips.classList.add('hidden');\n this.isTimeTipsShow = false;\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this5 = this;\n this.thumbnails = new _thumbnails2.default(this.element.getElementsByClassName('dplayer-bar-preview')[0], this.element.getElementsByClassName('dplayer-bar-wrap')[0].offsetWidth, this.option.video.thumbnails, this.events);\n this.on('loadedmetadata', function () {\n _this5.thumbnails.resize(160, 90);\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 var noticeEle = this.element.getElementsByClassName('dplayer-notice')[0];\n noticeEle.innerHTML = text;\n noticeEle.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 noticeEle.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: 'destroy',\n value: function destroy() {\n this.pause();\n clearTimeout(this.hideTime);\n this.video.src = '';\n this.element.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}();\nmodule.exports = DPlayer;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar defaultApiBackend = __webpack_require__(6);\nmodule.exports = function (option) {\n var isMobile = /mobile/i.test(window.navigator.userAgent);\n if (isMobile) {\n option.autoplay = false;\n }\n var defaultOption = {\n element: document.getElementsByClassName('dplayer')[0],\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: defaultApiBackend,\n video: {},\n contextmenu: []\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) {\n option[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (option.video && !option.video.hasOwnProperty('type')) {\n option.video.type = 'auto';\n }\n if (option.danmaku && !option.danmaku.hasOwnProperty('user')) {\n option.danmaku.user = 'DIYgod';\n }\n if (option.video.quality) {\n option.video.url = [option.video.quality[option.video.defaultQuality].url];\n }\n if (option.lang) {\n option.lang = option.lang.toLowerCase();\n }\n option.contextmenu = option.contextmenu.concat([\n {\n text: 'About author',\n link: 'https://www.anotherhome.net/'\n },\n {\n text: 'About DPlayer',\n link: 'https://github.com/MoePlayer/DPlayer'\n },\n {\n text: 'DPlayer feedback',\n link: 'https://github.com/DIYgod/DPlayer/issues'\n },\n {\n text: 'DPlayer ' + \"1.10.0\" + ' ' + \"0bad7b7\",\n link: 'https://github.com/MoePlayer/DPlayer/commits/master'\n }\n ]);\n return option;\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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 !== 1) {\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};\nmodule.exports = {\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/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = function (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 to': '快进至',\n 'REW to': '快退至',\n 'Unlimited danmaku': '海量弹幕'\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 to': '快進至',\n 'REW to': '快退至',\n 'Unlimited danmaku': '海量彈幕'\n }\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar svg = __webpack_require__(1);\nvar html = {\n main: function main(option, index, tran) {\n var videos = '';\n videos += html.video(true, option.video.pic, option.screenshot, option.preload, option.video.url);\n return '
' + videos + '' + (option.logo ? '
' : '') + '
' + (option.danmaku ? '' + tran('Danmaku is loading') + '' : '') + '
0:00 / 0:00
' + (option.video.quality ? '
' + html.qualityList(option.video.quality) + '
' : '') + '' + (option.screenshot ? '' + svg('camera') + '' : '') + '
' + tran('Set danmaku color') + '
' + tran('Set danmaku type') + '
00:00
' + html.contextmenuList(option.contextmenu, tran) + '
';\n },\n danmakumargin: function danmakumargin(margin) {\n var result = '';\n if (margin) {\n for (var key in margin) {\n result += key + ':' + margin[key] + ';';\n }\n }\n return result;\n },\n contextmenuList: function contextmenuList(contextmenu, tran) {\n var result = '
';\n for (var i = 0; i < contextmenu.length; i++) {\n result += '
' + tran(contextmenu[i].text) + '
';\n }\n result += '
';\n return result;\n },\n qualityList: function qualityList(quality) {\n var result = '
';\n for (var i = 0; i < quality.length; i++) {\n result += '
' + quality[i].name + '
';\n }\n result += '
';\n return result;\n },\n video: function video(current, pic, screenshot, preload, url) {\n return '';\n },\n setting: function setting(tran) {\n return {\n 'original': '
' + tran('Speed') + '
' + svg('right') + '
' + tran('Loop') + '
' + tran('Show danmaku') + '
' + tran('Unlimited danmaku') + '
' + tran('Opacity for danmaku') + '
',\n 'speed': '
0.5
0.75
' + tran('Normal') + '
1.25
1.5
2
'\n };\n }\n};\nmodule.exports = html;\n\n/***/ }),\n/* 9 */\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 _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 + '?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + '?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 results[i] = data;\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, 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 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 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 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}();\nmodule.exports = Danmaku;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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 Thumbnails = function () {\n function Thumbnails(container, width, url, events) {\n _classCallCheck(this, Thumbnails);\n this.container = container;\n this.width = width;\n this.container.style.backgroundImage = 'url(\\'' + url + '\\')';\n this.events = 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.width * 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}();\nmodule.exports = Thumbnails;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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 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 ];\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}();\nmodule.exports = Events;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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 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 });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.element.addEventListener('fullscreenchange', fullscreenchange);\n this.player.element.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.element.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.element.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 switch (type) {\n case 'browser':\n if (this.player.element.requestFullscreen) {\n this.player.element.requestFullscreen();\n } else if (this.player.element.mozRequestFullScreen) {\n this.player.element.mozRequestFullScreen();\n } else if (this.player.element.webkitRequestFullscreen) {\n this.player.element.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.element.classList.add('dplayer-fulled');\n this.player.events.trigger('webfullscreen');\n break;\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.element.classList.remove('dplayer-fulled');\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}();\nmodule.exports = FullScreen;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\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}();\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 };\n this.default = {\n opacity: 0.7,\n volume: player.option.volume || 0.7,\n unlimited: (player.option.danmaku && player.option.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 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}();\nmodule.exports = User;\n\n/***/ })\n/******/ ]);\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 = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4c40a0471ae0b00e6cd3","'use strict';\nmodule.exports = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var min = parseInt(second / 60);\n var sec = parseInt(second - min * 60);\n return add0(min) + ':' + add0(sec);\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 isMobile: /mobile/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};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/utils.js\n// module id = 0\n// module chunks = 0","'use strict';\nvar svgSource = {\n 'play': [\n '0 0 16 32',\n 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'\n ],\n 'pause': [\n '0 0 17 32',\n 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'\n ],\n 'volume-up': [\n '0 0 21 32',\n 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'\n ],\n 'volume-down': [\n '0 0 21 32',\n 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'\n ],\n 'volume-off': [\n '0 0 21 32',\n 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'\n ],\n 'loop': [\n '0 0 32 32',\n 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'\n ],\n 'full': [\n '0 0 32 33',\n 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'\n ],\n 'full-in': [\n '0 0 32 33',\n 'M24.965 24.38h-18.132c-1.366 0-2.478-1.113-2.478-2.478v-11.806c0-1.364 1.111-2.478 2.478-2.478h18.132c1.366 0 2.478 1.113 2.478 2.478v11.806c0 1.364-1.11 2.478-2.478 2.478zM6.833 10.097v11.806h18.134l-0.002-11.806h-18.132zM2.478 28.928h5.952c0.684 0 1.238-0.554 1.238-1.239 0-0.684-0.554-1.238-1.238-1.238h-5.952v-5.802c0-0.684-0.554-1.239-1.238-1.239s-1.239 0.556-1.239 1.239v5.802c0 1.365 1.111 2.478 2.478 2.478zM30.761 19.412c-0.684 0-1.238 0.554-1.238 1.238v5.801h-5.951c-0.686 0-1.239 0.554-1.239 1.238 0 0.686 0.554 1.239 1.239 1.239h5.951c1.366 0 2.478-1.111 2.478-2.478v-5.801c0-0.683-0.554-1.238-1.239-1.238zM0 5.55v5.802c0 0.683 0.554 1.238 1.238 1.238s1.238-0.555 1.238-1.238v-5.802h5.952c0.684 0 1.238-0.554 1.238-1.238s-0.554-1.238-1.238-1.238h-5.951c-1.366-0.001-2.478 1.111-2.478 2.476zM32 11.35v-5.801c0-1.365-1.11-2.478-2.478-2.478h-5.951c-0.686 0-1.239 0.554-1.239 1.238s0.554 1.238 1.239 1.238h5.951v5.801c0 0.683 0.554 1.237 1.238 1.237 0.686 0.002 1.239-0.553 1.239-1.236z'\n ],\n 'setting': [\n '0 0 32 28',\n 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'\n ],\n 'right': [\n '0 0 32 32',\n 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'\n ],\n 'comment': [\n '0 0 32 32',\n 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'\n ],\n 'comment-off': [\n '0 0 32 32',\n 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'\n ],\n 'send': [\n '0 0 32 32',\n 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'\n ],\n 'menu': [\n '0 0 22 32',\n 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'\n ],\n 'camera': [\n '0 0 32 32',\n 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z'\n ]\n};\nmodule.exports = function (type) {\n return '\\n';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/svg.js\n// module id = 1\n// module chunks = 0","'use strict';\nconsole.log('\\n' + ' %c DPlayer ' + DPLAYER_VERSION + ' ' + GIT_HASH + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nmodule.exports = require('./DPlayer');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/index.js\n// module id = 2\n// module chunks = 0","'use strict';\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}();\nrequire('./DPlayer.scss');\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _svg = require('./svg');\nvar _svg2 = _interopRequireDefault(_svg);\nvar _option = require('./option');\nvar _option2 = _interopRequireDefault(_option);\nvar _i18n = require('./i18n');\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _html = require('./html');\nvar _html2 = _interopRequireDefault(_html);\nvar _danmaku = require('./danmaku');\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _thumbnails = require('./thumbnails');\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nvar _events = require('./events');\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = require('./fullscreen');\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = require('./user');\nvar _user2 = _interopRequireDefault(_user);\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 DPlayer = function () {\n function DPlayer(option) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.option = (0, _option2.default)(option);\n this.option.element.classList.add('dplayer');\n if (this.option.video.quality) {\n this.qualityIndex = this.option.video.defaultQuality;\n this.quality = this.option.video.quality[this.option.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.option.lang).tran;\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.element = this.option.element;\n if (!this.option.danmaku) {\n this.element.classList.add('dplayer-no-danmaku');\n }\n if (_utils.isMobile) {\n this.element.classList.add('dplayer-mobile');\n }\n this.element.innerHTML = _html2.default.main(option, index, this.tran);\n var bar = {};\n bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n var pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n var pbarTimeTips = this.element.getElementsByClassName('dplayer-bar-time')[0];\n var barWidth = void 0;\n this.updateBar = function (type, percentage, direction) {\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n };\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.element.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n if (this.option.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.element.getElementsByClassName('dplayer-danmaku')[0],\n opacity: this.user.get('opacity'),\n callback: function callback() {\n _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n if (_this.option.autoplay && !_utils.isMobile) {\n _this.play();\n } else if (_utils.isMobile) {\n _this.pause();\n }\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.option.apiBackend,\n borderColor: this.option.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.option.danmaku.id,\n address: this.option.danmaku.api,\n token: this.option.danmaku.token,\n maximum: this.option.danmaku.maximum,\n addition: this.option.danmaku.addition,\n user: this.option.danmaku.user\n },\n events: this.events\n });\n }\n this.arrow = this.element.offsetWidth <= 500;\n if (this.arrow) {\n var arrowStyle = document.createElement('style');\n arrowStyle.innerHTML = '.dplayer .dplayer-danmaku{font-size:18px}';\n document.head.appendChild(arrowStyle);\n }\n this.video = this.element.getElementsByClassName('dplayer-video-current')[0];\n this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n this.bezel.addEventListener('animationend', function () {\n _this.bezel.classList.remove('dplayer-bezel-transition');\n });\n this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n this.paused = true;\n this.playButton.addEventListener('click', function () {\n _this.toggle();\n });\n var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n if (!_utils.isMobile) {\n videoWrap.addEventListener('click', function () {\n _this.toggle();\n });\n conMask.addEventListener('click', function () {\n _this.toggle();\n });\n } else {\n var toggleController = function toggleController() {\n if (_this.element.classList.contains('dplayer-hide-controller')) {\n _this.element.classList.remove('dplayer-hide-controller');\n } else {\n _this.element.classList.add('dplayer-hide-controller');\n }\n };\n videoWrap.addEventListener('click', toggleController);\n conMask.addEventListener('click', toggleController);\n }\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\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 var setCheckLoadingTime = function setCheckLoadingTime() {\n _this.checkLoading = setInterval(function () {\n currentPlayPos = _this.video.currentTime;\n if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this.video.paused) {\n _this.element.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this.video.paused) {\n _this.element.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }, 100);\n };\n var clearCheckLoadingTime = function clearCheckLoadingTime() {\n clearInterval(_this.checkLoading);\n };\n this.playedTime = false;\n this.animationFrame = function () {\n if (_this.playedTime) {\n _this.updateBar('played', _this.video.currentTime / _this.video.duration, 'width');\n _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = _utils2.default.secondToTime(_this.video.currentTime);\n }\n window.requestAnimationFrame(_this.animationFrame);\n };\n window.requestAnimationFrame(this.animationFrame);\n this.setTime = function (type) {\n if (!type) {\n _this.playedTime = true;\n setCheckLoadingTime();\n } else {\n _this[type + 'Time'] = true;\n if (type === 'played') {\n setCheckLoadingTime();\n }\n }\n };\n this.clearTime = function (type) {\n if (!type) {\n _this.playedTime = false;\n clearCheckLoadingTime();\n } else {\n _this[type + 'Time'] = false;\n if (type === 'played') {\n clearCheckLoadingTime();\n }\n }\n };\n pbar.addEventListener('click', function (event) {\n var e = event || window.event;\n barWidth = pbar.clientWidth;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(pbar)) / barWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.updateBar('played', percentage, 'width');\n _this.seek(parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration);\n });\n if (this.option.video.thumbnails) {\n this.initThumbnails();\n }\n this.isTimeTipsShow = true;\n this.mouseHandler = this.mouseHandler(pbar, pbarTimeTips).bind(this);\n pbar.addEventListener('mousemove', this.mouseHandler);\n pbar.addEventListener('mouseenter', this.mouseHandler);\n pbar.addEventListener('mouseleave', this.mouseHandler);\n var thumbMove = function thumbMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(pbar)) / barWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.updateBar('played', percentage, 'width');\n _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = _utils2.default.secondToTime(percentage * _this.video.duration);\n };\n var thumbUp = function thumbUp() {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n _this.seek(parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration);\n _this.setTime();\n };\n pbar.addEventListener('mousedown', function () {\n barWidth = pbar.clientWidth;\n _this.clearTime();\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n var vWidth = 35;\n this.switchVolumeIcon = function () {\n var volumeicon = _this.element.getElementsByClassName('dplayer-volume-icon')[0];\n if (_this.volume() >= 0.95) {\n volumeicon.innerHTML = (0, _svg2.default)('volume-up');\n } else if (_this.volume() > 0) {\n volumeicon.innerHTML = (0, _svg2.default)('volume-down');\n } else {\n volumeicon.innerHTML = (0, _svg2.default)('volume-off');\n }\n };\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n _this.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n volumeEle.classList.remove('dplayer-volume-active');\n };\n volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n _this.volume(percentage);\n });\n volumeBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n volumeEle.classList.add('dplayer-volume-active');\n });\n volumeicon.addEventListener('click', function () {\n if (_this.video.muted) {\n _this.video.muted = false;\n _this.switchVolumeIcon();\n _this.updateBar('volume', _this.volume(), 'width');\n } else {\n _this.video.muted = true;\n volumeicon.innerHTML = (0, _svg2.default)('volume-off');\n _this.updateBar('volume', 0, 'width');\n }\n });\n this.hideTime = 0;\n var hideController = function hideController() {\n _this.element.classList.remove('dplayer-hide-controller');\n clearTimeout(_this.hideTime);\n _this.hideTime = setTimeout(function () {\n if (_this.video.played.length) {\n _this.element.classList.add('dplayer-hide-controller');\n closeSetting();\n closeComment();\n }\n }, 2000);\n };\n if (!_utils.isMobile) {\n this.element.addEventListener('mousemove', hideController);\n this.element.addEventListener('click', hideController);\n }\n var settingHTML = _html2.default.setting(this.tran);\n var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n settingBox.innerHTML = settingHTML.original;\n var closeSetting = function closeSetting() {\n if (settingBox.classList.contains('dplayer-setting-box-open')) {\n settingBox.classList.remove('dplayer-setting-box-open');\n mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n settingBox.classList.remove('dplayer-setting-box-narrow');\n settingBox.innerHTML = settingHTML.original;\n settingEvent();\n }, 300);\n }\n };\n var openSetting = function openSetting() {\n settingBox.classList.add('dplayer-setting-box-open');\n mask.classList.add('dplayer-mask-show');\n };\n mask.addEventListener('click', function () {\n closeSetting();\n });\n settingIcon.addEventListener('click', function () {\n openSetting();\n });\n this.loop = this.option.loop;\n var showdan = this.user.get('danmaku');\n if (!showdan) {\n this.danmaku && this.danmaku.hide();\n }\n var unlimitDan = this.user.get('unlimited');\n var settingEvent = function settingEvent() {\n var loopEle = _this.element.getElementsByClassName('dplayer-setting-loop')[0];\n var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n loopToggle.checked = _this.loop;\n loopEle.addEventListener('click', function () {\n loopToggle.checked = !loopToggle.checked;\n if (loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n closeSetting();\n });\n var showDanEle = _this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n var showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n showDanToggle.checked = showdan;\n showDanEle.addEventListener('click', function () {\n showDanToggle.checked = !showDanToggle.checked;\n if (showDanToggle.checked) {\n showdan = true;\n if (!_this.paused) {\n _this.danmaku.show();\n }\n } else {\n showdan = false;\n _this.danmaku.hide();\n }\n _this.user.set('danmaku', showdan ? 1 : 0);\n closeSetting();\n });\n var unlimitDanEle = _this.element.getElementsByClassName('dplayer-setting-danunlimit')[0];\n var unlimitDanToggle = unlimitDanEle.getElementsByClassName('dplayer-danunlimit-setting-input')[0];\n unlimitDanToggle.checked = unlimitDan;\n unlimitDanEle.addEventListener('click', function () {\n unlimitDanToggle.checked = !unlimitDanToggle.checked;\n if (unlimitDanToggle.checked) {\n unlimitDan = true;\n _this.danmaku.unlimit(true);\n } else {\n unlimitDan = false;\n _this.danmaku.unlimit(false);\n }\n _this.user.set('unlimited', unlimitDan ? 1 : 0);\n closeSetting();\n });\n var speedEle = _this.element.getElementsByClassName('dplayer-setting-speed')[0];\n speedEle.addEventListener('click', function () {\n settingBox.classList.add('dplayer-setting-box-narrow');\n settingBox.innerHTML = settingHTML.speed;\n var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n var _loop = function _loop(i) {\n speedItem[i].addEventListener('click', function () {\n _this.video.playbackRate = speedItem[i].dataset.speed;\n closeSetting();\n });\n };\n for (var i = 0; i < speedItem.length; i++) {\n _loop(i);\n }\n });\n if (_this.danmaku) {\n bar.danmakuBar = _this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n var danmakuBarWrapWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n var danmakuBarWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n var danmakuSettingBox = _this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n var dWidth = 130;\n _this.on('danmaku_opacity', function (percentage) {\n _this.updateBar('danmaku', percentage, 'width');\n _this.user.set('opacity', percentage);\n });\n _this.danmaku.opacity(_this.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(danmakuBarWrap)) / dWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n };\n danmakuBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(danmakuBarWrap)) / dWidth;\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n _this.danmaku.opacity(percentage);\n });\n danmakuBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n };\n settingEvent();\n if (this.video.duration !== 1) {\n this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? _utils2.default.secondToTime(this.video.duration) : '00:00';\n }\n if (!this.danmaku) {\n if (this.option.autoplay && !_utils.isMobile) {\n this.play();\n } else if (_utils.isMobile) {\n this.pause();\n }\n }\n var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n var closeCommentSetting = function closeCommentSetting() {\n if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n };\n var toggleCommentSetting = function toggleCommentSetting() {\n if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n commentSettingBox.classList.remove('dplayer-comment-setting-open');\n } else {\n commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n };\n var disableHide = 0;\n var commentFocusTimeout = 0;\n var closeComment = function closeComment() {\n if (!commentBox.classList.contains('dplayer-comment-box-open')) {\n return;\n }\n commentBox.classList.remove('dplayer-comment-box-open');\n mask.classList.remove('dplayer-mask-show');\n _this.element.classList.remove('dplayer-show-controller');\n clearInterval(disableHide);\n clearTimeout(commentFocusTimeout);\n closeCommentSetting();\n };\n var openComment = function openComment() {\n if (commentBox.classList.contains('dplayer-comment-box-open')) {\n return;\n }\n commentBox.classList.add('dplayer-comment-box-open');\n mask.classList.add('dplayer-mask-show');\n _this.element.classList.add('dplayer-show-controller');\n disableHide = setInterval(function () {\n clearTimeout(_this.hideTime);\n }, 1000);\n commentFocusTimeout = setTimeout(function () {\n commentInput.focus();\n }, 300);\n };\n mask.addEventListener('click', function () {\n closeComment();\n });\n commentIcon.addEventListener('click', function () {\n openComment();\n });\n commentSettingIcon.addEventListener('click', function () {\n toggleCommentSetting();\n });\n this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n var sele = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n if (sele) {\n commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n }\n });\n var sendComment = function sendComment() {\n commentInput.blur();\n if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n _this.notice(_this.tran('Please input danmaku content!'));\n return;\n }\n _this.danmaku.send({\n text: commentInput.value,\n color: _this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: _this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n commentInput.value = '';\n closeComment();\n });\n };\n commentInput.addEventListener('click', function () {\n closeCommentSetting();\n });\n commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n sendComment();\n }\n });\n commentSendIcon.addEventListener('click', sendComment);\n this.fullScreen = new _fullscreen2.default(this);\n this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n _this.fullScreen.toggle('browser');\n });\n this.element.getElementsByClassName('dplayer-full-in-icon')[0].addEventListener('click', function () {\n _this.fullScreen.toggle('web');\n });\n var handleKeyDown = function handleKeyDown(e) {\n if (_this.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 _this.toggle();\n break;\n case 37:\n event.preventDefault();\n _this.seek(_this.video.currentTime - 5);\n hideController();\n break;\n case 39:\n event.preventDefault();\n _this.seek(_this.video.currentTime + 5);\n hideController();\n break;\n case 38:\n event.preventDefault();\n percentage = _this.volume() + 0.1;\n _this.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = _this.volume() - 0.1;\n _this.volume(percentage);\n break;\n }\n }\n }\n };\n if (this.option.hotkey) {\n document.addEventListener('keydown', handleKeyDown);\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (_this.fullScreen.isFullScreen('web')) {\n _this.fullScreen.cancel('web');\n }\n break;\n }\n });\n var menu = this.element.getElementsByClassName('dplayer-menu')[0];\n this.element.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n menu.classList.add('dplayer-menu-show');\n var clientRect = _this.element.getBoundingClientRect();\n var menuLeft = event.clientX - clientRect.left;\n var menuTop = event.clientY - clientRect.top;\n if (menuLeft + menu.offsetWidth >= clientRect.width) {\n menu.style.right = clientRect.width - menuLeft + 'px';\n menu.style.left = 'initial';\n } else {\n menu.style.left = event.clientX - _this.element.getBoundingClientRect().left + 'px';\n menu.style.right = 'initial';\n }\n if (menuTop + menu.offsetHeight >= clientRect.height) {\n menu.style.bottom = clientRect.height - menuTop + 'px';\n menu.style.top = 'initial';\n } else {\n menu.style.top = event.clientY - _this.element.getBoundingClientRect().top + 'px';\n menu.style.bottom = 'initial';\n }\n mask.classList.add('dplayer-mask-show');\n _this.events.trigger('contextmenu_show');\n mask.addEventListener('click', function () {\n mask.classList.remove('dplayer-mask-show');\n menu.classList.remove('dplayer-menu-show');\n _this.events.trigger('contextmenu_hide');\n });\n });\n if (this.option.video.quality) {\n this.element.getElementsByClassName('dplayer-quality-list')[0].addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this.switchQuality(e.target.dataset.index);\n }\n });\n }\n if (this.option.screenshot) {\n var camareIcon = this.element.getElementsByClassName('dplayer-camera-icon')[0];\n camareIcon.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this.video.videoWidth;\n canvas.height = _this.video.videoHeight;\n canvas.getContext('2d').drawImage(_this.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n camareIcon.href = dataURL;\n camareIcon.download = 'DPlayer.png';\n _this.events.trigger('screenshot', dataURL);\n });\n }\n this.initVideo(this.video, this.quality && this.quality.type || this.option.video.type);\n index++;\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 to') + ' ' + _utils2.default.secondToTime(time));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW to') + ' ' + _utils2.default.secondToTime(time));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.updateBar('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n if (this.video.paused) {\n this.bezel.innerHTML = (0, _svg2.default)('play');\n this.bezel.classList.add('dplayer-bezel-transition');\n }\n this.playButton.innerHTML = (0, _svg2.default)('pause');\n this.video.play();\n this.setTime();\n this.element.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.element.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.innerHTML = (0, _svg2.default)('pause');\n this.bezel.classList.add('dplayer-bezel-transition');\n }\n this.ended = false;\n this.playButton.innerHTML = (0, _svg2.default)('play');\n this.video.pause();\n this.clearTime();\n this.element.classList.remove('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nonotice, nostorage) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = percentage > 0 ? percentage : 0;\n percentage = percentage < 1 ? percentage : 1;\n this.updateBar('volume', percentage, 'width');\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.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n this.updateBar('played', 0, 'width');\n this.updateBar('loaded', 0, 'width');\n this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n this.element.getElementsByClassName('dplayer-danmaku')[0].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 this.type = type;\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 {\n this.type = 'normal';\n }\n }\n if (this.type === 'hls' && Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n }\n if (this.type === 'flv' && flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this2 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this2.element.getElementsByClassName('dplayer-dtime')[0].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 _this2.updateBar('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this2.tran && _this2.notice && _this2.notice(_this2.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this2.updateBar('played', 1, 'width');\n if (!_this2.loop) {\n _this2.ended = true;\n _this2.pause();\n } else {\n _this2.seek(0);\n video.play();\n }\n if (_this2.danmaku) {\n _this2.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this2.paused) {\n _this2.play();\n }\n });\n this.on('pause', function () {\n if (!_this2.paused) {\n _this2.pause();\n }\n });\n var _loop2 = function _loop2(i) {\n video.addEventListener(_this2.events.videoEvents[i], function () {\n _this2.events.trigger(_this2.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop2(i);\n }\n this.volume(this.user.get('volume'), true, true);\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this3 = 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.option.video.quality[index];\n this.element.getElementsByClassName('dplayer-quality-icon')[0].innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = _html2.default.video(false, null, this.option.screenshot, 'auto', this.quality.url);\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n var parent = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n parent.insertBefore(videoEle, parent.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.option.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 (_this3.prevVideo) {\n if (_this3.video.currentTime !== _this3.prevVideo.currentTime) {\n _this3.seek(_this3.prevVideo.currentTime);\n return;\n }\n parent.removeChild(_this3.prevVideo);\n _this3.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this3.video.play();\n }\n _this3.prevVideo = null;\n _this3.notice(_this3.tran('Switched to') + ' ' + _this3.quality.name + ' ' + _this3.tran('quality'));\n _this3.switchingQuality = false;\n _this3.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'mouseHandler',\n value: function mouseHandler(pbar, timeTips) {\n var _this4 = this;\n var 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 return function (e) {\n if (!_this4.video.duration) {\n return;\n }\n var clientX = e.clientX;\n var px = cumulativeOffset(pbar).left;\n var tx = clientX - px;\n if (tx < 0 || tx > pbar.offsetWidth) {\n return;\n }\n var time = _this4.video.duration * (tx / pbar.offsetWidth);\n timeTips.style.left = tx - 20 + 'px';\n switch (e.type) {\n case 'mouseenter':\n _this4.thumbnails && _this4.thumbnails.show();\n break;\n case 'mousemove':\n _this4.thumbnails && _this4.thumbnails.move(tx);\n timeTips.innerText = _utils2.default.secondToTime(time);\n _this4.timeTipsDisplay(true, timeTips);\n break;\n case 'mouseleave':\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.timeTipsDisplay(false, timeTips);\n break;\n }\n };\n }\n },\n {\n key: 'timeTipsDisplay',\n value: function timeTipsDisplay(show, timeTips) {\n if (show) {\n if (this.isTimeTipsShow) {\n return;\n }\n timeTips.classList.remove('hidden');\n this.isTimeTipsShow = true;\n } else {\n if (!this.isTimeTipsShow) {\n return;\n }\n timeTips.classList.add('hidden');\n this.isTimeTipsShow = false;\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this5 = this;\n this.thumbnails = new _thumbnails2.default(this.element.getElementsByClassName('dplayer-bar-preview')[0], this.element.getElementsByClassName('dplayer-bar-wrap')[0].offsetWidth, this.option.video.thumbnails, this.events);\n this.on('loadedmetadata', function () {\n _this5.thumbnails.resize(160, 90);\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 var noticeEle = this.element.getElementsByClassName('dplayer-notice')[0];\n noticeEle.innerHTML = text;\n noticeEle.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 noticeEle.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: 'destroy',\n value: function destroy() {\n this.pause();\n clearTimeout(this.hideTime);\n this.video.src = '';\n this.element.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}();\nmodule.exports = DPlayer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/DPlayer.js\n// module id = 3\n// module chunks = 0","'use strict';\nvar defaultApiBackend = require('./api.js');\nmodule.exports = function (option) {\n var isMobile = /mobile/i.test(window.navigator.userAgent);\n if (isMobile) {\n option.autoplay = false;\n }\n var defaultOption = {\n element: document.getElementsByClassName('dplayer')[0],\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: defaultApiBackend,\n video: {},\n contextmenu: []\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !option.hasOwnProperty(defaultKey)) {\n option[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (option.video && !option.video.hasOwnProperty('type')) {\n option.video.type = 'auto';\n }\n if (option.danmaku && !option.danmaku.hasOwnProperty('user')) {\n option.danmaku.user = 'DIYgod';\n }\n if (option.video.quality) {\n option.video.url = [option.video.quality[option.video.defaultQuality].url];\n }\n if (option.lang) {\n option.lang = option.lang.toLowerCase();\n }\n option.contextmenu = option.contextmenu.concat([\n {\n text: 'About author',\n link: 'https://www.anotherhome.net/'\n },\n {\n text: 'About DPlayer',\n link: 'https://github.com/MoePlayer/DPlayer'\n },\n {\n text: 'DPlayer feedback',\n link: 'https://github.com/DIYgod/DPlayer/issues'\n },\n {\n text: 'DPlayer ' + DPLAYER_VERSION + ' ' + GIT_HASH,\n link: 'https://github.com/MoePlayer/DPlayer/commits/master'\n }\n ]);\n return option;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/option.js\n// module id = 5\n// module chunks = 0","'use strict';\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 !== 1) {\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};\nmodule.exports = {\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/api.js\n// module id = 6\n// module chunks = 0","'use strict';\nmodule.exports = function (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 to': '快进至',\n 'REW to': '快退至',\n 'Unlimited danmaku': '海量弹幕'\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 to': '快進至',\n 'REW to': '快退至',\n 'Unlimited danmaku': '海量彈幕'\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/i18n.js\n// module id = 7\n// module chunks = 0","'use strict';\nvar svg = require('./svg.js');\nvar html = {\n main: function main(option, index, tran) {\n var videos = '';\n videos += html.video(true, option.video.pic, option.screenshot, option.preload, option.video.url);\n return '
' + videos + '' + (option.logo ? '
' : '') + '
' + (option.danmaku ? '' + tran('Danmaku is loading') + '' : '') + '
0:00 / 0:00
' + (option.video.quality ? '
' + html.qualityList(option.video.quality) + '
' : '') + '' + (option.screenshot ? '' + svg('camera') + '' : '') + '
' + tran('Set danmaku color') + '
' + tran('Set danmaku type') + '
00:00
' + html.contextmenuList(option.contextmenu, tran) + '
';\n },\n danmakumargin: function danmakumargin(margin) {\n var result = '';\n if (margin) {\n for (var key in margin) {\n result += key + ':' + margin[key] + ';';\n }\n }\n return result;\n },\n contextmenuList: function contextmenuList(contextmenu, tran) {\n var result = '
';\n for (var i = 0; i < contextmenu.length; i++) {\n result += '
' + tran(contextmenu[i].text) + '
';\n }\n result += '
';\n return result;\n },\n qualityList: function qualityList(quality) {\n var result = '
';\n for (var i = 0; i < quality.length; i++) {\n result += '
' + quality[i].name + '
';\n }\n result += '
';\n return result;\n },\n video: function video(current, pic, screenshot, preload, url) {\n return '';\n },\n setting: function setting(tran) {\n return {\n 'original': '
' + tran('Speed') + '
' + svg('right') + '
' + tran('Loop') + '
' + tran('Show danmaku') + '
' + tran('Unlimited danmaku') + '
' + tran('Opacity for danmaku') + '
',\n 'speed': '
0.5
0.75
' + tran('Normal') + '
1.25
1.5
2
'\n };\n }\n};\nmodule.exports = html;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/html.js\n// module id = 8\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 _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 + '?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + '?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 results[i] = data;\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, 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 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 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 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}();\nmodule.exports = Danmaku;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/danmaku.js\n// module id = 9\n// module chunks = 0","'use strict';\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(container, width, url, events) {\n _classCallCheck(this, Thumbnails);\n this.container = container;\n this.width = width;\n this.container.style.backgroundImage = 'url(\\'' + url + '\\')';\n this.events = 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.width * 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}();\nmodule.exports = Thumbnails;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/thumbnails.js\n// module id = 10\n// module chunks = 0","'use strict';\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 ];\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}();\nmodule.exports = Events;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/events.js\n// module id = 11\n// module chunks = 0","'use strict';\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 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 });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.element.addEventListener('fullscreenchange', fullscreenchange);\n this.player.element.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.element.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.element.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 switch (type) {\n case 'browser':\n if (this.player.element.requestFullscreen) {\n this.player.element.requestFullscreen();\n } else if (this.player.element.mozRequestFullScreen) {\n this.player.element.mozRequestFullScreen();\n } else if (this.player.element.webkitRequestFullscreen) {\n this.player.element.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.element.classList.add('dplayer-fulled');\n this.player.events.trigger('webfullscreen');\n break;\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.element.classList.remove('dplayer-fulled');\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}();\nmodule.exports = FullScreen;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/fullscreen.js\n// module id = 12\n// module chunks = 0","'use strict';\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 };\n this.default = {\n opacity: 0.7,\n volume: player.option.volume || 0.7,\n unlimited: (player.option.danmaku && player.option.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 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}();\nmodule.exports = User;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/user.js\n// module id = 13\n// module chunks = 0"],"sourceRoot":""}