1const U="https://api.pramborsgroup.com",d={audioUrl:"https://stream.rcs.revma.com/h77wwp48kxcwv",nowPlayingUrl:`${U}/api/v1/now-playing`,pollIntervalMs:6e4,idlePollIntervalMs:3e5},a=new Audio;a.crossOrigin="anonymous";a.preload="none";let m="idle";const P=()=>{document.documentElement.dataset.radioState=m,document.getElementById("np-play")?.setAttribute("aria-busy",m==="loading"?"true":"false")},r=e=>{m!==e&&(m=e,P(),document.dispatchEvent(new CustomEvent("radio:state",{detail:{state:e}})))};let p="",v="",u="",x=!1,h="",n=null;const b=e=>{e&&(e.removeAttribute("data-scrolling"),requestAnimationFrame(()=>{const t=e.parentElement;if(!t)return;const i=e.scrollWidth-t.clientWidth;i>4&&(e.style.setProperty("--scroll-dist",`-${i+16}px`),e.setAttribute("data-scrolling","true"))}))},A=()=>{x=!0,n?.skeleton?.classList.add("hidden"),n?.data?.classList.remove("hidden"),n?.coverSkeleton?.classList.add("hidden")},I=(e,t={})=>{const i=window.gtag;typeof i=="function"&&i("event",e,t)},L=()=>({song:p||void 0,artist:v||void 0}),s=e=>{n?.playIcon?.classList.toggle("hidden",e),n?.pauseIcon?.classList.toggle("hidden",!e),n?.play?.setAttribute("aria-label",e?"Pause":"Play"),n?.play?.setAttribute("aria-pressed",e?"true":"false")},y=e=>{n?.muteOnIcon?.classList.toggle("hidden",e),n?.muteOffIcon?.classList.toggle("hidden",!e),n?.mute?.setAttribute("aria-label",e?"Unmute":"Mute"),n?.mute?.setAttribute("aria-pressed",e?"true":"false"),n?.volume?.setAttribute("data-muted",e?"true":"false")},g=()=>{const e=n?.volume;e&&e.style.setProperty("--vol",`${e.value}%`)};let k=0;const R=()=>{if(!a.paused)return;const e=performance.now();if(e-k<5e3)return;k=e;const t=document.createElement("link");t.rel="preconnect",t.href=new URL(d.audioUrl).origin,t.crossOrigin="anonymous",document.head.append(t),setTimeout(()=>t.remove(),1e4)};document.addEventListener("pointerdown",e=>{e.target?.closest?.("[data-hero-listen], #np-play")&&R()},{passive:!0});const c=()=>{a.paused?(r("loading"),a.src||(a.src=d.audioUrl),a.load(),a.play().then(()=>{s(!0),I("radio_play",L())}).catch(()=>{s(!1),r("idle")})):(a.pause(),s(!1),I("radio_pause",L()))},T=()=>{a.muted||a.volume===0?(a.muted=!1,a.volume===0&&(a.volume=.5,n?.volume&&(n.volume.value="50",g()))):a.muted=!0,y(a.muted)},_=()=>{const e=n?.volume;if(!e)return;const t=Number(e.value)/100;a.volume=t,g();const i=t===0;a.muted!==i&&(a.muted=i,y(i))};let l=null;const w=()=>"mediaSession"in navigator&&l!==null&&navigator.mediaSession.metadata===l,E=()=>{!("mediaSession"in navigator)||a.paused||l&&!w()||(l=new MediaMetadata({title:p||"Prambors",artist:v||"Indonesia No. 1 Hit Music Station",album:"Prambors",artwork:u?[{src:u}]:[]}),navigator.mediaSession.metadata=l)},q=()=>{if(!("mediaSession"in navigator))return;l=null,E();const e=(t,i)=>{try{navigator.mediaSession.setActionHandler(t,i)}catch{}};e("play",()=>{a.paused&&c()}),e("pause",()=>{a.paused||c()}),e("stop",()=>{a.paused||c()}),e("seekbackward",null),e("seekforward",null),e("previoustrack",null),e("nexttrack",null),e("enterpictureinpicture",null)};a.addEventListener("play",()=>
1{s(!0),window.dispatchEvent(new CustomEvent("prambors:live-pause")),q()});a.addEventListener("pause",()=>{s(!1),r("idle"),w()&&(navigator.mediaSession.playbackState="paused")});window.addEventListener("prambors:radio-pause",()=>{a.paused||a.pause()});a.addEventListener("playing",()=>{r("playing"),w()&&(navigator.mediaSession.playbackState="playing")});a.addEventListener("waiting",()=>{a.paused||r("loading")});a.addEventListener("stalled",()=>{a.paused||r("loading")});a.addEventListener("error",()=>{s(!1),r("idle")});const M=e=>{if(!e)return;u=e,E();const t=n?.cover;t&&(t.onload=()=>t.classList.remove("opacity-0"),t.src=e)},C=async e=>{if(e.text)try{const t=await fetch(`https://itunes.apple.com/search?limit=1&media=music&term=${encodeURIComponent(e.text)}`);if(!t.ok)return;const o=(await t.json())?.results?.[0]?.artworkUrl100?.replace("100x100","512x512");M(o||e.art)}catch{M(e.art)}},B=()=>{n&&(n.title&&(n.title.textContent=p||"Prambors"),n.artists&&(n.artists.textContent=v||"Indonesia No. 1 Hit Music Station"),u&&n.cover&&(n.cover.onload=()=>n?.cover?.classList.remove("opacity-0"),n.cover.src=u),b(n.title),b(n.artists))},O=e=>{e&&(p=e.title||"Prambors",v=e.artist||"",E(),C(e),B())},N=e=>{let t=null;const i=()=>a.paused?d.idlePollIntervalMs:d.pollIntervalMs,o=()=>{t=window.setTimeout(()=>{e(),o()},i())},f=()=>{t===null&&(e(),o())},S=()=>{t!==null&&(clearTimeout(t),t=null)};document.visibilityState==="visible"&&f(),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?f():S()}),a.addEventListener("playing",()=>{document.visibilityState==="visible"&&(S(),f())})},W=async()=>{try{const e=await fetch(d.nowPlayingUrl,{cache:"no-store"});if(!e.ok)return;const t=await e.json();if(A(),!t.text||t.text===h)return;h=t.text,O({text:t.text,title:t.title||t.text,artist:t.artist||""})}catch{}};N(W);const $=()=>{P();const e=document.querySelector("[data-np-root]");if(!e){n=null;return}const t=document.getElementById("np-play"),i=document.getElementById("np-mute");n={root:e,title:document.getElementById("np-title"),artists:document.getElementById("np-artists"),cover:document.getElementById("np-cover"),skeleton:document.getElementById("np-skeleton"),data:document.getElementById("np-data"),coverSkeleton:document.getElementById("np-cover-skeleton"),play:t,mute:i,volume:document.getElementById("np-volume"),playIcon:t?.querySelector("[data-play-icon]")??null,pauseIcon:t?.querySelector("[data-pause-icon]")??null,muteOnIcon:i?.querySelector("[data-mute-on]")??null,muteOffIcon:i?.querySelector("[data-mute-off]")??null};const o=e;o.__npWired||(o.__npWired=!0,t?.addEventListener("click",c),i?.addEventListener("click",T),n.volume?.addEventListener("input",_)),n.volume&&(n.volume.value=String(Math.round(a.volume*100))),g(),s(!a.paused),y(a.muted),x&&(A(),B())};document.addEventListener("astro:page-load",$);
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.