var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var a=0;return function(){return ac&&(c*=-1,l-=c),a.beginPath(),a.moveTo(b+d,l),a.lineTo(b+k-d,l),a.quadraticCurveTo(b+k,l,b+k,l+d),a.lineTo(b+k,l+c-d),a.quadraticCurveTo(b+k,l+c,b+k-d,l+c),a.lineTo(b+d,l+c),a.quadraticCurveTo(b,l+c,b,l+c-d),a.lineTo(b,l+d),a.quadraticCurveTo(b,l,b+d,l),a.closePath(),a.fill())}},{key:"drawLines",value:function(a,b,l,k,c,d){this.drawLineToContext(this.waveCtx,a,b,l,k,c,d);this.hasProgressCanvas&&this.drawLineToContext(this.progressCtx, a,b,l,k,c,d)}},{key:"drawLineToContext",value:function(a,b,l,k,c,d,n){if(a){n=b.length/2;d=Math.round(n*this.start);var g=Math.round(n*this.end)+1;n=this.wave.width/(g-d-1);c=k+c;l/=k;a.beginPath();a.moveTo((d-d)*n,c);a.lineTo((d-d)*n,c-Math.round((b[2*d]||0)/l));for(k=d;k=d;g--)w=b[2*g+1]||0,w=Math.round(w/l),a.lineTo((g-d)*n+this.halfPixel,c-w);a.lineTo((d-d)*n,c-Math.round((b[2*d+1]||0)/l));a.closePath(); a.fill()}}},{key:"destroy",value:function(){this.progress=this.progressCtx=this.wave=this.waveCtx=null}},{key:"getImage",value:function(a,b,l){var k=this;if("blob"===l)return new Promise(function(c){k.wave.toBlob(c,a,b)});if("dataURL"===l)return this.wave.toDataURL(a,b)}}]);return a}();a["default"]=b;h.exports=a["default"]},"./src/drawer.js":function(h,a,b){function e(){if("function"!==typeof WeakMap)return null;var a=new WeakMap;e=function(){return a};return a}function f(a){f="function"===typeof Symbol&& "symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return f(a)}function q(a,b){for(var c=0;c=g.bottom-c)return}a.params.interact&&a.fireEvent("click",d,a.handleEvent(d))});this.wrapper.addEventListener("dblclick",function(d){a.params.interact&& a.fireEvent("dblclick",d,a.handleEvent(d))});this.wrapper.addEventListener("scroll",function(d){return a.fireEvent("scroll",d)})}},{key:"drawPeaks",value:function(a,d,b,g){this.setWidth(d)||this.clearWave();this.params.barWidth?this.drawBars(a,0,b,g):this.drawWave(a,0,b,g)}},{key:"resetScroll",value:function(){null!==this.wrapper&&(this.wrapper.scrollLeft=0)}},{key:"recenter",value:function(a){this.recenterOnPosition(this.wrapper.scrollWidth*a,!0)}},{key:"recenterOnPosition",value:function(a,d){var b= this.wrapper.scrollLeft,g=~~(this.wrapper.clientWidth/2),c=this.wrapper.scrollWidth-this.wrapper.clientWidth,k=a-g,e=k-b;0!=c&&(!d&&-g<=e&&e=d)this.lastPos=b,this.params.scrollParent&&this.params.autoCenter&&this.recenterOnPosition(~~(this.wrapper.scrollWidth*a),this.params.autoCenterImmediately),this.updateProgress(b)}},{key:"destroy",value:function(){this.unAll();this.wrapper&&(this.wrapper.parentNode==this.container&&this.container.removeChild(this.wrapper), this.wrapper=null)}},{key:"updateCursor",value:function(){}},{key:"updateSize",value:function(){}},{key:"drawBars",value:function(a,d,b,g){}},{key:"drawWave",value:function(a,d,b,g){}},{key:"clearWave",value:function(){}},{key:"updateProgress",value:function(a){}}]);return b}(v.Observer);a["default"]=b;h.exports=a["default"]},"./src/drawer.multicanvas.js":function(h,a,b){function e(){if("function"!==typeof WeakMap)return null;var a=new WeakMap;e=function(){return a};return a}function f(a){return a&& a.__esModule?a:{"default":a}}function q(a){q="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};return q(a)}function r(a,b){for(var d=0;dd;)this.removeCanvas();var b=this.maxCanvasWidth+this.overlap, c=this.canvases.length-1;this.canvases.forEach(function(d,g){g==c&&(b=a.width-a.maxCanvasWidth*c);a.updateDimensions(d,b,a.height);d.clearWave()})}},{key:"addCanvas",value:function(){var a=new this.EntryClass;a.canvasContextAttributes=this.canvasContextAttributes;a.hasProgressCanvas=this.hasProgressCanvas;a.halfPixel=this.halfPixel;var d=this.maxCanvasElementWidth*this.canvases.length;a.initWave(this.wrapper.appendChild(this.style(document.createElement("canvas"),{position:"absolute",zIndex:2,left:d+ "px",top:0,bottom:0,height:"100%",pointerEvents:"none"})));this.hasProgressCanvas&&a.initProgress(this.progressWave.appendChild(this.style(document.createElement("canvas"),{position:"absolute",left:d+"px",top:0,bottom:0,height:"100%"})));this.canvases.push(a)}},{key:"removeCanvas",value:function(){var a=this.canvases[this.canvases.length-1];a.wave.parentElement.removeChild(a.wave);this.hasProgressCanvas&&a.progress.parentElement.removeChild(a.progress);a&&a.destroy();this.canvases.pop()}},{key:"updateDimensions", value:function(a,d,b){a.updateDimensions(Math.round(d/this.params.pixelRatio),Math.round(this.width/this.params.pixelRatio),d,b);this.style(this.progressWave,{display:"block"})}},{key:"clearWave",value:function(){var a=this;k.frame(function(){a.canvases.forEach(function(a){return a.clearWave()})})()}},{key:"drawBars",value:function(a,d,b,c){var g=this;return this.prepareDraw(a,d,b,c,function(a){var d=a.absmax,x=a.offsetY,k=a.halfH,e=a.peaks;if(void 0!==b){a=a.hasMinVals?2:1;var l=g.params.barWidth* g.params.pixelRatio,n=l+(null===g.params.barGap?Math.max(g.params.pixelRatio,~~(l/2)):Math.max(g.params.pixelRatio,g.params.barGap*g.params.pixelRatio)),w=e.length/a/g.width,m=b;for(m;mg?-m:g}m=[].some.call(a,function(a){return 0>a});var f=t.params.height*t.params.pixelRatio;return e({absmax:g,hasMinVals:m, height:f,offsetY:f*l||0,halfH:f/2,peaks:a,channelIndex:d})}})()}},{key:"setFillStyles",value:function(a){a.setFillStyles(1=a&&(b.pause(),b.seekTo(a))};this.on("audioprocess",this._onPlayEnd)}},{key:"clearPlayEnd",value:function(){this._onPlayEnd&&(this.un("audioprocess", this._onPlayEnd),this._onPlayEnd=null)}},{key:"getPeaks",value:function(a,d,c){return this.buffer?u(p(b.prototype),"getPeaks",this).call(this,a,d,c):this.peaks||[]}},{key:"setSinkId",value:function(a){return a?this.media.setSinkId?this.media.setSinkId(a):Promise.reject(Error("setSinkId is not supported in your browser")):Promise.reject(Error("Invalid deviceId: "+a))}},{key:"getVolume",value:function(){return this.volume}},{key:"setVolume",value:function(a){this.volume=a;this.media.volume!==this.volume&& (this.media.volume=this.volume)}},{key:"setMute",value:function(a){this.isMuted=this.media.muted=a}},{key:"destroy",value:function(){var a=this;this.pause();this.unAll();this.destroyed=!0;Object.keys(this.mediaListeners).forEach(function(b){a.media&&a.media.removeEventListener(b,a.mediaListeners[b])});this.params.removeMediaElementOnDestroy&&this.media&&this.media.parentNode&&this.media.parentNode.removeChild(this.media);this.media=null}}]);return b}(k["default"]);a["default"]=b;h.exports=a["default"]}, "./src/peakcache.js":function(h,a,b){function e(a,b){for(var e=0;eb&&(b=a[e])});return b};h.exports=a["default"]},"./src/util/min.js":function(h,a,b){Object.defineProperty(a,"__esModule",{value:!0});a["default"]=function(a){var b=Number(Infinity);Object.keys(a).forEach(function(e){a[e]=c.params.maxCanvasWidth)throw Error("maxCanvasWidth must be greater than 1"); if(1==c.params.maxCanvasWidth%2)throw Error("maxCanvasWidth must be an even number");!0===c.params.rtl&&d.style(c.container,{transform:"rotateY(180deg)"});c.params.backgroundColor&&c.setBackgroundColor(c.params.backgroundColor);c.savedVolume=0;c.isMuted=!1;c.tmpEvents=[];c.currentRequest=null;c.arraybuffer=null;c.drawer=null;c.backend=null;c.peakCache=null;if("function"!==typeof c.params.renderer)throw Error("Renderer parameter is invalid");c.Drawer=c.params.renderer;"AudioElement"==c.params.backend&& (c.params.backend="MediaElement");"WebAudio"!=c.params.backend&&"MediaElementWebAudio"!==c.params.backend||g["default"].prototype.supportsWebAudio.call(null)||(c.params.backend="MediaElement");c.Backend=c.backends[c.params.backend];c.initialisedPluginList={};c.isDestroyed=!1;c.isReady=!1;var t=0;c._onResize=d.debounce(function(){t==c.drawer.wrapper.clientWidth||c.params.scrollParent||(t=c.drawer.wrapper.clientWidth,c.drawer.fireEvent("redraw"))},"number"===typeof c.params.responsive?c.params.responsive: 100);return r(c,u(c))}p(b,a);c(b,null,[{key:"create",value:function(a){return(new b(a)).init()}}]);c(b,[{key:"init",value:function(){this.registerPlugins(this.params.plugins);this.createDrawer();this.createBackend();this.createPeakCache();return this}},{key:"registerPlugins",value:function(a){var b=this;a.forEach(function(a){return b.addPlugin(a)});a.forEach(function(a){a.deferInit||b.initPlugin(a.name)});this.fireEvent("plugins-registered",a);return this}},{key:"getActivePlugins",value:function(){return this.initialisedPluginList}}, {key:"addPlugin",value:function(a){var b=this;if(!a.name)throw Error("Plugin does not have a name!");if(!a.instance)throw Error("Plugin ".concat(a.name," does not have an instance property!"));a.staticProps&&Object.keys(a.staticProps).forEach(function(d){b[d]=a.staticProps[d]});var c=a.instance;Object.getOwnPropertyNames(d.Observer.prototype).forEach(function(a){c.prototype[a]=d.Observer.prototype[a]});this[a.name]=new c(a.params||{},this);this.fireEvent("plugin-added",a.name);return this}},{key:"initPlugin", value:function(a){if(!this[a])throw Error("Plugin ".concat(a," has not been added yet!"));this.initialisedPluginList[a]&&this.destroyPlugin(a);this[a].init();this.initialisedPluginList[a]=!0;this.fireEvent("plugin-initialised",a);return this}},{key:"destroyPlugin",value:function(a){if(!this[a])throw Error("Plugin ".concat(a," has not been added yet and cannot be destroyed!"));if(!this.initialisedPluginList[a])throw Error("Plugin ".concat(a," is not active and cannot be destroyed!"));if("function"!== typeof this[a].destroy)throw Error("Plugin ".concat(a," does not have a destroy function!"));this[a].destroy();delete this.initialisedPluginList[a];this.fireEvent("plugin-destroyed",a);return this}},{key:"destroyAllPlugins",value:function(){var a=this;Object.keys(this.initialisedPluginList).forEach(function(b){return a.destroyPlugin(b)})}},{key:"createDrawer",value:function(){var a=this;this.drawer=new this.Drawer(this.container,this.params);this.drawer.init();this.fireEvent("drawer-created",this.drawer); !1!==this.params.responsive&&(window.addEventListener("resize",this._onResize,!0),window.addEventListener("orientationchange",this._onResize,!0));this.drawer.on("redraw",function(){a.drawBuffer();a.drawer.progress(a.backend.getPlayedPercents())});this.drawer.on("click",function(b,d){setTimeout(function(){return a.seekTo(d)},0)});this.drawer.on("scroll",function(b){a.params.partialRender&&a.drawBuffer();a.fireEvent("scroll",b)})}},{key:"createBackend",value:function(){var a=this;this.backend&&this.backend.destroy(); this.backend=new this.Backend(this.params);this.backend.init();this.fireEvent("backend-created",this.backend);this.backend.on("finish",function(){a.drawer.progress(a.backend.getPlayedPercents());a.fireEvent("finish")});this.backend.on("play",function(){return a.fireEvent("play")});this.backend.on("pause",function(){return a.fireEvent("pause")});this.backend.on("audioprocess",function(b){a.drawer.progress(a.backend.getPlayedPercents());a.fireEvent("audioprocess",b)});if("MediaElement"===this.params.backend|| "MediaElementWebAudio"===this.params.backend)this.backend.on("seek",function(){a.drawer.progress(a.backend.getPlayedPercents())}),this.backend.on("volume",function(){var b=a.getVolume();a.fireEvent("volume",b);a.backend.isMuted!==a.isMuted&&(a.isMuted=a.backend.isMuted,a.fireEvent("mute",a.isMuted))})}},{key:"createPeakCache",value:function(){this.params.partialRender&&(this.peakCache=new y["default"])}},{key:"getDuration",value:function(){return this.backend.getDuration()}},{key:"getCurrentTime", value:function(){return this.backend.getCurrentTime()}},{key:"setCurrentTime",value:function(a){a>=this.getDuration()?this.seekTo(1):this.seekTo(a/this.getDuration())}},{key:"play",value:function(a,b){var d=this;this.fireEvent("interaction",function(){return d.play(a,b)});return this.backend.play(a,b)}},{key:"setPlayEnd",value:function(a){this.backend.setPlayEnd(a)}},{key:"pause",value:function(){if(!this.backend.isPaused())return this.backend.pause()}},{key:"playPause",value:function(){return this.backend.isPaused()? this.play():this.pause()}},{key:"isPlaying",value:function(){return!this.backend.isPaused()}},{key:"skipBackward",value:function(a){this.skip(-a||-this.params.skipLength)}},{key:"skipForward",value:function(a){this.skip(a||this.params.skipLength)}},{key:"skip",value:function(a){var b=this.getDuration()||1,d=this.getCurrentTime()||0;d=Math.max(0,Math.min(b,d+(a||0)));this.seekAndCenter(d/b)}},{key:"seekAndCenter",value:function(a){this.seekTo(a);this.drawer.recenter(a)}},{key:"seekTo",value:function(a){var b= this;if("number"!==typeof a||!isFinite(a)||0>a||1=a.getDuration()?(a.setState("finished"),a.fireEvent("pause")):b>=a.scheduledPause?a.pause():a.state===a.states.playing&&a.fireEvent("audioprocess",b)}}},{key:"removeOnAudioProcess",value:function(){this.scriptNode.onaudioprocess=function(){}}},{key:"createAnalyserNode",value:function(){this.analyser=this.ac.createAnalyser();this.analyser.connect(this.gainNode)}}, {key:"createVolumeNode",value:function(){this.gainNode=this.ac.createGain?this.ac.createGain():this.ac.createGainNode();this.gainNode.connect(this.ac.destination)}},{key:"setSinkId",value:function(a){if(a){var b=new window.Audio;if(!b.setSinkId)return Promise.reject(Error("setSinkId is not supported in your browser"));b.autoplay=!0;var d=this.ac.createMediaStreamDestination();this.gainNode.disconnect();this.gainNode.connect(d);b.srcObject=d.stream;return b.setSinkId(a)}return Promise.reject(Error("Invalid deviceId: "+ a))}},{key:"setVolume",value:function(a){this.gainNode.gain.setValueAtTime(a,this.ac.currentTime)}},{key:"getVolume",value:function(){return this.gainNode.gain.value}},{key:"decodeArrayBuffer",value:function(a,b,c){this.offlineAc||(this.offlineAc=this.getOfflineAudioContext(this.ac&&this.ac.sampleRate?this.ac.sampleRate:44100));this.offlineAc.decodeAudioData(a,function(a){return b(a)},c)}},{key:"setPeaks",value:function(a,b){null!=b&&(this.explicitDuration=b);this.peaks=a}},{key:"setLength",value:function(a){if(!this.mergedPeaks|| a!=2*this.mergedPeaks.length-1+2){this.splitPeaks=[];this.mergedPeaks=[];var b=this.buffer?this.buffer.numberOfChannels:1,d;for(d=0;dp&&(p=q);qthis.mergedPeaks[2*k])this.mergedPeaks[2*k]=p;if(0==f||n=this.getDuration()&&(a=0)),null==b&&(b=this.getDuration()),this.startPosition=a,this.lastPlay=this.ac.currentTime,this.state===this.states.finished&&this.setState("paused"),{start:a,end:b}}},{key:"getPlayedTime",value:function(){return(this.ac.currentTime-this.lastPlay)*this.playbackRate}},{key:"play",value:function(a,b){if(this.buffer){this.createSource(); var c=this.seekTo(a,b);a=c.start;this.scheduledPause=b=c.end;this.source.start(0,a);this.resumeAudioContext();this.setState("playing");this.fireEvent("play")}}},{key:"pause",value:function(){this.scheduledPause=null;this.startPosition+=this.getPlayedTime();this.source&&this.source.stop(0);this.setState("paused");this.fireEvent("pause")}},{key:"getCurrentTime",value:function(){return this.state.getCurrentTime.call(this)}},{key:"getPlaybackRate",value:function(){return this.playbackRate}},{key:"setPlaybackRate", value:function(a){a=a||1;this.isPaused()?this.playbackRate=a:(this.pause(),this.playbackRate=a,this.play())}},{key:"setPlayEnd",value:function(a){this.scheduledPause=a}}]);return b}(function(a){if(a&&a.__esModule)return a;if(null===a||"object"!==f(a)&&"function"!==typeof a)return{"default":a};var b=e();if(b&&b.has(a))return b.get(a);var d={},h=Object.defineProperty&&Object.getOwnPropertyDescriptor,g;for(g in a)if(Object.prototype.hasOwnProperty.call(a,g)){var k=h?Object.getOwnPropertyDescriptor(a, g):null;k&&(k.get||k.set)?Object.defineProperty(d,g,k):d[g]=a[g]}d["default"]=a;b&&b.set(a,d);return d}(b("./src/util/index.js")).Observer);a["default"]=b;b.scriptBufferSize=256;h.exports=a["default"]}})});