1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3834],{2081:(t,e,i)=>{function s(t,e,i,s){return new(i||(i=Promise))(function(n,r){function o(t){try{l(s.next(t))}catch(t){r(t)}}function a(t){try{l(s.throw(t))}catch(t){r(t)}}function l(t){var e;t.done?n(t.value):((e=t.value)instanceof i?e:new i(function(t){t(e)})).then(o,a)}l((s=s.apply(t,e||[])).next())})}i.d(e,{A:()=>O});let n={decode:function(t,e){return s(this,void 0,void 0,function*(){let i=new AudioContext({sampleRate:e});return i.decodeAudioData(t).finally(()=>i.close())})},createBuffer:function(t,e){return"number"==typeof t[0]&&(t=[t]),function(t){let e=t[0];if(e.some(t=>t>1||t<-1)){let i=e.length,s=0;for(let t=0;t<i;t++){let i=Math.abs(e[t]);i>s&&(s=i)}for(let e of t)for(let t=0;t<i;t++)e[t]/=s}}(t),{duration:e,length:t[0].length,sampleRate:t[0].length/e,numberOfChannels:t.length,getChannelData:e=>null==t?void 0:t[e],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}},r={fetchBlob:function(t,e,i){return s(this,void 0,void 0,function*(){let n=yield fetch(t,i);if(n.status>=400)throw Error(`Failed to fetch ${t}: ${n.status} (${n.statusText})`);return function(t,e){s(this,void 0,void 0,function*(){if(!t.body||!t.headers)return;let i=t.body.getReader(),n=Number(t.headers.get("Content-Length"))||0,r=0,o=t=>s(this,void 0,void 0,function*(){e(Math.round((r+=(null==t?void 0:t.length)||0)/n*100))}),a=()=>s(this,void 0,void 0,function*(){let t;try{t=yield i.read()}catch(t){return}t.done||(o(t.value),yield a())});a()})}(n.clone(),e),n.blob()})}},o=class{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),null==i?void 0:i.once){let i=()=>{this.un(t,i),this.un(t,e)};return this.on(t,i),i}return()=>this.un(t,e)}un(t,e){var i;null==(i=this.listeners[t])||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(t=>t(...e))}},a=class extends o{constructor(t){super(),this.isExternalMedia=!1,t.media?(this.media=t.media,this.isExternalMedia=!0):this.media=document.createElement("audio"),t.mediaControls&&(this.media.controls=!0),t.autoplay&&(this.media.autoplay=!0),null!=t.playbackRate&&this.onceMediaEvent("canplay",()=>{null!=t.playbackRate&&(this.media.playbackRate=t.playbackRate)})}onMediaEvent(t,e,i){return this.media.addEventListener(t,e,i),()=>this.media.removeEventListener(t,e)}onceMediaEvent(t,e){return this.onMediaEvent(t,e,{once:!0})}getSrc(){return this.media.currentSrc||this.media.src||""}revokeSrc(){let t=this.getSrc();t.startsWith("blob:")&&URL.revokeObjectURL(t)}canPlayType(t){return""!==this.media.canPlayType(t)}setSrc(t,e){if(this.getSrc()===t)return;this.revokeSrc();let i=e instanceof Blob&&this.canPlayType(e.type)?URL.createObjectURL(e):t;this.media.src=i}destroy(){this.media.pause(),this.isExternalMedia||(this.media.remove(),this.revokeSrc(),this.media.src="",this.media.load())}setMediaElement(t){this.media=t}play(){return this.media.play()}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(t){this.media.currentTime=t}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(t){this.media.volume=t}getMuted(){return this.media.muted}setMuted(t){this.media.muted=t}getPlaybackRate(){return this.media.playbackRate}setPlaybackRate(t,e){null!=e&&(this.media.preservesPitch=e),this.media.playbackRate=t}getMediaElement(){return this.media}setSinkId(t){return this.media.setSinkId(t)}},l=class t extends o{constructor(t,e){super(),this.timeouts=[],this.isScrollable=!1,this.audioData=null,this.resizeObserver=null,this.lastContainerWidth=0,this.isDragging=!1,this.options=t;let i=this.parentFromOptionsContainer(t.container);this.parent=i;let[s,n]=this.initHtml();i.appendChild(s),this.container=s,this.scrollContainer=n.querySelector(".scroll"),this.wrapper=n.querySelector(".wrapper"),this.canvasWrapper=n.querySelector(".canvases"),this.progressWrapper=n.querySelector(".progress"),this.cursor=n.querySelector(".cursor"),e&&n.appendChild(e),this.initEvents()}parentFromOptionsContainer(t){let e;if("string"==typeof t?e=document.querySelector(t):t instanceof HTMLElement&&(e=t),!e)throw Error("Container not found");return e}initEvents(){let t=t=>{let e=this.wrapper.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientX-e.left;return[i/e.width,s/e.height]};this.wrapper.addEventListener("click",e=>{let[i,s]=t(e);
1this.emit("click",i,s)}),this.wrapper.addEventListener("dblclick",e=>{let[i,s]=t(e);this.emit("dblclick",i,s)}),this.options.dragToSeek&&this.initDrag(),this.scrollContainer.addEventListener("scroll",()=>{let{scrollLeft:t,scrollWidth:e,clientWidth:i}=this.scrollContainer;this.emit("scroll",t/e,(t+i)/e)});let e=this.createDelay(100);this.resizeObserver=new ResizeObserver(()=>{e(()=>this.onContainerResize())}),this.resizeObserver.observe(this.scrollContainer)}onContainerResize(){let t=this.parent.clientWidth;t===this.lastContainerWidth&&"auto"!==this.options.height||(this.lastContainerWidth=t,this.reRender())}initDrag(){!function(t,e,i,s,n=3,r=0){if(!t)return()=>{};let o=()=>{};t.addEventListener("pointerdown",a=>{if(a.button!==r)return;a.preventDefault(),a.stopPropagation();let l=a.clientX,h=a.clientY,d=!1,u=s=>{s.preventDefault(),s.stopPropagation();let r=s.clientX,o=s.clientY,a=r-l,u=o-h;if(d||Math.abs(a)>n||Math.abs(u)>n){let{left:s,top:n}=t.getBoundingClientRect();d||(null==i||i(l-s,h-n),d=!0),e(a,u,r-s,o-n),l=r,h=o}},c=()=>{d&&(null==s||s()),o()},p=t=>{t.relatedTarget&&t.relatedTarget!==document.documentElement||c()},m=t=>{d&&(t.stopPropagation(),t.preventDefault())},v=t=>{d&&t.preventDefault()};document.addEventListener("pointermove",u),document.addEventListener("pointerup",c),document.addEventListener("pointerout",p),document.addEventListener("pointercancel",p),document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("click",m,{capture:!0}),o=()=>{document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",c),document.removeEventListener("pointerout",p),document.removeEventListener("pointercancel",p),document.removeEventListener("touchmove",v),setTimeout(()=>{document.removeEventListener("click",m,{capture:!0})},10)}})}(this.wrapper,(t,e,i)=>{this.emit("drag",Math.max(0,Math.min(1,i/this.wrapper.getBoundingClientRect().width)))},()=>this.isDragging=!0,()=>this.isDragging=!1)}getHeight(t){return null==t?128:isNaN(Number(t))?"auto"===t&&this.parent.clientHeight||128:Number(t)}initHtml(){let t=document.createElement("div"),e=t.attachShadow({mode:"open"});return e.innerHTML=` 2 <style> 3 :host { 4 user-select: none; 5 min-width: 1px; 6 } 7 :host audio { 8 display: block; 9 width: 100%; 10 } 11 :host .scroll { 12 overflow-x: auto; 13 overflow-y: hidden; 14 width: 100%; 15 position: relative; 16 } 17 :host .noScrollbar {
18 scrollbar-color: transparent; 19 scrollbar-width: none; 20 } 21 :host .noScrollbar::-webkit-scrollbar { 22 display: none; 23 -webkit-appearance: none; 24 } 25 :host .wrapper { 26 position: relative; 27 overflow: visible; 28 z-index: 2; 29 } 30 :host .canvases { 31 min-height: ${this.getHeight(this.options.height)}px; 32 } 33 :host .canvases > div { 34 position: relative; 35 } 36 :host canvas { 37 display: block; 38 position: absolute; 39 top: 0; 40 image-rendering: pixelated; 41 } 42 :host .progress { 43 pointer-events: none; 44 position: absolute; 45 z-index: 2; 46 top: 0; 47 left: 0; 48 width: 0; 49 height: 100%; 50 overflow: hidden; 51 } 52 :host .progress > div { 53 position: relative; 54 } 55 :host .cursor { 56 pointer-events: none; 57 position: absolute; 58 z-index: 5; 59 top: 0; 60 left: 0; 61 height: 100%; 62 border-radius: 2px; 63 } 64 </style> 65 66 <div class="scroll" part="scroll"> 67 <div class="wrapper" part="wrapper"> 68 <div class="canvases"></div> 69 <div class="progress" part="progress"></div> 70 <div class="cursor" part="cursor"></div> 71 </div> 72 </div> 73 `,[t,e]}setOptions(t){if(this.options.container!==t.container){let e=this.parentFromOptionsContainer(t.container);e.appendChild(this.container),this.parent=e}t.dragToSeek&&!this.options.dragToSeek&&this.initDrag(),this.options=t,this.reRender()}getWrapper(){return this.wrapper}getScroll(){return this.scrollContainer.scrollLeft}destroy(){var t;this.container.remove(),null==(t=this.resizeObserver)||t.disconnect()}createDelay(t=10){let e={};return this.timeouts.push(e),i=>{e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(i,t)}}convertColorValues(t){if(!Array.isArray(t))return t||"";if(t.length<2)return t[0]||"";let e=document.createElement("canvas"),i=e.getContext("2d"),s=e.height*(window.devicePixelRatio||1),n=i.createLinearGradient(0,0,0,s),r=1/(t.length-1);return t.forEach((t,e)=>{n.addColorStop(e*r,t)}),n}renderBarWaveform(t,e,i,s){let n=t[0],r=t[1]||t[0],o=n.length,{width:a,height:l}=i.canvas,h=l/2,d=window.devicePixelRatio||1,u=e.barWidth?e.barWidth*d:1,c=e.barGap?e.barGap*d:e.barWidth?u/2:0,p=e.barRadius||0,m=a/(u+c)/o,v=p&&"roundRect"in i?"roundRect":"rect";i.beginPath();let f=0,g=0,y=0;for(let t=0;t<=o;t++){let o=Math.round(t*m);if(o>f){let t=Math.round(g*h*s),n=t+Math.round(y*h*s)||1,r=h-t;"top"===e.barAlign?r=0:"bottom"===e.barAlign&&(r=l-n),i[v](f*(u+c),r,u,n,p),f=o,g=0,y=0}let a=Math.abs(n[t]||0),d=Math.abs(r[t]||0);a>g&&(g=a),d>y&&(y=d)}i.fill(),i.closePath()}renderLineWaveform(t,e,i,s){let n=e=>{let n=t[e]||t[0],r=n.length,{height:o}=i.canvas,a=o/2,l=i.canvas.width/r;i.moveTo(0,a);let h=0,d=0;for(let t=0;t<=r;t++){let r=Math.round(t*l);if(r>h){let t=a+(Math.round(d*a*s)||1)*(0===e?-1:1);i.lineTo(h,t),h=r,d=0}let o=Math.abs(n[t]||0);o>d&&(d=o)}i.lineTo(h,a)};i.beginPath(),n(0),n(1),i.fill(),i.closePath()}renderWaveform(t,e,i){if(i.fillStyle=this.convertColorValues(e.waveColor),e.renderFunction)return void e.renderFunction(t,i);let s=e.barHeight||1;if(e.normalize){let e=Array.from(t[0]).reduce((t,e)=>Math.max(t,Math.abs(e)),0);s=e?1/e:1}e.barWidth||e.barGap||e.barAlign?this.renderBarWaveform(t,e,i,s):this.renderLineWaveform(t,e,i,s)}renderSingleCanvas(t,e,i,s,n,r,o,a){let l=window.devicePixelRatio||1,h=document.createElement("canvas"),d=t[0].length;h.width=Math.round(i*(r-n)/d),h.height=s*l,h.style.width=`${Math.floor(h.width/l)}px`,h.style.height=`${s}px`,h.style.left=`${Math.floor(n*i/l/d)}px`,o.appendChild(h);let u=h.getContext("2d");if(this.renderWaveform(t.map(t=>t.slice(n,r)),e,u),h.width>0&&h.height>0){let t=h.cloneNode(),i=t.getContext("2d");i.drawImage(h,0,0),i.globalCompositeOperation="source-in",i.fillStyle=this.convertColorValues(e.progressColor),i.fillRect(0,0,h.width,h.height),a.appendChild(t)}}renderChannel(e,i,s){let n=document.createElement("div"),r=this.getHeight(i.height);n.style.height=`${r}px`,this.canvasWrapper.style.minHeight=`${r}px`,this.canvasWrapper.appendChild(n);let o=n.cloneNode();this.progressWrapper.appendChild(o);let{scrollLeft:a,scrollWidth:l,clientWidth:h}=this.scrollContainer,d=e[0].length,u=d/l,c=Math.min(t.MAX_CANVAS_WIDTH,h);if(i.barWidth||i.barGap){let t=i.barWidth||.5,e=t+(i.barGap||t/2);c%e!=0&&(c=Math.floor(c/e)*e)}let p=Math.floor(Math.abs(a)*u),m=Math.floor(p+c*u),v=m-p,f=(t,a)=>{this.renderSingleCanvas(e,i,s,r,Math.max(0,t),Math.min(a,d),n,o)},g=this.createDelay(),y=this.createDelay(),b=(t,e)=>{f(t,e),t>0&&g(()=>{b(t-v,e-v)})},A=(t,e)=>{f(t,e),e<d&&y(()=>{A(t+v,e+v)})};b(p,m),m<d&&A(m,m+v)}
73render(t){this.timeouts.forEach(t=>t.timeout&&clearTimeout(t.timeout)),this.timeouts=[],this.canvasWrapper.innerHTML="",this.progressWrapper.innerHTML="",null!=this.options.width&&(this.scrollContainer.style.width="number"==typeof this.options.width?`${this.options.width}px`:this.options.width);let e=window.devicePixelRatio||1,i=this.scrollContainer.clientWidth,s=Math.ceil(t.duration*(this.options.minPxPerSec||0));this.isScrollable=s>i;let n=this.options.fillParent&&!this.isScrollable,r=(n?i:s)*e;if(this.wrapper.style.width=n?"100%":`${s}px`,this.scrollContainer.style.overflowX=this.isScrollable?"auto":"hidden",this.scrollContainer.classList.toggle("noScrollbar",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.options.splitChannels)for(let e=0;e<t.numberOfChannels;e++){let i=Object.assign(Object.assign({},this.options),this.options.splitChannels[e]);this.renderChannel([t.getChannelData(e)],i,r)}else{let e=[t.getChannelData(0)];t.numberOfChannels>1&&e.push(t.getChannelData(1)),this.renderChannel(e,this.options,r)}this.audioData=t,this.emit("render")}
73reRender(){if(!this.audioData)return;let{scrollWidth:t}=this.scrollContainer,e=this.progressWrapper.clientWidth;if(this.render(this.audioData),this.isScrollable&&t!==this.scrollContainer.scrollWidth){let t=this.progressWrapper.clientWidth;this.scrollContainer.scrollLeft+=t-e}}zoom(t){this.options.minPxPerSec=t,this.reRender()}scrollIntoView(t,e=!1){let{scrollLeft:i,scrollWidth:s,clientWidth:n}=this.scrollContainer,r=t*s,o=i+n,a=n/2;if(this.isDragging)r+30>o?this.scrollContainer.scrollLeft+=30:r-30<i&&(this.scrollContainer.scrollLeft-=30);else{(r<i||r>o)&&(this.scrollContainer.scrollLeft=r-(this.options.autoCenter?a:0));let t=r-i-a;e&&this.options.autoCenter&&t>0&&(this.scrollContainer.scrollLeft+=Math.min(t,10))}{let t=this.scrollContainer.scrollLeft;this.emit("scroll",t/s,(t+n)/s)}}renderProgress(t,e){if(isNaN(t))return;let i=100*t;this.canvasWrapper.style.clipPath=`polygon(${i}% 0, 100% 0, 100% 100%, ${i}% 100%)`,this.progressWrapper.style.width=`${i}%`,this.cursor.style.left=`${i}%`,this.cursor.style.marginLeft=100===Math.round(i)?`-${this.options.cursorWidth}px`:"",this.isScrollable&&this.options.autoScroll&&this.scrollIntoView(t,e)}exportImage(t,e,i){return s(this,void 0,void 0,function*(){let s=this.canvasWrapper.querySelectorAll("canvas");if(!s.length)throw Error("No waveform data");return"dataURL"===i?Promise.resolve(Array.from(s).map(i=>i.toDataURL(t,e))):Promise.all(Array.from(s).map(i=>new Promise((s,n)=>{i.toBlob(t=>{t?s(t):n(Error("Could not export image"))},t,e)})))})}};l.MAX_CANVAS_WIDTH=4e3;let h=class extends o{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}};class d extends o{constructor(t=new AudioContext){super(),this.bufferNode=null,this.autoplay=!1,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this.buffer=null,this.currentSrc="",this.paused=!0,this.crossOrigin=null,this.addEventListener=this.on,this.removeEventListener=this.un,this.audioContext=t,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return s(this,void 0,void 0,function*(){})}get src(){return this.currentSrc}set src(t){if(this.currentSrc=t,!t)return this.buffer=null,void this.emit("emptied");fetch(t).then(t=>t.arrayBuffer()).then(e=>this.currentSrc!==t?null:this.audioContext.decodeAudioData(e)).then(e=>{this.currentSrc===t&&(this.buffer=e,this.emit("loadedmetadata"),this.emit("canplay"),this.autoplay&&this.play())})}_play(){var t;this.paused&&(this.paused=!1,null==(t=this.bufferNode)||t.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.bufferNode.buffer=this.buffer,this.bufferNode.connect(this.gainNode),this.playedDuration>=this.duration&&(this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,this.playedDuration),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit("ended"))})}_pause(){var t;this.paused||(this.paused=!0,null==(t=this.bufferNode)||t.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime)}play(){return s(this,void 0,void 0,function*(){this._play(),this.emit("play")})}pause(){this._pause(),this.emit("pause")}stopAt(t){var e,i;let s=t-this.currentTime;null==(e=this.bufferNode)||e.stop(this.audioContext.currentTime+s),null==(i=this.bufferNode)||i.addEventListener("ended",()=>{this.bufferNode=null,this.pause()},{once:!0})}setSinkId(t){return s(this,void 0,void 0,function*(){return this.audioContext.setSinkId(t)})}get playbackRate(){var t,e;return null!=(e=null==(t=this.bufferNode)?void 0:t.playbackRate.value)?e:1}set playbackRate(t){this.bufferNode&&(this.bufferNode.playbackRate.value=t)}get currentTime(){return this.paused?this.playedDuration:this.playedDuration+this.audioContext.currentTime-this.playStartTime}set currentTime(t){this.emit("seeking"),this.paused?this.playedDuration=t:(this._pause(),this.playedDuration=t,this._play()),this.emit
73("timeupdate")}get duration(){var t;return(null==(t=this.buffer)?void 0:t.duration)||0}get volume(){return this.gainNode.gain.value}set volume(t){this.gainNode.gain.value=t,this.emit("volumechange")}get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}canPlayType(t){return/^(audio|video)\//.test(t)}getGainNode(){return this.gainNode}getChannelData(){let t=[];if(!this.buffer)return t;let e=this.buffer.numberOfChannels;for(let i=0;i<e;i++)t.push(this.buffer.getChannelData(i));return t}}let u={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3},c=class t extends a{static create(e){return new t(e)}constructor(t){let e=t.media||("WebAudio"===t.backend?new d:void 0);super({media:e,mediaControls:t.mediaControls,autoplay:t.autoplay,playbackRate:t.audioRate}),this.plugins=[],this.decodedData=null,this.subscriptions=[],this.mediaSubscriptions=[],this.options=Object.assign({},u,t),this.timer=new h;let i=e?void 0:this.getMediaElement();this.renderer=new l(this.options,i),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins(),Promise.resolve().then(()=>{this.emit("init");let t=this.options.url||this.getSrc()||"";(t||this.options.peaks&&this.options.duration)&&this.load(t,this.options.peaks,this.options.duration)})}initTimerEvents(){this.subscriptions.push(this.timer.on("tick",()=>{let t=this.getCurrentTime();this.renderer.renderProgress(t/this.getDuration(),!0),this.emit("timeupdate",t),this.emit("audioprocess",t)}))}initPlayerEvents(){this.isPlaying()&&(this.emit("play"),this.timer.start()),this.mediaSubscriptions.push(this.onMediaEvent("timeupdate",()=>{let t=this.getCurrentTime();this.renderer.renderProgress(t/this.getDuration(),this.isPlaying()),this.emit("timeupdate",t)}),this.onMediaEvent("play",()=>{this.emit("play"),this.timer.start()}),this.onMediaEvent("pause",()=>{this.emit("pause"),this.timer.stop()}),this.onMediaEvent("emptied",()=>{this.timer.stop()}),this.onMediaEvent("ended",()=>{this.emit("finish")}),this.onMediaEvent("seeking",()=>{this.emit("seeking",this.getCurrentTime())}))}initRendererEvents(){this.subscriptions.push(this.renderer.on("click",(t,e)=>{this.options.interact&&(this.seekTo(t),this.emit("interaction",t*this.getDuration()),this.emit("click",t,e))}),this.renderer.on("dblclick",(t,e)=>{this.emit("dblclick",t,e)}),this.renderer.on("scroll",(t,e)=>{let i=this.getDuration();this.emit("scroll",t*i,e*i)}),this.renderer.on("render",()=>{this.emit("redraw")}));{let t;this.subscriptions.push(this.renderer.on("drag",e=>{this.options.interact&&(this.renderer.renderProgress(e),clearTimeout(t),t=setTimeout(()=>{this.seekTo(e)},200*!this.isPlaying()),this.emit("interaction",e*this.getDuration()),this.emit("drag",e))}))}}initPlugins(){var t;(null==(t=this.options.plugins)?void 0:t.length)&&this.options.plugins.forEach(t=>{this.registerPlugin(t)})}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach(t=>t()),this.mediaSubscriptions=[]}setOptions(t){this.options=Object.assign({},this.options,t),this.renderer.setOptions(this.options),t.audioRate&&this.setPlaybackRate(t.audioRate),null!=t.mediaControls&&(this.getMediaElement().controls=t.mediaControls)}registerPlugin(t){return t._init(this),this.plugins.push(t),this.subscriptions.push(t.once("destroy",()=>{this.plugins=this.plugins.filter(e=>e!==t)})),t}getWrapper(){return this.renderer.getWrapper()}getScroll(){return this.renderer.getScroll()}getActivePlugins(){return this.plugins}loadAudio(t,e,i,o){return s(this,void 0,void 0,function*(){if(this.emit("load",t),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,!e&&!i){let i=t=>this.emit("loading",t);e=yield r.fetchBlob(t,i,this.options.fetchParams)}this.setSrc(t,e);let s=o||this.getDuration()||(yield new Promise(t=>{this.onceMediaEvent("loadedmetadata",()=>t(this.getDuration()))}));if(i)this.decodedData=n.createBuffer(i,s||0);else if(e){let t=yield e.arrayBuffer();this.decodedData=yield n.decode(t,this.options.sampleRate)}
73this.decodedData&&(this.emit("decode",this.getDuration()),this.renderer.render(this.decodedData)),this.emit("ready",this.getDuration())})}load(t,e,i){return s(this,void 0,void 0,function*(){yield this.loadAudio(t,void 0,e,i)})}loadBlob(t,e,i){return s(this,void 0,void 0,function*(){yield this.loadAudio("blob",t,e,i)})}zoom(t){if(!this.decodedData)throw Error("No audio loaded");this.renderer.zoom(t),this.emit("zoom",t)}getDecodedData(){return this.decodedData}exportPeaks({channels:t=2,maxLength:e=8e3,precision:i=1e4}={}){if(!this.decodedData)throw Error("The audio has not been decoded yet");let s=Math.min(t,this.decodedData.numberOfChannels),n=[];for(let t=0;t<s;t++){let s=this.decodedData.getChannelData(t),r=[],o=Math.round(s.length/e);for(let t=0;t<e;t++){let e=s.slice(t*o,(t+1)*o),n=0;for(let t=0;t<e.length;t++){let i=e[t];Math.abs(i)>Math.abs(n)&&(n=i)}r.push(Math.round(n*i)/i)}n.push(r)}return n}getDuration(){let t=super.getDuration()||0;return(0===t||t===1/0)&&this.decodedData&&(t=this.decodedData.duration),t}toggleInteraction(t){this.options.interact=t}seekTo(t){let e=this.getDuration()*t;this.setTime(e)}playPause(){return s(this,void 0,void 0,function*(){return this.isPlaying()?this.pause():this.play()})}stop(){this.pause(),this.setTime(0)}skip(t){this.setTime(this.getCurrentTime()+t)}empty(){this.load("",[[0]],.001)}setMediaElement(t){this.unsubscribePlayerEvents(),super.setMediaElement(t),this.initPlayerEvents()}exportImage(t="image/png",e=1,i="dataURL"){return s(this,void 0,void 0,function*(){return this.renderer.exportImage(t,e,i)})}destroy(){this.emit("destroy"),this.plugins.forEach(t=>t.destroy()),this.subscriptions.forEach(t=>t()),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}},p=class{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),null==i?void 0:i.once){let i=()=>{this.un(t,i),this.un(t,e)};return this.on(t,i),i}return()=>this.un(t,e)}un(t,e){var i;null==(i=this.listeners[t])||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(t=>t(...e))}},m=class extends p{constructor(t){super(),this.subscriptions=[],this.options=t}onInit(){}_init(t){this.wavesurfer=t,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(t=>t())}};function v(t,e,i,s,n=3,r=0){if(!t)return()=>{};let o=()=>{},a=a=>{if(a.button!==r)return;a.preventDefault(),a.stopPropagation();let l=a.clientX,h=a.clientY,d=!1,u=s=>{s.preventDefault(),s.stopPropagation();let r=s.clientX,o=s.clientY,a=r-l,u=o-h;if(d||Math.abs(a)>n||Math.abs(u)>n){let{left:s,top:n}=t.getBoundingClientRect();d||(null==i||i(l-s,h-n),d=!0),e(a,u,r-s,o-n),l=r,h=o}},c=()=>{d&&(null==s||s()),o()},p=t=>{t.relatedTarget&&t.relatedTarget!==document.documentElement||c()},m=t=>{d&&(t.stopPropagation(),t.preventDefault())},v=t=>{d&&t.preventDefault()};document.addEventListener("pointermove",u),document.addEventListener("pointerup",c),document.addEventListener("pointerout",p),document.addEventListener("pointercancel",p),document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("click",m,{capture:!0}),o=()=>{document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",c),document.removeEventListener("pointerout",p),document.removeEventListener("pointercancel",p),document.removeEventListener("touchmove",v),setTimeout(()=>{document.removeEventListener("click",m,{capture:!0})},10)}};return t.addEventListener("pointerdown",a),()=>{o(),t.removeEventListener("pointerdown",a)}}function f(t,e,i){let s=function t(e,i){let s=i.xmlns?document.createElementNS(i.xmlns,e):document.createElement(e);for(let[e,n]of Object.entries(i))if("children"===e)for(let[e,n]of Object.entries(i))"string"==typeof n?s.appendChild(document.createTextNode(n)):s.appendChild(t(e,n));else"style"===e?Object.assign(s.style,n):"textContent"===e?s.textContent=n:s.setAttribute(e,n.toString());return s}(t,e||{});return null==i||i.appendChild(s),s}let g=class extends p{constructor(t,e,i=0){var s,n,r,o,a,l,h,d;super(),this.totalDuration=e,this.numberOfChannels=i,this.minLength=0,this.maxLength=1/0,this.contentEditable=!1,this.id=t.id||`region-${Math.random().toString(32).slice(2)}`,this.start=this.clampPosition(t.start),this.end=this.clampPosition(null!=(s=t.end)?s:t.start),this.drag=null==(n=t.drag)||n,this.resize=null==(r=t.resize)||r,this.color=null!=(o=t.color)?o:"rgba(0, 0, 0, 0.1)",this.minLength=null!=(a=t.minLength)?a:this.minLength,this.maxLength=null!=(l=t.maxLength)?l:this.maxLength,this.channelIdx=null!=(h=t.channelIdx)?h:-1,this.contentEditable=null!=(d=t.contentEditable)?d:this.contentEditable,this.element=this.initElement(),this.setContent(t.content),this.setPart(),this.renderPosition(),this.initMouseEvents()}clampPosition(t){return Math.max(0,Math.min(this.totalDuration,t))}setPart(){let t=this.start===this.end;this.element.setAttribute("part",`${t?"marker":"region"} ${this.id}`)}addResizeHandles(t){let e={position:"absolute",zIndex:"2",width:"6px",height:"100%",top:"0",cursor:"ew-resize",wordBreak:"keep-all"},i=f("div",{part:"region-handle region-handle-left",style:Object.assign(Object.assign({}
73,e),{left:"0",borderLeft:"2px solid rgba(0, 0, 0, 0.5)",borderRadius:"2px 0 0 2px"})},t),s=f("div",{part:"region-handle region-handle-right",style:Object.assign(Object.assign({},e),{right:"0",borderRight:"2px solid rgba(0, 0, 0, 0.5)",borderRadius:"0 2px 2px 0"})},t);v(i,t=>this.onResize(t,"start"),()=>null,()=>this.onEndResizing(),1),v(s,t=>this.onResize(t,"end"),()=>null,()=>this.onEndResizing(),1)}removeResizeHandles(t){let e=t.querySelector('[part*="region-handle-left"]'),i=t.querySelector('[part*="region-handle-right"]');e&&t.removeChild(e),i&&t.removeChild(i)}initElement(){let t=this.start===this.end,e=0,i=100;this.channelIdx>=0&&this.channelIdx<this.numberOfChannels&&(e=(i=100/this.numberOfChannels)*this.channelIdx);let s=f("div",{style:{position:"absolute",top:`${e}%`,height:`${i}%`,backgroundColor:t?"none":this.color,borderLeft:t?"2px solid "+this.color:"none",borderRadius:"2px",boxSizing:"border-box",transition:"background-color 0.2s ease",cursor:this.drag?"grab":"default",pointerEvents:"all"}});return!t&&this.resize&&this.addResizeHandles(s),s}renderPosition(){let t=this.start/this.totalDuration,e=(this.totalDuration-this.end)/this.totalDuration;this.element.style.left=100*t+"%",this.element.style.right=100*e+"%"}toggleCursor(t){this.drag&&(this.element.style.cursor=t?"grabbing":"grab")}initMouseEvents(){let{element:t}=this;t&&(t.addEventListener("click",t=>this.emit("click",t)),t.addEventListener("mouseenter",t=>this.emit("over",t)),t.addEventListener("mouseleave",t=>this.emit("leave",t)),t.addEventListener("dblclick",t=>this.emit("dblclick",t)),t.addEventListener("pointerdown",()=>this.toggleCursor(!0)),t.addEventListener("pointerup",()=>this.toggleCursor(!1)),v(t,t=>this.onMove(t),()=>this.toggleCursor(!0),()=>{this.toggleCursor(!1),this.drag&&this.emit("update-end")}),this.contentEditable&&this.content&&(this.content.addEventListener("click",t=>this.onContentClick(t)),this.content.addEventListener("blur",()=>this.onContentBlur())))}_onUpdate(t,e){if(!this.element.parentElement)return;let{width:i}=this.element.parentElement.getBoundingClientRect(),s=t/i*this.totalDuration,n=e&&"start"!==e?this.start:this.start+s,r=e&&"end"!==e?this.end:this.end+s,o=r-n;n>=0&&r<=this.totalDuration&&n<=r&&o>=this.minLength&&o<=this.maxLength&&(this.start=n,this.end=r,this.renderPosition(),this.emit("update"))}onMove(t){this.drag&&this._onUpdate(t)}onResize(t,e){this.resize&&this._onUpdate(t,e)}onEndResizing(){this.resize&&this.emit("update-end")}onContentClick(t){t.stopPropagation(),t.target.focus(),this.emit("click",t)}onContentBlur(){this.emit("update-end")}_setTotalDuration(t){this.totalDuration=t,this.renderPosition()}play(){this.emit("play")}setContent(t){var e;if(null==(e=this.content)||e.remove(),t){if("string"==typeof t){let e=this.start===this.end;this.content=f("div",{style:{padding:`0.2em ${e?.2:.4}em`,display:"inline-block"},textContent:t})}else this.content=t;this.contentEditable&&(this.content.contentEditable="true"),this.content.setAttribute("part","region-content"),this.element.appendChild(this.content)}else this.content=void 0}setOptions(t){var e,i;if(t.color&&(this.color=t.color,this.element.style.backgroundColor=this.color),void 0!==t.drag&&(this.drag=t.drag,this.element.style.cursor=this.drag?"grab":"default"),void 0!==t.start||void 0!==t.end){let s=this.start===this.end;this.start=this.clampPosition(null!=(e=t.start)?e:this.start),this.end=this.clampPosition(null!=(i=t.end)?i:s?this.start:this.end),this.renderPosition(),this.setPart()}if(t.content&&this.setContent(t.content),t.id&&(this.id=t.id,this.setPart()),void 0!==t.resize&&t.resize!==this.resize){let e=this.start===this.end;this.resize=t.resize,this.resize&&!e?this.addResizeHandles(this.element):this.removeResizeHandles(this.element)}}remove(){this.emit("remove"),this.element.remove(),this.element=null}},y=class t extends m{constructor(t){super(t),this.regions=[],this.regionsContainer=this.initRegionsContainer()}static create(e){return new t(e)}onInit(){if(!this.wavesurfer)throw Error("WaveSurfer is not initialized");this.wavesurfer.getWrapper().appendChild(this.regionsContainer);let t=[];this.subscriptions.push(this.wavesurfer.on("timeupdate",e=>{let i=this.regions.filter(t=>t.start<=e&&(t.end===t.start?t.start+.05:t.end)>=e);
73i.forEach(e=>{t.includes(e)||this.emit("region-in",e)}),t.forEach(t=>{i.includes(t)||this.emit("region-out",t)}),t=i}))}initRegionsContainer(){return f("div",{style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",zIndex:"3",pointerEvents:"none"}})}getRegions(){return this.regions}avoidOverlapping(t){if(!t.content)return;let e=t.content,i=e.getBoundingClientRect(),s=this.regions.map(e=>{if(e===t||!e.content)return 0;let s=e.content.getBoundingClientRect();return i.left<s.left+s.width&&s.left<i.left+i.width?s.height:0}).reduce((t,e)=>t+e,0);e.style.marginTop=`${s}px`}adjustScroll(t){var e,i;let s=null==(i=null==(e=this.wavesurfer)?void 0:e.getWrapper())?void 0:i.parentElement;if(!s)return;let{clientWidth:n,scrollWidth:r}=s;if(r<=n)return;let o=s.getBoundingClientRect(),a=t.element.getBoundingClientRect(),l=a.left-o.left,h=a.right-o.left;l<0?s.scrollLeft+=l:h>n&&(s.scrollLeft+=h-n)}saveRegion(t){this.regionsContainer.appendChild(t.element),this.avoidOverlapping(t),this.regions.push(t);let e=[t.on("update",()=>{this.adjustScroll(t)}),t.on("update-end",()=>{this.avoidOverlapping(t),this.emit("region-updated",t)}),t.on("play",()=>{var e,i;null==(e=this.wavesurfer)||e.play(),null==(i=this.wavesurfer)||i.setTime(t.start)}),t.on("click",e=>{this.emit("region-clicked",t,e)}),t.on("dblclick",e=>{this.emit("region-double-clicked",t,e)}),t.once("remove",()=>{e.forEach(t=>t()),this.regions=this.regions.filter(e=>e!==t),this.emit("region-removed",t)})];this.subscriptions.push(...e),this.emit("region-created",t)}addRegion(t){var e,i;if(!this.wavesurfer)throw Error("WaveSurfer is not initialized");let s=this.wavesurfer.getDuration(),n=new g(t,s,null==(i=null==(e=this.wavesurfer)?void 0:e.getDecodedData())?void 0:i.numberOfChannels);return s?this.saveRegion(n):this.subscriptions.push(this.wavesurfer.once("ready",t=>{n._setTotalDuration(t),this.saveRegion(n)})),n}enableDragSelection(t,e=3){var i;let s=null==(i=this.wavesurfer)?void 0:i.getWrapper();if(!(s&&s instanceof HTMLElement))return()=>{};let n=null,r=0;return v(s,(t,e,i)=>{n&&n._onUpdate(t,i>r?"end":"start")},e=>{var i,s;if(r=e,!this.wavesurfer)return;let o=this.wavesurfer.getDuration(),a=null==(s=null==(i=this.wavesurfer)?void 0:i.getDecodedData())?void 0:s.numberOfChannels,{width:l}=this.wavesurfer.getWrapper().getBoundingClientRect();n=new g(Object.assign(Object.assign({},t),{start:e/l*o,end:(e+5)/l*o}),o,a),this.regionsContainer.appendChild(n.element)},()=>{n&&(this.saveRegion(n),n=null)},e)}clearRegions(){this.regions.forEach(t=>t.remove())}destroy(){this.clearRegions(),super.destroy(),this.regionsContainer.remove()}},b=class{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),null==i?void 0:i.once){let i=()=>{this.un(t,i),this.un(t,e)};return this.on(t,i),i}return()=>this.un(t,e)}un(t,e){var i;null==(i=this.listeners[t])||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(t=>t(...e))}},A=class extends b{constructor(t){super(),this.subscriptions=[],this.options=t}onInit(){}_init(t){this.wavesurfer=t,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(t=>t())}};function C(t,e,i){let s=function t(e,i){let s=i.xmlns?document.createElementNS(i.xmlns,e):document.createElement(e);for(let[e,n]of Object.entries(i))if("children"===e)for(let[e,n]of Object.entries(i))"string"==typeof n?s.appendChild(document.createTextNode(n)):s.appendChild(t(e,n));else"style"===e?Object.assign(s.style,n):"textContent"===e?s.textContent=n:s.setAttribute(e,n.toString());return s}(t,e||{});return null==i||i.appendChild(s),s}let w={height:20,formatTimeCallback:t=>t/60>1?`${Math.floor(t/60)}:${(t=Math.round(t%60))<10?"0":""}${t}`:""+Math.round(1e3*t)/1e3},x=class t extends A{constructor(t){super(t||{}),this.options=Object.assign({},w,t),this.timelineWrapper=this.initTimelineWrapper()}static create(e){return new t(e)}onInit(){var t;if(!this.wavesurfer)throw Error("WaveSurfer is not initialized");let e=this.wavesurfer.getWrapper();if(this.options.container instanceof HTMLElement)e=this.options.container;else if("string"==typeof this.options.container){let t=document.querySelector(this.options.container);if(!t)throw Error(`No Timeline container found matching ${this.options.container}`);e=t}this.options.insertPosition?(e.firstElementChild||e).insertAdjacentElement(this.options.insertPosition,this.timelineWrapper):e.appendChild(this.timelineWrapper),this.subscriptions.push(this.wavesurfer.on("redraw",()=>this.initTimeline())),((null==(t=this.wavesurfer)?void 0:t.getDuration())||this.options.duration)&&this.initTimeline()}destroy(){this.timelineWrapper.remove(),super.destroy()}initTimelineWrapper(){return C("div",{part:"timeline-wrapper",style:{pointerEvents:"none"}})}defaultTimeInterval(t){return t>=25?1:5*t>=25?5:15*t>=25?15:60*Math.ceil(.5/t)}defaultPrimaryLabelInterval(t){return t>=25?10:5*t>=25?6:4}defaultSecondaryLabelInterval(t){return t>=25?5:2}initTimeline(){var t,e,i,s,n,r,o;let a=null!=(i=null!=(e=null==(t=this.wavesurfer)?void 0:t.getDuration())?e:this.options.duration)?i:0,l=this.timelineWrapper.scrollWidth/a,h=null!=(s=this.options.timeInterval)?s:this.defaultTimeInterval(l),d=null!=(n=this.options.primaryLabelInterval)?n:this.defaultPrimaryLabelInterval(l),u=this.options.primaryLabelSpacing,c=null!=(r=this.options.secondaryLabelInterval)?r:this.defaultSecondaryLabelInterval(l),p=this.options.secondaryLabelSpacing,m="beforebegin"===this.options.insertPosition,v=C("div",{style:Object.assign({he
73ight:`${this.options.height}px`,overflow:"hidden",fontSize:this.options.height/2+"px",whiteSpace:"nowrap"},m?{position:"absolute",top:"0",left:"0",right:"0",zIndex:"2"}:{position:"relative"})});"string"==typeof this.options.style?v.setAttribute("style",v.getAttribute("style")+this.options.style):"object"==typeof this.options.style&&Object.assign(v.style,this.options.style);let f=C("div",{style:{width:"0",height:"50%",display:"flex",flexDirection:"column",justifyContent:m?"flex-start":"flex-end",top:m?"0":"auto",bottom:m?"auto":"0",overflow:"visible",borderLeft:"1px solid currentColor",opacity:`${null!=(o=this.options.secondaryLabelOpacity)?o:.25}`,position:"absolute",zIndex:"1"}});for(let t=0,e=0;t<a;t+=h,e++){let i=f.cloneNode(),s=Math.round(100*t)/100%d==0||u&&e%u==0,n=Math.round(100*t)/100%c==0||p&&e%p==0;(s||n)&&(i.style.height="100%",i.style.textIndent="3px",i.textContent=this.options.formatTimeCallback(t),s&&(i.style.opacity="1"));let r=s?"primary":n?"secondary":"tick";i.setAttribute("part",`timeline-notch timeline-notch-${r}`),i.style.left=t*l+"px",v.appendChild(i)}this.timelineWrapper.innerHTML="",this.timelineWrapper.appendChild(v),this.emit("ready")}};class E{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),null==i?void 0:i.once){let i=()=>{this.un(t,i),this.un(t,e)};return this.on(t,i),i}return()=>this.un(t,e)}un(t,e){var i;null==(i=this.listeners[t])||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(t=>t(...e))}}class P extends E{constructor(t){super(),this.subscriptions=[],this.options=t}onInit(){}_init(t){this.wavesurfer=t,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(t=>t())}}function k(t,e,i,s,n=3,r=0){if(!t)return()=>{};let o=()=>{},a=a=>{if(a.button!==r)return;a.preventDefault(),a.stopPropagation();let l=a.clientX,h=a.clientY,d=!1,u=s=>{s.preventDefault(),s.stopPropagation();let r=s.clientX,o=s.clientY,a=r-l,u=o-h;if(d||Math.abs(a)>n||Math.abs(u)>n){let{left:s,top:n}=t.getBoundingClientRect();d||(null==i||i(l-s,h-n),d=!0),e(a,u,r-s,o-n),l=r,h=o}},c=()=>{d&&(null==s||s()),o()},p=t=>{t.relatedTarget&&t.relatedTarget!==document.documentElement||c()},m=t=>{d&&(t.stopPropagation(),t.preventDefault())},v=t=>{d&&t.preventDefault()};document.addEventListener("pointermove",u),document.addEventListener("pointerup",c),document.addEventListener("pointerout",p),document.addEventListener("pointercancel",p),document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("click",m,{capture:!0}),o=()=>{document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",c),document.removeEventListener("pointerout",p),document.removeEventListener("pointercancel",p),document.removeEventListener("touchmove",v),setTimeout(()=>{document.removeEventListener("click",m,{capture:!0})},10)}};return t.addEventListener("pointerdown",a),()=>{o(),t.removeEventListener("pointerdown",a)}}function D(t,e,i){let s=function t(e,i){let s=i.xmlns?document.createElementNS(i.xmlns,e):document.createElement(e);for(let[e,n]of Object.entries(i))if("children"===e)for(let[e,n]of Object.entries(i))"string"==typeof n?s.appendChild(document.createTextNode(n)):s.appendChild(t(e,n));else"style"===e?Object.assign(s.style,n):"textContent"===e?s.textContent=n:s.setAttribute(e,n.toString());return s}(t,e||{});return null==i||i.appendChild(s),s}let L={points:[],lineWidth:4,lineColor:"rgba(0, 0, 255, 0.5)",dragPointSize:10,dragPointFill:"rgba(255, 255, 255, 0.8)",dragPointStroke:"rgba(255, 255, 255, 0.8)"};class S extends E{constructor(t,e){super(),this.options=t,this.polyPoints=new Map;let i=e.clientWidth,s=e.clientHeight,n=D("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:`0 0 ${i} ${s}`,preserveAspectRatio:"none",style:{position:"absolute",left:"0",top:"0",zIndex:"4"},part:"envelope"},e);this.svg=n;let r=D("polyline",{xmlns:"http://www.w3.org/2000/svg",points:`0,${s} ${i},${s}`,stroke:t.lineColor,"stroke-width":t.lineWidth,fill:"none",part:"polyline",style:t.dragLine?{cursor:"row-resize",pointerEvents:"stroke"}:{}},n);t.dragLine&&k(r,(t,e)=>{let{height:i}=n.viewBox.baseVal,{points:s}=r;for(let t=1;t<s.numberOfItems-1;t++){let n=s.getItem(t);n.y=Math.min(i,Math.max(0,n.y+e))}
73Array.from(n.querySelectorAll("ellipse")).forEach(t=>{let s=Math.min(i,Math.max(0,Number(t.getAttribute("cy"))+e));t.setAttribute("cy",s.toString())}),this.emit("line-move",e/i)}),n.addEventListener("dblclick",t=>{let e=n.getBoundingClientRect(),i=t.clientX-e.left,s=t.clientY-e.top;this.emit("point-create",i/e.width,s/e.height)});{let t,e=()=>clearTimeout(t);n.addEventListener("touchstart",i=>{1===i.touches.length?t=window.setTimeout(()=>{i.preventDefault();let t=n.getBoundingClientRect(),e=i.touches[0].clientX-t.left,s=i.touches[0].clientY-t.top;this.emit("point-create",e/t.width,s/t.height)},500):e()}),n.addEventListener("touchmove",e),n.addEventListener("touchend",e)}}makeDraggable(t,e){k(t,e,()=>t.style.cursor="grabbing",()=>t.style.cursor="grab",1)}createCircle(t,e){let i=this.options.dragPointSize/2;return D("ellipse",{xmlns:"http://www.w3.org/2000/svg",cx:t,cy:e,rx:i,ry:i,fill:this.options.dragPointFill,stroke:this.options.dragPointStroke,"stroke-width":"2",style:{cursor:"grab",pointerEvents:"all"},part:"envelope-circle"},this.svg)}removePolyPoint(t){let e=this.polyPoints.get(t);if(!e)return;let{polyPoint:i,circle:s}=e,{points:n}=this.svg.querySelector("polyline"),r=Array.from(n).findIndex(t=>t.x===i.x&&t.y===i.y);n.removeItem(r),s.remove(),this.polyPoints.delete(t)}addPolyPoint(t,e,i){let{svg:s}=this,{width:n,height:r}=s.viewBox.baseVal,o=t*n,a=this.options.dragPointSize/2,l=s.createSVGPoint();l.x=t*n,l.y=r-e*r;let h=this.createCircle(o,r-e*r),{points:d}=s.querySelector("polyline"),u=Array.from(d).findIndex(t=>t.x>=o);d.insertItemBefore(l,Math.max(u,1)),this.polyPoints.set(i,{polyPoint:l,circle:h}),this.makeDraggable(h,(t,e)=>{let s=l.x+t,o=l.y+e;if(s<-a||o<-a||s>n+a||o>r+a)return void this.emit("point-dragout",i);let u=Array.from(d).find(t=>t.x>l.x),c=Array.from(d).findLast(t=>t.x<l.x);u&&s>=u.x||c&&s<=c.x||(l.x=s,l.y=o,h.setAttribute("cx",s.toString()),h.setAttribute("cy",o.toString()),this.emit("point-move",i,s/n,o/r))})}update(){let{svg:t}=this,e=t.viewBox.baseVal.width/t.clientWidth,i=t.viewBox.baseVal.height/t.clientHeight;t.querySelectorAll("ellipse").forEach(t=>{let s=this.options.dragPointSize/2;t.setAttribute("rx",(s*e).toString()),t.setAttribute("ry",(s*i).toString())})}destroy(){this.polyPoints.clear(),this.svg.remove()}}class M extends P{constructor(t){super(t),this.polyline=null,this.throttleTimeout=null,this.volume=1,this.points=t.points||[],this.options=Object.assign({},L,t),this.options.lineColor=this.options.lineColor||L.lineColor,this.options.dragPointFill=this.options.dragPointFill||L.dragPointFill,this.options.dragPointStroke=this.options.dragPointStroke||L.dragPointStroke,this.options.dragPointSize=this.options.dragPointSize||L.dragPointSize}static create(t){return new M(t)}addPoint(t){var e;t.id||(t.id=Math.random().toString(36).slice(2));let i=this.points.findLastIndex(e=>e.time<t.time);this.points.splice(i+1,0,t),this.emitPoints();let s=null==(e=this.wavesurfer)?void 0:e.getDuration();s&&this.addPolyPoint(t,s)}removePoint(t){var e;let i=this.points.indexOf(t);i>-1&&(this.points.splice(i,1),null==(e=this.polyline)||e.removePolyPoint(t),this.emitPoints())}getPoints(){return this.points}setPoints(t){this.points.slice().forEach(t=>this.removePoint(t)),t.forEach(t=>this.addPoint(t))}destroy(){var t;null==(t=this.polyline)||t.destroy(),super.destroy()}getCurrentVolume(){return this.volume}setVolume(t){var e;this.volume=t,null==(e=this.wavesurfer)||e.setVolume(t)}onInit(){var t;if(!this.wavesurfer)throw Error("WaveSurfer is not initialized");let{options:e}=this;e.volume=null!=(t=e.volume)?t:this.wavesurfer.getVolume(),this.setVolume(e.volume),this.subscriptions.push(this.wavesurfer.on("decode",t=>{this.initPolyline(),this.points.forEach(e=>{this.addPolyPoint(e,t)})}),this.wavesurfer.on("redraw",()=>{var t;null==(t=this.polyline)||t.update()}),this.wavesurfer.on("timeupdate",t=>{this.onTimeUpdate(t)}))}emitPoints(){this.throttleTimeout&&clearTimeout(this.throttleTimeout),this.throttleTimeout=setTimeout(()=>{this.emit("points-change",this.points)},200)}initPolyline(){if(this.polyline&&this.polyline.destroy(),!this.wavesurfer)return;let t=this.wavesurfer.getWrapper();this.polyline=new S(this.options,t),this.subscriptions.push(this.polyline.on("point-move",(t,e,i)=>{var s;t.time=e*((null==(s=this.wavesurfer)?void 0:s.getDuration())||0),t.volume=1-i,this.emitPoints()}),this.polyline.on("point-dragout",t=>{this.removePoint(t)}),this.polyline.on("point-create",(t,e)=>{var i;this.addPoint({time:t*((null==(i=this.wavesurfer)?void 0:i.getDuration())||0),volume:1-e})}),this.polyline.on("line-move",t=>{var e;
73this.points.forEach(e=>{e.volume=Math.min(1,Math.max(0,e.volume-t))}),this.emitPoints(),this.onTimeUpdate((null==(e=this.wavesurfer)?void 0:e.getCurrentTime())||0)}))}addPolyPoint(t,e){var i;null==(i=this.polyline)||i.addPolyPoint(t.time/e,t.volume,t)}onTimeUpdate(t){if(!this.wavesurfer)return;let e=this.points.find(e=>e.time>t);e||(e={time:this.wavesurfer.getDuration()||0,volume:0});let i=this.points.findLast(e=>e.time<=t);i||(i={time:0,volume:0});let s=e.time-i.time,n=e.volume-i.volume,r=Math.round(100*Math.min(1,Math.max(0,i.volume+(t-i.time)*(n/s))))/100;r!==this.getCurrentVolume()&&(this.setVolume(r),this.emit("volume-change",r))}}class T{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),null==i?void 0:i.once){let i=()=>{this.un(t,i),this.un(t,e)};return this.on(t,i),i}return()=>this.un(t,e)}un(t,e){var i;null==(i=this.listeners[t])||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(t=>t(...e))}}class W{constructor(t=new AudioContext){this.bufferNode=null,this.listeners=new Map,this.autoplay=!1,this.playStartTime=0,this.playedDuration=0,this._src="",this._duration=0,this._muted=!1,this.buffer=null,this.paused=!0,this.crossOrigin=null,this.audioContext=t,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}addEventListener(t,e,i){if(this.listeners.has(t)||this.listeners.set(t,new Set),this.listeners.get(t)?.add(e),i?.once){let i=()=>{this.removeEventListener(t,i),this.removeEventListener(t,e)};this.addEventListener(t,i)}}removeEventListener(t,e){this.listeners.has(t)&&this.listeners.get(t)?.delete(e)}emitEvent(t){this.listeners.get(t)?.forEach(t=>t())}get src(){return this._src}set src(t){if(this._src=t,!t)return this.buffer=null,this._duration=0,void this.emitEvent("emptied");fetch(t).then(t=>t.arrayBuffer()).then(e=>this.src!==t?null:this.audioContext.decodeAudioData(e)).then(e=>{if(this.src!==t||!e)return null;this.buffer=e,this._duration=e.duration,this.emitEvent("loadedmetadata"),this.emitEvent("canplay"),this.autoplay&&this.play()})}getChannelData(){let t=this.buffer?.getChannelData(0);return t?[t]:void 0}async play(){if(!this.paused)return;this.paused=!1,this.bufferNode?.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.bufferNode.buffer=this.buffer,this.bufferNode.connect(this.gainNode);let t=this.playedDuration>0?this.playedDuration:0,e=this.playedDuration>0?this.audioContext.currentTime:this.audioContext.currentTime-this.playedDuration;this.bufferNode.start(e,t),this.playStartTime=this.audioContext.currentTime,this.emitEvent("play")}pause(){this.paused||(this.paused=!0,this.bufferNode?.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime,this.emitEvent("pause"))}async setSinkId(t){return this.audioContext.setSinkId(t)}get playbackRate(){return this.bufferNode?.playbackRate.value??1}set playbackRate(t){this.bufferNode&&(this.bufferNode.playbackRate.value=t)}get currentTime(){return this.paused?this.playedDuration:this.playedDuration+this.audioContext.currentTime-this.playStartTime}set currentTime(t){this.emitEvent("seeking"),this.paused?this.playedDuration=t:(this.pause(),this.playedDuration=t,this.play()),this.emitEvent("timeupdate")}get duration(){return this._duration}set duration(t){this._duration=t}get volume(){return this.gainNode.gain.value}set volume(t){this.gainNode.gain.value=t,this.emitEvent("volumechange")}get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}}let R={id:"placeholder",url:"data:audio/mp3;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2ZjU2LjM2LjEwMAAAAAAAAAAAAAAA//OEAAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAEAAABIADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV6urq6urq6urq6urq6urq6urq6urq6urq6v////////////////////////////////8AAAAATGF2YzU2LjQxAAAAAAAAAAAAAAAAJAAAAAAAAAAAASDs90hvAAAAAAAAAAAAAAAAAAAA//MUZAAAAAGkAAAAAAAAA0gAAAAATEFN//MUZAMAAAGkAAAAAAAAA0gAAAAARTMu//MUZAYAAAGkAAAAAAAAA0gAAAAAOTku//MUZAkAAAGkAAAAAAAAA0gAAAAANVVV",peaks:[[0]],startPosition:0,options:{height:0}};class O extends T{static create(t,e){return new O(t,e)}constructor(t,e){super(),this.audios=[],this.wavesurfers=[],this.envelopes=[],this.durations=[],this.currentTime=0,this.maxDuration=0,this.frameRequest=null,this.subscriptions=[],this.audioContext=new AudioContext,this.tracks=t.concat({...R}).map(t=>({...t,startPosition:t.startPosition||0,peaks:t.peaks||(t.url||t.options?.media?void 0:[new Float32Array])})),this.options=e,this.rendering=function(t,e){let i=0,s=[],n=0,r=document.createElement("div");r.setAttribute("style","width: 100%; overflow-x: scroll; overflow-y: hidden; user-select: none;");let o=document.createElement("div");o.style.position="relative",r.appendChild(o),e.container.appendChild(r);let a=document.createElement("div");a.setAttribute("style","height: 100%; position: absolute; z-index: 10; top: 0; left: 0; pointer-events: none;"),a.style.backgroundColor=e.cursorColor||"#000",a.style.width=`${e.cursorWidth??1}px`,o.appendChild(a);let{clientWidth:l}=o,h=t.map((t,i)=>{let s=document.createElement("div");if(s.style.position="relative",t.id===R.id&&(s.style.display="none"),e.trackBorderColor&&i>0){let t=document.createElement("div");t.setAttribute("style",`width: 100%; height: 2px; background-color: ${e.trackBorderColor}`),o.appendChild(t)}
73if(e.trackBackground&&(t.url||t.options?.media)&&(s.style.background=e.trackBackground),!t.url&&!t.options?.media){let t=document.createElement("div");t.setAttribute("style",`position: absolute; z-index: 10; left: 10px; top: 10px; right: 10px; bottom: 10px; border: 2px dashed ${e.trackBorderColor};`),t.addEventListener("dragover",i=>{i.preventDefault(),t.style.background=e.trackBackground||""}),t.addEventListener("dragleave",e=>{e.preventDefault(),t.style.background=""}),t.addEventListener("drop",e=>{e.preventDefault(),t.style.background=""}),s.appendChild(t)}return o.appendChild(s),s}),d=()=>{h.forEach((e,n)=>{let r=t[n].startPosition*i;s[n]&&(e.style.width=s[n]*i+"px"),e.style.transform=`translateX(${r}px)`})};return{containers:h,setContainerOffsets:d,setMainWidth:(t,r)=>{s=t,n=(i=Math.max(e.minPxPerSec||0,l/r))*r,o.style.width=`${n}px`,d()},updateCursor:(t,e)=>{a.style.left=`${Math.min(100,100*t)}%`;let{clientWidth:i,scrollLeft:s}=r,o=i/2,l=t*n;(l>s+(e?o:i)||l<s)&&(r.scrollLeft=l-o)},addClickHandler:t=>{o.addEventListener("click",e=>{let i=o.getBoundingClientRect();t((e.clientX-i.left)/o.offsetWidth)})},destroy:()=>{r.remove()},addDropHandler:e=>{t.forEach((t,i)=>{if(!t.url&&!t.options?.media){let s=h[i].querySelector("div");s?.addEventListener("drop",i=>{i.preventDefault(),e(t.id)})}})}}}(this.tracks,this.options),this.rendering.addDropHandler(t=>{this.emit("drop",{id:t})}),this.initAllAudios().then(i=>{this.initDurations(i),this.initAllWavesurfers(),this.rendering.containers.forEach((i,s)=>{if(t[s]?.draggable){let t=z(i,t=>this.onDrag(s,t),e.rightButtonDrag);this.wavesurfers[s].once("destroy",t)}}),this.rendering.addClickHandler(t=>{this.seekTo(t)}),this.emit("canplay")})}initDurations(t){this.durations=t,this.maxDuration=this.tracks.reduce((e,i,s)=>Math.max(e,i.startPosition+t[s]),0);let e=this.audios.findIndex(t=>t.src===R.url),i=this.audios[e];i&&(i.duration=this.maxDuration,this.durations[e]=this.maxDuration),this.rendering.setMainWidth(t,this.maxDuration)}initAudio(t){let e=/iPhone|iPad/.test(navigator.userAgent),i=t.id===R.id,s=t.options?.media||(e||i?new W(this.audioContext):new Audio);return s.crossOrigin="anonymous",t.url&&(s.src=t.url),void 0!==t.volume&&(s.volume=t.volume),new Promise(t=>{if(!s.src)return t(s);s.addEventListener("loadedmetadata",()=>t(s),{once:!0})})}async initAllAudios(){return this.audios=await Promise.all(this.tracks.map(t=>this.initAudio(t))),this.audios.map(t=>t.src?t.duration:0)}initWavesurfer(t,e){let i=this.rendering.containers[e],s=c.create({...t.options,container:i,minPxPerSec:0,media:this.audios[e],peaks:t.peaks||(this.audios[e]instanceof W?this.audios[e].getChannelData():void 0),duration:this.durations[e],cursorColor:"transparent",cursorWidth:0,interact:!1,hideScrollbar:!0});t.id===R.id&&s.registerPlugin(x.create({container:this.rendering.containers[0].parentElement,...this.options.timelineOptions}));let n=y.create();if(s.registerPlugin(n),this.subscriptions.push(s.once("decode",()=>{if(null!=t.startCue||null!=t.endCue){let{startCue:i=0,endCue:s=this.durations[e]}=t,r=n.addRegion({start:0,end:i,color:"rgba(0, 0, 0, 0.7)",drag:!1}),o=n.addRegion({start:s,end:this.durations[e],color:"rgba(0, 0, 0, 0.7)",drag:!1});r.element.firstElementChild?.remove(),o.element.lastChild?.remove(),this.subscriptions.push(r.on("update-end",()=>{t.startCue=r.end,this.emit("start-cue-change",{id:t.id,startCue:t.startCue})}),o.on("update-end",()=>{t.endCue=o.start,this.emit("end-cue-change",{id:t.id,endCue:t.endCue})}))}if(t.intro){let e=n.addRegion({start:0,end:t.intro.endTime,content:t.intro.label,color:this.options.trackBackground,drag:!1});if(e.element.querySelector('[part*="region-handle-left"]')?.remove(),e.element.parentElement.style.mixBlendMode="plus-lighter",t.intro.color){let i=e.element.querySelector('[part*="region-handle-right"]');i&&(i.style.borderColor=t.intro.color)}this.subscriptions.push(e.on("update-end",()=>{this.emit("intro-end-change",{id:t.id,endTime:e.end})}))}t.markers&&t.markers.forEach(t=>{n.addRegion({start:t.time,content:t.label,color:t.color,resize:!1})})})),t.envelope){let i=s.registerPlugin(M.create({...this.options.envelopeOptions,volume:t.volume}));Array.isArray(t.envelope)&&i.setPoints(t.envelope),t.fadeInEnd&&(t.startCue&&i.addPoint({time:t.startCue||0,volume:0,id:"startCue"}),i.addPoint({time:t.fadeInEnd||0,volume:t.volume??1,id:"fadeInEnd"})),t.fadeOutStart&&(i.addPoint({time:t.fadeOutStart,volume:t.volume??1,id:"fadeOutStart"}),t.endCue&&i.addPoint({time:t.endCue,volume:0,id:"endCue"})),this.envelopes[e]=i;let n=(t,e)=>{let s=i.getPoints().map(i=>i.id===t?{...i,time:e}:i);i.setPoints(s)},r=t.fadeInEnd,o=t.fadeOutStart;this.subscriptions.push(i.on("volume-change",e=>
73{this.emit("volume-change",{id:t.id,volume:e})}),i.on("points-change",e=>{let i=e.find(t=>"fadeInEnd"===t.id);i&&i.time!==r&&(this.emit("fade-in-change",{id:t.id,fadeInEnd:i.time}),r=i.time);let s=e.find(t=>"fadeOutStart"===t.id);s&&s.time!==o&&(this.emit("fade-out-change",{id:t.id,fadeOutStart:s.time}),o=s.time),this.emit("envelope-points-change",{id:t.id,points:e})}),this.on("start-cue-change",({id:e,startCue:i})=>{e===t.id&&n("startCue",i)}),this.on("end-cue-change",({id:e,endCue:i})=>{e===t.id&&n("endCue",i)}),s.on("decode",()=>{i.setVolume(t.volume??1)}))}return s}initAllWavesurfers(){let t=this.tracks.map((t,e)=>this.initWavesurfer(t,e));this.wavesurfers=t}updatePosition(t,e=!1){let i=!this.isPlaying();t!==this.currentTime&&(this.currentTime=t,this.rendering.updateCursor(t/this.maxDuration,e)),this.tracks.forEach((e,s)=>{let n=this.audios[s],r=this.durations[s],o=t-e.startPosition;Math.abs(n.currentTime-o)>.3&&(n.currentTime=Math.max(0,o)),i||o<0||o>r?n.paused||n.pause():i||n.paused&&n.play();let a=o<(e.startCue||0)||o>(e.endCue||1/0);a!=n.muted&&(n.muted=a)})}onDrag(t,e){let i=this.tracks[t];if(!i.draggable)return;let s=i.startPosition+e*this.maxDuration,n=this.options.dragBounds?0:-this.durations[t]-1,r=this.maxDuration-this.durations[t];s>=n&&s<=r&&(i.startPosition=s,this.initDurations(this.durations),this.rendering.setContainerOffsets(),this.updatePosition(this.currentTime),this.emit("start-position-change",{id:i.id,startPosition:s}))}findCurrentTracks(){let t=[];if(this.tracks.forEach((e,i)=>{(e.url||e.options?.media)&&this.currentTime>=e.startPosition&&this.currentTime<e.startPosition+this.durations[i]&&t.push(i)}),0===t.length){let e=Math.min(...this.tracks.filter(t=>t.url).map(t=>t.startPosition));t.push(this.tracks.findIndex(t=>t.startPosition===e))}return t}startSync(){let t=()=>{let e=this.audios.reduce((t,e,i)=>(e.paused||(t=Math.max(t,e.currentTime+this.tracks[i].startPosition)),t),this.currentTime);e>this.currentTime&&this.updatePosition(e,!0),this.frameRequest=requestAnimationFrame(t)};t()}play(){this.audioContext&&"suspended"===this.audioContext.state&&this.audioContext.resume(),this.startSync(),this.findCurrentTracks().forEach(t=>{this.audios[t]?.play()})}pause(){this.audios.forEach(t=>t.pause())}isPlaying(){return this.audios.some(t=>!t.paused)}getCurrentTime(){return this.currentTime}seekTo(t){let e=this.isPlaying();this.updatePosition(t*this.maxDuration),e&&this.play()}setTime(t){let e=this.isPlaying();this.updatePosition(t),e&&this.play()}zoom(t){this.options.minPxPerSec=t,this.wavesurfers.forEach((e,i)=>this.tracks[i].url&&e.zoom(t)),this.rendering.setMainWidth(this.durations,this.maxDuration),this.rendering.setContainerOffsets()}addTrack(t){let e=this.tracks.findIndex(e=>e.id===t.id);-1!==e&&(this.tracks[e]=t,this.initAudio(t).then(i=>{this.audios[e]=i,this.durations[e]=i.duration,this.initDurations(this.durations);let s=this.rendering.containers[e];s.innerHTML="",this.wavesurfers[e].destroy(),this.wavesurfers[e]=this.initWavesurfer(t,e);let n=z(s,t=>this.onDrag(e,t),this.options.rightButtonDrag);this.wavesurfers[e].once("destroy",n),this.emit("canplay")}))}destroy(){this.frameRequest&&cancelAnimationFrame(this.frameRequest),this.rendering.destroy(),this.audios.forEach(t=>{t.pause(),t.src=""}),this.wavesurfers.forEach(t=>{t.destroy()})}setSinkId(t){return Promise.all(this.wavesurfers.map(e=>e.setSinkId(t)))}setTrackVolume(t,e){(this.envelopes[t]||this.wavesurfers[t])?.setVolume(e)}setTrackStartPosition(t,e){let i=this.tracks[t];if(!i.draggable)return;let s=this.options.dragBounds?0:-this.durations[t]-1,n=this.maxDuration-this.durations[t];e>=s&&e<=n&&(i.startPosition=e,this.initDurations(this.durations),this.rendering.setContainerOffsets(),this.updatePosition(this.currentTime),this.emit("start-position-change",{id:i.id,startPosition:e}))}getEnvelopePoints(t){return this.envelopes[t]?.getPoints()}setEnvelopePoints(t,e){this.envelopes[t]?.setPoints(e)}}function z(t,e,i=!1){let s=0,n=function(t,e,i,s,n=3,r=0){if(!t)return()=>{};let o=()=>{},a=a=>{if(a.button!==r)return;a.preventDefault(),a.stopPropagation();let l=a.clientX,h=a.clientY,d=!1,u=s=>{s.preventDefault(),s.stopPropagation();let r=s.clientX,o=s.clientY,a=r-l,u=o-h;if(d||Math.abs(a)>n||Math.abs(u)>n){let{left:s,top:n}=t.getBoundingClientRect();d||(null==i||i(l-s,h-n),d=!0),e(a,u,r-s,o-n),l=r,h=o}},c=()=>{d&&(null==s||s()),o()},p=t=>{t.relatedTarget&&t.relatedTarget!==document.documentElement||c()},m=t=>{d&&(t.stopPropagation(),t.preventDefault())},v=t=>{d&&t.preventDefault()};document.addEventListener("pointermove",u),document.addEventListener("pointerup",c),document.addEventListener("pointerout",p),document.addEventListener("pointercancel",p),document.addEventListener("touchmove",v,{passive:!1}),document.addEventListener("click",m,{capture:!0}),o=()=>{document.removeEventListener("pointermove",u),document.removeEventListener("pointerup",c),document.removeEventListener("pointerout",p),document.removeEventListener("pointercancel",p),document.removeEventListener("touchmove",v),setTimeout(()=>{document.removeEventListener("click",m,{capture:!0})},10)}};return t.addEventListener("pointerdown",a),()=>{o(),t.removeEventListener("pointerdown",a)}}(t,t=>{e(t/s)},()=>{t.style.cursor="grabbing",s=t.parentElement?.offsetWidth??0},()=>{t.style.cursor="grab"},5,2*!!i),r=t=>t.preventDefault();return t.style.cursor="grab",i&&t.addEventListener("contextmenu",r),()=>{t.style.cursor="",n(),i&&t.removeEventListener("contextmenu",r)}}},5973:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("filled","circle-check-filled","CircleCheckFilled",[["path",{d:"M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z",key:"svg-0"}]])},8229:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("outline","arrow-left","ArrowLeft",[["path",{d:"M5 12l14 0",key:"svg-0"}],["path",{d:"M5 12l6 6",key:"svg-1"}],["path",{d:"M5 12l6 -6",key:"svg-2"}]])}
73,14496:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("outline","message","Message",[["path",{d:"M8 9h8",key:"svg-0"}],["path",{d:"M8 13h6",key:"svg-1"}],["path",{d:"M18 4a3 3 0 0 1 3 3v8a3 3 0 0 1 -3 3h-5l-5 3v-3h-2a3 3 0 0 1 -3 -3v-8a3 3 0 0 1 3 -3h12",key:"svg-2"}]])},33086:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("outline","file-text","FileText",[["path",{d:"M14 3v4a1 1 0 0 0 1 1h4",key:"svg-0"}],["path",{d:"M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2",key:"svg-1"}],["path",{d:"M9 9l1 0",key:"svg-2"}],["path",{d:"M9 13l6 0",key:"svg-3"}],["path",{d:"M9 17l6 0",key:"svg-4"}]])},40383:(t,e,i)=>{i.d(e,{p:()=>v});var s=i(37876);i(14232);var n=i(47915),r=i(46249),o=i(1609),a=i(99545),l=i(88791),h=i(87242),d=i(80385),u=i(22078),c={root:"m_7f854edf"};let p={position:{bottom:0,right:0},zIndex:(0,n.I)("modal"),withinPortal:!0},m=(0,o.V)((t,{zIndex:e,position:i})=>({root:{"--affix-z-index":e?.toString(),"--affix-top":(0,r.GY)(i?.top),"--affix-left":(0,r.GY)(i?.left),"--affix-bottom":(0,r.GY)(i?.bottom),"--affix-right":(0,r.GY)(i?.right)}})),v=(0,d.P9)((t,e)=>{let i=(0,a.Y)("Affix",p,t),{classNames:n,className:r,style:o,styles:d,unstyled:v,vars:f,portalProps:g,zIndex:y,withinPortal:b,position:A,attributes:C,...w}=i,x=(0,l.I)({name:"Affix",classes:c,props:i,className:r,style:o,classNames:n,styles:d,unstyled:v,attributes:C,vars:f,varsResolver:m});return(0,s.jsx)(u.r,{...g,withinPortal:b,children:(0,s.jsx)(h.a,{ref:e,...x("root"),...w})})});v.classes=c,v.displayName="@mantine/core/Affix"},63988:(t,e,i)=>{i.d(e,{A:()=>h});var s=i(15039),n=i.n(s),r=i(14232),o=i(11464),a=i(37876);let l=r.forwardRef((t,e)=>{let{bsPrefix:i,className:s,as:r="div",...l}=t,h=(0,o.oU)(i,"row"),d=(0,o.gy)(),u=(0,o.Jm)(),c=`${h}-cols`,p=[];return d.forEach(t=>{let e,i=l[t];delete l[t],null!=i&&"object"==typeof i?{cols:e}=i:e=i;let s=t!==u?`-${t}`:"";null!=e&&p.push(`${c}${s}-${e}`)}),(0,a.jsx)(r,{ref:e,...l,className:n()(s,h,...p)})});l.displayName="Row";let h=l},64285:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("outline","plus","Plus",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M5 12l14 0",key:"svg-1"}]])},70647:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("filled","alert-circle-filled","AlertCircleFilled",[["path",{d:"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm.01 13l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -8a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z",key:"svg-0"}]])},78238:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("outline","wallet","Wallet",[["path",{d:"M17 8v-3a1 1 0 0 0 -1 -1h-10a2 2 0 0 0 0 4h12a1 1 0 0 1 1 1v3m0 4v3a1 1 0 0 1 -1 1h-12a2 2 0 0 1 -2 -2v-12",key:"svg-0"}
73],["path",{d:"M20 12v4h-4a2 2 0 0 1 0 -4h4",key:"svg-1"}]])},88693:(t,e,i)=>{i.d(e,{l:()=>f});var s=i(37876);i(14232);var n=i(46249),r=i(1609),o=i(99545),a=i(88791),l=i(80385),h=i(40383),d=i(17457),u=i(89704),c=i(46185),p={root:"m_e2125a27",closeButton:"m_5abab665"};let m={shadow:"md",p:"md",withBorder:!1,transitionProps:{transition:"pop-top-right",duration:200},position:{bottom:30,right:30}},v=(0,r.V)((t,{size:e})=>({root:{"--dialog-size":(0,n.YC)(e,"dialog-size")}})),f=(0,l.P9)((t,e)=>{let i=(0,o.Y)("Dialog",m,t),{classNames:n,className:r,style:l,styles:f,unstyled:g,vars:y,zIndex:b,position:A,keepMounted:C,opened:w,transitionProps:x,withCloseButton:E,withinPortal:P,children:k,onClose:D,portalProps:L,attributes:S,...M}=i,T=(0,a.I)({name:"Dialog",classes:p,props:i,className:r,style:l,classNames:n,styles:f,unstyled:g,attributes:S,vars:y,varsResolver:v});return(0,s.jsx)(h.p,{zIndex:b,position:A,ref:e,withinPortal:P,portalProps:L,unstyled:g,children:(0,s.jsx)(c.e,{keepMounted:C,mounted:w,...x,children:t=>(0,s.jsxs)(u.t,{unstyled:g,...T("root",{style:t}),...M,children:[E&&(0,s.jsx)(d.J,{onClick:D,unstyled:g,...T("closeButton")}),k]})})})});f.classes=p,f.displayName="@mantine/core/Dialog"},89345:(t,e,i)=>{i.d(e,{A:()=>s});let s=(0,i(78963).A)("outline","arrow-up","ArrowUp",[["path",{d:"M12 5l0 14",key:"svg-0"}],["path",{d:"M18 11l-6 -6",key:"svg-1"}],["path",{d:"M6 11l6 -6",key:"svg-2"}]])},94749:(t,e,i)=>{i.d(e,{A:()=>d});class s{constructor(){this.listeners={}}on(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),null==i?void 0:i.once){let i=(...s)=>{this.un(t,i),e(...s)};return this.listeners[t].add(i),()=>this.un(t,i)}return this.listeners[t].add(e),()=>this.un(t,e)}un(t,e){var i;null==(i=this.listeners[t])||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(t=>t(...e))}}class n extends s{constructor(t){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=t}onInit(){}_init(t){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=t,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(t=>t()),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}}function r(t,e,i){let s=function t(e,i){let s=i.xmlns?document.createElementNS(i.xmlns,e):document.createElement(e);for(let[e,n]of Object.entries(i))if("children"===e&&n)for(let[e,i]of Object.entries(n))i instanceof Node?s.appendChild(i):"string"==typeof i?s.appendChild(document.createTextNode(i)):s.appendChild(t(e,i));else"style"===e?Object.assign(s.style,n):"textContent"===e?s.textContent=n:s.setAttribute(e,n.toString());return s}(t,e||{});return null==i||i.appendChild(s),s}function o(t,e){let i,s=()=>{i&&(i(),i=void 0),i=t()},n=e.map(t=>t.subscribe(s));return s(),()=>{i&&(i(),i=void 0),n.forEach(t=>t())}}function a(t,e){let i=function(t){let e=null,i=new Set;return{get value(){return e},set(t){Object.is(e,t)||(e=t,i.forEach(t=>t(e)))},update(t){this.set(t(e))},subscribe:t=>(i.add(t),()=>i.delete(t))}}(0),s=t=>{i.set(t)};return t.addEventListener(e,s),i._cleanup=()=>{t.removeEventListener(e,s)},i}function l(t){let e=t._cleanup;"function"==typeof e&&e()}let h={lineWidth:1,labelSize:11,labelPreferLeft:!1,formatTimeCallback:t=>`${Math.floor(t/60)}:${`0${Math.floor(t)%60}`.slice(-2)}`};class d extends n{constructor(t){super(t||{}),this.lastPointerPosition=null,this.isPointerOverWaveform=!1,this.streamCleanups=[],this.options=Object.assign({},h,t),this.wrapper=r("div",{part:"hover"}),this.label=r("span",{part:"hover-label"},this.wrapper)}static create(t){return new d(t)}addUnits(t){return`${t}${"number"==typeof t?"px":""}`}onInit(){if(!this.wavesurfer)throw Error("WaveSurfer is not initialized");let t=this.wavesurfer.options,e=this.options.lineColor||t.cursorColor||t.progressColor;Object.assign(this.wrapper.style,{position:"absolute",zIndex:10,left:0,top:0,height:"100%",pointerEvents:"none",borderLeft:`${this.addUnits(this.options.lineWidth)} solid ${e}`,opacity:"0",transition:"opacity .1s ease-in"}),Object.assign(this.label.style,{display:"block",backgroundColor:this.options.labelBackgroun
73d,color:this.options.labelColor,fontSize:`${this.addUnits(this.options.labelSize)}`,transition:"transform .1s ease-in",padding:"2px 3px"});let i=this.wavesurfer.getWrapper();i.appendChild(this.wrapper);let s=this.wavesurfer.getState();this.streamCleanups.forEach(t=>t()),this.streamCleanups=[];let n=a(i,"pointermove"),r=a(i,"pointerleave");this.streamCleanups.push(()=>l(n),()=>l(r)),this.subscriptions.push(o(()=>{n.value&&(this.isPointerOverWaveform=!0)},[n])),this.subscriptions.push(o(()=>{let t=n.value;if(!t||!this.wavesurfer||!this.isPointerOverWaveform)return;this.lastPointerPosition={clientX:t.clientX,clientY:t.clientY};let e=this.wavesurfer.getWrapper().getBoundingClientRect(),{width:i}=e,s=t.clientX-e.left,r=Math.min(1,Math.max(0,s/i)),o=Math.min(i-this.options.lineWidth-1,s);this.wrapper.style.transform=`translateX(${o}px)`,this.wrapper.style.opacity="1";let a=this.wavesurfer.getDuration();this.label.textContent=this.options.formatTimeCallback(a*r);let l=this.label.offsetWidth,h=this.options.labelPreferLeft?o-l>0:o+l>i;this.label.style.transform=h?`translateX(-${l+this.options.lineWidth}px)`:"",this.emit("hover",r)},[n,s.duration])),this.subscriptions.push(o(()=>{r.value&&(this.wrapper.style.opacity="0",this.isPointerOverWaveform=!1,this.lastPointerPosition=null,this.wrapper.addEventListener("transitionend",()=>{this.isPointerOverWaveform||(this.wrapper.style.transform="")},{once:!0}))},[r]));let h=()=>{if(this.lastPointerPosition&&this.wavesurfer){let t=this.wavesurfer.getWrapper().getBoundingClientRect(),{width:e}=t,i=this.lastPointerPosition.clientX-t.left,s=Math.min(1,Math.max(0,i/e)),n=Math.min(e-this.options.lineWidth-1,i);this.wrapper.style.transform=`translateX(${n}px)`;let r=this.wavesurfer.getDuration();this.label.textContent=this.options.formatTimeCallback(r*s);let o=this.label.offsetWidth,a=this.options.labelPreferLeft?n-o>0:n+o>e;this.label.style.transform=a?`translateX(-${o+this.options.lineWidth}px)`:""}};this.subscriptions.push(this.wavesurfer.on("zoom",h)),this.subscriptions.push(this.wavesurfer.on("scroll",h))}destroy(){this.streamCleanups.forEach(t=>t()),this.streamCleanups=[],super.destroy(),this.wrapper.remove()}}},98472:(t,e,i)=>{i.d(e,{A:()=>u});var s=i(15039),n=i.n(s),r=i(14232),o=i(11464),a=i(70571),l=i(37876);function h(t,e){let{min:i,now:s,max:r,label:o,visuallyHidden:a,striped:h,animated:d,className:u,style:c,variant:p,bsPrefix:m,...v}=t;return(0,l.jsx)("div",{ref:e,...v,role:"progressbar",className:n()(u,`${m}-bar`,{[`bg-${p}`]:p,[`${m}-bar-animated`]:d,[`${m}-bar-striped`]:d||h}),style:{width:`${Math.round((s-i)/(r-i)*1e5)/1e3}%`,...c},"aria-valuenow":s,"aria-valuemin":i,"aria-valuemax":r,children:a?(0,l.jsx)("span",{className:"visually-hidden",children:o}):o})}let d=r.forwardRef((t,e)=>{let{isChild:i=!1,...s}=t,d={min:0,max:100,animated:!1,visuallyHidden:!1,striped:!1,...s};if(d.bsPrefix=(0,o.oU)(d.bsPrefix,"progress"),i)return h(d,e);let{min:u,now:c,max:p,label:m,visuallyHidden:v,striped:f,animated:g,bsPrefix:y,variant:b,className:A,children:C,...w}=d;return(0,l.jsx)("div",{ref:e,...w,className:n()(A,y),children:C?(0,a.Tj)(C,t=>(0,r.cloneElement)(t,{isChild:!0})):h({min:u,now:c,max:p,label:m,visuallyHidden:v,striped:f,animated:g,bsPrefix:y,variant:b},e)})});d.displayName="ProgressBar";let u=d}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.