From 07a9ae9925eb69c1994a151c9507c3fbfb075abe Mon Sep 17 00:00:00 2001
From: DIYgod
Date: Wed, 14 Mar 2018 23:58:10 +0800
Subject: [PATCH] release v1.9.1
---
dist/APlayer.min.js | 2 +-
dist/APlayer.min.js.map | 2 +-
docs/index.html | 4 ++--
package.json | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dist/APlayer.min.js b/dist/APlayer.min.js
index b5d61880..30056f4e 100644
--- a/dist/APlayer.min.js
+++ b/dist/APlayer.min.js
@@ -1,2 +1,2 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("APlayer",[],t):"object"==typeof exports?exports.APlayer=t():e.APlayer=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=4)}([function(e,t,n){"use strict";var i,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};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":a(window))&&(i=window)}e.exports=i},function(e,t,n){"use strict";function i(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0?[n,i,a]:[i,a]).map(t).join(":")},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},getElementViewTop:function(e){for(var t=e.offsetTop,n=e.offsetParent,i=0;null!==n;)t+=n.offsetTop,n=n.offsetParent;return i=document.body.scrollTop+document.documentElement.scrollTop,t-i},isMobile:a,storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},nameMap:{dragStart:a?"touchstart":"mousedown",dragMove:a?"touchmove":"mousemove",dragEnd:a?"touchend":"mouseup"},randomOrder:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(void 0).options.audio.length;return function(e){for(var t=e.length-1;t>=0;t--){var n=Math.floor(Math.random()*(t+1)),i=e[n];e[n]=e[t],e[t]=i}return e}([].concat(i(Array(e))).map(function(e,t){return t}))}};t.default=o},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),r=n(12),l=i(r),s=n(13),u=i(s),c=n(14),p=i(c),d=n(15),h=i(d),f=n(16),y=i(f),m=n(17),v=i(m),g=n(18),w=i(g),b=n(19),M=i(b),T=n(20),x=i(T),k=n(21),L=i(k),_=n(22),q=i(_),E={play:o.default,pause:l.default,volumeUp:u.default,volumeDown:p.default,volumeOff:h.default,orderRandom:y.default,orderList:v.default,menu:w.default,loopAll:M.default,loopOne:x.default,loopNone:L.default,loading:q.default};t.default=E},function(e,t,n){"use strict";e.exports=n(26)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(5);var i=n(6),a=function(e){return e&&e.__esModule?e:{default:e}}(i);console.log("\n %c APlayer v1.9.0 97165f0 %c http://aplayer.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;n1&&this.container.classList.add("aplayer-withlist"),u.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.options.mini&&this.setMode("mini"),this.container=this.options.container,2===this.options.lrcType||!0===this.options.lrcType)for(var n=this.container.getElementsByClassName("aplayer-lrc-content"),i=0;i0&&void 0!==arguments[0]?arguments[0]:this.options.audio[this.playIndex].theme,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.playIndex;this.options.audio[t].theme=e,this.template.listCurs[t].style.backgroundColor=e,t===this.playIndex&&(this.template.pic.style.backgroundColor=e,this.template.played.style.background=e,this.template.thumb.style.background=e,this.template.volume.style.background=e)}},{key:"seek",value:function(e){e=Math.max(e,0),this.audio.duration&&(e=Math.min(e,this.audio.duration)),this.audio.currentTime=e,isNaN(this.audio.duration)?this.bar.set("played",0,"width"):this.bar.set("played",e/this.audio.duration,"width"),this.template.ptime.innerHTML=u.default.secondToTime(e)}},{key:"play",value:function(){var e=this;this.handlePlayPromise(function(){e.paused&&(e.paused=!1,e.template.button.classList.remove("aplayer-play"),e.template.button.classList.add("aplayer-pause"),e.template.button.innerHTML="",setTimeout(function(){e.template.button.innerHTML=p.default.pause},100));var t=l.default.resolve(e.audio.play()).catch(function(t){console.error(t),e.pause()});if(e.timer.enable("loading"),e.options.mutex)for(var n=0;n=.95?this.template.volumeButton.innerHTML=p.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=p.default.volumeDown:this.template.volumeButton.innerHTML=p.default.volumeOff}},{key:"volume",value:function(e,t){return e=parseFloat(e),isNaN(e)||(e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"height"),t||this.user.set("volume",e),this.audio.volume=e,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"isMultiple",value:function(){return this.options.audio.length>1}},{key:"nextRandomNum",value:function(){if(this.isMultiple()){var e=this.randomOrder.indexOf(this.playIndex);return e===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[e+1]}return 0}},{key:"addAudio",value:function(e){this.events.trigger("addaudio",e);var t=!this.isMultiple();this.options.audio=this.options.audio.concat(e);for(var n="",i=0;i'+(this.options.audio.length-e.length+i+1)+''+e[i].name+''+e[i].artist+"";this.template.listOl.innerHTML+=n,t&&this.isMultiple()&&(this.container.classList.add("aplayer-withlist"),this.audio.loop=!1);var a=this.container.querySelectorAll(".aplayer-list li").length;this.template.list.style.height=33*a-1+"px",this.template.listOl.style.height=33*a-1+"px",this.randomOrder=u.default.randomOrder(this.options.audio.length)}},{key:"removeAudio",value:function(e){if(this.events.trigger("removeaudio",e),this.options.audio[e]&&this.options.audio.length>1){var t=this.container.querySelectorAll(".aplayer-list li");this.options.audio.splice(e,1),e===this.playIndex&&(this.options.audio[e+1]?this.switchAudio(e):this.switchAudio(e-1)),this.playIndex>e&&this.playIndex--,t[e].remove();for(var n=e;n0&&void 0!==arguments[0]?arguments[0]:"normal";this.mode=e,"mini"===e?this.container.classList.add("aplayer-narrow"):"normal"===e&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(e){var t=this,n=arguments.length>1&&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),n&&(this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")},n))}},{key:"handlePlayPromise",value:function(e){this.playedPromise=this.playedPromise.then(e).catch(function(e){console.error(e)})}}],[{key:"version",get:function(){return"1.9.0"}}]),e}();t.default=O},function(e,t,n){"use strict";(function(t){function n(){}function i(e,t){return function(){e.apply(t,arguments)}}function a(e){if(!(this instanceof a))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function o(e,t){for(;3===e._state;)e=e._value;if(0===e._state)return void e._deferreds.push(t);e._handled=!0,a._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null===n)return void(1===e._state?r:l)(t.promise,e._value);var i;try{i=n(e._value)}catch(e){return void l(t.promise,e)}r(t.promise,i)})}function r(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":p(t))||"function"==typeof t)){var n=t.then;if(t instanceof a)return e._state=3,e._value=t,void s(e);if("function"==typeof n)return void c(i(n,t),e)}e._state=1,e._value=t,s(e)}catch(t){l(e,t)}}function l(e,t){e._state=2,e._value=t,s(e)}function s(e){2===e._state&&0===e._deferreds.length&&a._immediateFn(function(){e._handled||a._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(9),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'},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t={container:e.element||document.getElementsByClassName("aplayer")[0],mini:e.narrow||!1,autoplay:!1,mutex:!0,lrcType:e.showlrc||e.lrc||0,preload:"auto",theme:"#b7daff",loop:"all",order:"list",volume:.7,listFolded:!1,listMaxHeight:e.listmaxheight,audio:e.music};for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return"[object Array]"!==Object.prototype.toString.call(e.audio)&&(e.audio=[e.audio]),e.audio.map(function(e){return e.name=e.name||e.title,e.artist=e.artist||e.author,e.cover=e.cover||e.pic,e.type=e.type||"normal",e}),e.audio.length<=1&&"one"===e.loop&&(e.loop="all"),e}},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;n\n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n ',t+=r.loading,t+='\n \n
\n
\n
\n
\n
\n 00:00 / 00:00\n \n
\n
\n
\n
\n ',o.audio.length>1&&(t+='\n
\n "),t+='\n
\n \n
\n
\n
\n \n\n\n
\n ",l(o.audio,function(e,n){t+='\n - \n \n ',t+=a(n+1),t+='\n ',t+=a(e.name),t+='\n ',t+=a(e.artist),t+="\n
\n "}),t+="\n
\n
"}},function(e,t,n){"use strict";(function(t){function i(e){return"string"!=typeof e&&(e=void 0===e||null===e?"":"function"==typeof e?i(e.call(e)):JSON.stringify(e)),e}function a(e){var t=""+e,n=l.exec(t);if(!n)return e;var i="",a=void 0,o=void 0,r=void 0;for(a=n.index,o=0;a]/;r.$escape=function(e){return a(i(e))},r.$each=function(e,t){if(Array.isArray(e))for(var n=0,i=e.length;n0&&void 0!==arguments[0]?arguments[0]:this.player.audio.currentTime;if(this.index>this.current.length-1||e=this.current[this.index+1][0])for(var t=0;t=this.current[t][0]&&(!this.current[t+1]||e=200&&n.status<300||304===n.status?t.parsed[e]=t.parse(n.responseText):(t.player.notice("LRC file request fails: status "+n.status),t.parsed[e]=[["00:00","Not available"]]),t.container.innerHTML=(0,r.default)({lyrics:t.parsed[e]}),t.update(0),t.current=t.parsed[e])};var i=this.content[e];n.open("get",i,!0),n.send(null)}else this.content[e]?this.parsed[e]=this.parse(this.content[e]):this.parsed[e]=[["00:00","Not available"]];this.container.innerHTML=(0,r.default)({lyrics:this.parsed[e]}),this.update(0),this.current=this.parsed[e]}},{key:"parse",value:function(e){if(e){e=e.replace(/([^\]^\n])\[/g,function(e,t){return t+"\n["});for(var t=e.split("\n"),n=[],i=t.length,a=0;a/g,"").replace(/^\s+|\s+$/g,"");if(o)for(var l=o.length,s=0;s",t+=o(e[1]),t+="
\n"}),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;nt&&!e.player.audio.paused&&(e.player.container.classList.remove("aplayer-loading"),i=!1),t=n)},100)}},{key:"enable",value:function(e){this["enable"+e+"Checker"]=!0,"fps"===e&&this.initfpsChecker()}},{key:"disable",value:function(e){this["enable"+e+"Checker"]=!1}},{key:"destroy",value:function(){var e=this;this.types.map(function(t){return e["enable"+t+"Checker"]=!1,e[t+"Checker"]&&clearInterval(e[t+"Checker"]),t})}}]),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;n0?[n,i,a]:[i,a]).map(t).join(":")},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},getElementViewTop:function(e){for(var t=e.offsetTop,n=e.offsetParent,i=0;null!==n;)t+=n.offsetTop,n=n.offsetParent;return i=document.body.scrollTop+document.documentElement.scrollTop,t-i},isMobile:a,storage:{set:function(e,t){localStorage.setItem(e,t)},get:function(e){return localStorage.getItem(e)}},nameMap:{dragStart:a?"touchstart":"mousedown",dragMove:a?"touchmove":"mousemove",dragEnd:a?"touchend":"mouseup"},randomOrder:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:(void 0).options.audio.length;return function(e){for(var t=e.length-1;t>=0;t--){var n=Math.floor(Math.random()*(t+1)),i=e[n];e[n]=e[t],e[t]=i}return e}([].concat(i(Array(e))).map(function(e,t){return t}))}};t.default=o},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(11),o=i(a),r=n(12),l=i(r),s=n(13),u=i(s),c=n(14),p=i(c),d=n(15),h=i(d),f=n(16),y=i(f),m=n(17),v=i(m),g=n(18),w=i(g),b=n(19),M=i(b),T=n(20),x=i(T),k=n(21),L=i(k),_=n(22),q=i(_),E={play:o.default,pause:l.default,volumeUp:u.default,volumeDown:p.default,volumeOff:h.default,orderRandom:y.default,orderList:v.default,menu:w.default,loopAll:M.default,loopOne:x.default,loopNone:L.default,loading:q.default};t.default=E},function(e,t,n){"use strict";e.exports=n(26)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(5);var i=n(6),a=function(e){return e&&e.__esModule?e:{default:e}}(i);console.log("\n %c APlayer v1.9.1 bede064 %c http://aplayer.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;n1&&this.container.classList.add("aplayer-withlist"),u.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.options.mini&&this.setMode("mini"),this.container=this.options.container,2===this.options.lrcType||!0===this.options.lrcType)for(var n=this.container.getElementsByClassName("aplayer-lrc-content"),i=0;i0&&void 0!==arguments[0]?arguments[0]:this.options.audio[this.playIndex].theme,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.playIndex;this.options.audio[t].theme=e,this.template.listCurs[t].style.backgroundColor=e,t===this.playIndex&&(this.template.pic.style.backgroundColor=e,this.template.played.style.background=e,this.template.thumb.style.background=e,this.template.volume.style.background=e)}},{key:"seek",value:function(e){e=Math.max(e,0),this.audio.duration&&(e=Math.min(e,this.audio.duration)),this.audio.currentTime=e,isNaN(this.audio.duration)?this.bar.set("played",0,"width"):this.bar.set("played",e/this.audio.duration,"width"),this.template.ptime.innerHTML=u.default.secondToTime(e)}},{key:"play",value:function(){var e=this;this.handlePlayPromise(function(){e.paused&&(e.paused=!1,e.template.button.classList.remove("aplayer-play"),e.template.button.classList.add("aplayer-pause"),e.template.button.innerHTML="",setTimeout(function(){e.template.button.innerHTML=p.default.pause},100));var t=l.default.resolve(e.audio.play()).catch(function(t){console.error(t),e.pause()});if(e.timer.enable("loading"),e.options.mutex)for(var n=0;n=.95?this.template.volumeButton.innerHTML=p.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=p.default.volumeDown:this.template.volumeButton.innerHTML=p.default.volumeOff}},{key:"volume",value:function(e,t){return e=parseFloat(e),isNaN(e)||(e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"height"),t||this.user.set("volume",e),this.audio.volume=e,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"isMultiple",value:function(){return this.options.audio.length>1}},{key:"nextRandomNum",value:function(){if(this.isMultiple()){var e=this.randomOrder.indexOf(this.playIndex);return e===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[e+1]}return 0}},{key:"addAudio",value:function(e){this.events.trigger("addaudio",e);var t=!this.isMultiple();this.options.audio=this.options.audio.concat(e);for(var n="",i=0;i'+(this.options.audio.length-e.length+i+1)+''+e[i].name+''+e[i].artist+"";this.template.listOl.innerHTML+=n,t&&this.isMultiple()&&(this.container.classList.add("aplayer-withlist"),this.audio.loop=!1),this.template.list.style.height=33*this.options.audio.length-1+"px",this.template.listOl.style.height=33*this.options.audio.length-1+"px",this.randomOrder=u.default.randomOrder(this.options.audio.length),this.template.listCurs=this.container.querySelectorAll(".aplayer-list-cur")}},{key:"removeAudio",value:function(e){if(this.events.trigger("removeaudio",e),this.options.audio[e]&&this.options.audio.length>1){var t=this.container.querySelectorAll(".aplayer-list li");this.options.audio.splice(e,1),e===this.playIndex&&(this.options.audio[e+1]?this.switchAudio(e):this.switchAudio(e-1)),this.playIndex>e&&this.playIndex--,t[e].remove();for(var n=e;n0&&void 0!==arguments[0]?arguments[0]:"normal";this.mode=e,"mini"===e?this.container.classList.add("aplayer-narrow"):"normal"===e&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(e){var t=this,n=arguments.length>1&&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),n&&(this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("notice_hide")},n))}},{key:"handlePlayPromise",value:function(e){this.playedPromise=this.playedPromise.then(e).catch(function(e){console.error(e)})}}],[{key:"version",get:function(){return"1.9.1"}}]),e}();t.default=O},function(e,t,n){"use strict";(function(t){function n(){}function i(e,t){return function(){e.apply(t,arguments)}}function a(e){if(!(this instanceof a))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function o(e,t){for(;3===e._state;)e=e._value;if(0===e._state)return void e._deferreds.push(t);e._handled=!0,a._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null===n)return void(1===e._state?r:l)(t.promise,e._value);var i;try{i=n(e._value)}catch(e){return void l(t.promise,e)}r(t.promise,i)})}function r(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":p(t))||"function"==typeof t)){var n=t.then;if(t instanceof a)return e._state=3,e._value=t,void s(e);if("function"==typeof n)return void c(i(n,t),e)}e._state=1,e._value=t,s(e)}catch(t){l(e,t)}}function l(e,t){e._state=2,e._value=t,s(e)}function s(e){2===e._state&&0===e._deferreds.length&&a._immediateFn(function(){e._handled||a._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(9),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'},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t={container:e.element||document.getElementsByClassName("aplayer")[0],mini:e.narrow||!1,autoplay:!1,mutex:!0,lrcType:e.showlrc||e.lrc||0,preload:"auto",theme:"#b7daff",loop:"all",order:"list",volume:.7,listFolded:!1,listMaxHeight:e.listmaxheight,audio:e.music};for(var n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n]);return"[object Array]"!==Object.prototype.toString.call(e.audio)&&(e.audio=[e.audio]),e.audio.map(function(e){return e.name=e.name||e.title,e.artist=e.artist||e.author,e.cover=e.cover||e.pic,e.type=e.type||"normal",e}),e.audio.length<=1&&"one"===e.loop&&(e.loop="all"),e}},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;n\n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n ',t+=r.loading,t+='\n \n
\n
\n
\n
\n
\n 00:00 / 00:00\n \n
\n
\n
\n
\n ',o.audio.length>1&&(t+='\n
\n "),t+='\n
\n \n
\n
\n
\n \n\n\n
\n ",l(o.audio,function(e,n){t+='\n - \n \n ',t+=a(n+1),t+='\n ',t+=a(e.name),t+='\n ',t+=a(e.artist),t+="\n
\n "}),t+="\n
\n
"}},function(e,t,n){"use strict";(function(t){function i(e){return"string"!=typeof e&&(e=void 0===e||null===e?"":"function"==typeof e?i(e.call(e)):JSON.stringify(e)),e}function a(e){var t=""+e,n=l.exec(t);if(!n)return e;var i="",a=void 0,o=void 0,r=void 0;for(a=n.index,o=0;a]/;r.$escape=function(e){return a(i(e))},r.$each=function(e,t){if(Array.isArray(e))for(var n=0,i=e.length;n0&&void 0!==arguments[0]?arguments[0]:this.player.audio.currentTime;if(this.index>this.current.length-1||e=this.current[this.index+1][0])for(var t=0;t=this.current[t][0]&&(!this.current[t+1]||e=200&&n.status<300||304===n.status?t.parsed[e]=t.parse(n.responseText):(t.player.notice("LRC file request fails: status "+n.status),t.parsed[e]=[["00:00","Not available"]]),t.container.innerHTML=(0,r.default)({lyrics:t.parsed[e]}),t.update(0),t.current=t.parsed[e])};var i=this.content[e];n.open("get",i,!0),n.send(null)}else this.content[e]?this.parsed[e]=this.parse(this.content[e]):this.parsed[e]=[["00:00","Not available"]];this.container.innerHTML=(0,r.default)({lyrics:this.parsed[e]}),this.update(0),this.current=this.parsed[e]}},{key:"parse",value:function(e){if(e){e=e.replace(/([^\]^\n])\[/g,function(e,t){return t+"\n["});for(var t=e.split("\n"),n=[],i=t.length,a=0;a/g,"").replace(/^\s+|\s+$/g,"");if(o)for(var l=o.length,s=0;s",t+=o(e[1]),t+="\n"}),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;nt&&!e.player.audio.paused&&(e.player.container.classList.remove("aplayer-loading"),i=!1),t=n)},100)}},{key:"enable",value:function(e){this["enable"+e+"Checker"]=!0,"fps"===e&&this.initfpsChecker()}},{key:"disable",value:function(e){this["enable"+e+"Checker"]=!1}},{key:"destroy",value:function(){var e=this;this.types.map(function(t){return e["enable"+t+"Checker"]=!1,e[t+"Checker"]&&clearInterval(e[t+"Checker"]),t})}}]),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 0 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n },\n getElementViewLeft: function getElementViewLeft(element) {\n var actualLeft = element.offsetLeft;\n var current = element.offsetParent;\n var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n } else {\n while (current !== null && current !== element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n return actualLeft - elementScrollLeft;\n },\n getElementViewTop: function getElementViewTop(element) {\n var actualTop = element.offsetTop;\n var current = element.offsetParent;\n var elementScrollTop = 0;\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent;\n }\n elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n return actualTop - elementScrollTop;\n },\n isMobile: isMobile,\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 nameMap: {\n dragStart: isMobile ? 'touchstart' : 'mousedown',\n dragMove: isMobile ? 'touchmove' : 'mousemove',\n dragEnd: isMobile ? 'touchend' : 'mouseup'\n },\n randomOrder: function randomOrder() {\n var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined.options.audio.length;\n function shuffle(arr) {\n for (var i = arr.length - 1; i >= 0; i--) {\n var randomIndex = Math.floor(Math.random() * (i + 1));\n var itemAtIndex = arr[randomIndex];\n arr[randomIndex] = arr[i];\n arr[i] = itemAtIndex;\n }\n return arr;\n }\n return shuffle([].concat(_toConsumableArray(Array(length))).map(function (item, i) {\n return i;\n }));\n }\n};\nexports.default = utils;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _play = __webpack_require__(11);\nvar _play2 = _interopRequireDefault(_play);\nvar _pause = __webpack_require__(12);\nvar _pause2 = _interopRequireDefault(_pause);\nvar _volumeUp = __webpack_require__(13);\nvar _volumeUp2 = _interopRequireDefault(_volumeUp);\nvar _volumeDown = __webpack_require__(14);\nvar _volumeDown2 = _interopRequireDefault(_volumeDown);\nvar _volumeOff = __webpack_require__(15);\nvar _volumeOff2 = _interopRequireDefault(_volumeOff);\nvar _orderRandom = __webpack_require__(16);\nvar _orderRandom2 = _interopRequireDefault(_orderRandom);\nvar _orderList = __webpack_require__(17);\nvar _orderList2 = _interopRequireDefault(_orderList);\nvar _menu = __webpack_require__(18);\nvar _menu2 = _interopRequireDefault(_menu);\nvar _loopAll = __webpack_require__(19);\nvar _loopAll2 = _interopRequireDefault(_loopAll);\nvar _loopOne = __webpack_require__(20);\nvar _loopOne2 = _interopRequireDefault(_loopOne);\nvar _loopNone = __webpack_require__(21);\nvar _loopNone2 = _interopRequireDefault(_loopNone);\nvar _loading = __webpack_require__(22);\nvar _loading2 = _interopRequireDefault(_loading);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nvar Icons = {\n play: _play2.default,\n pause: _pause2.default,\n volumeUp: _volumeUp2.default,\n volumeDown: _volumeDown2.default,\n volumeOff: _volumeOff2.default,\n orderRandom: _orderRandom2.default,\n orderList: _orderList2.default,\n menu: _menu2.default,\n loopAll: _loopAll2.default,\n loopOne: _loopOne2.default,\n loopNone: _loopNone2.default,\n loading: _loading2.default\n};\nexports.default = Icons;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = __webpack_require__(26);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\n__webpack_require__(5);\nvar _player = __webpack_require__(6);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c APlayer v' + \"1.9.0\" + ' ' + \"97165f0\" + ' %c http://aplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 6 */\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__(7);\nvar _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);\nvar _utils = __webpack_require__(1);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nvar _options = __webpack_require__(23);\nvar _options2 = _interopRequireDefault(_options);\nvar _template = __webpack_require__(24);\nvar _template2 = _interopRequireDefault(_template);\nvar _bar = __webpack_require__(28);\nvar _bar2 = _interopRequireDefault(_bar);\nvar _user = __webpack_require__(29);\nvar _user2 = _interopRequireDefault(_user);\nvar _lrc = __webpack_require__(30);\nvar _lrc2 = _interopRequireDefault(_lrc);\nvar _controller = __webpack_require__(32);\nvar _controller2 = _interopRequireDefault(_controller);\nvar _timer = __webpack_require__(33);\nvar _timer2 = _interopRequireDefault(_timer);\nvar _events = __webpack_require__(34);\nvar _events2 = _interopRequireDefault(_events);\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 instances = [];\nvar APlayer = function () {\n function APlayer(options) {\n _classCallCheck(this, APlayer);\n this.options = (0, _options2.default)(options);\n this.container = this.options.container;\n this.playIndex = 0;\n this.paused = true;\n this.playedPromise = _promisePolyfill2.default.resolve();\n this.mode = 'normal';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n this.container.classList.add('aplayer');\n if (this.options.lrcType) {\n this.container.classList.add('aplayer-withlrc');\n }\n if (this.options.audio.length > 1) {\n this.container.classList.add('aplayer-withlist');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('aplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 300;\n if (this.arrow) {\n this.container.classList.add('aplayer-arrow');\n }\n if (this.options.mini) {\n this.setMode('mini');\n }\n this.container = this.options.container;\n if (this.options.lrcType === 2 || this.options.lrcType === true) {\n var lrcEle = this.container.getElementsByClassName('aplayer-lrc-content');\n for (var i = 0; i < lrcEle.length; i++) {\n if (this.options.audio[i]) {\n this.options.audio[i].lrc = lrcEle[i].innerHTML;\n }\n }\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n randomOrder: this.randomOrder\n });\n if (this.template.info.offsetWidth < 200) {\n this.template.time.classList.add('aplayer-time-narrow');\n }\n if (this.options.lrcType) {\n this.lrc = new _lrc2.default({\n container: this.template.lrc,\n async: this.options.lrcType === 3,\n content: this.options.audio.map(function (item) {\n return item.lrc;\n }),\n player: this\n });\n }\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.bar = new _bar2.default(this.template);\n this.controller = new _controller2.default(this);\n this.timer = new _timer2.default(this);\n this.initAudio();\n if (this.options.order === 'random') {\n this.switchAudio(this.randomOrder[0]);\n } else {\n this.switchAudio(0);\n }\n if (this.options.autoplay) {\n this.play();\n }\n instances.push(this);\n }\n _createClass(APlayer, [\n {\n key: 'initAudio',\n value: function initAudio() {\n var _this = this;\n this.audio = document.createElement('audio');\n this.audio.preload = this.options.preload;\n var _loop = function _loop(i) {\n _this.audio.addEventListener(_this.events.audioEvents[i], function (e) {\n _this.events.trigger(_this.events.audioEvents[i], e);\n });\n };\n for (var i = 0; i < this.events.audioEvents.length; i++) {\n _loop(i);\n }\n this.on('play', function () {\n if (_this.paused) {\n _this.play();\n }\n });\n this.on('pause', function () {\n if (!_this.paused) {\n _this.pause();\n }\n });\n this.on('timeupdate', function () {\n if (!_this.disableTimeupdate) {\n _this.bar.set('played', _this.audio.currentTime / _this.audio.duration, 'width');\n _this.lrc && _this.lrc.update();\n var currentTime = _utils2.default.secondToTime(_this.audio.currentTime);\n if (_this.template.ptime.innerHTML !== currentTime) {\n _this.template.ptime.innerHTML = currentTime;\n }\n }\n });\n this.on('durationchange', function () {\n if (_this.audio.duration !== 1) {\n _this.template.dtime.innerHTML = _utils2.default.secondToTime(_this.audio.duration);\n }\n });\n this.on('progress', function () {\n var percentage = _this.audio.buffered.length ? _this.audio.buffered.end(_this.audio.buffered.length - 1) / _this.audio.duration : 0;\n _this.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this.notice('An audio error has occurred.');\n });\n this.on('ended', function () {\n if (_this.options.loop === 'none') {\n if (_this.options.order === 'list') {\n if (_this.playIndex < _this.options.audio.length - 1) {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.play();\n } else {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.pause();\n }\n } else if (_this.options.order === 'random') {\n if (_this.randomOrder.indexOf(_this.playIndex) < _this.randomOrder.length - 1) {\n _this.switchAudio(_this.nextRandomNum());\n _this.play();\n } else {\n _this.switchAudio(_this.nextRandomNum());\n _this.pause();\n }\n }\n } else if (_this.options.loop === 'one') {\n _this.switchAudio(_this.playIndex);\n _this.play();\n } else if (_this.options.loop === 'all') {\n if (_this.options.order === 'list') {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n } else if (_this.options.order === 'random') {\n _this.switchAudio(_this.nextRandomNum());\n }\n _this.play();\n }\n });\n this.volume(this.user.get('volume'), true);\n }\n },\n {\n key: 'switchAudio',\n value: function switchAudio(index) {\n var _this2 = this;\n this.handlePlayPromise(function () {\n _this2.events.trigger('switchaudio', index);\n if (typeof index !== 'undefined') {\n _this2.playIndex = index;\n }\n var audio = _this2.options.audio[_this2.playIndex];\n if (audio.cover) {\n _this2.template.pic.style.backgroundImage = 'url(\\'' + audio.cover + '\\')';\n } else {\n _this2.template.pic.style.backgroundImage = '';\n }\n _this2.theme();\n _this2.template.title.innerHTML = audio.name;\n _this2.template.author.innerHTML = audio.artist ? ' - ' + audio.artist : '';\n var light = _this2.container.getElementsByClassName('aplayer-list-light')[0];\n if (light) {\n light.classList.remove('aplayer-list-light');\n }\n _this2.container.querySelectorAll('.aplayer-list li')[_this2.playIndex].classList.add('aplayer-list-light');\n _this2.template.list.scrollTop = _this2.playIndex * 33;\n if (_this2.hls) {\n _this2.hls.destroy();\n _this2.hls = null;\n }\n var type = audio.type;\n if (_this2.options.customAudioType && _this2.options.customAudioType[type]) {\n if (Object.prototype.toString.call(_this2.options.customAudioType[type]) === '[object Function]') {\n _this2.options.customAudioType[type](_this2.audio, audio, _this2);\n } else {\n console.error('Illegal customType: ' + type);\n }\n } else {\n if (!type || type === 'auto') {\n if (/m3u8(#|\\?|$)/i.exec(audio.url)) {\n type = 'hls';\n } else {\n type = 'normal';\n }\n }\n if (type === 'hls') {\n if (Hls.isSupported()) {\n _this2.hls = new Hls();\n _this2.hls.loadSource(audio.url);\n _this2.hls.attachMedia(_this2.audio);\n } else if (_this2.audio.canPlayType('application/x-mpegURL') || _this2.audio.canPlayType('application/vnd.apple.mpegURL')) {\n _this2.audio.src = audio.url;\n } else {\n _this2.notice('Error: HLS is not supported.');\n }\n } else if (type === 'normal') {\n _this2.audio.src = audio.url;\n }\n }\n _this2.seek(0);\n var playPromise = void 0;\n if (!_this2.paused) {\n playPromise = _promisePolyfill2.default.resolve(_this2.audio.play()).catch(function (err) {\n console.error(err);\n _this2.pause();\n });\n }\n _this2.lrc && _this2.lrc.switch(_this2.playIndex);\n if (_this2.audio.duration !== 1) {\n _this2.template.dtime.innerHTML = _this2.audio.duration ? _utils2.default.secondToTime(_this2.audio.duration) : '00:00';\n }\n return playPromise;\n });\n }\n },\n {\n key: 'theme',\n value: function theme() {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.audio[this.playIndex].theme;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.playIndex;\n this.options.audio[index].theme = color;\n this.template.listCurs[index].style.backgroundColor = color;\n if (index === this.playIndex) {\n this.template.pic.style.backgroundColor = color;\n this.template.played.style.background = color;\n this.template.thumb.style.background = color;\n this.template.volume.style.background = color;\n }\n }\n },\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.audio.duration) {\n time = Math.min(time, this.audio.duration);\n }\n this.audio.currentTime = time;\n if (isNaN(this.audio.duration)) {\n this.bar.set('played', 0, 'width');\n } else {\n this.bar.set('played', time / this.audio.duration, 'width');\n }\n this.template.ptime.innerHTML = _utils2.default.secondToTime(time);\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this3 = this;\n this.handlePlayPromise(function () {\n if (_this3.paused) {\n _this3.paused = false;\n _this3.template.button.classList.remove('aplayer-play');\n _this3.template.button.classList.add('aplayer-pause');\n _this3.template.button.innerHTML = '';\n setTimeout(function () {\n _this3.template.button.innerHTML = _icons2.default.pause;\n }, 100);\n }\n var playPromise = _promisePolyfill2.default.resolve(_this3.audio.play()).catch(function (err) {\n console.error(err);\n _this3.pause();\n });\n _this3.timer.enable('loading');\n if (_this3.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (_this3 !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n return playPromise;\n });\n }\n },\n {\n key: 'pause',\n value: function pause() {\n var _this4 = this;\n this.handlePlayPromise(function () {\n if (!_this4.paused) {\n _this4.paused = true;\n _this4.template.button.classList.remove('aplayer-pause');\n _this4.template.button.classList.add('aplayer-play');\n _this4.template.button.innerHTML = '';\n setTimeout(function () {\n _this4.template.button.innerHTML = _icons2.default.play;\n }, 100);\n }\n _this4.audio.pause();\n _this4.timer.disable('loading');\n });\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeUp;\n } else if (this.volume() > 0) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeDown;\n } else {\n this.template.volumeButton.innerHTML = _icons2.default.volumeOff;\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage) {\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, 'height');\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.audio.muted ? 0 : this.audio.volume;\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.template.button.classList.contains('aplayer-play')) {\n this.play();\n } else if (this.template.button.classList.contains('aplayer-pause')) {\n this.pause();\n }\n }\n },\n {\n key: 'isMultiple',\n value: function isMultiple() {\n return this.options.audio.length > 1;\n }\n },\n {\n key: 'nextRandomNum',\n value: function nextRandomNum() {\n if (this.isMultiple()) {\n var index = this.randomOrder.indexOf(this.playIndex);\n if (index === this.randomOrder.length - 1) {\n return this.randomOrder[0];\n } else {\n return this.randomOrder[index + 1];\n }\n } else {\n return 0;\n }\n }\n },\n {\n key: 'addAudio',\n value: function addAudio(newMusic) {\n this.events.trigger('addaudio', newMusic);\n var wasSingle = !this.isMultiple();\n this.options.audio = this.options.audio.concat(newMusic);\n var newItemHTML = '';\n for (var i = 0; i < newMusic.length; i++) {\n newItemHTML += '' + (this.options.audio.length - newMusic.length + i + 1) + '' + newMusic[i].name + '' + newMusic[i].artist + '';\n }\n this.template.listOl.innerHTML += newItemHTML;\n if (wasSingle && this.isMultiple()) {\n this.container.classList.add('aplayer-withlist');\n this.audio.loop = false;\n }\n var songListLength = this.container.querySelectorAll('.aplayer-list li').length;\n this.template.list.style.height = songListLength * 33 - 1 + 'px';\n this.template.listOl.style.height = songListLength * 33 - 1 + 'px';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n }\n },\n {\n key: 'removeAudio',\n value: function removeAudio(index) {\n this.events.trigger('removeaudio', index);\n if (this.options.audio[index] && this.options.audio.length > 1) {\n var list = this.container.querySelectorAll('.aplayer-list li');\n this.options.audio.splice(index, 1);\n if (index === this.playIndex) {\n if (this.options.audio[index + 1]) {\n this.switchAudio(index);\n } else {\n this.switchAudio(index - 1);\n }\n }\n if (this.playIndex > index) {\n this.playIndex--;\n }\n list[index].remove();\n for (var i = index; i < list.length; i++) {\n list[i].getElementsByClassName('aplayer-list-index')[0].textContent = i;\n }\n if (this.options.audio.length === 1) {\n this.container.classList.remove('aplayer-withlist');\n }\n this.template.list.style.height = parseInt(this.template.list.style.height, 10) - 33 + 'px';\n this.template.listOl.style.height = parseInt(this.template.listOl.style.height, 10) - 33 + 'px';\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.container.innerHTML = '';\n this.audio.src = '';\n this.timer.destroy();\n this.events.trigger('destroy');\n }\n },\n {\n key: 'setMode',\n value: function setMode() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'normal';\n this.mode = mode;\n if (mode === 'mini') {\n this.container.classList.add('aplayer-narrow');\n } else if (mode === 'normal') {\n this.container.classList.remove('aplayer-narrow');\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 if (time) {\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n }\n },\n {\n key: 'handlePlayPromise',\n value: function handlePlayPromise(callback) {\n this.playedPromise = this.playedPromise.then(callback).catch(function (err) {\n console.error(err);\n });\n }\n }\n ], [{\n key: 'version',\n get: function get() {\n return \"1.9.0\";\n }\n }]);\n return APlayer;\n}();\nexports.default = APlayer;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.prototype['finally'] = function (callback) {\n var constructor = this.constructor;\n return this.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n return constructor.reject(reason);\n });\n });\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nmodule.exports = Promise;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8).setImmediate))\n\n/***/ }),\n/* 8 */\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__(9);\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n/***/ }),\n/* 9 */\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__(0), __webpack_require__(10)))\n\n/***/ }),\n/* 10 */\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/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('aplayer')[0],\n mini: options.narrow || false,\n autoplay: false,\n mutex: true,\n lrcType: options.showlrc || options.lrc || 0,\n preload: 'auto',\n theme: '#b7daff',\n loop: 'all',\n order: 'list',\n volume: 0.7,\n listFolded: false,\n listMaxHeight: options.listmaxheight,\n audio: options.music\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (Object.prototype.toString.call(options.audio) !== '[object Array]') {\n options.audio = [options.audio];\n }\n options.audio.map(function (item) {\n item.name = item.name || item.title;\n item.artist = item.artist || item.author;\n item.cover = item.cover || item.pic;\n item.type = item.type || 'normal';\n return item;\n });\n if (options.audio.length <= 1 && options.loop === 'one') {\n options.loop = 'all';\n }\n return options;\n};\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}();\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nvar _player = __webpack_require__(25);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.randomOrder = options.randomOrder;\n this.init();\n }\n _createClass(Template, [{\n key: 'init',\n value: function init() {\n var cover = void 0;\n if (this.options.order === 'random') {\n cover = this.options.audio[this.randomOrder[0]].cover;\n } else {\n cover = this.options.audio[0].cover;\n }\n this.container.innerHTML = (0, _player2.default)({\n options: this.options,\n icons: _icons2.default,\n cover: cover\n });\n this.lrc = this.container.querySelector('.aplayer-lrc-contents');\n this.ptime = this.container.querySelector('.aplayer-ptime');\n this.info = this.container.querySelector('.aplayer-info');\n this.time = this.container.querySelector('.aplayer-time');\n this.barWrap = this.container.querySelector('.aplayer-bar-wrap');\n this.button = this.container.querySelector('.aplayer-button');\n this.list = this.container.querySelector('.aplayer-list');\n this.listOl = this.container.querySelector('.aplayer-list ol');\n this.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n this.played = this.container.querySelector('.aplayer-played');\n this.loaded = this.container.querySelector('.aplayer-loaded');\n this.thumb = this.container.querySelector('.aplayer-thumb');\n this.volume = this.container.querySelector('.aplayer-volume');\n this.volumeBar = this.container.querySelector('.aplayer-volume-bar');\n this.volumeButton = this.container.querySelector('.aplayer-time button');\n this.volumeBarWrap = this.container.querySelector('.aplayer-volume-bar-wrap');\n this.loop = this.container.querySelector('.aplayer-icon-loop');\n this.order = this.container.querySelector('.aplayer-icon-order');\n this.menu = this.container.querySelector('.aplayer-icon-menu');\n this.pic = this.container.querySelector('.aplayer-pic');\n this.title = this.container.querySelector('.aplayer-title');\n this.author = this.container.querySelector('.aplayer-author');\n this.dtime = this.container.querySelector('.aplayer-dtime');\n this.notice = this.container.querySelector('.aplayer-notice');\n }\n }]);\n return Template;\n}();\nexports.default = Template;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $imports = __webpack_require__(3);\nmodule.exports = function ($data) {\n 'use strict';\n $data = $data || {};\n var $$out = '', cover = $data.cover, $escape = $imports.$escape, options = $data.options, icons = $data.icons, $each = $imports.$each, $value = $data.$value, $index = $data.$index;\n $$out += '\\n
\\n
';\n $$out += icons.play;\n $$out += '
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n ';\n $$out += icons.loading;\n $$out += '\\n \\n
\\n
\\n
\\n
\\n
\\n 00:00 / 00:00\\n \\n
\\n
\\n
\\n
\\n ';\n if (options.audio.length > 1) {\n $$out += '\\n
\\n ';\n }\n $$out += '\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n ';\n $each(options.audio, function ($value, $index) {\n $$out += '\\n - \\n \\n ';\n $$out += $escape($index + 1);\n $$out += '\\n ';\n $$out += $escape($value.name);\n $$out += '\\n ';\n $$out += $escape($value.artist);\n $$out += '\\n
\\n ';\n });\n $$out += '\\n
\\n
';\n return $$out;\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nvar detectNode = __webpack_require__(27);\nvar runtime = Object.create(detectNode ? global : window);\nvar ESCAPE_REG = /[\"&'<>]/;\nruntime.$escape = function (content) {\n return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n if (Array.isArray(data)) {\n for (var i = 0, len = data.length; i < len; i++) {\n callback(data[i], i);\n }\n } else {\n for (var _i in data) {\n callback(data[_i], _i);\n }\n }\n};\nfunction toString(value) {\n if (typeof value !== 'string') {\n if (value === undefined || value === null) {\n value = '';\n } else if (typeof value === 'function') {\n value = toString(value.call(value));\n } else {\n value = JSON.stringify(value);\n }\n }\n return value;\n}\n;\nfunction xmlEscape(content) {\n var html = '' + content;\n var regexResult = ESCAPE_REG.exec(html);\n if (!regexResult) {\n return content;\n }\n var result = '';\n var i = void 0, lastIndex = void 0, char = void 0;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34:\n char = '"';\n break;\n case 38:\n char = '&';\n break;\n case 39:\n char = ''';\n break;\n case 60:\n char = '<';\n break;\n case 62:\n char = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) {\n result += html.substring(lastIndex, i);\n }\n lastIndex = i + 1;\n result += char;\n }\n if (lastIndex !== i) {\n return result + html.substring(lastIndex, i);\n } else {\n return result;\n }\n}\n;\nmodule.exports = runtime;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nmodule.exports = false;\ntry {\n module.exports = Object.prototype.toString.call(global.process) === '[object process]';\n} catch (e) {\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\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 Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volume;\n this.elements.played = template.played;\n this.elements.loaded = template.loaded;\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, direction) {\n return parseFloat(this.elements[type].style[direction]) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n/***/ }),\n/* 29 */\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__(1);\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 = { volume: 'aplayer-volume' };\n this.default = { volume: player.options.volume || 0.7 };\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/* 30 */\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 _lrc = __webpack_require__(31);\nvar _lrc2 = _interopRequireDefault(_lrc);\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 Lrc = function () {\n function Lrc(options) {\n _classCallCheck(this, Lrc);\n this.container = options.container;\n this.async = options.async;\n this.player = options.player;\n this.content = options.content;\n this.parsed = [];\n this.index = 0;\n this.current = [];\n }\n _createClass(Lrc, [\n {\n key: 'update',\n value: function update() {\n var currentTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.player.audio.currentTime;\n if (this.index > this.current.length - 1 || currentTime < this.current[this.index][0] || !this.current[this.index + 1] || currentTime >= this.current[this.index + 1][0]) {\n for (var i = 0; i < this.current.length; i++) {\n if (currentTime >= this.current[i][0] && (!this.current[i + 1] || currentTime < this.current[i + 1][0])) {\n this.index = i;\n this.container.style.transform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.style.webkitTransform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.getElementsByClassName('aplayer-lrc-current')[0].classList.remove('aplayer-lrc-current');\n this.container.getElementsByTagName('p')[i].classList.add('aplayer-lrc-current');\n }\n }\n }\n }\n },\n {\n key: 'switch',\n value: function _switch(index) {\n var _this = this;\n if (!this.parsed[index]) {\n if (!this.async) {\n if (this.content[index]) {\n this.parsed[index] = this.parse(this.content[index]);\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Loading'\n ]];\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (index === _this.player.playIndex && xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n _this.parsed[index] = _this.parse(xhr.responseText);\n } else {\n _this.player.notice('LRC file request fails: status ' + xhr.status);\n _this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n _this.container.innerHTML = (0, _lrc2.default)({ lyrics: _this.parsed[index] });\n _this.update(0);\n _this.current = _this.parsed[index];\n }\n };\n var apiurl = this.content[index];\n xhr.open('get', apiurl, true);\n xhr.send(null);\n }\n }\n this.container.innerHTML = (0, _lrc2.default)({ lyrics: this.parsed[index] });\n this.update(0);\n this.current = this.parsed[index];\n }\n },\n {\n key: 'parse',\n value: function parse(lrc_s) {\n if (lrc_s) {\n lrc_s = lrc_s.replace(/([^\\]^\\n])\\[/g, function (match, p1) {\n return p1 + '\\n[';\n });\n var lyric = lrc_s.split('\\n');\n var lrc = [];\n var lyricLen = lyric.length;\n for (var i = 0; i < lyricLen; i++) {\n var lrcTimes = lyric[i].match(/\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g);\n var lrcText = lyric[i].replace(/.*\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g, '').replace(/<(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?>/g, '').replace(/^\\s+|\\s+$/g, '');\n if (lrcTimes) {\n var timeLen = lrcTimes.length;\n for (var j = 0; j < timeLen; j++) {\n var oneTime = /\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/.exec(lrcTimes[j]);\n var min2sec = oneTime[1] * 60;\n var sec2sec = parseInt(oneTime[2]);\n var msec2sec = oneTime[4] ? parseInt(oneTime[4]) / ((oneTime[4] + '').length === 2 ? 100 : 1000) : 0;\n var lrcTime = min2sec + sec2sec + msec2sec;\n lrc.push([\n lrcTime,\n lrcText\n ]);\n }\n }\n }\n lrc.sort(function (a, b) {\n return a[0] - b[0];\n });\n return lrc;\n } else {\n return [];\n }\n }\n }\n ]);\n return Lrc;\n}();\nexports.default = Lrc;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $imports = __webpack_require__(3);\nmodule.exports = function ($data) {\n 'use strict';\n $data = $data || {};\n var $$out = '', $each = $imports.$each, lyrics = $data.lyrics, $value = $data.$value, $index = $data.$index, $escape = $imports.$escape;\n $each(lyrics, function ($value, $index) {\n $$out += '\\n ';\n $$out += $escape($value[1]);\n $$out += '
\\n';\n });\n return $$out;\n};\n\n/***/ }),\n/* 32 */\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__(1);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n _classCallCheck(this, Controller);\n this.player = player;\n this.initPlayButton();\n this.initList();\n this.initPlayBar();\n if (this.player.isMultiple()) {\n this.initOrderButton();\n }\n this.initLoopButton();\n this.initMenuButton();\n if (!_utils2.default.isMobile) {\n this.initVolumeButton();\n }\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this = this;\n this.player.template.pic.addEventListener('click', function () {\n _this.player.toggle();\n });\n }\n },\n {\n key: 'initList',\n value: function initList() {\n var _this2 = this;\n this.player.template.list.addEventListener('click', function (e) {\n var target = void 0;\n if (e.target.tagName.toUpperCase() === 'LI') {\n target = e.target;\n } else {\n target = e.target.parentElement;\n }\n var audioIndex = parseInt(target.getElementsByClassName('aplayer-list-index')[0].innerHTML) - 1;\n if (audioIndex !== _this2.player.playIndex) {\n _this2.player.switchAudio(audioIndex);\n _this2.player.play();\n } else {\n _this2.player.toggle();\n }\n });\n }\n },\n {\n key: 'initPlayBar',\n value: function initPlayBar() {\n var _this3 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.lrc && _this3.player.lrc.update(percentage * _this3.player.audio.duration);\n _this3.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this3.player.audio.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.seek(_this3.player.bar.get('played', 'width') * _this3.player.audio.duration);\n _this3.player.disableTimeupdate = false;\n };\n this.player.template.barWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this3.player.disableTimeupdate = true;\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this4 = this;\n this.player.template.volumeButton.addEventListener('click', function () {\n if (_this4.player.audio.muted) {\n _this4.player.audio.muted = false;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', _this4.player.volume(), 'height');\n } else {\n _this4.player.audio.muted = true;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', 0, 'height');\n }\n });\n var thumbMove = function thumbMove(e) {\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n var thumbUp = function thumbUp(e) {\n _this4.player.template.volumeBarWrap.classList.remove('aplayer-volume-bar-wrap-active');\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n this.player.template.volumeBarWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this4.player.template.volumeBarWrap.classList.add('aplayer-volume-bar-wrap-active');\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initOrderButton',\n value: function initOrderButton() {\n var _this5 = this;\n this.player.template.order.addEventListener('click', function () {\n if (_this5.player.options.order === 'list') {\n _this5.player.options.order = 'random';\n _this5.player.template.order.innerHTML = _icons2.default.orderRandom;\n } else if (_this5.player.options.order === 'random') {\n _this5.player.options.order = 'list';\n _this5.player.template.order.innerHTML = _icons2.default.orderList;\n }\n });\n }\n },\n {\n key: 'initLoopButton',\n value: function initLoopButton() {\n var _this6 = this;\n this.player.template.loop.addEventListener('click', function () {\n if (_this6.player.isMultiple()) {\n if (_this6.player.options.loop === 'one') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n } else if (_this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'one';\n _this6.player.template.loop.innerHTML = _icons2.default.loopOne;\n }\n } else {\n if (_this6.player.options.loop === 'one' || _this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n }\n }\n });\n }\n },\n {\n key: 'initMenuButton',\n value: function initMenuButton() {\n var _this7 = this;\n this.player.template.list.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.listOl.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.menu.addEventListener('click', function () {\n if (!_this7.player.template.list.classList.contains('aplayer-list-hide')) {\n _this7.player.template.list.classList.add('aplayer-list-hide');\n } else {\n _this7.player.template.list.classList.remove('aplayer-list-hide');\n }\n });\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n/***/ }),\n/* 33 */\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 Timer = function () {\n function Timer(player) {\n _classCallCheck(this, Timer);\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 = ['loading'];\n this.init();\n }\n _createClass(Timer, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.types.map(function (item) {\n _this['init' + item + 'Checker']();\n return item;\n });\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this2 = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this2.enableloadingChecker) {\n currentPlayPos = _this2.player.audio.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.add('aplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.remove('aplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n this['enable' + type + 'Checker'] = true;\n if (type === 'fps') {\n this.initfpsChecker();\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n this['enable' + type + 'Checker'] = false;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n var _this3 = this;\n this.types.map(function (item) {\n _this3['enable' + item + 'Checker'] = false;\n _this3[item + 'Checker'] && clearInterval(_this3[item + 'Checker']);\n return item;\n });\n }\n }\n ]);\n return Timer;\n}();\nexports.default = Timer;\n\n/***/ }),\n/* 34 */\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.audioEvents = [\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 'destroy',\n 'switchaudio',\n 'addaudio',\n 'removeaudio',\n 'notice_show',\n 'notice_hide'\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.audioEvents.indexOf(name) !== -1) {\n return 'audio';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// APlayer.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 = 4);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap dcf0b4467c5391f74e78","'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 = 0\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nvar isMobile = /mobile/i.test(window.navigator.userAgent);\nvar utils = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var hour = Math.floor(second / 3600);\n var min = Math.floor((second - hour * 3600) / 60);\n var sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n },\n getElementViewLeft: function getElementViewLeft(element) {\n var actualLeft = element.offsetLeft;\n var current = element.offsetParent;\n var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n } else {\n while (current !== null && current !== element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n return actualLeft - elementScrollLeft;\n },\n getElementViewTop: function getElementViewTop(element) {\n var actualTop = element.offsetTop;\n var current = element.offsetParent;\n var elementScrollTop = 0;\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent;\n }\n elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n return actualTop - elementScrollTop;\n },\n isMobile: isMobile,\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 nameMap: {\n dragStart: isMobile ? 'touchstart' : 'mousedown',\n dragMove: isMobile ? 'touchmove' : 'mousemove',\n dragEnd: isMobile ? 'touchend' : 'mouseup'\n },\n randomOrder: function randomOrder() {\n var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined.options.audio.length;\n function shuffle(arr) {\n for (var i = arr.length - 1; i >= 0; i--) {\n var randomIndex = Math.floor(Math.random() * (i + 1));\n var itemAtIndex = arr[randomIndex];\n arr[randomIndex] = arr[i];\n arr[i] = itemAtIndex;\n }\n return arr;\n }\n return shuffle([].concat(_toConsumableArray(Array(length))).map(function (item, i) {\n return i;\n }));\n }\n};\nexports.default = utils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/utils.js\n// module id = 1\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _play = require('../assets/play.svg');\nvar _play2 = _interopRequireDefault(_play);\nvar _pause = require('../assets/pause.svg');\nvar _pause2 = _interopRequireDefault(_pause);\nvar _volumeUp = require('../assets/volume-up.svg');\nvar _volumeUp2 = _interopRequireDefault(_volumeUp);\nvar _volumeDown = require('../assets/volume-down.svg');\nvar _volumeDown2 = _interopRequireDefault(_volumeDown);\nvar _volumeOff = require('../assets/volume-off.svg');\nvar _volumeOff2 = _interopRequireDefault(_volumeOff);\nvar _orderRandom = require('../assets/order-random.svg');\nvar _orderRandom2 = _interopRequireDefault(_orderRandom);\nvar _orderList = require('../assets/order-list.svg');\nvar _orderList2 = _interopRequireDefault(_orderList);\nvar _menu = require('../assets/menu.svg');\nvar _menu2 = _interopRequireDefault(_menu);\nvar _loopAll = require('../assets/loop-all.svg');\nvar _loopAll2 = _interopRequireDefault(_loopAll);\nvar _loopOne = require('../assets/loop-one.svg');\nvar _loopOne2 = _interopRequireDefault(_loopOne);\nvar _loopNone = require('../assets/loop-none.svg');\nvar _loopNone2 = _interopRequireDefault(_loopNone);\nvar _loading = require('../assets/loading.svg');\nvar _loading2 = _interopRequireDefault(_loading);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nvar Icons = {\n play: _play2.default,\n pause: _pause2.default,\n volumeUp: _volumeUp2.default,\n volumeDown: _volumeDown2.default,\n volumeOff: _volumeOff2.default,\n orderRandom: _orderRandom2.default,\n orderList: _orderList2.default,\n menu: _menu2.default,\n loopAll: _loopAll2.default,\n loopOne: _loopOne2.default,\n loopNone: _loopNone2.default,\n loading: _loading2.default\n};\nexports.default = Icons;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/icons.js\n// module id = 2\n// module chunks = 0","'use strict';\nmodule.exports = require('./compile/runtime');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/art-template/lib/runtime.js\n// module id = 3\n// module chunks = 0","'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 APlayer v' + APLAYER_VERSION + ' ' + GIT_HASH + ' %c http://aplayer.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 = 4\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 _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nvar _options = require('./options');\nvar _options2 = _interopRequireDefault(_options);\nvar _template = require('./template');\nvar _template2 = _interopRequireDefault(_template);\nvar _bar = require('./bar');\nvar _bar2 = _interopRequireDefault(_bar);\nvar _user = require('./user');\nvar _user2 = _interopRequireDefault(_user);\nvar _lrc = require('./lrc');\nvar _lrc2 = _interopRequireDefault(_lrc);\nvar _controller = require('./controller');\nvar _controller2 = _interopRequireDefault(_controller);\nvar _timer = require('./timer');\nvar _timer2 = _interopRequireDefault(_timer);\nvar _events = require('./events');\nvar _events2 = _interopRequireDefault(_events);\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 instances = [];\nvar APlayer = function () {\n function APlayer(options) {\n _classCallCheck(this, APlayer);\n this.options = (0, _options2.default)(options);\n this.container = this.options.container;\n this.playIndex = 0;\n this.paused = true;\n this.playedPromise = _promisePolyfill2.default.resolve();\n this.mode = 'normal';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n this.container.classList.add('aplayer');\n if (this.options.lrcType) {\n this.container.classList.add('aplayer-withlrc');\n }\n if (this.options.audio.length > 1) {\n this.container.classList.add('aplayer-withlist');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('aplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 300;\n if (this.arrow) {\n this.container.classList.add('aplayer-arrow');\n }\n if (this.options.mini) {\n this.setMode('mini');\n }\n this.container = this.options.container;\n if (this.options.lrcType === 2 || this.options.lrcType === true) {\n var lrcEle = this.container.getElementsByClassName('aplayer-lrc-content');\n for (var i = 0; i < lrcEle.length; i++) {\n if (this.options.audio[i]) {\n this.options.audio[i].lrc = lrcEle[i].innerHTML;\n }\n }\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n randomOrder: this.randomOrder\n });\n if (this.template.info.offsetWidth < 200) {\n this.template.time.classList.add('aplayer-time-narrow');\n }\n if (this.options.lrcType) {\n this.lrc = new _lrc2.default({\n container: this.template.lrc,\n async: this.options.lrcType === 3,\n content: this.options.audio.map(function (item) {\n return item.lrc;\n }),\n player: this\n });\n }\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.bar = new _bar2.default(this.template);\n this.controller = new _controller2.default(this);\n this.timer = new _timer2.default(this);\n this.initAudio();\n if (this.options.order === 'random') {\n this.switchAudio(this.randomOrder[0]);\n } else {\n this.switchAudio(0);\n }\n if (this.options.autoplay) {\n this.play();\n }\n instances.push(this);\n }\n _createClass(APlayer, [\n {\n key: 'initAudio',\n value: function initAudio() {\n var _this = this;\n this.audio = document.createElement('audio');\n this.audio.preload = this.options.preload;\n var _loop = function _loop(i) {\n _this.audio.addEventListener(_this.events.audioEvents[i], function (e) {\n _this.events.trigger(_this.events.audioEvents[i], e);\n });\n };\n for (var i = 0; i < this.events.audioEvents.length; i++) {\n _loop(i);\n }\n this.on('play', function () {\n if (_this.paused) {\n _this.play();\n }\n });\n this.on('pause', function () {\n if (!_this.paused) {\n _this.pause();\n }\n });\n this.on('timeupdate', function () {\n if (!_this.disableTimeupdate) {\n _this.bar.set('played', _this.audio.currentTime / _this.audio.duration, 'width');\n _this.lrc && _this.lrc.update();\n var currentTime = _utils2.default.secondToTime(_this.audio.currentTime);\n if (_this.template.ptime.innerHTML !== currentTime) {\n _this.template.ptime.innerHTML = currentTime;\n }\n }\n });\n this.on('durationchange', function () {\n if (_this.audio.duration !== 1) {\n _this.template.dtime.innerHTML = _utils2.default.secondToTime(_this.audio.duration);\n }\n });\n this.on('progress', function () {\n var percentage = _this.audio.buffered.length ? _this.audio.buffered.end(_this.audio.buffered.length - 1) / _this.audio.duration : 0;\n _this.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this.notice('An audio error has occurred.');\n });\n this.on('ended', function () {\n if (_this.options.loop === 'none') {\n if (_this.options.order === 'list') {\n if (_this.playIndex < _this.options.audio.length - 1) {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.play();\n } else {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.pause();\n }\n } else if (_this.options.order === 'random') {\n if (_this.randomOrder.indexOf(_this.playIndex) < _this.randomOrder.length - 1) {\n _this.switchAudio(_this.nextRandomNum());\n _this.play();\n } else {\n _this.switchAudio(_this.nextRandomNum());\n _this.pause();\n }\n }\n } else if (_this.options.loop === 'one') {\n _this.switchAudio(_this.playIndex);\n _this.play();\n } else if (_this.options.loop === 'all') {\n if (_this.options.order === 'list') {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n } else if (_this.options.order === 'random') {\n _this.switchAudio(_this.nextRandomNum());\n }\n _this.play();\n }\n });\n this.volume(this.user.get('volume'), true);\n }\n },\n {\n key: 'switchAudio',\n value: function switchAudio(index) {\n var _this2 = this;\n this.handlePlayPromise(function () {\n _this2.events.trigger('switchaudio', index);\n if (typeof index !== 'undefined') {\n _this2.playIndex = index;\n }\n var audio = _this2.options.audio[_this2.playIndex];\n if (audio.cover) {\n _this2.template.pic.style.backgroundImage = 'url(\\'' + audio.cover + '\\')';\n } else {\n _this2.template.pic.style.backgroundImage = '';\n }\n _this2.theme();\n _this2.template.title.innerHTML = audio.name;\n _this2.template.author.innerHTML = audio.artist ? ' - ' + audio.artist : '';\n var light = _this2.container.getElementsByClassName('aplayer-list-light')[0];\n if (light) {\n light.classList.remove('aplayer-list-light');\n }\n _this2.container.querySelectorAll('.aplayer-list li')[_this2.playIndex].classList.add('aplayer-list-light');\n _this2.template.list.scrollTop = _this2.playIndex * 33;\n if (_this2.hls) {\n _this2.hls.destroy();\n _this2.hls = null;\n }\n var type = audio.type;\n if (_this2.options.customAudioType && _this2.options.customAudioType[type]) {\n if (Object.prototype.toString.call(_this2.options.customAudioType[type]) === '[object Function]') {\n _this2.options.customAudioType[type](_this2.audio, audio, _this2);\n } else {\n console.error('Illegal customType: ' + type);\n }\n } else {\n if (!type || type === 'auto') {\n if (/m3u8(#|\\?|$)/i.exec(audio.url)) {\n type = 'hls';\n } else {\n type = 'normal';\n }\n }\n if (type === 'hls') {\n if (Hls.isSupported()) {\n _this2.hls = new Hls();\n _this2.hls.loadSource(audio.url);\n _this2.hls.attachMedia(_this2.audio);\n } else if (_this2.audio.canPlayType('application/x-mpegURL') || _this2.audio.canPlayType('application/vnd.apple.mpegURL')) {\n _this2.audio.src = audio.url;\n } else {\n _this2.notice('Error: HLS is not supported.');\n }\n } else if (type === 'normal') {\n _this2.audio.src = audio.url;\n }\n }\n _this2.seek(0);\n var playPromise = void 0;\n if (!_this2.paused) {\n playPromise = _promisePolyfill2.default.resolve(_this2.audio.play()).catch(function (err) {\n console.error(err);\n _this2.pause();\n });\n }\n _this2.lrc && _this2.lrc.switch(_this2.playIndex);\n if (_this2.audio.duration !== 1) {\n _this2.template.dtime.innerHTML = _this2.audio.duration ? _utils2.default.secondToTime(_this2.audio.duration) : '00:00';\n }\n return playPromise;\n });\n }\n },\n {\n key: 'theme',\n value: function theme() {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.audio[this.playIndex].theme;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.playIndex;\n this.options.audio[index].theme = color;\n this.template.listCurs[index].style.backgroundColor = color;\n if (index === this.playIndex) {\n this.template.pic.style.backgroundColor = color;\n this.template.played.style.background = color;\n this.template.thumb.style.background = color;\n this.template.volume.style.background = color;\n }\n }\n },\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.audio.duration) {\n time = Math.min(time, this.audio.duration);\n }\n this.audio.currentTime = time;\n if (isNaN(this.audio.duration)) {\n this.bar.set('played', 0, 'width');\n } else {\n this.bar.set('played', time / this.audio.duration, 'width');\n }\n this.template.ptime.innerHTML = _utils2.default.secondToTime(time);\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this3 = this;\n this.handlePlayPromise(function () {\n if (_this3.paused) {\n _this3.paused = false;\n _this3.template.button.classList.remove('aplayer-play');\n _this3.template.button.classList.add('aplayer-pause');\n _this3.template.button.innerHTML = '';\n setTimeout(function () {\n _this3.template.button.innerHTML = _icons2.default.pause;\n }, 100);\n }\n var playPromise = _promisePolyfill2.default.resolve(_this3.audio.play()).catch(function (err) {\n console.error(err);\n _this3.pause();\n });\n _this3.timer.enable('loading');\n if (_this3.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (_this3 !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n return playPromise;\n });\n }\n },\n {\n key: 'pause',\n value: function pause() {\n var _this4 = this;\n this.handlePlayPromise(function () {\n if (!_this4.paused) {\n _this4.paused = true;\n _this4.template.button.classList.remove('aplayer-pause');\n _this4.template.button.classList.add('aplayer-play');\n _this4.template.button.innerHTML = '';\n setTimeout(function () {\n _this4.template.button.innerHTML = _icons2.default.play;\n }, 100);\n }\n _this4.audio.pause();\n _this4.timer.disable('loading');\n });\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeUp;\n } else if (this.volume() > 0) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeDown;\n } else {\n this.template.volumeButton.innerHTML = _icons2.default.volumeOff;\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage) {\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, 'height');\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.audio.muted ? 0 : this.audio.volume;\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.template.button.classList.contains('aplayer-play')) {\n this.play();\n } else if (this.template.button.classList.contains('aplayer-pause')) {\n this.pause();\n }\n }\n },\n {\n key: 'isMultiple',\n value: function isMultiple() {\n return this.options.audio.length > 1;\n }\n },\n {\n key: 'nextRandomNum',\n value: function nextRandomNum() {\n if (this.isMultiple()) {\n var index = this.randomOrder.indexOf(this.playIndex);\n if (index === this.randomOrder.length - 1) {\n return this.randomOrder[0];\n } else {\n return this.randomOrder[index + 1];\n }\n } else {\n return 0;\n }\n }\n },\n {\n key: 'addAudio',\n value: function addAudio(newMusic) {\n this.events.trigger('addaudio', newMusic);\n var wasSingle = !this.isMultiple();\n this.options.audio = this.options.audio.concat(newMusic);\n var newItemHTML = '';\n for (var i = 0; i < newMusic.length; i++) {\n newItemHTML += '' + (this.options.audio.length - newMusic.length + i + 1) + '' + newMusic[i].name + '' + newMusic[i].artist + '';\n }\n this.template.listOl.innerHTML += newItemHTML;\n if (wasSingle && this.isMultiple()) {\n this.container.classList.add('aplayer-withlist');\n this.audio.loop = false;\n }\n var songListLength = this.container.querySelectorAll('.aplayer-list li').length;\n this.template.list.style.height = songListLength * 33 - 1 + 'px';\n this.template.listOl.style.height = songListLength * 33 - 1 + 'px';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n }\n },\n {\n key: 'removeAudio',\n value: function removeAudio(index) {\n this.events.trigger('removeaudio', index);\n if (this.options.audio[index] && this.options.audio.length > 1) {\n var list = this.container.querySelectorAll('.aplayer-list li');\n this.options.audio.splice(index, 1);\n if (index === this.playIndex) {\n if (this.options.audio[index + 1]) {\n this.switchAudio(index);\n } else {\n this.switchAudio(index - 1);\n }\n }\n if (this.playIndex > index) {\n this.playIndex--;\n }\n list[index].remove();\n for (var i = index; i < list.length; i++) {\n list[i].getElementsByClassName('aplayer-list-index')[0].textContent = i;\n }\n if (this.options.audio.length === 1) {\n this.container.classList.remove('aplayer-withlist');\n }\n this.template.list.style.height = parseInt(this.template.list.style.height, 10) - 33 + 'px';\n this.template.listOl.style.height = parseInt(this.template.listOl.style.height, 10) - 33 + 'px';\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.container.innerHTML = '';\n this.audio.src = '';\n this.timer.destroy();\n this.events.trigger('destroy');\n }\n },\n {\n key: 'setMode',\n value: function setMode() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'normal';\n this.mode = mode;\n if (mode === 'mini') {\n this.container.classList.add('aplayer-narrow');\n } else if (mode === 'normal') {\n this.container.classList.remove('aplayer-narrow');\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 if (time) {\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n }\n },\n {\n key: 'handlePlayPromise',\n value: function handlePlayPromise(callback) {\n this.playedPromise = this.playedPromise.then(callback).catch(function (err) {\n console.error(err);\n });\n }\n }\n ], [{\n key: 'version',\n get: function get() {\n return APLAYER_VERSION;\n }\n }]);\n return APlayer;\n}();\nexports.default = APlayer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/player.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 setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.prototype['finally'] = function (callback) {\n var constructor = this.constructor;\n return this.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n return constructor.reject(reason);\n });\n });\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nmodule.exports = Promise;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise-polyfill/lib/index.js\n// module id = 7\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 = 8\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 = 9\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 = 10\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/play.svg\n// module id = 11\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/pause.svg\n// module id = 12\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-up.svg\n// module id = 13\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-down.svg\n// module id = 14\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-off.svg\n// module id = 15\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/order-random.svg\n// module id = 16\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/order-list.svg\n// module id = 17\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/menu.svg\n// module id = 18\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loop-all.svg\n// module id = 19\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loop-one.svg\n// module id = 20\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loop-none.svg\n// module id = 21\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loading.svg\n// module id = 22\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('aplayer')[0],\n mini: options.narrow || false,\n autoplay: false,\n mutex: true,\n lrcType: options.showlrc || options.lrc || 0,\n preload: 'auto',\n theme: '#b7daff',\n loop: 'all',\n order: 'list',\n volume: 0.7,\n listFolded: false,\n listMaxHeight: options.listmaxheight,\n audio: options.music\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (Object.prototype.toString.call(options.audio) !== '[object Array]') {\n options.audio = [options.audio];\n }\n options.audio.map(function (item) {\n item.name = item.name || item.title;\n item.artist = item.artist || item.author;\n item.cover = item.cover || item.pic;\n item.type = item.type || 'normal';\n return item;\n });\n if (options.audio.length <= 1 && options.loop === 'one') {\n options.loop = 'all';\n }\n return options;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/options.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}();\nvar _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nvar _player = require('../template/player.art');\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.randomOrder = options.randomOrder;\n this.init();\n }\n _createClass(Template, [{\n key: 'init',\n value: function init() {\n var cover = void 0;\n if (this.options.order === 'random') {\n cover = this.options.audio[this.randomOrder[0]].cover;\n } else {\n cover = this.options.audio[0].cover;\n }\n this.container.innerHTML = (0, _player2.default)({\n options: this.options,\n icons: _icons2.default,\n cover: cover\n });\n this.lrc = this.container.querySelector('.aplayer-lrc-contents');\n this.ptime = this.container.querySelector('.aplayer-ptime');\n this.info = this.container.querySelector('.aplayer-info');\n this.time = this.container.querySelector('.aplayer-time');\n this.barWrap = this.container.querySelector('.aplayer-bar-wrap');\n this.button = this.container.querySelector('.aplayer-button');\n this.list = this.container.querySelector('.aplayer-list');\n this.listOl = this.container.querySelector('.aplayer-list ol');\n this.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n this.played = this.container.querySelector('.aplayer-played');\n this.loaded = this.container.querySelector('.aplayer-loaded');\n this.thumb = this.container.querySelector('.aplayer-thumb');\n this.volume = this.container.querySelector('.aplayer-volume');\n this.volumeBar = this.container.querySelector('.aplayer-volume-bar');\n this.volumeButton = this.container.querySelector('.aplayer-time button');\n this.volumeBarWrap = this.container.querySelector('.aplayer-volume-bar-wrap');\n this.loop = this.container.querySelector('.aplayer-icon-loop');\n this.order = this.container.querySelector('.aplayer-icon-order');\n this.menu = this.container.querySelector('.aplayer-icon-menu');\n this.pic = this.container.querySelector('.aplayer-pic');\n this.title = this.container.querySelector('.aplayer-title');\n this.author = this.container.querySelector('.aplayer-author');\n this.dtime = this.container.querySelector('.aplayer-dtime');\n this.notice = this.container.querySelector('.aplayer-notice');\n }\n }]);\n return Template;\n}();\nexports.default = Template;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/template.js\n// module id = 24\n// module chunks = 0","\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n {{@ icons.loading }}\n \n
\n
\n
\n
\n
\n 00:00 / 00:00\n \n
\n
\n
\n
\n {{ if options.audio.length > 1 }}\n
\n {{ /if }}\n
\n
\n
\n
\n
\n
\n
\n\n
\n {{each options.audio}}\n - \n \n {{ $index + 1 }}\n {{ $value.name }}\n {{ $value.artist }}\n
\n {{/each}}\n
\n
\n\n\n// WEBPACK FOOTER //\n// ./src/template/player.art","'use strict';\nvar detectNode = require('detect-node');\nvar runtime = Object.create(detectNode ? global : window);\nvar ESCAPE_REG = /[\"&'<>]/;\nruntime.$escape = function (content) {\n return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n if (Array.isArray(data)) {\n for (var i = 0, len = data.length; i < len; i++) {\n callback(data[i], i);\n }\n } else {\n for (var _i in data) {\n callback(data[_i], _i);\n }\n }\n};\nfunction toString(value) {\n if (typeof value !== 'string') {\n if (value === undefined || value === null) {\n value = '';\n } else if (typeof value === 'function') {\n value = toString(value.call(value));\n } else {\n value = JSON.stringify(value);\n }\n }\n return value;\n}\n;\nfunction xmlEscape(content) {\n var html = '' + content;\n var regexResult = ESCAPE_REG.exec(html);\n if (!regexResult) {\n return content;\n }\n var result = '';\n var i = void 0, lastIndex = void 0, char = void 0;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34:\n char = '"';\n break;\n case 38:\n char = '&';\n break;\n case 39:\n char = ''';\n break;\n case 60:\n char = '<';\n break;\n case 62:\n char = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) {\n result += html.substring(lastIndex, i);\n }\n lastIndex = i + 1;\n result += char;\n }\n if (lastIndex !== i) {\n return result + html.substring(lastIndex, i);\n } else {\n return result;\n }\n}\n;\nmodule.exports = runtime;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/art-template/lib/compile/runtime.js\n// module id = 26\n// module chunks = 0","'use strict';\nmodule.exports = false;\ntry {\n module.exports = Object.prototype.toString.call(global.process) === '[object process]';\n} catch (e) {\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/detect-node/index.js\n// module id = 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 Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volume;\n this.elements.played = template.played;\n this.elements.loaded = template.loaded;\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, direction) {\n return parseFloat(this.elements[type].style[direction]) / 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 = 28\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 = { volume: 'aplayer-volume' };\n this.default = { volume: player.options.volume || 0.7 };\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 = 29\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 _lrc = require('../template/lrc.art');\nvar _lrc2 = _interopRequireDefault(_lrc);\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 Lrc = function () {\n function Lrc(options) {\n _classCallCheck(this, Lrc);\n this.container = options.container;\n this.async = options.async;\n this.player = options.player;\n this.content = options.content;\n this.parsed = [];\n this.index = 0;\n this.current = [];\n }\n _createClass(Lrc, [\n {\n key: 'update',\n value: function update() {\n var currentTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.player.audio.currentTime;\n if (this.index > this.current.length - 1 || currentTime < this.current[this.index][0] || !this.current[this.index + 1] || currentTime >= this.current[this.index + 1][0]) {\n for (var i = 0; i < this.current.length; i++) {\n if (currentTime >= this.current[i][0] && (!this.current[i + 1] || currentTime < this.current[i + 1][0])) {\n this.index = i;\n this.container.style.transform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.style.webkitTransform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.getElementsByClassName('aplayer-lrc-current')[0].classList.remove('aplayer-lrc-current');\n this.container.getElementsByTagName('p')[i].classList.add('aplayer-lrc-current');\n }\n }\n }\n }\n },\n {\n key: 'switch',\n value: function _switch(index) {\n var _this = this;\n if (!this.parsed[index]) {\n if (!this.async) {\n if (this.content[index]) {\n this.parsed[index] = this.parse(this.content[index]);\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Loading'\n ]];\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (index === _this.player.playIndex && xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n _this.parsed[index] = _this.parse(xhr.responseText);\n } else {\n _this.player.notice('LRC file request fails: status ' + xhr.status);\n _this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n _this.container.innerHTML = (0, _lrc2.default)({ lyrics: _this.parsed[index] });\n _this.update(0);\n _this.current = _this.parsed[index];\n }\n };\n var apiurl = this.content[index];\n xhr.open('get', apiurl, true);\n xhr.send(null);\n }\n }\n this.container.innerHTML = (0, _lrc2.default)({ lyrics: this.parsed[index] });\n this.update(0);\n this.current = this.parsed[index];\n }\n },\n {\n key: 'parse',\n value: function parse(lrc_s) {\n if (lrc_s) {\n lrc_s = lrc_s.replace(/([^\\]^\\n])\\[/g, function (match, p1) {\n return p1 + '\\n[';\n });\n var lyric = lrc_s.split('\\n');\n var lrc = [];\n var lyricLen = lyric.length;\n for (var i = 0; i < lyricLen; i++) {\n var lrcTimes = lyric[i].match(/\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g);\n var lrcText = lyric[i].replace(/.*\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g, '').replace(/<(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?>/g, '').replace(/^\\s+|\\s+$/g, '');\n if (lrcTimes) {\n var timeLen = lrcTimes.length;\n for (var j = 0; j < timeLen; j++) {\n var oneTime = /\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/.exec(lrcTimes[j]);\n var min2sec = oneTime[1] * 60;\n var sec2sec = parseInt(oneTime[2]);\n var msec2sec = oneTime[4] ? parseInt(oneTime[4]) / ((oneTime[4] + '').length === 2 ? 100 : 1000) : 0;\n var lrcTime = min2sec + sec2sec + msec2sec;\n lrc.push([\n lrcTime,\n lrcText\n ]);\n }\n }\n }\n lrc.sort(function (a, b) {\n return a[0] - b[0];\n });\n return lrc;\n } else {\n return [];\n }\n }\n }\n ]);\n return Lrc;\n}();\nexports.default = Lrc;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/lrc.js\n// module id = 30\n// module chunks = 0","{{each lyrics}}\n {{$value[1]}}
\n{{/each}}\n\n\n// WEBPACK FOOTER //\n// ./src/template/lrc.art","'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 _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n _classCallCheck(this, Controller);\n this.player = player;\n this.initPlayButton();\n this.initList();\n this.initPlayBar();\n if (this.player.isMultiple()) {\n this.initOrderButton();\n }\n this.initLoopButton();\n this.initMenuButton();\n if (!_utils2.default.isMobile) {\n this.initVolumeButton();\n }\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this = this;\n this.player.template.pic.addEventListener('click', function () {\n _this.player.toggle();\n });\n }\n },\n {\n key: 'initList',\n value: function initList() {\n var _this2 = this;\n this.player.template.list.addEventListener('click', function (e) {\n var target = void 0;\n if (e.target.tagName.toUpperCase() === 'LI') {\n target = e.target;\n } else {\n target = e.target.parentElement;\n }\n var audioIndex = parseInt(target.getElementsByClassName('aplayer-list-index')[0].innerHTML) - 1;\n if (audioIndex !== _this2.player.playIndex) {\n _this2.player.switchAudio(audioIndex);\n _this2.player.play();\n } else {\n _this2.player.toggle();\n }\n });\n }\n },\n {\n key: 'initPlayBar',\n value: function initPlayBar() {\n var _this3 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.lrc && _this3.player.lrc.update(percentage * _this3.player.audio.duration);\n _this3.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this3.player.audio.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.seek(_this3.player.bar.get('played', 'width') * _this3.player.audio.duration);\n _this3.player.disableTimeupdate = false;\n };\n this.player.template.barWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this3.player.disableTimeupdate = true;\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this4 = this;\n this.player.template.volumeButton.addEventListener('click', function () {\n if (_this4.player.audio.muted) {\n _this4.player.audio.muted = false;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', _this4.player.volume(), 'height');\n } else {\n _this4.player.audio.muted = true;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', 0, 'height');\n }\n });\n var thumbMove = function thumbMove(e) {\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n var thumbUp = function thumbUp(e) {\n _this4.player.template.volumeBarWrap.classList.remove('aplayer-volume-bar-wrap-active');\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n this.player.template.volumeBarWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this4.player.template.volumeBarWrap.classList.add('aplayer-volume-bar-wrap-active');\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initOrderButton',\n value: function initOrderButton() {\n var _this5 = this;\n this.player.template.order.addEventListener('click', function () {\n if (_this5.player.options.order === 'list') {\n _this5.player.options.order = 'random';\n _this5.player.template.order.innerHTML = _icons2.default.orderRandom;\n } else if (_this5.player.options.order === 'random') {\n _this5.player.options.order = 'list';\n _this5.player.template.order.innerHTML = _icons2.default.orderList;\n }\n });\n }\n },\n {\n key: 'initLoopButton',\n value: function initLoopButton() {\n var _this6 = this;\n this.player.template.loop.addEventListener('click', function () {\n if (_this6.player.isMultiple()) {\n if (_this6.player.options.loop === 'one') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n } else if (_this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'one';\n _this6.player.template.loop.innerHTML = _icons2.default.loopOne;\n }\n } else {\n if (_this6.player.options.loop === 'one' || _this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n }\n }\n });\n }\n },\n {\n key: 'initMenuButton',\n value: function initMenuButton() {\n var _this7 = this;\n this.player.template.list.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.listOl.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.menu.addEventListener('click', function () {\n if (!_this7.player.template.list.classList.contains('aplayer-list-hide')) {\n _this7.player.template.list.classList.add('aplayer-list-hide');\n } else {\n _this7.player.template.list.classList.remove('aplayer-list-hide');\n }\n });\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/controller.js\n// module id = 32\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 Timer = function () {\n function Timer(player) {\n _classCallCheck(this, Timer);\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 = ['loading'];\n this.init();\n }\n _createClass(Timer, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.types.map(function (item) {\n _this['init' + item + 'Checker']();\n return item;\n });\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this2 = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this2.enableloadingChecker) {\n currentPlayPos = _this2.player.audio.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.add('aplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.remove('aplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n this['enable' + type + 'Checker'] = true;\n if (type === 'fps') {\n this.initfpsChecker();\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n this['enable' + type + 'Checker'] = false;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n var _this3 = this;\n this.types.map(function (item) {\n _this3['enable' + item + 'Checker'] = false;\n _this3[item + 'Checker'] && clearInterval(_this3[item + 'Checker']);\n return item;\n });\n }\n }\n ]);\n return Timer;\n}();\nexports.default = Timer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/timer.js\n// module id = 33\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.audioEvents = [\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 'destroy',\n 'switchaudio',\n 'addaudio',\n 'removeaudio',\n 'notice_show',\n 'notice_hide'\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.audioEvents.indexOf(name) !== -1) {\n return 'audio';\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 = 34\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///APlayer.min.js","webpack:///webpack/bootstrap a7252dc747889bfc9aa1","webpack:///(webpack)/buildin/global.js","webpack:///./src/js/utils.js","webpack:///./src/js/icons.js","webpack:///./node_modules/art-template/lib/runtime.js","webpack:///./src/js/index.js","webpack:///./src/js/player.js","webpack:///./node_modules/promise-polyfill/lib/index.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./src/assets/play.svg","webpack:///./src/assets/pause.svg","webpack:///./src/assets/volume-up.svg","webpack:///./src/assets/volume-down.svg","webpack:///./src/assets/volume-off.svg","webpack:///./src/assets/order-random.svg","webpack:///./src/assets/order-list.svg","webpack:///./src/assets/menu.svg","webpack:///./src/assets/loop-all.svg","webpack:///./src/assets/loop-one.svg","webpack:///./src/assets/loop-none.svg","webpack:///./src/assets/loading.svg","webpack:///./src/js/options.js","webpack:///./src/js/template.js","webpack:///./src/template/player.art","webpack:///./node_modules/art-template/lib/compile/runtime.js","webpack:///./node_modules/detect-node/index.js","webpack:///./src/js/bar.js","webpack:///./src/js/user.js","webpack:///./src/js/lrc.js","webpack:///./src/template/lrc.art","webpack:///./src/js/controller.js","webpack:///./src/js/timer.js","webpack:///./src/js/events.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","g","_typeof","Symbol","iterator","obj","constructor","Function","eval","e","window","_toConsumableArray","arr","Array","isArray","arr2","length","from","value","isMobile","test","navigator","userAgent","utils","secondToTime","second","add0","num","hour","Math","floor","min","sec","map","join","getElementViewLeft","element","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","document","body","scrollLeft","documentElement","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","getElementViewTop","actualTop","offsetTop","elementScrollTop","scrollTop","storage","set","key","localStorage","setItem","getItem","nameMap","dragStart","dragMove","dragEnd","randomOrder","arguments","undefined","options","audio","randomIndex","random","itemAtIndex","concat","item","default","_interopRequireDefault","_play","_play2","_pause","_pause2","_volumeUp","_volumeUp2","_volumeDown","_volumeDown2","_volumeOff","_volumeOff2","_orderRandom","_orderRandom2","_orderList","_orderList2","_menu","_menu2","_loopAll","_loopAll2","_loopOne","_loopOne2","_loopNone","_loopNone2","_loading","_loading2","Icons","play","pause","volumeUp","volumeDown","volumeOff","orderRandom","orderList","menu","loopAll","loopOne","loopNone","loading","_player","_player2","console","log","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","writable","protoProps","staticProps","_promisePolyfill","_promisePolyfill2","_utils","_utils2","_icons","_icons2","_options","_options2","_template","_template2","_bar","_bar2","_user","_user2","_lrc","_lrc2","_controller","_controller2","_timer","_timer2","_events","_events2","instances","APlayer","container","playIndex","paused","playedPromise","resolve","mode","classList","add","lrcType","arrow","offsetWidth","mini","setMode","lrcEle","getElementsByClassName","lrc","innerHTML","template","info","time","async","content","player","events","user","bar","controller","timer","initAudio","order","switchAudio","autoplay","push","_this","createElement","preload","audioEvents","addEventListener","trigger","on","disableTimeupdate","currentTime","duration","update","ptime","dtime","percentage","buffered","end","notice","loop","indexOf","nextRandomNum","volume","index","_this2","handlePlayPromise","cover","pic","style","backgroundImage","theme","title","author","artist","light","remove","querySelectorAll","list","hls","destroy","type","customAudioType","toString","error","exec","url","Hls","isSupported","loadSource","attachMedia","canPlayType","src","seek","playPromise","catch","err","switch","color","listCurs","backgroundColor","played","background","thumb","max","isNaN","_this3","button","setTimeout","enable","mutex","_this4","disable","volumeButton","nostorage","parseFloat","muted","switchVolumeIcon","callback","contains","isMultiple","newMusic","wasSingle","newItemHTML","listOl","height","splice","textContent","text","_this5","opacity","noticeTime","clearTimeout","then","setImmediate","noop","bind","fn","thisArg","apply","Promise","_state","_handled","_value","_deferreds","doResolve","handle","deferred","_immediateFn","cb","onFulfilled","onRejected","reject","promise","ret","newValue","finale","_unhandledRejectionFn","len","Handler","done","reason","ex","setTimeoutFunc","prom","all","res","val","args","remaining","slice","race","values","warn","Timeout","id","clearFn","_id","_clearFn","setInterval","clearInterval","timeout","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","global","process","task","tasksByHandle","nextHandle","registerImmediate","run","runIfPresent","currentlyRunningATask","doc","attachTo","getPrototypeOf","nextTick","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","onGlobalMessage","event","source","data","attachEvent","MessageChannel","channel","port1","port2","html","script","onreadystatechange","removeChild","appendChild","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","Item","array","browser","env","argv","version","versions","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","defaultOption","narrow","showlrc","listFolded","listMaxHeight","listmaxheight","music","defaultKey","Template","init","icons","querySelector","barWrap","loaded","volumeBar","volumeBarWrap","$imports","$data","$$out","$escape","$each","$value","$index","JSON","stringify","xmlEscape","regexResult","ESCAPE_REG","result","lastIndex","char","charCodeAt","substring","detectNode","runtime","create","_i","Bar","elements","direction","User","storageName","Lrc","parsed","transform","webkitTransform","getElementsByTagName","xhr","XMLHttpRequest","readyState","status","parse","responseText","lyrics","apiurl","open","send","lrc_s","replace","match","p1","lyric","split","lyricLen","lrcTimes","lrcText","timeLen","j","oneTime","min2sec","sec2sec","parseInt","msec2sec","lrcTime","sort","a","b","Controller","initPlayButton","initList","initPlayBar","initOrderButton","initLoopButton","initMenuButton","initVolumeButton","toggle","tagName","toUpperCase","parentElement","audioIndex","thumbMove","clientX","changedTouches","clientWidth","thumbUp","removeEventListener","clientY","clientHeight","_this6","_this7","Timer","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","types","lastPlayPos","currentPlayPos","bufferingDetected","loadingChecker","enableloadingChecker","initfpsChecker","Events","playerEvents"],"mappings":"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","file":"APlayer.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(\"APlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"APlayer\"] = factory();\n\telse\n\t\troot[\"APlayer\"] = 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(\"APlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"APlayer\"] = factory();\n\telse\n\t\troot[\"APlayer\"] = 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 = 4);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\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/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nvar isMobile = /mobile/i.test(window.navigator.userAgent);\nvar utils = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var hour = Math.floor(second / 3600);\n var min = Math.floor((second - hour * 3600) / 60);\n var sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n },\n getElementViewLeft: function getElementViewLeft(element) {\n var actualLeft = element.offsetLeft;\n var current = element.offsetParent;\n var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n } else {\n while (current !== null && current !== element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n return actualLeft - elementScrollLeft;\n },\n getElementViewTop: function getElementViewTop(element) {\n var actualTop = element.offsetTop;\n var current = element.offsetParent;\n var elementScrollTop = 0;\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent;\n }\n elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n return actualTop - elementScrollTop;\n },\n isMobile: isMobile,\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 nameMap: {\n dragStart: isMobile ? 'touchstart' : 'mousedown',\n dragMove: isMobile ? 'touchmove' : 'mousemove',\n dragEnd: isMobile ? 'touchend' : 'mouseup'\n },\n randomOrder: function randomOrder() {\n var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined.options.audio.length;\n function shuffle(arr) {\n for (var i = arr.length - 1; i >= 0; i--) {\n var randomIndex = Math.floor(Math.random() * (i + 1));\n var itemAtIndex = arr[randomIndex];\n arr[randomIndex] = arr[i];\n arr[i] = itemAtIndex;\n }\n return arr;\n }\n return shuffle([].concat(_toConsumableArray(Array(length))).map(function (item, i) {\n return i;\n }));\n }\n};\nexports.default = utils;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _play = __webpack_require__(11);\nvar _play2 = _interopRequireDefault(_play);\nvar _pause = __webpack_require__(12);\nvar _pause2 = _interopRequireDefault(_pause);\nvar _volumeUp = __webpack_require__(13);\nvar _volumeUp2 = _interopRequireDefault(_volumeUp);\nvar _volumeDown = __webpack_require__(14);\nvar _volumeDown2 = _interopRequireDefault(_volumeDown);\nvar _volumeOff = __webpack_require__(15);\nvar _volumeOff2 = _interopRequireDefault(_volumeOff);\nvar _orderRandom = __webpack_require__(16);\nvar _orderRandom2 = _interopRequireDefault(_orderRandom);\nvar _orderList = __webpack_require__(17);\nvar _orderList2 = _interopRequireDefault(_orderList);\nvar _menu = __webpack_require__(18);\nvar _menu2 = _interopRequireDefault(_menu);\nvar _loopAll = __webpack_require__(19);\nvar _loopAll2 = _interopRequireDefault(_loopAll);\nvar _loopOne = __webpack_require__(20);\nvar _loopOne2 = _interopRequireDefault(_loopOne);\nvar _loopNone = __webpack_require__(21);\nvar _loopNone2 = _interopRequireDefault(_loopNone);\nvar _loading = __webpack_require__(22);\nvar _loading2 = _interopRequireDefault(_loading);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nvar Icons = {\n play: _play2.default,\n pause: _pause2.default,\n volumeUp: _volumeUp2.default,\n volumeDown: _volumeDown2.default,\n volumeOff: _volumeOff2.default,\n orderRandom: _orderRandom2.default,\n orderList: _orderList2.default,\n menu: _menu2.default,\n loopAll: _loopAll2.default,\n loopOne: _loopOne2.default,\n loopNone: _loopNone2.default,\n loading: _loading2.default\n};\nexports.default = Icons;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = __webpack_require__(26);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\n__webpack_require__(5);\nvar _player = __webpack_require__(6);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nconsole.log('\\n' + ' %c APlayer v' + \"1.9.1\" + ' ' + \"bede064\" + ' %c http://aplayer.js.org ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexports.default = _player2.default;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 6 */\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__(7);\nvar _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);\nvar _utils = __webpack_require__(1);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nvar _options = __webpack_require__(23);\nvar _options2 = _interopRequireDefault(_options);\nvar _template = __webpack_require__(24);\nvar _template2 = _interopRequireDefault(_template);\nvar _bar = __webpack_require__(28);\nvar _bar2 = _interopRequireDefault(_bar);\nvar _user = __webpack_require__(29);\nvar _user2 = _interopRequireDefault(_user);\nvar _lrc = __webpack_require__(30);\nvar _lrc2 = _interopRequireDefault(_lrc);\nvar _controller = __webpack_require__(32);\nvar _controller2 = _interopRequireDefault(_controller);\nvar _timer = __webpack_require__(33);\nvar _timer2 = _interopRequireDefault(_timer);\nvar _events = __webpack_require__(34);\nvar _events2 = _interopRequireDefault(_events);\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 instances = [];\nvar APlayer = function () {\n function APlayer(options) {\n _classCallCheck(this, APlayer);\n this.options = (0, _options2.default)(options);\n this.container = this.options.container;\n this.playIndex = 0;\n this.paused = true;\n this.playedPromise = _promisePolyfill2.default.resolve();\n this.mode = 'normal';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n this.container.classList.add('aplayer');\n if (this.options.lrcType) {\n this.container.classList.add('aplayer-withlrc');\n }\n if (this.options.audio.length > 1) {\n this.container.classList.add('aplayer-withlist');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('aplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 300;\n if (this.arrow) {\n this.container.classList.add('aplayer-arrow');\n }\n if (this.options.mini) {\n this.setMode('mini');\n }\n this.container = this.options.container;\n if (this.options.lrcType === 2 || this.options.lrcType === true) {\n var lrcEle = this.container.getElementsByClassName('aplayer-lrc-content');\n for (var i = 0; i < lrcEle.length; i++) {\n if (this.options.audio[i]) {\n this.options.audio[i].lrc = lrcEle[i].innerHTML;\n }\n }\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n randomOrder: this.randomOrder\n });\n if (this.template.info.offsetWidth < 200) {\n this.template.time.classList.add('aplayer-time-narrow');\n }\n if (this.options.lrcType) {\n this.lrc = new _lrc2.default({\n container: this.template.lrc,\n async: this.options.lrcType === 3,\n content: this.options.audio.map(function (item) {\n return item.lrc;\n }),\n player: this\n });\n }\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.bar = new _bar2.default(this.template);\n this.controller = new _controller2.default(this);\n this.timer = new _timer2.default(this);\n this.initAudio();\n if (this.options.order === 'random') {\n this.switchAudio(this.randomOrder[0]);\n } else {\n this.switchAudio(0);\n }\n if (this.options.autoplay) {\n this.play();\n }\n instances.push(this);\n }\n _createClass(APlayer, [\n {\n key: 'initAudio',\n value: function initAudio() {\n var _this = this;\n this.audio = document.createElement('audio');\n this.audio.preload = this.options.preload;\n var _loop = function _loop(i) {\n _this.audio.addEventListener(_this.events.audioEvents[i], function (e) {\n _this.events.trigger(_this.events.audioEvents[i], e);\n });\n };\n for (var i = 0; i < this.events.audioEvents.length; i++) {\n _loop(i);\n }\n this.on('play', function () {\n if (_this.paused) {\n _this.play();\n }\n });\n this.on('pause', function () {\n if (!_this.paused) {\n _this.pause();\n }\n });\n this.on('timeupdate', function () {\n if (!_this.disableTimeupdate) {\n _this.bar.set('played', _this.audio.currentTime / _this.audio.duration, 'width');\n _this.lrc && _this.lrc.update();\n var currentTime = _utils2.default.secondToTime(_this.audio.currentTime);\n if (_this.template.ptime.innerHTML !== currentTime) {\n _this.template.ptime.innerHTML = currentTime;\n }\n }\n });\n this.on('durationchange', function () {\n if (_this.audio.duration !== 1) {\n _this.template.dtime.innerHTML = _utils2.default.secondToTime(_this.audio.duration);\n }\n });\n this.on('progress', function () {\n var percentage = _this.audio.buffered.length ? _this.audio.buffered.end(_this.audio.buffered.length - 1) / _this.audio.duration : 0;\n _this.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this.notice('An audio error has occurred.');\n });\n this.on('ended', function () {\n if (_this.options.loop === 'none') {\n if (_this.options.order === 'list') {\n if (_this.playIndex < _this.options.audio.length - 1) {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.play();\n } else {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.pause();\n }\n } else if (_this.options.order === 'random') {\n if (_this.randomOrder.indexOf(_this.playIndex) < _this.randomOrder.length - 1) {\n _this.switchAudio(_this.nextRandomNum());\n _this.play();\n } else {\n _this.switchAudio(_this.nextRandomNum());\n _this.pause();\n }\n }\n } else if (_this.options.loop === 'one') {\n _this.switchAudio(_this.playIndex);\n _this.play();\n } else if (_this.options.loop === 'all') {\n if (_this.options.order === 'list') {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n } else if (_this.options.order === 'random') {\n _this.switchAudio(_this.nextRandomNum());\n }\n _this.play();\n }\n });\n this.volume(this.user.get('volume'), true);\n }\n },\n {\n key: 'switchAudio',\n value: function switchAudio(index) {\n var _this2 = this;\n this.handlePlayPromise(function () {\n _this2.events.trigger('switchaudio', index);\n if (typeof index !== 'undefined') {\n _this2.playIndex = index;\n }\n var audio = _this2.options.audio[_this2.playIndex];\n if (audio.cover) {\n _this2.template.pic.style.backgroundImage = 'url(\\'' + audio.cover + '\\')';\n } else {\n _this2.template.pic.style.backgroundImage = '';\n }\n _this2.theme();\n _this2.template.title.innerHTML = audio.name;\n _this2.template.author.innerHTML = audio.artist ? ' - ' + audio.artist : '';\n var light = _this2.container.getElementsByClassName('aplayer-list-light')[0];\n if (light) {\n light.classList.remove('aplayer-list-light');\n }\n _this2.container.querySelectorAll('.aplayer-list li')[_this2.playIndex].classList.add('aplayer-list-light');\n _this2.template.list.scrollTop = _this2.playIndex * 33;\n if (_this2.hls) {\n _this2.hls.destroy();\n _this2.hls = null;\n }\n var type = audio.type;\n if (_this2.options.customAudioType && _this2.options.customAudioType[type]) {\n if (Object.prototype.toString.call(_this2.options.customAudioType[type]) === '[object Function]') {\n _this2.options.customAudioType[type](_this2.audio, audio, _this2);\n } else {\n console.error('Illegal customType: ' + type);\n }\n } else {\n if (!type || type === 'auto') {\n if (/m3u8(#|\\?|$)/i.exec(audio.url)) {\n type = 'hls';\n } else {\n type = 'normal';\n }\n }\n if (type === 'hls') {\n if (Hls.isSupported()) {\n _this2.hls = new Hls();\n _this2.hls.loadSource(audio.url);\n _this2.hls.attachMedia(_this2.audio);\n } else if (_this2.audio.canPlayType('application/x-mpegURL') || _this2.audio.canPlayType('application/vnd.apple.mpegURL')) {\n _this2.audio.src = audio.url;\n } else {\n _this2.notice('Error: HLS is not supported.');\n }\n } else if (type === 'normal') {\n _this2.audio.src = audio.url;\n }\n }\n _this2.seek(0);\n var playPromise = void 0;\n if (!_this2.paused) {\n playPromise = _promisePolyfill2.default.resolve(_this2.audio.play()).catch(function (err) {\n console.error(err);\n _this2.pause();\n });\n }\n _this2.lrc && _this2.lrc.switch(_this2.playIndex);\n if (_this2.audio.duration !== 1) {\n _this2.template.dtime.innerHTML = _this2.audio.duration ? _utils2.default.secondToTime(_this2.audio.duration) : '00:00';\n }\n return playPromise;\n });\n }\n },\n {\n key: 'theme',\n value: function theme() {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.audio[this.playIndex].theme;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.playIndex;\n this.options.audio[index].theme = color;\n this.template.listCurs[index].style.backgroundColor = color;\n if (index === this.playIndex) {\n this.template.pic.style.backgroundColor = color;\n this.template.played.style.background = color;\n this.template.thumb.style.background = color;\n this.template.volume.style.background = color;\n }\n }\n },\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.audio.duration) {\n time = Math.min(time, this.audio.duration);\n }\n this.audio.currentTime = time;\n if (isNaN(this.audio.duration)) {\n this.bar.set('played', 0, 'width');\n } else {\n this.bar.set('played', time / this.audio.duration, 'width');\n }\n this.template.ptime.innerHTML = _utils2.default.secondToTime(time);\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this3 = this;\n this.handlePlayPromise(function () {\n if (_this3.paused) {\n _this3.paused = false;\n _this3.template.button.classList.remove('aplayer-play');\n _this3.template.button.classList.add('aplayer-pause');\n _this3.template.button.innerHTML = '';\n setTimeout(function () {\n _this3.template.button.innerHTML = _icons2.default.pause;\n }, 100);\n }\n var playPromise = _promisePolyfill2.default.resolve(_this3.audio.play()).catch(function (err) {\n console.error(err);\n _this3.pause();\n });\n _this3.timer.enable('loading');\n if (_this3.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (_this3 !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n return playPromise;\n });\n }\n },\n {\n key: 'pause',\n value: function pause() {\n var _this4 = this;\n this.handlePlayPromise(function () {\n if (!_this4.paused) {\n _this4.paused = true;\n _this4.template.button.classList.remove('aplayer-pause');\n _this4.template.button.classList.add('aplayer-play');\n _this4.template.button.innerHTML = '';\n setTimeout(function () {\n _this4.template.button.innerHTML = _icons2.default.play;\n }, 100);\n }\n _this4.audio.pause();\n _this4.container.classList.remove('aplayer-loading');\n _this4.timer.disable('loading');\n });\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeUp;\n } else if (this.volume() > 0) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeDown;\n } else {\n this.template.volumeButton.innerHTML = _icons2.default.volumeOff;\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage) {\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, 'height');\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.audio.muted ? 0 : this.audio.volume;\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.template.button.classList.contains('aplayer-play')) {\n this.play();\n } else if (this.template.button.classList.contains('aplayer-pause')) {\n this.pause();\n }\n }\n },\n {\n key: 'isMultiple',\n value: function isMultiple() {\n return this.options.audio.length > 1;\n }\n },\n {\n key: 'nextRandomNum',\n value: function nextRandomNum() {\n if (this.isMultiple()) {\n var index = this.randomOrder.indexOf(this.playIndex);\n if (index === this.randomOrder.length - 1) {\n return this.randomOrder[0];\n } else {\n return this.randomOrder[index + 1];\n }\n } else {\n return 0;\n }\n }\n },\n {\n key: 'addAudio',\n value: function addAudio(newMusic) {\n this.events.trigger('addaudio', newMusic);\n var wasSingle = !this.isMultiple();\n this.options.audio = this.options.audio.concat(newMusic);\n var newItemHTML = '';\n for (var i = 0; i < newMusic.length; i++) {\n newItemHTML += '' + (this.options.audio.length - newMusic.length + i + 1) + '' + newMusic[i].name + '' + newMusic[i].artist + '';\n }\n this.template.listOl.innerHTML += newItemHTML;\n if (wasSingle && this.isMultiple()) {\n this.container.classList.add('aplayer-withlist');\n this.audio.loop = false;\n }\n this.template.list.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.template.listOl.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n this.template.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n }\n },\n {\n key: 'removeAudio',\n value: function removeAudio(index) {\n this.events.trigger('removeaudio', index);\n if (this.options.audio[index] && this.options.audio.length > 1) {\n var list = this.container.querySelectorAll('.aplayer-list li');\n this.options.audio.splice(index, 1);\n if (index === this.playIndex) {\n if (this.options.audio[index + 1]) {\n this.switchAudio(index);\n } else {\n this.switchAudio(index - 1);\n }\n }\n if (this.playIndex > index) {\n this.playIndex--;\n }\n list[index].remove();\n for (var i = index; i < list.length; i++) {\n list[i].getElementsByClassName('aplayer-list-index')[0].textContent = i;\n }\n if (this.options.audio.length === 1) {\n this.container.classList.remove('aplayer-withlist');\n }\n this.template.list.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.template.listOl.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.template.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.container.innerHTML = '';\n this.audio.src = '';\n this.timer.destroy();\n this.events.trigger('destroy');\n }\n },\n {\n key: 'setMode',\n value: function setMode() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'normal';\n this.mode = mode;\n if (mode === 'mini') {\n this.container.classList.add('aplayer-narrow');\n } else if (mode === 'normal') {\n this.container.classList.remove('aplayer-narrow');\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 if (time) {\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n }\n },\n {\n key: 'handlePlayPromise',\n value: function handlePlayPromise(callback) {\n this.playedPromise = this.playedPromise.then(callback).catch(function (err) {\n console.error(err);\n });\n }\n }\n ], [{\n key: 'version',\n get: function get() {\n return \"1.9.1\";\n }\n }]);\n return APlayer;\n}();\nexports.default = APlayer;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(setImmediate) {\nvar _typeof = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n};\nvar setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.prototype['finally'] = function (callback) {\n var constructor = this.constructor;\n return this.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n return constructor.reject(reason);\n });\n });\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nmodule.exports = Promise;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8).setImmediate))\n\n/***/ }),\n/* 8 */\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__(9);\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;\n\n/***/ }),\n/* 9 */\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__(0), __webpack_require__(10)))\n\n/***/ }),\n/* 10 */\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/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"\"\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('aplayer')[0],\n mini: options.narrow || false,\n autoplay: false,\n mutex: true,\n lrcType: options.showlrc || options.lrc || 0,\n preload: 'auto',\n theme: '#b7daff',\n loop: 'all',\n order: 'list',\n volume: 0.7,\n listFolded: false,\n listMaxHeight: options.listmaxheight,\n audio: options.music\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (Object.prototype.toString.call(options.audio) !== '[object Array]') {\n options.audio = [options.audio];\n }\n options.audio.map(function (item) {\n item.name = item.name || item.title;\n item.artist = item.artist || item.author;\n item.cover = item.cover || item.pic;\n item.type = item.type || 'normal';\n return item;\n });\n if (options.audio.length <= 1 && options.loop === 'one') {\n options.loop = 'all';\n }\n return options;\n};\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}();\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nvar _player = __webpack_require__(25);\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.randomOrder = options.randomOrder;\n this.init();\n }\n _createClass(Template, [{\n key: 'init',\n value: function init() {\n var cover = void 0;\n if (this.options.order === 'random') {\n cover = this.options.audio[this.randomOrder[0]].cover;\n } else {\n cover = this.options.audio[0].cover;\n }\n this.container.innerHTML = (0, _player2.default)({\n options: this.options,\n icons: _icons2.default,\n cover: cover\n });\n this.lrc = this.container.querySelector('.aplayer-lrc-contents');\n this.ptime = this.container.querySelector('.aplayer-ptime');\n this.info = this.container.querySelector('.aplayer-info');\n this.time = this.container.querySelector('.aplayer-time');\n this.barWrap = this.container.querySelector('.aplayer-bar-wrap');\n this.button = this.container.querySelector('.aplayer-button');\n this.list = this.container.querySelector('.aplayer-list');\n this.listOl = this.container.querySelector('.aplayer-list ol');\n this.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n this.played = this.container.querySelector('.aplayer-played');\n this.loaded = this.container.querySelector('.aplayer-loaded');\n this.thumb = this.container.querySelector('.aplayer-thumb');\n this.volume = this.container.querySelector('.aplayer-volume');\n this.volumeBar = this.container.querySelector('.aplayer-volume-bar');\n this.volumeButton = this.container.querySelector('.aplayer-time button');\n this.volumeBarWrap = this.container.querySelector('.aplayer-volume-bar-wrap');\n this.loop = this.container.querySelector('.aplayer-icon-loop');\n this.order = this.container.querySelector('.aplayer-icon-order');\n this.menu = this.container.querySelector('.aplayer-icon-menu');\n this.pic = this.container.querySelector('.aplayer-pic');\n this.title = this.container.querySelector('.aplayer-title');\n this.author = this.container.querySelector('.aplayer-author');\n this.dtime = this.container.querySelector('.aplayer-dtime');\n this.notice = this.container.querySelector('.aplayer-notice');\n }\n }]);\n return Template;\n}();\nexports.default = Template;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $imports = __webpack_require__(3);\nmodule.exports = function ($data) {\n 'use strict';\n $data = $data || {};\n var $$out = '', cover = $data.cover, $escape = $imports.$escape, options = $data.options, icons = $data.icons, $each = $imports.$each, $value = $data.$value, $index = $data.$index;\n $$out += '\\n
\\n
';\n $$out += icons.play;\n $$out += '
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n ';\n $$out += icons.loading;\n $$out += '\\n \\n
\\n
\\n
\\n
\\n
\\n 00:00 / 00:00\\n \\n
\\n
\\n
\\n
\\n ';\n if (options.audio.length > 1) {\n $$out += '\\n
\\n ';\n }\n $$out += '\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n ';\n $each(options.audio, function ($value, $index) {\n $$out += '\\n - \\n \\n ';\n $$out += $escape($index + 1);\n $$out += '\\n ';\n $$out += $escape($value.name);\n $$out += '\\n ';\n $$out += $escape($value.artist);\n $$out += '\\n
\\n ';\n });\n $$out += '\\n
\\n
';\n return $$out;\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nvar detectNode = __webpack_require__(27);\nvar runtime = Object.create(detectNode ? global : window);\nvar ESCAPE_REG = /[\"&'<>]/;\nruntime.$escape = function (content) {\n return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n if (Array.isArray(data)) {\n for (var i = 0, len = data.length; i < len; i++) {\n callback(data[i], i);\n }\n } else {\n for (var _i in data) {\n callback(data[_i], _i);\n }\n }\n};\nfunction toString(value) {\n if (typeof value !== 'string') {\n if (value === undefined || value === null) {\n value = '';\n } else if (typeof value === 'function') {\n value = toString(value.call(value));\n } else {\n value = JSON.stringify(value);\n }\n }\n return value;\n}\n;\nfunction xmlEscape(content) {\n var html = '' + content;\n var regexResult = ESCAPE_REG.exec(html);\n if (!regexResult) {\n return content;\n }\n var result = '';\n var i = void 0, lastIndex = void 0, char = void 0;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34:\n char = '"';\n break;\n case 38:\n char = '&';\n break;\n case 39:\n char = ''';\n break;\n case 60:\n char = '<';\n break;\n case 62:\n char = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) {\n result += html.substring(lastIndex, i);\n }\n lastIndex = i + 1;\n result += char;\n }\n if (lastIndex !== i) {\n return result + html.substring(lastIndex, i);\n } else {\n return result;\n }\n}\n;\nmodule.exports = runtime;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\nmodule.exports = false;\ntry {\n module.exports = Object.prototype.toString.call(global.process) === '[object process]';\n} catch (e) {\n}\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\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 Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volume;\n this.elements.played = template.played;\n this.elements.loaded = template.loaded;\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, direction) {\n return parseFloat(this.elements[type].style[direction]) / 100;\n }\n }\n ]);\n return Bar;\n}();\nexports.default = Bar;\n\n/***/ }),\n/* 29 */\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__(1);\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 = { volume: 'aplayer-volume' };\n this.default = { volume: player.options.volume || 0.7 };\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/* 30 */\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 _lrc = __webpack_require__(31);\nvar _lrc2 = _interopRequireDefault(_lrc);\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 Lrc = function () {\n function Lrc(options) {\n _classCallCheck(this, Lrc);\n this.container = options.container;\n this.async = options.async;\n this.player = options.player;\n this.content = options.content;\n this.parsed = [];\n this.index = 0;\n this.current = [];\n }\n _createClass(Lrc, [\n {\n key: 'update',\n value: function update() {\n var currentTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.player.audio.currentTime;\n if (this.index > this.current.length - 1 || currentTime < this.current[this.index][0] || !this.current[this.index + 1] || currentTime >= this.current[this.index + 1][0]) {\n for (var i = 0; i < this.current.length; i++) {\n if (currentTime >= this.current[i][0] && (!this.current[i + 1] || currentTime < this.current[i + 1][0])) {\n this.index = i;\n this.container.style.transform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.style.webkitTransform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.getElementsByClassName('aplayer-lrc-current')[0].classList.remove('aplayer-lrc-current');\n this.container.getElementsByTagName('p')[i].classList.add('aplayer-lrc-current');\n }\n }\n }\n }\n },\n {\n key: 'switch',\n value: function _switch(index) {\n var _this = this;\n if (!this.parsed[index]) {\n if (!this.async) {\n if (this.content[index]) {\n this.parsed[index] = this.parse(this.content[index]);\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Loading'\n ]];\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (index === _this.player.playIndex && xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n _this.parsed[index] = _this.parse(xhr.responseText);\n } else {\n _this.player.notice('LRC file request fails: status ' + xhr.status);\n _this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n _this.container.innerHTML = (0, _lrc2.default)({ lyrics: _this.parsed[index] });\n _this.update(0);\n _this.current = _this.parsed[index];\n }\n };\n var apiurl = this.content[index];\n xhr.open('get', apiurl, true);\n xhr.send(null);\n }\n }\n this.container.innerHTML = (0, _lrc2.default)({ lyrics: this.parsed[index] });\n this.update(0);\n this.current = this.parsed[index];\n }\n },\n {\n key: 'parse',\n value: function parse(lrc_s) {\n if (lrc_s) {\n lrc_s = lrc_s.replace(/([^\\]^\\n])\\[/g, function (match, p1) {\n return p1 + '\\n[';\n });\n var lyric = lrc_s.split('\\n');\n var lrc = [];\n var lyricLen = lyric.length;\n for (var i = 0; i < lyricLen; i++) {\n var lrcTimes = lyric[i].match(/\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g);\n var lrcText = lyric[i].replace(/.*\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g, '').replace(/<(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?>/g, '').replace(/^\\s+|\\s+$/g, '');\n if (lrcTimes) {\n var timeLen = lrcTimes.length;\n for (var j = 0; j < timeLen; j++) {\n var oneTime = /\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/.exec(lrcTimes[j]);\n var min2sec = oneTime[1] * 60;\n var sec2sec = parseInt(oneTime[2]);\n var msec2sec = oneTime[4] ? parseInt(oneTime[4]) / ((oneTime[4] + '').length === 2 ? 100 : 1000) : 0;\n var lrcTime = min2sec + sec2sec + msec2sec;\n lrc.push([\n lrcTime,\n lrcText\n ]);\n }\n }\n }\n lrc.sort(function (a, b) {\n return a[0] - b[0];\n });\n return lrc;\n } else {\n return [];\n }\n }\n }\n ]);\n return Lrc;\n}();\nexports.default = Lrc;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $imports = __webpack_require__(3);\nmodule.exports = function ($data) {\n 'use strict';\n $data = $data || {};\n var $$out = '', $each = $imports.$each, lyrics = $data.lyrics, $value = $data.$value, $index = $data.$index, $escape = $imports.$escape;\n $each(lyrics, function ($value, $index) {\n $$out += '\\n ';\n $$out += $escape($value[1]);\n $$out += '
\\n';\n });\n return $$out;\n};\n\n/***/ }),\n/* 32 */\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__(1);\nvar _utils2 = _interopRequireDefault(_utils);\nvar _icons = __webpack_require__(2);\nvar _icons2 = _interopRequireDefault(_icons);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n _classCallCheck(this, Controller);\n this.player = player;\n this.initPlayButton();\n this.initList();\n this.initPlayBar();\n if (this.player.isMultiple()) {\n this.initOrderButton();\n }\n this.initLoopButton();\n this.initMenuButton();\n if (!_utils2.default.isMobile) {\n this.initVolumeButton();\n }\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this = this;\n this.player.template.pic.addEventListener('click', function () {\n _this.player.toggle();\n });\n }\n },\n {\n key: 'initList',\n value: function initList() {\n var _this2 = this;\n this.player.template.list.addEventListener('click', function (e) {\n var target = void 0;\n if (e.target.tagName.toUpperCase() === 'LI') {\n target = e.target;\n } else {\n target = e.target.parentElement;\n }\n var audioIndex = parseInt(target.getElementsByClassName('aplayer-list-index')[0].innerHTML) - 1;\n if (audioIndex !== _this2.player.playIndex) {\n _this2.player.switchAudio(audioIndex);\n _this2.player.play();\n } else {\n _this2.player.toggle();\n }\n });\n }\n },\n {\n key: 'initPlayBar',\n value: function initPlayBar() {\n var _this3 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.lrc && _this3.player.lrc.update(percentage * _this3.player.audio.duration);\n _this3.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this3.player.audio.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.seek(_this3.player.bar.get('played', 'width') * _this3.player.audio.duration);\n _this3.player.disableTimeupdate = false;\n };\n this.player.template.barWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this3.player.disableTimeupdate = true;\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this4 = this;\n this.player.template.volumeButton.addEventListener('click', function () {\n if (_this4.player.audio.muted) {\n _this4.player.audio.muted = false;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', _this4.player.volume(), 'height');\n } else {\n _this4.player.audio.muted = true;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', 0, 'height');\n }\n });\n var thumbMove = function thumbMove(e) {\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n var thumbUp = function thumbUp(e) {\n _this4.player.template.volumeBarWrap.classList.remove('aplayer-volume-bar-wrap-active');\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n this.player.template.volumeBarWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this4.player.template.volumeBarWrap.classList.add('aplayer-volume-bar-wrap-active');\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initOrderButton',\n value: function initOrderButton() {\n var _this5 = this;\n this.player.template.order.addEventListener('click', function () {\n if (_this5.player.options.order === 'list') {\n _this5.player.options.order = 'random';\n _this5.player.template.order.innerHTML = _icons2.default.orderRandom;\n } else if (_this5.player.options.order === 'random') {\n _this5.player.options.order = 'list';\n _this5.player.template.order.innerHTML = _icons2.default.orderList;\n }\n });\n }\n },\n {\n key: 'initLoopButton',\n value: function initLoopButton() {\n var _this6 = this;\n this.player.template.loop.addEventListener('click', function () {\n if (_this6.player.isMultiple()) {\n if (_this6.player.options.loop === 'one') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n } else if (_this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'one';\n _this6.player.template.loop.innerHTML = _icons2.default.loopOne;\n }\n } else {\n if (_this6.player.options.loop === 'one' || _this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n }\n }\n });\n }\n },\n {\n key: 'initMenuButton',\n value: function initMenuButton() {\n var _this7 = this;\n this.player.template.list.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.listOl.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.menu.addEventListener('click', function () {\n if (!_this7.player.template.list.classList.contains('aplayer-list-hide')) {\n _this7.player.template.list.classList.add('aplayer-list-hide');\n } else {\n _this7.player.template.list.classList.remove('aplayer-list-hide');\n }\n });\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n/***/ }),\n/* 33 */\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 Timer = function () {\n function Timer(player) {\n _classCallCheck(this, Timer);\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 = ['loading'];\n this.init();\n }\n _createClass(Timer, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.types.map(function (item) {\n _this['init' + item + 'Checker']();\n return item;\n });\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this2 = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this2.enableloadingChecker) {\n currentPlayPos = _this2.player.audio.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.add('aplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.remove('aplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n this['enable' + type + 'Checker'] = true;\n if (type === 'fps') {\n this.initfpsChecker();\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n this['enable' + type + 'Checker'] = false;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n var _this3 = this;\n this.types.map(function (item) {\n _this3['enable' + item + 'Checker'] = false;\n _this3[item + 'Checker'] && clearInterval(_this3[item + 'Checker']);\n return item;\n });\n }\n }\n ]);\n return Timer;\n}();\nexports.default = Timer;\n\n/***/ }),\n/* 34 */\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.audioEvents = [\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 'destroy',\n 'switchaudio',\n 'addaudio',\n 'removeaudio',\n 'notice_show',\n 'notice_hide'\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.audioEvents.indexOf(name) !== -1) {\n return 'audio';\n }\n console.error('Unknown event name: ' + name);\n return null;\n }\n }\n ]);\n return Events;\n}();\nexports.default = Events;\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n// WEBPACK FOOTER //\n// APlayer.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 = 4);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a7252dc747889bfc9aa1","'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 = 0\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nvar isMobile = /mobile/i.test(window.navigator.userAgent);\nvar utils = {\n secondToTime: function secondToTime(second) {\n var add0 = function add0(num) {\n return num < 10 ? '0' + num : '' + num;\n };\n var hour = Math.floor(second / 3600);\n var min = Math.floor((second - hour * 3600) / 60);\n var sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [\n hour,\n min,\n sec\n ] : [\n min,\n sec\n ]).map(add0).join(':');\n },\n getElementViewLeft: function getElementViewLeft(element) {\n var actualLeft = element.offsetLeft;\n var current = element.offsetParent;\n var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n while (current !== null) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n } else {\n while (current !== null && current !== element) {\n actualLeft += current.offsetLeft;\n current = current.offsetParent;\n }\n }\n return actualLeft - elementScrollLeft;\n },\n getElementViewTop: function getElementViewTop(element) {\n var actualTop = element.offsetTop;\n var current = element.offsetParent;\n var elementScrollTop = 0;\n while (current !== null) {\n actualTop += current.offsetTop;\n current = current.offsetParent;\n }\n elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n return actualTop - elementScrollTop;\n },\n isMobile: isMobile,\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 nameMap: {\n dragStart: isMobile ? 'touchstart' : 'mousedown',\n dragMove: isMobile ? 'touchmove' : 'mousemove',\n dragEnd: isMobile ? 'touchend' : 'mouseup'\n },\n randomOrder: function randomOrder() {\n var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : undefined.options.audio.length;\n function shuffle(arr) {\n for (var i = arr.length - 1; i >= 0; i--) {\n var randomIndex = Math.floor(Math.random() * (i + 1));\n var itemAtIndex = arr[randomIndex];\n arr[randomIndex] = arr[i];\n arr[i] = itemAtIndex;\n }\n return arr;\n }\n return shuffle([].concat(_toConsumableArray(Array(length))).map(function (item, i) {\n return i;\n }));\n }\n};\nexports.default = utils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/utils.js\n// module id = 1\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nvar _play = require('../assets/play.svg');\nvar _play2 = _interopRequireDefault(_play);\nvar _pause = require('../assets/pause.svg');\nvar _pause2 = _interopRequireDefault(_pause);\nvar _volumeUp = require('../assets/volume-up.svg');\nvar _volumeUp2 = _interopRequireDefault(_volumeUp);\nvar _volumeDown = require('../assets/volume-down.svg');\nvar _volumeDown2 = _interopRequireDefault(_volumeDown);\nvar _volumeOff = require('../assets/volume-off.svg');\nvar _volumeOff2 = _interopRequireDefault(_volumeOff);\nvar _orderRandom = require('../assets/order-random.svg');\nvar _orderRandom2 = _interopRequireDefault(_orderRandom);\nvar _orderList = require('../assets/order-list.svg');\nvar _orderList2 = _interopRequireDefault(_orderList);\nvar _menu = require('../assets/menu.svg');\nvar _menu2 = _interopRequireDefault(_menu);\nvar _loopAll = require('../assets/loop-all.svg');\nvar _loopAll2 = _interopRequireDefault(_loopAll);\nvar _loopOne = require('../assets/loop-one.svg');\nvar _loopOne2 = _interopRequireDefault(_loopOne);\nvar _loopNone = require('../assets/loop-none.svg');\nvar _loopNone2 = _interopRequireDefault(_loopNone);\nvar _loading = require('../assets/loading.svg');\nvar _loading2 = _interopRequireDefault(_loading);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nvar Icons = {\n play: _play2.default,\n pause: _pause2.default,\n volumeUp: _volumeUp2.default,\n volumeDown: _volumeDown2.default,\n volumeOff: _volumeOff2.default,\n orderRandom: _orderRandom2.default,\n orderList: _orderList2.default,\n menu: _menu2.default,\n loopAll: _loopAll2.default,\n loopOne: _loopOne2.default,\n loopNone: _loopNone2.default,\n loading: _loading2.default\n};\nexports.default = Icons;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/icons.js\n// module id = 2\n// module chunks = 0","'use strict';\nmodule.exports = require('./compile/runtime');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/art-template/lib/runtime.js\n// module id = 3\n// module chunks = 0","'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 APlayer v' + APLAYER_VERSION + ' ' + GIT_HASH + ' %c http://aplayer.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 = 4\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 _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nvar _options = require('./options');\nvar _options2 = _interopRequireDefault(_options);\nvar _template = require('./template');\nvar _template2 = _interopRequireDefault(_template);\nvar _bar = require('./bar');\nvar _bar2 = _interopRequireDefault(_bar);\nvar _user = require('./user');\nvar _user2 = _interopRequireDefault(_user);\nvar _lrc = require('./lrc');\nvar _lrc2 = _interopRequireDefault(_lrc);\nvar _controller = require('./controller');\nvar _controller2 = _interopRequireDefault(_controller);\nvar _timer = require('./timer');\nvar _timer2 = _interopRequireDefault(_timer);\nvar _events = require('./events');\nvar _events2 = _interopRequireDefault(_events);\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 instances = [];\nvar APlayer = function () {\n function APlayer(options) {\n _classCallCheck(this, APlayer);\n this.options = (0, _options2.default)(options);\n this.container = this.options.container;\n this.playIndex = 0;\n this.paused = true;\n this.playedPromise = _promisePolyfill2.default.resolve();\n this.mode = 'normal';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n this.container.classList.add('aplayer');\n if (this.options.lrcType) {\n this.container.classList.add('aplayer-withlrc');\n }\n if (this.options.audio.length > 1) {\n this.container.classList.add('aplayer-withlist');\n }\n if (_utils2.default.isMobile) {\n this.container.classList.add('aplayer-mobile');\n }\n this.arrow = this.container.offsetWidth <= 300;\n if (this.arrow) {\n this.container.classList.add('aplayer-arrow');\n }\n if (this.options.mini) {\n this.setMode('mini');\n }\n this.container = this.options.container;\n if (this.options.lrcType === 2 || this.options.lrcType === true) {\n var lrcEle = this.container.getElementsByClassName('aplayer-lrc-content');\n for (var i = 0; i < lrcEle.length; i++) {\n if (this.options.audio[i]) {\n this.options.audio[i].lrc = lrcEle[i].innerHTML;\n }\n }\n }\n this.template = new _template2.default({\n container: this.container,\n options: this.options,\n randomOrder: this.randomOrder\n });\n if (this.template.info.offsetWidth < 200) {\n this.template.time.classList.add('aplayer-time-narrow');\n }\n if (this.options.lrcType) {\n this.lrc = new _lrc2.default({\n container: this.template.lrc,\n async: this.options.lrcType === 3,\n content: this.options.audio.map(function (item) {\n return item.lrc;\n }),\n player: this\n });\n }\n this.events = new _events2.default();\n this.user = new _user2.default(this);\n this.bar = new _bar2.default(this.template);\n this.controller = new _controller2.default(this);\n this.timer = new _timer2.default(this);\n this.initAudio();\n if (this.options.order === 'random') {\n this.switchAudio(this.randomOrder[0]);\n } else {\n this.switchAudio(0);\n }\n if (this.options.autoplay) {\n this.play();\n }\n instances.push(this);\n }\n _createClass(APlayer, [\n {\n key: 'initAudio',\n value: function initAudio() {\n var _this = this;\n this.audio = document.createElement('audio');\n this.audio.preload = this.options.preload;\n var _loop = function _loop(i) {\n _this.audio.addEventListener(_this.events.audioEvents[i], function (e) {\n _this.events.trigger(_this.events.audioEvents[i], e);\n });\n };\n for (var i = 0; i < this.events.audioEvents.length; i++) {\n _loop(i);\n }\n this.on('play', function () {\n if (_this.paused) {\n _this.play();\n }\n });\n this.on('pause', function () {\n if (!_this.paused) {\n _this.pause();\n }\n });\n this.on('timeupdate', function () {\n if (!_this.disableTimeupdate) {\n _this.bar.set('played', _this.audio.currentTime / _this.audio.duration, 'width');\n _this.lrc && _this.lrc.update();\n var currentTime = _utils2.default.secondToTime(_this.audio.currentTime);\n if (_this.template.ptime.innerHTML !== currentTime) {\n _this.template.ptime.innerHTML = currentTime;\n }\n }\n });\n this.on('durationchange', function () {\n if (_this.audio.duration !== 1) {\n _this.template.dtime.innerHTML = _utils2.default.secondToTime(_this.audio.duration);\n }\n });\n this.on('progress', function () {\n var percentage = _this.audio.buffered.length ? _this.audio.buffered.end(_this.audio.buffered.length - 1) / _this.audio.duration : 0;\n _this.bar.set('loaded', percentage, 'width');\n });\n this.on('error', function () {\n _this.notice('An audio error has occurred.');\n });\n this.on('ended', function () {\n if (_this.options.loop === 'none') {\n if (_this.options.order === 'list') {\n if (_this.playIndex < _this.options.audio.length - 1) {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.play();\n } else {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n _this.pause();\n }\n } else if (_this.options.order === 'random') {\n if (_this.randomOrder.indexOf(_this.playIndex) < _this.randomOrder.length - 1) {\n _this.switchAudio(_this.nextRandomNum());\n _this.play();\n } else {\n _this.switchAudio(_this.nextRandomNum());\n _this.pause();\n }\n }\n } else if (_this.options.loop === 'one') {\n _this.switchAudio(_this.playIndex);\n _this.play();\n } else if (_this.options.loop === 'all') {\n if (_this.options.order === 'list') {\n _this.switchAudio((_this.playIndex + 1) % _this.options.audio.length);\n } else if (_this.options.order === 'random') {\n _this.switchAudio(_this.nextRandomNum());\n }\n _this.play();\n }\n });\n this.volume(this.user.get('volume'), true);\n }\n },\n {\n key: 'switchAudio',\n value: function switchAudio(index) {\n var _this2 = this;\n this.handlePlayPromise(function () {\n _this2.events.trigger('switchaudio', index);\n if (typeof index !== 'undefined') {\n _this2.playIndex = index;\n }\n var audio = _this2.options.audio[_this2.playIndex];\n if (audio.cover) {\n _this2.template.pic.style.backgroundImage = 'url(\\'' + audio.cover + '\\')';\n } else {\n _this2.template.pic.style.backgroundImage = '';\n }\n _this2.theme();\n _this2.template.title.innerHTML = audio.name;\n _this2.template.author.innerHTML = audio.artist ? ' - ' + audio.artist : '';\n var light = _this2.container.getElementsByClassName('aplayer-list-light')[0];\n if (light) {\n light.classList.remove('aplayer-list-light');\n }\n _this2.container.querySelectorAll('.aplayer-list li')[_this2.playIndex].classList.add('aplayer-list-light');\n _this2.template.list.scrollTop = _this2.playIndex * 33;\n if (_this2.hls) {\n _this2.hls.destroy();\n _this2.hls = null;\n }\n var type = audio.type;\n if (_this2.options.customAudioType && _this2.options.customAudioType[type]) {\n if (Object.prototype.toString.call(_this2.options.customAudioType[type]) === '[object Function]') {\n _this2.options.customAudioType[type](_this2.audio, audio, _this2);\n } else {\n console.error('Illegal customType: ' + type);\n }\n } else {\n if (!type || type === 'auto') {\n if (/m3u8(#|\\?|$)/i.exec(audio.url)) {\n type = 'hls';\n } else {\n type = 'normal';\n }\n }\n if (type === 'hls') {\n if (Hls.isSupported()) {\n _this2.hls = new Hls();\n _this2.hls.loadSource(audio.url);\n _this2.hls.attachMedia(_this2.audio);\n } else if (_this2.audio.canPlayType('application/x-mpegURL') || _this2.audio.canPlayType('application/vnd.apple.mpegURL')) {\n _this2.audio.src = audio.url;\n } else {\n _this2.notice('Error: HLS is not supported.');\n }\n } else if (type === 'normal') {\n _this2.audio.src = audio.url;\n }\n }\n _this2.seek(0);\n var playPromise = void 0;\n if (!_this2.paused) {\n playPromise = _promisePolyfill2.default.resolve(_this2.audio.play()).catch(function (err) {\n console.error(err);\n _this2.pause();\n });\n }\n _this2.lrc && _this2.lrc.switch(_this2.playIndex);\n if (_this2.audio.duration !== 1) {\n _this2.template.dtime.innerHTML = _this2.audio.duration ? _utils2.default.secondToTime(_this2.audio.duration) : '00:00';\n }\n return playPromise;\n });\n }\n },\n {\n key: 'theme',\n value: function theme() {\n var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.audio[this.playIndex].theme;\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.playIndex;\n this.options.audio[index].theme = color;\n this.template.listCurs[index].style.backgroundColor = color;\n if (index === this.playIndex) {\n this.template.pic.style.backgroundColor = color;\n this.template.played.style.background = color;\n this.template.thumb.style.background = color;\n this.template.volume.style.background = color;\n }\n }\n },\n {\n key: 'seek',\n value: function seek(time) {\n time = Math.max(time, 0);\n if (this.audio.duration) {\n time = Math.min(time, this.audio.duration);\n }\n this.audio.currentTime = time;\n if (isNaN(this.audio.duration)) {\n this.bar.set('played', 0, 'width');\n } else {\n this.bar.set('played', time / this.audio.duration, 'width');\n }\n this.template.ptime.innerHTML = _utils2.default.secondToTime(time);\n }\n },\n {\n key: 'play',\n value: function play() {\n var _this3 = this;\n this.handlePlayPromise(function () {\n if (_this3.paused) {\n _this3.paused = false;\n _this3.template.button.classList.remove('aplayer-play');\n _this3.template.button.classList.add('aplayer-pause');\n _this3.template.button.innerHTML = '';\n setTimeout(function () {\n _this3.template.button.innerHTML = _icons2.default.pause;\n }, 100);\n }\n var playPromise = _promisePolyfill2.default.resolve(_this3.audio.play()).catch(function (err) {\n console.error(err);\n _this3.pause();\n });\n _this3.timer.enable('loading');\n if (_this3.options.mutex) {\n for (var i = 0; i < instances.length; i++) {\n if (_this3 !== instances[i]) {\n instances[i].pause();\n }\n }\n }\n return playPromise;\n });\n }\n },\n {\n key: 'pause',\n value: function pause() {\n var _this4 = this;\n this.handlePlayPromise(function () {\n if (!_this4.paused) {\n _this4.paused = true;\n _this4.template.button.classList.remove('aplayer-pause');\n _this4.template.button.classList.add('aplayer-play');\n _this4.template.button.innerHTML = '';\n setTimeout(function () {\n _this4.template.button.innerHTML = _icons2.default.play;\n }, 100);\n }\n _this4.audio.pause();\n _this4.container.classList.remove('aplayer-loading');\n _this4.timer.disable('loading');\n });\n }\n },\n {\n key: 'switchVolumeIcon',\n value: function switchVolumeIcon() {\n if (this.volume() >= 0.95) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeUp;\n } else if (this.volume() > 0) {\n this.template.volumeButton.innerHTML = _icons2.default.volumeDown;\n } else {\n this.template.volumeButton.innerHTML = _icons2.default.volumeOff;\n }\n }\n },\n {\n key: 'volume',\n value: function volume(percentage, nostorage) {\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, 'height');\n if (!nostorage) {\n this.user.set('volume', percentage);\n }\n this.audio.volume = percentage;\n if (this.audio.muted) {\n this.audio.muted = false;\n }\n this.switchVolumeIcon();\n }\n return this.audio.muted ? 0 : this.audio.volume;\n }\n },\n {\n key: 'on',\n value: function on(name, callback) {\n this.events.on(name, callback);\n }\n },\n {\n key: 'toggle',\n value: function toggle() {\n if (this.template.button.classList.contains('aplayer-play')) {\n this.play();\n } else if (this.template.button.classList.contains('aplayer-pause')) {\n this.pause();\n }\n }\n },\n {\n key: 'isMultiple',\n value: function isMultiple() {\n return this.options.audio.length > 1;\n }\n },\n {\n key: 'nextRandomNum',\n value: function nextRandomNum() {\n if (this.isMultiple()) {\n var index = this.randomOrder.indexOf(this.playIndex);\n if (index === this.randomOrder.length - 1) {\n return this.randomOrder[0];\n } else {\n return this.randomOrder[index + 1];\n }\n } else {\n return 0;\n }\n }\n },\n {\n key: 'addAudio',\n value: function addAudio(newMusic) {\n this.events.trigger('addaudio', newMusic);\n var wasSingle = !this.isMultiple();\n this.options.audio = this.options.audio.concat(newMusic);\n var newItemHTML = '';\n for (var i = 0; i < newMusic.length; i++) {\n newItemHTML += '' + (this.options.audio.length - newMusic.length + i + 1) + '' + newMusic[i].name + '' + newMusic[i].artist + '';\n }\n this.template.listOl.innerHTML += newItemHTML;\n if (wasSingle && this.isMultiple()) {\n this.container.classList.add('aplayer-withlist');\n this.audio.loop = false;\n }\n this.template.list.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.template.listOl.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.randomOrder = _utils2.default.randomOrder(this.options.audio.length);\n this.template.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n }\n },\n {\n key: 'removeAudio',\n value: function removeAudio(index) {\n this.events.trigger('removeaudio', index);\n if (this.options.audio[index] && this.options.audio.length > 1) {\n var list = this.container.querySelectorAll('.aplayer-list li');\n this.options.audio.splice(index, 1);\n if (index === this.playIndex) {\n if (this.options.audio[index + 1]) {\n this.switchAudio(index);\n } else {\n this.switchAudio(index - 1);\n }\n }\n if (this.playIndex > index) {\n this.playIndex--;\n }\n list[index].remove();\n for (var i = index; i < list.length; i++) {\n list[i].getElementsByClassName('aplayer-list-index')[0].textContent = i;\n }\n if (this.options.audio.length === 1) {\n this.container.classList.remove('aplayer-withlist');\n }\n this.template.list.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.template.listOl.style.height = this.options.audio.length * 33 - 1 + 'px';\n this.template.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n }\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n instances.splice(instances.indexOf(this), 1);\n this.pause();\n this.container.innerHTML = '';\n this.audio.src = '';\n this.timer.destroy();\n this.events.trigger('destroy');\n }\n },\n {\n key: 'setMode',\n value: function setMode() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'normal';\n this.mode = mode;\n if (mode === 'mini') {\n this.container.classList.add('aplayer-narrow');\n } else if (mode === 'normal') {\n this.container.classList.remove('aplayer-narrow');\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 if (time) {\n this.noticeTime = setTimeout(function () {\n _this5.template.notice.style.opacity = 0;\n _this5.events.trigger('notice_hide');\n }, time);\n }\n }\n },\n {\n key: 'handlePlayPromise',\n value: function handlePlayPromise(callback) {\n this.playedPromise = this.playedPromise.then(callback).catch(function (err) {\n console.error(err);\n });\n }\n }\n ], [{\n key: 'version',\n get: function get() {\n return APLAYER_VERSION;\n }\n }]);\n return APlayer;\n}();\nexports.default = APlayer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/player.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 setTimeoutFunc = setTimeout;\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n}\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function')\n throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\nfunction resolve(self, newValue) {\n try {\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (newValue && ((typeof newValue === 'undefined' ? 'undefined' : _typeof(newValue)) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(function (value) {\n if (done)\n return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done)\n return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done)\n return;\n done = true;\n reject(self, ex);\n }\n}\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\nPromise.prototype['finally'] = function (callback) {\n var constructor = this.constructor;\n return this.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n return constructor.reject(reason);\n });\n });\n};\nPromise.all = function (arr) {\n return new Promise(function (resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0)\n return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n try {\n if (val && ((typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\nPromise.resolve = function (value) {\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.constructor === Promise) {\n return value;\n }\n return new Promise(function (resolve) {\n resolve(value);\n });\n};\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n setImmediate(fn);\n} || function (fn) {\n setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n};\nmodule.exports = Promise;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/promise-polyfill/lib/index.js\n// module id = 7\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 = 8\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 = 9\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 = 10\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/play.svg\n// module id = 11\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/pause.svg\n// module id = 12\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-up.svg\n// module id = 13\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-down.svg\n// module id = 14\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/volume-off.svg\n// module id = 15\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/order-random.svg\n// module id = 16\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/order-list.svg\n// module id = 17\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/menu.svg\n// module id = 18\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loop-all.svg\n// module id = 19\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loop-one.svg\n// module id = 20\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loop-none.svg\n// module id = 21\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/loading.svg\n// module id = 22\n// module chunks = 0","'use strict';\nObject.defineProperty(exports, '__esModule', { value: true });\nexports.default = function (options) {\n var defaultOption = {\n container: options.element || document.getElementsByClassName('aplayer')[0],\n mini: options.narrow || false,\n autoplay: false,\n mutex: true,\n lrcType: options.showlrc || options.lrc || 0,\n preload: 'auto',\n theme: '#b7daff',\n loop: 'all',\n order: 'list',\n volume: 0.7,\n listFolded: false,\n listMaxHeight: options.listmaxheight,\n audio: options.music\n };\n for (var defaultKey in defaultOption) {\n if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n options[defaultKey] = defaultOption[defaultKey];\n }\n }\n if (Object.prototype.toString.call(options.audio) !== '[object Array]') {\n options.audio = [options.audio];\n }\n options.audio.map(function (item) {\n item.name = item.name || item.title;\n item.artist = item.artist || item.author;\n item.cover = item.cover || item.pic;\n item.type = item.type || 'normal';\n return item;\n });\n if (options.audio.length <= 1 && options.loop === 'one') {\n options.loop = 'all';\n }\n return options;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/options.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}();\nvar _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nvar _player = require('../template/player.art');\nvar _player2 = _interopRequireDefault(_player);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Template = function () {\n function Template(options) {\n _classCallCheck(this, Template);\n this.container = options.container;\n this.options = options.options;\n this.randomOrder = options.randomOrder;\n this.init();\n }\n _createClass(Template, [{\n key: 'init',\n value: function init() {\n var cover = void 0;\n if (this.options.order === 'random') {\n cover = this.options.audio[this.randomOrder[0]].cover;\n } else {\n cover = this.options.audio[0].cover;\n }\n this.container.innerHTML = (0, _player2.default)({\n options: this.options,\n icons: _icons2.default,\n cover: cover\n });\n this.lrc = this.container.querySelector('.aplayer-lrc-contents');\n this.ptime = this.container.querySelector('.aplayer-ptime');\n this.info = this.container.querySelector('.aplayer-info');\n this.time = this.container.querySelector('.aplayer-time');\n this.barWrap = this.container.querySelector('.aplayer-bar-wrap');\n this.button = this.container.querySelector('.aplayer-button');\n this.list = this.container.querySelector('.aplayer-list');\n this.listOl = this.container.querySelector('.aplayer-list ol');\n this.listCurs = this.container.querySelectorAll('.aplayer-list-cur');\n this.played = this.container.querySelector('.aplayer-played');\n this.loaded = this.container.querySelector('.aplayer-loaded');\n this.thumb = this.container.querySelector('.aplayer-thumb');\n this.volume = this.container.querySelector('.aplayer-volume');\n this.volumeBar = this.container.querySelector('.aplayer-volume-bar');\n this.volumeButton = this.container.querySelector('.aplayer-time button');\n this.volumeBarWrap = this.container.querySelector('.aplayer-volume-bar-wrap');\n this.loop = this.container.querySelector('.aplayer-icon-loop');\n this.order = this.container.querySelector('.aplayer-icon-order');\n this.menu = this.container.querySelector('.aplayer-icon-menu');\n this.pic = this.container.querySelector('.aplayer-pic');\n this.title = this.container.querySelector('.aplayer-title');\n this.author = this.container.querySelector('.aplayer-author');\n this.dtime = this.container.querySelector('.aplayer-dtime');\n this.notice = this.container.querySelector('.aplayer-notice');\n }\n }]);\n return Template;\n}();\nexports.default = Template;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/template.js\n// module id = 24\n// module chunks = 0","\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n {{@ icons.loading }}\n \n
\n
\n
\n
\n
\n 00:00 / 00:00\n \n
\n
\n
\n
\n {{ if options.audio.length > 1 }}\n
\n {{ /if }}\n
\n
\n
\n
\n
\n
\n
\n\n
\n {{each options.audio}}\n - \n \n {{ $index + 1 }}\n {{ $value.name }}\n {{ $value.artist }}\n
\n {{/each}}\n
\n
\n\n\n// WEBPACK FOOTER //\n// ./src/template/player.art","'use strict';\nvar detectNode = require('detect-node');\nvar runtime = Object.create(detectNode ? global : window);\nvar ESCAPE_REG = /[\"&'<>]/;\nruntime.$escape = function (content) {\n return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n if (Array.isArray(data)) {\n for (var i = 0, len = data.length; i < len; i++) {\n callback(data[i], i);\n }\n } else {\n for (var _i in data) {\n callback(data[_i], _i);\n }\n }\n};\nfunction toString(value) {\n if (typeof value !== 'string') {\n if (value === undefined || value === null) {\n value = '';\n } else if (typeof value === 'function') {\n value = toString(value.call(value));\n } else {\n value = JSON.stringify(value);\n }\n }\n return value;\n}\n;\nfunction xmlEscape(content) {\n var html = '' + content;\n var regexResult = ESCAPE_REG.exec(html);\n if (!regexResult) {\n return content;\n }\n var result = '';\n var i = void 0, lastIndex = void 0, char = void 0;\n for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n switch (html.charCodeAt(i)) {\n case 34:\n char = '"';\n break;\n case 38:\n char = '&';\n break;\n case 39:\n char = ''';\n break;\n case 60:\n char = '<';\n break;\n case 62:\n char = '>';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) {\n result += html.substring(lastIndex, i);\n }\n lastIndex = i + 1;\n result += char;\n }\n if (lastIndex !== i) {\n return result + html.substring(lastIndex, i);\n } else {\n return result;\n }\n}\n;\nmodule.exports = runtime;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/art-template/lib/compile/runtime.js\n// module id = 26\n// module chunks = 0","'use strict';\nmodule.exports = false;\ntry {\n module.exports = Object.prototype.toString.call(global.process) === '[object process]';\n} catch (e) {\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/detect-node/index.js\n// module id = 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 Bar = function () {\n function Bar(template) {\n _classCallCheck(this, Bar);\n this.elements = {};\n this.elements.volume = template.volume;\n this.elements.played = template.played;\n this.elements.loaded = template.loaded;\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, direction) {\n return parseFloat(this.elements[type].style[direction]) / 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 = 28\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 = { volume: 'aplayer-volume' };\n this.default = { volume: player.options.volume || 0.7 };\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 = 29\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 _lrc = require('../template/lrc.art');\nvar _lrc2 = _interopRequireDefault(_lrc);\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 Lrc = function () {\n function Lrc(options) {\n _classCallCheck(this, Lrc);\n this.container = options.container;\n this.async = options.async;\n this.player = options.player;\n this.content = options.content;\n this.parsed = [];\n this.index = 0;\n this.current = [];\n }\n _createClass(Lrc, [\n {\n key: 'update',\n value: function update() {\n var currentTime = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.player.audio.currentTime;\n if (this.index > this.current.length - 1 || currentTime < this.current[this.index][0] || !this.current[this.index + 1] || currentTime >= this.current[this.index + 1][0]) {\n for (var i = 0; i < this.current.length; i++) {\n if (currentTime >= this.current[i][0] && (!this.current[i + 1] || currentTime < this.current[i + 1][0])) {\n this.index = i;\n this.container.style.transform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.style.webkitTransform = 'translateY(' + -this.index * 16 + 'px)';\n this.container.getElementsByClassName('aplayer-lrc-current')[0].classList.remove('aplayer-lrc-current');\n this.container.getElementsByTagName('p')[i].classList.add('aplayer-lrc-current');\n }\n }\n }\n }\n },\n {\n key: 'switch',\n value: function _switch(index) {\n var _this = this;\n if (!this.parsed[index]) {\n if (!this.async) {\n if (this.content[index]) {\n this.parsed[index] = this.parse(this.content[index]);\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n } else {\n this.parsed[index] = [[\n '00:00',\n 'Loading'\n ]];\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (index === _this.player.playIndex && xhr.readyState === 4) {\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n _this.parsed[index] = _this.parse(xhr.responseText);\n } else {\n _this.player.notice('LRC file request fails: status ' + xhr.status);\n _this.parsed[index] = [[\n '00:00',\n 'Not available'\n ]];\n }\n _this.container.innerHTML = (0, _lrc2.default)({ lyrics: _this.parsed[index] });\n _this.update(0);\n _this.current = _this.parsed[index];\n }\n };\n var apiurl = this.content[index];\n xhr.open('get', apiurl, true);\n xhr.send(null);\n }\n }\n this.container.innerHTML = (0, _lrc2.default)({ lyrics: this.parsed[index] });\n this.update(0);\n this.current = this.parsed[index];\n }\n },\n {\n key: 'parse',\n value: function parse(lrc_s) {\n if (lrc_s) {\n lrc_s = lrc_s.replace(/([^\\]^\\n])\\[/g, function (match, p1) {\n return p1 + '\\n[';\n });\n var lyric = lrc_s.split('\\n');\n var lrc = [];\n var lyricLen = lyric.length;\n for (var i = 0; i < lyricLen; i++) {\n var lrcTimes = lyric[i].match(/\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g);\n var lrcText = lyric[i].replace(/.*\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g, '').replace(/<(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?>/g, '').replace(/^\\s+|\\s+$/g, '');\n if (lrcTimes) {\n var timeLen = lrcTimes.length;\n for (var j = 0; j < timeLen; j++) {\n var oneTime = /\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/.exec(lrcTimes[j]);\n var min2sec = oneTime[1] * 60;\n var sec2sec = parseInt(oneTime[2]);\n var msec2sec = oneTime[4] ? parseInt(oneTime[4]) / ((oneTime[4] + '').length === 2 ? 100 : 1000) : 0;\n var lrcTime = min2sec + sec2sec + msec2sec;\n lrc.push([\n lrcTime,\n lrcText\n ]);\n }\n }\n }\n lrc.sort(function (a, b) {\n return a[0] - b[0];\n });\n return lrc;\n } else {\n return [];\n }\n }\n }\n ]);\n return Lrc;\n}();\nexports.default = Lrc;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/lrc.js\n// module id = 30\n// module chunks = 0","{{each lyrics}}\n {{$value[1]}}
\n{{/each}}\n\n\n// WEBPACK FOOTER //\n// ./src/template/lrc.art","'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 _icons = require('./icons');\nvar _icons2 = _interopRequireDefault(_icons);\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Controller = function () {\n function Controller(player) {\n _classCallCheck(this, Controller);\n this.player = player;\n this.initPlayButton();\n this.initList();\n this.initPlayBar();\n if (this.player.isMultiple()) {\n this.initOrderButton();\n }\n this.initLoopButton();\n this.initMenuButton();\n if (!_utils2.default.isMobile) {\n this.initVolumeButton();\n }\n }\n _createClass(Controller, [\n {\n key: 'initPlayButton',\n value: function initPlayButton() {\n var _this = this;\n this.player.template.pic.addEventListener('click', function () {\n _this.player.toggle();\n });\n }\n },\n {\n key: 'initList',\n value: function initList() {\n var _this2 = this;\n this.player.template.list.addEventListener('click', function (e) {\n var target = void 0;\n if (e.target.tagName.toUpperCase() === 'LI') {\n target = e.target;\n } else {\n target = e.target.parentElement;\n }\n var audioIndex = parseInt(target.getElementsByClassName('aplayer-list-index')[0].innerHTML) - 1;\n if (audioIndex !== _this2.player.playIndex) {\n _this2.player.switchAudio(audioIndex);\n _this2.player.play();\n } else {\n _this2.player.toggle();\n }\n });\n }\n },\n {\n key: 'initPlayBar',\n value: function initPlayBar() {\n var _this3 = this;\n var thumbMove = function thumbMove(e) {\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.lrc && _this3.player.lrc.update(percentage * _this3.player.audio.duration);\n _this3.player.template.ptime.innerHTML = _utils2.default.secondToTime(percentage * _this3.player.audio.duration);\n };\n var thumbUp = function thumbUp(e) {\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = ((e.clientX || e.changedTouches[0].clientX) - _utils2.default.getElementViewLeft(_this3.player.template.barWrap)) / _this3.player.template.barWrap.clientWidth;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this3.player.bar.set('played', percentage, 'width');\n _this3.player.seek(_this3.player.bar.get('played', 'width') * _this3.player.audio.duration);\n _this3.player.disableTimeupdate = false;\n };\n this.player.template.barWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this3.player.disableTimeupdate = true;\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initVolumeButton',\n value: function initVolumeButton() {\n var _this4 = this;\n this.player.template.volumeButton.addEventListener('click', function () {\n if (_this4.player.audio.muted) {\n _this4.player.audio.muted = false;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', _this4.player.volume(), 'height');\n } else {\n _this4.player.audio.muted = true;\n _this4.player.switchVolumeIcon();\n _this4.player.bar.set('volume', 0, 'height');\n }\n });\n var thumbMove = function thumbMove(e) {\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n var thumbUp = function thumbUp(e) {\n _this4.player.template.volumeBarWrap.classList.remove('aplayer-volume-bar-wrap-active');\n document.removeEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n document.removeEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n var percentage = 1 - ((e.clientY || e.changedTouches[0].clientY) - _utils2.default.getElementViewTop(_this4.player.template.volumeBar)) / _this4.player.template.volumeBar.clientHeight;\n percentage = Math.max(percentage, 0);\n percentage = Math.min(percentage, 1);\n _this4.player.volume(percentage);\n };\n this.player.template.volumeBarWrap.addEventListener(_utils2.default.nameMap.dragStart, function () {\n _this4.player.template.volumeBarWrap.classList.add('aplayer-volume-bar-wrap-active');\n document.addEventListener(_utils2.default.nameMap.dragMove, thumbMove);\n document.addEventListener(_utils2.default.nameMap.dragEnd, thumbUp);\n });\n }\n },\n {\n key: 'initOrderButton',\n value: function initOrderButton() {\n var _this5 = this;\n this.player.template.order.addEventListener('click', function () {\n if (_this5.player.options.order === 'list') {\n _this5.player.options.order = 'random';\n _this5.player.template.order.innerHTML = _icons2.default.orderRandom;\n } else if (_this5.player.options.order === 'random') {\n _this5.player.options.order = 'list';\n _this5.player.template.order.innerHTML = _icons2.default.orderList;\n }\n });\n }\n },\n {\n key: 'initLoopButton',\n value: function initLoopButton() {\n var _this6 = this;\n this.player.template.loop.addEventListener('click', function () {\n if (_this6.player.isMultiple()) {\n if (_this6.player.options.loop === 'one') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n } else if (_this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'one';\n _this6.player.template.loop.innerHTML = _icons2.default.loopOne;\n }\n } else {\n if (_this6.player.options.loop === 'one' || _this6.player.options.loop === 'all') {\n _this6.player.options.loop = 'none';\n _this6.player.template.loop.innerHTML = _icons2.default.loopNone;\n } else if (_this6.player.options.loop === 'none') {\n _this6.player.options.loop = 'all';\n _this6.player.template.loop.innerHTML = _icons2.default.loopAll;\n }\n }\n });\n }\n },\n {\n key: 'initMenuButton',\n value: function initMenuButton() {\n var _this7 = this;\n this.player.template.list.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.listOl.style.height = 33 * this.player.options.audio.length - 1 + 'px';\n this.player.template.menu.addEventListener('click', function () {\n if (!_this7.player.template.list.classList.contains('aplayer-list-hide')) {\n _this7.player.template.list.classList.add('aplayer-list-hide');\n } else {\n _this7.player.template.list.classList.remove('aplayer-list-hide');\n }\n });\n }\n }\n ]);\n return Controller;\n}();\nexports.default = Controller;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/controller.js\n// module id = 32\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 Timer = function () {\n function Timer(player) {\n _classCallCheck(this, Timer);\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 = ['loading'];\n this.init();\n }\n _createClass(Timer, [\n {\n key: 'init',\n value: function init() {\n var _this = this;\n this.types.map(function (item) {\n _this['init' + item + 'Checker']();\n return item;\n });\n }\n },\n {\n key: 'initloadingChecker',\n value: function initloadingChecker() {\n var _this2 = this;\n var lastPlayPos = 0;\n var currentPlayPos = 0;\n var bufferingDetected = false;\n this.loadingChecker = setInterval(function () {\n if (_this2.enableloadingChecker) {\n currentPlayPos = _this2.player.audio.currentTime;\n if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.add('aplayer-loading');\n bufferingDetected = true;\n }\n if (bufferingDetected && currentPlayPos > lastPlayPos && !_this2.player.audio.paused) {\n _this2.player.container.classList.remove('aplayer-loading');\n bufferingDetected = false;\n }\n lastPlayPos = currentPlayPos;\n }\n }, 100);\n }\n },\n {\n key: 'enable',\n value: function enable(type) {\n this['enable' + type + 'Checker'] = true;\n if (type === 'fps') {\n this.initfpsChecker();\n }\n }\n },\n {\n key: 'disable',\n value: function disable(type) {\n this['enable' + type + 'Checker'] = false;\n }\n },\n {\n key: 'destroy',\n value: function destroy() {\n var _this3 = this;\n this.types.map(function (item) {\n _this3['enable' + item + 'Checker'] = false;\n _this3[item + 'Checker'] && clearInterval(_this3[item + 'Checker']);\n return item;\n });\n }\n }\n ]);\n return Timer;\n}();\nexports.default = Timer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/js/timer.js\n// module id = 33\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.audioEvents = [\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 'destroy',\n 'switchaudio',\n 'addaudio',\n 'removeaudio',\n 'notice_show',\n 'notice_hide'\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.audioEvents.indexOf(name) !== -1) {\n return 'audio';\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 = 34\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 62fe4166..1a1b9049 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,9 +16,9 @@
gtag('config', 'UA-48084758-8');
-
+
-
+