From e26f78eed23d58d3bc915e032b2fe189fe624cb9 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 19 Jan 2018 01:52:04 +0800 Subject: [PATCH] use promise and object.assign polyfill --- dist/DPlayer.min.js | 2 +- dist/DPlayer.min.js.map | 2 +- package.json | 6 ++++-- src/js/options.js | 3 ++- src/js/player.js | 16 +++++++--------- yarn.lock | 6 +++++- 6 files changed, 20 insertions(+), 15 deletions(-) diff --git a/dist/DPlayer.min.js b/dist/DPlayer.min.js index d7536fc..50d77e1 100644 --- a/dist/DPlayer.min.js +++ b/dist/DPlayer.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DPlayer",[],t):"object"==typeof exports?exports.DPlayer=t():e.DPlayer=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s=1)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={secondToTime:function(e){var t=function(e){return e<10?"0"+e:""+e},n=parseInt(e/60),i=parseInt(e-60*n);return t(n)+":"+t(i)},getElementViewLeft:function(e){var t=e.offsetLeft,n=e.offsetParent,i=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==e;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return t-i},getScrollPosition:function(){return{left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},setScrollPosition:function(e){var t=e.left,n=void 0===t?0:t,i=e.top,a=void 0===i?0:i;this.isFirefox?(document.documentElement.scrollLeft=n,document.documentElement.scrollTop=a):window.scrollTo(n,a)},isMobile:/mobile/i.test(window.navigator.userAgent),isFirefox:/firefox/i.test(window.navigator.userAgent),isChrome:/chrome/i.test(window.navigator.userAgent),storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},cumulativeOffset:function(e){var t=0,n=0;do{t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent}while(e);return{top:t,left:n}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(2);var i=n(3),a=function(e){return e&&e.__esModule?e:{default:e}}(i);console.log("\n %c DPlayer 1.20.0 6524114 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),t.default=a.default},function(e,t){},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var s=function(){function e(e,t){for(var n=0;ne&&this.notice(this.tran("REW")+" "+(this.video.currentTime-e).toFixed(0)+" "+this.tran("s")),this.video.currentTime=e,this.danmaku&&this.danmaku.seek(),this.bar.set("played",e/this.video.duration,"width")}},{key:"play",value:function(){var e=this;this.paused=!1,this.video.paused&&this.bezel.switch(this.icons.get("play")),this.template.playButton.innerHTML=this.icons.get("pause");var t=this.video.play();if(t&&t.catch(function(){e.pause()}).then(function(){}),this.time.enable(),this.container.classList.add("dplayer-playing"),this.danmaku&&this.danmaku.play(),this.options.mutex)for(var n=0;n=.95?this.template.volumeIcon.innerHTML=this.icons.get("volume-up"):this.volume()>0?this.template.volumeIcon.innerHTML=this.icons.get("volume-down"):this.template.volumeIcon.innerHTML=this.icons.get("volume-off")}},{key:"volume",value:function(e,t,n){if(e=parseFloat(e),!isNaN(e)){e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"width");var i=(100*e).toFixed(0)+"%";this.template.volumeBarWrapWrap.dataset.balloon=i,t||this.user.set("volume",e),n||this.notice(this.tran("Volume")+" "+(100*e).toFixed(0)+"%"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}return this.video.volume}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"switchVideo",value:function(e,t){this.pause(),this.video.poster=e.pic?e.pic:"",this.video.src=e.url,this.initMSE(this.video,e.type||"auto"),t&&(this.template.danmakuLoading.style.display="block",this.bar.set("played",0,"width"),this.bar.set("loaded",0,"width"),this.template.ptime.innerHTML="00:00",this.template.danmaku.innerHTML="",this.danmaku&&this.danmaku.reload({id:t.id,address:t.api,token:t.token,maximum:t.maximum,addition:t.addition,user:t.user}))}},{key:"initMSE",value:function(e,t){if(this.type=t,"auto"===this.type&&(/m3u8(#|\?|$)/i.exec(e.src)?this.type="hls":/.flv(#|\?|$)/i.exec(e.src)?this.type="flv":/.mpd(#|\?|$)/i.exec(e.src)?this.type="dash":this.type="normal"),"hls"===this.type&&Hls&&Hls.isSupported()){var n=new Hls;n.loadSource(e.src),n.attachMedia(e)}if("flv"===this.type&&flvjs&&flvjs.isSupported()){var i=flvjs.createPlayer({type:"flv",url:e.src});i.attachMediaElement(e),i.load()}"dash"===this.type&&dashjs&&dashjs.MediaPlayer().create().initialize(e,e.src,!1)}},{key:"initVideo",value:function(e,t){var n=this;this.initMSE(e,t),this.on("durationchange",function(){1!==e.duration&&(n.template.dtime.innerHTML=o.default.secondToTime(e.duration))}),this.on("progress",function(){var t=e.buffered.length?e.buffered.end(e.buffered.length-1)/e.duration:0;n.bar.set("loaded",t,"width")}),this.on("error",function(){n.tran&&n.notice&&n.notice(n.tran("This video fails to load"),-1)}),this.ended=!1,this.on("ended",function(){n.bar.set("played",1,"width"),n.setting.loop?(n.seek(0),e.play()):(n.ended=!0,n.pause()),n.danmaku&&(n.danmaku.danIndex=0)}),this.on("play",function(){n.paused&&n.play()}),this.on("pause",function(){n.paused||n.pause()});for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:2e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=i,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("notice_show",e),this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")},n)}},{key:"resize",value:function(){this.danmaku&&this.danmaku.resize(),this.events.trigger("resize")}},{key:"speed",value:function(e){this.video.playbackRate=e}},{key:"destroy",value:function(){R.splice(R.indexOf(this),1),this.pause(),this.controller.destroy(),this.time.destroy(),this.video.src="",this.container.innerHTML="",this.events.trigger("destroy");for(var e in this)this.hasOwnProperty(e)&&"paused"!==e&&delete this[e]}}]),e}();t.default=N},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(5),s=function(e){return e&&e.__esModule?e:{default:e}}(a);t.default=function(e){var t={container:e.element||document.getElementsByClassName("dplayer")[0],live:!1,autoplay:!1,theme:"#b7daff",loop:!1,lang:(navigator.language||navigator.browserLanguage).toLowerCase(),screenshot:!1,hotkey:!0,preload:"auto",volume:.7,apiBackend:s.default,video:{},icons:{play:["0 0 16 32","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"],pause:["0 0 17 32","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"],"volume-up":["0 0 21 32","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.056z"],"volume-down":["0 0 21 32","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"],"volume-off":["0 0 21 32","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"],loop:["0 0 32 32","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"],full:["0 0 32 33","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"],"full-in":["0 0 32 33","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"],setting:["0 0 32 28","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"],right:["0 0 32 32","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"],comment:["0 0 32 32","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"],"comment-off":["0 0 32 32","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"],send:["0 0 32 32","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"],pallette:["0 0 32 32","M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z"],camera:["0 0 32 32","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"],subtitle:["0 0 32 32","M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z"]},iconsColor:"#ffffff",contextmenu:[],mutex:!0};for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return e.video&&!e.video.type&&(e.video.type="auto"),"object"===i(e.danmaku)&&e.danmaku&&!e.danmaku.user&&(e.danmaku.user="DIYgod"),e.subtitle&&(!e.subtitle.type&&(e.subtitle.type="webvtt"),!e.subtitle.fontSize&&(e.subtitle.fontSize="20px"),!e.subtitle.bottom&&(e.subtitle.bottom="40px"),!e.subtitle.color&&(e.subtitle.color="#fff")),e.video.quality&&(e.video.url=[e.video.quality[e.video.defaultQuality].url]),e.lang&&(e.lang=e.lang.toLowerCase()),e.icons&&(e.icons=Object.assign({},t.icons,e.icons)),e.contextmenu=e.contextmenu.concat([{text:"About author",link:"https://diygod.me"},{text:"About DPlayer",link:"https://github.com/MoePlayer/DPlayer"},{text:"DPlayer feedback",link:"https://github.com/DIYgod/DPlayer/issues"},{text:"DPlayer 1.20.0 6524114",link:"https://github.com/MoePlayer/DPlayer/releases"}]),e}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(e,t,n,i,a){var s=new XMLHttpRequest;s.onreadystatechange=function(){if(4===s.readyState){if(s.status>=200&&s.status<300||304===s.status){var e=JSON.parse(s.responseText);return 0!==e.code?i(s,e):n(s,e)}a(s)}},s.open(null!==t?"POST":"GET",e,!0),s.send(null!==t?JSON.stringify(t):null)};t.default={send:function(e,t,n){i(e,t,function(e,t){console.log("Post danmaku: ",t),n&&n()},function(e,t){alert(t.msg)},function(e){console.log("Request was unsuccessful: "+e.status)})},read:function(e,t){i(e,null,function(e,n){t(null,n.danmaku)},function(e,n){t({status:e.status,response:n})},function(e){t({status:e.status,response:null})})}}},function(e,t,n){"use strict";function i(e){var t=this;this.lang=e,this.tran=function(e){return a[t.lang]&&a[t.lang][e]?a[t.lang][e]:e}}Object.defineProperty(t,"__esModule",{value:!0});var a={"zh-cn":{"Danmaku is loading":"\u5f39\u5e55\u52a0\u8f7d\u4e2d",Top:"\u9876\u90e8",Bottom:"\u5e95\u90e8",Rolling:"\u6eda\u52a8","Input danmaku, hit Enter":"\u8f93\u5165\u5f39\u5e55\uff0c\u56de\u8f66\u53d1\u9001","About author":"\u5173\u4e8e\u4f5c\u8005","DPlayer feedback":"\u64ad\u653e\u5668\u610f\u89c1\u53cd\u9988","About DPlayer":"\u5173\u4e8e DPlayer \u64ad\u653e\u5668",Loop:"\u6d17\u8111\u5faa\u73af",Speed:"\u901f\u5ea6","Opacity for danmaku":"\u5f39\u5e55\u900f\u660e\u5ea6",Normal:"\u6b63\u5e38","Please input danmaku content!":"\u8981\u8f93\u5165\u5f39\u5e55\u5185\u5bb9\u554a\u5582\uff01","Set danmaku color":"\u8bbe\u7f6e\u5f39\u5e55\u989c\u8272","Set danmaku type":"\u8bbe\u7f6e\u5f39\u5e55\u7c7b\u578b","Show danmaku":"\u663e\u793a\u5f39\u5e55","This video fails to load":"\u89c6\u9891\u52a0\u8f7d\u5931\u8d25","Switching to":"\u6b63\u5728\u5207\u6362\u81f3","Switched to":"\u5df2\u7ecf\u5207\u6362\u81f3",quality:"\u753b\u8d28",FF:"\u5feb\u8fdb",REW:"\u5feb\u9000","Unlimited danmaku":"\u6d77\u91cf\u5f39\u5e55","Send danmaku":"\u53d1\u9001\u5f39\u5e55",Setting:"\u8bbe\u7f6e","Full screen":"\u5168\u5c4f","Web full screen":"\u9875\u9762\u5168\u5c4f",Send:"\u53d1\u9001",Screenshot:"\u622a\u56fe",s:"\u79d2","Show subtitle":"\u663e\u793a\u5b57\u5e55","Hide subtitle":"\u9690\u85cf\u5b57\u5e55",Volume:"\u97f3\u91cf",Live:"\u76f4\u64ad"},"zh-tw":{"Danmaku is loading":"\u5f48\u5e55\u52a0\u8f09\u4e2d",Top:"\u9802\u90e8",Bottom:"\u5e95\u90e8",Rolling:"\u6efe\u52d5","Input danmaku, hit Enter":"\u8f38\u5165\u5f48\u5e55\uff0cEnter \u767c\u9001","About author":"\u95dc\u65bc\u4f5c\u8005","DPlayer feedback":"\u64ad\u653e\u5668\u610f\u898b\u53cd\u994b","About DPlayer":"\u95dc\u65bc DPlayer \u64ad\u653e\u5668",Loop:"\u5faa\u74b0\u64ad\u653e",Speed:"\u901f\u5ea6","Opacity for danmaku":"\u5f48\u5e55\u900f\u660e\u5ea6",Normal:"\u6b63\u5e38","Please input danmaku content!":"\u8acb\u8f38\u5165\u5f48\u5e55\u5185\u5bb9\u554a\uff01","Set danmaku color":"\u8a2d\u7f6e\u5f48\u5e55\u984f\u8272","Set danmaku type":"\u8a2d\u7f6e\u5f48\u5e55\u985e\u578b","Show danmaku":"\u986f\u793a\u5f48\u5e55","This video fails to load":"\u8996\u983b\u52a0\u8f09\u5931\u6557","Switching to":"\u6b63\u5728\u5207\u63db\u81f3","Switched to":"\u5df2\u7d93\u5207\u63db\u81f3",quality:"\u756b\u8cea",FF:"\u5feb\u9032",REW:"\u5feb\u9000","Unlimited danmaku":"\u6d77\u91cf\u5f48\u5e55","Send danmaku":"\u767c\u9001\u5f48\u5e55",Setting:"\u8a2d\u7f6e","Full screen":"\u5168\u5c4f","Web full screen":"\u9801\u9762\u5168\u5c4f",Send:"\u767c\u9001",Screenshot:"\u622a\u5716",s:"\u79d2","Show subtitle":"\u986f\u793a\u5b57\u5e55","Hide subtitle":"\u96b1\u85cf\u5b57\u5e55",Volume:"\u97f3\u91cf",Live:"\u76f4\u64ad"}};t.default=i},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n
'+this.tplVideo(!0,e.video.pic,e.screenshot,e.preload,e.video.url,e.subtitle)+(e.logo?'':"")+'
'+(e.danmaku?''+n("Danmaku is loading")+"":"")+'
'+n("Set danmaku color")+'
'+n("Set danmaku type")+'
0:00 / 0:00'+(e.live?''+n("Live")+"":"")+'
'+(e.video.quality?'
'+this.tplQualityList(e.video.quality)+"
":"")+(e.screenshot?''+i.get("camera")+"":"")+'
"+(e.subtitle?'
":"")+'
'+n("Speed")+'
'+i.get("right")+'
'+n("Loop")+'
'+n("Show danmaku")+'
'+n("Unlimited danmaku")+'
'+n("Opacity for danmaku")+'
0.5
0.75
'+n("Normal")+'
1.25
1.5
2
'+this.tplContextmenuList(e.contextmenu,n)+'
'}},{key:"tplDanmakumargin",value:function(e){var t="";if(e)for(var n in e)t+=n+":"+e[n]+";";return t}},{key:"tplContextmenuList",value:function(e,t){for(var n='";return n+=""}},{key:"tplQualityList",value:function(e){for(var t='
',n=0;n'+e[n].name+"
";return t+=""}},{key:"tplVideo",value:function(e,t,n,i,a,s){var l=s&&"webvtt"===s.type;return'"}}]),e}();t.default=s},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n'}}]),e}();t.default=s},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=function(){function e(e,t){for(var n=0;nparseFloat(t.time);)n.push(t),t=this.dan[++this.danIndex];this.draw(n)}window.requestAnimationFrame(function(){e.frame()})}},{key:"opacity",value:function(e){if(void 0!==e){for(var t=this.container.getElementsByClassName("dplayer-danmaku-item"),n=0;n'+e[a].text+"":s.innerHTML=e[a].text,s.style.opacity=t._opacity,s.style.color=e[a].color,s.addEventListener("animationend",function(){t.container.removeChild(s)});var l=t._measure(e[a].text),o=void 0;switch(e[a].type){case"right":o=c(s,e[a].type,l),o>=0&&(s.style.width=l+1+"px",s.style.top=n*o+"px",s.style.transform="translateX(-"+i+"px)");break;case"top":o=c(s,e[a].type),o>=0&&(s.style.top=n*o+"px");break;case"bottom":o=c(s,e[a].type),o>=0&&(s.style.bottom=n*o+"px");break;default:console.error("Can't handled danmaku type: "+e[a].type)}o>=0&&(s.classList.add("dplayer-danmaku-move"),u.appendChild(s))}(d);return this.container.appendChild(u),u}}},{key:"play",value:function(){this.paused=!1}},{key:"pause",value:function(){this.paused=!0}},{key:"_measure",value:function(e){if(!this.context){var t=getComputedStyle(this.container.getElementsByClassName("dplayer-danmaku-item")[0],null);this.context=document.createElement("canvas").getContext("2d"),this.context.font=t.getPropertyValue("font")}return this.context.measureText(e).width}},{key:"seek",value:function(){this.clear();for(var e=0;e=this.options.time()){this.danIndex=e;break}this.danIndex=this.dan.length}}},{key:"clear",value:function(){this.danTunnel={right:{},top:{},bottom:{}},this.danIndex=0,this.options.container.innerHTML="",this.events&&this.events.trigger("danmaku_clear")}},{key:"htmlEncode",value:function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}},{key:"resize",value:function(){for(var e=this.container.offsetWidth,t=this.container.getElementsByClassName("dplayer-danmaku-item"),n=0;n0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement;case"web":return this.player.container.classList.contains("dplayer-fulled")}}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser",t="browser"===e?"web":"browser",n=this.isFullScreen(t);switch(n||(this.lastScrollPosition=l.default.getScrollPosition()),e){case"browser":this.player.container.requestFullscreen?this.player.container.requestFullscreen():this.player.container.mozRequestFullScreen?this.player.container.mozRequestFullScreen():this.player.container.webkitRequestFullscreen?this.player.container.webkitRequestFullscreen():this.player.video.webkitEnterFullscreen&&this.player.video.webkitEnterFullscreen();break;case"web":this.player.container.classList.add("dplayer-fulled"),document.body.classList.add("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen")}n&&this.cancel(t)}},{key:"cancel",value:function(){switch(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen();break;case"web":this.player.container.classList.remove("dplayer-fulled"),document.body.classList.remove("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen_cancel")}}},{key:"toggle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser";this.isFullScreen(e)?this.cancel(e):this.request(e)}}]),e}();t.default=o},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;nt&&!e.player.video.paused&&(e.player.container.classList.remove("dplayer-loading"),i=!1),t=n)},100)}},{key:"initprogressChecker",value:function(){var e=this;this.progressChecker=setInterval(function(){if(e.enableprogressChecker){e.player.bar.set("played",e.player.video.currentTime/e.player.video.duration,"width");var t=l.default.secondToTime(e.player.video.currentTime);e.player.template.ptime.innerHTML!==t&&(e.player.template.ptime.innerHTML=l.default.secondToTime(e.player.video.currentTime))}},100)}},{key:"enable",value:function(e){if(e)this["enable"+e+"Checker"]=!0;else for(var t=0;te.player.template.playedBarWrap.offsetWidth)return;var a=e.player.video.duration*(i/e.player.template.playedBarWrap.offsetWidth);e.thumbnails&&e.thumbnails.move(i),e.player.template.playedBarTime.style.left=i-20+"px",e.player.template.playedBarTime.innerText=o.default.secondToTime(a),e.player.template.playedBarTime.classList.remove("hidden")}}),this.player.template.playedBarWrap.addEventListener("mouseenter",function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.show(),e.player.template.playedBarTime.classList.remove("hidden"))}),this.player.template.playedBarWrap.addEventListener("mouseleave",function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.hide(),e.player.template.playedBarTime.classList.add("hidden"))})}},{key:"initFullButton",value:function(){var e=this;this.player.template.browserFullButton.addEventListener("click",function(){e.player.fullScreen.toggle("browser")}),this.player.template.webFullButton.addEventListener("click",function(){e.player.fullScreen.toggle("web")})}},{key:"initVolumeButton",value:function(){var e=this,t=function(t){var n=t||window.event,i=(n.clientX-o.default.getElementViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(i)},n=function n(){document.removeEventListener("mouseup",n),document.removeEventListener("mousemove",t),e.player.template.volumeButton.classList.remove("dplayer-volume-active")};this.player.template.volumeBarWrapWrap.addEventListener("click",function(t){var n=t||window.event,i=(n.clientX-o.default.getElementViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(i)}),this.player.template.volumeBarWrapWrap.addEventListener("mousedown",function(){document.addEventListener("mousemove",t),document.addEventListener("mouseup",n),e.player.template.volumeButton.classList.add("dplayer-volume-active")}),this.player.template.volumeIcon.addEventListener("click",function(){e.player.video.muted?(e.player.video.muted=!1,e.player.switchVolumeIcon(),e.player.bar.set("volume",e.player.volume(),"width")):(e.player.video.muted=!0,e.player.template.volumeIcon.innerHTML=e.player.icons.get("volume-off"),e.player.bar.set("volume",0,"width"))})}},{key:"initQualityButton",value:function(){var e=this;this.player.options.video.quality&&this.player.template.qualityList.addEventListener("click",function(t){t.target.classList.contains("dplayer-quality-item")&&e.player.switchQuality(t.target.dataset.index)})}},{key:"initScreenshotButton",value:function(){var e=this;this.player.options.screenshot&&this.player.template.camareButton.addEventListener("click",function(){var t=document.createElement("canvas");t.width=e.player.video.videoWidth,t.height=e.player.video.videoHeight,t.getContext("2d").drawImage(e.player.video,0,0,t.width,t.height);var n=t.toDataURL();e.player.template.camareButton.href=n,e.player.template.camareButton.download="DPlayer.png",e.player.events.trigger("screenshot",n)})}},{key:"initSubtitleButton",value:function(){var e=this;this.player.options.subtitle&&(this.player.events.on("subtitle_show",function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Hide subtitle"),e.player.template.subtitleButtonInner.style.opacity="",e.player.user.set("subtitle",1)}),this.player.events.on("subtitle_hide",function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Show subtitle"),e.player.template.subtitleButtonInner.style.opacity="0.4",e.player.user.set("subtitle",0)}),this.player.template.subtitleButton.addEventListener("click",function(){e.player.subtitle.toggle()}))}},{key:"setAutoHide",value:function(){var e=this;this.show(),clearTimeout(this.autoHideTimer),this.autoHideTimer=setTimeout(function(){e.player.video.played.length&&!e.disableAutoHide&&e.hide()},2e3)}},{key:"show",value:function(){this.player.container.classList.remove("dplayer-hide-controller")}},{key:"hide",value:function(){this.player.container.classList.add("dplayer-hide-controller"),this.player.setting.hide(),this.player.comment&&this.player.comment.hide()}},{key:"isShow",value:function(){return!this.player.container.classList.contains("dplayer-hide-controller")}},{key:"toggle",value:function(){this.isShow()?this.hide():this.show()}},{key:"destroy",value:function(){clearTimeout(this.autoHideTimer)}}]),e}();t.default=u},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n=n.width?(this.player.template.menu.style.right=n.width-e+"px",this.player.template.menu.style.left="initial"):(this.player.template.menu.style.left=e+"px",this.player.template.menu.style.right="initial"),t+this.player.template.menu.offsetHeight>=n.height?(this.player.template.menu.style.bottom=n.height-t+"px",this.player.template.menu.style.top="initial"):(this.player.template.menu.style.top=t+"px",this.player.template.menu.style.bottom="initial"),this.player.template.mask.classList.add("dplayer-mask-show"),this.player.events.trigger("contextmenu_show")}},{key:"hide",value:function(){this.player.template.mask.classList.remove("dplayer-mask-show"),this.player.template.menu.classList.remove("dplayer-menu-show"),this.player.events.trigger("contextmenu_hide")}}]),e}();t.default=s}]).default}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DPlayer",[],t):"object"==typeof exports?exports.DPlayer=t():e.DPlayer=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(i){if(n[i])return n[i].exports;var a=n[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s=1)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={secondToTime:function(e){var t=function(e){return e<10?"0"+e:""+e},n=parseInt(e/60),i=parseInt(e-60*n);return t(n)+":"+t(i)},getElementViewLeft:function(e){var t=e.offsetLeft,n=e.offsetParent,i=document.body.scrollLeft+document.documentElement.scrollLeft;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==e;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return t-i},getScrollPosition:function(){return{left:window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0,top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0}},setScrollPosition:function(e){var t=e.left,n=void 0===t?0:t,i=e.top,a=void 0===i?0:i;this.isFirefox?(document.documentElement.scrollLeft=n,document.documentElement.scrollTop=a):window.scrollTo(n,a)},isMobile:/mobile/i.test(window.navigator.userAgent),isFirefox:/firefox/i.test(window.navigator.userAgent),isChrome:/chrome/i.test(window.navigator.userAgent),storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},cumulativeOffset:function(e){var t=0,n=0;do{t+=e.offsetTop||0,n+=e.offsetLeft||0,e=e.offsetParent}while(e);return{top:t,left:n}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(2);var i=n(3),a=function(e){return e&&e.__esModule?e:{default:e}}(i);console.log("\n %c DPlayer 1.20.1 cda9098 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),t.default=a.default},function(e,t){},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;ne&&this.notice(this.tran("REW")+" "+(this.video.currentTime-e).toFixed(0)+" "+this.tran("s")),this.video.currentTime=e,this.danmaku&&this.danmaku.seek(),this.bar.set("played",e/this.video.duration,"width")}},{key:"play",value:function(){var e=this;if(this.paused=!1,this.video.paused&&this.bezel.switch(this.icons.get("play")),this.template.playButton.innerHTML=this.icons.get("pause"),r.default.resolve(this.video.play()).catch(function(){e.pause()}).then(function(){}),this.time.enable(),this.container.classList.add("dplayer-playing"),this.danmaku&&this.danmaku.play(),this.options.mutex)for(var t=0;t=.95?this.template.volumeIcon.innerHTML=this.icons.get("volume-up"):this.volume()>0?this.template.volumeIcon.innerHTML=this.icons.get("volume-down"):this.template.volumeIcon.innerHTML=this.icons.get("volume-off")}},{key:"volume",value:function(e,t,n){if(e=parseFloat(e),!isNaN(e)){e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"width");var i=(100*e).toFixed(0)+"%";this.template.volumeBarWrapWrap.dataset.balloon=i,t||this.user.set("volume",e),n||this.notice(this.tran("Volume")+" "+(100*e).toFixed(0)+"%"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}return this.video.volume}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"switchVideo",value:function(e,t){this.pause(),this.video.poster=e.pic?e.pic:"",this.video.src=e.url,this.initMSE(this.video,e.type||"auto"),t&&(this.template.danmakuLoading.style.display="block",this.bar.set("played",0,"width"),this.bar.set("loaded",0,"width"),this.template.ptime.innerHTML="00:00",this.template.danmaku.innerHTML="",this.danmaku&&this.danmaku.reload({id:t.id,address:t.api,token:t.token,maximum:t.maximum,addition:t.addition,user:t.user}))}},{key:"initMSE",value:function(e,t){if(this.type=t,"auto"===this.type&&(/m3u8(#|\?|$)/i.exec(e.src)?this.type="hls":/.flv(#|\?|$)/i.exec(e.src)?this.type="flv":/.mpd(#|\?|$)/i.exec(e.src)?this.type="dash":this.type="normal"),"hls"===this.type&&Hls&&Hls.isSupported()){var n=new Hls;n.loadSource(e.src),n.attachMedia(e)}if("flv"===this.type&&flvjs&&flvjs.isSupported()){var i=flvjs.createPlayer({type:"flv",url:e.src});i.attachMediaElement(e),i.load()}"dash"===this.type&&dashjs&&dashjs.MediaPlayer().create().initialize(e,e.src,!1)}},{key:"initVideo",value:function(e,t){var n=this;this.initMSE(e,t),this.on("durationchange",function(){1!==e.duration&&(n.template.dtime.innerHTML=c.default.secondToTime(e.duration))}),this.on("progress",function(){var t=e.buffered.length?e.buffered.end(e.buffered.length-1)/e.duration:0;n.bar.set("loaded",t,"width")}),this.on("error",function(){n.tran&&n.notice&&n.notice(n.tran("This video fails to load"),-1)}),this.ended=!1,this.on("ended",function(){n.bar.set("played",1,"width"),n.setting.loop?(n.seek(0),e.play()):(n.ended=!0,n.pause()),n.danmaku&&(n.danmaku.danIndex=0)}),this.on("play",function(){n.paused&&n.play()}),this.on("pause",function(){n.paused||n.pause()});for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:2e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=i,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("notice_show",e),this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")},n)}},{key:"resize",value:function(){this.danmaku&&this.danmaku.resize(),this.events.trigger("resize")}},{key:"speed",value:function(e){this.video.playbackRate=e}},{key:"destroy",value:function(){Q.splice(Q.indexOf(this),1),this.pause(),this.controller.destroy(),this.time.destroy(),this.video.src="",this.container.innerHTML="",this.events.trigger("destroy");for(var e in this)this.hasOwnProperty(e)&&"paused"!==e&&delete this[e]}}]),e}();t.default=X},function(e,t,n){"use strict";(function(e){function n(){}function i(e,t){return function(){e.apply(t,arguments)}}function a(e,t){for(;3===e._state;)e=e._value;if(0===e._state)return void e._deferreds.push(t);e._handled=!0,u._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null===n)return void(1===e._state?o:s)(t.promise,e._value);var i;try{i=n(e._value)}catch(e){return void s(t.promise,e)}o(t.promise,i)})}function o(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":d(t))||"function"==typeof t)){var n=t.then;if(t instanceof u)return e._state=3,e._value=t,void r(e);if("function"==typeof n)return void c(i(n,t),e)}e._state=1,e._value=t,r(e)}catch(t){s(e,t)}}function s(e,t){e._state=2,e._value=t,r(e)}function r(e){2===e._state&&0===e._deferreds.length&&u._immediateFn(function(){e._handled||u._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(6),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){"use strict";(function(e,t){!function(e,n){function i(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n1)for(var n=1;n=200&&o.status<300||304===o.status){var e=JSON.parse(o.responseText);return 0!==e.code?i(o,e):n(o,e)}a(o)}},o.open(null!==t?"POST":"GET",e,!0),o.send(null!==t?JSON.stringify(t):null)};t.default={send:function(e,t,n){i(e,t,function(e,t){console.log("Post danmaku: ",t),n&&n()},function(e,t){alert(t.msg)},function(e){console.log("Request was unsuccessful: "+e.status)})},read:function(e,t){i(e,null,function(e,n){t(null,n.danmaku)},function(e,n){t({status:e.status,response:n})},function(e){t({status:e.status,response:null})})}}},function(e,t,n){"use strict";function i(e){var t=this;this.lang=e,this.tran=function(e){return a[t.lang]&&a[t.lang][e]?a[t.lang][e]:e}}Object.defineProperty(t,"__esModule",{value:!0});var a={"zh-cn":{"Danmaku is loading":"\u5f39\u5e55\u52a0\u8f7d\u4e2d",Top:"\u9876\u90e8",Bottom:"\u5e95\u90e8",Rolling:"\u6eda\u52a8","Input danmaku, hit Enter":"\u8f93\u5165\u5f39\u5e55\uff0c\u56de\u8f66\u53d1\u9001","About author":"\u5173\u4e8e\u4f5c\u8005","DPlayer feedback":"\u64ad\u653e\u5668\u610f\u89c1\u53cd\u9988","About DPlayer":"\u5173\u4e8e DPlayer \u64ad\u653e\u5668",Loop:"\u6d17\u8111\u5faa\u73af",Speed:"\u901f\u5ea6","Opacity for danmaku":"\u5f39\u5e55\u900f\u660e\u5ea6",Normal:"\u6b63\u5e38","Please input danmaku content!":"\u8981\u8f93\u5165\u5f39\u5e55\u5185\u5bb9\u554a\u5582\uff01","Set danmaku color":"\u8bbe\u7f6e\u5f39\u5e55\u989c\u8272","Set danmaku type":"\u8bbe\u7f6e\u5f39\u5e55\u7c7b\u578b","Show danmaku":"\u663e\u793a\u5f39\u5e55","This video fails to load":"\u89c6\u9891\u52a0\u8f7d\u5931\u8d25","Switching to":"\u6b63\u5728\u5207\u6362\u81f3","Switched to":"\u5df2\u7ecf\u5207\u6362\u81f3",quality:"\u753b\u8d28",FF:"\u5feb\u8fdb",REW:"\u5feb\u9000","Unlimited danmaku":"\u6d77\u91cf\u5f39\u5e55","Send danmaku":"\u53d1\u9001\u5f39\u5e55",Setting:"\u8bbe\u7f6e","Full screen":"\u5168\u5c4f","Web full screen":"\u9875\u9762\u5168\u5c4f",Send:"\u53d1\u9001",Screenshot:"\u622a\u56fe",s:"\u79d2","Show subtitle":"\u663e\u793a\u5b57\u5e55","Hide subtitle":"\u9690\u85cf\u5b57\u5e55",Volume:"\u97f3\u91cf",Live:"\u76f4\u64ad"},"zh-tw":{"Danmaku is loading":"\u5f48\u5e55\u52a0\u8f09\u4e2d",Top:"\u9802\u90e8",Bottom:"\u5e95\u90e8",Rolling:"\u6efe\u52d5","Input danmaku, hit Enter":"\u8f38\u5165\u5f48\u5e55\uff0cEnter \u767c\u9001","About author":"\u95dc\u65bc\u4f5c\u8005","DPlayer feedback":"\u64ad\u653e\u5668\u610f\u898b\u53cd\u994b","About DPlayer":"\u95dc\u65bc DPlayer \u64ad\u653e\u5668",Loop:"\u5faa\u74b0\u64ad\u653e",Speed:"\u901f\u5ea6","Opacity for danmaku":"\u5f48\u5e55\u900f\u660e\u5ea6",Normal:"\u6b63\u5e38","Please input danmaku content!":"\u8acb\u8f38\u5165\u5f48\u5e55\u5185\u5bb9\u554a\uff01","Set danmaku color":"\u8a2d\u7f6e\u5f48\u5e55\u984f\u8272","Set danmaku type":"\u8a2d\u7f6e\u5f48\u5e55\u985e\u578b","Show danmaku":"\u986f\u793a\u5f48\u5e55","This video fails to load":"\u8996\u983b\u52a0\u8f09\u5931\u6557","Switching to":"\u6b63\u5728\u5207\u63db\u81f3","Switched to":"\u5df2\u7d93\u5207\u63db\u81f3",quality:"\u756b\u8cea",FF:"\u5feb\u9032",REW:"\u5feb\u9000","Unlimited danmaku":"\u6d77\u91cf\u5f48\u5e55","Send danmaku":"\u767c\u9001\u5f48\u5e55",Setting:"\u8a2d\u7f6e","Full screen":"\u5168\u5c4f","Web full screen":"\u9801\u9762\u5168\u5c4f",Send:"\u767c\u9001",Screenshot:"\u622a\u5716",s:"\u79d2","Show subtitle":"\u986f\u793a\u5b57\u5e55","Hide subtitle":"\u96b1\u85cf\u5b57\u5e55",Volume:"\u97f3\u91cf",Live:"\u76f4\u64ad"}};t.default=i},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n
'+this.tplVideo(!0,e.video.pic,e.screenshot,e.preload,e.video.url,e.subtitle)+(e.logo?'':"")+'
'+(e.danmaku?''+n("Danmaku is loading")+"":"")+'
'+n("Set danmaku color")+'
'+n("Set danmaku type")+'
0:00 / 0:00'+(e.live?''+n("Live")+"":"")+'
'+(e.video.quality?'
'+this.tplQualityList(e.video.quality)+"
":"")+(e.screenshot?''+i.get("camera")+"":"")+'
"+(e.subtitle?'
":"")+'
'+n("Speed")+'
'+i.get("right")+'
'+n("Loop")+'
'+n("Show danmaku")+'
'+n("Unlimited danmaku")+'
'+n("Opacity for danmaku")+'
0.5
0.75
'+n("Normal")+'
1.25
1.5
2
'+this.tplContextmenuList(e.contextmenu,n)+'
'}},{key:"tplDanmakumargin",value:function(e){var t="";if(e)for(var n in e)t+=n+":"+e[n]+";";return t}},{key:"tplContextmenuList",value:function(e,t){for(var n='";return n+=""}},{key:"tplQualityList",value:function(e){for(var t='
',n=0;n'+e[n].name+"
";return t+=""}},{key:"tplVideo",value:function(e,t,n,i,a,o){var s=o&&"webvtt"===o.type;return'"}}]),e}();t.default=o},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n'}}]),e}();t.default=o},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;nparseFloat(t.time);)n.push(t),t=this.dan[++this.danIndex];this.draw(n)}window.requestAnimationFrame(function(){e.frame()})}},{key:"opacity",value:function(e){if(void 0!==e){for(var t=this.container.getElementsByClassName("dplayer-danmaku-item"),n=0;n'+e[a].text+"":o.innerHTML=e[a].text,o.style.opacity=t._opacity,o.style.color=e[a].color,o.addEventListener("animationend",function(){t.container.removeChild(o)});var s=t._measure(e[a].text),r=void 0;switch(e[a].type){case"right":r=c(o,e[a].type,s),r>=0&&(o.style.width=s+1+"px",o.style.top=n*r+"px",o.style.transform="translateX(-"+i+"px)");break;case"top":r=c(o,e[a].type),r>=0&&(o.style.top=n*r+"px");break;case"bottom":r=c(o,e[a].type),r>=0&&(o.style.bottom=n*r+"px");break;default:console.error("Can't handled danmaku type: "+e[a].type)}r>=0&&(o.classList.add("dplayer-danmaku-move"),u.appendChild(o))}(d);return this.container.appendChild(u),u}}},{key:"play",value:function(){this.paused=!1}},{key:"pause",value:function(){this.paused=!0}},{key:"_measure",value:function(e){if(!this.context){var t=getComputedStyle(this.container.getElementsByClassName("dplayer-danmaku-item")[0],null);this.context=document.createElement("canvas").getContext("2d"),this.context.font=t.getPropertyValue("font")}return this.context.measureText(e).width}},{key:"seek",value:function(){this.clear();for(var e=0;e=this.options.time()){this.danIndex=e;break}this.danIndex=this.dan.length}}},{key:"clear",value:function(){this.danTunnel={right:{},top:{},bottom:{}},this.danIndex=0,this.options.container.innerHTML="",this.events&&this.events.trigger("danmaku_clear")}},{key:"htmlEncode",value:function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}},{key:"resize",value:function(){for(var e=this.container.offsetWidth,t=this.container.getElementsByClassName("dplayer-danmaku-item"),n=0;n0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement;case"web":return this.player.container.classList.contains("dplayer-fulled")}}},{key:"request",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser",t="browser"===e?"web":"browser",n=this.isFullScreen(t);switch(n||(this.lastScrollPosition=s.default.getScrollPosition()),e){case"browser":this.player.container.requestFullscreen?this.player.container.requestFullscreen():this.player.container.mozRequestFullScreen?this.player.container.mozRequestFullScreen():this.player.container.webkitRequestFullscreen?this.player.container.webkitRequestFullscreen():this.player.video.webkitEnterFullscreen&&this.player.video.webkitEnterFullscreen();break;case"web":this.player.container.classList.add("dplayer-fulled"),document.body.classList.add("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen")}n&&this.cancel(t)}},{key:"cancel",value:function(){switch(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser"){case"browser":document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen();break;case"web":this.player.container.classList.remove("dplayer-fulled"),document.body.classList.remove("dplayer-web-fullscreen-fix"),this.player.events.trigger("webfullscreen_cancel")}}},{key:"toggle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"browser";this.isFullScreen(e)?this.cancel(e):this.request(e)}}]),e}();t.default=r},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;nt&&!e.player.video.paused&&(e.player.container.classList.remove("dplayer-loading"),i=!1),t=n)},100)}},{key:"initprogressChecker",value:function(){var e=this;this.progressChecker=setInterval(function(){if(e.enableprogressChecker){e.player.bar.set("played",e.player.video.currentTime/e.player.video.duration,"width");var t=s.default.secondToTime(e.player.video.currentTime);e.player.template.ptime.innerHTML!==t&&(e.player.template.ptime.innerHTML=s.default.secondToTime(e.player.video.currentTime))}},100)}},{key:"enable",value:function(e){if(e)this["enable"+e+"Checker"]=!0;else for(var t=0;te.player.template.playedBarWrap.offsetWidth)return;var a=e.player.video.duration*(i/e.player.template.playedBarWrap.offsetWidth);e.thumbnails&&e.thumbnails.move(i),e.player.template.playedBarTime.style.left=i-20+"px",e.player.template.playedBarTime.innerText=r.default.secondToTime(a),e.player.template.playedBarTime.classList.remove("hidden")}}),this.player.template.playedBarWrap.addEventListener("mouseenter",function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.show(),e.player.template.playedBarTime.classList.remove("hidden"))}),this.player.template.playedBarWrap.addEventListener("mouseleave",function(){e.player.video.duration&&(e.thumbnails&&e.thumbnails.hide(),e.player.template.playedBarTime.classList.add("hidden"))})}},{key:"initFullButton",value:function(){var e=this;this.player.template.browserFullButton.addEventListener("click",function(){e.player.fullScreen.toggle("browser")}),this.player.template.webFullButton.addEventListener("click",function(){e.player.fullScreen.toggle("web")})}},{key:"initVolumeButton",value:function(){var e=this,t=function(t){var n=t||window.event,i=(n.clientX-r.default.getElementViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(i)},n=function n(){document.removeEventListener("mouseup",n),document.removeEventListener("mousemove",t),e.player.template.volumeButton.classList.remove("dplayer-volume-active")};this.player.template.volumeBarWrapWrap.addEventListener("click",function(t){var n=t||window.event,i=(n.clientX-r.default.getElementViewLeft(e.player.template.volumeBarWrap)-5.5)/35;e.player.volume(i)}),this.player.template.volumeBarWrapWrap.addEventListener("mousedown",function(){document.addEventListener("mousemove",t),document.addEventListener("mouseup",n),e.player.template.volumeButton.classList.add("dplayer-volume-active")}),this.player.template.volumeIcon.addEventListener("click",function(){e.player.video.muted?(e.player.video.muted=!1,e.player.switchVolumeIcon(),e.player.bar.set("volume",e.player.volume(),"width")):(e.player.video.muted=!0,e.player.template.volumeIcon.innerHTML=e.player.icons.get("volume-off"),e.player.bar.set("volume",0,"width"))})}},{key:"initQualityButton",value:function(){var e=this;this.player.options.video.quality&&this.player.template.qualityList.addEventListener("click",function(t){t.target.classList.contains("dplayer-quality-item")&&e.player.switchQuality(t.target.dataset.index)})}},{key:"initScreenshotButton",value:function(){var e=this;this.player.options.screenshot&&this.player.template.camareButton.addEventListener("click",function(){var t=document.createElement("canvas");t.width=e.player.video.videoWidth,t.height=e.player.video.videoHeight,t.getContext("2d").drawImage(e.player.video,0,0,t.width,t.height);var n=t.toDataURL();e.player.template.camareButton.href=n,e.player.template.camareButton.download="DPlayer.png",e.player.events.trigger("screenshot",n)})}},{key:"initSubtitleButton",value:function(){var e=this;this.player.options.subtitle&&(this.player.events.on("subtitle_show",function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Hide subtitle"),e.player.template.subtitleButtonInner.style.opacity="",e.player.user.set("subtitle",1)}),this.player.events.on("subtitle_hide",function(){e.player.template.subtitleButton.dataset.balloon=e.player.tran("Show subtitle"),e.player.template.subtitleButtonInner.style.opacity="0.4",e.player.user.set("subtitle",0)}),this.player.template.subtitleButton.addEventListener("click",function(){e.player.subtitle.toggle()}))}},{key:"setAutoHide",value:function(){var e=this;this.show(),clearTimeout(this.autoHideTimer),this.autoHideTimer=setTimeout(function(){e.player.video.played.length&&!e.disableAutoHide&&e.hide()},2e3)}},{key:"show",value:function(){this.player.container.classList.remove("dplayer-hide-controller")}},{key:"hide",value:function(){this.player.container.classList.add("dplayer-hide-controller"),this.player.setting.hide(),this.player.comment&&this.player.comment.hide()}},{key:"isShow",value:function(){return!this.player.container.classList.contains("dplayer-hide-controller")}},{key:"toggle",value:function(){this.isShow()?this.hide():this.show()}},{key:"destroy",value:function(){clearTimeout(this.autoHideTimer)}}]),e}();t.default=u},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n=n.width?(this.player.template.menu.style.right=n.width-e+"px",this.player.template.menu.style.left="initial"):(this.player.template.menu.style.left=e+"px",this.player.template.menu.style.right="initial"),t+this.player.template.menu.offsetHeight>=n.height?(this.player.template.menu.style.bottom=n.height-t+"px",this.player.template.menu.style.top="initial"):(this.player.template.menu.style.top=t+"px",this.player.template.menu.style.bottom="initial"),this.player.template.mask.classList.add("dplayer-mask-show"),this.player.events.trigger("contextmenu_show")}},{key:"hide",value:function(){this.player.template.mask.classList.remove("dplayer-mask-show"),this.player.template.menu.classList.remove("dplayer-menu-show"),this.player.events.trigger("contextmenu_hide")}}]),e}();t.default=o}]).default}); //# sourceMappingURL=DPlayer.min.js.map \ No newline at end of file diff --git a/dist/DPlayer.min.js.map b/dist/DPlayer.min.js.map index 49e9db6..2fd169c 100644 --- a/dist/DPlayer.min.js.map +++ b/dist/DPlayer.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 90f4ff0b7b08cbb9a7b5","webpack:///./src/js/utils.js","webpack:///./src/js/index.js","webpack:///./src/js/player.js","webpack:///./src/js/options.js","webpack:///./src/js/api.js","webpack:///./src/js/i18n.js","webpack:///./src/js/template.js","webpack:///./src/js/svg.js","webpack:///./src/js/danmaku.js","webpack:///./src/js/events.js","webpack:///./src/js/fullscreen.js","webpack:///./src/js/user.js","webpack:///./src/js/subtitle.js","webpack:///./src/js/bar.js","webpack:///./src/js/time.js","webpack:///./src/js/bezel.js","webpack:///./src/js/controller.js","webpack:///./src/js/thumbnails.js","webpack:///./src/js/setting.js","webpack:///./src/js/comment.js","webpack:///./src/js/hotkey.js","webpack:///./src/js/contextmenu.js"],"names":["root","factory","exports","module","define","amd","self","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","default","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","element","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","document","body","scrollLeft","documentElement","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","getScrollPosition","left","window","pageXOffset","top","pageYOffset","scrollTop","setScrollPosition","_ref","_ref$left","undefined","_ref$top","isFirefox","scrollTo","isMobile","test","navigator","userAgent","isChrome","storage","set","key","localStorage","setItem","getItem","cumulativeOffset","offsetTop","_player","_player2","obj","console","log","_interopRequireDefault","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","protoProps","staticProps","_utils","_utils2","_options","_options2","_i18n","_i18n2","_template","_template2","_svg","_svg2","_danmaku","_danmaku2","_events","_events2","_fullscreen","_fullscreen2","_user","_user2","_subtitle","_subtitle2","_bar","_bar2","_time","_time2","_bezel","_bezel2","_controller","_controller2","_setting","_setting2","_comment","_comment2","_hotkey","_hotkey2","_contextmenu","_contextmenu2","index","instances","DPlayer","options","_this","video","quality","qualityIndex","defaultQuality","tran","lang","icons","events","user","container","classList","add","danmaku","live","arrow","offsetWidth","template","bar","bezel","fullScreen","controller","opacity","callback","setTimeout","danmakuLoading","style","display","autoplay","play","pause","error","msg","notice","apiBackend","borderColor","theme","height","time","currentTime","unlimited","api","id","address","token","maximum","addition","comment","setting","addEventListener","focus","paused","hotkey","contextmenu","initVideo","type","push","Math","max","duration","toFixed","seek","_this2","switch","playButton","innerHTML","playedPromise","catch","then","enable","mutex","remove","ended","disable","volume","volumeIcon","percentage","nostorage","nonotice","parseFloat","isNaN","formatPercentage","volumeBarWrapWrap","dataset","balloon","muted","switchVolumeIcon","on","danmakuAPI","poster","pic","src","url","initMSE","ptime","reload","exec","Hls","isSupported","hls","loadSource","attachMedia","flvjs","flvPlayer","createPlayer","attachMediaElement","load","dashjs","MediaPlayer","create","initialize","_this3","dtime","buffered","end","loop","danIndex","videoEvents","trigger","subtitle","hide","_this4","switchingQuality","qualityButton","videoHTML","tplVideo","screenshot","videoEle","DOMParser","parseFromString","firstChild","videoWrap","insertBefore","getElementsByTagName","prevVideo","removeChild","text","_this5","arguments","noticeTime","clearTimeout","resize","rate","playbackRate","splice","indexOf","destroy","_typeof","Symbol","iterator","constructor","_api","_api2","defaultOption","getElementsByClassName","language","browserLanguage","toLowerCase","preload","volume-up","volume-down","volume-off","full","full-in","right","comment-off","send","pallette","camera","iconsColor","defaultKey","fontSize","bottom","color","assign","concat","link","SendXMLHttpRequest","data","success","fail","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","open","stringify","endpoint","danmakuData","alert","read","i18n","tranTxt","zh-cn","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku content!","Set danmaku color","Set danmaku type","Show danmaku","This video fails to load","Switching to","Switched to","FF","REW","Unlimited danmaku","Send danmaku","Setting","Full screen","Web full screen","Send","Screenshot","Show subtitle","Hide subtitle","Volume","Live","zh-tw","Template","init","tpl","volumeBar","querySelector","volumeBarWrap","volumeButton","playedBar","loadedBar","playedBarWrap","playedBarTime","controllerMask","settingButton","settingBox","mask","loopToggle","showDanmaku","showDanmakuToggle","unlimitDanmaku","unlimitDanmakuToggle","speed","speedItem","querySelectorAll","danmakuOpacityBar","danmakuOpacityBarWrap","danmakuOpacityBarWrapWrap","danmakuOpacityBox","commentInput","commentButton","commentSettingBox","commentSettingButton","commentSettingFill","commentSendButton","commentSendFill","commentColorSettingBox","browserFullButton","webFullButton","menu","qualityList","camareButton","subtitleButton","subtitleButtonInner","barPreview","barWrap","logo","tplDanmakumargin","margin","tplQualityList","tplContextmenuList","result","enableSubtitle","SvgSource","iconColor","Danmaku","danTunnel","dan","showing","_opacity","_measure","apiurl","endpoints","slice","_readAllEndpoints","results","apply","sort","a","b","requestAnimationFrame","frame","newAPI","clear","readCount","err","typeMap","map","item","author","player","htmlEncode","border","draw","items","itemHeight","danWidth","danHeight","offsetHeight","itemY","danItemRight","ele","eleWidth","width","eleRight","getBoundingClientRect","danSpeed","getTunnel","tmp","_ret","v","j","danRight","toString","docFragment","createDocumentFragment","createElement","itemWidth","tunnel","transform","appendChild","context","measureStyle","getComputedStyle","getContext","font","getPropertyValue","measureText","str","replace","boolean","Events","playerEvents","info","FullScreen","lastScrollPosition","fullscreenchange","isFullScreen","contains","anotherType","anotherTypeOn","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","webkitEnterFullscreen","cancel","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","request","User","storageName","Subtitle","textTracks","track","oncuechange","cue","activeCues","getCueAsHTML","show","Bar","elements","played","loaded","direction","Time","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","types","lastPlayPos","currentPlayPos","bufferingDetected","loadingChecker","setInterval","enableloadingChecker","progressChecker","enableprogressChecker","_type","_type2","clearInterval","Bezel","icon","_thumbnails","_thumbnails2","Controller","autoHideTimer","setAutoHide","initPlayButton","initThumbnails","initPlayedBar","initFullButton","initVolumeButton","initQualityButton","initScreenshotButton","initSubtitleButton","toggle","thumbnails","barWidth","videoHeight","videoWidth","thumbMove","e","clientX","clientWidth","thumbUp","removeEventListener","px","tx","move","innerText","_this6","volumeMove","event","volumeUp","_this7","switchQuality","_this8","canvas","drawImage","dataURL","toDataURL","href","download","_this9","_this10","disableAutoHide","isShow","Thumbnails","backgroundImage","position","backgroundPosition","ceil","checked","unlimit","danmakuMove","danmakuUp","Comment","toggleSetting","fill","hideSetting","keyCode","showSetting","blur","HotKey","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","ContextMenu","clientRect","clientY","x","y"],"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})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = {\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 getScrollPosition: function getScrollPosition() {\n return {\n left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n };\n },\n setScrollPosition: function setScrollPosition(_ref) {\n var _ref$left = _ref.left, left = _ref$left === undefined ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === undefined ? 0 : _ref$top;\n if (this.isFirefox) {\n document.documentElement.scrollLeft = left;\n document.documentElement.scrollTop = top;\n } else {\n window.scrollTo(left, top);\n }\n },\n isMobile: /mobile/i.test(window.navigator.userAgent),\n isFirefox: /firefox/i.test(window.navigator.userAgent),\n isChrome: /chrome/i.test(window.navigator.userAgent),\n storage: {\n set: function set(key, value) {\n localStorage.setItem(key, value);\n },\n get: function get(key) {\n return localStorage.getItem(key);\n }\n },\n cumulativeOffset: function cumulativeOffset(element) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n return {\n top: top,\n left: left\n };\n }\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\n__webpack_require__(2);\nvar _player = __webpack_require__(3);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c DPlayer ' + \"1.20.0\" + ' ' + \"6524114\" + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _options = __webpack_require__(4);\nvar _options2 = _interopRequireDefault(_options);\nvar _i18n = __webpack_require__(6);\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _template = __webpack_require__(7);\nvar _template2 = _interopRequireDefault(_template);\nvar _svg = __webpack_require__(8);\nvar _svg2 = _interopRequireDefault(_svg);\nvar _danmaku = __webpack_require__(9);\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _events = __webpack_require__(10);\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = __webpack_require__(11);\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = __webpack_require__(12);\nvar _user2 = _interopRequireDefault(_user);\nvar _subtitle = __webpack_require__(13);\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _bar = __webpack_require__(14);\nvar _bar2 = _interopRequireDefault(_bar);\nvar _time = __webpack_require__(15);\nvar _time2 = _interopRequireDefault(_time);\nvar _bezel = __webpack_require__(16);\nvar _bezel2 = _interopRequireDefault(_bezel);\nvar _controller = __webpack_require__(17);\nvar _controller2 = _interopRequireDefault(_controller);\nvar _setting = __webpack_require__(19);\nvar _setting2 = _interopRequireDefault(_setting);\nvar _comment = __webpack_require__(20);\nvar _comment2 = _interopRequireDefault(_comment);\nvar _hotkey = __webpack_require__(21);\nvar _hotkey2 = _interopRequireDefault(_hotkey);\nvar _contextmenu = __webpack_require__(22);\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar index = 0;\nvar instances = [];\nvar DPlayer = function () {\n function DPlayer(options) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.options = (0, _options2.default)(options);\n if (this.options.video.quality) {\n this.qualityIndex = this.options.video.defaultQuality;\n this.quality = this.options.video.quality[this.options.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.options.lang).tran;\n this.icons = new _svg2.default(this.options);\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.container = this.options.container;\n this.container.classList.add('dplayer');\n if (!this.options.danmaku) {\n this.container.classList.add('dplayer-no-danmaku');\n }\n if (this.options.live) {\n this.container.classList.add('dplayer-live');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('dplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 500;\n if (this.arrow) {\n this.container.classList.add('dplayer-arrow');\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n index: index,\n tran: this.tran,\n icons: this.icons\n });\n this.video = this.template.video;\n this.bar = new _bar2.default(this.template);\n this.bezel = new _bezel2.default(this.template.bezel);\n this.fullScreen = new _fullscreen2.default(this);\n this.controller = new _controller2.default(this);\n if (this.options.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.template.danmaku,\n opacity: this.user.get('opacity'),\n callback: function callback() {\n setTimeout(function () {\n _this.template.danmakuLoading.style.display = 'none';\n if (_this.options.autoplay) {\n _this.play();\n } else if (_utils2.default.isMobile) {\n _this.pause();\n }\n }, 0);\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.options.apiBackend,\n borderColor: this.options.theme,\n height: this.arrow ? 24 : 30,\n time: function time() {\n return _this.video.currentTime;\n },\n unlimited: this.user.get('unlimited'),\n api: {\n id: this.options.danmaku.id,\n address: this.options.danmaku.api,\n token: this.options.danmaku.token,\n maximum: this.options.danmaku.maximum,\n addition: this.options.danmaku.addition,\n user: this.options.danmaku.user\n },\n events: this.events\n });\n this.comment = new _comment2.default(this);\n }\n this.setting = new _setting2.default(this);\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.container.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n this.paused = true;\n this.time = new _time2.default(this);\n this.hotkey = new _hotkey2.default(this);\n this.contextmenu = new _contextmenu2.default(this);\n this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type);\n if (!this.danmaku && this.options.autoplay) {\n this.play();\n }\n index++;\n instances.push(this);\n }\n _createClass(DPlayer, [\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.video.duration) {\n time = Math.min(time, this.video.duration);\n }\n if (this.video.currentTime < time) {\n this.notice(this.tran('FF') + ' ' + (time - this.video.currentTime).toFixed(0) + ' ' + this.tran('s'));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW') + ' ' + (this.video.currentTime - time).toFixed(0) + ' ' + this.tran('s'));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.bar.set('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this2 = this;\n this.paused = false;\n if (this.video.paused) {\n this.bezel.switch(this.icons.get('play'));\n }\n this.template.playButton.innerHTML = this.icons.get('pause');\n var playedPromise = this.video.play();\n if (playedPromise) {\n playedPromise.catch(function () {\n _this2.pause();\n }).then(function () {\n });\n }\n this.time.enable();\n this.container.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n if (this.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (this !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.container.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.switch(this.icons.get('pause'));\n }\n this.ended = false;\n this.template.playButton.innerHTML = this.icons.get('play');\n this.video.pause();\n this.time.disable();\n this.container.classList.remove('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-up');\n } else if (this.volume() > 0) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-down');\n } else {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-off');\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage, nonotice) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.bar.set('volume', percentage, 'width');\n var formatPercentage = (percentage * 100).toFixed(0) + '%';\n this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n if (!nonotice) {\n this.notice(this.tran('Volume') + ' ' + (percentage * 100).toFixed(0) + '%');\n }\n this.video.volume = percentage;\n if (this.video.muted) {\n this.video.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.video.volume;\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'switchVideo',\n value: function switchVideo(video, danmakuAPI) {\n this.pause();\n this.video.poster = video.pic ? video.pic : '';\n this.video.src = video.url;\n this.initMSE(this.video, video.type || 'auto');\n if (danmakuAPI) {\n this.template.danmakuLoading.style.display = 'block';\n this.bar.set('played', 0, 'width');\n this.bar.set('loaded', 0, 'width');\n this.template.ptime.innerHTML = '00:00';\n this.template.danmaku.innerHTML = '';\n if (this.danmaku) {\n this.danmaku.reload({\n id: danmakuAPI.id,\n address: danmakuAPI.api,\n token: danmakuAPI.token,\n maximum: danmakuAPI.maximum,\n addition: danmakuAPI.addition,\n user: danmakuAPI.user\n });\n }\n }\n }\n },\n {\n key: 'initMSE',\n value: function initMSE(video, type) {\n 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 if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n this.type = 'dash';\n } else {\n this.type = 'normal';\n }\n }\n if (this.type === 'hls' && Hls && Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n }\n if (this.type === 'flv' && flvjs && flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n }\n if (this.type === 'dash' && dashjs) {\n dashjs.MediaPlayer().create().initialize(video, video.src, false);\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this3 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this3.template.dtime.innerHTML = _utils2.default.secondToTime(video.duration);\n }\n });\n this.on('progress', function () {\n var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n _this3.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this3.tran && _this3.notice && _this3.notice(_this3.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this3.bar.set('played', 1, 'width');\n if (!_this3.setting.loop) {\n _this3.ended = true;\n _this3.pause();\n } else {\n _this3.seek(0);\n video.play();\n }\n if (_this3.danmaku) {\n _this3.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this3.paused) {\n _this3.play();\n }\n });\n this.on('pause', function () {\n if (!_this3.paused) {\n _this3.pause();\n }\n });\n var _loop = function _loop(i) {\n video.addEventListener(_this3.events.videoEvents[i], function () {\n _this3.events.trigger(_this3.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop(i);\n }\n this.volume(this.user.get('volume'), true, true);\n if (this.options.subtitle) {\n this.subtitle = new _subtitle2.default(this.template.subtitle, this.video, this.options.subtitle, this.events);\n if (!this.user.get('subtitle')) {\n this.subtitle.hide();\n }\n }\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this4 = this;\n if (this.qualityIndex === index || this.switchingQuality) {\n return;\n } else {\n this.qualityIndex = index;\n }\n this.switchingQuality = true;\n this.quality = this.options.video.quality[index];\n this.template.qualityButton.innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = this.template.tplVideo(false, null, this.options.screenshot, 'auto', this.quality.url, this.options.subtitle);\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.options.video.type);\n this.seek(this.prevVideo.currentTime);\n this.notice(this.tran('Switching to') + ' ' + this.quality.name + ' ' + this.tran('quality'), -1);\n this.events.trigger('quality_start', this.quality);\n this.on('canplay', function () {\n if (_this4.prevVideo) {\n if (_this4.video.currentTime !== _this4.prevVideo.currentTime) {\n _this4.seek(_this4.prevVideo.currentTime);\n return;\n }\n _this4.template.videoWrap.removeChild(_this4.prevVideo);\n _this4.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this4.video.play();\n }\n _this4.prevVideo = null;\n _this4.notice(_this4.tran('Switched to') + ' ' + _this4.quality.name + ' ' + _this4.tran('quality'));\n _this4.switchingQuality = false;\n _this4.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'notice',\n value: function notice(text) {\n var _this5 = this;\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n this.template.notice.innerHTML = text;\n this.template.notice.style.opacity = opacity;\n if (this.noticeTime) {\n clearTimeout(this.noticeTime);\n }\n this.events.trigger('notice_show', text);\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n },\n {\n key: 'resize',\n value: function resize() {\n if (this.danmaku) {\n this.danmaku.resize();\n }\n this.events.trigger('resize');\n }\n },\n {\n key: 'speed',\n value: function speed(rate) {\n this.video.playbackRate = rate;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.controller.destroy();\n this.time.destroy();\n this.video.src = '';\n this.container.innerHTML = '';\n this.events.trigger('destroy');\n for (var key in this) {\n if (this.hasOwnProperty(key) && key !== 'paused') {\n delete this[key];\n }\n }\n }\n }\n ]);\n return DPlayer;\n}();\nexports.default = DPlayer;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _api = __webpack_require__(5);\nvar _api2 = _interopRequireDefault(_api);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('dplayer')[0],\n live: false,\n autoplay: false,\n theme: '#b7daff',\n loop: false,\n lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n screenshot: false,\n hotkey: true,\n preload: 'auto',\n volume: 0.7,\n apiBackend: _api2.default,\n video: {},\n icons: {\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.056z'\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 pallette: [\n '0 0 32 32',\n 'M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z'\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 subtitle: [\n '0 0 32 32',\n 'M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z'\n ]\n },\n iconsColor: '#ffffff',\n contextmenu: [],\n mutex: true\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (options.video) {\n !options.video.type && (options.video.type = 'auto');\n }\n if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n }\n if (options.subtitle) {\n !options.subtitle.type && (options.subtitle.type = 'webvtt');\n !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n !options.subtitle.color && (options.subtitle.color = '#fff');\n }\n if (options.video.quality) {\n options.video.url = [options.video.quality[options.video.defaultQuality].url];\n }\n if (options.lang) {\n options.lang = options.lang.toLowerCase();\n }\n if (options.icons) {\n options.icons = Object.assign({}, defaultOption.icons, options.icons);\n }\n options.contextmenu = options.contextmenu.concat([\n {\n text: 'About author',\n link: 'https://diygod.me'\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.20.0\" + ' ' + \"6524114\",\n link: 'https://github.com/MoePlayer/DPlayer/releases'\n }\n ]);\n return options;\n};\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar SendXMLHttpRequest = function SendXMLHttpRequest(url, data, success, error, fail) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n var response = JSON.parse(xhr.responseText);\n if (response.code !== 0) {\n return error(xhr, response);\n }\n return success(xhr, response);\n }\n fail(xhr);\n }\n };\n xhr.open(data !== null ? 'POST' : 'GET', url, true);\n xhr.send(data !== null ? JSON.stringify(data) : null);\n};\nexports.default = {\n send: function send(endpoint, danmakuData, callback) {\n SendXMLHttpRequest(endpoint, danmakuData, function (xhr, response) {\n console.log('Post danmaku: ', response);\n if (callback) {\n callback();\n }\n }, function (xhr, response) {\n alert(response.msg);\n }, function (xhr) {\n console.log('Request was unsuccessful: ' + xhr.status);\n });\n },\n read: function read(endpoint, callback) {\n SendXMLHttpRequest(endpoint, null, function (xhr, response) {\n callback(null, response.danmaku);\n }, function (xhr, response) {\n callback({\n status: xhr.status,\n response: response\n });\n }, function (xhr) {\n callback({\n status: xhr.status,\n response: null\n });\n });\n }\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction i18n(lang) {\n var _this = this;\n this.lang = lang;\n this.tran = function (text) {\n if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n return tranTxt[_this.lang][text];\n } else {\n return text;\n }\n };\n}\nvar tranTxt = {\n 'zh-cn': {\n 'Danmaku is loading': '弹幕加载中',\n 'Top': '顶部',\n 'Bottom': '底部',\n 'Rolling': '滚动',\n 'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n 'About author': '关于作者',\n 'DPlayer feedback': '播放器意见反馈',\n 'About DPlayer': '关于 DPlayer 播放器',\n 'Loop': '洗脑循环',\n 'Speed': '速度',\n 'Opacity for danmaku': '弹幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n 'Set danmaku color': '设置弹幕颜色',\n 'Set danmaku type': '设置弹幕类型',\n 'Show danmaku': '显示弹幕',\n 'This video fails to load': '视频加载失败',\n 'Switching to': '正在切换至',\n 'Switched to': '已经切换至',\n 'quality': '画质',\n 'FF': '快进',\n 'REW': '快退',\n 'Unlimited danmaku': '海量弹幕',\n 'Send danmaku': '发送弹幕',\n 'Setting': '设置',\n 'Full screen': '全屏',\n 'Web full screen': '页面全屏',\n 'Send': '发送',\n 'Screenshot': '截图',\n 's': '秒',\n 'Show subtitle': '显示字幕',\n 'Hide subtitle': '隐藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n },\n 'zh-tw': {\n 'Danmaku is loading': '彈幕加載中',\n 'Top': '頂部',\n 'Bottom': '底部',\n 'Rolling': '滾動',\n 'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n 'About author': '關於作者',\n 'DPlayer feedback': '播放器意見反饋',\n 'About DPlayer': '關於 DPlayer 播放器',\n 'Loop': '循環播放',\n 'Speed': '速度',\n 'Opacity for danmaku': '彈幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '請輸入彈幕内容啊\\uFF01',\n 'Set danmaku color': '設置彈幕顏色',\n 'Set danmaku type': '設置彈幕類型',\n 'Show danmaku': '顯示彈幕',\n 'This video fails to load': '視頻加載失敗',\n 'Switching to': '正在切換至',\n 'Switched to': '已經切換至',\n 'quality': '畫質',\n 'FF': '快進',\n 'REW': '快退',\n 'Unlimited danmaku': '海量彈幕',\n 'Send danmaku': '發送彈幕',\n 'Setting': '設置',\n 'Full screen': '全屏',\n 'Web full screen': '頁面全屏',\n 'Send': '發送',\n 'Screenshot': '截圖',\n 's': '秒',\n 'Show subtitle': '顯示字幕',\n 'Hide subtitle': '隱藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n }\n};\nexports.default = i18n;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.index = options.index;\n this.tran = options.tran;\n this.icons = options.icons;\n this.init();\n }\n _createClass(Template, [\n {\n key: 'init',\n value: function init() {\n this.container.innerHTML = this.tpl(this.options, this.index, this.tran, this.icons);\n this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n this.volumeButton = this.container.querySelector('.dplayer-volume');\n this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n this.playedBar = this.container.querySelector('.dplayer-played');\n this.loadedBar = this.container.querySelector('.dplayer-loaded');\n this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n this.danmaku = this.container.querySelector('.dplayer-danmaku');\n this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n this.video = this.container.querySelector('.dplayer-video-current');\n this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n this.playButton = this.container.querySelector('.dplayer-play-icon');\n this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n this.ptime = this.container.querySelector('.dplayer-ptime');\n this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n this.settingBox = this.container.querySelector('.dplayer-setting-box');\n this.mask = this.container.querySelector('.dplayer-mask');\n this.loop = this.container.querySelector('.dplayer-setting-loop');\n this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n this.speed = this.container.querySelector('.dplayer-setting-speed');\n this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n this.dtime = this.container.querySelector('.dplayer-dtime');\n this.controller = this.container.querySelector('.dplayer-controller');\n this.commentInput = this.container.querySelector('.dplayer-comment-input');\n this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon .dplayer-fill');\n this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n this.commentSendFill = this.container.querySelector('.dplayer-send-icon .dplayer-fill');\n this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n this.menu = this.container.querySelector('.dplayer-menu');\n this.qualityList = this.container.querySelector('.dplayer-quality-list');\n this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n this.subtitle = this.container.querySelector('.dplayer-subtitle');\n this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.notice = this.container.querySelector('.dplayer-notice');\n }\n },\n {\n key: 'tpl',\n value: function tpl(options, index, tran, icons) {\n return '
' + this.tplVideo(true, options.video.pic, options.screenshot, options.preload, options.video.url, options.subtitle) + '' + (options.logo ? '
' : '') + '
' + (options.danmaku ? '' + tran('Danmaku is loading') + '' : '') + '
' + tran('Set danmaku color') + '
' + tran('Set danmaku type') + '
0:00 / 0:00' + (options.live ? '' + tran('Live') + '' : '') + '
' + (options.video.quality ? '
' + this.tplQualityList(options.video.quality) + '
' : '') + '' + (options.screenshot ? '' + icons.get('camera') + '' : '') + '
' + (options.subtitle ? '
' : '') + '
' + tran('Speed') + '
' + icons.get('right') + '
' + tran('Loop') + '
' + tran('Show danmaku') + '
' + tran('Unlimited danmaku') + '
' + tran('Opacity for danmaku') + '
0.5
0.75
' + tran('Normal') + '
1.25
1.5
2
00:00
' + this.tplContextmenuList(options.contextmenu, tran) + '
';\n }\n },\n {\n key: 'tplDanmakumargin',\n value: function tplDanmakumargin(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 },\n {\n key: 'tplContextmenuList',\n value: function tplContextmenuList(contextmenu, tran) {\n var result = '
';\n for (var i = 0; i < contextmenu.length; i++) {\n result += '';\n }\n result += '
';\n return result;\n }\n },\n {\n key: 'tplQualityList',\n value: function tplQualityList(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 },\n {\n key: 'tplVideo',\n value: function tplVideo(current, pic, screenshot, preload, url, subtitle) {\n var enableSubtitle = subtitle && subtitle.type === 'webvtt';\n return '';\n }\n }\n ]);\n return Template;\n}();\nexports.default = Template;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar SvgSource = function () {\n function SvgSource(options) {\n _classCallCheck(this, SvgSource);\n this.icons = options.icons;\n this.iconColor = options.iconsColor;\n }\n _createClass(SvgSource, [{\n key: 'get',\n value: function get(type) {\n return '';\n }\n }]);\n return SvgSource;\n}();\nexports.default = SvgSource;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Danmaku = function () {\n function Danmaku(options) {\n _classCallCheck(this, Danmaku);\n this.options = options;\n this.container = this.options.container;\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.dan = [];\n this.showing = true;\n this._opacity = this.options.opacity;\n this.events = this.options.events;\n this.unlimited = this.options.unlimited;\n this._measure('');\n this.load();\n }\n _createClass(Danmaku, [\n {\n key: 'load',\n value: function load() {\n var _this = this;\n var apiurl = void 0;\n if (this.options.api.maximum) {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id;\n }\n var endpoints = (this.options.api.addition || []).slice(0);\n endpoints.push(apiurl);\n this.events && this.events.trigger('danmaku_load_start', endpoints);\n this._readAllEndpoints(endpoints, function (results) {\n _this.dan = [].concat.apply([], results).sort(function (a, b) {\n return a.time - b.time;\n });\n window.requestAnimationFrame(function () {\n _this.frame();\n });\n _this.options.callback();\n _this.events && _this.events.trigger('danmaku_load_end');\n });\n }\n },\n {\n key: 'reload',\n value: function reload(newAPI) {\n this.options.api = newAPI;\n this.dan = [];\n this.clear();\n this.load();\n }\n },\n {\n key: '_readAllEndpoints',\n value: function _readAllEndpoints(endpoints, callback) {\n var _this2 = this;\n var results = [];\n var readCount = 0;\n var cbk = function cbk(i) {\n return function (err, data) {\n ++readCount;\n if (err) {\n if (err.response) {\n _this2.options.error(err.response.msg);\n } else {\n _this2.options.error('Request was unsuccessful: ' + err.status);\n }\n results[i] = [];\n } else {\n var typeMap = [\n 'right',\n 'top',\n 'bottom'\n ];\n if (data) {\n results[i] = data.map(function (item) {\n return {\n time: item[0],\n type: typeMap[item[1]],\n color: item[2],\n author: item[3],\n text: item[4]\n };\n });\n } else {\n results[i] = [];\n }\n }\n if (readCount === endpoints.length) {\n return callback(results);\n }\n };\n };\n for (var i = 0; i < endpoints.length; ++i) {\n this.options.apiBackend.read(endpoints[i], cbk(i));\n }\n }\n },\n {\n key: 'send',\n value: function send(dan, callback) {\n var danmakuData = {\n token: this.options.api.token,\n player: this.options.api.id,\n author: this.options.api.user,\n time: this.options.time(),\n text: dan.text,\n color: dan.color,\n type: dan.type\n };\n this.options.apiBackend.send(this.options.api.address + 'v2/', danmakuData, callback);\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n var danmaku = {\n text: this.htmlEncode(danmakuData.text),\n color: danmakuData.color,\n type: danmakuData.type,\n border: '2px solid ' + this.options.borderColor\n };\n this.draw(danmaku);\n this.events && this.events.trigger('danmaku_send', danmakuData);\n }\n },\n {\n key: 'frame',\n value: function frame() {\n var _this3 = this;\n if (this.dan.length && !this.paused && this.showing) {\n var item = this.dan[this.danIndex];\n var dan = [];\n while (item && this.options.time() > parseFloat(item.time)) {\n dan.push(item);\n item = this.dan[++this.danIndex];\n }\n this.draw(dan);\n }\n window.requestAnimationFrame(function () {\n _this3.frame();\n });\n }\n },\n {\n key: 'opacity',\n value: function opacity(percentage) {\n if (percentage !== undefined) {\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this._opacity = percentage;\n this.events && this.events.trigger('danmaku_opacity', this._opacity);\n }\n return this._opacity;\n }\n },\n {\n key: 'draw',\n value: function draw(dan) {\n var _this4 = this;\n if (this.showing) {\n var itemHeight = this.options.height;\n var danWidth = this.container.offsetWidth;\n var danHeight = this.container.offsetHeight;\n var itemY = parseInt(danHeight / itemHeight);\n var danItemRight = function danItemRight(ele) {\n var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n var eleRight = ele.getBoundingClientRect().right || _this4.container.getBoundingClientRect().right + eleWidth;\n return _this4.container.getBoundingClientRect().right - eleRight;\n };\n var danSpeed = function danSpeed(width) {\n return (danWidth + width) / 5;\n };\n var getTunnel = function getTunnel(ele, type, width) {\n var tmp = danWidth / danSpeed(width);\n var _loop = function _loop(i) {\n var item = _this4.danTunnel[type][i + ''];\n if (item && item.length) {\n if (type !== 'right') {\n return 'continue';\n }\n for (var j = 0; j < item.length; j++) {\n var danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n _this4.danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n }\n } else {\n _this4.danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n };\n for (var i = 0; _this4.unlimited || i < itemY; i++) {\n var _ret = _loop(i);\n switch (_ret) {\n case 'continue':\n continue;\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object')\n return _ret.v;\n }\n }\n return -1;\n };\n if (Object.prototype.toString.call(dan) !== '[object Array]') {\n dan = [dan];\n }\n var docFragment = document.createDocumentFragment();\n var _loop2 = function _loop2(i) {\n if (!dan[i].type) {\n dan[i].type = 'right';\n }\n if (!dan[i].color) {\n dan[i].color = '#fff';\n }\n var item = document.createElement('div');\n item.classList.add('dplayer-danmaku-item');\n item.classList.add('dplayer-danmaku-' + dan[i].type);\n if (dan[i].border) {\n item.innerHTML = '' + dan[i].text + '';\n } else {\n item.innerHTML = dan[i].text;\n }\n item.style.opacity = _this4._opacity;\n item.style.color = dan[i].color;\n item.addEventListener('animationend', function () {\n _this4.container.removeChild(item);\n });\n var itemWidth = _this4._measure(dan[i].text);\n var tunnel = void 0;\n switch (dan[i].type) {\n case 'right':\n tunnel = getTunnel(item, dan[i].type, itemWidth);\n if (tunnel >= 0) {\n item.style.width = itemWidth + 1 + 'px';\n item.style.top = itemHeight * tunnel + 'px';\n item.style.transform = 'translateX(-' + danWidth + 'px)';\n }\n break;\n case 'top':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.top = itemHeight * tunnel + 'px';\n }\n break;\n case 'bottom':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.bottom = itemHeight * tunnel + 'px';\n }\n break;\n default:\n console.error('Can\\'t handled danmaku type: ' + dan[i].type);\n }\n if (tunnel >= 0) {\n item.classList.add('dplayer-danmaku-move');\n docFragment.appendChild(item);\n }\n };\n for (var i = 0; i < dan.length; i++) {\n _loop2(i);\n }\n this.container.appendChild(docFragment);\n return docFragment;\n }\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n }\n },\n {\n key: '_measure',\n value: function _measure(text) {\n if (!this.context) {\n var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n this.context = document.createElement('canvas').getContext('2d');\n this.context.font = measureStyle.getPropertyValue('font');\n }\n return this.context.measureText(text).width;\n }\n },\n {\n key: 'seek',\n value: function seek() {\n this.clear();\n for (var i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.options.time()) {\n this.danIndex = i;\n break;\n }\n this.danIndex = this.dan.length;\n }\n }\n },\n {\n key: 'clear',\n value: function clear() {\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.options.container.innerHTML = '';\n this.events && this.events.trigger('danmaku_clear');\n }\n },\n {\n key: 'htmlEncode',\n value: function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n },\n {\n key: 'resize',\n value: function resize() {\n var danWidth = this.container.offsetWidth;\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n }\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.showing = false;\n this.pause();\n this.clear();\n this.events && this.events.trigger('danmaku_hide');\n }\n },\n {\n key: 'show',\n value: function show() {\n this.seek();\n this.showing = true;\n this.play();\n this.events && this.events.trigger('danmaku_show');\n }\n },\n {\n key: 'unlimit',\n value: function unlimit(boolean) {\n this.unlimited = boolean;\n }\n }\n ]);\n return Danmaku;\n}();\nexports.default = Danmaku;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Events = function () {\n function Events() {\n _classCallCheck(this, Events);\n this.events = {};\n this.videoEvents = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'mozaudioavailable',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ];\n this.playerEvents = [\n 'screenshot',\n 'thumbnails_show',\n 'thumbnails_hide',\n 'danmaku_show',\n 'danmaku_hide',\n 'danmaku_clear',\n 'danmaku_loaded',\n 'danmaku_send',\n 'danmaku_opacity',\n 'contextmenu_show',\n 'contextmenu_hide',\n 'notice_show',\n 'notice_hide',\n 'quality_start',\n 'quality_end',\n 'destroy',\n 'resize',\n 'fullscreen',\n 'fullscreen_cancel',\n 'webfullscreen',\n 'webfullscreen_cancel',\n 'subtitle_show',\n 'subtitle_hide',\n 'subtitle_change'\n ];\n }\n _createClass(Events, [\n {\n key: 'on',\n value: function on(name, callback) {\n if (this.type(name) && typeof callback === 'function') {\n if (!this.events[name]) {\n this.events[name] = [];\n }\n this.events[name].push(callback);\n }\n }\n },\n {\n key: 'trigger',\n value: function trigger(name, info) {\n if (this.events[name] && this.events[name].length) {\n for (var i = 0; i < this.events[name].length; i++) {\n this.events[name][i](info);\n }\n }\n }\n },\n {\n key: 'type',\n value: function type(name) {\n if (this.playerEvents.indexOf(name) !== -1) {\n return 'player';\n } else if (this.videoEvents.indexOf(name) !== -1) {\n return 'video';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar FullScreen = function () {\n function FullScreen(player) {\n var _this = this;\n _classCallCheck(this, FullScreen);\n this.player = player;\n this.player.events.on('webfullscreen', function () {\n _this.player.resize();\n });\n this.player.events.on('webfullscreen_cancel', function () {\n _this.player.resize();\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n }\n _createClass(FullScreen, [\n {\n key: 'isFullScreen',\n value: function isFullScreen() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n case 'web':\n return this.player.container.classList.contains('dplayer-fulled');\n }\n }\n },\n {\n key: 'request',\n value: function request() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n var anotherType = type === 'browser' ? 'web' : 'browser';\n var anotherTypeOn = this.isFullScreen(anotherType);\n if (!anotherTypeOn) {\n this.lastScrollPosition = _utils2.default.getScrollPosition();\n }\n switch (type) {\n case 'browser':\n if (this.player.container.requestFullscreen) {\n this.player.container.requestFullscreen();\n } else if (this.player.container.mozRequestFullScreen) {\n this.player.container.mozRequestFullScreen();\n } else if (this.player.container.webkitRequestFullscreen) {\n this.player.container.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.container.classList.add('dplayer-fulled');\n document.body.classList.add('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen');\n break;\n }\n if (anotherTypeOn) {\n this.cancel(anotherType);\n }\n }\n },\n {\n key: 'cancel',\n value: function cancel() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n break;\n case 'web':\n this.player.container.classList.remove('dplayer-fulled');\n document.body.classList.remove('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen_cancel');\n break;\n }\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n if (this.isFullScreen(type)) {\n this.cancel(type);\n } else {\n this.request(type);\n }\n }\n }\n ]);\n return FullScreen;\n}();\nexports.default = FullScreen;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar User = function () {\n function User(player) {\n _classCallCheck(this, User);\n this.storageName = {\n opacity: 'dplayer-danmaku-opacity',\n volume: 'dplayer-volume',\n unlimited: 'dplayer-danmaku-unlimited',\n danmaku: 'dplayer-danmaku-show',\n subtitle: 'dplayer-subtitle-show'\n };\n this.default = {\n opacity: 0.7,\n volume: player.options.volume || 0.7,\n unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 1,\n subtitle: 1\n };\n this.data = {};\n this.init();\n }\n _createClass(User, [\n {\n key: 'init',\n value: function init() {\n for (var item in this.storageName) {\n var name = this.storageName[item];\n this.data[item] = parseFloat(_utils2.default.storage.get(name) || this.default[item]);\n }\n }\n },\n {\n key: 'get',\n value: function get(key) {\n return this.data[key];\n }\n },\n {\n key: 'set',\n value: function set(key, value) {\n this.data[key] = value;\n _utils2.default.storage.set(this.storageName[key], value);\n }\n }\n ]);\n return User;\n}();\nexports.default = User;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Subtitle = function () {\n function Subtitle(container, video, options, events) {\n _classCallCheck(this, Subtitle);\n this.container = container;\n this.video = video;\n this.options = options;\n this.events = events;\n this.init();\n }\n _createClass(Subtitle, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.container.style.fontSize = this.options.fontSize;\n this.container.style.bottom = this.options.bottom;\n this.container.style.color = this.options.color;\n if (this.video.textTracks && this.video.textTracks[0]) {\n var track = this.video.textTracks[0];\n track.oncuechange = function () {\n var cue = track.activeCues[0];\n if (cue) {\n _this.container.innerHTML = '';\n var p = document.createElement('p');\n p.appendChild(cue.getCueAsHTML());\n _this.container.appendChild(p);\n } else {\n _this.container.innerHTML = '';\n }\n _this.events.trigger('subtitle_change');\n };\n }\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.classList.remove('dplayer-subtitle-hide');\n this.events.trigger('subtitle_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.classList.add('dplayer-subtitle-hide');\n this.events.trigger('subtitle_hide');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.container.classList.contains('dplayer-subtitle-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n ]);\n return Subtitle;\n}();\nexports.default = Subtitle;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volumeBar;\n this.elements.played = template.playedBar;\n this.elements.loaded = template.loadedBar;\n this.elements.danmaku = template.danmakuOpacityBar;\n }\n _createClass(Bar, [\n {\n key: 'set',\n value: function set(type, percentage, direction) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.elements[type].style[direction] = percentage * 100 + '%';\n }\n },\n {\n key: 'get',\n value: function get(type) {\n return parseFloat(this.elements[type].style.width) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Time = function () {\n function Time(player) {\n _classCallCheck(this, Time);\n this.player = player;\n window.requestAnimationFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n this.types = [\n 'loading',\n 'progress'\n ];\n this.init();\n }\n _createClass(Time, [\n {\n key: 'init',\n value: function init() {\n for (var i = 0; i < this.types.length; i++) {\n var type = this.types[i];\n this['init' + type + 'Checker']();\n }\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this.enableloadingChecker) {\n currentPlayPos = _this.player.video.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'initprogressChecker',\n value: function initprogressChecker() {\n var _this2 = this;\n this.progressChecker = setInterval(function () {\n if (_this2.enableprogressChecker) {\n _this2.player.bar.set('played', _this2.player.video.currentTime / _this2.player.video.duration, 'width');\n var currentTime = _utils2.default.secondToTime(_this2.player.video.currentTime);\n if (_this2.player.template.ptime.innerHTML !== currentTime) {\n _this2.player.template.ptime.innerHTML = _utils2.default.secondToTime(_this2.player.video.currentTime);\n }\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = true;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type = this.types[i];\n this['enable' + _type + 'Checker'] = true;\n }\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = false;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type2 = this.types[i];\n this['enable' + _type2 + 'Checker'] = false;\n }\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy(type) {\n if (type) {\n clearInterval(this[type + 'Checker']);\n } else {\n for (var i = 0; i < this.types.length; i++) {\n clearInterval(this[this.types[i] + 'Checker']);\n }\n }\n }\n }\n ]);\n return Time;\n}();\nexports.default = Time;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bezel = function () {\n function Bezel(container) {\n var _this = this;\n _classCallCheck(this, Bezel);\n this.container = container;\n this.container.addEventListener('animationend', function () {\n _this.container.classList.remove('dplayer-bezel-transition');\n });\n }\n _createClass(Bezel, [{\n key: 'switch',\n value: function _switch(icon) {\n this.container.innerHTML = icon;\n this.container.classList.add('dplayer-bezel-transition');\n }\n }]);\n return Bezel;\n}();\nexports.default = Bezel;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _thumbnails = __webpack_require__(18);\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n var _this = this;\n _classCallCheck(this, Controller);\n this.player = player;\n this.autoHideTimer = 0;\n if (!_utils2.default.isMobile) {\n this.player.container.addEventListener('mousemove', function () {\n _this.setAutoHide();\n });\n this.player.container.addEventListener('click', function () {\n _this.setAutoHide();\n });\n }\n this.initPlayButton();\n this.initThumbnails();\n this.initPlayedBar();\n this.initFullButton();\n this.initVolumeButton();\n this.initQualityButton();\n this.initScreenshotButton();\n this.initSubtitleButton();\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this2 = this;\n this.player.template.playButton.addEventListener('click', function () {\n _this2.player.toggle();\n });\n if (!_utils2.default.isMobile) {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.player.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.player.toggle();\n });\n } else {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.toggle();\n });\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this3 = this;\n if (this.player.options.video.thumbnails) {\n this.thumbnails = new _thumbnails2.default({\n container: this.player.template.barPreview,\n barWidth: this.player.template.barWrap.offsetWidth,\n url: this.player.options.video.thumbnails,\n events: this.player.events\n });\n this.player.on('loadedmetadata', function () {\n _this3.thumbnails.resize(160, _this3.player.video.videoHeight / _this3.player.video.videoWidth * 160);\n });\n }\n }\n },\n {\n key: 'initPlayedBar',\n value: function initPlayedBar() {\n var _this4 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this4.player.video.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.seek(_this4.player.bar.get('played') * _this4.player.video.duration);\n _this4.player.time.enable('progress');\n };\n this.player.template.playedBarWrap.addEventListener('mousedown', function () {\n _this4.player.time.disable('progress');\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n this.player.template.playedBarWrap.addEventListener('mousemove', function (e) {\n if (_this4.player.video.duration) {\n var px = _utils2.default.cumulativeOffset(_this4.player.template.playedBarWrap).left;\n var tx = e.clientX - px;\n if (tx < 0 || tx > _this4.player.template.playedBarWrap.offsetWidth) {\n return;\n }\n var time = _this4.player.video.duration * (tx / _this4.player.template.playedBarWrap.offsetWidth);\n _this4.thumbnails && _this4.thumbnails.move(tx);\n _this4.player.template.playedBarTime.style.left = tx - 20 + 'px';\n _this4.player.template.playedBarTime.innerText = _utils2.default.secondToTime(time);\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.show();\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.player.template.playedBarTime.classList.add('hidden');\n }\n });\n }\n },\n {\n key: 'initFullButton',\n value: function initFullButton() {\n var _this5 = this;\n this.player.template.browserFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('browser');\n });\n this.player.template.webFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('web');\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this6 = this;\n var vWidth = 35;\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n _this6.player.template.volumeButton.classList.remove('dplayer-volume-active');\n };\n this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n });\n this.player.template.volumeBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n _this6.player.template.volumeButton.classList.add('dplayer-volume-active');\n });\n this.player.template.volumeIcon.addEventListener('click', function () {\n if (_this6.player.video.muted) {\n _this6.player.video.muted = false;\n _this6.player.switchVolumeIcon();\n _this6.player.bar.set('volume', _this6.player.volume(), 'width');\n } else {\n _this6.player.video.muted = true;\n _this6.player.template.volumeIcon.innerHTML = _this6.player.icons.get('volume-off');\n _this6.player.bar.set('volume', 0, 'width');\n }\n });\n }\n },\n {\n key: 'initQualityButton',\n value: function initQualityButton() {\n var _this7 = this;\n if (this.player.options.video.quality) {\n this.player.template.qualityList.addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this7.player.switchQuality(e.target.dataset.index);\n }\n });\n }\n }\n },\n {\n key: 'initScreenshotButton',\n value: function initScreenshotButton() {\n var _this8 = this;\n if (this.player.options.screenshot) {\n this.player.template.camareButton.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this8.player.video.videoWidth;\n canvas.height = _this8.player.video.videoHeight;\n canvas.getContext('2d').drawImage(_this8.player.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n _this8.player.template.camareButton.href = dataURL;\n _this8.player.template.camareButton.download = 'DPlayer.png';\n _this8.player.events.trigger('screenshot', dataURL);\n });\n }\n }\n },\n {\n key: 'initSubtitleButton',\n value: function initSubtitleButton() {\n var _this9 = this;\n if (this.player.options.subtitle) {\n this.player.events.on('subtitle_show', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Hide subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '';\n _this9.player.user.set('subtitle', 1);\n });\n this.player.events.on('subtitle_hide', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Show subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '0.4';\n _this9.player.user.set('subtitle', 0);\n });\n this.player.template.subtitleButton.addEventListener('click', function () {\n _this9.player.subtitle.toggle();\n });\n }\n }\n },\n {\n key: 'setAutoHide',\n value: function setAutoHide() {\n var _this10 = this;\n this.show();\n clearTimeout(this.autoHideTimer);\n this.autoHideTimer = setTimeout(function () {\n if (_this10.player.video.played.length && !_this10.disableAutoHide) {\n _this10.hide();\n }\n }, 2000);\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.container.classList.remove('dplayer-hide-controller');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.container.classList.add('dplayer-hide-controller');\n this.player.setting.hide();\n this.player.comment && this.player.comment.hide();\n }\n },\n {\n key: 'isShow',\n value: function isShow() {\n return !this.player.container.classList.contains('dplayer-hide-controller');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.isShow()) {\n this.hide();\n } else {\n this.show();\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n clearTimeout(this.autoHideTimer);\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Thumbnails = function () {\n function Thumbnails(options) {\n _classCallCheck(this, Thumbnails);\n this.container = options.container;\n this.barWidth = options.barWidth;\n this.container.style.backgroundImage = 'url(\\'' + options.url + '\\')';\n this.events = options.events;\n }\n _createClass(Thumbnails, [\n {\n key: 'resize',\n value: function resize(width, height) {\n this.container.style.width = width + 'px';\n this.container.style.height = height + 'px';\n this.container.style.top = -height + 2 + 'px';\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.style.display = 'block';\n this.events && this.events.trigger('thumbnails_show');\n }\n },\n {\n key: 'move',\n value: function move(position) {\n this.container.style.backgroundPosition = '-' + (Math.ceil(position / this.barWidth * 100) - 1) * 160 + 'px 0';\n this.container.style.left = position - this.container.offsetWidth / 2 + 'px';\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.style.display = 'none';\n this.events && this.events.trigger('thumbnails_hide');\n }\n }\n ]);\n return Thumbnails;\n}();\nexports.default = Thumbnails;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Setting = function () {\n function Setting(player) {\n var _this = this;\n _classCallCheck(this, Setting);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.settingButton.addEventListener('click', function () {\n _this.show();\n });\n this.loop = this.player.options.loop;\n this.player.template.loopToggle.checked = this.loop;\n this.player.template.loop.addEventListener('click', function () {\n _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n if (_this.player.template.loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n _this.hide();\n });\n this.showDanmaku = this.player.user.get('danmaku');\n if (!this.showDanmaku) {\n this.player.danmaku && this.player.danmaku.hide();\n }\n this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n this.player.template.showDanmaku.addEventListener('click', function () {\n _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n if (_this.player.template.showDanmakuToggle.checked) {\n _this.showDanmaku = true;\n _this.player.danmaku.show();\n } else {\n _this.showDanmaku = false;\n _this.player.danmaku.hide();\n }\n _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n _this.hide();\n });\n this.unlimitDanmaku = this.player.user.get('unlimited');\n this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n this.player.template.unlimitDanmaku.addEventListener('click', function () {\n _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n if (_this.player.template.unlimitDanmakuToggle.checked) {\n _this.unlimitDanmaku = true;\n _this.player.danmaku.unlimit(true);\n } else {\n _this.unlimitDanmaku = false;\n _this.player.danmaku.unlimit(false);\n }\n _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n _this.hide();\n });\n this.player.template.speed.addEventListener('click', function () {\n _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n });\n var _loop = function _loop(i) {\n _this.player.template.speedItem[i].addEventListener('click', function () {\n _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n _this.hide();\n });\n };\n for (var i = 0; i < this.player.template.speedItem.length; i++) {\n _loop(i);\n }\n if (this.player.danmaku) {\n var dWidth = 130;\n this.player.on('danmaku_opacity', function (percentage) {\n _this.player.bar.set('danmaku', percentage, 'width');\n _this.player.user.set('opacity', percentage);\n });\n this.player.danmaku.opacity(this.player.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n };\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n });\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n }\n _createClass(Setting, [\n {\n key: 'hide',\n value: function hide() {\n var _this2 = this;\n this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n }, 300);\n this.player.controller.disableAutoHide = false;\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.controller.disableAutoHide = true;\n }\n }\n ]);\n return Setting;\n}();\nexports.default = Setting;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Comment = function () {\n function Comment(player) {\n var _this = this;\n _classCallCheck(this, Comment);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.commentButton.addEventListener('click', function () {\n _this.show();\n });\n this.player.template.commentSettingButton.addEventListener('click', function () {\n _this.toggleSetting();\n });\n this.player.template.commentColorSettingBox.addEventListener('click', function () {\n var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n if (sele) {\n var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n _this.player.template.commentSettingFill.style.fill = color;\n _this.player.template.commentInput.style.color = color;\n _this.player.template.commentSendFill.style.fill = color;\n }\n });\n this.player.template.commentInput.addEventListener('click', function () {\n _this.hideSetting();\n });\n this.player.template.commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n _this.send();\n }\n });\n this.player.template.commentSendButton.addEventListener('click', function () {\n _this.send();\n });\n }\n _createClass(Comment, [\n {\n key: 'show',\n value: function show() {\n this.player.controller.disableAutoHide = true;\n this.player.template.controller.classList.add('dplayer-controller-comment');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.container.classList.add('dplayer-show-controller');\n this.player.template.commentInput.focus();\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.controller.classList.remove('dplayer-controller-comment');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.container.classList.remove('dplayer-show-controller');\n this.player.controller.disableAutoHide = false;\n this.hideSetting();\n }\n },\n {\n key: 'showSetting',\n value: function showSetting() {\n this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n },\n {\n key: 'hideSetting',\n value: function hideSetting() {\n this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n },\n {\n key: 'toggleSetting',\n value: function toggleSetting() {\n if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n this.hideSetting();\n } else {\n this.showSetting();\n }\n }\n },\n {\n key: 'send',\n value: function send() {\n var _this2 = this;\n this.player.template.commentInput.blur();\n if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n this.player.notice(this.player.tran('Please input danmaku content!'));\n return;\n }\n this.player.danmaku.send({\n text: this.player.template.commentInput.value,\n color: this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n _this2.player.template.commentInput.value = '';\n _this2.hide();\n });\n }\n }\n ]);\n return Comment;\n}();\nexports.default = Comment;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar HotKey = function HotKey(player) {\n _classCallCheck(this, HotKey);\n if (player.options.hotkey) {\n document.addEventListener('keydown', function (e) {\n if (player.focus) {\n var tag = document.activeElement.tagName.toUpperCase();\n var editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n var event = e || window.event;\n var percentage = void 0;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n case 37:\n event.preventDefault();\n player.seek(player.video.currentTime - 5);\n player.controller.setAutoHide();\n break;\n case 39:\n event.preventDefault();\n player.seek(player.video.currentTime + 5);\n player.controller.setAutoHide();\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n break;\n }\n }\n }\n });\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (player.fullScreen.isFullScreen('web')) {\n player.fullScreen.cancel('web');\n }\n break;\n }\n });\n};\nexports.default = HotKey;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar ContextMenu = function () {\n function ContextMenu(player) {\n var _this = this;\n _classCallCheck(this, ContextMenu);\n this.player = player;\n this.player.container.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n var clientRect = _this.player.container.getBoundingClientRect();\n _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n _this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n });\n }\n _createClass(ContextMenu, [\n {\n key: 'show',\n value: function show(x, y) {\n this.player.template.menu.classList.add('dplayer-menu-show');\n var clientRect = this.player.container.getBoundingClientRect();\n if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n this.player.template.menu.style.right = clientRect.width - x + 'px';\n this.player.template.menu.style.left = 'initial';\n } else {\n this.player.template.menu.style.left = x + 'px';\n this.player.template.menu.style.right = 'initial';\n }\n if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n this.player.template.menu.style.top = 'initial';\n } else {\n this.player.template.menu.style.top = y + 'px';\n this.player.template.menu.style.bottom = 'initial';\n }\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.events.trigger('contextmenu_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.template.menu.classList.remove('dplayer-menu-show');\n this.player.events.trigger('contextmenu_hide');\n }\n }\n ]);\n return ContextMenu;\n}();\nexports.default = ContextMenu;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// DPlayer.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 90f4ff0b7b08cbb9a7b5","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = {\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 getScrollPosition: function getScrollPosition() {\n return {\n left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n };\n },\n setScrollPosition: function setScrollPosition(_ref) {\n var _ref$left = _ref.left, left = _ref$left === undefined ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === undefined ? 0 : _ref$top;\n if (this.isFirefox) {\n document.documentElement.scrollLeft = left;\n document.documentElement.scrollTop = top;\n } else {\n window.scrollTo(left, top);\n }\n },\n isMobile: /mobile/i.test(window.navigator.userAgent),\n isFirefox: /firefox/i.test(window.navigator.userAgent),\n isChrome: /chrome/i.test(window.navigator.userAgent),\n storage: {\n set: function set(key, value) {\n localStorage.setItem(key, value);\n },\n get: function get(key) {\n return localStorage.getItem(key);\n }\n },\n cumulativeOffset: function cumulativeOffset(element) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n return {\n top: top,\n left: left\n };\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/utils.js\n// module id = 0\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nrequire('../css/index.scss');\nvar _player = require('./player');\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c DPlayer ' + DPLAYER_VERSION + ' ' + GIT_HASH + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/index.js\n// module id = 1\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _options = require('./options');\nvar _options2 = _interopRequireDefault(_options);\nvar _i18n = require('./i18n');\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _template = require('./template');\nvar _template2 = _interopRequireDefault(_template);\nvar _svg = require('./svg');\nvar _svg2 = _interopRequireDefault(_svg);\nvar _danmaku = require('./danmaku');\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _events = require('./events');\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = require('./fullscreen');\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = require('./user');\nvar _user2 = _interopRequireDefault(_user);\nvar _subtitle = require('./subtitle');\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _bar = require('./bar');\nvar _bar2 = _interopRequireDefault(_bar);\nvar _time = require('./time');\nvar _time2 = _interopRequireDefault(_time);\nvar _bezel = require('./bezel');\nvar _bezel2 = _interopRequireDefault(_bezel);\nvar _controller = require('./controller');\nvar _controller2 = _interopRequireDefault(_controller);\nvar _setting = require('./setting');\nvar _setting2 = _interopRequireDefault(_setting);\nvar _comment = require('./comment');\nvar _comment2 = _interopRequireDefault(_comment);\nvar _hotkey = require('./hotkey');\nvar _hotkey2 = _interopRequireDefault(_hotkey);\nvar _contextmenu = require('./contextmenu');\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar index = 0;\nvar instances = [];\nvar DPlayer = function () {\n function DPlayer(options) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.options = (0, _options2.default)(options);\n if (this.options.video.quality) {\n this.qualityIndex = this.options.video.defaultQuality;\n this.quality = this.options.video.quality[this.options.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.options.lang).tran;\n this.icons = new _svg2.default(this.options);\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.container = this.options.container;\n this.container.classList.add('dplayer');\n if (!this.options.danmaku) {\n this.container.classList.add('dplayer-no-danmaku');\n }\n if (this.options.live) {\n this.container.classList.add('dplayer-live');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('dplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 500;\n if (this.arrow) {\n this.container.classList.add('dplayer-arrow');\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n index: index,\n tran: this.tran,\n icons: this.icons\n });\n this.video = this.template.video;\n this.bar = new _bar2.default(this.template);\n this.bezel = new _bezel2.default(this.template.bezel);\n this.fullScreen = new _fullscreen2.default(this);\n this.controller = new _controller2.default(this);\n if (this.options.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.template.danmaku,\n opacity: this.user.get('opacity'),\n callback: function callback() {\n setTimeout(function () {\n _this.template.danmakuLoading.style.display = 'none';\n if (_this.options.autoplay) {\n _this.play();\n } else if (_utils2.default.isMobile) {\n _this.pause();\n }\n }, 0);\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.options.apiBackend,\n borderColor: this.options.theme,\n height: this.arrow ? 24 : 30,\n time: function time() {\n return _this.video.currentTime;\n },\n unlimited: this.user.get('unlimited'),\n api: {\n id: this.options.danmaku.id,\n address: this.options.danmaku.api,\n token: this.options.danmaku.token,\n maximum: this.options.danmaku.maximum,\n addition: this.options.danmaku.addition,\n user: this.options.danmaku.user\n },\n events: this.events\n });\n this.comment = new _comment2.default(this);\n }\n this.setting = new _setting2.default(this);\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.container.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n this.paused = true;\n this.time = new _time2.default(this);\n this.hotkey = new _hotkey2.default(this);\n this.contextmenu = new _contextmenu2.default(this);\n this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type);\n if (!this.danmaku && this.options.autoplay) {\n this.play();\n }\n index++;\n instances.push(this);\n }\n _createClass(DPlayer, [\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.video.duration) {\n time = Math.min(time, this.video.duration);\n }\n if (this.video.currentTime < time) {\n this.notice(this.tran('FF') + ' ' + (time - this.video.currentTime).toFixed(0) + ' ' + this.tran('s'));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW') + ' ' + (this.video.currentTime - time).toFixed(0) + ' ' + this.tran('s'));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.bar.set('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this2 = this;\n this.paused = false;\n if (this.video.paused) {\n this.bezel.switch(this.icons.get('play'));\n }\n this.template.playButton.innerHTML = this.icons.get('pause');\n var playedPromise = this.video.play();\n if (playedPromise) {\n playedPromise.catch(function () {\n _this2.pause();\n }).then(function () {\n });\n }\n this.time.enable();\n this.container.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n if (this.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (this !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.container.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.switch(this.icons.get('pause'));\n }\n this.ended = false;\n this.template.playButton.innerHTML = this.icons.get('play');\n this.video.pause();\n this.time.disable();\n this.container.classList.remove('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-up');\n } else if (this.volume() > 0) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-down');\n } else {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-off');\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage, nonotice) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.bar.set('volume', percentage, 'width');\n var formatPercentage = (percentage * 100).toFixed(0) + '%';\n this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n if (!nonotice) {\n this.notice(this.tran('Volume') + ' ' + (percentage * 100).toFixed(0) + '%');\n }\n this.video.volume = percentage;\n if (this.video.muted) {\n this.video.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.video.volume;\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'switchVideo',\n value: function switchVideo(video, danmakuAPI) {\n this.pause();\n this.video.poster = video.pic ? video.pic : '';\n this.video.src = video.url;\n this.initMSE(this.video, video.type || 'auto');\n if (danmakuAPI) {\n this.template.danmakuLoading.style.display = 'block';\n this.bar.set('played', 0, 'width');\n this.bar.set('loaded', 0, 'width');\n this.template.ptime.innerHTML = '00:00';\n this.template.danmaku.innerHTML = '';\n if (this.danmaku) {\n this.danmaku.reload({\n id: danmakuAPI.id,\n address: danmakuAPI.api,\n token: danmakuAPI.token,\n maximum: danmakuAPI.maximum,\n addition: danmakuAPI.addition,\n user: danmakuAPI.user\n });\n }\n }\n }\n },\n {\n key: 'initMSE',\n value: function initMSE(video, type) {\n 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 if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n this.type = 'dash';\n } else {\n this.type = 'normal';\n }\n }\n if (this.type === 'hls' && Hls && Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n }\n if (this.type === 'flv' && flvjs && flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n }\n if (this.type === 'dash' && dashjs) {\n dashjs.MediaPlayer().create().initialize(video, video.src, false);\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this3 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this3.template.dtime.innerHTML = _utils2.default.secondToTime(video.duration);\n }\n });\n this.on('progress', function () {\n var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n _this3.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this3.tran && _this3.notice && _this3.notice(_this3.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this3.bar.set('played', 1, 'width');\n if (!_this3.setting.loop) {\n _this3.ended = true;\n _this3.pause();\n } else {\n _this3.seek(0);\n video.play();\n }\n if (_this3.danmaku) {\n _this3.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this3.paused) {\n _this3.play();\n }\n });\n this.on('pause', function () {\n if (!_this3.paused) {\n _this3.pause();\n }\n });\n var _loop = function _loop(i) {\n video.addEventListener(_this3.events.videoEvents[i], function () {\n _this3.events.trigger(_this3.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop(i);\n }\n this.volume(this.user.get('volume'), true, true);\n if (this.options.subtitle) {\n this.subtitle = new _subtitle2.default(this.template.subtitle, this.video, this.options.subtitle, this.events);\n if (!this.user.get('subtitle')) {\n this.subtitle.hide();\n }\n }\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this4 = this;\n if (this.qualityIndex === index || this.switchingQuality) {\n return;\n } else {\n this.qualityIndex = index;\n }\n this.switchingQuality = true;\n this.quality = this.options.video.quality[index];\n this.template.qualityButton.innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = this.template.tplVideo(false, null, this.options.screenshot, 'auto', this.quality.url, this.options.subtitle);\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.options.video.type);\n this.seek(this.prevVideo.currentTime);\n this.notice(this.tran('Switching to') + ' ' + this.quality.name + ' ' + this.tran('quality'), -1);\n this.events.trigger('quality_start', this.quality);\n this.on('canplay', function () {\n if (_this4.prevVideo) {\n if (_this4.video.currentTime !== _this4.prevVideo.currentTime) {\n _this4.seek(_this4.prevVideo.currentTime);\n return;\n }\n _this4.template.videoWrap.removeChild(_this4.prevVideo);\n _this4.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this4.video.play();\n }\n _this4.prevVideo = null;\n _this4.notice(_this4.tran('Switched to') + ' ' + _this4.quality.name + ' ' + _this4.tran('quality'));\n _this4.switchingQuality = false;\n _this4.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'notice',\n value: function notice(text) {\n var _this5 = this;\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n this.template.notice.innerHTML = text;\n this.template.notice.style.opacity = opacity;\n if (this.noticeTime) {\n clearTimeout(this.noticeTime);\n }\n this.events.trigger('notice_show', text);\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n },\n {\n key: 'resize',\n value: function resize() {\n if (this.danmaku) {\n this.danmaku.resize();\n }\n this.events.trigger('resize');\n }\n },\n {\n key: 'speed',\n value: function speed(rate) {\n this.video.playbackRate = rate;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.controller.destroy();\n this.time.destroy();\n this.video.src = '';\n this.container.innerHTML = '';\n this.events.trigger('destroy');\n for (var key in this) {\n if (this.hasOwnProperty(key) && key !== 'paused') {\n delete this[key];\n }\n }\n }\n }\n ]);\n return DPlayer;\n}();\nexports.default = DPlayer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/player.js\n// module id = 3\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _api = require('./api.js');\nvar _api2 = _interopRequireDefault(_api);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('dplayer')[0],\n live: false,\n autoplay: false,\n theme: '#b7daff',\n loop: false,\n lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n screenshot: false,\n hotkey: true,\n preload: 'auto',\n volume: 0.7,\n apiBackend: _api2.default,\n video: {},\n icons: {\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.056z'\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 pallette: [\n '0 0 32 32',\n 'M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z'\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 subtitle: [\n '0 0 32 32',\n 'M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z'\n ]\n },\n iconsColor: '#ffffff',\n contextmenu: [],\n mutex: true\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (options.video) {\n !options.video.type && (options.video.type = 'auto');\n }\n if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n }\n if (options.subtitle) {\n !options.subtitle.type && (options.subtitle.type = 'webvtt');\n !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n !options.subtitle.color && (options.subtitle.color = '#fff');\n }\n if (options.video.quality) {\n options.video.url = [options.video.quality[options.video.defaultQuality].url];\n }\n if (options.lang) {\n options.lang = options.lang.toLowerCase();\n }\n if (options.icons) {\n options.icons = Object.assign({}, defaultOption.icons, options.icons);\n }\n options.contextmenu = options.contextmenu.concat([\n {\n text: 'About author',\n link: 'https://diygod.me'\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/releases'\n }\n ]);\n return options;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/options.js\n// module id = 4\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar SendXMLHttpRequest = function SendXMLHttpRequest(url, data, success, error, fail) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n var response = JSON.parse(xhr.responseText);\n if (response.code !== 0) {\n return error(xhr, response);\n }\n return success(xhr, response);\n }\n fail(xhr);\n }\n };\n xhr.open(data !== null ? 'POST' : 'GET', url, true);\n xhr.send(data !== null ? JSON.stringify(data) : null);\n};\nexports.default = {\n send: function send(endpoint, danmakuData, callback) {\n SendXMLHttpRequest(endpoint, danmakuData, function (xhr, response) {\n console.log('Post danmaku: ', response);\n if (callback) {\n callback();\n }\n }, function (xhr, response) {\n alert(response.msg);\n }, function (xhr) {\n console.log('Request was unsuccessful: ' + xhr.status);\n });\n },\n read: function read(endpoint, callback) {\n SendXMLHttpRequest(endpoint, null, function (xhr, response) {\n callback(null, response.danmaku);\n }, function (xhr, response) {\n callback({\n status: xhr.status,\n response: response\n });\n }, function (xhr) {\n callback({\n status: xhr.status,\n response: null\n });\n });\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/api.js\n// module id = 5\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction i18n(lang) {\n var _this = this;\n this.lang = lang;\n this.tran = function (text) {\n if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n return tranTxt[_this.lang][text];\n } else {\n return text;\n }\n };\n}\nvar tranTxt = {\n 'zh-cn': {\n 'Danmaku is loading': '弹幕加载中',\n 'Top': '顶部',\n 'Bottom': '底部',\n 'Rolling': '滚动',\n 'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n 'About author': '关于作者',\n 'DPlayer feedback': '播放器意见反馈',\n 'About DPlayer': '关于 DPlayer 播放器',\n 'Loop': '洗脑循环',\n 'Speed': '速度',\n 'Opacity for danmaku': '弹幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n 'Set danmaku color': '设置弹幕颜色',\n 'Set danmaku type': '设置弹幕类型',\n 'Show danmaku': '显示弹幕',\n 'This video fails to load': '视频加载失败',\n 'Switching to': '正在切换至',\n 'Switched to': '已经切换至',\n 'quality': '画质',\n 'FF': '快进',\n 'REW': '快退',\n 'Unlimited danmaku': '海量弹幕',\n 'Send danmaku': '发送弹幕',\n 'Setting': '设置',\n 'Full screen': '全屏',\n 'Web full screen': '页面全屏',\n 'Send': '发送',\n 'Screenshot': '截图',\n 's': '秒',\n 'Show subtitle': '显示字幕',\n 'Hide subtitle': '隐藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n },\n 'zh-tw': {\n 'Danmaku is loading': '彈幕加載中',\n 'Top': '頂部',\n 'Bottom': '底部',\n 'Rolling': '滾動',\n 'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n 'About author': '關於作者',\n 'DPlayer feedback': '播放器意見反饋',\n 'About DPlayer': '關於 DPlayer 播放器',\n 'Loop': '循環播放',\n 'Speed': '速度',\n 'Opacity for danmaku': '彈幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '請輸入彈幕内容啊\\uFF01',\n 'Set danmaku color': '設置彈幕顏色',\n 'Set danmaku type': '設置彈幕類型',\n 'Show danmaku': '顯示彈幕',\n 'This video fails to load': '視頻加載失敗',\n 'Switching to': '正在切換至',\n 'Switched to': '已經切換至',\n 'quality': '畫質',\n 'FF': '快進',\n 'REW': '快退',\n 'Unlimited danmaku': '海量彈幕',\n 'Send danmaku': '發送彈幕',\n 'Setting': '設置',\n 'Full screen': '全屏',\n 'Web full screen': '頁面全屏',\n 'Send': '發送',\n 'Screenshot': '截圖',\n 's': '秒',\n 'Show subtitle': '顯示字幕',\n 'Hide subtitle': '隱藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n }\n};\nexports.default = i18n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/i18n.js\n// module id = 6\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.index = options.index;\n this.tran = options.tran;\n this.icons = options.icons;\n this.init();\n }\n _createClass(Template, [\n {\n key: 'init',\n value: function init() {\n this.container.innerHTML = this.tpl(this.options, this.index, this.tran, this.icons);\n this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n this.volumeButton = this.container.querySelector('.dplayer-volume');\n this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n this.playedBar = this.container.querySelector('.dplayer-played');\n this.loadedBar = this.container.querySelector('.dplayer-loaded');\n this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n this.danmaku = this.container.querySelector('.dplayer-danmaku');\n this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n this.video = this.container.querySelector('.dplayer-video-current');\n this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n this.playButton = this.container.querySelector('.dplayer-play-icon');\n this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n this.ptime = this.container.querySelector('.dplayer-ptime');\n this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n this.settingBox = this.container.querySelector('.dplayer-setting-box');\n this.mask = this.container.querySelector('.dplayer-mask');\n this.loop = this.container.querySelector('.dplayer-setting-loop');\n this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n this.speed = this.container.querySelector('.dplayer-setting-speed');\n this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n this.dtime = this.container.querySelector('.dplayer-dtime');\n this.controller = this.container.querySelector('.dplayer-controller');\n this.commentInput = this.container.querySelector('.dplayer-comment-input');\n this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon .dplayer-fill');\n this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n this.commentSendFill = this.container.querySelector('.dplayer-send-icon .dplayer-fill');\n this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n this.menu = this.container.querySelector('.dplayer-menu');\n this.qualityList = this.container.querySelector('.dplayer-quality-list');\n this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n this.subtitle = this.container.querySelector('.dplayer-subtitle');\n this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.notice = this.container.querySelector('.dplayer-notice');\n }\n },\n {\n key: 'tpl',\n value: function tpl(options, index, tran, icons) {\n return '
' + this.tplVideo(true, options.video.pic, options.screenshot, options.preload, options.video.url, options.subtitle) + '' + (options.logo ? '
' : '') + '
' + (options.danmaku ? '' + tran('Danmaku is loading') + '' : '') + '
' + tran('Set danmaku color') + '
' + tran('Set danmaku type') + '
0:00 / 0:00' + (options.live ? '' + tran('Live') + '' : '') + '
' + (options.video.quality ? '
' + this.tplQualityList(options.video.quality) + '
' : '') + '' + (options.screenshot ? '' + icons.get('camera') + '' : '') + '
' + (options.subtitle ? '
' : '') + '
' + tran('Speed') + '
' + icons.get('right') + '
' + tran('Loop') + '
' + tran('Show danmaku') + '
' + tran('Unlimited danmaku') + '
' + tran('Opacity for danmaku') + '
0.5
0.75
' + tran('Normal') + '
1.25
1.5
2
00:00
' + this.tplContextmenuList(options.contextmenu, tran) + '
';\n }\n },\n {\n key: 'tplDanmakumargin',\n value: function tplDanmakumargin(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 },\n {\n key: 'tplContextmenuList',\n value: function tplContextmenuList(contextmenu, tran) {\n var result = '
';\n for (var i = 0; i < contextmenu.length; i++) {\n result += '';\n }\n result += '
';\n return result;\n }\n },\n {\n key: 'tplQualityList',\n value: function tplQualityList(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 },\n {\n key: 'tplVideo',\n value: function tplVideo(current, pic, screenshot, preload, url, subtitle) {\n var enableSubtitle = subtitle && subtitle.type === 'webvtt';\n return '';\n }\n }\n ]);\n return Template;\n}();\nexports.default = Template;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/template.js\n// module id = 7\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar SvgSource = function () {\n function SvgSource(options) {\n _classCallCheck(this, SvgSource);\n this.icons = options.icons;\n this.iconColor = options.iconsColor;\n }\n _createClass(SvgSource, [{\n key: 'get',\n value: function get(type) {\n return '';\n }\n }]);\n return SvgSource;\n}();\nexports.default = SvgSource;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/svg.js\n// module id = 8\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Danmaku = function () {\n function Danmaku(options) {\n _classCallCheck(this, Danmaku);\n this.options = options;\n this.container = this.options.container;\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.dan = [];\n this.showing = true;\n this._opacity = this.options.opacity;\n this.events = this.options.events;\n this.unlimited = this.options.unlimited;\n this._measure('');\n this.load();\n }\n _createClass(Danmaku, [\n {\n key: 'load',\n value: function load() {\n var _this = this;\n var apiurl = void 0;\n if (this.options.api.maximum) {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id;\n }\n var endpoints = (this.options.api.addition || []).slice(0);\n endpoints.push(apiurl);\n this.events && this.events.trigger('danmaku_load_start', endpoints);\n this._readAllEndpoints(endpoints, function (results) {\n _this.dan = [].concat.apply([], results).sort(function (a, b) {\n return a.time - b.time;\n });\n window.requestAnimationFrame(function () {\n _this.frame();\n });\n _this.options.callback();\n _this.events && _this.events.trigger('danmaku_load_end');\n });\n }\n },\n {\n key: 'reload',\n value: function reload(newAPI) {\n this.options.api = newAPI;\n this.dan = [];\n this.clear();\n this.load();\n }\n },\n {\n key: '_readAllEndpoints',\n value: function _readAllEndpoints(endpoints, callback) {\n var _this2 = this;\n var results = [];\n var readCount = 0;\n var cbk = function cbk(i) {\n return function (err, data) {\n ++readCount;\n if (err) {\n if (err.response) {\n _this2.options.error(err.response.msg);\n } else {\n _this2.options.error('Request was unsuccessful: ' + err.status);\n }\n results[i] = [];\n } else {\n var typeMap = [\n 'right',\n 'top',\n 'bottom'\n ];\n if (data) {\n results[i] = data.map(function (item) {\n return {\n time: item[0],\n type: typeMap[item[1]],\n color: item[2],\n author: item[3],\n text: item[4]\n };\n });\n } else {\n results[i] = [];\n }\n }\n if (readCount === endpoints.length) {\n return callback(results);\n }\n };\n };\n for (var i = 0; i < endpoints.length; ++i) {\n this.options.apiBackend.read(endpoints[i], cbk(i));\n }\n }\n },\n {\n key: 'send',\n value: function send(dan, callback) {\n var danmakuData = {\n token: this.options.api.token,\n player: this.options.api.id,\n author: this.options.api.user,\n time: this.options.time(),\n text: dan.text,\n color: dan.color,\n type: dan.type\n };\n this.options.apiBackend.send(this.options.api.address + 'v2/', danmakuData, callback);\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n var danmaku = {\n text: this.htmlEncode(danmakuData.text),\n color: danmakuData.color,\n type: danmakuData.type,\n border: '2px solid ' + this.options.borderColor\n };\n this.draw(danmaku);\n this.events && this.events.trigger('danmaku_send', danmakuData);\n }\n },\n {\n key: 'frame',\n value: function frame() {\n var _this3 = this;\n if (this.dan.length && !this.paused && this.showing) {\n var item = this.dan[this.danIndex];\n var dan = [];\n while (item && this.options.time() > parseFloat(item.time)) {\n dan.push(item);\n item = this.dan[++this.danIndex];\n }\n this.draw(dan);\n }\n window.requestAnimationFrame(function () {\n _this3.frame();\n });\n }\n },\n {\n key: 'opacity',\n value: function opacity(percentage) {\n if (percentage !== undefined) {\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this._opacity = percentage;\n this.events && this.events.trigger('danmaku_opacity', this._opacity);\n }\n return this._opacity;\n }\n },\n {\n key: 'draw',\n value: function draw(dan) {\n var _this4 = this;\n if (this.showing) {\n var itemHeight = this.options.height;\n var danWidth = this.container.offsetWidth;\n var danHeight = this.container.offsetHeight;\n var itemY = parseInt(danHeight / itemHeight);\n var danItemRight = function danItemRight(ele) {\n var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n var eleRight = ele.getBoundingClientRect().right || _this4.container.getBoundingClientRect().right + eleWidth;\n return _this4.container.getBoundingClientRect().right - eleRight;\n };\n var danSpeed = function danSpeed(width) {\n return (danWidth + width) / 5;\n };\n var getTunnel = function getTunnel(ele, type, width) {\n var tmp = danWidth / danSpeed(width);\n var _loop = function _loop(i) {\n var item = _this4.danTunnel[type][i + ''];\n if (item && item.length) {\n if (type !== 'right') {\n return 'continue';\n }\n for (var j = 0; j < item.length; j++) {\n var danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n _this4.danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n }\n } else {\n _this4.danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n };\n for (var i = 0; _this4.unlimited || i < itemY; i++) {\n var _ret = _loop(i);\n switch (_ret) {\n case 'continue':\n continue;\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object')\n return _ret.v;\n }\n }\n return -1;\n };\n if (Object.prototype.toString.call(dan) !== '[object Array]') {\n dan = [dan];\n }\n var docFragment = document.createDocumentFragment();\n var _loop2 = function _loop2(i) {\n if (!dan[i].type) {\n dan[i].type = 'right';\n }\n if (!dan[i].color) {\n dan[i].color = '#fff';\n }\n var item = document.createElement('div');\n item.classList.add('dplayer-danmaku-item');\n item.classList.add('dplayer-danmaku-' + dan[i].type);\n if (dan[i].border) {\n item.innerHTML = '' + dan[i].text + '';\n } else {\n item.innerHTML = dan[i].text;\n }\n item.style.opacity = _this4._opacity;\n item.style.color = dan[i].color;\n item.addEventListener('animationend', function () {\n _this4.container.removeChild(item);\n });\n var itemWidth = _this4._measure(dan[i].text);\n var tunnel = void 0;\n switch (dan[i].type) {\n case 'right':\n tunnel = getTunnel(item, dan[i].type, itemWidth);\n if (tunnel >= 0) {\n item.style.width = itemWidth + 1 + 'px';\n item.style.top = itemHeight * tunnel + 'px';\n item.style.transform = 'translateX(-' + danWidth + 'px)';\n }\n break;\n case 'top':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.top = itemHeight * tunnel + 'px';\n }\n break;\n case 'bottom':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.bottom = itemHeight * tunnel + 'px';\n }\n break;\n default:\n console.error('Can\\'t handled danmaku type: ' + dan[i].type);\n }\n if (tunnel >= 0) {\n item.classList.add('dplayer-danmaku-move');\n docFragment.appendChild(item);\n }\n };\n for (var i = 0; i < dan.length; i++) {\n _loop2(i);\n }\n this.container.appendChild(docFragment);\n return docFragment;\n }\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n }\n },\n {\n key: '_measure',\n value: function _measure(text) {\n if (!this.context) {\n var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n this.context = document.createElement('canvas').getContext('2d');\n this.context.font = measureStyle.getPropertyValue('font');\n }\n return this.context.measureText(text).width;\n }\n },\n {\n key: 'seek',\n value: function seek() {\n this.clear();\n for (var i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.options.time()) {\n this.danIndex = i;\n break;\n }\n this.danIndex = this.dan.length;\n }\n }\n },\n {\n key: 'clear',\n value: function clear() {\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.options.container.innerHTML = '';\n this.events && this.events.trigger('danmaku_clear');\n }\n },\n {\n key: 'htmlEncode',\n value: function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n },\n {\n key: 'resize',\n value: function resize() {\n var danWidth = this.container.offsetWidth;\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n }\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.showing = false;\n this.pause();\n this.clear();\n this.events && this.events.trigger('danmaku_hide');\n }\n },\n {\n key: 'show',\n value: function show() {\n this.seek();\n this.showing = true;\n this.play();\n this.events && this.events.trigger('danmaku_show');\n }\n },\n {\n key: 'unlimit',\n value: function unlimit(boolean) {\n this.unlimited = boolean;\n }\n }\n ]);\n return Danmaku;\n}();\nexports.default = Danmaku;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/danmaku.js\n// module id = 9\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Events = function () {\n function Events() {\n _classCallCheck(this, Events);\n this.events = {};\n this.videoEvents = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'mozaudioavailable',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ];\n this.playerEvents = [\n 'screenshot',\n 'thumbnails_show',\n 'thumbnails_hide',\n 'danmaku_show',\n 'danmaku_hide',\n 'danmaku_clear',\n 'danmaku_loaded',\n 'danmaku_send',\n 'danmaku_opacity',\n 'contextmenu_show',\n 'contextmenu_hide',\n 'notice_show',\n 'notice_hide',\n 'quality_start',\n 'quality_end',\n 'destroy',\n 'resize',\n 'fullscreen',\n 'fullscreen_cancel',\n 'webfullscreen',\n 'webfullscreen_cancel',\n 'subtitle_show',\n 'subtitle_hide',\n 'subtitle_change'\n ];\n }\n _createClass(Events, [\n {\n key: 'on',\n value: function on(name, callback) {\n if (this.type(name) && typeof callback === 'function') {\n if (!this.events[name]) {\n this.events[name] = [];\n }\n this.events[name].push(callback);\n }\n }\n },\n {\n key: 'trigger',\n value: function trigger(name, info) {\n if (this.events[name] && this.events[name].length) {\n for (var i = 0; i < this.events[name].length; i++) {\n this.events[name][i](info);\n }\n }\n }\n },\n {\n key: 'type',\n value: function type(name) {\n if (this.playerEvents.indexOf(name) !== -1) {\n return 'player';\n } else if (this.videoEvents.indexOf(name) !== -1) {\n return 'video';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/events.js\n// module id = 10\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar FullScreen = function () {\n function FullScreen(player) {\n var _this = this;\n _classCallCheck(this, FullScreen);\n this.player = player;\n this.player.events.on('webfullscreen', function () {\n _this.player.resize();\n });\n this.player.events.on('webfullscreen_cancel', function () {\n _this.player.resize();\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n }\n _createClass(FullScreen, [\n {\n key: 'isFullScreen',\n value: function isFullScreen() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n case 'web':\n return this.player.container.classList.contains('dplayer-fulled');\n }\n }\n },\n {\n key: 'request',\n value: function request() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n var anotherType = type === 'browser' ? 'web' : 'browser';\n var anotherTypeOn = this.isFullScreen(anotherType);\n if (!anotherTypeOn) {\n this.lastScrollPosition = _utils2.default.getScrollPosition();\n }\n switch (type) {\n case 'browser':\n if (this.player.container.requestFullscreen) {\n this.player.container.requestFullscreen();\n } else if (this.player.container.mozRequestFullScreen) {\n this.player.container.mozRequestFullScreen();\n } else if (this.player.container.webkitRequestFullscreen) {\n this.player.container.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.container.classList.add('dplayer-fulled');\n document.body.classList.add('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen');\n break;\n }\n if (anotherTypeOn) {\n this.cancel(anotherType);\n }\n }\n },\n {\n key: 'cancel',\n value: function cancel() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n break;\n case 'web':\n this.player.container.classList.remove('dplayer-fulled');\n document.body.classList.remove('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen_cancel');\n break;\n }\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n if (this.isFullScreen(type)) {\n this.cancel(type);\n } else {\n this.request(type);\n }\n }\n }\n ]);\n return FullScreen;\n}();\nexports.default = FullScreen;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/fullscreen.js\n// module id = 11\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar User = function () {\n function User(player) {\n _classCallCheck(this, User);\n this.storageName = {\n opacity: 'dplayer-danmaku-opacity',\n volume: 'dplayer-volume',\n unlimited: 'dplayer-danmaku-unlimited',\n danmaku: 'dplayer-danmaku-show',\n subtitle: 'dplayer-subtitle-show'\n };\n this.default = {\n opacity: 0.7,\n volume: player.options.volume || 0.7,\n unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 1,\n subtitle: 1\n };\n this.data = {};\n this.init();\n }\n _createClass(User, [\n {\n key: 'init',\n value: function init() {\n for (var item in this.storageName) {\n var name = this.storageName[item];\n this.data[item] = parseFloat(_utils2.default.storage.get(name) || this.default[item]);\n }\n }\n },\n {\n key: 'get',\n value: function get(key) {\n return this.data[key];\n }\n },\n {\n key: 'set',\n value: function set(key, value) {\n this.data[key] = value;\n _utils2.default.storage.set(this.storageName[key], value);\n }\n }\n ]);\n return User;\n}();\nexports.default = User;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/user.js\n// module id = 12\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Subtitle = function () {\n function Subtitle(container, video, options, events) {\n _classCallCheck(this, Subtitle);\n this.container = container;\n this.video = video;\n this.options = options;\n this.events = events;\n this.init();\n }\n _createClass(Subtitle, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.container.style.fontSize = this.options.fontSize;\n this.container.style.bottom = this.options.bottom;\n this.container.style.color = this.options.color;\n if (this.video.textTracks && this.video.textTracks[0]) {\n var track = this.video.textTracks[0];\n track.oncuechange = function () {\n var cue = track.activeCues[0];\n if (cue) {\n _this.container.innerHTML = '';\n var p = document.createElement('p');\n p.appendChild(cue.getCueAsHTML());\n _this.container.appendChild(p);\n } else {\n _this.container.innerHTML = '';\n }\n _this.events.trigger('subtitle_change');\n };\n }\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.classList.remove('dplayer-subtitle-hide');\n this.events.trigger('subtitle_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.classList.add('dplayer-subtitle-hide');\n this.events.trigger('subtitle_hide');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.container.classList.contains('dplayer-subtitle-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n ]);\n return Subtitle;\n}();\nexports.default = Subtitle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/subtitle.js\n// module id = 13\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volumeBar;\n this.elements.played = template.playedBar;\n this.elements.loaded = template.loadedBar;\n this.elements.danmaku = template.danmakuOpacityBar;\n }\n _createClass(Bar, [\n {\n key: 'set',\n value: function set(type, percentage, direction) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.elements[type].style[direction] = percentage * 100 + '%';\n }\n },\n {\n key: 'get',\n value: function get(type) {\n return parseFloat(this.elements[type].style.width) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/bar.js\n// module id = 14\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Time = function () {\n function Time(player) {\n _classCallCheck(this, Time);\n this.player = player;\n window.requestAnimationFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n this.types = [\n 'loading',\n 'progress'\n ];\n this.init();\n }\n _createClass(Time, [\n {\n key: 'init',\n value: function init() {\n for (var i = 0; i < this.types.length; i++) {\n var type = this.types[i];\n this['init' + type + 'Checker']();\n }\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this.enableloadingChecker) {\n currentPlayPos = _this.player.video.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'initprogressChecker',\n value: function initprogressChecker() {\n var _this2 = this;\n this.progressChecker = setInterval(function () {\n if (_this2.enableprogressChecker) {\n _this2.player.bar.set('played', _this2.player.video.currentTime / _this2.player.video.duration, 'width');\n var currentTime = _utils2.default.secondToTime(_this2.player.video.currentTime);\n if (_this2.player.template.ptime.innerHTML !== currentTime) {\n _this2.player.template.ptime.innerHTML = _utils2.default.secondToTime(_this2.player.video.currentTime);\n }\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = true;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type = this.types[i];\n this['enable' + _type + 'Checker'] = true;\n }\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = false;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type2 = this.types[i];\n this['enable' + _type2 + 'Checker'] = false;\n }\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy(type) {\n if (type) {\n clearInterval(this[type + 'Checker']);\n } else {\n for (var i = 0; i < this.types.length; i++) {\n clearInterval(this[this.types[i] + 'Checker']);\n }\n }\n }\n }\n ]);\n return Time;\n}();\nexports.default = Time;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/time.js\n// module id = 15\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bezel = function () {\n function Bezel(container) {\n var _this = this;\n _classCallCheck(this, Bezel);\n this.container = container;\n this.container.addEventListener('animationend', function () {\n _this.container.classList.remove('dplayer-bezel-transition');\n });\n }\n _createClass(Bezel, [{\n key: 'switch',\n value: function _switch(icon) {\n this.container.innerHTML = icon;\n this.container.classList.add('dplayer-bezel-transition');\n }\n }]);\n return Bezel;\n}();\nexports.default = Bezel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/bezel.js\n// module id = 16\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _thumbnails = require('./thumbnails');\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n var _this = this;\n _classCallCheck(this, Controller);\n this.player = player;\n this.autoHideTimer = 0;\n if (!_utils2.default.isMobile) {\n this.player.container.addEventListener('mousemove', function () {\n _this.setAutoHide();\n });\n this.player.container.addEventListener('click', function () {\n _this.setAutoHide();\n });\n }\n this.initPlayButton();\n this.initThumbnails();\n this.initPlayedBar();\n this.initFullButton();\n this.initVolumeButton();\n this.initQualityButton();\n this.initScreenshotButton();\n this.initSubtitleButton();\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this2 = this;\n this.player.template.playButton.addEventListener('click', function () {\n _this2.player.toggle();\n });\n if (!_utils2.default.isMobile) {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.player.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.player.toggle();\n });\n } else {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.toggle();\n });\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this3 = this;\n if (this.player.options.video.thumbnails) {\n this.thumbnails = new _thumbnails2.default({\n container: this.player.template.barPreview,\n barWidth: this.player.template.barWrap.offsetWidth,\n url: this.player.options.video.thumbnails,\n events: this.player.events\n });\n this.player.on('loadedmetadata', function () {\n _this3.thumbnails.resize(160, _this3.player.video.videoHeight / _this3.player.video.videoWidth * 160);\n });\n }\n }\n },\n {\n key: 'initPlayedBar',\n value: function initPlayedBar() {\n var _this4 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this4.player.video.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.seek(_this4.player.bar.get('played') * _this4.player.video.duration);\n _this4.player.time.enable('progress');\n };\n this.player.template.playedBarWrap.addEventListener('mousedown', function () {\n _this4.player.time.disable('progress');\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n this.player.template.playedBarWrap.addEventListener('mousemove', function (e) {\n if (_this4.player.video.duration) {\n var px = _utils2.default.cumulativeOffset(_this4.player.template.playedBarWrap).left;\n var tx = e.clientX - px;\n if (tx < 0 || tx > _this4.player.template.playedBarWrap.offsetWidth) {\n return;\n }\n var time = _this4.player.video.duration * (tx / _this4.player.template.playedBarWrap.offsetWidth);\n _this4.thumbnails && _this4.thumbnails.move(tx);\n _this4.player.template.playedBarTime.style.left = tx - 20 + 'px';\n _this4.player.template.playedBarTime.innerText = _utils2.default.secondToTime(time);\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.show();\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.player.template.playedBarTime.classList.add('hidden');\n }\n });\n }\n },\n {\n key: 'initFullButton',\n value: function initFullButton() {\n var _this5 = this;\n this.player.template.browserFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('browser');\n });\n this.player.template.webFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('web');\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this6 = this;\n var vWidth = 35;\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n _this6.player.template.volumeButton.classList.remove('dplayer-volume-active');\n };\n this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n });\n this.player.template.volumeBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n _this6.player.template.volumeButton.classList.add('dplayer-volume-active');\n });\n this.player.template.volumeIcon.addEventListener('click', function () {\n if (_this6.player.video.muted) {\n _this6.player.video.muted = false;\n _this6.player.switchVolumeIcon();\n _this6.player.bar.set('volume', _this6.player.volume(), 'width');\n } else {\n _this6.player.video.muted = true;\n _this6.player.template.volumeIcon.innerHTML = _this6.player.icons.get('volume-off');\n _this6.player.bar.set('volume', 0, 'width');\n }\n });\n }\n },\n {\n key: 'initQualityButton',\n value: function initQualityButton() {\n var _this7 = this;\n if (this.player.options.video.quality) {\n this.player.template.qualityList.addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this7.player.switchQuality(e.target.dataset.index);\n }\n });\n }\n }\n },\n {\n key: 'initScreenshotButton',\n value: function initScreenshotButton() {\n var _this8 = this;\n if (this.player.options.screenshot) {\n this.player.template.camareButton.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this8.player.video.videoWidth;\n canvas.height = _this8.player.video.videoHeight;\n canvas.getContext('2d').drawImage(_this8.player.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n _this8.player.template.camareButton.href = dataURL;\n _this8.player.template.camareButton.download = 'DPlayer.png';\n _this8.player.events.trigger('screenshot', dataURL);\n });\n }\n }\n },\n {\n key: 'initSubtitleButton',\n value: function initSubtitleButton() {\n var _this9 = this;\n if (this.player.options.subtitle) {\n this.player.events.on('subtitle_show', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Hide subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '';\n _this9.player.user.set('subtitle', 1);\n });\n this.player.events.on('subtitle_hide', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Show subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '0.4';\n _this9.player.user.set('subtitle', 0);\n });\n this.player.template.subtitleButton.addEventListener('click', function () {\n _this9.player.subtitle.toggle();\n });\n }\n }\n },\n {\n key: 'setAutoHide',\n value: function setAutoHide() {\n var _this10 = this;\n this.show();\n clearTimeout(this.autoHideTimer);\n this.autoHideTimer = setTimeout(function () {\n if (_this10.player.video.played.length && !_this10.disableAutoHide) {\n _this10.hide();\n }\n }, 2000);\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.container.classList.remove('dplayer-hide-controller');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.container.classList.add('dplayer-hide-controller');\n this.player.setting.hide();\n this.player.comment && this.player.comment.hide();\n }\n },\n {\n key: 'isShow',\n value: function isShow() {\n return !this.player.container.classList.contains('dplayer-hide-controller');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.isShow()) {\n this.hide();\n } else {\n this.show();\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n clearTimeout(this.autoHideTimer);\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/controller.js\n// module id = 17\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Thumbnails = function () {\n function Thumbnails(options) {\n _classCallCheck(this, Thumbnails);\n this.container = options.container;\n this.barWidth = options.barWidth;\n this.container.style.backgroundImage = 'url(\\'' + options.url + '\\')';\n this.events = options.events;\n }\n _createClass(Thumbnails, [\n {\n key: 'resize',\n value: function resize(width, height) {\n this.container.style.width = width + 'px';\n this.container.style.height = height + 'px';\n this.container.style.top = -height + 2 + 'px';\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.style.display = 'block';\n this.events && this.events.trigger('thumbnails_show');\n }\n },\n {\n key: 'move',\n value: function move(position) {\n this.container.style.backgroundPosition = '-' + (Math.ceil(position / this.barWidth * 100) - 1) * 160 + 'px 0';\n this.container.style.left = position - this.container.offsetWidth / 2 + 'px';\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.style.display = 'none';\n this.events && this.events.trigger('thumbnails_hide');\n }\n }\n ]);\n return Thumbnails;\n}();\nexports.default = Thumbnails;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/thumbnails.js\n// module id = 18\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Setting = function () {\n function Setting(player) {\n var _this = this;\n _classCallCheck(this, Setting);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.settingButton.addEventListener('click', function () {\n _this.show();\n });\n this.loop = this.player.options.loop;\n this.player.template.loopToggle.checked = this.loop;\n this.player.template.loop.addEventListener('click', function () {\n _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n if (_this.player.template.loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n _this.hide();\n });\n this.showDanmaku = this.player.user.get('danmaku');\n if (!this.showDanmaku) {\n this.player.danmaku && this.player.danmaku.hide();\n }\n this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n this.player.template.showDanmaku.addEventListener('click', function () {\n _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n if (_this.player.template.showDanmakuToggle.checked) {\n _this.showDanmaku = true;\n _this.player.danmaku.show();\n } else {\n _this.showDanmaku = false;\n _this.player.danmaku.hide();\n }\n _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n _this.hide();\n });\n this.unlimitDanmaku = this.player.user.get('unlimited');\n this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n this.player.template.unlimitDanmaku.addEventListener('click', function () {\n _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n if (_this.player.template.unlimitDanmakuToggle.checked) {\n _this.unlimitDanmaku = true;\n _this.player.danmaku.unlimit(true);\n } else {\n _this.unlimitDanmaku = false;\n _this.player.danmaku.unlimit(false);\n }\n _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n _this.hide();\n });\n this.player.template.speed.addEventListener('click', function () {\n _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n });\n var _loop = function _loop(i) {\n _this.player.template.speedItem[i].addEventListener('click', function () {\n _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n _this.hide();\n });\n };\n for (var i = 0; i < this.player.template.speedItem.length; i++) {\n _loop(i);\n }\n if (this.player.danmaku) {\n var dWidth = 130;\n this.player.on('danmaku_opacity', function (percentage) {\n _this.player.bar.set('danmaku', percentage, 'width');\n _this.player.user.set('opacity', percentage);\n });\n this.player.danmaku.opacity(this.player.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n };\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n });\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n }\n _createClass(Setting, [\n {\n key: 'hide',\n value: function hide() {\n var _this2 = this;\n this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n }, 300);\n this.player.controller.disableAutoHide = false;\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.controller.disableAutoHide = true;\n }\n }\n ]);\n return Setting;\n}();\nexports.default = Setting;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/setting.js\n// module id = 19\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Comment = function () {\n function Comment(player) {\n var _this = this;\n _classCallCheck(this, Comment);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.commentButton.addEventListener('click', function () {\n _this.show();\n });\n this.player.template.commentSettingButton.addEventListener('click', function () {\n _this.toggleSetting();\n });\n this.player.template.commentColorSettingBox.addEventListener('click', function () {\n var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n if (sele) {\n var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n _this.player.template.commentSettingFill.style.fill = color;\n _this.player.template.commentInput.style.color = color;\n _this.player.template.commentSendFill.style.fill = color;\n }\n });\n this.player.template.commentInput.addEventListener('click', function () {\n _this.hideSetting();\n });\n this.player.template.commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n _this.send();\n }\n });\n this.player.template.commentSendButton.addEventListener('click', function () {\n _this.send();\n });\n }\n _createClass(Comment, [\n {\n key: 'show',\n value: function show() {\n this.player.controller.disableAutoHide = true;\n this.player.template.controller.classList.add('dplayer-controller-comment');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.container.classList.add('dplayer-show-controller');\n this.player.template.commentInput.focus();\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.controller.classList.remove('dplayer-controller-comment');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.container.classList.remove('dplayer-show-controller');\n this.player.controller.disableAutoHide = false;\n this.hideSetting();\n }\n },\n {\n key: 'showSetting',\n value: function showSetting() {\n this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n },\n {\n key: 'hideSetting',\n value: function hideSetting() {\n this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n },\n {\n key: 'toggleSetting',\n value: function toggleSetting() {\n if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n this.hideSetting();\n } else {\n this.showSetting();\n }\n }\n },\n {\n key: 'send',\n value: function send() {\n var _this2 = this;\n this.player.template.commentInput.blur();\n if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n this.player.notice(this.player.tran('Please input danmaku content!'));\n return;\n }\n this.player.danmaku.send({\n text: this.player.template.commentInput.value,\n color: this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n _this2.player.template.commentInput.value = '';\n _this2.hide();\n });\n }\n }\n ]);\n return Comment;\n}();\nexports.default = Comment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/comment.js\n// module id = 20\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar HotKey = function HotKey(player) {\n _classCallCheck(this, HotKey);\n if (player.options.hotkey) {\n document.addEventListener('keydown', function (e) {\n if (player.focus) {\n var tag = document.activeElement.tagName.toUpperCase();\n var editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n var event = e || window.event;\n var percentage = void 0;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n case 37:\n event.preventDefault();\n player.seek(player.video.currentTime - 5);\n player.controller.setAutoHide();\n break;\n case 39:\n event.preventDefault();\n player.seek(player.video.currentTime + 5);\n player.controller.setAutoHide();\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n break;\n }\n }\n }\n });\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (player.fullScreen.isFullScreen('web')) {\n player.fullScreen.cancel('web');\n }\n break;\n }\n });\n};\nexports.default = HotKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/hotkey.js\n// module id = 21\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar ContextMenu = function () {\n function ContextMenu(player) {\n var _this = this;\n _classCallCheck(this, ContextMenu);\n this.player = player;\n this.player.container.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n var clientRect = _this.player.container.getBoundingClientRect();\n _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n _this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n });\n }\n _createClass(ContextMenu, [\n {\n key: 'show',\n value: function show(x, y) {\n this.player.template.menu.classList.add('dplayer-menu-show');\n var clientRect = this.player.container.getBoundingClientRect();\n if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n this.player.template.menu.style.right = clientRect.width - x + 'px';\n this.player.template.menu.style.left = 'initial';\n } else {\n this.player.template.menu.style.left = x + 'px';\n this.player.template.menu.style.right = 'initial';\n }\n if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n this.player.template.menu.style.top = 'initial';\n } else {\n this.player.template.menu.style.top = y + 'px';\n this.player.template.menu.style.bottom = 'initial';\n }\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.events.trigger('contextmenu_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.template.menu.classList.remove('dplayer-menu-show');\n this.player.events.trigger('contextmenu_hide');\n }\n }\n ]);\n return ContextMenu;\n}();\nexports.default = ContextMenu;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/contextmenu.js\n// module id = 22\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 1dd4d683423d73b5e7d1","webpack:///./src/js/utils.js","webpack:///./src/js/index.js","webpack:///./src/js/player.js","webpack:///./node_modules/promise-polyfill/src/index.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./src/js/options.js","webpack:///./node_modules/object-assign/index.js","webpack:///./src/js/api.js","webpack:///./src/js/i18n.js","webpack:///./src/js/template.js","webpack:///./src/js/svg.js","webpack:///./src/js/danmaku.js","webpack:///./src/js/events.js","webpack:///./src/js/fullscreen.js","webpack:///./src/js/user.js","webpack:///./src/js/subtitle.js","webpack:///./src/js/bar.js","webpack:///./src/js/time.js","webpack:///./src/js/bezel.js","webpack:///./src/js/controller.js","webpack:///./src/js/thumbnails.js","webpack:///./src/js/setting.js","webpack:///./src/js/comment.js","webpack:///./src/js/hotkey.js","webpack:///./src/js/contextmenu.js"],"names":["root","factory","exports","module","define","amd","self","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","value","default","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","element","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","document","body","scrollLeft","documentElement","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","getScrollPosition","left","window","pageXOffset","top","pageYOffset","scrollTop","setScrollPosition","_ref","_ref$left","undefined","_ref$top","isFirefox","scrollTo","isMobile","test","navigator","userAgent","isChrome","storage","set","key","localStorage","setItem","getItem","cumulativeOffset","offsetTop","_player","_player2","obj","console","log","_interopRequireDefault","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","length","descriptor","writable","protoProps","staticProps","_promisePolyfill","_promisePolyfill2","_utils","_utils2","_options","_options2","_i18n","_i18n2","_template","_template2","_svg","_svg2","_danmaku","_danmaku2","_events","_events2","_fullscreen","_fullscreen2","_user","_user2","_subtitle","_subtitle2","_bar","_bar2","_time","_time2","_bezel","_bezel2","_controller","_controller2","_setting","_setting2","_comment","_comment2","_hotkey","_hotkey2","_contextmenu","_contextmenu2","index","instances","DPlayer","options","_this","video","quality","qualityIndex","defaultQuality","tran","lang","icons","events","user","container","classList","add","danmaku","live","arrow","offsetWidth","template","bar","bezel","fullScreen","controller","opacity","callback","setTimeout","danmakuLoading","style","display","autoplay","play","pause","error","msg","notice","apiBackend","borderColor","theme","height","time","currentTime","unlimited","api","id","address","token","maximum","addition","comment","setting","addEventListener","focus","paused","hotkey","contextmenu","initVideo","type","push","Math","max","duration","toFixed","seek","_this2","switch","playButton","innerHTML","resolve","catch","then","enable","mutex","remove","ended","disable","volume","volumeIcon","percentage","nostorage","nonotice","parseFloat","isNaN","formatPercentage","volumeBarWrapWrap","dataset","balloon","muted","switchVolumeIcon","on","danmakuAPI","poster","pic","src","url","initMSE","ptime","reload","exec","Hls","isSupported","hls","loadSource","attachMedia","flvjs","flvPlayer","createPlayer","attachMediaElement","load","dashjs","MediaPlayer","create","initialize","_this3","dtime","buffered","end","loop","danIndex","videoEvents","trigger","subtitle","hide","_this4","switchingQuality","qualityButton","videoHTML","tplVideo","screenshot","videoEle","DOMParser","parseFromString","firstChild","videoWrap","insertBefore","getElementsByTagName","prevVideo","removeChild","text","_this5","arguments","noticeTime","clearTimeout","resize","rate","playbackRate","splice","indexOf","destroy","setImmediate","noop","bind","fn","thisArg","apply","handle","deferred","_state","_value","_deferreds","_handled","Promise","_immediateFn","cb","onFulfilled","onRejected","reject","promise","ret","e","newValue","_typeof","finale","doResolve","_unhandledRejectionFn","len","Handler","done","reason","ex","Symbol","iterator","constructor","setTimeoutFunc","_proto","prom","all","arr","res","val","args","remaining","Array","slice","race","values","err","warn","Timeout","clearFn","_id","_clearFn","Function","setInterval","clearInterval","timeout","close","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","global","process","task","tasksByHandle","nextHandle","registerImmediate","run","runIfPresent","currentlyRunningATask","doc","attachTo","getPrototypeOf","toString","nextTick","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","random","onGlobalMessage","event","source","data","attachEvent","MessageChannel","channel","port1","port2","createElement","html","script","onreadystatechange","appendChild","g","eval","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","Item","array","title","browser","env","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","_objectAssign","_objectAssign2","_api","_api2","defaultOption","getElementsByClassName","language","browserLanguage","toLowerCase","preload","volume-up","volume-down","volume-off","full","full-in","right","comment-off","send","pallette","camera","iconsColor","defaultKey","fontSize","bottom","color","link","toObject","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","keys","from","symbols","to","SendXMLHttpRequest","success","fail","xhr","XMLHttpRequest","readyState","status","response","JSON","parse","responseText","code","open","stringify","endpoint","danmakuData","alert","read","i18n","tranTxt","zh-cn","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku content!","Set danmaku color","Set danmaku type","Show danmaku","This video fails to load","Switching to","Switched to","FF","REW","Unlimited danmaku","Send danmaku","Setting","Full screen","Web full screen","Send","Screenshot","Show subtitle","Hide subtitle","Volume","Live","zh-tw","Template","init","tpl","volumeBar","querySelector","volumeBarWrap","volumeButton","playedBar","loadedBar","playedBarWrap","playedBarTime","controllerMask","settingButton","settingBox","mask","loopToggle","showDanmaku","showDanmakuToggle","unlimitDanmaku","unlimitDanmakuToggle","speed","speedItem","querySelectorAll","danmakuOpacityBar","danmakuOpacityBarWrap","danmakuOpacityBarWrapWrap","danmakuOpacityBox","commentInput","commentButton","commentSettingBox","commentSettingButton","commentSettingFill","commentSendButton","commentSendFill","commentColorSettingBox","browserFullButton","webFullButton","menu","qualityList","camareButton","subtitleButton","subtitleButtonInner","barPreview","barWrap","logo","tplDanmakumargin","margin","tplQualityList","tplContextmenuList","result","enableSubtitle","SvgSource","iconColor","Danmaku","danTunnel","dan","showing","_opacity","_measure","apiurl","endpoints","_readAllEndpoints","results","sort","a","b","requestAnimationFrame","frame","newAPI","clear","readCount","typeMap","author","player","htmlEncode","border","draw","items","itemHeight","danWidth","danHeight","offsetHeight","itemY","danItemRight","ele","eleWidth","width","eleRight","getBoundingClientRect","danSpeed","getTunnel","tmp","_ret","v","j","danRight","docFragment","createDocumentFragment","itemWidth","tunnel","transform","context","measureStyle","getComputedStyle","getContext","font","getPropertyValue","measureText","str","replace","boolean","Events","playerEvents","info","FullScreen","lastScrollPosition","fullscreenchange","isFullScreen","contains","anotherType","anotherTypeOn","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","webkitEnterFullscreen","cancel","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","request","User","storageName","Subtitle","textTracks","track","oncuechange","cue","activeCues","getCueAsHTML","show","Bar","elements","played","loaded","direction","Time","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","types","lastPlayPos","currentPlayPos","bufferingDetected","loadingChecker","enableloadingChecker","progressChecker","enableprogressChecker","_type","_type2","Bezel","icon","_thumbnails","_thumbnails2","Controller","autoHideTimer","setAutoHide","initPlayButton","initThumbnails","initPlayedBar","initFullButton","initVolumeButton","initQualityButton","initScreenshotButton","initSubtitleButton","toggle","thumbnails","barWidth","videoHeight","videoWidth","thumbMove","clientX","clientWidth","thumbUp","removeEventListener","px","tx","move","innerText","_this6","volumeMove","volumeUp","_this7","switchQuality","_this8","canvas","drawImage","dataURL","toDataURL","href","download","_this9","_this10","disableAutoHide","isShow","Thumbnails","backgroundImage","position","backgroundPosition","ceil","checked","unlimit","danmakuMove","danmakuUp","Comment","toggleSetting","fill","hideSetting","keyCode","showSetting","blur","HotKey","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","ContextMenu","clientRect","clientY","x","y"],"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})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = {\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 getScrollPosition: function getScrollPosition() {\n return {\n left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n };\n },\n setScrollPosition: function setScrollPosition(_ref) {\n var _ref$left = _ref.left, left = _ref$left === undefined ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === undefined ? 0 : _ref$top;\n if (this.isFirefox) {\n document.documentElement.scrollLeft = left;\n document.documentElement.scrollTop = top;\n } else {\n window.scrollTo(left, top);\n }\n },\n isMobile: /mobile/i.test(window.navigator.userAgent),\n isFirefox: /firefox/i.test(window.navigator.userAgent),\n isChrome: /chrome/i.test(window.navigator.userAgent),\n storage: {\n set: function set(key, value) {\n localStorage.setItem(key, value);\n },\n get: function get(key) {\n return localStorage.getItem(key);\n }\n },\n cumulativeOffset: function cumulativeOffset(element) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n return {\n top: top,\n left: left\n };\n }\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\n__webpack_require__(2);\nvar _player = __webpack_require__(3);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c DPlayer ' + \"1.20.1\" + ' ' + \"cda9098\" + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _promisePolyfill = __webpack_require__(4);\nvar _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _options = __webpack_require__(9);\nvar _options2 = _interopRequireDefault(_options);\nvar _i18n = __webpack_require__(12);\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _template = __webpack_require__(13);\nvar _template2 = _interopRequireDefault(_template);\nvar _svg = __webpack_require__(14);\nvar _svg2 = _interopRequireDefault(_svg);\nvar _danmaku = __webpack_require__(15);\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _events = __webpack_require__(16);\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = __webpack_require__(17);\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = __webpack_require__(18);\nvar _user2 = _interopRequireDefault(_user);\nvar _subtitle = __webpack_require__(19);\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _bar = __webpack_require__(20);\nvar _bar2 = _interopRequireDefault(_bar);\nvar _time = __webpack_require__(21);\nvar _time2 = _interopRequireDefault(_time);\nvar _bezel = __webpack_require__(22);\nvar _bezel2 = _interopRequireDefault(_bezel);\nvar _controller = __webpack_require__(23);\nvar _controller2 = _interopRequireDefault(_controller);\nvar _setting = __webpack_require__(25);\nvar _setting2 = _interopRequireDefault(_setting);\nvar _comment = __webpack_require__(26);\nvar _comment2 = _interopRequireDefault(_comment);\nvar _hotkey = __webpack_require__(27);\nvar _hotkey2 = _interopRequireDefault(_hotkey);\nvar _contextmenu = __webpack_require__(28);\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar index = 0;\nvar instances = [];\nvar DPlayer = function () {\n function DPlayer(options) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.options = (0, _options2.default)(options);\n if (this.options.video.quality) {\n this.qualityIndex = this.options.video.defaultQuality;\n this.quality = this.options.video.quality[this.options.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.options.lang).tran;\n this.icons = new _svg2.default(this.options);\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.container = this.options.container;\n this.container.classList.add('dplayer');\n if (!this.options.danmaku) {\n this.container.classList.add('dplayer-no-danmaku');\n }\n if (this.options.live) {\n this.container.classList.add('dplayer-live');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('dplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 500;\n if (this.arrow) {\n this.container.classList.add('dplayer-arrow');\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n index: index,\n tran: this.tran,\n icons: this.icons\n });\n this.video = this.template.video;\n this.bar = new _bar2.default(this.template);\n this.bezel = new _bezel2.default(this.template.bezel);\n this.fullScreen = new _fullscreen2.default(this);\n this.controller = new _controller2.default(this);\n if (this.options.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.template.danmaku,\n opacity: this.user.get('opacity'),\n callback: function callback() {\n setTimeout(function () {\n _this.template.danmakuLoading.style.display = 'none';\n if (_this.options.autoplay) {\n _this.play();\n } else if (_utils2.default.isMobile) {\n _this.pause();\n }\n }, 0);\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.options.apiBackend,\n borderColor: this.options.theme,\n height: this.arrow ? 24 : 30,\n time: function time() {\n return _this.video.currentTime;\n },\n unlimited: this.user.get('unlimited'),\n api: {\n id: this.options.danmaku.id,\n address: this.options.danmaku.api,\n token: this.options.danmaku.token,\n maximum: this.options.danmaku.maximum,\n addition: this.options.danmaku.addition,\n user: this.options.danmaku.user\n },\n events: this.events\n });\n this.comment = new _comment2.default(this);\n }\n this.setting = new _setting2.default(this);\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.container.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n this.paused = true;\n this.time = new _time2.default(this);\n this.hotkey = new _hotkey2.default(this);\n this.contextmenu = new _contextmenu2.default(this);\n this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type);\n if (!this.danmaku && this.options.autoplay) {\n this.play();\n }\n index++;\n instances.push(this);\n }\n _createClass(DPlayer, [\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.video.duration) {\n time = Math.min(time, this.video.duration);\n }\n if (this.video.currentTime < time) {\n this.notice(this.tran('FF') + ' ' + (time - this.video.currentTime).toFixed(0) + ' ' + this.tran('s'));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW') + ' ' + (this.video.currentTime - time).toFixed(0) + ' ' + this.tran('s'));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.bar.set('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this2 = this;\n this.paused = false;\n if (this.video.paused) {\n this.bezel.switch(this.icons.get('play'));\n }\n this.template.playButton.innerHTML = this.icons.get('pause');\n var playedPromise = _promisePolyfill2.default.resolve(this.video.play());\n playedPromise.catch(function () {\n _this2.pause();\n }).then(function () {\n });\n this.time.enable();\n this.container.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n if (this.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (this !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.container.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.switch(this.icons.get('pause'));\n }\n this.ended = false;\n this.template.playButton.innerHTML = this.icons.get('play');\n this.video.pause();\n this.time.disable();\n this.container.classList.remove('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-up');\n } else if (this.volume() > 0) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-down');\n } else {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-off');\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage, nonotice) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.bar.set('volume', percentage, 'width');\n var formatPercentage = (percentage * 100).toFixed(0) + '%';\n this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n if (!nonotice) {\n this.notice(this.tran('Volume') + ' ' + (percentage * 100).toFixed(0) + '%');\n }\n this.video.volume = percentage;\n if (this.video.muted) {\n this.video.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.video.volume;\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'switchVideo',\n value: function switchVideo(video, danmakuAPI) {\n this.pause();\n this.video.poster = video.pic ? video.pic : '';\n this.video.src = video.url;\n this.initMSE(this.video, video.type || 'auto');\n if (danmakuAPI) {\n this.template.danmakuLoading.style.display = 'block';\n this.bar.set('played', 0, 'width');\n this.bar.set('loaded', 0, 'width');\n this.template.ptime.innerHTML = '00:00';\n this.template.danmaku.innerHTML = '';\n if (this.danmaku) {\n this.danmaku.reload({\n id: danmakuAPI.id,\n address: danmakuAPI.api,\n token: danmakuAPI.token,\n maximum: danmakuAPI.maximum,\n addition: danmakuAPI.addition,\n user: danmakuAPI.user\n });\n }\n }\n }\n },\n {\n key: 'initMSE',\n value: function initMSE(video, type) {\n 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 if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n this.type = 'dash';\n } else {\n this.type = 'normal';\n }\n }\n if (this.type === 'hls' && Hls && Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n }\n if (this.type === 'flv' && flvjs && flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n }\n if (this.type === 'dash' && dashjs) {\n dashjs.MediaPlayer().create().initialize(video, video.src, false);\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this3 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this3.template.dtime.innerHTML = _utils2.default.secondToTime(video.duration);\n }\n });\n this.on('progress', function () {\n var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n _this3.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this3.tran && _this3.notice && _this3.notice(_this3.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this3.bar.set('played', 1, 'width');\n if (!_this3.setting.loop) {\n _this3.ended = true;\n _this3.pause();\n } else {\n _this3.seek(0);\n video.play();\n }\n if (_this3.danmaku) {\n _this3.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this3.paused) {\n _this3.play();\n }\n });\n this.on('pause', function () {\n if (!_this3.paused) {\n _this3.pause();\n }\n });\n var _loop = function _loop(i) {\n video.addEventListener(_this3.events.videoEvents[i], function () {\n _this3.events.trigger(_this3.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop(i);\n }\n this.volume(this.user.get('volume'), true, true);\n if (this.options.subtitle) {\n this.subtitle = new _subtitle2.default(this.template.subtitle, this.video, this.options.subtitle, this.events);\n if (!this.user.get('subtitle')) {\n this.subtitle.hide();\n }\n }\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this4 = this;\n if (this.qualityIndex === index || this.switchingQuality) {\n return;\n } else {\n this.qualityIndex = index;\n }\n this.switchingQuality = true;\n this.quality = this.options.video.quality[index];\n this.template.qualityButton.innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = this.template.tplVideo(false, null, this.options.screenshot, 'auto', this.quality.url, this.options.subtitle);\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.options.video.type);\n this.seek(this.prevVideo.currentTime);\n this.notice(this.tran('Switching to') + ' ' + this.quality.name + ' ' + this.tran('quality'), -1);\n this.events.trigger('quality_start', this.quality);\n this.on('canplay', function () {\n if (_this4.prevVideo) {\n if (_this4.video.currentTime !== _this4.prevVideo.currentTime) {\n _this4.seek(_this4.prevVideo.currentTime);\n return;\n }\n _this4.template.videoWrap.removeChild(_this4.prevVideo);\n _this4.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this4.video.play();\n }\n _this4.prevVideo = null;\n _this4.notice(_this4.tran('Switched to') + ' ' + _this4.quality.name + ' ' + _this4.tran('quality'));\n _this4.switchingQuality = false;\n _this4.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'notice',\n value: function notice(text) {\n var _this5 = this;\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n this.template.notice.innerHTML = text;\n this.template.notice.style.opacity = opacity;\n if (this.noticeTime) {\n clearTimeout(this.noticeTime);\n }\n this.events.trigger('notice_show', text);\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n },\n {\n key: 'resize',\n value: function resize() {\n if (this.danmaku) {\n this.danmaku.resize();\n }\n this.events.trigger('resize');\n }\n },\n {\n key: 'speed',\n value: function speed(rate) {\n this.video.playbackRate = rate;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.controller.destroy();\n this.time.destroy();\n this.video.src = '';\n this.container.innerHTML = '';\n this.events.trigger('destroy');\n for (var key in this) {\n if (this.hasOwnProperty(key) && key !== 'paused') {\n delete this[key];\n }\n }\n }\n }\n ]);\n return DPlayer;\n}();\nexports.default = DPlayer;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nvar _proto = Promise.prototype;\n_proto.catch = function (onRejected) {\n return this.then(null, onRejected);\n};\n_proto.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nexports.default = Promise;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5).setImmediate))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar apply = Function.prototype.apply;\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {\n};\nTimeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n};\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n__webpack_require__(6);\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global, process) {\n(function (global, undefined) {\n 'use strict';\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1;\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n if (typeof callback !== 'function') {\n callback = new Function('' + callback);\n }\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n if (currentlyRunningATask) {\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage('', '*');\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n var messagePrefix = 'setImmediate$' + Math.random() + '$';\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === 'string' && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener('message', onGlobalMessage, false);\n } else {\n global.attachEvent('onmessage', onGlobalMessage);\n }\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, '*');\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function registerImmediate(handle) {\n var script = doc.createElement('script');\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n if ({}.toString.call(global.process) === '[object process]') {\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n installMessageChannelImplementation();\n } else if (doc && 'onreadystatechange' in doc.createElement('script')) {\n installReadyStateChangeImplementation();\n } else {\n installSetTimeoutImplementation();\n }\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === 'undefined' ? typeof global === 'undefined' ? undefined : global : self));\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7), __webpack_require__(8)))\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar g;\ng = function () {\n return this;\n}();\ntry {\n g = g || Function('return this')() || (1, eval)('this');\n} catch (e) {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object')\n g = window;\n}\nmodule.exports = g;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar process = module.exports = {};\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n}());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = '';\nprocess.versions = {};\nfunction noop() {\n}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _objectAssign = __webpack_require__(10);\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\nvar _api = __webpack_require__(11);\nvar _api2 = _interopRequireDefault(_api);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('dplayer')[0],\n live: false,\n autoplay: false,\n theme: '#b7daff',\n loop: false,\n lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n screenshot: false,\n hotkey: true,\n preload: 'auto',\n volume: 0.7,\n apiBackend: _api2.default,\n video: {},\n icons: {\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.056z'\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 pallette: [\n '0 0 32 32',\n 'M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z'\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 subtitle: [\n '0 0 32 32',\n 'M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z'\n ]\n },\n iconsColor: '#ffffff',\n contextmenu: [],\n mutex: true\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (options.video) {\n !options.video.type && (options.video.type = 'auto');\n }\n if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n }\n if (options.subtitle) {\n !options.subtitle.type && (options.subtitle.type = 'webvtt');\n !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n !options.subtitle.color && (options.subtitle.color = '#fff');\n }\n if (options.video.quality) {\n options.video.url = [options.video.quality[options.video.defaultQuality].url];\n }\n if (options.lang) {\n options.lang = options.lang.toLowerCase();\n }\n if (options.icons) {\n options.icons = (0, _objectAssign2.default)({}, defaultOption.icons, options.icons);\n }\n options.contextmenu = options.contextmenu.concat([\n {\n text: 'About author',\n link: 'https://diygod.me'\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.20.1\" + ' ' + \"cda9098\",\n link: 'https://github.com/MoePlayer/DPlayer/releases'\n }\n ]);\n return options;\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n}\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n var test1 = new String('abc');\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n }\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n }\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n return false;\n }\n}\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar SendXMLHttpRequest = function SendXMLHttpRequest(url, data, success, error, fail) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n var response = JSON.parse(xhr.responseText);\n if (response.code !== 0) {\n return error(xhr, response);\n }\n return success(xhr, response);\n }\n fail(xhr);\n }\n };\n xhr.open(data !== null ? 'POST' : 'GET', url, true);\n xhr.send(data !== null ? JSON.stringify(data) : null);\n};\nexports.default = {\n send: function send(endpoint, danmakuData, callback) {\n SendXMLHttpRequest(endpoint, danmakuData, function (xhr, response) {\n console.log('Post danmaku: ', response);\n if (callback) {\n callback();\n }\n }, function (xhr, response) {\n alert(response.msg);\n }, function (xhr) {\n console.log('Request was unsuccessful: ' + xhr.status);\n });\n },\n read: function read(endpoint, callback) {\n SendXMLHttpRequest(endpoint, null, function (xhr, response) {\n callback(null, response.danmaku);\n }, function (xhr, response) {\n callback({\n status: xhr.status,\n response: response\n });\n }, function (xhr) {\n callback({\n status: xhr.status,\n response: null\n });\n });\n }\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction i18n(lang) {\n var _this = this;\n this.lang = lang;\n this.tran = function (text) {\n if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n return tranTxt[_this.lang][text];\n } else {\n return text;\n }\n };\n}\nvar tranTxt = {\n 'zh-cn': {\n 'Danmaku is loading': '弹幕加载中',\n 'Top': '顶部',\n 'Bottom': '底部',\n 'Rolling': '滚动',\n 'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n 'About author': '关于作者',\n 'DPlayer feedback': '播放器意见反馈',\n 'About DPlayer': '关于 DPlayer 播放器',\n 'Loop': '洗脑循环',\n 'Speed': '速度',\n 'Opacity for danmaku': '弹幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n 'Set danmaku color': '设置弹幕颜色',\n 'Set danmaku type': '设置弹幕类型',\n 'Show danmaku': '显示弹幕',\n 'This video fails to load': '视频加载失败',\n 'Switching to': '正在切换至',\n 'Switched to': '已经切换至',\n 'quality': '画质',\n 'FF': '快进',\n 'REW': '快退',\n 'Unlimited danmaku': '海量弹幕',\n 'Send danmaku': '发送弹幕',\n 'Setting': '设置',\n 'Full screen': '全屏',\n 'Web full screen': '页面全屏',\n 'Send': '发送',\n 'Screenshot': '截图',\n 's': '秒',\n 'Show subtitle': '显示字幕',\n 'Hide subtitle': '隐藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n },\n 'zh-tw': {\n 'Danmaku is loading': '彈幕加載中',\n 'Top': '頂部',\n 'Bottom': '底部',\n 'Rolling': '滾動',\n 'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n 'About author': '關於作者',\n 'DPlayer feedback': '播放器意見反饋',\n 'About DPlayer': '關於 DPlayer 播放器',\n 'Loop': '循環播放',\n 'Speed': '速度',\n 'Opacity for danmaku': '彈幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '請輸入彈幕内容啊\\uFF01',\n 'Set danmaku color': '設置彈幕顏色',\n 'Set danmaku type': '設置彈幕類型',\n 'Show danmaku': '顯示彈幕',\n 'This video fails to load': '視頻加載失敗',\n 'Switching to': '正在切換至',\n 'Switched to': '已經切換至',\n 'quality': '畫質',\n 'FF': '快進',\n 'REW': '快退',\n 'Unlimited danmaku': '海量彈幕',\n 'Send danmaku': '發送彈幕',\n 'Setting': '設置',\n 'Full screen': '全屏',\n 'Web full screen': '頁面全屏',\n 'Send': '發送',\n 'Screenshot': '截圖',\n 's': '秒',\n 'Show subtitle': '顯示字幕',\n 'Hide subtitle': '隱藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n }\n};\nexports.default = i18n;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.index = options.index;\n this.tran = options.tran;\n this.icons = options.icons;\n this.init();\n }\n _createClass(Template, [\n {\n key: 'init',\n value: function init() {\n this.container.innerHTML = this.tpl(this.options, this.index, this.tran, this.icons);\n this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n this.volumeButton = this.container.querySelector('.dplayer-volume');\n this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n this.playedBar = this.container.querySelector('.dplayer-played');\n this.loadedBar = this.container.querySelector('.dplayer-loaded');\n this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n this.danmaku = this.container.querySelector('.dplayer-danmaku');\n this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n this.video = this.container.querySelector('.dplayer-video-current');\n this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n this.playButton = this.container.querySelector('.dplayer-play-icon');\n this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n this.ptime = this.container.querySelector('.dplayer-ptime');\n this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n this.settingBox = this.container.querySelector('.dplayer-setting-box');\n this.mask = this.container.querySelector('.dplayer-mask');\n this.loop = this.container.querySelector('.dplayer-setting-loop');\n this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n this.speed = this.container.querySelector('.dplayer-setting-speed');\n this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n this.dtime = this.container.querySelector('.dplayer-dtime');\n this.controller = this.container.querySelector('.dplayer-controller');\n this.commentInput = this.container.querySelector('.dplayer-comment-input');\n this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon .dplayer-fill');\n this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n this.commentSendFill = this.container.querySelector('.dplayer-send-icon .dplayer-fill');\n this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n this.menu = this.container.querySelector('.dplayer-menu');\n this.qualityList = this.container.querySelector('.dplayer-quality-list');\n this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n this.subtitle = this.container.querySelector('.dplayer-subtitle');\n this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.notice = this.container.querySelector('.dplayer-notice');\n }\n },\n {\n key: 'tpl',\n value: function tpl(options, index, tran, icons) {\n return '
' + this.tplVideo(true, options.video.pic, options.screenshot, options.preload, options.video.url, options.subtitle) + '' + (options.logo ? '
' : '') + '
' + (options.danmaku ? '' + tran('Danmaku is loading') + '' : '') + '
' + tran('Set danmaku color') + '
' + tran('Set danmaku type') + '
0:00 / 0:00' + (options.live ? '' + tran('Live') + '' : '') + '
' + (options.video.quality ? '
' + this.tplQualityList(options.video.quality) + '
' : '') + '' + (options.screenshot ? '' + icons.get('camera') + '' : '') + '
' + (options.subtitle ? '
' : '') + '
' + tran('Speed') + '
' + icons.get('right') + '
' + tran('Loop') + '
' + tran('Show danmaku') + '
' + tran('Unlimited danmaku') + '
' + tran('Opacity for danmaku') + '
0.5
0.75
' + tran('Normal') + '
1.25
1.5
2
00:00
' + this.tplContextmenuList(options.contextmenu, tran) + '
';\n }\n },\n {\n key: 'tplDanmakumargin',\n value: function tplDanmakumargin(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 },\n {\n key: 'tplContextmenuList',\n value: function tplContextmenuList(contextmenu, tran) {\n var result = '
';\n for (var i = 0; i < contextmenu.length; i++) {\n result += '';\n }\n result += '
';\n return result;\n }\n },\n {\n key: 'tplQualityList',\n value: function tplQualityList(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 },\n {\n key: 'tplVideo',\n value: function tplVideo(current, pic, screenshot, preload, url, subtitle) {\n var enableSubtitle = subtitle && subtitle.type === 'webvtt';\n return '';\n }\n }\n ]);\n return Template;\n}();\nexports.default = Template;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar SvgSource = function () {\n function SvgSource(options) {\n _classCallCheck(this, SvgSource);\n this.icons = options.icons;\n this.iconColor = options.iconsColor;\n }\n _createClass(SvgSource, [{\n key: 'get',\n value: function get(type) {\n return '';\n }\n }]);\n return SvgSource;\n}();\nexports.default = SvgSource;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Danmaku = function () {\n function Danmaku(options) {\n _classCallCheck(this, Danmaku);\n this.options = options;\n this.container = this.options.container;\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.dan = [];\n this.showing = true;\n this._opacity = this.options.opacity;\n this.events = this.options.events;\n this.unlimited = this.options.unlimited;\n this._measure('');\n this.load();\n }\n _createClass(Danmaku, [\n {\n key: 'load',\n value: function load() {\n var _this = this;\n var apiurl = void 0;\n if (this.options.api.maximum) {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id;\n }\n var endpoints = (this.options.api.addition || []).slice(0);\n endpoints.push(apiurl);\n this.events && this.events.trigger('danmaku_load_start', endpoints);\n this._readAllEndpoints(endpoints, function (results) {\n _this.dan = [].concat.apply([], results).sort(function (a, b) {\n return a.time - b.time;\n });\n window.requestAnimationFrame(function () {\n _this.frame();\n });\n _this.options.callback();\n _this.events && _this.events.trigger('danmaku_load_end');\n });\n }\n },\n {\n key: 'reload',\n value: function reload(newAPI) {\n this.options.api = newAPI;\n this.dan = [];\n this.clear();\n this.load();\n }\n },\n {\n key: '_readAllEndpoints',\n value: function _readAllEndpoints(endpoints, callback) {\n var _this2 = this;\n var results = [];\n var readCount = 0;\n var cbk = function cbk(i) {\n return function (err, data) {\n ++readCount;\n if (err) {\n if (err.response) {\n _this2.options.error(err.response.msg);\n } else {\n _this2.options.error('Request was unsuccessful: ' + err.status);\n }\n results[i] = [];\n } else {\n var typeMap = [\n 'right',\n 'top',\n 'bottom'\n ];\n if (data) {\n results[i] = data.map(function (item) {\n return {\n time: item[0],\n type: typeMap[item[1]],\n color: item[2],\n author: item[3],\n text: item[4]\n };\n });\n } else {\n results[i] = [];\n }\n }\n if (readCount === endpoints.length) {\n return callback(results);\n }\n };\n };\n for (var i = 0; i < endpoints.length; ++i) {\n this.options.apiBackend.read(endpoints[i], cbk(i));\n }\n }\n },\n {\n key: 'send',\n value: function send(dan, callback) {\n var danmakuData = {\n token: this.options.api.token,\n player: this.options.api.id,\n author: this.options.api.user,\n time: this.options.time(),\n text: dan.text,\n color: dan.color,\n type: dan.type\n };\n this.options.apiBackend.send(this.options.api.address + 'v2/', danmakuData, callback);\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n var danmaku = {\n text: this.htmlEncode(danmakuData.text),\n color: danmakuData.color,\n type: danmakuData.type,\n border: '2px solid ' + this.options.borderColor\n };\n this.draw(danmaku);\n this.events && this.events.trigger('danmaku_send', danmakuData);\n }\n },\n {\n key: 'frame',\n value: function frame() {\n var _this3 = this;\n if (this.dan.length && !this.paused && this.showing) {\n var item = this.dan[this.danIndex];\n var dan = [];\n while (item && this.options.time() > parseFloat(item.time)) {\n dan.push(item);\n item = this.dan[++this.danIndex];\n }\n this.draw(dan);\n }\n window.requestAnimationFrame(function () {\n _this3.frame();\n });\n }\n },\n {\n key: 'opacity',\n value: function opacity(percentage) {\n if (percentage !== undefined) {\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this._opacity = percentage;\n this.events && this.events.trigger('danmaku_opacity', this._opacity);\n }\n return this._opacity;\n }\n },\n {\n key: 'draw',\n value: function draw(dan) {\n var _this4 = this;\n if (this.showing) {\n var itemHeight = this.options.height;\n var danWidth = this.container.offsetWidth;\n var danHeight = this.container.offsetHeight;\n var itemY = parseInt(danHeight / itemHeight);\n var danItemRight = function danItemRight(ele) {\n var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n var eleRight = ele.getBoundingClientRect().right || _this4.container.getBoundingClientRect().right + eleWidth;\n return _this4.container.getBoundingClientRect().right - eleRight;\n };\n var danSpeed = function danSpeed(width) {\n return (danWidth + width) / 5;\n };\n var getTunnel = function getTunnel(ele, type, width) {\n var tmp = danWidth / danSpeed(width);\n var _loop = function _loop(i) {\n var item = _this4.danTunnel[type][i + ''];\n if (item && item.length) {\n if (type !== 'right') {\n return 'continue';\n }\n for (var j = 0; j < item.length; j++) {\n var danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n _this4.danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n }\n } else {\n _this4.danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n };\n for (var i = 0; _this4.unlimited || i < itemY; i++) {\n var _ret = _loop(i);\n switch (_ret) {\n case 'continue':\n continue;\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object')\n return _ret.v;\n }\n }\n return -1;\n };\n if (Object.prototype.toString.call(dan) !== '[object Array]') {\n dan = [dan];\n }\n var docFragment = document.createDocumentFragment();\n var _loop2 = function _loop2(i) {\n if (!dan[i].type) {\n dan[i].type = 'right';\n }\n if (!dan[i].color) {\n dan[i].color = '#fff';\n }\n var item = document.createElement('div');\n item.classList.add('dplayer-danmaku-item');\n item.classList.add('dplayer-danmaku-' + dan[i].type);\n if (dan[i].border) {\n item.innerHTML = '' + dan[i].text + '';\n } else {\n item.innerHTML = dan[i].text;\n }\n item.style.opacity = _this4._opacity;\n item.style.color = dan[i].color;\n item.addEventListener('animationend', function () {\n _this4.container.removeChild(item);\n });\n var itemWidth = _this4._measure(dan[i].text);\n var tunnel = void 0;\n switch (dan[i].type) {\n case 'right':\n tunnel = getTunnel(item, dan[i].type, itemWidth);\n if (tunnel >= 0) {\n item.style.width = itemWidth + 1 + 'px';\n item.style.top = itemHeight * tunnel + 'px';\n item.style.transform = 'translateX(-' + danWidth + 'px)';\n }\n break;\n case 'top':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.top = itemHeight * tunnel + 'px';\n }\n break;\n case 'bottom':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.bottom = itemHeight * tunnel + 'px';\n }\n break;\n default:\n console.error('Can\\'t handled danmaku type: ' + dan[i].type);\n }\n if (tunnel >= 0) {\n item.classList.add('dplayer-danmaku-move');\n docFragment.appendChild(item);\n }\n };\n for (var i = 0; i < dan.length; i++) {\n _loop2(i);\n }\n this.container.appendChild(docFragment);\n return docFragment;\n }\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n }\n },\n {\n key: '_measure',\n value: function _measure(text) {\n if (!this.context) {\n var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n this.context = document.createElement('canvas').getContext('2d');\n this.context.font = measureStyle.getPropertyValue('font');\n }\n return this.context.measureText(text).width;\n }\n },\n {\n key: 'seek',\n value: function seek() {\n this.clear();\n for (var i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.options.time()) {\n this.danIndex = i;\n break;\n }\n this.danIndex = this.dan.length;\n }\n }\n },\n {\n key: 'clear',\n value: function clear() {\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.options.container.innerHTML = '';\n this.events && this.events.trigger('danmaku_clear');\n }\n },\n {\n key: 'htmlEncode',\n value: function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n },\n {\n key: 'resize',\n value: function resize() {\n var danWidth = this.container.offsetWidth;\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n }\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.showing = false;\n this.pause();\n this.clear();\n this.events && this.events.trigger('danmaku_hide');\n }\n },\n {\n key: 'show',\n value: function show() {\n this.seek();\n this.showing = true;\n this.play();\n this.events && this.events.trigger('danmaku_show');\n }\n },\n {\n key: 'unlimit',\n value: function unlimit(boolean) {\n this.unlimited = boolean;\n }\n }\n ]);\n return Danmaku;\n}();\nexports.default = Danmaku;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Events = function () {\n function Events() {\n _classCallCheck(this, Events);\n this.events = {};\n this.videoEvents = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'mozaudioavailable',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ];\n this.playerEvents = [\n 'screenshot',\n 'thumbnails_show',\n 'thumbnails_hide',\n 'danmaku_show',\n 'danmaku_hide',\n 'danmaku_clear',\n 'danmaku_loaded',\n 'danmaku_send',\n 'danmaku_opacity',\n 'contextmenu_show',\n 'contextmenu_hide',\n 'notice_show',\n 'notice_hide',\n 'quality_start',\n 'quality_end',\n 'destroy',\n 'resize',\n 'fullscreen',\n 'fullscreen_cancel',\n 'webfullscreen',\n 'webfullscreen_cancel',\n 'subtitle_show',\n 'subtitle_hide',\n 'subtitle_change'\n ];\n }\n _createClass(Events, [\n {\n key: 'on',\n value: function on(name, callback) {\n if (this.type(name) && typeof callback === 'function') {\n if (!this.events[name]) {\n this.events[name] = [];\n }\n this.events[name].push(callback);\n }\n }\n },\n {\n key: 'trigger',\n value: function trigger(name, info) {\n if (this.events[name] && this.events[name].length) {\n for (var i = 0; i < this.events[name].length; i++) {\n this.events[name][i](info);\n }\n }\n }\n },\n {\n key: 'type',\n value: function type(name) {\n if (this.playerEvents.indexOf(name) !== -1) {\n return 'player';\n } else if (this.videoEvents.indexOf(name) !== -1) {\n return 'video';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar FullScreen = function () {\n function FullScreen(player) {\n var _this = this;\n _classCallCheck(this, FullScreen);\n this.player = player;\n this.player.events.on('webfullscreen', function () {\n _this.player.resize();\n });\n this.player.events.on('webfullscreen_cancel', function () {\n _this.player.resize();\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n }\n _createClass(FullScreen, [\n {\n key: 'isFullScreen',\n value: function isFullScreen() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n case 'web':\n return this.player.container.classList.contains('dplayer-fulled');\n }\n }\n },\n {\n key: 'request',\n value: function request() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n var anotherType = type === 'browser' ? 'web' : 'browser';\n var anotherTypeOn = this.isFullScreen(anotherType);\n if (!anotherTypeOn) {\n this.lastScrollPosition = _utils2.default.getScrollPosition();\n }\n switch (type) {\n case 'browser':\n if (this.player.container.requestFullscreen) {\n this.player.container.requestFullscreen();\n } else if (this.player.container.mozRequestFullScreen) {\n this.player.container.mozRequestFullScreen();\n } else if (this.player.container.webkitRequestFullscreen) {\n this.player.container.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.container.classList.add('dplayer-fulled');\n document.body.classList.add('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen');\n break;\n }\n if (anotherTypeOn) {\n this.cancel(anotherType);\n }\n }\n },\n {\n key: 'cancel',\n value: function cancel() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n break;\n case 'web':\n this.player.container.classList.remove('dplayer-fulled');\n document.body.classList.remove('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen_cancel');\n break;\n }\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n if (this.isFullScreen(type)) {\n this.cancel(type);\n } else {\n this.request(type);\n }\n }\n }\n ]);\n return FullScreen;\n}();\nexports.default = FullScreen;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar User = function () {\n function User(player) {\n _classCallCheck(this, User);\n this.storageName = {\n opacity: 'dplayer-danmaku-opacity',\n volume: 'dplayer-volume',\n unlimited: 'dplayer-danmaku-unlimited',\n danmaku: 'dplayer-danmaku-show',\n subtitle: 'dplayer-subtitle-show'\n };\n this.default = {\n opacity: 0.7,\n volume: player.options.volume || 0.7,\n unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 1,\n subtitle: 1\n };\n this.data = {};\n this.init();\n }\n _createClass(User, [\n {\n key: 'init',\n value: function init() {\n for (var item in this.storageName) {\n var name = this.storageName[item];\n this.data[item] = parseFloat(_utils2.default.storage.get(name) || this.default[item]);\n }\n }\n },\n {\n key: 'get',\n value: function get(key) {\n return this.data[key];\n }\n },\n {\n key: 'set',\n value: function set(key, value) {\n this.data[key] = value;\n _utils2.default.storage.set(this.storageName[key], value);\n }\n }\n ]);\n return User;\n}();\nexports.default = User;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Subtitle = function () {\n function Subtitle(container, video, options, events) {\n _classCallCheck(this, Subtitle);\n this.container = container;\n this.video = video;\n this.options = options;\n this.events = events;\n this.init();\n }\n _createClass(Subtitle, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.container.style.fontSize = this.options.fontSize;\n this.container.style.bottom = this.options.bottom;\n this.container.style.color = this.options.color;\n if (this.video.textTracks && this.video.textTracks[0]) {\n var track = this.video.textTracks[0];\n track.oncuechange = function () {\n var cue = track.activeCues[0];\n if (cue) {\n _this.container.innerHTML = '';\n var p = document.createElement('p');\n p.appendChild(cue.getCueAsHTML());\n _this.container.appendChild(p);\n } else {\n _this.container.innerHTML = '';\n }\n _this.events.trigger('subtitle_change');\n };\n }\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.classList.remove('dplayer-subtitle-hide');\n this.events.trigger('subtitle_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.classList.add('dplayer-subtitle-hide');\n this.events.trigger('subtitle_hide');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.container.classList.contains('dplayer-subtitle-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n ]);\n return Subtitle;\n}();\nexports.default = Subtitle;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volumeBar;\n this.elements.played = template.playedBar;\n this.elements.loaded = template.loadedBar;\n this.elements.danmaku = template.danmakuOpacityBar;\n }\n _createClass(Bar, [\n {\n key: 'set',\n value: function set(type, percentage, direction) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.elements[type].style[direction] = percentage * 100 + '%';\n }\n },\n {\n key: 'get',\n value: function get(type) {\n return parseFloat(this.elements[type].style.width) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Time = function () {\n function Time(player) {\n _classCallCheck(this, Time);\n this.player = player;\n window.requestAnimationFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n this.types = [\n 'loading',\n 'progress'\n ];\n this.init();\n }\n _createClass(Time, [\n {\n key: 'init',\n value: function init() {\n for (var i = 0; i < this.types.length; i++) {\n var type = this.types[i];\n this['init' + type + 'Checker']();\n }\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this.enableloadingChecker) {\n currentPlayPos = _this.player.video.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'initprogressChecker',\n value: function initprogressChecker() {\n var _this2 = this;\n this.progressChecker = setInterval(function () {\n if (_this2.enableprogressChecker) {\n _this2.player.bar.set('played', _this2.player.video.currentTime / _this2.player.video.duration, 'width');\n var currentTime = _utils2.default.secondToTime(_this2.player.video.currentTime);\n if (_this2.player.template.ptime.innerHTML !== currentTime) {\n _this2.player.template.ptime.innerHTML = _utils2.default.secondToTime(_this2.player.video.currentTime);\n }\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = true;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type = this.types[i];\n this['enable' + _type + 'Checker'] = true;\n }\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = false;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type2 = this.types[i];\n this['enable' + _type2 + 'Checker'] = false;\n }\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy(type) {\n if (type) {\n clearInterval(this[type + 'Checker']);\n } else {\n for (var i = 0; i < this.types.length; i++) {\n clearInterval(this[this.types[i] + 'Checker']);\n }\n }\n }\n }\n ]);\n return Time;\n}();\nexports.default = Time;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bezel = function () {\n function Bezel(container) {\n var _this = this;\n _classCallCheck(this, Bezel);\n this.container = container;\n this.container.addEventListener('animationend', function () {\n _this.container.classList.remove('dplayer-bezel-transition');\n });\n }\n _createClass(Bezel, [{\n key: 'switch',\n value: function _switch(icon) {\n this.container.innerHTML = icon;\n this.container.classList.add('dplayer-bezel-transition');\n }\n }]);\n return Bezel;\n}();\nexports.default = Bezel;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _thumbnails = __webpack_require__(24);\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n var _this = this;\n _classCallCheck(this, Controller);\n this.player = player;\n this.autoHideTimer = 0;\n if (!_utils2.default.isMobile) {\n this.player.container.addEventListener('mousemove', function () {\n _this.setAutoHide();\n });\n this.player.container.addEventListener('click', function () {\n _this.setAutoHide();\n });\n }\n this.initPlayButton();\n this.initThumbnails();\n this.initPlayedBar();\n this.initFullButton();\n this.initVolumeButton();\n this.initQualityButton();\n this.initScreenshotButton();\n this.initSubtitleButton();\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this2 = this;\n this.player.template.playButton.addEventListener('click', function () {\n _this2.player.toggle();\n });\n if (!_utils2.default.isMobile) {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.player.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.player.toggle();\n });\n } else {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.toggle();\n });\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this3 = this;\n if (this.player.options.video.thumbnails) {\n this.thumbnails = new _thumbnails2.default({\n container: this.player.template.barPreview,\n barWidth: this.player.template.barWrap.offsetWidth,\n url: this.player.options.video.thumbnails,\n events: this.player.events\n });\n this.player.on('loadedmetadata', function () {\n _this3.thumbnails.resize(160, _this3.player.video.videoHeight / _this3.player.video.videoWidth * 160);\n });\n }\n }\n },\n {\n key: 'initPlayedBar',\n value: function initPlayedBar() {\n var _this4 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this4.player.video.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.seek(_this4.player.bar.get('played') * _this4.player.video.duration);\n _this4.player.time.enable('progress');\n };\n this.player.template.playedBarWrap.addEventListener('mousedown', function () {\n _this4.player.time.disable('progress');\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n this.player.template.playedBarWrap.addEventListener('mousemove', function (e) {\n if (_this4.player.video.duration) {\n var px = _utils2.default.cumulativeOffset(_this4.player.template.playedBarWrap).left;\n var tx = e.clientX - px;\n if (tx < 0 || tx > _this4.player.template.playedBarWrap.offsetWidth) {\n return;\n }\n var time = _this4.player.video.duration * (tx / _this4.player.template.playedBarWrap.offsetWidth);\n _this4.thumbnails && _this4.thumbnails.move(tx);\n _this4.player.template.playedBarTime.style.left = tx - 20 + 'px';\n _this4.player.template.playedBarTime.innerText = _utils2.default.secondToTime(time);\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.show();\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.player.template.playedBarTime.classList.add('hidden');\n }\n });\n }\n },\n {\n key: 'initFullButton',\n value: function initFullButton() {\n var _this5 = this;\n this.player.template.browserFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('browser');\n });\n this.player.template.webFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('web');\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this6 = this;\n var vWidth = 35;\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n _this6.player.template.volumeButton.classList.remove('dplayer-volume-active');\n };\n this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n });\n this.player.template.volumeBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n _this6.player.template.volumeButton.classList.add('dplayer-volume-active');\n });\n this.player.template.volumeIcon.addEventListener('click', function () {\n if (_this6.player.video.muted) {\n _this6.player.video.muted = false;\n _this6.player.switchVolumeIcon();\n _this6.player.bar.set('volume', _this6.player.volume(), 'width');\n } else {\n _this6.player.video.muted = true;\n _this6.player.template.volumeIcon.innerHTML = _this6.player.icons.get('volume-off');\n _this6.player.bar.set('volume', 0, 'width');\n }\n });\n }\n },\n {\n key: 'initQualityButton',\n value: function initQualityButton() {\n var _this7 = this;\n if (this.player.options.video.quality) {\n this.player.template.qualityList.addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this7.player.switchQuality(e.target.dataset.index);\n }\n });\n }\n }\n },\n {\n key: 'initScreenshotButton',\n value: function initScreenshotButton() {\n var _this8 = this;\n if (this.player.options.screenshot) {\n this.player.template.camareButton.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this8.player.video.videoWidth;\n canvas.height = _this8.player.video.videoHeight;\n canvas.getContext('2d').drawImage(_this8.player.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n _this8.player.template.camareButton.href = dataURL;\n _this8.player.template.camareButton.download = 'DPlayer.png';\n _this8.player.events.trigger('screenshot', dataURL);\n });\n }\n }\n },\n {\n key: 'initSubtitleButton',\n value: function initSubtitleButton() {\n var _this9 = this;\n if (this.player.options.subtitle) {\n this.player.events.on('subtitle_show', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Hide subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '';\n _this9.player.user.set('subtitle', 1);\n });\n this.player.events.on('subtitle_hide', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Show subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '0.4';\n _this9.player.user.set('subtitle', 0);\n });\n this.player.template.subtitleButton.addEventListener('click', function () {\n _this9.player.subtitle.toggle();\n });\n }\n }\n },\n {\n key: 'setAutoHide',\n value: function setAutoHide() {\n var _this10 = this;\n this.show();\n clearTimeout(this.autoHideTimer);\n this.autoHideTimer = setTimeout(function () {\n if (_this10.player.video.played.length && !_this10.disableAutoHide) {\n _this10.hide();\n }\n }, 2000);\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.container.classList.remove('dplayer-hide-controller');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.container.classList.add('dplayer-hide-controller');\n this.player.setting.hide();\n this.player.comment && this.player.comment.hide();\n }\n },\n {\n key: 'isShow',\n value: function isShow() {\n return !this.player.container.classList.contains('dplayer-hide-controller');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.isShow()) {\n this.hide();\n } else {\n this.show();\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n clearTimeout(this.autoHideTimer);\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Thumbnails = function () {\n function Thumbnails(options) {\n _classCallCheck(this, Thumbnails);\n this.container = options.container;\n this.barWidth = options.barWidth;\n this.container.style.backgroundImage = 'url(\\'' + options.url + '\\')';\n this.events = options.events;\n }\n _createClass(Thumbnails, [\n {\n key: 'resize',\n value: function resize(width, height) {\n this.container.style.width = width + 'px';\n this.container.style.height = height + 'px';\n this.container.style.top = -height + 2 + 'px';\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.style.display = 'block';\n this.events && this.events.trigger('thumbnails_show');\n }\n },\n {\n key: 'move',\n value: function move(position) {\n this.container.style.backgroundPosition = '-' + (Math.ceil(position / this.barWidth * 100) - 1) * 160 + 'px 0';\n this.container.style.left = position - this.container.offsetWidth / 2 + 'px';\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.style.display = 'none';\n this.events && this.events.trigger('thumbnails_hide');\n }\n }\n ]);\n return Thumbnails;\n}();\nexports.default = Thumbnails;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = __webpack_require__(0);\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Setting = function () {\n function Setting(player) {\n var _this = this;\n _classCallCheck(this, Setting);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.settingButton.addEventListener('click', function () {\n _this.show();\n });\n this.loop = this.player.options.loop;\n this.player.template.loopToggle.checked = this.loop;\n this.player.template.loop.addEventListener('click', function () {\n _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n if (_this.player.template.loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n _this.hide();\n });\n this.showDanmaku = this.player.user.get('danmaku');\n if (!this.showDanmaku) {\n this.player.danmaku && this.player.danmaku.hide();\n }\n this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n this.player.template.showDanmaku.addEventListener('click', function () {\n _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n if (_this.player.template.showDanmakuToggle.checked) {\n _this.showDanmaku = true;\n _this.player.danmaku.show();\n } else {\n _this.showDanmaku = false;\n _this.player.danmaku.hide();\n }\n _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n _this.hide();\n });\n this.unlimitDanmaku = this.player.user.get('unlimited');\n this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n this.player.template.unlimitDanmaku.addEventListener('click', function () {\n _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n if (_this.player.template.unlimitDanmakuToggle.checked) {\n _this.unlimitDanmaku = true;\n _this.player.danmaku.unlimit(true);\n } else {\n _this.unlimitDanmaku = false;\n _this.player.danmaku.unlimit(false);\n }\n _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n _this.hide();\n });\n this.player.template.speed.addEventListener('click', function () {\n _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n });\n var _loop = function _loop(i) {\n _this.player.template.speedItem[i].addEventListener('click', function () {\n _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n _this.hide();\n });\n };\n for (var i = 0; i < this.player.template.speedItem.length; i++) {\n _loop(i);\n }\n if (this.player.danmaku) {\n var dWidth = 130;\n this.player.on('danmaku_opacity', function (percentage) {\n _this.player.bar.set('danmaku', percentage, 'width');\n _this.player.user.set('opacity', percentage);\n });\n this.player.danmaku.opacity(this.player.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n };\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n });\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n }\n _createClass(Setting, [\n {\n key: 'hide',\n value: function hide() {\n var _this2 = this;\n this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n }, 300);\n this.player.controller.disableAutoHide = false;\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.controller.disableAutoHide = true;\n }\n }\n ]);\n return Setting;\n}();\nexports.default = Setting;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Comment = function () {\n function Comment(player) {\n var _this = this;\n _classCallCheck(this, Comment);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.commentButton.addEventListener('click', function () {\n _this.show();\n });\n this.player.template.commentSettingButton.addEventListener('click', function () {\n _this.toggleSetting();\n });\n this.player.template.commentColorSettingBox.addEventListener('click', function () {\n var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n if (sele) {\n var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n _this.player.template.commentSettingFill.style.fill = color;\n _this.player.template.commentInput.style.color = color;\n _this.player.template.commentSendFill.style.fill = color;\n }\n });\n this.player.template.commentInput.addEventListener('click', function () {\n _this.hideSetting();\n });\n this.player.template.commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n _this.send();\n }\n });\n this.player.template.commentSendButton.addEventListener('click', function () {\n _this.send();\n });\n }\n _createClass(Comment, [\n {\n key: 'show',\n value: function show() {\n this.player.controller.disableAutoHide = true;\n this.player.template.controller.classList.add('dplayer-controller-comment');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.container.classList.add('dplayer-show-controller');\n this.player.template.commentInput.focus();\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.controller.classList.remove('dplayer-controller-comment');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.container.classList.remove('dplayer-show-controller');\n this.player.controller.disableAutoHide = false;\n this.hideSetting();\n }\n },\n {\n key: 'showSetting',\n value: function showSetting() {\n this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n },\n {\n key: 'hideSetting',\n value: function hideSetting() {\n this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n },\n {\n key: 'toggleSetting',\n value: function toggleSetting() {\n if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n this.hideSetting();\n } else {\n this.showSetting();\n }\n }\n },\n {\n key: 'send',\n value: function send() {\n var _this2 = this;\n this.player.template.commentInput.blur();\n if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n this.player.notice(this.player.tran('Please input danmaku content!'));\n return;\n }\n this.player.danmaku.send({\n text: this.player.template.commentInput.value,\n color: this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n _this2.player.template.commentInput.value = '';\n _this2.hide();\n });\n }\n }\n ]);\n return Comment;\n}();\nexports.default = Comment;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar HotKey = function HotKey(player) {\n _classCallCheck(this, HotKey);\n if (player.options.hotkey) {\n document.addEventListener('keydown', function (e) {\n if (player.focus) {\n var tag = document.activeElement.tagName.toUpperCase();\n var editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n var event = e || window.event;\n var percentage = void 0;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n case 37:\n event.preventDefault();\n player.seek(player.video.currentTime - 5);\n player.controller.setAutoHide();\n break;\n case 39:\n event.preventDefault();\n player.seek(player.video.currentTime + 5);\n player.controller.setAutoHide();\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n break;\n }\n }\n }\n });\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (player.fullScreen.isFullScreen('web')) {\n player.fullScreen.cancel('web');\n }\n break;\n }\n });\n};\nexports.default = HotKey;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar ContextMenu = function () {\n function ContextMenu(player) {\n var _this = this;\n _classCallCheck(this, ContextMenu);\n this.player = player;\n this.player.container.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n var clientRect = _this.player.container.getBoundingClientRect();\n _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n _this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n });\n }\n _createClass(ContextMenu, [\n {\n key: 'show',\n value: function show(x, y) {\n this.player.template.menu.classList.add('dplayer-menu-show');\n var clientRect = this.player.container.getBoundingClientRect();\n if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n this.player.template.menu.style.right = clientRect.width - x + 'px';\n this.player.template.menu.style.left = 'initial';\n } else {\n this.player.template.menu.style.left = x + 'px';\n this.player.template.menu.style.right = 'initial';\n }\n if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n this.player.template.menu.style.top = 'initial';\n } else {\n this.player.template.menu.style.top = y + 'px';\n this.player.template.menu.style.bottom = 'initial';\n }\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.events.trigger('contextmenu_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.template.menu.classList.remove('dplayer-menu-show');\n this.player.events.trigger('contextmenu_hide');\n }\n }\n ]);\n return ContextMenu;\n}();\nexports.default = ContextMenu;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// DPlayer.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1dd4d683423d73b5e7d1","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = {\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 getScrollPosition: function getScrollPosition() {\n return {\n left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n };\n },\n setScrollPosition: function setScrollPosition(_ref) {\n var _ref$left = _ref.left, left = _ref$left === undefined ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === undefined ? 0 : _ref$top;\n if (this.isFirefox) {\n document.documentElement.scrollLeft = left;\n document.documentElement.scrollTop = top;\n } else {\n window.scrollTo(left, top);\n }\n },\n isMobile: /mobile/i.test(window.navigator.userAgent),\n isFirefox: /firefox/i.test(window.navigator.userAgent),\n isChrome: /chrome/i.test(window.navigator.userAgent),\n storage: {\n set: function set(key, value) {\n localStorage.setItem(key, value);\n },\n get: function get(key) {\n return localStorage.getItem(key);\n }\n },\n cumulativeOffset: function cumulativeOffset(element) {\n var top = 0, left = 0;\n do {\n top += element.offsetTop || 0;\n left += element.offsetLeft || 0;\n element = element.offsetParent;\n } while (element);\n return {\n top: top,\n left: left\n };\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/utils.js\n// module id = 0\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nrequire('../css/index.scss');\nvar _player = require('./player');\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c DPlayer ' + DPLAYER_VERSION + ' ' + GIT_HASH + ' %c http://dplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/index.js\n// module id = 1\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _promisePolyfill = require('promise-polyfill');\nvar _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _options = require('./options');\nvar _options2 = _interopRequireDefault(_options);\nvar _i18n = require('./i18n');\nvar _i18n2 = _interopRequireDefault(_i18n);\nvar _template = require('./template');\nvar _template2 = _interopRequireDefault(_template);\nvar _svg = require('./svg');\nvar _svg2 = _interopRequireDefault(_svg);\nvar _danmaku = require('./danmaku');\nvar _danmaku2 = _interopRequireDefault(_danmaku);\nvar _events = require('./events');\nvar _events2 = _interopRequireDefault(_events);\nvar _fullscreen = require('./fullscreen');\nvar _fullscreen2 = _interopRequireDefault(_fullscreen);\nvar _user = require('./user');\nvar _user2 = _interopRequireDefault(_user);\nvar _subtitle = require('./subtitle');\nvar _subtitle2 = _interopRequireDefault(_subtitle);\nvar _bar = require('./bar');\nvar _bar2 = _interopRequireDefault(_bar);\nvar _time = require('./time');\nvar _time2 = _interopRequireDefault(_time);\nvar _bezel = require('./bezel');\nvar _bezel2 = _interopRequireDefault(_bezel);\nvar _controller = require('./controller');\nvar _controller2 = _interopRequireDefault(_controller);\nvar _setting = require('./setting');\nvar _setting2 = _interopRequireDefault(_setting);\nvar _comment = require('./comment');\nvar _comment2 = _interopRequireDefault(_comment);\nvar _hotkey = require('./hotkey');\nvar _hotkey2 = _interopRequireDefault(_hotkey);\nvar _contextmenu = require('./contextmenu');\nvar _contextmenu2 = _interopRequireDefault(_contextmenu);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar index = 0;\nvar instances = [];\nvar DPlayer = function () {\n function DPlayer(options) {\n var _this = this;\n _classCallCheck(this, DPlayer);\n this.options = (0, _options2.default)(options);\n if (this.options.video.quality) {\n this.qualityIndex = this.options.video.defaultQuality;\n this.quality = this.options.video.quality[this.options.video.defaultQuality];\n }\n this.tran = new _i18n2.default(this.options.lang).tran;\n this.icons = new _svg2.default(this.options);\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.container = this.options.container;\n this.container.classList.add('dplayer');\n if (!this.options.danmaku) {\n this.container.classList.add('dplayer-no-danmaku');\n }\n if (this.options.live) {\n this.container.classList.add('dplayer-live');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('dplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 500;\n if (this.arrow) {\n this.container.classList.add('dplayer-arrow');\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n index: index,\n tran: this.tran,\n icons: this.icons\n });\n this.video = this.template.video;\n this.bar = new _bar2.default(this.template);\n this.bezel = new _bezel2.default(this.template.bezel);\n this.fullScreen = new _fullscreen2.default(this);\n this.controller = new _controller2.default(this);\n if (this.options.danmaku) {\n this.danmaku = new _danmaku2.default({\n container: this.template.danmaku,\n opacity: this.user.get('opacity'),\n callback: function callback() {\n setTimeout(function () {\n _this.template.danmakuLoading.style.display = 'none';\n if (_this.options.autoplay) {\n _this.play();\n } else if (_utils2.default.isMobile) {\n _this.pause();\n }\n }, 0);\n },\n error: function error(msg) {\n _this.notice(msg);\n },\n apiBackend: this.options.apiBackend,\n borderColor: this.options.theme,\n height: this.arrow ? 24 : 30,\n time: function time() {\n return _this.video.currentTime;\n },\n unlimited: this.user.get('unlimited'),\n api: {\n id: this.options.danmaku.id,\n address: this.options.danmaku.api,\n token: this.options.danmaku.token,\n maximum: this.options.danmaku.maximum,\n addition: this.options.danmaku.addition,\n user: this.options.danmaku.user\n },\n events: this.events\n });\n this.comment = new _comment2.default(this);\n }\n this.setting = new _setting2.default(this);\n document.addEventListener('click', function () {\n _this.focus = false;\n }, true);\n this.container.addEventListener('click', function () {\n _this.focus = true;\n }, true);\n this.paused = true;\n this.time = new _time2.default(this);\n this.hotkey = new _hotkey2.default(this);\n this.contextmenu = new _contextmenu2.default(this);\n this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type);\n if (!this.danmaku && this.options.autoplay) {\n this.play();\n }\n index++;\n instances.push(this);\n }\n _createClass(DPlayer, [\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.video.duration) {\n time = Math.min(time, this.video.duration);\n }\n if (this.video.currentTime < time) {\n this.notice(this.tran('FF') + ' ' + (time - this.video.currentTime).toFixed(0) + ' ' + this.tran('s'));\n } else if (this.video.currentTime > time) {\n this.notice(this.tran('REW') + ' ' + (this.video.currentTime - time).toFixed(0) + ' ' + this.tran('s'));\n }\n this.video.currentTime = time;\n if (this.danmaku) {\n this.danmaku.seek();\n }\n this.bar.set('played', time / this.video.duration, 'width');\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this2 = this;\n this.paused = false;\n if (this.video.paused) {\n this.bezel.switch(this.icons.get('play'));\n }\n this.template.playButton.innerHTML = this.icons.get('pause');\n var playedPromise = _promisePolyfill2.default.resolve(this.video.play());\n playedPromise.catch(function () {\n _this2.pause();\n }).then(function () {\n });\n this.time.enable();\n this.container.classList.add('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.play();\n }\n if (this.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (this !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n this.container.classList.remove('dplayer-loading');\n if (!this.video.paused) {\n this.bezel.switch(this.icons.get('pause'));\n }\n this.ended = false;\n this.template.playButton.innerHTML = this.icons.get('play');\n this.video.pause();\n this.time.disable();\n this.container.classList.remove('dplayer-playing');\n if (this.danmaku) {\n this.danmaku.pause();\n }\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-up');\n } else if (this.volume() > 0) {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-down');\n } else {\n this.template.volumeIcon.innerHTML = this.icons.get('volume-off');\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage, nonotice) {\n percentage = parseFloat(percentage);\n if (!isNaN(percentage)) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.bar.set('volume', percentage, 'width');\n var formatPercentage = (percentage * 100).toFixed(0) + '%';\n this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n if (!nonotice) {\n this.notice(this.tran('Volume') + ' ' + (percentage * 100).toFixed(0) + '%');\n }\n this.video.volume = percentage;\n if (this.video.muted) {\n this.video.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.video.volume;\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.video.paused) {\n this.play();\n } else {\n this.pause();\n }\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'switchVideo',\n value: function switchVideo(video, danmakuAPI) {\n this.pause();\n this.video.poster = video.pic ? video.pic : '';\n this.video.src = video.url;\n this.initMSE(this.video, video.type || 'auto');\n if (danmakuAPI) {\n this.template.danmakuLoading.style.display = 'block';\n this.bar.set('played', 0, 'width');\n this.bar.set('loaded', 0, 'width');\n this.template.ptime.innerHTML = '00:00';\n this.template.danmaku.innerHTML = '';\n if (this.danmaku) {\n this.danmaku.reload({\n id: danmakuAPI.id,\n address: danmakuAPI.api,\n token: danmakuAPI.token,\n maximum: danmakuAPI.maximum,\n addition: danmakuAPI.addition,\n user: danmakuAPI.user\n });\n }\n }\n }\n },\n {\n key: 'initMSE',\n value: function initMSE(video, type) {\n 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 if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n this.type = 'dash';\n } else {\n this.type = 'normal';\n }\n }\n if (this.type === 'hls' && Hls && Hls.isSupported()) {\n var hls = new Hls();\n hls.loadSource(video.src);\n hls.attachMedia(video);\n }\n if (this.type === 'flv' && flvjs && flvjs.isSupported()) {\n var flvPlayer = flvjs.createPlayer({\n type: 'flv',\n url: video.src\n });\n flvPlayer.attachMediaElement(video);\n flvPlayer.load();\n }\n if (this.type === 'dash' && dashjs) {\n dashjs.MediaPlayer().create().initialize(video, video.src, false);\n }\n }\n },\n {\n key: 'initVideo',\n value: function initVideo(video, type) {\n var _this3 = this;\n this.initMSE(video, type);\n this.on('durationchange', function () {\n if (video.duration !== 1) {\n _this3.template.dtime.innerHTML = _utils2.default.secondToTime(video.duration);\n }\n });\n this.on('progress', function () {\n var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n _this3.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this3.tran && _this3.notice && _this3.notice(_this3.tran('This video fails to load'), -1);\n });\n this.ended = false;\n this.on('ended', function () {\n _this3.bar.set('played', 1, 'width');\n if (!_this3.setting.loop) {\n _this3.ended = true;\n _this3.pause();\n } else {\n _this3.seek(0);\n video.play();\n }\n if (_this3.danmaku) {\n _this3.danmaku.danIndex = 0;\n }\n });\n this.on('play', function () {\n if (_this3.paused) {\n _this3.play();\n }\n });\n this.on('pause', function () {\n if (!_this3.paused) {\n _this3.pause();\n }\n });\n var _loop = function _loop(i) {\n video.addEventListener(_this3.events.videoEvents[i], function () {\n _this3.events.trigger(_this3.events.videoEvents[i]);\n });\n };\n for (var i = 0; i < this.events.videoEvents.length; i++) {\n _loop(i);\n }\n this.volume(this.user.get('volume'), true, true);\n if (this.options.subtitle) {\n this.subtitle = new _subtitle2.default(this.template.subtitle, this.video, this.options.subtitle, this.events);\n if (!this.user.get('subtitle')) {\n this.subtitle.hide();\n }\n }\n }\n },\n {\n key: 'switchQuality',\n value: function switchQuality(index) {\n var _this4 = this;\n if (this.qualityIndex === index || this.switchingQuality) {\n return;\n } else {\n this.qualityIndex = index;\n }\n this.switchingQuality = true;\n this.quality = this.options.video.quality[index];\n this.template.qualityButton.innerHTML = this.quality.name;\n var paused = this.video.paused;\n this.video.pause();\n var videoHTML = this.template.tplVideo(false, null, this.options.screenshot, 'auto', this.quality.url, this.options.subtitle);\n var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n this.prevVideo = this.video;\n this.video = videoEle;\n this.initVideo(this.video, this.quality.type || this.options.video.type);\n this.seek(this.prevVideo.currentTime);\n this.notice(this.tran('Switching to') + ' ' + this.quality.name + ' ' + this.tran('quality'), -1);\n this.events.trigger('quality_start', this.quality);\n this.on('canplay', function () {\n if (_this4.prevVideo) {\n if (_this4.video.currentTime !== _this4.prevVideo.currentTime) {\n _this4.seek(_this4.prevVideo.currentTime);\n return;\n }\n _this4.template.videoWrap.removeChild(_this4.prevVideo);\n _this4.video.classList.add('dplayer-video-current');\n if (!paused) {\n _this4.video.play();\n }\n _this4.prevVideo = null;\n _this4.notice(_this4.tran('Switched to') + ' ' + _this4.quality.name + ' ' + _this4.tran('quality'));\n _this4.switchingQuality = false;\n _this4.events.trigger('quality_end');\n }\n });\n }\n },\n {\n key: 'notice',\n value: function notice(text) {\n var _this5 = this;\n var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n this.template.notice.innerHTML = text;\n this.template.notice.style.opacity = opacity;\n if (this.noticeTime) {\n clearTimeout(this.noticeTime);\n }\n this.events.trigger('notice_show', text);\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n },\n {\n key: 'resize',\n value: function resize() {\n if (this.danmaku) {\n this.danmaku.resize();\n }\n this.events.trigger('resize');\n }\n },\n {\n key: 'speed',\n value: function speed(rate) {\n this.video.playbackRate = rate;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.controller.destroy();\n this.time.destroy();\n this.video.src = '';\n this.container.innerHTML = '';\n this.events.trigger('destroy');\n for (var key in this) {\n if (this.hasOwnProperty(key) && key !== 'paused') {\n delete this[key];\n }\n }\n }\n }\n ]);\n return DPlayer;\n}();\nexports.default = DPlayer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/player.js\n// module id = 3\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nvar _proto = Promise.prototype;\n_proto.catch = function (onRejected) {\n return this.then(null, onRejected);\n};\n_proto.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nexports.default = Promise;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise-polyfill/src/index.js\n// module id = 4\n// module chunks = 0","'use strict';\nvar apply = Function.prototype.apply;\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {\n};\nTimeout.prototype.close = function () {\n this._clearFn.call(window, this._id);\n};\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\nrequire('setimmediate');\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/timers-browserify/main.js\n// module id = 5\n// module chunks = 0","'use strict';\n(function (global, undefined) {\n 'use strict';\n if (global.setImmediate) {\n return;\n }\n var nextHandle = 1;\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n function setImmediate(callback) {\n if (typeof callback !== 'function') {\n callback = new Function('' + callback);\n }\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n function runIfPresent(handle) {\n if (currentlyRunningATask) {\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n function canUsePostMessage() {\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n global.postMessage('', '*');\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n function installPostMessageImplementation() {\n var messagePrefix = 'setImmediate$' + Math.random() + '$';\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === 'string' && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n if (global.addEventListener) {\n global.addEventListener('message', onGlobalMessage, false);\n } else {\n global.attachEvent('onmessage', onGlobalMessage);\n }\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, '*');\n };\n }\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function registerImmediate(handle) {\n var script = doc.createElement('script');\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n if ({}.toString.call(global.process) === '[object process]') {\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n installMessageChannelImplementation();\n } else if (doc && 'onreadystatechange' in doc.createElement('script')) {\n installReadyStateChangeImplementation();\n } else {\n installSetTimeoutImplementation();\n }\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === 'undefined' ? typeof global === 'undefined' ? undefined : global : self));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/setimmediate/setImmediate.js\n// module id = 6\n// module chunks = 0","'use strict';\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar g;\ng = function () {\n return this;\n}();\ntry {\n g = g || Function('return this')() || (1, eval)('this');\n} catch (e) {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object')\n g = window;\n}\nmodule.exports = g;\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 7\n// module chunks = 0","'use strict';\nvar process = module.exports = {};\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n}());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n return setTimeout(fun, 0);\n }\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n return clearTimeout(marker);\n }\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n while (len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = '';\nprocess.versions = {};\nfunction noop() {\n}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n return [];\n};\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n return '/';\n};\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n return 0;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 8\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _objectAssign = require('object-assign');\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\nvar _api = require('./api.js');\nvar _api2 = _interopRequireDefault(_api);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('dplayer')[0],\n live: false,\n autoplay: false,\n theme: '#b7daff',\n loop: false,\n lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n screenshot: false,\n hotkey: true,\n preload: 'auto',\n volume: 0.7,\n apiBackend: _api2.default,\n video: {},\n icons: {\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.056z'\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 pallette: [\n '0 0 32 32',\n 'M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z'\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 subtitle: [\n '0 0 32 32',\n 'M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z'\n ]\n },\n iconsColor: '#ffffff',\n contextmenu: [],\n mutex: true\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (options.video) {\n !options.video.type && (options.video.type = 'auto');\n }\n if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n }\n if (options.subtitle) {\n !options.subtitle.type && (options.subtitle.type = 'webvtt');\n !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n !options.subtitle.color && (options.subtitle.color = '#fff');\n }\n if (options.video.quality) {\n options.video.url = [options.video.quality[options.video.defaultQuality].url];\n }\n if (options.lang) {\n options.lang = options.lang.toLowerCase();\n }\n if (options.icons) {\n options.icons = (0, _objectAssign2.default)({}, defaultOption.icons, options.icons);\n }\n options.contextmenu = options.contextmenu.concat([\n {\n text: 'About author',\n link: 'https://diygod.me'\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/releases'\n }\n ]);\n return options;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/options.js\n// module id = 9\n// module chunks = 0","'use strict';\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n return Object(val);\n}\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n var test1 = new String('abc');\n test1[5] = 'de';\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n }\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n if (order2.join('') !== '0123456789') {\n return false;\n }\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n return true;\n } catch (err) {\n return false;\n }\n}\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/object-assign/index.js\n// module id = 10\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar SendXMLHttpRequest = function SendXMLHttpRequest(url, data, success, error, fail) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n var response = JSON.parse(xhr.responseText);\n if (response.code !== 0) {\n return error(xhr, response);\n }\n return success(xhr, response);\n }\n fail(xhr);\n }\n };\n xhr.open(data !== null ? 'POST' : 'GET', url, true);\n xhr.send(data !== null ? JSON.stringify(data) : null);\n};\nexports.default = {\n send: function send(endpoint, danmakuData, callback) {\n SendXMLHttpRequest(endpoint, danmakuData, function (xhr, response) {\n console.log('Post danmaku: ', response);\n if (callback) {\n callback();\n }\n }, function (xhr, response) {\n alert(response.msg);\n }, function (xhr) {\n console.log('Request was unsuccessful: ' + xhr.status);\n });\n },\n read: function read(endpoint, callback) {\n SendXMLHttpRequest(endpoint, null, function (xhr, response) {\n callback(null, response.danmaku);\n }, function (xhr, response) {\n callback({\n status: xhr.status,\n response: response\n });\n }, function (xhr) {\n callback({\n status: xhr.status,\n response: null\n });\n });\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/api.js\n// module id = 11\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction i18n(lang) {\n var _this = this;\n this.lang = lang;\n this.tran = function (text) {\n if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n return tranTxt[_this.lang][text];\n } else {\n return text;\n }\n };\n}\nvar tranTxt = {\n 'zh-cn': {\n 'Danmaku is loading': '弹幕加载中',\n 'Top': '顶部',\n 'Bottom': '底部',\n 'Rolling': '滚动',\n 'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n 'About author': '关于作者',\n 'DPlayer feedback': '播放器意见反馈',\n 'About DPlayer': '关于 DPlayer 播放器',\n 'Loop': '洗脑循环',\n 'Speed': '速度',\n 'Opacity for danmaku': '弹幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n 'Set danmaku color': '设置弹幕颜色',\n 'Set danmaku type': '设置弹幕类型',\n 'Show danmaku': '显示弹幕',\n 'This video fails to load': '视频加载失败',\n 'Switching to': '正在切换至',\n 'Switched to': '已经切换至',\n 'quality': '画质',\n 'FF': '快进',\n 'REW': '快退',\n 'Unlimited danmaku': '海量弹幕',\n 'Send danmaku': '发送弹幕',\n 'Setting': '设置',\n 'Full screen': '全屏',\n 'Web full screen': '页面全屏',\n 'Send': '发送',\n 'Screenshot': '截图',\n 's': '秒',\n 'Show subtitle': '显示字幕',\n 'Hide subtitle': '隐藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n },\n 'zh-tw': {\n 'Danmaku is loading': '彈幕加載中',\n 'Top': '頂部',\n 'Bottom': '底部',\n 'Rolling': '滾動',\n 'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n 'About author': '關於作者',\n 'DPlayer feedback': '播放器意見反饋',\n 'About DPlayer': '關於 DPlayer 播放器',\n 'Loop': '循環播放',\n 'Speed': '速度',\n 'Opacity for danmaku': '彈幕透明度',\n 'Normal': '正常',\n 'Please input danmaku content!': '請輸入彈幕内容啊\\uFF01',\n 'Set danmaku color': '設置彈幕顏色',\n 'Set danmaku type': '設置彈幕類型',\n 'Show danmaku': '顯示彈幕',\n 'This video fails to load': '視頻加載失敗',\n 'Switching to': '正在切換至',\n 'Switched to': '已經切換至',\n 'quality': '畫質',\n 'FF': '快進',\n 'REW': '快退',\n 'Unlimited danmaku': '海量彈幕',\n 'Send danmaku': '發送彈幕',\n 'Setting': '設置',\n 'Full screen': '全屏',\n 'Web full screen': '頁面全屏',\n 'Send': '發送',\n 'Screenshot': '截圖',\n 's': '秒',\n 'Show subtitle': '顯示字幕',\n 'Hide subtitle': '隱藏字幕',\n 'Volume': '音量',\n 'Live': '直播'\n }\n};\nexports.default = i18n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/i18n.js\n// module id = 12\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.index = options.index;\n this.tran = options.tran;\n this.icons = options.icons;\n this.init();\n }\n _createClass(Template, [\n {\n key: 'init',\n value: function init() {\n this.container.innerHTML = this.tpl(this.options, this.index, this.tran, this.icons);\n this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n this.volumeButton = this.container.querySelector('.dplayer-volume');\n this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n this.playedBar = this.container.querySelector('.dplayer-played');\n this.loadedBar = this.container.querySelector('.dplayer-loaded');\n this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n this.danmaku = this.container.querySelector('.dplayer-danmaku');\n this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n this.video = this.container.querySelector('.dplayer-video-current');\n this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n this.playButton = this.container.querySelector('.dplayer-play-icon');\n this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n this.ptime = this.container.querySelector('.dplayer-ptime');\n this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n this.settingBox = this.container.querySelector('.dplayer-setting-box');\n this.mask = this.container.querySelector('.dplayer-mask');\n this.loop = this.container.querySelector('.dplayer-setting-loop');\n this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n this.speed = this.container.querySelector('.dplayer-setting-speed');\n this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n this.dtime = this.container.querySelector('.dplayer-dtime');\n this.controller = this.container.querySelector('.dplayer-controller');\n this.commentInput = this.container.querySelector('.dplayer-comment-input');\n this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon .dplayer-fill');\n this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n this.commentSendFill = this.container.querySelector('.dplayer-send-icon .dplayer-fill');\n this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n this.menu = this.container.querySelector('.dplayer-menu');\n this.qualityList = this.container.querySelector('.dplayer-quality-list');\n this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n this.subtitle = this.container.querySelector('.dplayer-subtitle');\n this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n this.notice = this.container.querySelector('.dplayer-notice');\n }\n },\n {\n key: 'tpl',\n value: function tpl(options, index, tran, icons) {\n return '
' + this.tplVideo(true, options.video.pic, options.screenshot, options.preload, options.video.url, options.subtitle) + '' + (options.logo ? '
' : '') + '
' + (options.danmaku ? '' + tran('Danmaku is loading') + '' : '') + '
' + tran('Set danmaku color') + '
' + tran('Set danmaku type') + '
0:00 / 0:00' + (options.live ? '' + tran('Live') + '' : '') + '
' + (options.video.quality ? '
' + this.tplQualityList(options.video.quality) + '
' : '') + '' + (options.screenshot ? '' + icons.get('camera') + '' : '') + '
' + (options.subtitle ? '
' : '') + '
' + tran('Speed') + '
' + icons.get('right') + '
' + tran('Loop') + '
' + tran('Show danmaku') + '
' + tran('Unlimited danmaku') + '
' + tran('Opacity for danmaku') + '
0.5
0.75
' + tran('Normal') + '
1.25
1.5
2
00:00
' + this.tplContextmenuList(options.contextmenu, tran) + '
';\n }\n },\n {\n key: 'tplDanmakumargin',\n value: function tplDanmakumargin(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 },\n {\n key: 'tplContextmenuList',\n value: function tplContextmenuList(contextmenu, tran) {\n var result = '
';\n for (var i = 0; i < contextmenu.length; i++) {\n result += '';\n }\n result += '
';\n return result;\n }\n },\n {\n key: 'tplQualityList',\n value: function tplQualityList(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 },\n {\n key: 'tplVideo',\n value: function tplVideo(current, pic, screenshot, preload, url, subtitle) {\n var enableSubtitle = subtitle && subtitle.type === 'webvtt';\n return '';\n }\n }\n ]);\n return Template;\n}();\nexports.default = Template;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/template.js\n// module id = 13\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar SvgSource = function () {\n function SvgSource(options) {\n _classCallCheck(this, SvgSource);\n this.icons = options.icons;\n this.iconColor = options.iconsColor;\n }\n _createClass(SvgSource, [{\n key: 'get',\n value: function get(type) {\n return '';\n }\n }]);\n return SvgSource;\n}();\nexports.default = SvgSource;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/svg.js\n// module id = 14\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Danmaku = function () {\n function Danmaku(options) {\n _classCallCheck(this, Danmaku);\n this.options = options;\n this.container = this.options.container;\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.dan = [];\n this.showing = true;\n this._opacity = this.options.opacity;\n this.events = this.options.events;\n this.unlimited = this.options.unlimited;\n this._measure('');\n this.load();\n }\n _createClass(Danmaku, [\n {\n key: 'load',\n value: function load() {\n var _this = this;\n var apiurl = void 0;\n if (this.options.api.maximum) {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id + '&max=' + this.options.api.maximum;\n } else {\n apiurl = this.options.api.address + 'v2/?id=' + this.options.api.id;\n }\n var endpoints = (this.options.api.addition || []).slice(0);\n endpoints.push(apiurl);\n this.events && this.events.trigger('danmaku_load_start', endpoints);\n this._readAllEndpoints(endpoints, function (results) {\n _this.dan = [].concat.apply([], results).sort(function (a, b) {\n return a.time - b.time;\n });\n window.requestAnimationFrame(function () {\n _this.frame();\n });\n _this.options.callback();\n _this.events && _this.events.trigger('danmaku_load_end');\n });\n }\n },\n {\n key: 'reload',\n value: function reload(newAPI) {\n this.options.api = newAPI;\n this.dan = [];\n this.clear();\n this.load();\n }\n },\n {\n key: '_readAllEndpoints',\n value: function _readAllEndpoints(endpoints, callback) {\n var _this2 = this;\n var results = [];\n var readCount = 0;\n var cbk = function cbk(i) {\n return function (err, data) {\n ++readCount;\n if (err) {\n if (err.response) {\n _this2.options.error(err.response.msg);\n } else {\n _this2.options.error('Request was unsuccessful: ' + err.status);\n }\n results[i] = [];\n } else {\n var typeMap = [\n 'right',\n 'top',\n 'bottom'\n ];\n if (data) {\n results[i] = data.map(function (item) {\n return {\n time: item[0],\n type: typeMap[item[1]],\n color: item[2],\n author: item[3],\n text: item[4]\n };\n });\n } else {\n results[i] = [];\n }\n }\n if (readCount === endpoints.length) {\n return callback(results);\n }\n };\n };\n for (var i = 0; i < endpoints.length; ++i) {\n this.options.apiBackend.read(endpoints[i], cbk(i));\n }\n }\n },\n {\n key: 'send',\n value: function send(dan, callback) {\n var danmakuData = {\n token: this.options.api.token,\n player: this.options.api.id,\n author: this.options.api.user,\n time: this.options.time(),\n text: dan.text,\n color: dan.color,\n type: dan.type\n };\n this.options.apiBackend.send(this.options.api.address + 'v2/', danmakuData, callback);\n this.dan.splice(this.danIndex, 0, danmakuData);\n this.danIndex++;\n var danmaku = {\n text: this.htmlEncode(danmakuData.text),\n color: danmakuData.color,\n type: danmakuData.type,\n border: '2px solid ' + this.options.borderColor\n };\n this.draw(danmaku);\n this.events && this.events.trigger('danmaku_send', danmakuData);\n }\n },\n {\n key: 'frame',\n value: function frame() {\n var _this3 = this;\n if (this.dan.length && !this.paused && this.showing) {\n var item = this.dan[this.danIndex];\n var dan = [];\n while (item && this.options.time() > parseFloat(item.time)) {\n dan.push(item);\n item = this.dan[++this.danIndex];\n }\n this.draw(dan);\n }\n window.requestAnimationFrame(function () {\n _this3.frame();\n });\n }\n },\n {\n key: 'opacity',\n value: function opacity(percentage) {\n if (percentage !== undefined) {\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.opacity = percentage;\n }\n this._opacity = percentage;\n this.events && this.events.trigger('danmaku_opacity', this._opacity);\n }\n return this._opacity;\n }\n },\n {\n key: 'draw',\n value: function draw(dan) {\n var _this4 = this;\n if (this.showing) {\n var itemHeight = this.options.height;\n var danWidth = this.container.offsetWidth;\n var danHeight = this.container.offsetHeight;\n var itemY = parseInt(danHeight / itemHeight);\n var danItemRight = function danItemRight(ele) {\n var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n var eleRight = ele.getBoundingClientRect().right || _this4.container.getBoundingClientRect().right + eleWidth;\n return _this4.container.getBoundingClientRect().right - eleRight;\n };\n var danSpeed = function danSpeed(width) {\n return (danWidth + width) / 5;\n };\n var getTunnel = function getTunnel(ele, type, width) {\n var tmp = danWidth / danSpeed(width);\n var _loop = function _loop(i) {\n var item = _this4.danTunnel[type][i + ''];\n if (item && item.length) {\n if (type !== 'right') {\n return 'continue';\n }\n for (var j = 0; j < item.length; j++) {\n var danRight = danItemRight(item[j]) - 10;\n if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n break;\n }\n if (j === item.length - 1) {\n _this4.danTunnel[type][i + ''].push(ele);\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n }\n } else {\n _this4.danTunnel[type][i + ''] = [ele];\n ele.addEventListener('animationend', function () {\n _this4.danTunnel[type][i + ''].splice(0, 1);\n });\n return { v: i % itemY };\n }\n };\n for (var i = 0; _this4.unlimited || i < itemY; i++) {\n var _ret = _loop(i);\n switch (_ret) {\n case 'continue':\n continue;\n default:\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object')\n return _ret.v;\n }\n }\n return -1;\n };\n if (Object.prototype.toString.call(dan) !== '[object Array]') {\n dan = [dan];\n }\n var docFragment = document.createDocumentFragment();\n var _loop2 = function _loop2(i) {\n if (!dan[i].type) {\n dan[i].type = 'right';\n }\n if (!dan[i].color) {\n dan[i].color = '#fff';\n }\n var item = document.createElement('div');\n item.classList.add('dplayer-danmaku-item');\n item.classList.add('dplayer-danmaku-' + dan[i].type);\n if (dan[i].border) {\n item.innerHTML = '' + dan[i].text + '';\n } else {\n item.innerHTML = dan[i].text;\n }\n item.style.opacity = _this4._opacity;\n item.style.color = dan[i].color;\n item.addEventListener('animationend', function () {\n _this4.container.removeChild(item);\n });\n var itemWidth = _this4._measure(dan[i].text);\n var tunnel = void 0;\n switch (dan[i].type) {\n case 'right':\n tunnel = getTunnel(item, dan[i].type, itemWidth);\n if (tunnel >= 0) {\n item.style.width = itemWidth + 1 + 'px';\n item.style.top = itemHeight * tunnel + 'px';\n item.style.transform = 'translateX(-' + danWidth + 'px)';\n }\n break;\n case 'top':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.top = itemHeight * tunnel + 'px';\n }\n break;\n case 'bottom':\n tunnel = getTunnel(item, dan[i].type);\n if (tunnel >= 0) {\n item.style.bottom = itemHeight * tunnel + 'px';\n }\n break;\n default:\n console.error('Can\\'t handled danmaku type: ' + dan[i].type);\n }\n if (tunnel >= 0) {\n item.classList.add('dplayer-danmaku-move');\n docFragment.appendChild(item);\n }\n };\n for (var i = 0; i < dan.length; i++) {\n _loop2(i);\n }\n this.container.appendChild(docFragment);\n return docFragment;\n }\n }\n },\n {\n key: 'play',\n value: function play() {\n this.paused = false;\n }\n },\n {\n key: 'pause',\n value: function pause() {\n this.paused = true;\n }\n },\n {\n key: '_measure',\n value: function _measure(text) {\n if (!this.context) {\n var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n this.context = document.createElement('canvas').getContext('2d');\n this.context.font = measureStyle.getPropertyValue('font');\n }\n return this.context.measureText(text).width;\n }\n },\n {\n key: 'seek',\n value: function seek() {\n this.clear();\n for (var i = 0; i < this.dan.length; i++) {\n if (this.dan[i].time >= this.options.time()) {\n this.danIndex = i;\n break;\n }\n this.danIndex = this.dan.length;\n }\n }\n },\n {\n key: 'clear',\n value: function clear() {\n this.danTunnel = {\n right: {},\n top: {},\n bottom: {}\n };\n this.danIndex = 0;\n this.options.container.innerHTML = '';\n this.events && this.events.trigger('danmaku_clear');\n }\n },\n {\n key: 'htmlEncode',\n value: function htmlEncode(str) {\n return str.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/');\n }\n },\n {\n key: 'resize',\n value: function resize() {\n var danWidth = this.container.offsetWidth;\n var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n for (var i = 0; i < items.length; i++) {\n items[i].style.transform = 'translateX(-' + danWidth + 'px)';\n }\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.showing = false;\n this.pause();\n this.clear();\n this.events && this.events.trigger('danmaku_hide');\n }\n },\n {\n key: 'show',\n value: function show() {\n this.seek();\n this.showing = true;\n this.play();\n this.events && this.events.trigger('danmaku_show');\n }\n },\n {\n key: 'unlimit',\n value: function unlimit(boolean) {\n this.unlimited = boolean;\n }\n }\n ]);\n return Danmaku;\n}();\nexports.default = Danmaku;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/danmaku.js\n// module id = 15\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Events = function () {\n function Events() {\n _classCallCheck(this, Events);\n this.events = {};\n this.videoEvents = [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'mozaudioavailable',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting'\n ];\n this.playerEvents = [\n 'screenshot',\n 'thumbnails_show',\n 'thumbnails_hide',\n 'danmaku_show',\n 'danmaku_hide',\n 'danmaku_clear',\n 'danmaku_loaded',\n 'danmaku_send',\n 'danmaku_opacity',\n 'contextmenu_show',\n 'contextmenu_hide',\n 'notice_show',\n 'notice_hide',\n 'quality_start',\n 'quality_end',\n 'destroy',\n 'resize',\n 'fullscreen',\n 'fullscreen_cancel',\n 'webfullscreen',\n 'webfullscreen_cancel',\n 'subtitle_show',\n 'subtitle_hide',\n 'subtitle_change'\n ];\n }\n _createClass(Events, [\n {\n key: 'on',\n value: function on(name, callback) {\n if (this.type(name) && typeof callback === 'function') {\n if (!this.events[name]) {\n this.events[name] = [];\n }\n this.events[name].push(callback);\n }\n }\n },\n {\n key: 'trigger',\n value: function trigger(name, info) {\n if (this.events[name] && this.events[name].length) {\n for (var i = 0; i < this.events[name].length; i++) {\n this.events[name][i](info);\n }\n }\n }\n },\n {\n key: 'type',\n value: function type(name) {\n if (this.playerEvents.indexOf(name) !== -1) {\n return 'player';\n } else if (this.videoEvents.indexOf(name) !== -1) {\n return 'video';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/events.js\n// module id = 16\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar FullScreen = function () {\n function FullScreen(player) {\n var _this = this;\n _classCallCheck(this, FullScreen);\n this.player = player;\n this.player.events.on('webfullscreen', function () {\n _this.player.resize();\n });\n this.player.events.on('webfullscreen_cancel', function () {\n _this.player.resize();\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n });\n var fullscreenchange = function fullscreenchange() {\n _this.player.resize();\n if (_this.isFullScreen('browser')) {\n _this.player.events.trigger('fullscreen');\n } else {\n _utils2.default.setScrollPosition(_this.lastScrollPosition);\n _this.player.events.trigger('fullscreen_cancel');\n }\n };\n this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n this.player.container.addEventListener('mozfullscreenchange', fullscreenchange);\n this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n }\n _createClass(FullScreen, [\n {\n key: 'isFullScreen',\n value: function isFullScreen() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;\n case 'web':\n return this.player.container.classList.contains('dplayer-fulled');\n }\n }\n },\n {\n key: 'request',\n value: function request() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n var anotherType = type === 'browser' ? 'web' : 'browser';\n var anotherTypeOn = this.isFullScreen(anotherType);\n if (!anotherTypeOn) {\n this.lastScrollPosition = _utils2.default.getScrollPosition();\n }\n switch (type) {\n case 'browser':\n if (this.player.container.requestFullscreen) {\n this.player.container.requestFullscreen();\n } else if (this.player.container.mozRequestFullScreen) {\n this.player.container.mozRequestFullScreen();\n } else if (this.player.container.webkitRequestFullscreen) {\n this.player.container.webkitRequestFullscreen();\n } else if (this.player.video.webkitEnterFullscreen) {\n this.player.video.webkitEnterFullscreen();\n }\n break;\n case 'web':\n this.player.container.classList.add('dplayer-fulled');\n document.body.classList.add('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen');\n break;\n }\n if (anotherTypeOn) {\n this.cancel(anotherType);\n }\n }\n },\n {\n key: 'cancel',\n value: function cancel() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n switch (type) {\n case 'browser':\n if (document.cancelFullScreen) {\n document.cancelFullScreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitCancelFullScreen) {\n document.webkitCancelFullScreen();\n }\n break;\n case 'web':\n this.player.container.classList.remove('dplayer-fulled');\n document.body.classList.remove('dplayer-web-fullscreen-fix');\n this.player.events.trigger('webfullscreen_cancel');\n break;\n }\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n if (this.isFullScreen(type)) {\n this.cancel(type);\n } else {\n this.request(type);\n }\n }\n }\n ]);\n return FullScreen;\n}();\nexports.default = FullScreen;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/fullscreen.js\n// module id = 17\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar User = function () {\n function User(player) {\n _classCallCheck(this, User);\n this.storageName = {\n opacity: 'dplayer-danmaku-opacity',\n volume: 'dplayer-volume',\n unlimited: 'dplayer-danmaku-unlimited',\n danmaku: 'dplayer-danmaku-show',\n subtitle: 'dplayer-subtitle-show'\n };\n this.default = {\n opacity: 0.7,\n volume: player.options.volume || 0.7,\n unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n danmaku: 1,\n subtitle: 1\n };\n this.data = {};\n this.init();\n }\n _createClass(User, [\n {\n key: 'init',\n value: function init() {\n for (var item in this.storageName) {\n var name = this.storageName[item];\n this.data[item] = parseFloat(_utils2.default.storage.get(name) || this.default[item]);\n }\n }\n },\n {\n key: 'get',\n value: function get(key) {\n return this.data[key];\n }\n },\n {\n key: 'set',\n value: function set(key, value) {\n this.data[key] = value;\n _utils2.default.storage.set(this.storageName[key], value);\n }\n }\n ]);\n return User;\n}();\nexports.default = User;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/user.js\n// module id = 18\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Subtitle = function () {\n function Subtitle(container, video, options, events) {\n _classCallCheck(this, Subtitle);\n this.container = container;\n this.video = video;\n this.options = options;\n this.events = events;\n this.init();\n }\n _createClass(Subtitle, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.container.style.fontSize = this.options.fontSize;\n this.container.style.bottom = this.options.bottom;\n this.container.style.color = this.options.color;\n if (this.video.textTracks && this.video.textTracks[0]) {\n var track = this.video.textTracks[0];\n track.oncuechange = function () {\n var cue = track.activeCues[0];\n if (cue) {\n _this.container.innerHTML = '';\n var p = document.createElement('p');\n p.appendChild(cue.getCueAsHTML());\n _this.container.appendChild(p);\n } else {\n _this.container.innerHTML = '';\n }\n _this.events.trigger('subtitle_change');\n };\n }\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.classList.remove('dplayer-subtitle-hide');\n this.events.trigger('subtitle_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.classList.add('dplayer-subtitle-hide');\n this.events.trigger('subtitle_hide');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.container.classList.contains('dplayer-subtitle-hide')) {\n this.show();\n } else {\n this.hide();\n }\n }\n }\n ]);\n return Subtitle;\n}();\nexports.default = Subtitle;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/subtitle.js\n// module id = 19\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volumeBar;\n this.elements.played = template.playedBar;\n this.elements.loaded = template.loadedBar;\n this.elements.danmaku = template.danmakuOpacityBar;\n }\n _createClass(Bar, [\n {\n key: 'set',\n value: function set(type, percentage, direction) {\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n this.elements[type].style[direction] = percentage * 100 + '%';\n }\n },\n {\n key: 'get',\n value: function get(type) {\n return parseFloat(this.elements[type].style.width) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/bar.js\n// module id = 20\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Time = function () {\n function Time(player) {\n _classCallCheck(this, Time);\n this.player = player;\n window.requestAnimationFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n }();\n this.types = [\n 'loading',\n 'progress'\n ];\n this.init();\n }\n _createClass(Time, [\n {\n key: 'init',\n value: function init() {\n for (var i = 0; i < this.types.length; i++) {\n var type = this.types[i];\n this['init' + type + 'Checker']();\n }\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this.enableloadingChecker) {\n currentPlayPos = _this.player.video.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.add('dplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this.player.video.paused) {\n _this.player.container.classList.remove('dplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'initprogressChecker',\n value: function initprogressChecker() {\n var _this2 = this;\n this.progressChecker = setInterval(function () {\n if (_this2.enableprogressChecker) {\n _this2.player.bar.set('played', _this2.player.video.currentTime / _this2.player.video.duration, 'width');\n var currentTime = _utils2.default.secondToTime(_this2.player.video.currentTime);\n if (_this2.player.template.ptime.innerHTML !== currentTime) {\n _this2.player.template.ptime.innerHTML = _utils2.default.secondToTime(_this2.player.video.currentTime);\n }\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = true;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type = this.types[i];\n this['enable' + _type + 'Checker'] = true;\n }\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n if (type) {\n this['enable' + type + 'Checker'] = false;\n } else {\n for (var i = 0; i < this.types.length; i++) {\n var _type2 = this.types[i];\n this['enable' + _type2 + 'Checker'] = false;\n }\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy(type) {\n if (type) {\n clearInterval(this[type + 'Checker']);\n } else {\n for (var i = 0; i < this.types.length; i++) {\n clearInterval(this[this.types[i] + 'Checker']);\n }\n }\n }\n }\n ]);\n return Time;\n}();\nexports.default = Time;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/time.js\n// module id = 21\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Bezel = function () {\n function Bezel(container) {\n var _this = this;\n _classCallCheck(this, Bezel);\n this.container = container;\n this.container.addEventListener('animationend', function () {\n _this.container.classList.remove('dplayer-bezel-transition');\n });\n }\n _createClass(Bezel, [{\n key: 'switch',\n value: function _switch(icon) {\n this.container.innerHTML = icon;\n this.container.classList.add('dplayer-bezel-transition');\n }\n }]);\n return Bezel;\n}();\nexports.default = Bezel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/bezel.js\n// module id = 22\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nvar _thumbnails = require('./thumbnails');\nvar _thumbnails2 = _interopRequireDefault(_thumbnails);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n var _this = this;\n _classCallCheck(this, Controller);\n this.player = player;\n this.autoHideTimer = 0;\n if (!_utils2.default.isMobile) {\n this.player.container.addEventListener('mousemove', function () {\n _this.setAutoHide();\n });\n this.player.container.addEventListener('click', function () {\n _this.setAutoHide();\n });\n }\n this.initPlayButton();\n this.initThumbnails();\n this.initPlayedBar();\n this.initFullButton();\n this.initVolumeButton();\n this.initQualityButton();\n this.initScreenshotButton();\n this.initSubtitleButton();\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this2 = this;\n this.player.template.playButton.addEventListener('click', function () {\n _this2.player.toggle();\n });\n if (!_utils2.default.isMobile) {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.player.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.player.toggle();\n });\n } else {\n this.player.template.videoWrap.addEventListener('click', function () {\n _this2.toggle();\n });\n this.player.template.controllerMask.addEventListener('click', function () {\n _this2.toggle();\n });\n }\n }\n },\n {\n key: 'initThumbnails',\n value: function initThumbnails() {\n var _this3 = this;\n if (this.player.options.video.thumbnails) {\n this.thumbnails = new _thumbnails2.default({\n container: this.player.template.barPreview,\n barWidth: this.player.template.barWrap.offsetWidth,\n url: this.player.options.video.thumbnails,\n events: this.player.events\n });\n this.player.on('loadedmetadata', function () {\n _this3.thumbnails.resize(160, _this3.player.video.videoHeight / _this3.player.video.videoWidth * 160);\n });\n }\n }\n },\n {\n key: 'initPlayedBar',\n value: function initPlayedBar() {\n var _this4 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this4.player.video.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener('mouseup', thumbUp);\n document.removeEventListener('mousemove', thumbMove);\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this4.player.template.playedBarWrap)) / _this4.player.template.playedBarWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.bar.set('played', percentage, 'width');\n _this4.player.seek(_this4.player.bar.get('played') * _this4.player.video.duration);\n _this4.player.time.enable('progress');\n };\n this.player.template.playedBarWrap.addEventListener('mousedown', function () {\n _this4.player.time.disable('progress');\n document.addEventListener('mousemove', thumbMove);\n document.addEventListener('mouseup', thumbUp);\n });\n this.player.template.playedBarWrap.addEventListener('mousemove', function (e) {\n if (_this4.player.video.duration) {\n var px = _utils2.default.cumulativeOffset(_this4.player.template.playedBarWrap).left;\n var tx = e.clientX - px;\n if (tx < 0 || tx > _this4.player.template.playedBarWrap.offsetWidth) {\n return;\n }\n var time = _this4.player.video.duration * (tx / _this4.player.template.playedBarWrap.offsetWidth);\n _this4.thumbnails && _this4.thumbnails.move(tx);\n _this4.player.template.playedBarTime.style.left = tx - 20 + 'px';\n _this4.player.template.playedBarTime.innerText = _utils2.default.secondToTime(time);\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.show();\n _this4.player.template.playedBarTime.classList.remove('hidden');\n }\n });\n this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n if (_this4.player.video.duration) {\n _this4.thumbnails && _this4.thumbnails.hide();\n _this4.player.template.playedBarTime.classList.add('hidden');\n }\n });\n }\n },\n {\n key: 'initFullButton',\n value: function initFullButton() {\n var _this5 = this;\n this.player.template.browserFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('browser');\n });\n this.player.template.webFullButton.addEventListener('click', function () {\n _this5.player.fullScreen.toggle('web');\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this6 = this;\n var vWidth = 35;\n var volumeMove = function volumeMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n };\n var volumeUp = function volumeUp() {\n document.removeEventListener('mouseup', volumeUp);\n document.removeEventListener('mousemove', volumeMove);\n _this6.player.template.volumeButton.classList.remove('dplayer-volume-active');\n };\n this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this6.player.template.volumeBarWrap) - 5.5) / vWidth;\n _this6.player.volume(percentage);\n });\n this.player.template.volumeBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', volumeMove);\n document.addEventListener('mouseup', volumeUp);\n _this6.player.template.volumeButton.classList.add('dplayer-volume-active');\n });\n this.player.template.volumeIcon.addEventListener('click', function () {\n if (_this6.player.video.muted) {\n _this6.player.video.muted = false;\n _this6.player.switchVolumeIcon();\n _this6.player.bar.set('volume', _this6.player.volume(), 'width');\n } else {\n _this6.player.video.muted = true;\n _this6.player.template.volumeIcon.innerHTML = _this6.player.icons.get('volume-off');\n _this6.player.bar.set('volume', 0, 'width');\n }\n });\n }\n },\n {\n key: 'initQualityButton',\n value: function initQualityButton() {\n var _this7 = this;\n if (this.player.options.video.quality) {\n this.player.template.qualityList.addEventListener('click', function (e) {\n if (e.target.classList.contains('dplayer-quality-item')) {\n _this7.player.switchQuality(e.target.dataset.index);\n }\n });\n }\n }\n },\n {\n key: 'initScreenshotButton',\n value: function initScreenshotButton() {\n var _this8 = this;\n if (this.player.options.screenshot) {\n this.player.template.camareButton.addEventListener('click', function () {\n var canvas = document.createElement('canvas');\n canvas.width = _this8.player.video.videoWidth;\n canvas.height = _this8.player.video.videoHeight;\n canvas.getContext('2d').drawImage(_this8.player.video, 0, 0, canvas.width, canvas.height);\n var dataURL = canvas.toDataURL();\n _this8.player.template.camareButton.href = dataURL;\n _this8.player.template.camareButton.download = 'DPlayer.png';\n _this8.player.events.trigger('screenshot', dataURL);\n });\n }\n }\n },\n {\n key: 'initSubtitleButton',\n value: function initSubtitleButton() {\n var _this9 = this;\n if (this.player.options.subtitle) {\n this.player.events.on('subtitle_show', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Hide subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '';\n _this9.player.user.set('subtitle', 1);\n });\n this.player.events.on('subtitle_hide', function () {\n _this9.player.template.subtitleButton.dataset.balloon = _this9.player.tran('Show subtitle');\n _this9.player.template.subtitleButtonInner.style.opacity = '0.4';\n _this9.player.user.set('subtitle', 0);\n });\n this.player.template.subtitleButton.addEventListener('click', function () {\n _this9.player.subtitle.toggle();\n });\n }\n }\n },\n {\n key: 'setAutoHide',\n value: function setAutoHide() {\n var _this10 = this;\n this.show();\n clearTimeout(this.autoHideTimer);\n this.autoHideTimer = setTimeout(function () {\n if (_this10.player.video.played.length && !_this10.disableAutoHide) {\n _this10.hide();\n }\n }, 2000);\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.container.classList.remove('dplayer-hide-controller');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.container.classList.add('dplayer-hide-controller');\n this.player.setting.hide();\n this.player.comment && this.player.comment.hide();\n }\n },\n {\n key: 'isShow',\n value: function isShow() {\n return !this.player.container.classList.contains('dplayer-hide-controller');\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.isShow()) {\n this.hide();\n } else {\n this.show();\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n clearTimeout(this.autoHideTimer);\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/controller.js\n// module id = 23\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Thumbnails = function () {\n function Thumbnails(options) {\n _classCallCheck(this, Thumbnails);\n this.container = options.container;\n this.barWidth = options.barWidth;\n this.container.style.backgroundImage = 'url(\\'' + options.url + '\\')';\n this.events = options.events;\n }\n _createClass(Thumbnails, [\n {\n key: 'resize',\n value: function resize(width, height) {\n this.container.style.width = width + 'px';\n this.container.style.height = height + 'px';\n this.container.style.top = -height + 2 + 'px';\n }\n },\n {\n key: 'show',\n value: function show() {\n this.container.style.display = 'block';\n this.events && this.events.trigger('thumbnails_show');\n }\n },\n {\n key: 'move',\n value: function move(position) {\n this.container.style.backgroundPosition = '-' + (Math.ceil(position / this.barWidth * 100) - 1) * 160 + 'px 0';\n this.container.style.left = position - this.container.offsetWidth / 2 + 'px';\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.container.style.display = 'none';\n this.events && this.events.trigger('thumbnails_hide');\n }\n }\n ]);\n return Thumbnails;\n}();\nexports.default = Thumbnails;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/thumbnails.js\n// module id = 24\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _utils = require('./utils');\nvar _utils2 = _interopRequireDefault(_utils);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Setting = function () {\n function Setting(player) {\n var _this = this;\n _classCallCheck(this, Setting);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.settingButton.addEventListener('click', function () {\n _this.show();\n });\n this.loop = this.player.options.loop;\n this.player.template.loopToggle.checked = this.loop;\n this.player.template.loop.addEventListener('click', function () {\n _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n if (_this.player.template.loopToggle.checked) {\n _this.loop = true;\n } else {\n _this.loop = false;\n }\n _this.hide();\n });\n this.showDanmaku = this.player.user.get('danmaku');\n if (!this.showDanmaku) {\n this.player.danmaku && this.player.danmaku.hide();\n }\n this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n this.player.template.showDanmaku.addEventListener('click', function () {\n _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n if (_this.player.template.showDanmakuToggle.checked) {\n _this.showDanmaku = true;\n _this.player.danmaku.show();\n } else {\n _this.showDanmaku = false;\n _this.player.danmaku.hide();\n }\n _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n _this.hide();\n });\n this.unlimitDanmaku = this.player.user.get('unlimited');\n this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n this.player.template.unlimitDanmaku.addEventListener('click', function () {\n _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n if (_this.player.template.unlimitDanmakuToggle.checked) {\n _this.unlimitDanmaku = true;\n _this.player.danmaku.unlimit(true);\n } else {\n _this.unlimitDanmaku = false;\n _this.player.danmaku.unlimit(false);\n }\n _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n _this.hide();\n });\n this.player.template.speed.addEventListener('click', function () {\n _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n });\n var _loop = function _loop(i) {\n _this.player.template.speedItem[i].addEventListener('click', function () {\n _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n _this.hide();\n });\n };\n for (var i = 0; i < this.player.template.speedItem.length; i++) {\n _loop(i);\n }\n if (this.player.danmaku) {\n var dWidth = 130;\n this.player.on('danmaku_opacity', function (percentage) {\n _this.player.bar.set('danmaku', percentage, 'width');\n _this.player.user.set('opacity', percentage);\n });\n this.player.danmaku.opacity(this.player.user.get('opacity'));\n var danmakuMove = function danmakuMove(event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n };\n var danmakuUp = function danmakuUp() {\n document.removeEventListener('mouseup', danmakuUp);\n document.removeEventListener('mousemove', danmakuMove);\n _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n };\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n var e = event || window.event;\n var percentage = (e.clientX - _utils2.default.getElementViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this.player.danmaku.opacity(percentage);\n });\n this.player.template.danmakuOpacityBarWrapWrap.addEventListener('mousedown', function () {\n document.addEventListener('mousemove', danmakuMove);\n document.addEventListener('mouseup', danmakuUp);\n _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n });\n }\n }\n _createClass(Setting, [\n {\n key: 'hide',\n value: function hide() {\n var _this2 = this;\n this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n setTimeout(function () {\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n }, 300);\n this.player.controller.disableAutoHide = false;\n }\n },\n {\n key: 'show',\n value: function show() {\n this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.controller.disableAutoHide = true;\n }\n }\n ]);\n return Setting;\n}();\nexports.default = Setting;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/setting.js\n// module id = 25\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Comment = function () {\n function Comment(player) {\n var _this = this;\n _classCallCheck(this, Comment);\n this.player = player;\n this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n this.player.template.commentButton.addEventListener('click', function () {\n _this.show();\n });\n this.player.template.commentSettingButton.addEventListener('click', function () {\n _this.toggleSetting();\n });\n this.player.template.commentColorSettingBox.addEventListener('click', function () {\n var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n if (sele) {\n var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n _this.player.template.commentSettingFill.style.fill = color;\n _this.player.template.commentInput.style.color = color;\n _this.player.template.commentSendFill.style.fill = color;\n }\n });\n this.player.template.commentInput.addEventListener('click', function () {\n _this.hideSetting();\n });\n this.player.template.commentInput.addEventListener('keydown', function (e) {\n var event = e || window.event;\n if (event.keyCode === 13) {\n _this.send();\n }\n });\n this.player.template.commentSendButton.addEventListener('click', function () {\n _this.send();\n });\n }\n _createClass(Comment, [\n {\n key: 'show',\n value: function show() {\n this.player.controller.disableAutoHide = true;\n this.player.template.controller.classList.add('dplayer-controller-comment');\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.container.classList.add('dplayer-show-controller');\n this.player.template.commentInput.focus();\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.controller.classList.remove('dplayer-controller-comment');\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.container.classList.remove('dplayer-show-controller');\n this.player.controller.disableAutoHide = false;\n this.hideSetting();\n }\n },\n {\n key: 'showSetting',\n value: function showSetting() {\n this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n }\n },\n {\n key: 'hideSetting',\n value: function hideSetting() {\n this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n }\n },\n {\n key: 'toggleSetting',\n value: function toggleSetting() {\n if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n this.hideSetting();\n } else {\n this.showSetting();\n }\n }\n },\n {\n key: 'send',\n value: function send() {\n var _this2 = this;\n this.player.template.commentInput.blur();\n if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n this.player.notice(this.player.tran('Please input danmaku content!'));\n return;\n }\n this.player.danmaku.send({\n text: this.player.template.commentInput.value,\n color: this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value,\n type: this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value\n }, function () {\n _this2.player.template.commentInput.value = '';\n _this2.hide();\n });\n }\n }\n ]);\n return Comment;\n}();\nexports.default = Comment;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/comment.js\n// module id = 26\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar HotKey = function HotKey(player) {\n _classCallCheck(this, HotKey);\n if (player.options.hotkey) {\n document.addEventListener('keydown', function (e) {\n if (player.focus) {\n var tag = document.activeElement.tagName.toUpperCase();\n var editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n var event = e || window.event;\n var percentage = void 0;\n switch (event.keyCode) {\n case 32:\n event.preventDefault();\n player.toggle();\n break;\n case 37:\n event.preventDefault();\n player.seek(player.video.currentTime - 5);\n player.controller.setAutoHide();\n break;\n case 39:\n event.preventDefault();\n player.seek(player.video.currentTime + 5);\n player.controller.setAutoHide();\n break;\n case 38:\n event.preventDefault();\n percentage = player.volume() + 0.1;\n player.volume(percentage);\n break;\n case 40:\n event.preventDefault();\n percentage = player.volume() - 0.1;\n player.volume(percentage);\n break;\n }\n }\n }\n });\n }\n document.addEventListener('keydown', function (e) {\n var event = e || window.event;\n switch (event.keyCode) {\n case 27:\n if (player.fullScreen.isFullScreen('web')) {\n player.fullScreen.cancel('web');\n }\n break;\n }\n });\n};\nexports.default = HotKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/hotkey.js\n// module id = 27\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps)\n defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar ContextMenu = function () {\n function ContextMenu(player) {\n var _this = this;\n _classCallCheck(this, ContextMenu);\n this.player = player;\n this.player.container.addEventListener('contextmenu', function (e) {\n var event = e || window.event;\n event.preventDefault();\n var clientRect = _this.player.container.getBoundingClientRect();\n _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n _this.player.template.mask.addEventListener('click', function () {\n _this.hide();\n });\n });\n }\n _createClass(ContextMenu, [\n {\n key: 'show',\n value: function show(x, y) {\n this.player.template.menu.classList.add('dplayer-menu-show');\n var clientRect = this.player.container.getBoundingClientRect();\n if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n this.player.template.menu.style.right = clientRect.width - x + 'px';\n this.player.template.menu.style.left = 'initial';\n } else {\n this.player.template.menu.style.left = x + 'px';\n this.player.template.menu.style.right = 'initial';\n }\n if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n this.player.template.menu.style.top = 'initial';\n } else {\n this.player.template.menu.style.top = y + 'px';\n this.player.template.menu.style.bottom = 'initial';\n }\n this.player.template.mask.classList.add('dplayer-mask-show');\n this.player.events.trigger('contextmenu_show');\n }\n },\n {\n key: 'hide',\n value: function hide() {\n this.player.template.mask.classList.remove('dplayer-mask-show');\n this.player.template.menu.classList.remove('dplayer-menu-show');\n this.player.events.trigger('contextmenu_hide');\n }\n }\n ]);\n return ContextMenu;\n}();\nexports.default = ContextMenu;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/contextmenu.js\n// module id = 28\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 8f481fb..ee5a386 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dplayer", - "version": "1.20.0", + "version": "1.20.1", "description": "Wow, such a lovely HTML5 danmaku video player", "main": "dist/DPlayer.min.js", "style": "dist/DPlayer.min.css", @@ -53,6 +53,8 @@ "webpack-dev-server": "^2.9.5" }, "dependencies": { - "balloon-css": "^0.5.0" + "balloon-css": "^0.5.0", + "object-assign": "4.1.1", + "promise-polyfill": "7.0.0" } } diff --git a/src/js/options.js b/src/js/options.js index ea9bf45..8169f98 100644 --- a/src/js/options.js +++ b/src/js/options.js @@ -1,4 +1,5 @@ /* global DPLAYER_VERSION GIT_HASH */ +import objectAssign from 'object-assign'; import defaultApiBackend from './api.js'; export default (options) => { @@ -116,7 +117,7 @@ export default (options) => { } if (options.icons) { - options.icons = Object.assign({}, defaultOption.icons, options.icons); + options.icons = objectAssign({}, defaultOption.icons, options.icons); } options.contextmenu = options.contextmenu.concat([ diff --git a/src/js/player.js b/src/js/player.js index 561635b..9bd9241 100644 --- a/src/js/player.js +++ b/src/js/player.js @@ -1,3 +1,5 @@ +import Promise from 'promise-polyfill'; + import utils from './utils'; import handleOption from './options'; import i18n from './i18n'; @@ -175,15 +177,11 @@ class DPlayer { this.template.playButton.innerHTML = this.icons.get('pause'); - const playedPromise = this.video.play(); - if (playedPromise) { - playedPromise. - catch(() => { - this.pause(); - }). - then(() => { - }); - } + const playedPromise = Promise.resolve(this.video.play()); + playedPromise.catch(() => { + this.pause(); + }).then(() => { + }); this.time.enable(); this.container.classList.add('dplayer-playing'); if (this.danmaku) { diff --git a/yarn.lock b/yarn.lock index 21a19f9..689d942 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3358,7 +3358,7 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" resolved "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@^4.0.1, object-assign@^4.1.0: +object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -3920,6 +3920,10 @@ progress@^2.0.0: version "2.0.0" resolved "http://registry.npm.taobao.org/progress/download/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" +promise-polyfill@7.0.0: + version "7.0.0" + resolved "http://registry.npm.taobao.org/promise-polyfill/download/promise-polyfill-7.0.0.tgz#c665b6da1f97e21c3f2f7aa0543c90209127cb15" + proxy-addr@~2.0.2: version "2.0.2" resolved "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec"