1import{_ as S}from"./BCY-6_NJ.js";import{_ as p}from"./ODSM__n2.js";import{m as A}from"./rCF9y2lz.js";import{E as k,L as n,Y as f,F as T,Z as V,M as u,u as M,l,bI as B,bP as F,bb as G,w as x,N as I,a6 as U,a7 as D,T as y,p as m}from"./CdF3t0oV.js";import{_ as R}from"./ZZtwZd9s.js";import{_ as z}from"./CCNV--eR.js";import{a as H}from"./BEbVkMZM.js";import{w as J}from"./D92X5zYB.js";const P={class:"grid grid-cols-2 gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5"},Q=k({__name:"MediaGrid",props:{type:{},items:{}},setup(e){const i=l(()=>A(e.type));return(g,_)=>{const a=p;return n(),f("div",P,[(n(!0),f(T,null,V(e.items,(o,r)=>(n(),u(a,{key:o.id,item:o,variant:M(i),eager:r===0},null,8,["item","variant","eager"]))),128))])}}}),W=Object.assign(Q,{__name:"MediaGrid"}),X=k({inheritAttrs:!1,__name:"MediaCatalog",props:{type:{},title:{default:""},query:{default:""},genre:{},category:{},country:{},countryCode:{},language:{},author:{},limit:{default:25}},async setup(e){let i,g;const _=l(()=>`/api/${e.type}/`),a=m([]),o=m(1),r=m(!0),s=m(),d=m(),h=l(()=>{const t={query:e.query,limit:e.limit,genre:e.genre,category:e.category,country:e.country,countryCode:e.countryCode,language:e.language,author:e.author,page:s.value?void 0:o.value,cursor:s.value};return Object.fromEntries(Object.entries(t).filter(([q,c])=>c!=null&&c!==""))}),{data:w,status:b,refresh:$}=([i,g]=B(()=>F(l(()=>`${e.type}-${JSON.stringify(h.value)}`),()=>$fetch(_.value,{headers:G(),params:h.value}),"$jg3FQ5EXUU")),i=await i,g(),i),v=l(()=>b.value==="pending"),j=l(()=>b.value==="error"),C=l(()=>e.type==="audiobooks"?{title:"Audiobook catalog unavailable",message:"We could not load LibriVox audiobooks right now. Try again in a moment."}:{title:"Couldn't load results",message:"Something went wrong loading this list. Check your connection and try again."});return x(()=>[e.query,e.genre,e.category,e.country,e.countryCode,e.language,e.author],()=>{o.value=1,a.value=[],r.value=!0,s.value=void 0,d.value=void 0}),x(w,t=>{t&&(t?.data.length?(a.value=o.value===1&&!s.value?t.data:[...a.value,...t.data],d.value="nextCursor"in t?t.nextCursor:void 0,r.value="hasMore"in t&&t.hasMore!==void 0?t.hasMore:a.value.length<t.total):r.value=!1)},{immediate:!0}),J(document,()=>{v.value||!r.value||!a.value.length||(d.value?s.value=d.value:o.value+=1)},{distance:100,interval:500}),(t,q)=>{const c=S,E=W,O=R,L=z,N=H;return n(),f("div",null,[e.title?(n(),u(c,{key:0,class:"mb-4"},{default:I(()=>[U(D(e.title),1)]),_:1})):y("",!0),a.value.length?(n(),u(E,{key:1,type:e.type,items:a.value},null,8,["type","items"])):j.value?(n(),u(O,{key:2,class:"mt-4",title:C.value.title,message:C.value.message,retry:()=>M($)()},null,8,["title","message","retry"])):v.value?y("",!0):(n(),u(L,{key:3})),v.value?(n(),u(N,{key:4,class:"mx-auto mt-4 block animate-spin",name:"mingcute:loading-3-fill",size:"48",role:"status","aria-label":"Loading results"})):y("",!0)])}}}),le=Object.assign(X,{__name:"MediaCatalog"});export{le as _};
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.