/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/picobel@3.4.0/build/picobel.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
var Y=Object.defineProperty;var Z=(e,t)=>{for(var r in t)Y(e,r,{get:t[r],enumerable:!0})};var g=e=>{if(!Number.isFinite(e))return"0:00";let t=Math.floor(e/3600),r=Math.floor(e%3600/60).toFixed(0).toString(),o=Math.floor(e%3600%60).toFixed(0).toString().padStart(2,"0"),s=`${r}:${o}`;return t>0&&(s=`${t}:${r.padStart(2,"0")}:${o}`),s},A=e=>e.split(/[?#]/)[0].replace(/^.*[\\/]/,""),T=e=>{let t=A(e),r=t.lastIndexOf(".");return r>0?t.slice(r+1):""},E=e=>{let t=A(e),r=t.lastIndexOf(".");return r>0?t.slice(0,r):t};var $=e=>[...e.getElementsByTagName("audio")].map((o,s)=>Object.assign(o,{key:s})),P=(e,t,r)=>[...`picobel loading picobel--index-${e} ${t}`.trim().split(" "),r],C=e=>e.map((t,r)=>(t.key=r,t.mute=!1,t.tmpVolume=1,t)),M=e=>{let t=e.currentSrc,r=T(t),o=E(t),s=e.title&&e.title!==""?e.title:`${o}.${r}`,n=e.dataset?.artist?e.dataset.artist:!1;return{url:t,fileType:r,fileName:o,title:s,artist:n}};var y={};Z(y,{artist:()=>re,duration:()=>se,mute:()=>ie,playPause:()=>ee,progress:()=>ne,timer:()=>oe,title:()=>te,volume:()=>le});var _=({namespace:e="picobel",min:t=0,max:r=100,value:o=0,step:s=!1,index:n=0,label:l="slider"})=>{let a=i("div",e),p=i("div",`${e}-slider__wrapper`),m=i("div",`${e}-slider__replacement`),J=i("div",`${e}-slider__background`);m.appendChild(J);let Q=i("div",`${e}-slider__indicator`);m.appendChild(Q);let X=i("div",`${e}-slider__playhead`);m.appendChild(X),p.appendChild(m);let L=`${e}-slider__range--${n}`,u=i("input",`${e}-slider__range`);u.setAttribute("id",L),u.setAttribute("type","range"),u.setAttribute("min",t.toString()),u.setAttribute("max",r.toString()),u.setAttribute("value",o.toString()),s&&u.setAttribute("step",s.toString()),p.appendChild(u);let d=i("label",`${e}-label`);return typeof l=="string"?d.innerHTML=l:d.appendChild(l),d.setAttribute("for",L),a.appendChild(d),a.appendChild(p),a};var ee=e=>{let t=i("button",`${e}__play-pause`);t.setAttribute("type","button");let r=i("span",`${e}__play-pause__text`);return r.innerHTML="Play",t.appendChild(r),t},te=(e,t)=>{let r=i("span",`${e}__title`);return r.innerHTML="File "+(t+1),r},re=e=>i("span",`${e}__artist`),oe=e=>{let t=i("span",`${e}__timer`);return t.innerHTML="0:00",t},se=e=>{let t=i("span",`${e}__duration`);return t.innerHTML="-:--",t},ne=(e,t)=>{let r=i("span",`${e}__progress-label-inner`);return r.innerHTML="Progress",_({namespace:`${e}__progress`,min:0,max:100,value:0,index:t,label:r})},ie=e=>{let t=i("button",`${e}__mute`);return t.setAttribute("type","button"),t.innerHTML="Mute",t},le=(e,t)=>{let r=i("span",`${e}__volume-label-inner`),o=i("span",`${e}__volume-label-key`);o.innerHTML="Volume ",r.appendChild(o);let s=i("span",`${e}__volume-label-value`);return s.innerHTML="10",r.appendChild(s),_({namespace:`${e}__volume`,min:0,max:1,value:1,step:.1,index:t,label:r})};var i=(e="div",t="")=>{let r=document.createElement(e);return r.className=t,r},f=({key:e,container:t,components:r,namespace:o})=>(r.forEach(s=>{if(typeof s=="string"&&y[s]){let n=y[s](o,e);t.appendChild(n);return}if(Array.isArray(s)&&s.length){let n=s.flat().join("-"),l=i("div",`${o}__wrapper--${n}`),a=f({key:e,container:l,components:s,namespace:o});t.appendChild(a)}}),t);var S=e=>{let t=g(e.duration);return e.elements.durationDisplay&&(e.elements.durationDisplay.innerHTML=t),e},N=(e,t)=>(e.artist&&t.artistDisplay&&(t.artistDisplay.innerHTML=e.artist),t.titleDisplay&&(t.titleDisplay.innerHTML=e.title),t),H=(e,t,r)=>e.map(s=>{let n=i("div"),l=P(s.key,s.className,r);n.classList.add(...l),n.setAttribute("data-picobel-index",s.key.toString());let a=i("div",`${r}__loader`);return n.appendChild(a),f({key:s.key,container:n,components:t,namespace:r})}),k=(e,t,r)=>e.map((o,s)=>{let n=t[s];return o.elements={wrapper:n,playPauseButton:n.querySelector(`.${r}__play-pause`),playPauseButtonText:n.querySelector(`.${r}__play-pause__text`),muteButton:n.querySelector(`.${r}__mute`),playTimer:n.querySelector(`.${r}__timer`),durationDisplay:n.querySelector(`.${r}__duration`),titleDisplay:n.querySelector(`.${r}__title`),artistDisplay:n.querySelector(`.${r}__artist`),progressWrapper:n.querySelector(`.${r}__progress-slider__replacement`),progressRange:n.querySelector(`.${r}__progress-slider__range`),progressPlayhead:n.querySelector(`.${r}__progress-slider__playhead`),progressBackground:n.querySelector(`.${r}__progress-slider__background`),progressIndicator:n.querySelector(`.${r}__progress-slider__indicator`),volumeWrapper:n.querySelector(`.${r}__volume-slider__replacement`),volumeControl:n.querySelector(`.${r}__volume-slider__range`),volumeDisplay:n.querySelector(`.${r}__volume-label-value`),volumeIndicator:n.querySelector(`.${r}__volume-slider__indicator`),volumePlayhead:n.querySelector(`.${r}__volume-slider__playhead`)},o});var ae=e=>e.forEach(t=>{w(t)}),F=(e,t)=>{e.paused?(ae(t),ue(e)):w(e)},ue=e=>{e.play();let t=e.elements.playPauseButton,r=e.elements.playPauseButtonText;t.classList.remove("paused"),r.innerHTML="Pause",t.classList.add("playing")},w=e=>{e.pause();let t=e.elements.playPauseButton,r=e.elements.playPauseButtonText;t.classList.remove("playing"),r.innerHTML="Play",t.classList.add("paused")},pe=e=>{e.pause();let t=e.elements.playPauseButton,r=e.elements.playPauseButtonText;t.classList.remove("playing"),r.innerHTML="Play"},B=e=>q(e.target),q=e=>{let t=e.currentTime,r=e.duration;if(e.elements.playTimer){let s=g(t);e.elements.playTimer.innerHTML=s}t>=r&&pe(e);let o=(t/r*100).toFixed(2);e.elements.progressRange&&(e.elements.progressRange.value=o,e.elements.progressIndicator.style.width=o+"%",e.elements.progressPlayhead.style.left=o+"%")},D=e=>{S(e),c(e)},c=e=>{e.elements.wrapper.classList.remove("loading");let t=M(e);N(t,e.elements)},O=e=>{let t=e.elements.wrapper;t.classList.add("error"),t.classList.remove("loading"),t.innerHTML="";let r=i("div","error");r.appendChild(i("span","error__icon"));let o=i("span","error__message");o.innerHTML="Error loading audio file",r.appendChild(o),t.appendChild(r)},I=(e,t)=>{let s=(t.duration*(e.target.value/100)).toFixed(2);t.currentTime=s,q(t)},x=(e,t)=>e.elements.progressWrapper.classList.toggle("focus",t),G=(e,t)=>{t.mute=!1,b(t,Number(e.target.value)),W(t)},v=(e,t)=>e.elements.volumeWrapper.classList.toggle("focus",t),b=(e,t)=>{let r=t*10,o=(t*100).toFixed(2);e.volume=t,e.elements.volumeDisplay&&(e.elements.volumeDisplay.innerHTML=r),e.elements.volumeControl&&(e.elements.volumeControl.value=t),e.elements.volumeIndicator&&(e.elements.volumeIndicator.style.width=o+"%"),e.elements.volumePlayhead&&(e.elements.volumePlayhead.style.left=o+"%")},R=e=>{e.mute=!e.mute,me(e)},me=e=>{e.mute?(e.tmpVolume=e.volume,b(e,0)):b(e,e.tmpVolume>0?e.tmpVolume:1),W(e)},W=e=>{let t=e.elements.muteButton;t&&(t.classList.toggle("muted",e.mute),t.classList.toggle("unmuted",!e.mute),t.innerHTML=e.mute?"Unmute":"Mute")},ce=(e,t)=>{let r=e.duration,o=(t/r*100).toFixed(2);e.elements.progressBackground&&(e.elements.progressBackground.style.width=o+"%")},V=e=>{if(e.buffered.length>0){let t=e.buffered.end(e.buffered.length-1);ce(e,t)}};var h=new WeakMap,U=e=>{h.get(e)?.abort(),h.delete(e)},j=e=>e.map(t=>{let r=new AbortController;h.set(t,r);let{signal:o}=r;return t.addEventListener("progress",()=>V(t),{signal:o}),t.addEventListener("timeupdate",B,{signal:o}),t.addEventListener("canplaythrough",()=>D(t),{signal:o}),t.addEventListener("loadedmetadata",()=>c(t),{signal:o}),t.addEventListener("error",()=>O(t),{signal:o}),t.elements?.playPauseButton?.addEventListener("click",()=>F(t,e),{signal:o}),t.elements?.progressRange?.addEventListener("input",s=>I(s,t),{signal:o}),t.elements?.progressRange?.addEventListener("focus",()=>x(t,!0),{signal:o}),t.elements?.progressRange?.addEventListener("blur",()=>x(t,!1),{signal:o}),t.elements?.volumeControl?.addEventListener("input",s=>G(s,t),{signal:o}),t.elements?.volumeControl?.addEventListener("focus",()=>v(t,!0),{signal:o}),t.elements?.volumeControl?.addEventListener("blur",()=>v(t,!1),{signal:o}),t.elements?.muteButton?.addEventListener("click",()=>R(t),{signal:o}),t});var ge=(e="default")=>{switch(e){case"itunes":return["playPause",[["title","artist"],["timer","progress","duration"]]];case"default":default:return["playPause",["mute","volume"],["title","artist"],["timer","progress","duration"]]}},K=(e={})=>{let t={context:document,theme:"default",preload:!1},{components:r,...o}=e,s=ge(e.theme),n={...t,components:s,...o};return r&&Array.isArray(r)&&(n.components=r),n};var z=(e={})=>{let t=K(e),r={audioNodes:[],theme:t.theme,components:t.components},o=(l,a)=>{l.map((p,m)=>{p.parentNode.replaceChild(a[m],p)})};r.audioNodes=$(t.context),r.audioNodes=C(r.audioNodes);let s=H(r.audioNodes,r.components,r.theme);return o(r.audioNodes,s),r.audioNodes=k(r.audioNodes,s,r.theme),r.audioNodes=j(r.audioNodes),r.audioNodes.forEach(l=>{l.readyState>=1&&c(l)}),{state:r,destroy:()=>{r.audioNodes.forEach(l=>{l.pause(),U(l);let a=l.elements?.wrapper;a?.parentNode&&a.parentNode.replaceChild(l,a),delete l.elements}),r.audioNodes=[]}}};var Ge=z;export{Ge as default};
