@serifpersia/dango 3.4.6 → 3.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/client/dist/assets/{AnimeCard-BVdH0EeW.js → AnimeCard-Dnps_uQ4.js} +1 -1
- package/client/dist/assets/{AnimeInfo-Dw2Nop6Q.js → AnimeInfo-pfps3FSr.js} +1 -1
- package/client/dist/assets/{AnimeInfoPage-Cw-Tq3YX.js → AnimeInfoPage-CN99oEZn.js} +2 -2
- package/client/dist/assets/Asmr-D1KuQwQy.css +1 -0
- package/client/dist/assets/Asmr-D_IQfb8x.js +2 -0
- package/client/dist/assets/Asmr.module-CdWlioTY.js +1 -0
- package/client/dist/assets/{AsmrResetProgressModal-CYjpcYpb.js → AsmrResetProgressModal-BYtWVQA9.js} +1 -1
- package/client/dist/assets/{AvSyncCalibrator-D0FYSwiz.css → AvSyncCalibrator-gEONBv5a.css} +1 -1
- package/client/dist/assets/AvSyncCalibrator-jI6WLW45.js +10 -0
- package/client/dist/assets/Home-CpaYOxPA.js +1 -0
- package/client/dist/assets/{Insights-DDWry-t1.js → Insights-07y8ViuK.js} +1 -1
- package/client/dist/assets/{LibraryListPage-CV8Z9JlO.js → LibraryListPage-DW0HqYwj.js} +1 -1
- package/client/dist/assets/ListeningList-NIRGPFnw.js +1 -0
- package/client/dist/assets/Manga-CqAceKxR.css +1 -0
- package/client/dist/assets/Manga-c2X095B3.js +1 -0
- package/client/dist/assets/Manga.module-depGEacJ.js +1 -0
- package/client/dist/assets/MangaInfoPage-3Ah2UkzA.js +1 -0
- package/client/dist/assets/MangaReadPage-DpLMkSK1.js +1 -0
- package/client/dist/assets/{MangaResetProgressModal-DyhQYBDy.js → MangaResetProgressModal-CXyMR31_.js} +1 -1
- package/client/dist/assets/Mature-Ii7NKE5X.js +1 -0
- package/client/dist/assets/{MediaCard-BcLjlpfR.js → MediaCard-DcB-RhSF.js} +1 -1
- package/client/dist/assets/Music-CeiL8cZv.js +1 -0
- package/client/dist/assets/OptionListMenu-B3xlVT-D.js +1 -0
- package/client/dist/assets/Player-CF7briPT.js +56 -0
- package/client/dist/assets/PlayerSettings-g4xFrRiD.js +1 -0
- package/client/dist/assets/{QueueOptionsButton-ClVTpH8J.js → QueueOptionsButton-B3cSHa0L.js} +1 -1
- package/client/dist/assets/{QueueRail-DeJKVRs5.js → QueueRail-wmxRrTaD.js} +1 -1
- package/client/dist/assets/Radio-DdGONwsq.js +1 -0
- package/client/dist/assets/ReadingList-BZtJHLAG.js +1 -0
- package/client/dist/assets/{ResetProgressModal-C6ukct_c.js → ResetProgressModal-CzJaHmde.js} +1 -1
- package/client/dist/assets/{Search-DjjKA_Wu.js → Search-CUHWC7IZ.js} +1 -1
- package/client/dist/assets/{Settings-DQt_S5Qw.js → Settings-Bxqc5fmz.js} +1 -1
- package/client/dist/assets/{SkeletonGrid-nx2HEi4P.js → SkeletonGrid-BnRGuRMg.js} +1 -1
- package/client/dist/assets/{Trackers-BcGzeqj2.js → Trackers-m2fBLuJo.js} +1 -1
- package/client/dist/assets/Tv-C7mRP4gg.js +4 -0
- package/client/dist/assets/{TvInfo-CUd1agFy.js → TvInfo-D8zdqjdN.js} +1 -1
- package/client/dist/assets/{TvPopup-CJeu3tgc.js → TvPopup-_GPNroa1.js} +1 -1
- package/client/dist/assets/{TvSearch-BIypjbU3.js → TvSearch-CiFB0G_Y.js} +1 -1
- package/client/dist/assets/{TvWatchlist-DZrBdiqZ.js → TvWatchlist-6tIsBVyA.js} +1 -1
- package/client/dist/assets/{Watchlist-Dw8cPe0n.js → Watchlist-YyxXLuno.js} +1 -1
- package/client/dist/assets/{hls-B3_1VuDP.js → hls-DpOQmcQm.js} +1 -1
- package/client/dist/assets/index-Dyiy_9L6.js +178 -0
- package/client/dist/assets/page-DRvjODkg.css +1 -0
- package/client/dist/assets/page.module-C1MlZzf3.js +1 -0
- package/client/dist/assets/{useAnimeInfoData-_iOLEAa8.js → useAnimeInfoData-DJrFWjlu.js} +1 -1
- package/client/dist/assets/{useAsmr-Blk4v41t.js → useAsmr-XJn2_7ol.js} +1 -1
- package/client/dist/assets/useAsmrPopup-DmZ3Np3r.js +1 -0
- package/client/dist/assets/{useMangaLibrary-B60at6ni.js → useMangaLibrary-COua_Bkn.js} +1 -1
- package/client/dist/assets/useMangaPopup-o6xoB0uh.js +1 -0
- package/client/dist/assets/usePopup-DS9jMzp6.js +1 -0
- package/client/dist/assets/useProviders-DIy3z1fe.js +1 -0
- package/client/dist/assets/{useTv-WJCDL5_5.js → useTv-Y_cF_10L.js} +1 -1
- package/client/dist/assets/{useTvLibrary-Fgn5i9rJ.js → useTvLibrary-DpqGf6Bp.js} +1 -1
- package/client/dist/index.html +1 -1
- package/package.json +2 -2
- package/server/package.json +1 -1
- package/client/dist/assets/Asmr-BrjzzyOi.js +0 -2
- package/client/dist/assets/Asmr-Cq2ua6Zk.css +0 -1
- package/client/dist/assets/Asmr.module-ChUXDZKx.js +0 -1
- package/client/dist/assets/AvSyncCalibrator-BuHurVgo.js +0 -10
- package/client/dist/assets/Home-KdnP7sNM.js +0 -1
- package/client/dist/assets/ListeningList-DSMbMZT7.js +0 -1
- package/client/dist/assets/Manga-Dp_-l1Pw.css +0 -1
- package/client/dist/assets/Manga-J6XoqEKq.js +0 -1
- package/client/dist/assets/Manga.module-BcfOdsNP.js +0 -1
- package/client/dist/assets/MangaInfoPage-N7TxsN5u.js +0 -1
- package/client/dist/assets/MangaReadPage-D_VzSNWq.js +0 -1
- package/client/dist/assets/Mature-Db53R-LR.js +0 -1
- package/client/dist/assets/Music-DjxQjJOl.js +0 -1
- package/client/dist/assets/OptionListMenu-DngTgHxH.js +0 -1
- package/client/dist/assets/Player-Be_7Ne5p.js +0 -56
- package/client/dist/assets/PlayerSettings-D47ItGDR.js +0 -1
- package/client/dist/assets/Radio-DU0ma3GA.js +0 -1
- package/client/dist/assets/ReadingList-qXW7Dk5z.js +0 -1
- package/client/dist/assets/Tv-COvyHdeJ.js +0 -4
- package/client/dist/assets/index-gMxawd-E.js +0 -178
- package/client/dist/assets/useAsmrPopup-D9SQIgZa.js +0 -1
- package/client/dist/assets/useMangaPopup-DEfGjWSu.js +0 -1
- package/client/dist/assets/useProviders-Ca0bZWt7.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as k}from"./vendor-core-DfaOB3Rn.js";import{b as y,u as l,a as d,e as F}from"./vendor-query-BBT5_sHx.js";import{h as n,z as a,t as v}from"./index-
|
|
1
|
+
import{T as k}from"./vendor-core-DfaOB3Rn.js";import{b as y,u as l,a as d,e as F}from"./vendor-query-BBT5_sHx.js";import{h as n,z as a,t as v}from"./index-Dyiy_9L6.js";function P(e){return String(e||"").trim().toUpperCase()}function M(e){return P(e.id||e._id||"")}function N(e){return!!e.isAdult}const D=["Listening","Completed","On-Hold","Dropped","Planned"],E=e=>P(e),G=(e="All",s=1,r=24)=>{const t=n();return y(t.asmrLibrary.list.queryOptions({status:e,page:s,limit:r}))},O=()=>{const e=n();return y({...e.asmrLibrary.ids.queryOptions(),staleTime:1e3*60})},H=e=>{const s=n();return y({...s.asmrLibrary.check.queryOptions({id:e||""}),enabled:!!e,staleTime:1e3*60})},U=(e=24)=>{const s=n();return y(s.asmrProgress.continueListening.queryOptions({limit:e}))},W=e=>{const s=n();return y({...s.asmrProgress.getByWork.queryOptions({workId:e||""}),enabled:!!e})},T=()=>{const e=n(),s=l();return d({mutationFn:async r=>{const{silent:t,...m}=r;return v.asmrLibrary.add.mutate(m)},onSuccess:(r,t)=>{t.silent||a.success("Added to listening list"),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries(e.asmrLibrary.pathFilter())},onError:r=>{a.error(`Failed to add: ${r.message}`)}})},_=()=>{const e=n(),s=l();return d(e.asmrLibrary.remove.mutationOptions({onSuccess:()=>{a.success("Removed from listening list"),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())},onError:r=>{a.error(`Failed to remove: ${r.message}`)}}))},x=()=>{const e=n(),s=l();return d(e.asmrLibrary.setStatus.mutationOptions({onSuccess:()=>{a.success("Status updated"),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())},onError:r=>{a.error(`Failed to update status: ${r.message}`)}}))},z=()=>{const e=n(),s=l();return d(e.asmrProgress.save.mutationOptions({onSuccess:(r,t)=>{s.invalidateQueries({queryKey:["asmr-progress",t.workId]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())}}))},j=()=>{const e=n(),s=l();return d(e.asmrProgress.remove.mutationOptions({onSuccess:()=>{a.success("Progress reset"),s.invalidateQueries({queryKey:["asmr-progress"]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())},onError:r=>{a.error(`Failed to reset progress: ${r.message}`)}}))},Y=()=>{const e=n(),s=l();return d(e.asmrLibrary.batchStatus.mutationOptions({onSuccess:r=>{a.success(`Status updated for ${r.updated??0} items`),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())},onError:r=>{a.error(`Failed to update statuses: ${r.message}`)}}))},J=()=>{const e=n(),s=l();return d(e.asmrLibrary.removeMany.mutationOptions({onSuccess:r=>{const t=r.removed??0;a.success(`Removed ${t} ${t===1?"item":"items"} from listening list`),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())},onError:r=>{a.error(`Failed to remove: ${r.message}`)}}))},V=()=>{const e=n(),s=l();return d(e.asmrProgress.removeMany.mutationOptions({onSuccess:r=>{const t=r.removed??0;a.success(`Reset progress for ${t} ${t===1?"item":"items"}`),s.invalidateQueries({queryKey:["asmr-progress"]}),s.invalidateQueries({queryKey:["asmr-continue-listening"]}),s.invalidateQueries({queryKey:["asmr-library"]}),s.invalidateQueries(e.asmrLibrary.pathFilter()),s.invalidateQueries(e.asmrProgress.pathFilter())},onError:r=>{a.error(`Failed to reset progress: ${r.message}`)}}))},X=()=>{const e=T(),s=_(),{data:r}=O(),t=k(()=>new Set(r?.ids||[]),[r]);return{toggle:i=>{const o=E(i.rjCode);t.has(o)?s.mutate({id:o}):e.mutate({...i,thumbnail:i.thumbnail||""})},bookmarkedIds:t,pending:e.isPending||s.isPending}},h=300*1e3,A=15,Z=(e,s,r,t)=>{const m=s+1,i=F({queries:Array.from({length:m},(u,w)=>{const L=w+1;return{queryKey:["asmrBrowse",e,L,r,t],queryFn:()=>{const K=e.trim();return v.asmr.browse.query({q:K||void 0,page:L,sort:r&&r!=="latest"?r:void 0,rating:t||void 0})},staleTime:h}})}),o=i.flatMap(u=>u.data?.shows??[]),q=o.slice((s-1)*A,s*A),p=i[i.length-1]?.data,b=!!(p&&(p.hasNext||o.length>s*A)),f=i.some(u=>u.isLoading),c=i.some(u=>u.isFetching),Q=i.some(u=>u.isError);return{data:{shows:q,hasNext:b},isLoading:f,isError:Q,isFetching:c}},ee=e=>y({queryKey:["asmrWork",e],queryFn:()=>v.asmr.work.query({rj:e}),enabled:!!e,staleTime:h,refetchOnMount:"always"}),C=15,g=6;function B(e){if(e.isAdult||!e.thumbnail)return!1;const s=(e.rating||"").toLowerCase();return s===""||s==="sfw"}function S(e,s){const r=new Set,t=[];for(const m of e)for(const i of m){if(t.length>=s)return t;const o=i.id||i._id;!o||r.has(o)||(r.add(o),B(i)&&t.push(i))}return t}const se=(e=!0)=>{const s=F({queries:Array.from({length:C},(c,Q)=>{const u=Q+1;return{queryKey:["asmrBrowse","",u,"popular_month",""],queryFn:()=>v.asmr.browse.query({page:u,sort:"popular_month"}),staleTime:h,enabled:e,retry:1}})}),r=s.map(c=>c.data?.shows??[]),t=S(r,g),m=s.every(c=>c.isFetched),i=e&&m&&t.length<g,o=y({queryKey:["asmrBrowse","",1,"popular","sfw"],queryFn:()=>v.asmr.browse.query({page:1,sort:"popular",rating:"sfw"}),staleTime:h,enabled:i,retry:1}),q=o.data?.shows??[],p=t.length>=g?t.slice(0,g):S([t,q],g),b=e&&(s.some(c=>c.isLoading)||i&&o.isLoading),f=e&&m&&p.length===0&&s.some(c=>c.isError);return{data:p,isLoading:b,isError:f}};export{D as A,M as a,se as b,ee as c,H as d,X as e,W as f,P as g,z as h,T as i,Z as j,E as k,N as l,G as m,_ as n,x as o,Y as p,J as q,V as r,j as s,U as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e,S as g,L as m}from"./vendor-core-DfaOB3Rn.js";import{I as a}from"./vendor-icons-DrybRNxP.js";import{c as y}from"./useAsmr-XJn2_7ol.js";import{p as s,a as k}from"./MediaCard-DcB-RhSF.js";import{a as L}from"./Asmr.module-CdWlioTY.js";import{u as f}from"./usePopup-DS9jMzp6.js";const P=({data:i,anchorRect:d,bookmarked:n,onToggleBookmark:p,onMouseEnter:h,onMouseLeave:u,onRequestClose:N})=>{const{data:c,isLoading:v}=y(i.rjCode||null),r=c?.tracks.length??0,l=r>0,t=!v;return e(k,{anchorRect:d,onMouseEnter:h,onMouseLeave:u,onRequestClose:N,children:[e("div",{className:s.header,children:[i.thumbnail&&e("img",{src:i.thumbnail,alt:i.title,loading:"lazy",decoding:"async",className:L.popupCover}),e("div",{className:s.title,children:i.title}),e("div",{className:s.synopsis,children:i.rjCode})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[e("div",{className:s.metaItem,children:[e(a,{name:"headphones",size:14}),e("span",{children:t?l?e(g,{children:[r," track",r===1?"":"s"]}):"No tracks":"Loading tracks…"})]}),i.rating&&e("div",{className:s.metaItem,children:e("span",{children:i.rating.toUpperCase()})}),i.isAdult&&e("div",{className:s.metaItem,children:e("span",{children:"18+"})}),i.progressLabel&&e("div",{className:s.metaItem,children:[e(a,{name:"bookmark",size:12}),e("span",{children:i.progressLabel})]})]}),e("div",{className:s.synopsis,children:!t&&!c?.description?"Loading description…":c?.description??"No description available."})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:l?e(m,{to:i.listenTarget,className:s.watchBtn,children:[e(a,{name:"play",size:14}),"Listen now"]}):e("span",{className:s.watchBtn,"aria-disabled":"true",style:{opacity:.5,pointerEvents:"none"},children:[e(a,{name:"play",size:14}),t?"No tracks":"Loading…"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${n?s.active:""}`,onClick:o=>{o.preventDefault(),o.stopPropagation(),p()},children:[n?e(a,{name:"check",size:12}):e(a,{name:"plus",size:12}),e("span",{children:n?"Remove":"Bookmark"})]}),e(m,{to:i.listenTarget,className:s.detailsBtn,children:"Details"})]})]})]})},S=()=>f();export{P as A,S as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as u,c as b,u as g,a as c}from"./vendor-query-BBT5_sHx.js";import{t as p,h as i,z as s}from"./index-
|
|
1
|
+
import{b as u,c as b,u as g,a as c}from"./vendor-query-BBT5_sHx.js";import{t as p,h as i,z as s}from"./index-Dyiy_9L6.js";import{T as Q}from"./vendor-core-DfaOB3Rn.js";const v=300*1e3,M={mangadex:"https://mangadex.org/",mangapill:"https://www.mangapill.com/"},f=(e,a)=>`/api/proxy?url=${encodeURIComponent(a)}&referer=${encodeURIComponent(M[e])}`,T=(e,a)=>a&&(e==="mangapill"?f(e,a):a),k=(e,a=!0)=>{const{provider:r,query:n,page:o,sort:t,status:m,type:d,rating:y,mature:l}=e;return u({queryKey:["mangaBrowse",r,n,o,t,m,d,y,l],queryFn:()=>p.manga.search.query({provider:r,q:n.trim()||void 0,page:o,sort:t||void 0,status:m||void 0,type:d||void 0,rating:y||void 0,mature:l?"1":void 0}),staleTime:v,enabled:a&&!!r})},E=(e,a=14)=>{const{provider:r,query:n,sort:o,status:t,type:m,rating:d,mature:y}=e;return b({queryKey:["mangaBrowseInfinite",r,n,o,t,m,d,y,a],queryFn:({pageParam:l=1})=>p.manga.search.query({provider:r,q:n.trim()||void 0,page:l,limit:a,sort:o||void 0,status:t||void 0,type:m||void 0,rating:d||void 0,mature:y?"1":void 0}),initialPageParam:1,getNextPageParam:(l,q)=>l.hasNext?q.length+1:void 0,staleTime:v,enabled:!!r})},O=(e,a,r="safe",n=!1)=>u({queryKey:["mangaDetail",e,a,r,n],queryFn:()=>p.manga.info.query({provider:e||"",id:a||"",rating:r,mature:n?"1":void 0}),enabled:!!e&&!!a,staleTime:v}),$=(e,a,r)=>u({queryKey:["mangaPages",e,a],queryFn:()=>p.manga.pages.query({provider:e||"",id:a||""}),enabled:!!e&&!!a,staleTime:1800*1e3}),B=()=>{const e=i();return u({...e.manga.trending.queryOptions(),staleTime:600*1e3,retry:1})},I=e=>e.contentRating==="erotica"||e.contentRating==="pornographic"||e.type==="doujinshi";function N(e,a){const r=e.titles??{};return a==="englishName"?r.en||e.title:a==="nativeName"&&(r.native||r.romaji||e.altTitle)||e.title}function A(e){return{englishName:e.titles?.en??e.title,nativeName:e.titles?.native??e.titles?.romaji??e.altTitle??void 0}}const h=/^anilist:ch:(\d+)$/;function w(e){if(!e)return null;const a=h.exec(e.trim());if(!a)return null;const r=Number.parseInt(a[1],10);return Number.isFinite(r)?r:null}function x(e,a){const r=String(a),n=e.find(o=>(o.number??"").trim()===r);return n||(e.find(o=>{const t=Number.parseFloat((o.number??"").trim());return Number.isFinite(t)&&t===a})??null)}const _=["Reading","Completed","On-Hold","Dropped","Planned"],L=(e,a)=>`${e.toLowerCase()}:${a}`,D=(e="All",a=1,r=24)=>{const n=i();return u(n.mangaLibrary.list.queryOptions({status:e,page:a,limit:r}))},P=()=>{const e=i();return u({...e.mangaLibrary.ids.queryOptions(),staleTime:1e3*60})},U=e=>{const a=i();return u({...a.mangaLibrary.check.queryOptions({id:e??""}),enabled:!!e,staleTime:1e3*60})},j=e=>{const a=i();return u({...a.mangaLibrary.entry.queryOptions({id:e??""}),enabled:!!e,staleTime:1e3*60})},H=()=>{const e=i(),a=g();return c(e.mangaLibrary.link.mutationOptions({onSuccess:r=>{s.success(r?.progressMigrated?"Linked — chapter progress carried over":"Linked to AniList entry"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to link: ${r.message}`)}}))},z=(e=24)=>{const a=i();return u(a.mangaProgress.continueReading.queryOptions({limit:e}))},V=e=>{const a=i();return u({...a.mangaProgress.byManga.queryOptions({mangaId:e??""}),enabled:!!e})},S=()=>{const e=i(),a=g();return c(e.mangaLibrary.add.mutationOptions({onSuccess:(r,n)=>{n.silent||s.success("Bookmarked"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]})},onError:r=>{s.error(`Failed to bookmark: ${r.message}`)}}))},F=()=>{const e=i(),a=g();return c(e.mangaLibrary.remove.mutationOptions({onSuccess:()=>{s.success("Bookmark removed"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to remove: ${r.message}`)}}))},Y=()=>{const e=i(),a=g();return c(e.mangaLibrary.setStatus.mutationOptions({onSuccess:()=>{s.success("Status updated"),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to update status: ${r.message}`)}}))},G=()=>{const e=i(),a=g();return c(e.mangaProgress.save.mutationOptions({onSuccess:(r,n)=>{a.invalidateQueries({queryKey:["manga-progress",n.mangaId]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())}}))},J=()=>{const e=i(),a=g();return c(e.mangaProgress.remove.mutationOptions({onSuccess:()=>{s.success("Progress reset"),a.invalidateQueries({queryKey:["manga-progress"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())},onError:r=>{s.error(`Failed to reset progress: ${r.message}`)}}))},W=()=>{const e=i(),a=g();return c(e.mangaLibrary.batchStatus.mutationOptions({onSuccess:r=>{s.success(`Status updated for ${r.updated??0} items`),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to update statuses: ${r.message}`)}}))},X=()=>{const e=i(),a=g();return c(e.mangaLibrary.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;s.success(`Removed ${n} ${n===1?"item":"items"} from reading list`),a.invalidateQueries(e.mangaLibrary.pathFilter()),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]})},onError:r=>{s.error(`Failed to remove: ${r.message}`)}}))},Z=()=>{const e=i(),a=g();return c(e.mangaProgress.removeMany.mutationOptions({onSuccess:r=>{const n=r.removed??0;s.success(`Reset progress for ${n} ${n===1?"item":"items"}`),a.invalidateQueries({queryKey:["manga-progress"]}),a.invalidateQueries({queryKey:["manga-continue-reading"]}),a.invalidateQueries({queryKey:["manga-library"]}),a.invalidateQueries(e.mangaProgress.pathFilter())},onError:r=>{s.error(`Failed to reset progress: ${r.message}`)}}))},ee=()=>{const e=S(),a=F(),{data:r}=P(),n=Q(()=>new Set(r?.ids||[]),[r]);return{toggle:t=>{const m=L(t.provider,t.id);n.has(m)?a.mutate(m):e.mutate({provider:t.provider,mangaId:t.id,title:t.title,cover:t.cover,altTitle:t.altTitle,contentRating:t.contentRating})},bookmarkedIds:n,pending:e.isPending||a.isPending}};export{Z as A,J as B,_ as M,E as a,T as b,A as c,z as d,B as e,k as f,j as g,S as h,I as i,H as j,O as k,U as l,L as m,V as n,F as o,Y as p,w as q,N as r,x as s,$ as t,ee as u,f as v,G as w,D as x,W as y,X as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e,S as f,L as m}from"./vendor-core-DfaOB3Rn.js";import{I as l}from"./vendor-icons-DrybRNxP.js";import{k as y,r as T}from"./useMangaLibrary-COua_Bkn.js";import{d as I}from"./index-Dyiy_9L6.js";import{p as s,a as k}from"./MediaCard-DcB-RhSF.js";import{u as P}from"./usePopup-DS9jMzp6.js";const R=({data:i,anchorRect:d,bookmarked:r,onToggleBookmark:p,onMouseEnter:h,onMouseLeave:v,onRequestClose:g})=>{const{data:a,isLoading:N}=y(i.provider,i.mangaId,i.rating||"safe",i.mature||!1),{titlePreference:u}=I(),t=a?.chapters.length??0,c=[a?.status,a?.type].filter(Boolean).join(" · "),o=T({title:i.title,altTitle:a?.altTitle??i.altTitle},u);return e(k,{anchorRect:d,onMouseEnter:h,onMouseLeave:v,onRequestClose:g,children:N?e("div",{className:s.loading,children:[e("div",{className:s.spinner}),e("span",{children:"Fetching details..."})]}):e(f,{children:[e("div",{className:s.header,children:[e("div",{className:s.title,children:o}),a?.altTitle&&a.altTitle!==o&&e("div",{className:s.synopsis,children:["Also known as: ",a.altTitle]})]}),e("div",{className:s.body,children:[e("div",{className:s.metaRow,children:[c&&e("div",{className:s.metaItem,children:[e(l,{name:"book",size:14}),e("span",{children:c})]}),t>0&&e("div",{className:s.metaItem,children:e("span",{children:[t," chapter",t===1?"":"s"]})}),i.progressLabel&&e("div",{className:s.metaItem,children:[e(l,{name:"bookmark",size:12}),e("span",{children:i.progressLabel})]})]}),e("div",{className:s.synopsis,children:a?.description?a.description:"No synopsis available."}),Array.isArray(a?.genres)&&(a?.genres?.length??0)>0&&e("div",{className:s.details,children:e("div",{className:s.genres,children:a.genres.filter(Boolean).slice(0,4).map(n=>e("span",{className:s.genre,children:n},n))})})]}),e("div",{className:s.footer,children:[e("div",{className:s.primaryAction,children:e(m,{to:i.readTarget,className:s.watchBtn,children:[e(l,{name:"book",size:14}),"Read now"]})}),e("div",{className:s.secondaryActions,children:[e("button",{className:`${s.watchlistBtn} ${r?s.active:""}`,onClick:n=>{n.preventDefault(),n.stopPropagation(),p()},children:[r?e(l,{name:"check",size:12}):e(l,{name:"plus",size:12}),e("span",{children:r?"Remove":"Bookmark"})]}),e(m,{to:`/manga/${i.provider}/${encodeURIComponent(i.mangaId)}`,className:s.detailsBtn,children:"Read more"})]})]})]})})},$=()=>P();export{R as M,$ as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as P,A as i,q as u}from"./vendor-core-DfaOB3Rn.js";const m=300;function f(){const[t,e]=P(null),o=i(null),n=u(()=>{o.current&&(clearTimeout(o.current),o.current=null)},[]),c=u((s,p)=>{n(),e({data:p,rect:s})},[n]),l=u(()=>{n(),o.current=setTimeout(()=>{o.current=null,e(null)},m)},[n]),r=u(()=>{n(),e(null)},[n]);return{popup:t,openPopup:c,scheduleClose:l,cancelClose:n,closePopup:r}}export{f as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{T as o}from"./vendor-core-DfaOB3Rn.js";import{b as a}from"./vendor-query-BBT5_sHx.js";import{$ as i}from"./index-Dyiy_9L6.js";const n=300*1e3;function u(r){return{value:r.id,label:r.label,mature:r.mature,kind:r.kind,sub:r.sub,tier:r.tier,browse:r.browse,facets:r.facets,servers:r.servers}}const d=()=>{const r=a({queryKey:["providers"],queryFn:()=>i("/api/providers"),staleTime:n,retry:1}),e=Array.isArray(r.data)?r.data:null,t=o(()=>e&&e.length>0?e.filter(s=>s.loaded).map(u):[],[e]);return{...r,options:t,isFallback:!e||e.length===0}};export{d as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as c,u as r,S as d}from"./vendor-core-DfaOB3Rn.js";import{I as v}from"./vendor-icons-DrybRNxP.js";import{M as T}from"./MediaCard-
|
|
1
|
+
import{N as c,u as r,S as d}from"./vendor-core-DfaOB3Rn.js";import{I as v}from"./vendor-icons-DrybRNxP.js";import{M as T}from"./MediaCard-DcB-RhSF.js";import{T as g}from"./TvPopup-_GPNroa1.js";import{c as m,i as f}from"./useTvLibrary-DpqGf6Bp.js";import{b as i}from"./vendor-query-BBT5_sHx.js";import{h as p}from"./index-Dyiy_9L6.js";const _=c(({item:e})=>{const o=e.type==="tv"||e.type==="tvSeries"||e.type==="tvMiniSeries",s=m(e.type,e.id);return r(T,{item:{id:String(e.id),title:e.title,thumbnail:e.image,typeBadge:o?"TV":"Movie",isAdult:f(e)},linkTo:s,hoverIcon:"info",showInfoButton:!0,metaRow:r(d,{children:[e.year&&r("span",{style:{opacity:.75},children:e.year}),e.vote_average!=null&&r("span",{style:{display:"inline-flex",alignItems:"center",gap:3},children:[r(v,{name:"star",size:10}),Number(e.vote_average).toFixed(1)]})]}),renderPopup:(a,t)=>r(g,{item:e,anchorRect:a,onMouseEnter:t.onMouseEnter,onMouseLeave:t.onMouseLeave,onRequestClose:t.close})})}),u=1e3*60*5,b=e=>{const o=p(),{query:s,type:a,genre:t,year:n,sort_by:l,page:y}=e;return i({...o.tv.search.queryOptions({q:s?.trim()||"",type:a||"multi",genre:t||"",year:n&&n!=="ALL"?n:"",sortBy:l||"popularity.desc",page:y||1}),staleTime:u,retry:1})},A=(e="all",o="week",s=1,a=!0)=>{const t=p();return i({...t.tv.trending.queryOptions({mediaType:e,timeWindow:o,page:s}),enabled:a,staleTime:u,retry:1})};export{_ as T,b as a,A as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{T as y}from"./vendor-core-DfaOB3Rn.js";import{b as v,u as o,a as n}from"./vendor-query-BBT5_sHx.js";import{h as a,z as i,t as p}from"./index-
|
|
1
|
+
import{T as y}from"./vendor-core-DfaOB3Rn.js";import{b as v,u as o,a as n}from"./vendor-query-BBT5_sHx.js";import{h as a,z as i,t as p}from"./index-Dyiy_9L6.js";const d=t=>String(t).toLowerCase()==="movie"?"movie":"tv",m=(t,e)=>`${d(t)}:${e}`,L=(t,e)=>{const r=d(t);return`/tv/${e}?type=${r}`},S=(t,e,r,s)=>{const u=new URLSearchParams;return u.set("type",d(t)),r!==void 0&&u.set("s",String(r)),s!==void 0&&u.set("e",String(s)),`/tv/${e}/watch?${u.toString()}`},F=t=>t.adult===!0||t.adult===1,K=["Watching","Completed","On-Hold","Dropped","Planned"],g=(t,e)=>m(t,e),$=(t="All",e=1,r=24)=>{const s=a();return v(s.tvLibrary.list.queryOptions({status:t,page:e,limit:r}))},h=()=>{const t=a();return v({...t.tvLibrary.ids.queryOptions(),staleTime:1e3*60})},C=t=>{const e=a();return v({...e.tvLibrary.check.queryOptions({id:t||""}),enabled:!!t,staleTime:1e3*60})},w=(t=24)=>{const e=a();return v(e.tvProgress.continueWatching.queryOptions({limit:t}))},O=t=>{const e=a();return v({...e.tvProgress.getByMedia.queryOptions({mediaId:t||""}),enabled:!!t})},f=(t,e,r)=>{const s=a();return v({...s.tvProgress.latest.queryOptions({mediaId:t||"",season:e,episode:r}),enabled:!!t,staleTime:0})},b=()=>{const t=a(),e=o();return n({mutationFn:async r=>{const{silent:s,...u}=r;return p.tvLibrary.add.mutate(u)},onSuccess:(r,s)=>{s.silent||i.success("Added to TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter())},onError:r=>{i.error(`Failed to add: ${r.message}`)}})},Q=()=>{const t=a(),e=o();return n(t.tvLibrary.remove.mutationOptions({onSuccess:()=>{i.success("Removed from TV watchlist"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},k=()=>{const t=a(),e=o();return n(t.tvLibrary.setStatus.mutationOptions({onSuccess:()=>{i.success("Status updated"),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update status: ${r.message}`)}}))},R=()=>{const t=a(),e=o();return n(t.tvProgress.save.mutationOptions({onSuccess:(r,s)=>{e.invalidateQueries({queryKey:["tv-progress",s.mediaId]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())}}))},B=()=>{const t=a(),e=o();return n(t.tvProgress.remove.mutationOptions({onSuccess:()=>{i.success("Progress reset"),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},E=()=>{const t=a(),e=o();return n(t.tvLibrary.batchStatus.mutationOptions({onSuccess:r=>{i.success(`Status updated for ${r.updated??0} items`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to update statuses: ${r.message}`)}}))},I=()=>{const t=a(),e=o();return n(t.tvLibrary.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Removed ${s} ${s===1?"item":"items"} from TV watchlist`),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to remove: ${r.message}`)}}))},A=()=>{const t=a(),e=o();return n(t.tvProgress.removeMany.mutationOptions({onSuccess:r=>{const s=r.removed??0;i.success(`Reset progress for ${s} ${s===1?"item":"items"}`),e.invalidateQueries({queryKey:["tv-progress"]}),e.invalidateQueries({queryKey:["tv-continue-watching"]}),e.invalidateQueries({queryKey:["tv-library"]}),e.invalidateQueries(t.tvLibrary.pathFilter()),e.invalidateQueries(t.tvProgress.pathFilter())},onError:r=>{i.error(`Failed to reset progress: ${r.message}`)}}))},M=()=>{const t=b(),e=Q(),{data:r}=h(),s=y(()=>new Set(r?.ids||[]),[r]);return{toggle:c=>{const l=g(c.mediaType,c.tmdbId);s.has(l)?e.mutate(l):t.mutate({...c,poster:c.poster||""})},bookmarkedIds:s,pending:t.isPending||e.isPending}};export{K as T,Q as a,B as b,L as c,m as d,C as e,M as f,R as g,k as h,F as i,f as j,O as k,$ as l,E as m,d as n,I as o,A as p,S as t,w as u};
|
package/client/dist/index.html
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
background-color: #0c0d12;
|
|
34
34
|
}
|
|
35
35
|
</style>
|
|
36
|
-
<script type="module" crossorigin src="/assets/index-
|
|
36
|
+
<script type="module" crossorigin src="/assets/index-Dyiy_9L6.js"></script>
|
|
37
37
|
<link rel="modulepreload" crossorigin href="/assets/vendor-core-DfaOB3Rn.js">
|
|
38
38
|
<link rel="modulepreload" crossorigin href="/assets/vendor-query-BBT5_sHx.js">
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/vendor-icons-DrybRNxP.js">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serifpersia/dango",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.9",
|
|
4
4
|
"description": "A web application for watching anime.",
|
|
5
5
|
"main": "orchestrator.js",
|
|
6
6
|
"repository": {
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"allowScripts": {
|
|
84
84
|
"esbuild@0.28.2": true
|
|
85
85
|
},
|
|
86
|
-
"versionDate": "2026-10-
|
|
86
|
+
"versionDate": "2026-10-03T15:46:33.503Z"
|
|
87
87
|
}
|
package/server/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{T as Ve,u as e,A as j,d as m,h as N,a as Ge,g as $e,q as V,S as O,$ as Je,o as bt,p as vt}from"./vendor-core-DfaOB3Rn.js";import{I as y}from"./vendor-icons-DrybRNxP.js";import{u as yt}from"./vendor-query-BBT5_sHx.js";import{g as ue,t as Ee,W as kt,B as me,M as xe,X as I,z as le,Y as wt,T as ze}from"./index-gMxawd-E.js";import{M as Nt}from"./MediaCard-BcLjlpfR.js";import{c as Qe,a as Xe,d as Ct,e as Ze,f as et,g as St,h as Tt,i as At,j as Mt,k as Ye,l as Ie}from"./useAsmr-Blk4v41t.js";import{a as t}from"./Asmr.module-ChUXDZKx.js";import{u as xt,A as Lt}from"./useAsmrPopup-D9SQIgZa.js";import{l as Rt}from"./hls-B3_1VuDP.js";import"./vendor-ui-3qrARCPr.js";import"./useIsMobile-Dvx1uJ82.js";const Pt=({work:s,onClose:o,onPlay:S,t:g})=>{const{data:i,isLoading:h}=Qe(s.id||null),v=Xe(s),{data:A}=Ct(v||void 0),{toggle:k,bookmarkedIds:T}=Ze(),{data:B}=et(v||void 0),R=v?T.has(v):!!A?.inLibrary,C=Ve(()=>(i?.description||s.description||"").split(`
|
|
2
|
-
`).map(l=>{const u=l.indexOf(":");return u===-1?null:{label:l.slice(0,u),value:l.slice(u+1).trim()}}).filter(l=>!!l&&!!l.value),[i?.description,s.description]),f=i?.tracks||[],w=Ve(()=>{const l=B?.progress??[];return l.length>0?l.reduce((u,d)=>u.updatedAt>=d.updatedAt?u:d):null},[B]),M=w&&w.trackIndex<f.length?w.trackIndex:null;return e("div",{className:t.detailOverlay,onClick:o,children:e("div",{className:t.detailModal,onClick:l=>l.stopPropagation(),children:[e("button",{className:t.detailClose,onClick:o,"aria-label":"Close",children:e(y,{name:"times"})}),e("div",{className:t.detailHeader,children:[s.thumbnail?e("img",{className:t.detailCover,src:s.thumbnail,alt:s.name,decoding:"async"}):e("div",{className:`${t.detailCover} ${t.thumbPlaceholder}`}),e("div",{className:t.detailInfo,children:[e("h2",{className:t.detailTitle,children:g?g(s.name):s.name}),e("p",{className:t.detailRj,children:s.id}),C.map(l=>l.label==="Tags"?e("p",{className:t.metaRow,children:[e("span",{className:t.metaLabel,children:"Tags"}),e("span",{className:t.tagChips,children:l.value.split(", ").map(u=>e("span",{className:t.tagChip,children:u},u))})]},l.label):e("p",{className:t.metaRow,children:[e("span",{className:t.metaLabel,children:l.label}),l.value]},l.label))]})]}),e("div",{className:t.tracksSection,children:[e("h3",{className:t.tracksHeading,children:h?"Loading tracks…":`Tracks (${f.length})`}),!h&&(f.length>0?e("ul",{className:t.trackList,children:f.map((l,u)=>e("li",{children:e("button",{className:t.trackRow,onClick:()=>S(s,f,u),children:[e(y,{name:"play",className:t.trackIcon}),e("span",{className:t.trackLabel,children:l.resolutionStr}),e("span",{className:t.trackType,children:l.hls?"HLS":"MP3"})]})},l.link))}):e("p",{className:t.noTracks,children:"No audio streams available for this work."}))]}),e("div",{className:t.detailActions,children:[!h&&f.length>0&&e("button",{className:t.playAllBtn,onClick:()=>S(s,f,0),children:[e(y,{name:"play"})," Play from start"]}),!h&&M!==null&&w&&e("button",{className:t.playAllBtn,onClick:()=>S(s,f,M),children:[e(y,{name:"history"})," Resume track ",M+1," ·"," ",ue(w.currentTime),w.duration>0?` / ${ue(w.duration)}`:""]}),v&&e("button",{className:t.playAllBtn,onClick:()=>k({rjCode:v,title:s.name,thumbnail:s.thumbnail||"",isAdult:!!s.isAdult}),"aria-pressed":R,children:[e(y,{name:R?"check":"plus"})," ",R?"In listening list":"Add to listening list"]})]})]})})},It=({title:s,images:o,chapters:S,tracks:g,trackIndex:i,expanded:h,isAdult:v,rjCode:A,t:k,onTrackChange:T,onExpandedChange:B,onClose:R})=>{const C=j(null),f=j(null),[w,M]=m(!1),[l,u]=m(0),[d,P]=m(0),[p,q]=m(0),[x,te]=m(!0),[F,Y]=m(0),[_,oe]=m(new Set),[D,ae]=m(!1),[he,$]=m(!0),ne=j("");ne.current||(ne.current=typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`asmr-${Date.now()}-${Math.random().toString(36).slice(2)}`);const[H,Ne]=m(()=>{const a=parseFloat(localStorage.getItem("asmrVolume")||"");return Number.isFinite(a)?a:1}),pe=j(H);N(()=>{pe.current=H},[H]);const ge=Ge(),J=$e.useMemo(()=>A?St(A):"",[A]),Ce=Tt(),ie=At(),{data:Se}=et(J||void 0),[Le,fe]=m(!1),[U,Re]=m(0),[Pe,G]=m(!1),be=j(""),W=j(null),K=j(0),Q=j(0),ce=j(0),X=g[i],Z=X?.link,Te=X?.hls,n=X?.resolutionStr||"",c=o.length>0,L=`${J}:${i}`,re=$e.useMemo(()=>(Se?.progress??[]).find(r=>r.trackIndex===i)??null,[Se,i]),ee=j({workId:"",trackIndex:0,trackLabel:""});ee.current={workId:J,trackIndex:i,trackLabel:n};const se=V((a,r,b,E=!1)=>{!a.workId||!b||b<10||!E&&Math.abs(r-K.current)<5||(K.current=r,Ce.mutate({workId:a.workId,trackIndex:a.trackIndex,trackLabel:a.trackLabel,currentTime:Math.floor(r),duration:Math.floor(b),title:s,thumbnail:o[0]||"",rjCode:a.workId,isAdult:v?1:0}))},[Ce,s,o,v]),z=V((a=!1)=>{W.current&&(clearTimeout(W.current),W.current=null),se(ee.current,Q.current,ce.current,a)},[se]),ve=j(z);ve.current=z;const _e=j(se);_e.current=se;const de=V(()=>{f.current&&(f.current.destroy(),f.current=null)},[]);N(()=>{const a=C.current;if(!a||!Z)return;const r={workId:J,trackIndex:i,trackLabel:n},b=()=>{W.current&&(clearTimeout(W.current),W.current=null),_e.current(r,Q.current,ce.current,!0)};if(u(0),P(0),q(0),M(!1),Q.current=0,ce.current=0,K.current=0,de(),Te){let E=!1;return(async()=>{const ke=await Rt();if(!E)if(ke&&ke.isSupported()){const we=new ke({enableWorker:!0});f.current=we,we.loadSource(Z),we.attachMedia(a),a.play().catch(()=>M(!1))}else a.src=Z,a.load(),a.volume=pe.current,a.play().catch(()=>M(!1))})(),()=>{E=!0,de(),a.removeAttribute("src"),b()}}else a.src=Z;return a.load(),a.volume=pe.current,a.play().catch(()=>M(!1)),()=>{de(),a.removeAttribute("src"),b()}},[Z,Te,de,J,i,n]),N(()=>()=>de(),[de]),N(()=>{const a=()=>{document.visibilityState==="hidden"&&ve.current()},r=()=>ve.current();return document.addEventListener("visibilitychange",a),window.addEventListener("pagehide",r),()=>{document.removeEventListener("visibilitychange",a),window.removeEventListener("pagehide",r)}},[]),N(()=>{if(!re||be.current===L||!(d>0))return;const a=re.currentTime||0,r=re.duration||d;a>=10&&r-a>=15&&Q.current<a?(be.current=L,Re(a),fe(!0)):be.current=L},[re,d,L]),N(()=>{const a=C.current;a&&(a.volume=H)},[H]),N(()=>{if(h)return document.body.classList.add("asmr-player-open"),()=>document.body.classList.remove("asmr-player-open")},[h]),N(()=>{Y(0)},[o]),N(()=>{h&&$(!0)},[h]),N(()=>{D&&$(!0)},[D]);const Ae=V(a=>{if(!s||g.length===0)return;const r=g[i],b=r?`${r.resolutionStr} (${i+1}/${g.length})`:"",E=C.current,ke=E?E.currentTime:0,we=E&&E.duration||0,ft=o[0]||"";Ee.discord.asmrPresence.mutate({title:s,trackLabel:b,isPlaying:a,thumbnail:ft,thumbnails:o,currentTime:ke,duration:we,isAdult:!!v,rjCode:A||"",sessionId:ne.current}).catch(()=>{}),Ee.discord.heartbeat.mutate({sessionId:ne.current}).catch(()=>{})},[s,g,i,o,v,A]);N(()=>{Ae(w)},[Ae,w,i,s,h]),N(()=>{if(!w)return;const a=window.setInterval(()=>Ae(!0),15e3);return()=>window.clearInterval(a)},[w,Ae]),N(()=>{const a=ne.current,r=()=>kt(a),b=()=>r(),E=()=>{document.visibilityState==="hidden"&&r()};return window.addEventListener("pagehide",b),window.addEventListener("beforeunload",b),document.addEventListener("visibilitychange",E),()=>{window.removeEventListener("pagehide",b),window.removeEventListener("beforeunload",b),document.removeEventListener("visibilitychange",E),r()}},[]);const Me=V(a=>{oe(r=>{if(r.has(a))return r;const b=new Set(r);return b.add(a),b})},[]),at=V((a,r)=>{a&&a.complete&&a.naturalWidth>0&&Me(r)},[Me]);N(()=>{if(!h)return;const a=r=>{if(r.key==="Escape"){D?ae(!1):B(!1);return}!x||o.length<2||(r.key==="ArrowLeft"&&Y(b=>Math.max(0,b-1)),r.key==="ArrowRight"&&Y(b=>Math.min(o.length-1,b+1)))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[h,x,o.length,D,B]);const nt=()=>{const a=C.current;a&&(a.paused?a.play().catch(()=>{}):a.pause())},rt=a=>{const r=C.current;if(!r||!d)return;const b=parseFloat(a.target.value);r.currentTime=b,u(b)},st=()=>{z(!0),i<g.length-1?T(i+1):G(!0)},lt=a=>{const r=a.currentTarget.currentTime;Q.current=r,u(r),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>ve.current(),5e3)},ot=()=>{M(!1),ve.current()},it=a=>{const r=a.currentTarget.duration;ce.current=Number.isFinite(r)?r:0,P(a.currentTarget.duration)},ct=V(()=>{const a=C.current;a&&U>0&&(a.currentTime=U,Q.current=U,a.play().catch(()=>{})),fe(!1)},[U]),je=V(()=>{fe(!1)},[]),dt=V(()=>{J&&ie.mutate({rjCode:J,title:s,thumbnail:o[0]||"",status:"Completed",isAdult:!!v,silent:!0}),G(!1),R(),ge("/")},[J,ie,s,o,v,R,ge]),ut=S.reduce((a,r,b)=>l>=r.time?b:a,-1),mt=a=>{const r=C.current;r&&(r.currentTime=a,u(a))},Fe=a=>{const r=C.current;if(!r)return;const b=Number.isFinite(r.currentTime)?r.currentTime:l,E=Math.max(0,Math.min(d||1/0,b+a));r.currentTime=E,u(E),$(!0)},Oe=d?Math.min(100,l/d*100):0,ht=d?Math.min(100,Math.max(Oe,p/d*100)):0,pt=e(O,{children:[e("div",{className:t.playerButtons,children:[e("button",{className:t.playerBtn,onClick:()=>T(Math.max(0,i-1)),disabled:i===0,"aria-label":"Previous track",children:e(y,{name:"step-backward"})}),e("button",{className:`${t.playerBtn} ${t.seekBtn}`,onClick:()=>Fe(-10),"aria-label":"Seek back 10 seconds",title:"Back 10s",children:[e(y,{name:"undo"}),e("span",{className:t.seekBtnLabel,children:"10"})]}),e("button",{className:`${t.playerBtn} ${t.playBtn}`,onClick:nt,"aria-label":w?"Pause":"Play",children:w?e(y,{name:"pause"}):e(y,{name:"play"})}),e("button",{className:`${t.playerBtn} ${t.seekBtn}`,onClick:()=>Fe(10),"aria-label":"Seek forward 10 seconds",title:"Forward 10s",children:[e(y,{name:"redo"}),e("span",{className:t.seekBtnLabel,children:"10"})]}),e("button",{className:t.playerBtn,onClick:()=>T(Math.min(g.length-1,i+1)),disabled:i>=g.length-1,"aria-label":"Next track",children:e(y,{name:"step-forward"})})]}),e("div",{className:t.seekRow,children:[e("span",{className:t.timeLabel,children:ue(l)}),e("input",{className:t.seekBar,type:"range",min:0,max:d||0,step:.1,value:Math.min(l,d||0),onChange:rt,style:{"--played-percent":`${Oe}%`,"--buffered-percent":`${ht}%`},"aria-label":"Seek"}),e("span",{className:t.timeLabel,children:ue(d)})]})]}),De=e(O,{children:[e("button",{className:`${t.playerBtn} ${t.playerToggle}`,onClick:()=>B(!h),"aria-label":h?"Minimize player":"Expand player",title:h?"Minimize to browse":"Expand",children:h?e(y,{name:"chevron-down"}):e(y,{name:"chevron-up"})}),e("div",{className:t.playerInfo,children:[e("p",{className:t.playerTitle,title:s,children:k?k(s):s}),e("p",{className:t.playerTrack,children:[X?.resolutionStr||"",g.length>1?` (${i+1}/${g.length})`:""]})]}),e("div",{className:t.playerControls,children:pt}),e("div",{className:t.playerRight,children:[H===0?e(y,{name:"volume-mute",className:t.volumeIcon}):H<.5?e(y,{name:"volume-down",className:t.volumeIcon}):e(y,{name:"volume-up",className:t.volumeIcon}),e("input",{className:t.volumeBar,type:"range",min:0,max:1,step:.01,value:H,onChange:a=>{const r=parseFloat(a.target.value);Ne(r),localStorage.setItem("asmrVolume",String(r))},style:{"--volume-percent":`${H*100}%`},"aria-label":"Volume"})]}),e("div",{className:t.playerActions,children:[h&&c&&e("button",{className:t.playerBtn,onClick:()=>te(a=>!a),"aria-label":x?"Hide images":"Show images",title:x?"Hide images":"Show images",children:x?e(y,{name:"eye-slash"}):e(y,{name:"image"})}),h&&S.length>0&&e("button",{className:`${t.playerBtn} ${D?t.playerBtnActive:""}`,onClick:()=>ae(a=>!a),"aria-label":D?"Hide bookmarks":"Show bookmarks",title:"Timestamps",children:e(y,{name:"list-ol"})}),e("button",{className:t.playerBtn,onClick:R,"aria-label":"Close player",children:e(y,{name:"times"})})]})]}),He=e("audio",{ref:C,preload:"metadata",onPlay:()=>M(!0),onPause:ot,onTimeUpdate:lt,onLoadedMetadata:it,onProgress:a=>{const r=a.currentTarget;r.buffered.length>0&&q(r.buffered.end(r.buffered.length-1))},onEnded:st}),Ue=e(xe,{isOpen:Le,onClose:je,title:"Resume Listening",children:e("div",{style:{padding:"1rem",textAlign:"center"},children:[e("p",{children:["You were at ",e("strong",{children:ue(U)}),X?.resolutionStr?` in ${X.resolutionStr}`:""]}),e("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[e(me,{variant:"secondary",onClick:je,children:"Start from Beginning"}),e(me,{onClick:ct,children:"Resume"})]})]})}),qe=e(xe,{isOpen:Pe,onClose:()=>G(!1),title:"Finished!",children:e("div",{style:{padding:"1rem",textAlign:"center"},children:[e(y,{name:"check-circle",size:48,style:{color:"var(--accent-lighter)",marginBottom:"0.5rem"}}),e("p",{style:{fontSize:"1.1rem",fontWeight:600},children:k?k(s):s}),e("p",{style:{color:"var(--text-secondary)"},children:"You finished this work!"}),e("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[e(me,{variant:"secondary",onClick:()=>G(!1),children:"Close"}),e(me,{onClick:dt,children:"Mark Completed & Back to Home"})]})]})});if(!h)return Je(e(O,{children:[He,e("div",{className:t.playerBar,children:De}),Ue,qe]}),document.body);const ye=Math.min(F,Math.max(0,o.length-1)),We=o[ye],gt=x&&c&&!!We&&!_.has(We);return Je(e(O,{children:[He,Ue,qe,e("div",{className:`${t.npOverlay} ${he?"":t.npOverlayControlsHidden}`,children:[e("div",{className:`${t.npStage} ${!x||!c?t.npStageBlank:""}`,onClick:()=>$(a=>!a),children:x&&c&&e(O,{children:[e("div",{className:t.sliderViewport,children:[e("div",{className:t.sliderTrack,style:{transform:`translateX(-${ye*100}%)`},children:o.map(a=>e("div",{className:t.slide,children:e("img",{ref:r=>at(r,a),src:a,alt:`${k?k(s):s} — work image`,loading:"lazy",decoding:"async",draggable:!1,onLoad:()=>Me(a),onError:()=>Me(a),className:`${t.slideImg} ${_.has(a)?t.slideImgLoaded:""}`})},a))}),gt&&e("span",{className:t.slideSpinner,"aria-label":"Loading image"})]}),o.length>1&&e(O,{children:[e("button",{className:`${t.npArrow} ${t.npArrowLeft}`,onClick:a=>{a.stopPropagation(),Y(r=>Math.max(0,r-1)),$(!0)},disabled:ye===0,"aria-label":"Previous image",children:e(y,{name:"chevron-left"})}),e("button",{className:`${t.npArrow} ${t.npArrowRight}`,onClick:a=>{a.stopPropagation(),Y(r=>Math.min(o.length-1,r+1)),$(!0)},disabled:ye===o.length-1,"aria-label":"Next image",children:e(y,{name:"chevron-right"})}),e("span",{className:t.npImageCount,onClick:a=>a.stopPropagation(),children:[ye+1," / ",o.length]})]})]})}),e("div",{className:`${t.playerBar} ${t.playerBarDocked} ${he?"":t.playerBarDockedHidden}`,onClick:a=>a.stopPropagation(),children:[De,D&&e(O,{children:[e("div",{className:t.npBackdrop,onClick:()=>ae(!1)}),e("div",{className:t.chapterPanel,children:S.map((a,r)=>e("button",{className:`${t.chapterRow} ${r===ut?t.chapterRowActive:""}`,title:k?k(a.label):a.label,onClick:()=>{mt(a.time),ae(!1)},children:[e("span",{className:t.chapterRowTime,children:ue(a.time)}),e("span",{className:t.chapterRowLabel,title:k?k(a.label):a.label,children:k?k(a.label):a.label})]},`${a.time}-${r}`))})]})]})]})]}),document.body)},Bt="https://github.com/serifpersia/dango/releases/latest/download/dango-extension.zip",$t=s=>{try{return JSON.parse(s.detail)}catch{return null}},Et=({isOpen:s,onClose:o,onSuccess:S})=>{const[g,i]=m(1),[h,v]=m(typeof navigator<"u"?navigator.userAgent:""),[A,k]=m(""),[T,B]=m(!1),[R,C]=m(!1),f=j(null),w=typeof navigator<"u"?navigator.userAgent:"",M=/android/i.test(w),l=/firefox|fxios/i.test(w)&&!M,u=!l&&!M&&/chrome|chromium|edg|brave/i.test(w),d=l||u;N(()=>{s&&(i(1),v(typeof navigator<"u"?navigator.userAgent:""),k(""),B(!1),C(!1))},[s]),N(()=>()=>{f.current&&(window.removeEventListener("dango:jasmr-cookie",f.current),f.current=null)},[]);const P=async()=>{localStorage.setItem("jasmr_ua",h),window.open("https://japaneseasmr.com","_blank","noopener,noreferrer"),i(2)},p=()=>{if(R)return;C(!0);const x=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,te=window.setTimeout(()=>{C(!1),f.current&&(window.removeEventListener("dango:jasmr-cookie",f.current),f.current=null),le.error("Helper not detected — install it via about:debugging first.")},3e3),F=Y=>{const _=$t(Y);if(!(!_||_.requestId!==x))if(window.clearTimeout(te),window.removeEventListener("dango:jasmr-cookie",F),f.current=null,C(!1),_?.ok&&_.cookie)k(_.cookie),le.success("Cookie extracted from helper!");else if(_?.error==="NO_COOKIE"){const oe=_.debug?.stores?.length??0,D=_.debug?.names??[];le.error(`Helper found no cf_clearance (checked ${oe} stores, saw: ${D.join(", ")||"none"}) — solve the challenge on the JapaneseASMR tab first.`)}else le.error("Helper request failed — try again.")};f.current=F,window.addEventListener("dango:jasmr-cookie",F),window.dispatchEvent(new CustomEvent("dango:get-jasmr-cookie",{detail:{requestId:x}}))},q=async()=>{if(!A.trim()){le.error("Please enter the cf_clearance cookie");return}B(!0);try{localStorage.setItem("jasmr_cookie",A.trim()),le.success("Cookie updated successfully!"),S?.(),o()}catch{le.error("Failed to save cookie")}finally{B(!1)}};return e(xe,{isOpen:s,onClose:o,title:"JapaneseASMR Verification Required",children:e("div",{className:I.container,children:g===1?e(O,{children:[e("p",{children:["JapaneseASMR is protected by a Cloudflare challenge. Solve it once in your browser and paste the ",e("strong",{children:"cf_clearance"})," cookie so the app can load the site for you."]}),e("div",{className:I.field,children:[e("label",{children:"Your User-Agent (must match the browser you solve the challenge with):"}),e("textarea",{value:h,onChange:x=>v(x.target.value),rows:3,className:I.textarea})]}),e("div",{className:I.actions,children:[e("button",{className:I.secondaryButton,onClick:o,children:"Cancel"}),e("button",{className:I.button,onClick:P,children:"Start Verification (Opens JapaneseASMR)"})]})]}):e(O,{children:[e("p",{children:["1. Solve the challenge on the ",e("strong",{children:"JapaneseASMR tab"})," (keep that tab open).",e("br",{}),"2. Copy the ",e("strong",{children:"cf_clearance"})," cookie value using one of these:",e("br",{}),e("br",{}),e("strong",{children:"Chrome / Edge — DevTools:"})," press ",e("code",{children:"F12"})," →"," ",e("strong",{children:"Application"})," → ",e("strong",{children:"Cookies"})," →"," ",e("code",{children:"https://japaneseasmr.com"}),". Find ",e("strong",{children:"cf_clearance"}),", double-click its ",e("strong",{children:"Value"})," to select it, then copy.",e("br",{}),e("br",{}),e("strong",{children:"Firefox — Storage Inspector:"})," press ",e("code",{children:"F12"})," →"," ",e("strong",{children:"Storage"})," → ",e("strong",{children:"Cookies"})," →"," ",e("code",{children:"https://japaneseasmr.com"}),". Find ",e("strong",{children:"cf_clearance"}),", right-click the value → ",e("strong",{children:"Copy Value"}),".",e("br",{}),e("br",{}),e("strong",{children:"Either browser — extension:"})," open"," ",e("strong",{children:"Cookie Manager"})," while on the JapaneseASMR tab, find"," ",e("strong",{children:"cf_clearance"}),", and copy its value (or use the extension's export).",e("br",{}),e("br",{}),"3. Paste it below. Copy ",e("strong",{children:"only the value"})," — remove any"," ",e("code",{children:"cf_clearance="})," prefix or quotes if they were included."]}),d&&e("div",{className:I.hint,children:[e("strong",{children:"Dango helper (one-time setup):"})," ",l?e(O,{children:["type ",e("code",{children:"about:debugging"})," in the address bar →"," ",e("strong",{children:"This Firefox"})," → ",e("strong",{children:"Load Temporary Add-on"})," ","→ open the ",e("code",{children:"dango-extension/firefox"})," folder and pick"," ",e("code",{children:"manifest.json"}),". (Temporary helpers unload when Firefox closes — repeat after a restart.)"]}):e(O,{children:["type ",e("code",{children:"chrome://extensions"})," in the address bar → enable"," ",e("strong",{children:"Developer mode"})," → ",e("strong",{children:"Load unpacked"})," → open the ",e("code",{children:"dango-extension/chrome"})," folder. (Unpacked helpers show a developer-mode notice — expected.)"]})," ","Use this link to download the extension and extract it:"," ",e("a",{href:Bt,target:"_blank",rel:"noreferrer",className:I.link,children:"dango-extension.zip"}),". Then click Extract below and the field fills itself.",e("div",{className:I.actions,children:e("button",{className:I.button,onClick:p,disabled:R,type:"button",children:R?"Extracting…":"Extract cookie from helper"})})]}),e("div",{className:I.field,children:[e("label",{children:"cf_clearance cookie value:"}),e("input",{type:"text",value:A,onChange:x=>k(x.target.value),placeholder:"e.g. xxxxxxxx.xxxxxxxx.xxxxxxx-xxxxxxx",className:I.input})]}),e("div",{className:I.actions,children:[e("button",{className:I.secondaryButton,onClick:o,children:"Cancel"}),e("button",{className:I.secondaryButton,onClick:()=>i(1),children:"Back"}),e("button",{className:I.button,onClick:q,disabled:T,children:T?"Saving...":"Submit"})]})]})})})},tt="asmrTranslateCache",_t=10080*60*1e3;function jt(){try{const s=localStorage.getItem(tt);if(!s)return new Map;const o=JSON.parse(s);return new Map(Object.entries(o))}catch{return new Map}}function Ft(s){try{const o={};for(const[S,g]of s)o[S]=g;localStorage.setItem(tt,JSON.stringify(o))}catch{}}function Ke(s){return/[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FAF]/.test(s)}async function Ot(s){const o=s.map(i=>i.trim()).filter(Boolean);if(o.length===0)return new Map;const S=await Ee.settings.translate.mutate({texts:o,source:"ja",target:"en"}),g=new Map;for(const[i,h]of Object.entries(S.translations||{}))g.set(i,h);for(const i of o)g.has(i)||g.set(i,i);return g}function Dt(s,o){const[S,g]=m(new Map),[i,h]=m(!1),v=j(null),A=s.join("");return N(()=>{const T=A?A.split(""):[];if(!o||T.length===0){g(new Map),h(!1);return}const B=Array.from(new Set(T.map(l=>l.trim()).filter(Boolean).filter(Ke)));if(B.length===0){g(new Map);return}v.current||(v.current=jt());const R=Date.now(),C=new Map,f=[];for(const l of B){const u=v.current.get(l);u&&R-u.ts<_t?C.set(l,u.t):f.push(l)}if(f.length===0){g(C);return}let w=!1;h(!0);const M=[];for(let l=0;l<f.length;l+=15)M.push(f.slice(l,l+15));return(async()=>{const l=new Map;for(const d of M){try{const P=await Ot(d);for(const[p,q]of P)l.set(p,q)}catch{}await new Promise(P=>setTimeout(P,120))}if(w)return;if(v.current){for(const[d,P]of l)v.current.set(d,{t:P,ts:Date.now()});Ft(v.current)}const u=new Map([...C,...l]);g(u),h(!1)})(),()=>{w=!0}},[o,A]),{t:T=>!o||!T||!Ke(T)?T:S.get(T.trim())||T,map:S,isTranslating:i}}const Ht=[{label:"Date",options:[{value:"latest",label:"Latest"},{value:"oldest",label:"Oldest"}]},{label:"Title",options:[{value:"title_asc",label:"A → Z"},{value:"title_desc",label:"Z → A"}]},{label:"Popular (Views)",options:[{value:"popular_recent",label:"Recent"},{value:"popular_week",label:"Week"},{value:"popular_month",label:"Month"},{value:"popular_6_months",label:"6 Months"},{value:"popular_year",label:"Year"},{value:"popular",label:"All Time"}]},{label:"Most Commented",options:[{value:"comments_week",label:"Week"},{value:"comments_month",label:"Month"},{value:"comments_year",label:"Year"},{value:"comments",label:"All Time"}]},{label:"Other",options:[{value:"random",label:"Random"}]}],Ut=[{value:"",label:"All"},{value:"sfw",label:"SFW / 全年齢"},{value:"r-15",label:"R-15"},{value:"r-18",label:"NSFW / R18"},{value:"yuri",label:"Yuri / Girls love / 百合"},{value:"otokonoko",label:"Otoko no ko / 男の娘"},{value:"futanari",label:"Futanari / フタナリ"},{value:"r-18g",label:"R-18G / グロ"}],qt=[{value:"sfw",label:"SFW / 全年齢"}],Be="agreedToViewMature",ta=()=>{const{rj:s}=bt(),o=Ge(),[S,g]=vt(),[i,h]=m(()=>localStorage.getItem(Be)==="true"),[v,A]=m(!1),[k,T]=m(()=>S.get("q")||""),[B,R]=m(()=>S.get("q")||""),[C,f]=m("latest"),[w,M]=m("sfw"),[l,u]=m(1),[d,P]=m(null),[p,q]=m(null),[x,te]=m(!0),[F,Y]=m(()=>localStorage.getItem("asmrTranslateEN")==="true"),[_,oe]=m(!1),D=yt(),{toggle:ae,bookmarkedIds:he}=Ze(),{popup:$,openPopup:ne,scheduleClose:H,cancelClose:Ne,closePopup:pe}=xt();N(()=>wt("jasmr",()=>oe(!0)),[]),N(()=>{localStorage.setItem("asmrTranslateEN",String(F))},[F]),N(()=>{const n=()=>h(localStorage.getItem(Be)==="true");return window.addEventListener("focus",n),window.addEventListener("storage",n),()=>{window.removeEventListener("focus",n),window.removeEventListener("storage",n)}},[]);const ge=i,J=ge?w:"sfw",Ce=ge?Ut:qt,{data:ie,isLoading:Se,isError:Le,isFetching:fe}=Mt(B,l,C,J),U=$e.useMemo(()=>ie?.shows??[],[ie?.shows]),Re=ie?.hasNext??!1;N(()=>{if(!s){d&&!p&&P(null);return}const n=s.toUpperCase();if(p&&(p.work.id?.toUpperCase()===n||p.work._id?.toUpperCase()===n)){d&&P(null);return}const c=U.find(L=>(L.id||L._id)?.toUpperCase()===n);c?(!d||(d.id||d._id)!==(c.id||c._id))&&P(c):(!d||(d.id||d._id)?.toUpperCase()!==n)&&P({_id:n,id:n,name:n})},[s,U,p,d]);const Pe=V(()=>{o("/asmr")},[o]);N(()=>{!s&&p&&q(null)},[s,p]);const{data:G}=Qe(p&&p.work.id||null),be=p?[p.work.thumbnail,...G?.images||[]].filter(Boolean):[],W=[...U.map(n=>n.name),d?.name||"",p?.work.name||"",...G?.chapters?.map(n=>n.label)||[]].filter(Boolean),{t:K}=Dt(W,F);N(()=>{const n=p?p.work.name:d?d.name:s?s.toUpperCase():"",c=n?F?K(n):n:"",L=c?`${c} - dango`:"dango";document.title=L;try{window.history.replaceState(window.history.state,L,window.location.href)}catch{}},[d,p,s,F,K]);const Q=n=>{n.preventDefault(),R(k),u(1);const c=new URLSearchParams(S);k.trim()?c.set("q",k.trim()):c.delete("q"),c.delete("page"),g(c,{replace:!0})};N(()=>{const n=S.get("q")||"";T(c=>c===n?c:n),R(c=>c===n?c:n),u(1)},[S]);const ce=n=>{n.target.checked&&!i&&A(!0)},X=()=>{localStorage.setItem(Be,"true"),h(!0),A(!1),u(1)},Z=()=>{A(!1)},Te=V((n,c,L)=>{P(null),te(!0),q({work:n,tracks:c,index:L})},[]);return e("div",{className:`${t.page} ${p?t.pageWithPlayer:""}`,children:[!(p&&x)&&e(O,{children:[e("header",{className:t.header,children:[e("h1",{className:t.pageTitle,children:[e(y,{name:"headphones"})," ASMR"]}),e("form",{className:t.searchForm,onSubmit:Q,children:[e("input",{className:t.searchInput,type:"text",value:k,onChange:n=>T(n.target.value),placeholder:"Search works, circles, CV… (-word excludes)","aria-label":"Search ASMR works"}),e("button",{className:t.searchBtn,type:"submit","aria-label":"Search",children:e(y,{name:"search"})})]})]}),e("div",{className:t.filterBar,children:[e("label",{className:t.filterLabel,htmlFor:"asmr-sort",children:"Sort"}),e("select",{id:"asmr-sort",className:t.sortSelect,value:C,onChange:n=>{f(n.target.value),u(1)},children:Ht.map(n=>e("optgroup",{label:n.label,children:n.options.map(c=>e("option",{value:c.value,children:c.label},c.value))},n.label))}),e("label",{className:t.filterLabel,htmlFor:"asmr-rating",children:"Type"}),e("select",{id:"asmr-rating",className:t.sortSelect,value:w,onChange:n=>{M(n.target.value),u(1)},children:Ce.map(n=>e("option",{value:n.value,children:n.label},n.value))}),e("div",{className:t.filterTogglesGroup,children:[e("div",{className:t.translateToggleWrap,children:[e("span",{className:t.filterLabel,children:"JP"}),e(ze,{id:"asmr-translate-toggle",isChecked:F,onChange:n=>Y(n.target.checked)}),e("span",{className:t.filterLabel,children:"EN"})]}),!i&&e("div",{className:t.matureToggleWrap,children:[e("label",{className:t.matureLabel,htmlFor:"asmr-mature-toggle",children:"Mature"}),e(ze,{id:"asmr-mature-toggle",isChecked:!1,onChange:ce})]})]})]}),Le?e("p",{className:t.statusMsg,children:"Failed to load works. Please try again."}):Se&&U.length===0?e("div",{className:t.grid,"aria-hidden":!0,children:Array.from({length:12}).map((n,c)=>e("div",{className:t.skeletonCard,children:[e("div",{className:`${t.skeletonThumb} ${t.shimmer}`}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"88%"}}),e("div",{className:`${t.skeletonLine} ${t.shimmer}`,style:{width:"55%"}})]},c))}):U.length===0?e("p",{className:t.statusMsg,children:"No works found."}):e(O,{children:[e("div",{className:`${t.grid} ${fe?t.fetching:""}`,children:U.map(n=>{const c=F?{...n,name:K(n.name)}:n,L=Xe(n),re=Ye(L),ee=he.has(re),se=`/asmr/${encodeURIComponent(L)}`;return e("div",{className:t.asmrCardWrap,children:[e(Nt,{item:{id:re,title:c.name,thumbnail:n.thumbnail||"",typeBadge:L||void 0,isAdult:Ie(n)},linkTo:se,hoverIcon:"info",layout:"horizontal",showInfoButton:!0,display:{elements:{poster:{typeBadge:!0,chapterBadge:!1,adultBadge:!0},info:{title:!0,mobileBadges:!0,progress:!1,meta:!1}}},onOpenDetails:z=>ne(z,{rjCode:L,title:c.name,thumbnail:n.thumbnail||"",isAdult:Ie(n),rating:n.rating,listenTarget:se}),onPopupHoverIntent:z=>z?Ne():H(),rawThumbnail:!0}),e("button",{className:`${t.bookmarkBtn} ${ee?t.bookmarked:""}`,onClick:z=>{z.preventDefault(),z.stopPropagation(),ae({rjCode:L,title:n.name,thumbnail:n.thumbnail||"",isAdult:Ie(n)})},title:ee?"Remove from listening list":"Add to listening list","aria-label":ee?"Remove from listening list":"Add to listening list","aria-pressed":ee,children:e(y,{name:ee?"check":"plus",size:12})})]},n._id||n.id)})}),e("nav",{className:t.pagination,children:[e("button",{className:t.pageBtn,disabled:l<=1,onClick:()=>u(n=>Math.max(1,n-1)),children:"Previous"}),e("span",{className:t.pageIndicator,children:["Page ",l]}),e("button",{className:t.pageBtn,disabled:!Re,onClick:()=>u(n=>n+1),children:"Next"})]})]})]}),d&&e(Pt,{work:d,onClose:Pe,onPlay:Te,t:K}),$&&e(Lt,{data:$.data,anchorRect:$.rect,bookmarked:he.has(Ye($.data.rjCode)),onToggleBookmark:()=>ae({rjCode:$.data.rjCode,title:$.data.title,thumbnail:$.data.thumbnail||"",isAdult:$.data.isAdult}),onMouseEnter:Ne,onMouseLeave:H,onRequestClose:pe}),_&&e(Et,{isOpen:_,onClose:()=>oe(!1),onSuccess:()=>{D.invalidateQueries({queryKey:["asmrBrowse"]}),D.invalidateQueries({queryKey:["asmrWork"]})}}),v&&e(xe,{isOpen:v,title:"Content Warning",onClose:Z,children:e("div",{style:{padding:"var(--space-4)",textAlign:"center"},children:[e("p",{children:"This section contains mature content intended for adult audiences."}),e("p",{children:["By proceeding, you confirm that you are ",e("strong",{children:"18 years of age or older"})," (or the age of majority in your jurisdiction) and wish to view this content."]}),e("p",{style:{fontSize:"var(--font-size-xs)",color:"var(--text-secondary)",marginTop:"var(--space-4)"},children:["You can reset this preference at any time in the ",e("strong",{children:"Settings"})," page."]}),e("div",{style:{marginTop:"var(--space-4)",display:"flex",gap:"var(--space-2-5)",justifyContent:"center"},children:[e(me,{variant:"secondary",onClick:Z,children:"Go Back"}),e(me,{onClick:X,children:"I'm 18+, Continue"})]})]})}),p&&e(It,{title:p.work.name,images:be,chapters:G?.chapters||[],tracks:p.tracks,trackIndex:p.index,expanded:x,isAdult:!!p.work.isAdult,rjCode:p.work.id||p.work._id,t:K,onTrackChange:n=>q(c=>c&&{...c,index:n}),onExpandedChange:te,onClose:()=>{q(null),te(!0),s&&o("/asmr")}})]})};export{ta as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
._page_aacjp_1{max-width:var(--layout-asmr-max-width);margin:0 auto;padding:var(--space-6) var(--space-4);min-height:calc(100vh - var(--layout-page-offset))}._pageWithPlayer_aacjp_8{padding-bottom:var(--layout-page-offset)}._header_aacjp_12{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}._pageTitle_aacjp_20{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xl);margin:0;color:var(--text-primary)}._searchForm_aacjp_29{display:flex;flex:1;min-width:var(--size-220);max-width:var(--size-480);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}._searchForm_aacjp_29:focus-within{border-color:var(--accent)}._searchInput_aacjp_44{flex:1;min-width:0;padding:var(--space-2-5) var(--space-3);border:none;background:transparent;color:var(--text-primary);font-size:var(--font-size-sm);outline:none}._searchBtn_aacjp_55{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--size-44);border:none;border-left:var(--space-px) solid var(--border-primary);background:var(--accent);color:var(--accent-text);cursor:pointer}._sortSelect_aacjp_68{padding:var(--space-2-5) var(--space-3);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer}._grid_aacjp_78{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--size-250),1fr));gap:var(--space-4);transition:opacity var(--transition-fast)}._fetching_aacjp_85{opacity:.45;pointer-events:none}._card_aacjp_90{display:flex;flex-direction:column;text-align:left;padding:0;border:none;background:none;cursor:pointer;color:inherit}._thumbWrap_aacjp_101{position:relative;aspect-ratio:4 / 3;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-tertiary);transition:transform var(--transition-fast) var(--ease-smooth),box-shadow var(--transition-fast) var(--ease-smooth)}._card_aacjp_90:hover ._thumbWrap_aacjp_101{transform:translateY(calc(var(--space-1) * -1));box-shadow:var(--shadow-lg)}._thumb_aacjp_101{width:100%;height:100%;object-fit:cover;display:block}._thumbPlaceholder_aacjp_124{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:var(--font-size-sm)}._adultBadge_aacjp_132{position:absolute;top:var(--space-2);right:var(--space-2);padding:var(--space-2px) var(--space-2);border-radius:var(--radius-full);background:var(--color-danger-bg);color:var(--text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}._cardTitle_aacjp_144{margin:var(--space-2) 0 var(--space-2px);font-size:var(--font-size-sm);color:var(--text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}._cardMeta_aacjp_154{margin:0;font-size:var(--font-size-xs);color:var(--text-tertiary)}._asmrCardWrap_aacjp_160{position:relative;min-width:0}._bookmarkBtn_aacjp_165{position:absolute;top:var(--space-2);right:var(--space-2);width:28px;height:28px;border-radius:50%;background-color:#0009;color:#fff;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s ease,background-color .15s ease,transform .15s ease;z-index:20}._asmrCardWrap_aacjp_160:hover ._bookmarkBtn_aacjp_165,._asmrCardWrap_aacjp_160:focus-within ._bookmarkBtn_aacjp_165,._bookmarkBtn_aacjp_165._bookmarked_aacjp_189{opacity:1}._bookmarkBtn_aacjp_165:hover{background-color:var(--accent);border-color:var(--accent);color:var(--accent-text);transform:scale(1.08)}._bookmarkBtn_aacjp_165._bookmarked_aacjp_189{background-color:var(--accent);border-color:var(--accent);color:var(--accent-text)}._popupCover_aacjp_206{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-md);margin-bottom:var(--space-3);background:var(--bg-tertiary)}@media(hover:none),(pointer:coarse){._bookmarkBtn_aacjp_165{opacity:1}}@media(max-width:768px){._popupCover_aacjp_206{aspect-ratio:3 / 4;max-height:38vh}}._statusMsg_aacjp_229{text-align:center;color:var(--text-secondary);padding:var(--space-8) 0}._skeletonCard_aacjp_237{display:flex;flex-direction:column}._skeletonThumb_aacjp_242{aspect-ratio:4 / 3;border-radius:var(--radius-lg);background:var(--bg-tertiary)}._skeletonLine_aacjp_248{height:var(--space-3);border-radius:var(--radius-xs);margin-top:var(--space-2);background:var(--bg-tertiary)}._shimmer_aacjp_255{position:relative;overflow:hidden}._shimmer_aacjp_255:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--shimmer-highlight),transparent);animation:_skeleton-wave_aacjp_1 var(--duration-shimmer) infinite}._pagination_aacjp_269{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-6)}._pageBtn_aacjp_277{padding:var(--space-2) var(--space-5);border:var(--space-px) solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);cursor:pointer}._pageBtn_aacjp_277:disabled{opacity:.4;cursor:not-allowed}._pageIndicator_aacjp_291{color:var(--text-secondary);font-size:var(--font-size-sm)}._matureToggleWrap_aacjp_296{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}._matureLabel_aacjp_303{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--text-secondary)}._translateToggleWrap_aacjp_309{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}._filterTogglesGroup_aacjp_316{display:flex;align-items:center;gap:var(--space-4);margin-left:auto}._filterTogglesGroup_aacjp_316 ._translateToggleWrap_aacjp_309,._filterTogglesGroup_aacjp_316 ._matureToggleWrap_aacjp_296{margin-left:0}._filterBar_aacjp_328{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4)}._filterLabel_aacjp_335{font-size:var(--font-size-sm);color:var(--text-secondary)}._detailOverlay_aacjp_340{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;background:var(--bg-overlay-heavy);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));padding:var(--space-4)}._detailModal_aacjp_352{position:relative;width:min(var(--size-720),100%);max-height:85vh;overflow-y:auto;border-radius:var(--radius-xl);border:var(--space-px) solid var(--border-secondary);background:var(--bg-elevated);box-shadow:var(--glass-shadow);padding:var(--space-5)}._detailClose_aacjp_364{position:absolute;top:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:center;width:var(--size-34);height:var(--size-34);border:none;border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer}._detailHeader_aacjp_380{display:flex;flex-direction:column;gap:var(--space-4)}._detailCover_aacjp_386{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0;background:var(--bg-tertiary)}._detailInfo_aacjp_395{min-width:0}._detailTitle_aacjp_399{margin:0 0 var(--space-2);font-size:var(--font-size-lg);color:var(--text-primary);line-height:1.35}._detailRj_aacjp_406{margin:0 0 var(--space-3);font-size:var(--font-size-xs);color:var(--text-tertiary)}._metaRow_aacjp_412{margin:0 0 4px;font-size:var(--font-size-sm);color:var(--text-secondary)}._metaLabel_aacjp_418{display:inline-block;min-width:var(--space-16);color:var(--text-tertiary)}._tagChips_aacjp_424{display:inline-flex;flex-wrap:wrap;gap:var(--space-1)}._tagChip_aacjp_424{padding:var(--space-2px) var(--space-2);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);font-size:var(--font-size-xs)}._npOverlay_aacjp_440{position:fixed;inset:0;z-index:var(--z-overlay);display:flex;flex-direction:column;background:var(--bg-dark);overflow:hidden;overscroll-behavior:contain}body.asmr-player-open{overflow:hidden}._playerBarDocked_aacjp_455{position:static;transform:translateY(0);max-height:var(--size-240);overflow:visible;transition:transform var(--transition-emphasized),max-height var(--transition-emphasized),opacity var(--transition-base),padding var(--transition-base),border-width var(--transition-base);will-change:transform,max-height,opacity}._playerBarDockedHidden_aacjp_469{max-height:0!important;opacity:0;transform:translateY(18%);padding-top:0!important;padding-bottom:0!important;border-width:0!important;pointer-events:none;overflow:hidden!important}._npOverlayControlsHidden_aacjp_480 ._npArrow_aacjp_480,._npOverlayControlsHidden_aacjp_480 ._npImageCount_aacjp_481{opacity:0;pointer-events:none;transform:translateY(-50%) scale(.96);transition:opacity var(--transition-base),transform var(--transition-emphasized)}._npOverlayControlsHidden_aacjp_480 ._npStage_aacjp_490{cursor:pointer}._npStage_aacjp_490{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--bg-black);transition:padding var(--transition-emphasized)}._npStage_aacjp_490,._sliderViewport_aacjp_506,._slide_aacjp_506,._slideImg_aacjp_508{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;outline:none;-webkit-user-select:none;user-select:none}._npStage_aacjp_490:focus,._sliderViewport_aacjp_506:focus,._slide_aacjp_506:focus,._slideImg_aacjp_508:focus{outline:none!important;box-shadow:none!important}._slideImg_aacjp_508::-moz-focus-inner{border:0}._npStageBlank_aacjp_527{background:var(--bg-dark)}._npStageImg_aacjp_531{max-width:min(92vw,var(--size-900));max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none}._sliderViewport_aacjp_506{position:absolute;inset:0;overflow:hidden}._sliderTrack_aacjp_546{display:flex;height:100%;transition:transform var(--transition-normal);will-change:transform}._slide_aacjp_506{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-5) var(--size-84);box-sizing:border-box;transition:padding var(--transition-emphasized)}._slideImg_aacjp_508{max-width:100%;max-height:100%;object-fit:contain;-webkit-user-select:none;user-select:none;opacity:0;transform:scale(.985);-webkit-tap-highlight-color:transparent;outline:none;transition:opacity var(--transition-base),transform var(--transition-emphasized),max-height var(--transition-emphasized)}._slideImgLoaded_aacjp_579{opacity:1;transform:none}._slideSpinner_aacjp_584{position:absolute;left:50%;top:50%;width:var(--size-44);height:var(--size-44);margin:calc(var(--size-22) * -1) 0 0 calc(var(--size-22) * -1);border-radius:var(--radius-full);border:var(--space-2px) solid var(--border-strong);border-top-color:var(--text-primary);animation:_spin_aacjp_1 var(--duration-spin) linear infinite;pointer-events:none}@keyframes _spin_aacjp_1{to{transform:rotate(360deg)}}._npArrow_aacjp_480{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:var(--size-48);height:var(--size-48);border:var(--space-px) solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-scrim);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));box-shadow:var(--shadow-scrim);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast)}._npArrow_aacjp_480:hover:not(:disabled){background:var(--bg-scrim-strong)}._npArrow_aacjp_480:disabled{opacity:.25;cursor:not-allowed}._npArrowLeft_aacjp_634{left:var(--space-5)}._npArrowRight_aacjp_638{right:var(--space-5)}._npImageCount_aacjp_481{position:absolute;top:calc(var(--space-4) + var(--space-16));right:var(--space-4);padding:var(--space-2px) var(--space-2-5);border-radius:var(--radius-full);background:var(--bg-overlay-strong);color:var(--text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;z-index:var(--z-base)}._chapterPanel_aacjp_655{position:absolute;bottom:calc(100% + var(--space-2-5));right:var(--space-5);width:min(var(--size-440),calc(100vw - var(--space-8)));max-height:min(46vh,var(--size-420));overflow-y:auto;background:var(--bg-elevated);border:var(--space-px) solid var(--border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel);padding:var(--space-1-5);z-index:var(--z-dropdown)}._chapterRow_aacjp_670{display:flex;align-items:baseline;gap:var(--space-3);width:100%;text-align:left;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-primary);cursor:pointer;font-size:var(--font-size-sm)}._chapterRow_aacjp_670:hover{background:var(--bg-tertiary)}._chapterRowActive_aacjp_689{background:var(--bg-selected)}._chapterRowTime_aacjp_693{flex-shrink:0;color:var(--text-tertiary);font-variant-numeric:tabular-nums}._chapterRowActive_aacjp_689 ._chapterRowTime_aacjp_693{color:var(--accent);font-weight:var(--font-weight-semibold)}._chapterRowLabel_aacjp_704{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._npBackdrop_aacjp_710{position:fixed;inset:0;z-index:-1}._playerBtn_aacjp_716._playerBtnActive_aacjp_716{color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent);box-shadow:0 0 10px var(--accent-glow)}._tracksSection_aacjp_722{margin-top:var(--space-5)}._tracksHeading_aacjp_726{font-size:var(--font-size-base);color:var(--text-primary);margin:0 0 var(--space-2)}._trackList_aacjp_732{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1-5)}._trackRow_aacjp_741{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:var(--space-px) solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-sm)}._trackRow_aacjp_741:hover{border-color:var(--accent)}._trackIcon_aacjp_759{color:var(--accent);flex-shrink:0}._trackLabel_aacjp_764{flex:1;text-align:left}._trackType_aacjp_769{font-size:var(--font-size-xs);color:var(--text-tertiary)}._noTracks_aacjp_774{color:var(--text-secondary);font-size:var(--font-size-sm)}._playAllBtn_aacjp_779{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2-5) var(--space-5);border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-text);font-size:var(--font-size-base);cursor:pointer}._detailActions_aacjp_792{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}._playerBar_aacjp_455{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-overlay);display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2-5) var(--space-5);padding-bottom:calc(var(--space-2-5) + env(safe-area-inset-bottom,0px));background:var(--glass-bg);border-top:var(--space-px) solid var(--glass-border);-webkit-backdrop-filter:blur(var(--blur-lg));backdrop-filter:blur(var(--blur-lg))}._playerActions_aacjp_815{display:flex;align-items:center;gap:var(--space-2)}._playerInfo_aacjp_821{min-width:0;width:var(--size-240)}._playerTitle_aacjp_826{margin:0;font-size:var(--font-size-sm);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._playerTrack_aacjp_835{margin:var(--space-2px) 0 0;font-size:var(--font-size-xs);color:var(--text-tertiary)}._playerControls_aacjp_841{display:flex;align-items:center;gap:var(--space-3);flex:1}._seekRow_aacjp_848{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}._playerButtons_aacjp_856{display:flex;align-items:center;gap:var(--space-2)}._playerBtn_aacjp_716{display:flex;align-items:center;justify-content:center;width:var(--size-36);height:var(--size-36);border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-quick),opacity var(--transition-fast)}._playerBtn_aacjp_716:disabled{opacity:.35;cursor:not-allowed}@media(hover:hover)and (pointer:fine){._playerBtn_aacjp_716:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}._seekBtn_aacjp_891:hover:not(:disabled){background:var(--bg-hover-strong);color:var(--accent)}._seekBtn_aacjp_891:hover ._seekBtnLabel_aacjp_896{background:var(--accent);color:var(--accent-text)}._playBtn_aacjp_901:hover:not(:disabled){background:var(--accent-light);color:var(--accent-text);box-shadow:0 0 12px var(--accent-glow)}}._playerBtn_aacjp_716:active:not(:disabled){transform:scale(.94);transition:transform var(--transition-quick),background var(--transition-quick)}._playBtn_aacjp_901{background:var(--accent);color:var(--accent-text);width:var(--size-42);height:var(--size-42)}._playBtn_aacjp_901:disabled{opacity:1}._seekBtn_aacjp_891{position:relative;font-size:var(--font-size-sm);color:var(--text-primary)}._seekBtnLabel_aacjp_896{position:absolute;bottom:var(--space-px);left:50%;transform:translate(-50%);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);line-height:1;letter-spacing:-.02em;background:var(--bg-overlay);color:var(--text-primary);padding:var(--space-px) var(--space-2px);border-radius:var(--radius-sm);pointer-events:none}._seekBar_aacjp_948,._volumeBar_aacjp_949{-webkit-appearance:none;appearance:none;height:var(--size-18);background:transparent;cursor:pointer}._seekBar_aacjp_948::-webkit-slider-runnable-track,._volumeBar_aacjp_949::-webkit-slider-runnable-track{width:100%;height:var(--space-1);border-radius:var(--space-1)}._seekBar_aacjp_948::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--played-percent, 0%),var(--track-buffered) var(--played-percent, 0%),var(--track-buffered) var(--buffered-percent, 0%),var(--track-bg) var(--buffered-percent, 0%),var(--track-bg) 100%)}._volumeBar_aacjp_949::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--volume-percent, 100%),var(--track-bg) var(--volume-percent, 100%),var(--track-bg) 100%)}._seekBar_aacjp_948::-moz-range-track{width:100%;height:var(--space-1);border-radius:var(--space-1);background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--played-percent, 0%),var(--track-buffered) var(--played-percent, 0%),var(--track-buffered) var(--buffered-percent, 0%),var(--track-bg) var(--buffered-percent, 0%),var(--track-bg) 100%)}._volumeBar_aacjp_949::-moz-range-track{width:100%;height:var(--space-1);border-radius:var(--space-1);background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--volume-percent, 100%),var(--track-bg) var(--volume-percent, 100%),var(--track-bg) 100%)}._seekBar_aacjp_948::-webkit-slider-thumb,._volumeBar_aacjp_949::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:var(--space-3);width:var(--space-3);border-radius:var(--radius-full);background:var(--text-primary);margin-top:calc(var(--space-1) * -1);box-shadow:var(--shadow-thumb)}._seekBar_aacjp_948::-moz-range-thumb,._volumeBar_aacjp_949::-moz-range-thumb{height:var(--space-3);width:var(--space-3);border:none;border-radius:var(--radius-full);background:var(--text-primary);box-shadow:var(--shadow-thumb)}._seekBar_aacjp_948{flex:1;min-width:0}._timeLabel_aacjp_1041{font-size:var(--font-size-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums}._playerRight_aacjp_1047{display:flex;align-items:center;gap:var(--space-2)}._volumeIcon_aacjp_1053{color:var(--text-secondary)}._volumeBar_aacjp_949{width:var(--size-90)}@media(max-width:768px){._detailHeader_aacjp_380{flex-direction:column}._detailCover_aacjp_386{width:100%}._filterBar_aacjp_328{flex-wrap:wrap}._filterBar_aacjp_328 ._sortSelect_aacjp_68{flex:1 1 var(--size-140);min-width:0}._pageWithPlayer_aacjp_8{padding-bottom:var(--layout-player-mobile)}._playerBar_aacjp_455{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"toggle info actions" "controls controls controls" "volume volume volume";align-items:center;column-gap:var(--space-2);row-gap:var(--space-2px);padding:var(--space-2) var(--space-3);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px))}._playerToggle_aacjp_1097{grid-area:toggle}._playerInfo_aacjp_821{grid-area:info;width:auto}._playerActions_aacjp_815{grid-area:actions;margin-right:calc(var(--space-1-5) * -1)}._playerControls_aacjp_841{grid-area:controls;gap:var(--space-2);min-width:0;justify-content:center}._playerRight_aacjp_1047{grid-area:volume;width:100%}._volumeBar_aacjp_949{flex:1;width:auto;height:var(--space-6)}._slide_aacjp_506{padding:0 var(--size-52)}._npArrow_aacjp_480{width:var(--size-42);height:var(--size-42);opacity:.85}._npArrowLeft_aacjp_634{left:var(--space-2)}._npArrowRight_aacjp_638{right:var(--space-2)}._npImageCount_aacjp_481{top:calc(var(--space-3) + env(safe-area-inset-top,0px));right:var(--space-3)}._chapterPanel_aacjp_655{right:var(--space-3);max-height:55vh}}@media(max-width:768px)and (orientation:portrait){._npStage_aacjp_490{height:100%}._sliderViewport_aacjp_506{inset:0}._slide_aacjp_506{padding:0}._npOverlay_aacjp_440:not(._npOverlayControlsHidden_aacjp_480) ._slide_aacjp_506{padding-bottom:var(--space-2-5)}._npOverlay_aacjp_440:not(._npOverlayControlsHidden_aacjp_480) ._slideImg_aacjp_508{max-height:calc(100% - var(--space-2-5))}._slideImg_aacjp_508{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:center}._playerBar_aacjp_455{grid-template-areas:"toggle info actions" "controls controls controls" "volume volume volume";row-gap:var(--space-2-5);padding:var(--space-2-5) var(--space-3);padding-bottom:calc(var(--space-2-5) + env(safe-area-inset-bottom,0px))}._playerControls_aacjp_841{flex-direction:column;align-items:center;gap:var(--space-2);width:100%}._playerButtons_aacjp_856{justify-content:center;width:100%;gap:var(--space-1-5)}._seekRow_aacjp_848{width:100%;justify-content:center}._seekRow_aacjp_848 ._seekBar_aacjp_948{flex:1}._playerRight_aacjp_1047{justify-content:center;width:100%}._playerRight_aacjp_1047 ._volumeBar_aacjp_949{flex:1;width:100%;max-width:var(--size-320)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const a="_page_aacjp_1",e="_pageWithPlayer_aacjp_8",t="_header_aacjp_12",c="_pageTitle_aacjp_20",_="_searchForm_aacjp_29",o="_searchInput_aacjp_44",p="_searchBtn_aacjp_55",r="_sortSelect_aacjp_68",n="_grid_aacjp_78",l="_fetching_aacjp_85",s="_thumbPlaceholder_aacjp_124",i="_asmrCardWrap_aacjp_160",d="_bookmarkBtn_aacjp_165",j="_bookmarked_aacjp_189",g="_popupCover_aacjp_206",k="_statusMsg_aacjp_229",y="_skeletonCard_aacjp_237",m="_skeletonThumb_aacjp_242",h="_skeletonLine_aacjp_248",B="_shimmer_aacjp_255",T="_pagination_aacjp_269",u="_pageBtn_aacjp_277",b="_pageIndicator_aacjp_291",w="_matureToggleWrap_aacjp_296",L="_matureLabel_aacjp_303",C="_translateToggleWrap_aacjp_309",R="_filterTogglesGroup_aacjp_316",v="_filterBar_aacjp_328",I="_filterLabel_aacjp_335",A="_detailOverlay_aacjp_340",f="_detailModal_aacjp_352",S="_detailClose_aacjp_364",H="_detailHeader_aacjp_380",W="_detailCover_aacjp_386",O="_detailInfo_aacjp_395",P="_detailTitle_aacjp_399",D="_detailRj_aacjp_406",M="_metaRow_aacjp_412",F="_metaLabel_aacjp_418",G="_tagChips_aacjp_424",V="_tagChip_aacjp_424",x="_npOverlay_aacjp_440",q="_playerBarDocked_aacjp_455",z="_playerBarDockedHidden_aacjp_469",E="_npOverlayControlsHidden_aacjp_480",J="_npArrow_aacjp_480",K="_npImageCount_aacjp_481",N="_npStage_aacjp_490",Q="_sliderViewport_aacjp_506",U="_slide_aacjp_506",X="_slideImg_aacjp_508",Y="_npStageBlank_aacjp_527",Z="_sliderTrack_aacjp_546",$="_slideImgLoaded_aacjp_579",aa="_slideSpinner_aacjp_584",ea="_npArrowLeft_aacjp_634",ta="_npArrowRight_aacjp_638",ca="_chapterPanel_aacjp_655",_a="_chapterRow_aacjp_670",oa="_chapterRowActive_aacjp_689",pa="_chapterRowTime_aacjp_693",ra="_chapterRowLabel_aacjp_704",na="_npBackdrop_aacjp_710",la="_playerBtn_aacjp_716",sa="_playerBtnActive_aacjp_716",ia="_tracksSection_aacjp_722",da="_tracksHeading_aacjp_726",ja="_trackList_aacjp_732",ga="_trackRow_aacjp_741",ka="_trackIcon_aacjp_759",ya="_trackLabel_aacjp_764",ma="_trackType_aacjp_769",ha="_noTracks_aacjp_774",Ba="_playAllBtn_aacjp_779",Ta="_detailActions_aacjp_792",ua="_playerBar_aacjp_455",ba="_playerActions_aacjp_815",wa="_playerInfo_aacjp_821",La="_playerTitle_aacjp_826",Ca="_playerTrack_aacjp_835",Ra="_playerControls_aacjp_841",va="_seekRow_aacjp_848",Ia="_playerButtons_aacjp_856",Aa="_seekBtn_aacjp_891",fa="_seekBtnLabel_aacjp_896",Sa="_playBtn_aacjp_901",Ha="_seekBar_aacjp_948",Wa="_volumeBar_aacjp_949",Oa="_timeLabel_aacjp_1041",Pa="_playerRight_aacjp_1047",Da="_volumeIcon_aacjp_1053",Ma="_playerToggle_aacjp_1097",Fa={page:a,pageWithPlayer:e,header:t,pageTitle:c,searchForm:_,searchInput:o,searchBtn:p,sortSelect:r,grid:n,fetching:l,thumbPlaceholder:s,asmrCardWrap:i,bookmarkBtn:d,bookmarked:j,popupCover:g,statusMsg:k,skeletonCard:y,skeletonThumb:m,skeletonLine:h,shimmer:B,pagination:T,pageBtn:u,pageIndicator:b,matureToggleWrap:w,matureLabel:L,translateToggleWrap:C,filterTogglesGroup:R,filterBar:v,filterLabel:I,detailOverlay:A,detailModal:f,detailClose:S,detailHeader:H,detailCover:W,detailInfo:O,detailTitle:P,detailRj:D,metaRow:M,metaLabel:F,tagChips:G,tagChip:V,npOverlay:x,playerBarDocked:q,playerBarDockedHidden:z,npOverlayControlsHidden:E,npArrow:J,npImageCount:K,npStage:N,sliderViewport:Q,slide:U,slideImg:X,npStageBlank:Y,sliderTrack:Z,slideImgLoaded:$,slideSpinner:aa,npArrowLeft:ea,npArrowRight:ta,chapterPanel:ca,chapterRow:_a,chapterRowActive:oa,chapterRowTime:pa,chapterRowLabel:ra,npBackdrop:na,playerBtn:la,playerBtnActive:sa,tracksSection:ia,tracksHeading:da,trackList:ja,trackRow:ga,trackIcon:ka,trackLabel:ya,trackType:ma,noTracks:ha,playAllBtn:Ba,detailActions:Ta,playerBar:ua,playerActions:ba,playerInfo:wa,playerTitle:La,playerTrack:Ca,playerControls:Ra,seekRow:va,playerButtons:Ia,seekBtn:Aa,seekBtnLabel:fa,playBtn:Sa,seekBar:Ha,volumeBar:Wa,timeLabel:Oa,playerRight:Pa,volumeIcon:Da,playerToggle:Ma};export{Fa as a};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import{u as n,A as y,d as E,h as $,q as N,T as de,$ as Tt}from"./vendor-core-DfaOB3Rn.js";import{I as J}from"./vendor-icons-DrybRNxP.js";import{S as ge,h as Pt,Z as Nt,t as Ke,W as It,g as $t,B as le}from"./index-gMxawd-E.js";import{u as Mt}from"./vendor-query-BBT5_sHx.js";const At="_controls_ov6ol_1",Ft="_titleContainer_ov6ol_9",Rt="_scheduleInfo_ov6ol_15",Dt="_status_ov6ol_23",Ot="_nextEpisode_ov6ol_35",qt="_watchlistBtn_ov6ol_45",Ht="_inList_ov6ol_72",zt="_queueBtn_ov6ol_83",Wt="_queueActive_ov6ol_95",Vt="_modeToggleBtn_ov6ol_101",Ut="_modeToggleActive_ov6ol_108",Kt="_nativeToggleBtn_ov6ol_119",Gt="_nativeToggleActive_ov6ol_132",Xt="_markWatchedBtn_ov6ol_153",Qt="_markWatchedDone_ov6ol_167",jt="_completeSeriesBtn_ov6ol_178",Jt="_providerAndEpisodeRow_ov6ol_192",Yt="_episodeActions_ov6ol_199",Zt="_desktopEpisodeActions_ov6ol_206",en="_mobileEpisodeActions_ov6ol_213",tn="_episodeNavBtn_ov6ol_217",nn="_primary_ov6ol_247",rn="_secondary_ov6ol_257",on="_episodePickerBtn_ov6ol_261",sn="_queueCountdown_ov6ol_265",cn="_speedBoostBadge_ov6ol_280",an="_videoContainer_ov6ol_311",ln="_loadingOverlay_ov6ol_324",un="_loadingDots_ov6ol_338",dn="_dot_ov6ol_343",pn="_bounce_ov6ol_1",fn="_bufferingOverlay_ov6ol_372",mn="_bufferingSpinner_ov6ol_381",_n="_spin_ov6ol_921",vn="_videoIframe_ov6ol_396",hn="_videoElementHidden_ov6ol_419",gn="_upscalerCanvas_ov6ol_424",yn="_upscalerActive_ov6ol_437",bn="_upscalerStatusBadge_ov6ol_441",wn="_subtitleOverlay_ov6ol_456",Cn="_controlsOverlay_ov6ol_468",Sn="_hidden_ov6ol_498",kn="_centerPlayPause_ov6ol_504",En="_bottomControls_ov6ol_536",Ln="_progressBarContainer_ov6ol_553",xn="_progressBar_ov6ol_553",Bn="_scrubbing_ov6ol_576",Tn="_watchedBar_ov6ol_581",Pn="_bufferedBar_ov6ol_582",Nn="_thumb_ov6ol_604",In="_timeBubble_ov6ol_625",$n="_skipSegment_ov6ol_648",Mn="_op_ov6ol_662",An="_ed_ov6ol_666",Fn="_recap_ov6ol_670",Rn="_bottomControlsRow_ov6ol_674",Dn="_controlBtn_ov6ol_682",On="_timeDisplay_ov6ol_706",qn="_leftControls_ov6ol_715",Hn="_rightControls_ov6ol_716",zn="_middleControls_ov6ol_717",Wn="_skipControls_ov6ol_723",Vn="_skipBtn_ov6ol_729",Un="_volumeContainer_ov6ol_753",Kn="_volumeSlider_ov6ol_760",Gn="_settingsMenu_ov6ol_838",Xn="_slideUp_ov6ol_1",Qn="_qualityListInMenu_ov6ol_877",jn="_ccOptionsContainer_ov6ol_878",Jn="_qualityItemInMenu_ov6ol_886",Yn="_ccItem_ov6ol_887",Zn="_active_ov6ol_908",er="_sourceLoader_ov6ol_915",tr="_spinner_ov6ol_921",nr="_watchBtn_ov6ol_980",rr="_errorOverlay_ov6ol_1026",or="_retryButton_ov6ol_1036",sr="_sourceSelectionContainer_ov6ol_1064",cr="_slideUpIn_ov6ol_1",ir="_providerSelectContainer_ov6ol_1079",ar="_providerSelect_ov6ol_1079",lr="_sourceSelect_ov6ol_1064",ur="_sourceButtons_ov6ol_1135",dr="_sourceButton_ov6ol_1135",pr="_detailsBox_ov6ol_1167",fr="_detailsToggleBtn_ov6ol_1180",mr="_detailsGridContainer_ov6ol_1204",_r="_fadeIn_ov6ol_1",vr="_detailItem_ov6ol_1216",hr="_animeStatus_ov6ol_1236",gr="_genresList_ov6ol_1249",yr="_genreTag_ov6ol_1256",br="_loadingDetails_ov6ol_1274",wr="_descriptionSection_ov6ol_1281",Cr="_description_ov6ol_1281",Sr="_epJumpControls_ov6ol_1317",kr="_epRangeButtons_ov6ol_1328",Er="_metaTags_ov6ol_1334",Lr="_epRangeBtn_ov6ol_1341",xr="_epJumpInputGroup_ov6ol_1356",Br="_fullscreenActive_ov6ol_1388",Tr="_errorSubtext_ov6ol_1432",us={controls:At,titleContainer:Ft,scheduleInfo:Rt,status:Dt,nextEpisode:Ot,watchlistBtn:qt,inList:Ht,queueBtn:zt,queueActive:Wt,modeToggleBtn:Vt,modeToggleActive:Ut,nativeToggleBtn:Kt,nativeToggleActive:Gt,markWatchedBtn:Xt,markWatchedDone:Qt,completeSeriesBtn:jt,providerAndEpisodeRow:Jt,episodeActions:Yt,desktopEpisodeActions:Zt,mobileEpisodeActions:en,episodeNavBtn:tn,primary:nn,secondary:rn,episodePickerBtn:on,queueCountdown:sn,speedBoostBadge:cn,videoContainer:an,loadingOverlay:ln,loadingDots:un,dot:dn,bounce:pn,bufferingOverlay:fn,bufferingSpinner:mn,spin:_n,videoIframe:vn,videoElementHidden:hn,upscalerCanvas:gn,upscalerActive:yn,upscalerStatusBadge:bn,subtitleOverlay:wn,controlsOverlay:Cn,hidden:Sn,centerPlayPause:kn,bottomControls:En,progressBarContainer:Ln,progressBar:xn,scrubbing:Bn,watchedBar:Tn,bufferedBar:Pn,thumb:Nn,timeBubble:In,skipSegment:$n,op:Mn,ed:An,recap:Fn,bottomControlsRow:Rn,controlBtn:Dn,timeDisplay:On,leftControls:qn,rightControls:Hn,middleControls:zn,skipControls:Wn,skipBtn:Vn,volumeContainer:Un,volumeSlider:Kn,settingsMenu:Gn,slideUp:Xn,qualityListInMenu:Qn,ccOptionsContainer:jn,qualityItemInMenu:Jn,ccItem:Yn,active:Zn,sourceLoader:er,spinner:tr,watchBtn:nr,errorOverlay:rr,retryButton:or,sourceSelectionContainer:sr,slideUpIn:cr,providerSelectContainer:ir,providerSelect:ar,sourceSelect:lr,sourceButtons:ur,sourceButton:dr,detailsBox:pr,detailsToggleBtn:fr,detailsGridContainer:mr,fadeIn:_r,detailItem:vr,animeStatus:hr,genresList:gr,genreTag:yr,loadingDetails:br,descriptionSection:wr,description:Cr,epJumpControls:Sr,epRangeButtons:kr,metaTags:Er,epRangeBtn:Lr,epJumpInputGroup:xr,fullscreenActive:Br,errorSubtext:Tr},Pr="_playerPageLayout_xfhzl_1",Nr="_episodeSidebar_xfhzl_15",Ir="_playerMain_xfhzl_28",$r="_videoPlayerWrapper_xfhzl_36",Mr="_playerInfoHeader_xfhzl_52",Ar="_playerAnimeCard_xfhzl_58",Fr="_playerInfoContainer_xfhzl_70",Rr="_videoTitleSection_xfhzl_94",Dr="_theaterMode_xfhzl_276",ds={playerPageLayout:Pr,episodeSidebar:Nr,playerMain:Ir,videoPlayerWrapper:$r,playerInfoHeader:Mr,playerAnimeCard:Ar,playerInfoContainer:Fr,videoTitleSection:Rr,theaterMode:Dr},Or="_shell_41rxp_1",qr="_stage_41rxp_37",Hr="_shellFill_41rxp_85",zr="_shellFullscreen_41rxp_93",Wr="_uiLayer_41rxp_107",Vr="_volumeWrap_41rxp_118",Ur="_volumeSlider_41rxp_124",oe={shell:Or,stage:qr,shellFill:Hr,shellFullscreen:zr,uiLayer:Wr,volumeWrap:Vr,volumeSlider:Ur},Kr=.8,Gr=5,ps=2e3,Xe="autoplayEnabled",Xr=(e,r)=>r>0&&e>=r*Kr,fs=(e,r)=>e>Gr&&!Xr(e,r),ms=()=>{try{return localStorage.getItem(Xe)==="true"}catch{return!1}},_s=e=>{try{localStorage.setItem(Xe,String(e))}catch{}},Qr=["finished","completed","complete","ended"],vs=(e,r,t)=>e.length>0&&!!r&&e[e.length-1]===r&&Qr.some(c=>String(t||"").trim().toLowerCase().includes(c)),hs=e=>e.seekInduced?"none":e.autoplayEnabled&&e.hasNext?"advance":e.hasNext?"prompt-next":e.isFinal?"prompt-complete":"none",jr=e=>(e.language??e.lang??"").toLowerCase(),Jr=e=>(e.label??"").toLowerCase(),Yr=e=>`${e.language??e.lang??""}|||${e.label??""}`,Zr=e=>jr(e).startsWith("en")||Jr(e).includes("english");function gs(e,r){if(e.length===0||r?.enabled===!1)return-1;const t=r?.lastKey??null;if(t){const o=e.findIndex(u=>Yr(u)===t);if(o>=0)return o}const c=e.findIndex(Zr);return c>=0?c:0}const Z={fontSize:1.8,position:0,bgOpacity:.5,bgColor:"#000000",textColor:"#ffffff",edge:"shadow",bold:!1},Le=(e,r,t)=>Math.max(r,Math.min(t,e)),xe=e=>typeof e=="string"&&/^#[0-9a-fA-F]{6}$/.test(e),Se=(e,r,t,c)=>{try{const o=localStorage.getItem(e);if(o===null)return r;const u=parseFloat(o);return Number.isFinite(u)?Le(u,t,c):r}catch{return r}};function eo(){let e=Z.edge,r=Z.bgColor,t=Z.textColor,c=Z.bold;try{const o=localStorage.getItem("subtitleEdge");(o==="shadow"||o==="outline"||o==="none")&&(e=o);const u=localStorage.getItem("subtitleBgColor");xe(u)&&(r=u);const v=localStorage.getItem("subtitleTextColor");xe(v)&&(t=v);const C=localStorage.getItem("subtitleBold");C!==null&&(c=C==="true")}catch{}return{fontSize:Se("subtitleFontSize",Z.fontSize,.5,10),position:Se("subtitlePosition",Z.position,0,100),bgOpacity:Se("subtitleBgOpacity",Z.bgOpacity,0,1),bgColor:r,textColor:t,edge:e,bold:c}}function Qe(e,r){const t=`rgba(0, 0, 0, ${Le(r,0,1)})`;if(!xe(e))return t;const c=parseInt(e.slice(1,3),16),o=parseInt(e.slice(3,5),16),u=parseInt(e.slice(5,7),16);return`rgba(${c}, ${o}, ${u}, ${Le(r,0,1)})`}function je(e,r){return e==="none"?r<=0?"0 1px 3px rgba(0, 0, 0, 0.9)":"none":e==="outline"?["-1px 0 0 black","1px 0 0 black","0 -1px 0 black","0 1px 0 black","-1px -1px 0 black","1px -1px 0 black","-1px 1px 0 black","1px 1px 0 black","0 0 6px rgba(0, 0, 0, 0.9)"].join(", "):"0 0 4px black, 0 1px 2px rgba(0, 0, 0, 0.8)"}function ys(e){return`
|
|
2
|
-
video::cue {
|
|
3
|
-
font-size: ${e.fontSize}rem !important;
|
|
4
|
-
color: ${e.textColor} !important;
|
|
5
|
-
background-color: ${Qe(e.bgColor,e.bgOpacity)} !important;
|
|
6
|
-
font-weight: ${e.bold?"bold":"normal"} !important;
|
|
7
|
-
text-shadow: ${je(e.edge,e.bgOpacity)} !important;
|
|
8
|
-
}
|
|
9
|
-
`}function bs(e){return[`font-size: ${e.fontSize}rem`,`color: ${e.textColor}`,`background-color: ${Qe(e.bgColor,e.bgOpacity)}`,`font-weight: ${e.bold?"700":"400"}`,`text-shadow: ${je(e.edge,e.bgOpacity)}`,"padding: 0.2em 0.5em","border-radius: 0.25em","text-align: center","position: absolute","left: 50%","transform: translateX(-50%)","max-width: 92%","white-space: pre-wrap","overflow-wrap: break-word","line-height: 1.4"].join(`;
|
|
10
|
-
`)+";"}const to=new Set(["b","i","u","strong","em"]);function ws(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/<(\/?)([a-zA-Z]+)>/g,(t,c,o)=>to.has(o.toLowerCase())?`<${c}${o.toLowerCase()}>`:t)}function Cs(e){return e.replace(/<[^>]*>/g,"")}const Ss=["#ffffff","#ffff00","#7CFC00","#00e5ff","#ff9ff3","#ffa502"],ks=["#000000","#1e272e","#2f3542","#3d0c02","#0c3d2e","#ffffff"];function Es(e,r){const t=Number.isFinite(e)?e*16:Z.fontSize*16;return!Number.isFinite(r)||r<=0?t/16:Math.min(t,Math.max(13,r*.07))/16}function Ls(e){const r=Math.abs(e/1e3).toFixed(1);return e>0?`+${r}s`:e<0?`-${r}s`:"0.0s"}function xs(e,r){const t=e.clientWidth||0,c=e.clientHeight||0,o=e.videoWidth>0&&e.videoHeight>0?e.videoWidth/e.videoHeight:0;let u=c;o>0&&t>0&&c>0&&(u=t/c>o?c:t/o);const v=Math.max(0,(c-u)/2),C=Math.max(0,Math.min(100,Number(r)||0))/100*u;return v+C}const no="_centerControls_61n7k_1",ro="_centerSkipBtn_61n7k_15",oo="_centerPlayPause_61n7k_40",so="_playIconOffset_61n7k_71",ue={centerControls:no,centerSkipBtn:ro,centerPlayPause:oo,playIconOffset:so},Bs=({isPlaying:e,onTogglePlay:r,onSkipBack:t,onSkipForward:c,skipSeconds:o=10})=>n("div",{className:ue.centerControls,onClick:u=>u.stopPropagation(),children:[n("button",{className:ue.centerSkipBtn,onClick:t,title:`Skip back ${o}s`,"aria-label":`Skip back ${o} seconds`,children:n(J,{name:"replay-10"})}),n("button",{className:ue.centerPlayPause,"data-speed-boost-ignore":"true",onClick:r,"aria-label":e?"Pause":"Play",children:e?n(J,{name:"pause"}):n(J,{name:"play",className:ue.playIconOffset})}),n("button",{className:ue.centerSkipBtn,onClick:c,title:`Skip forward ${o}s`,"aria-label":`Skip forward ${o} seconds`,children:n(J,{name:"forward-10"})})]}),Ts=({classes:e,videoRef:r,duration:t,formatTime:c,isScrubbing:o,buffered:u="auto",onSeek:v,onScrubStart:C,onScrubMove:i,onScrubEnd:h,timeLabelRef:l,children:P})=>{const f=y(null),L=y(null),p=y(null),_=y(null),S=y(null),a=y(!1),b=y(o);b.current=o;const g=y({onScrubMove:i,onScrubEnd:h});g.current={onScrubMove:i,onScrubEnd:h};const[M,A]=E({time:0,position:null});$(()=>{const d=r.current;if(!d)return;const m=j=>{const D=j/t*100||0;L.current&&(L.current.style.width=`${D}%`),p.current&&(p.current.style.left=`${D}%`),l?.current&&(l.current.innerText=`${c(j)} / ${c(t)}`)},R=()=>{o||m(d.currentTime)},V=()=>{if(u==="auto"&&d.buffered.length>0){const D=d.buffered.end(d.buffered.length-1)/t*100||0;_.current&&(_.current.style.width=`${D}%`)}};return m(d.currentTime),V(),d.addEventListener("timeupdate",R),d.addEventListener("progress",V),()=>{d.removeEventListener("timeupdate",R),d.removeEventListener("progress",V)}},[r,t,o,u,c,l]);const W=d=>{if(!f.current)return 0;const m=f.current.getBoundingClientRect();return Math.min(1,Math.max(0,(d-m.left)/m.width))},G=d=>{const m=d*t,R=m/t*100||0;L.current&&(L.current.style.width=`${R}%`),p.current&&(p.current.style.left=`${R}%`),l?.current&&(l.current.innerText=`${c(m)} / ${c(t)}`);const V=f.current?.getBoundingClientRect();A({time:m,position:V?d*V.width:null})};$(()=>{if(!o){S.current=null;return}const d=R=>{if(S.current!==null&&R.pointerId!==S.current||!t)return;const V=W(R.clientX);g.current.onScrubMove(V);const j=V*t,D=j/t*100||0;L.current&&(L.current.style.width=`${D}%`),p.current&&(p.current.style.left=`${D}%`),l?.current&&(l.current.innerText=`${c(j)} / ${c(t)}`);const ee=f.current?.getBoundingClientRect();A({time:j,position:ee?V*ee.width:null})},m=R=>{S.current!==null&&R.pointerId!==S.current||(S.current=null,a.current=!0,R.pointerType!=="mouse"&&A({time:0,position:null}),g.current.onScrubEnd())};return document.addEventListener("pointermove",d),document.addEventListener("pointerup",m),document.addEventListener("pointercancel",m),()=>{document.removeEventListener("pointermove",d),document.removeEventListener("pointerup",m),document.removeEventListener("pointercancel",m)}},[o,t,c,l]);const x=d=>{if(d.pointerType==="mouse"&&d.button!==0||!r.current||!t)return;d.preventDefault(),S.current=d.pointerId;try{f.current?.setPointerCapture(d.pointerId)}catch{}b.current||C();const m=W(d.clientX);i(m),G(m)},q=d=>{if(!t||b.current||d.pointerType!=="mouse")return;const m=W(d.clientX);A({time:m*t,position:d.clientX-(f.current?.getBoundingClientRect().left??0)})},U=d=>{if(!(S.current!==null&&d.pointerId!==S.current)&&b.current){S.current=null,a.current=!0,d.pointerType!=="mouse"&&A({time:0,position:null});try{f.current?.hasPointerCapture(d.pointerId)&&f.current.releasePointerCapture(d.pointerId)}catch{}h()}};return n("div",{className:`${e.container} ${o&&e.scrubbing?e.scrubbing:""}`,ref:f,role:"slider","aria-label":"Seek","aria-valuemin":0,"aria-valuemax":Math.round(t||0),"aria-valuenow":Math.round((Number(L.current?.style.width?.replace("%",""))||0)*(t||0)/100),tabIndex:0,onClick:d=>{if(a.current){a.current=!1;return}!r.current||isNaN(t)||t===0||v(W(d.clientX))},onPointerDown:x,onPointerMove:q,onPointerUp:U,onPointerCancel:U,onMouseMove:d=>{if(o||!t)return;const m=W(d.clientX);A({time:m*t,position:d.clientX-(f.current?.getBoundingClientRect().left??0)})},onMouseLeave:()=>{o||A({time:0,position:null})},onKeyDown:d=>{if(!(!r.current||!t)&&(d.key==="ArrowRight"||d.key==="ArrowLeft")){d.preventDefault();const m=(d.key==="ArrowRight"?5:-5)/t,R=r.current.currentTime/t||0;v(Math.min(1,Math.max(0,R+m)))}},children:[M.position!==null&&n("div",{className:e.timeBubble,style:{left:M.position},children:c(M.time)}),n("div",{className:e.bar,children:[n("div",{className:e.buffered,ref:_,style:u==="full"?{width:"100%"}:void 0}),n("div",{className:e.watched,ref:L}),n("div",{className:e.thumb,ref:p,onMouseDown:d=>{d.preventDefault(),r.current&&(b.current||C())}}),P]})]})};function ke(){try{if(typeof window>"u")return!1;const e=window.matchMedia?.("(pointer: coarse)").matches??!1,t=(navigator.maxTouchPoints??0)>0||"ontouchstart"in window;return e||t}catch{return!1}}function Je(){const[e,r]=E(ke);return $(()=>{r(ke());let t=null;const c=()=>r(ke());try{t=window.matchMedia("(pointer: coarse)"),t.addEventListener?t.addEventListener("change",c):t.addListener(c)}catch{}return window.addEventListener("touchstart",c,{passive:!0,once:!0}),()=>{try{t&&(t.removeEventListener?t.removeEventListener("change",c):t.removeListener(c))}catch{}window.removeEventListener("touchstart",c)}},[]),e}const Ge=280;function co(e){return e?!!e.closest('button, input, select, textarea, a, [role="button"], [data-player-ui="true"]'):!1}const Ps=({player:e,topBar:r,centerControls:t,bottomBar:c,settingsPanel:o,overlays:u,isInteracting:v=!1,className:C,chromeDisabled:i=!1,children:h})=>{const{state:l,refs:P,actions:f}=e,L=P.playerContainerRef,_=Je()?5e3:3e3,S=y(0),a=y(null),b=y(v);b.current=v;const g=N(()=>{const x=f.inactivityTimer.current;x&&(window.clearTimeout(x),f.inactivityTimer.current=null)},[f]),M=N(()=>{g(),l.isPlaying&&(b.current||l.useNativeControls||(f.inactivityTimer.current=window.setTimeout(()=>{if(b.current)return;f.setShowControls(!1);const x=L.current;x&&l.isFullscreen&&(x.style.cursor="none")},_)))},[f,g,L,_,l.isFullscreen,l.isPlaying,l.useNativeControls]),A=N(()=>{const x=L.current;x&&(x.style.cursor="default"),!l.showControls&&!l.useNativeControls&&f.setShowControls(!0),M()},[f,L,M,l.showControls,l.useNativeControls]);$(()=>{if(l.showControls){if(!l.isPlaying){g();return}if(v||l.isScrubbing||l.showSettings||l.showVolumeSlider){f.setShowControls(!0),g();return}M()}},[f,g,v,M,l.isPlaying,l.isScrubbing,l.showControls,l.showSettings,l.showVolumeSlider]),$(()=>()=>g(),[g]);const W=N(x=>{const q=x.target;if(co(q))return;const U=Date.now(),d=U-S.current<Ge;if(S.current=U,d){a.current&&(window.clearTimeout(a.current),a.current=null),f.toggleFullscreen();return}a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{a.current=null,f.setShowControls(!l.showControls),l.showControls?M():A()},Ge)},[f,M,l.showControls,A]);$(()=>()=>{a.current&&window.clearTimeout(a.current)},[]);const G=l.showControls||l.isScrubbing||l.showSettings||l.showVolumeSlider;return n("div",{ref:L,className:`${oe.shell} ${l.isFullscreen?oe.shellFullscreen:""} ${C??""}`,onContextMenu:x=>x.preventDefault(),onPointerMove:x=>{x.pointerType==="mouse"&&A()},onMouseLeave:()=>{window.matchMedia?.("(hover: hover) and (pointer: fine)").matches&&l.isPlaying&&!b.current&&f.setShowControls(!1)},children:[n("div",{className:oe.stage,onClick:W,onContextMenu:x=>x.preventDefault(),children:h}),u,!i&&!l.useNativeControls&&n("div",{className:oe.uiLayer,onContextMenu:x=>x.preventDefault(),children:[n("div",{"data-player-ui":"true",children:r}),G&&t&&n("div",{"data-player-ui":"true",children:t}),n("div",{"data-player-ui":"true",children:c}),o&&n("div",{"data-player-ui":"true",children:o})]})]})},io=450,Ns=({muted:e,volume:r,volumeIcon:t,buttonClassName:c,sliderClassName:o,onToggleMute:u,onVolumeChange:v,onExpandedChange:C})=>{const i=Je(),[h,l]=E(!1),P=y(null),f=y(!1),L=y(null),p=N(g=>{l(g),C?.(g)},[C]);$(()=>()=>{P.current&&window.clearTimeout(P.current)},[]),$(()=>{if(!h)return;const g=M=>{L.current&&!L.current.contains(M.target)&&p(!1)};return document.addEventListener("pointerdown",g),()=>document.removeEventListener("pointerdown",g)},[h,p]);const _=e?0:r,S=()=>{f.current=!1,P.current&&window.clearTimeout(P.current),P.current=window.setTimeout(()=>{f.current=!0,p(!0)},io)},a=()=>{P.current&&(window.clearTimeout(P.current),P.current=null)},b=g=>{if(g.stopPropagation(),f.current){f.current=!1;return}if(i){h?u():p(!0);return}u()};return n("div",{ref:L,className:oe.volumeWrap,"data-expanded":h?"true":"false",onContextMenu:g=>g.preventDefault(),children:[n("button",{type:"button",className:c,onClick:b,onPointerDown:S,onPointerUp:a,onPointerLeave:a,onContextMenu:g=>g.preventDefault(),"aria-label":e?"Unmute":"Mute","aria-expanded":h,children:t}),n("input",{type:"range",min:"0",max:"1",step:"0.05",value:_,onChange:g=>v(parseFloat(g.target.value)),onClick:g=>g.stopPropagation(),onPointerDown:g=>g.stopPropagation(),onContextMenu:g=>g.preventDefault(),className:`${oe.volumeSlider} ${o??""}`,style:{"--volume-percent":`${_*100}%`},"aria-label":"Volume"})]})},ao="_statusArea_1xccu_1",lo="_toggleBtn_1xccu_20",uo="_shortcuts_1xccu_46",po="_shortcutGroup_1xccu_56",fo="_shortcut_1xccu_46",mo="_key_1xccu_70",_o="_label_1xccu_91",T={statusArea:ao,toggleBtn:lo,shortcuts:uo,shortcutGroup:po,shortcut:fo,key:mo,label:_o},Is=({showTheater:e=!0})=>{const[r,t]=E(!1);return n("div",{className:T.statusArea,children:[n("button",{type:"button",className:T.toggleBtn,onClick:()=>t(c=>!c),"aria-expanded":r,"aria-controls":"player-shortcuts",children:[n(J,{name:"keyboard",size:14}),n("span",{children:"Keyboard Shortcuts"}),r?n(J,{name:"chevron-up",size:12}):n(J,{name:"chevron-down",size:12})]}),r&&n("div",{id:"player-shortcuts",className:T.shortcuts,children:[n("div",{className:T.shortcutGroup,children:[n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"↑"}),n("span",{className:T.key,children:"↓"}),n("span",{className:T.label,children:"Volume"})]}),n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"←"}),n("span",{className:T.key,children:"→"}),n("span",{className:T.label,children:"Seek"})]})]}),n("div",{className:T.shortcutGroup,children:[n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"Space"}),n("span",{className:T.label,children:"Play/Pause"})]}),n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"F"}),n("span",{className:T.label,children:"Fullscreen"})]}),n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"M"}),n("span",{className:T.label,children:"Mute"})]}),e&&n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"T"}),n("span",{className:T.label,children:"Theater"})]}),n("div",{className:T.shortcut,children:[n("span",{className:T.key,children:"N"}),n("span",{className:T.label,children:"Next"})]})]})]})]})},vo="_episodeListContainer_9tyin_1",ho="_drawerContainer_9tyin_9",go="_episodeListHeader_9tyin_14",yo="_drawerHeader_9tyin_20",bo="_episodeListTitle_9tyin_29",wo="_rangeSelector_9tyin_41",Co="_rangeButton_9tyin_47",So="_active_9tyin_70",ko="_episodeList_9tyin_1",Eo="_drawerList_9tyin_89",Lo="_episodeItem_9tyin_118",xo="_watched_9tyin_145",Bo="_episodeThumb_9tyin_167",To="_episodeText_9tyin_176",Po="_episodeLabel_9tyin_184",No="_episodeSub_9tyin_189",I={episodeListContainer:vo,drawerContainer:ho,episodeListHeader:go,drawerHeader:yo,episodeListTitle:bo,rangeSelector:wo,rangeButton:Co,active:So,episodeList:ko,drawerList:Eo,episodeItem:Lo,watched:xo,episodeThumb:Bo,episodeText:To,episodeLabel:Po,episodeSub:No},Io=({episodes:e,currentEpisode:r,watchedEpisodes:t=[],onEpisodeClick:c,variant:o="sidebar",title:u="Episodes",header:v})=>{const[C,i]=E(0),h=y(null),l=de(()=>e.map(p=>typeof p=="string"?{id:p,label:`Episode ${p}`}:p),[e]),P=de(()=>new Set(t),[t]);$(()=>{const p=h.current;if(!p)return;let _=p.parentElement;for(;_;){const b=window.getComputedStyle(_);if((b.overflowY==="auto"||b.overflowY==="scroll")&&_.scrollHeight>_.clientHeight)break;_=_.parentElement}if(!_)return;const S=_.getBoundingClientRect(),a=p.getBoundingClientRect();_.scrollTop+=a.top+a.height/2-(S.top+_.clientHeight/2)},[r,C]);const f=de(()=>{if(l.length<=100)return[];const p=[];for(let _=0;_<l.length;_+=100){const S=_+1,a=Math.min(_+100,l.length);p.push(`${S}-${a}`)}return p},[l]),L=de(()=>{if(f.length===0)return l;const p=f[C];if(!p)return l;const[_,S]=p.split("-"),a=parseInt(_,10),b=parseInt(S,10);return l.slice(a-1,b)},[l,f,C]);return n("div",{className:`${I.episodeListContainer} ${o==="drawer"?I.drawerContainer:""}`,children:[n("div",{className:`${I.episodeListHeader} ${o==="drawer"?I.drawerHeader:""}`,children:[v,n("h3",{className:I.episodeListTitle,children:u}),f.length>0&&n("div",{className:I.rangeSelector,children:f.map((p,_)=>n("button",{className:`${I.rangeButton} ${C===_?I.active:""}`,onClick:()=>i(_),children:p},p))})]}),n("div",{className:`${I.episodeList} ${o==="drawer"?I.drawerList:""}`,children:L.map(p=>{const _=p.id===r,S=P.has(p.id)||p.watched===!0;return n("div",{ref:_?h:void 0,className:`${I.episodeItem} ${S?I.watched:""} ${_?I.active:""}`,onClick:()=>c(p.id),children:[p.thumbnail&&n("img",{src:p.thumbnail,alt:"",loading:"lazy",decoding:"async",className:I.episodeThumb}),n("span",{className:I.episodeText,children:[n("span",{className:I.episodeLabel,children:p.label??`Episode ${p.id}`}),p.sublabel&&n("span",{className:I.episodeSub,children:p.sublabel})]})]},p.id)})})]})},$s=({variant:e="sidebar",count:r=12})=>n("div",{className:`${I.episodeListContainer} ${e==="drawer"?I.drawerContainer:""}`,children:[n("div",{className:`${I.episodeListHeader} ${e==="drawer"?I.drawerHeader:""}`,children:[n("h3",{className:I.episodeListTitle,children:"Episodes"}),n("div",{className:I.rangeSelector,children:[n(ge,{width:"60px",height:"28px",variant:"rectangular"}),n(ge,{width:"60px",height:"28px",variant:"rectangular"}),n(ge,{width:"60px",height:"28px",variant:"rectangular"})]})]}),n("div",{className:`${I.episodeList} ${e==="drawer"?I.drawerList:""}`,children:Array.from({length:r}).map((t,c)=>n("div",{className:I.episodeItem,style:{border:"none",background:"transparent"},children:n(ge,{width:"120px",height:"1.2rem",variant:"text"})},c))})]}),$o="_shell_cys6s_1",Mo="_overlay_cys6s_10",Ao="_drawer_cys6s_21",Fo="_handle_cys6s_56",Ro="_header_cys6s_64",Do="_headerCopy_cys6s_73",Oo="_kicker_cys6s_79",qo="_title_cys6s_87",Ho="_closeBtn_cys6s_94",zo="_body_cys6s_116",Q={shell:$o,overlay:Mo,drawer:Ao,handle:Fo,header:Ro,headerCopy:Do,kicker:Oo,title:qo,closeBtn:Ho,body:zo};function Ms({isOpen:e,onClose:r,episodes:t,currentEpisode:c,watchedEpisodes:o=[],onEpisodeClick:u,title:v,header:C}){return $(()=>{if(!e)return;const i=l=>{l.key==="Escape"&&r()},h=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",i),()=>{document.body.style.overflow=h,document.removeEventListener("keydown",i)}},[e,r]),e?Tt(n("div",{className:Q.shell,role:"dialog","aria-modal":"true","aria-label":"Episode picker",children:[n("button",{className:Q.overlay,type:"button",onClick:r,"aria-label":"Close episodes"}),n("aside",{className:Q.drawer,children:[n("div",{className:Q.handle}),n("div",{className:Q.header,children:[n("div",{className:Q.headerCopy,children:[n("span",{className:Q.kicker,children:"Episode picker"}),n("h3",{className:Q.title,children:"Choose an episode"})]}),n("button",{className:Q.closeBtn,type:"button",onClick:r,"aria-label":"Close",children:n(J,{name:"times"})})]}),n("div",{className:Q.body,children:n(Io,{episodes:t,currentEpisode:c,watchedEpisodes:o,onEpisodeClick:u,variant:"drawer",title:v,header:C})})]})]}),document.body):null}function Te(){return document}function Ye(e){const r=Te();if(document.fullscreenElement)return document.fullscreenElement;if(r.webkitFullscreenElement)return r.webkitFullscreenElement;const t=e;return t?.webkitDisplayingFullscreen?t:null}function se(e){return Ye(e)!==null}async function Wo(e,r){if(Ye(r))return;const t=e;try{if(typeof e.requestFullscreen=="function"){await e.requestFullscreen();return}if(typeof t.webkitRequestFullscreen=="function"){await t.webkitRequestFullscreen();return}if(typeof t.webkitRequestFullScreen=="function"){await t.webkitRequestFullScreen();return}}catch{}const c=r;if(c&&typeof c.webkitEnterFullscreen=="function"){if(c.webkitSupportsFullscreen===!1)return;try{await c.webkitEnterFullscreen()}catch{}}}async function Vo(e){const r=Te();try{if(document.fullscreenElement&&typeof document.exitFullscreen=="function"){await document.exitFullscreen();return}if(r.webkitFullscreenElement&&typeof r.webkitExitFullscreen=="function"){await r.webkitExitFullscreen();return}}catch{}const t=e;if(t?.webkitDisplayingFullscreen&&typeof t.webkitExitFullscreen=="function"){try{t.webkitExitFullscreen()}catch{}return}try{typeof r.webkitCancelFullScreen=="function"?r.webkitCancelFullScreen():!document.fullscreenElement&&typeof document.exitFullscreen=="function"&&(document.fullscreenElement??r.webkitFullscreenElement)&&await document.exitFullscreen()}catch{}}async function Uo(e,r){!e&&!r||(se(r)?await Vo(r):e&&await Wo(e,r))}function Ko(e,r){const t=()=>{try{r(se(e()))}catch{}},c=Te(),o=t;c.addEventListener("fullscreenchange",t),c.addEventListener("webkitfullscreenchange",o),c.addEventListener("webkitbeginfullscreen",o,!0),c.addEventListener("webkitendfullscreen",o,!0);const u=e();return u?.addEventListener("webkitbeginfullscreen",o),u?.addEventListener("webkitendfullscreen",o),()=>{c.removeEventListener("fullscreenchange",t),c.removeEventListener("webkitfullscreenchange",o),c.removeEventListener("webkitbeginfullscreen",o,!0),c.removeEventListener("webkitendfullscreen",o,!0),u?.removeEventListener("webkitbeginfullscreen",o),u?.removeEventListener("webkitendfullscreen",o)}}const As=({skipIntervals:e,showId:r,episodeNumber:t,episodeCount:c,sourceType:o,showMeta:u})=>{const v=Mt(),C=Pt(),i=y(null),h=y(null),l=y(null),P=y(null),f=y(!1),L=y(null),p=y(0),_=y(1),S=y({mouse:!1,keyboard:!1}),a=y(null),b=y(null),g=y(!1),M=y(Math.random().toString(36).substring(2)),[A,W]=E(!1),[G,x]=E(()=>{try{return localStorage.getItem("playerMuted")==="true"}catch{return!1}}),[q,U]=E(()=>{try{const s=parseFloat(localStorage.getItem("playerVolume")||"");return isNaN(s)?1:Math.max(0,Math.min(1,s))}catch{return 1}}),[d,m]=E(!1),[R,V]=E(0),[j,D]=E(!0),[ee,Pe]=E(!1),[Ze,Ne]=E({time:0,position:null}),[be,et]=E(localStorage.getItem("autoSkipEnabled")==="true"),[tt,we]=E(null),[nt,rt]=E(!1),[te]=E(eo),[ot,st]=E(te.fontSize),[ct,it]=E(te.position),[at,lt]=E(te.bgOpacity),[ut,dt]=E(te.bgColor),[pt,ft]=E(te.textColor),[mt,_t]=E(te.edge),[vt,ht]=E(te.bold),[gt,yt]=E([]),[bt,wt]=E(null),[Ct,St]=E(!1),[kt,Et]=E(!1),[pe,X]=E(!1),[Lt,fe]=E(!1),[xt,Ie]=E(()=>{try{return localStorage.getItem("playerUseNativeControls")==="true"}catch{return!1}}),ce=y(!1),Ce=y(-1),me=N(()=>{const s=i.current;return!r||!t||!u?.name?null:{showId:r,episodeNumber:t,episodeCount:c,currentTime:s?s.currentTime:0,duration:s?s.duration:0,showName:u.name,showThumbnail:u.thumbnail,nativeName:u.names?.native,englishName:u.names?.english,genres:Array.isArray(u.genres)?u.genres.map(k=>typeof k=="string"?k:k?.name).filter(Boolean):void 0,popularityScore:u.score,type:u.type,isPlaying:s?!s.paused:!0,sessionId:M.current,isAdult:u.isAdult}},[r,t,c,u]),O=N((s=!1,k=!1)=>{if(ce.current)return!1;const B=me();if(!B)return!1;const w=i.current;if(!w&&o!=="iframe")return!1;const F=w?w.currentTime>=w.duration*.8:!1;let H=w?w.currentTime:0;if(s&&F&&(H=w?w.duration:0),!k){if(H===0&&!F)return!1;const K=w?Math.abs(H-Ce.current):0;if(!s&&w&&H!==w.duration&&K<5)return!1}return B.currentTime=H,Ce.current=H,s?(async()=>{try{await Ke.progress.updateProgress.mutate(B),v.invalidateQueries({queryKey:["video-sources",r,t]}),v.invalidateQueries({queryKey:["allContinueWatching"]}),v.invalidateQueries({queryKey:["thisWeekSchedule"]}),v.invalidateQueries(C.continueWatching.pathFilter())}catch(K){console.error("Failed to update progress:",K)}})():Nt("progress.updateProgress",B).catch(K=>console.error("Failed to update progress:",K)),!0},[me,o,v,r,t,C.continueWatching]);$(()=>{const s=i.current;s&&(s.volume=q,s.muted=G)},[i,q,G]),$(()=>{const s=()=>{ce.current||O(!0)};window.addEventListener("beforeunload",s);const k=L,B=P;return()=>{window.removeEventListener("beforeunload",s),ce.current||O(!0),k.current&&clearTimeout(k.current),B.current&&clearTimeout(B.current)}},[O]);const _e=N(()=>{const s=h.current;s&&Uo(s,i.current).catch(k=>{console.error(`Error attempting to toggle full-screen mode: ${k?.message} (${k?.name})`)})},[]),ve=N(()=>{i.current&&(i.current.paused?i.current.play().catch(()=>console.warn("Autoplay was prevented.")):(i.current.pause(),D(!0)))},[D]),ne=N(()=>{const s=i.current;if(!s)return;const k=S.current.mouse||S.current.keyboard;s.playbackRate=k?2:_.current},[]),ie=N(s=>{S.current.mouse!==s&&(S.current.mouse=s,fe(s||S.current.keyboard),ne())},[ne]),re=N(s=>{S.current.keyboard!==s&&(S.current.keyboard=s,fe(S.current.mouse||s),ne())},[ne]),ae=N(s=>{i.current&&(i.current.currentTime+=s,L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{O(!1,!0)},1500),D(!0))},[O,D]),he=N(()=>{if(!i.current)return;const s=!i.current.muted;i.current.muted=s,x(s),localStorage.setItem("playerMuted",String(s)),!s&&i.current.volume===0&&(i.current.volume=.5,U(.5),localStorage.setItem("playerVolume",String(.5))),D(!0)},[D]);$(()=>{const s=()=>i.current,k=Ko(s,B=>{m(B),B&&D(!0)});return m(se(s())),k},[D]),$(()=>{const s=B=>{if(!B.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')){if(B.code==="Space"){if(B.preventDefault(),g.current)return;g.current=!0,b.current&&clearTimeout(b.current),b.current=window.setTimeout(()=>{b.current=null,g.current&&re(!0)},180);return}switch(B.key.toLowerCase()){case"f":_e();break;case"m":he();break;case"arrowright":ae(10);break;case"arrowleft":ae(-10);break;case"arrowup":if(B.preventDefault(),i.current){const F=Math.min(1,i.current.volume+.1);i.current.volume=F,U(F)}break;case"arrowdown":if(B.preventDefault(),i.current){const F=Math.max(0,i.current.volume-.1);i.current.volume=F,U(F)}break}}},k=B=>{if(B.code==="Space"){if(B.preventDefault(),g.current=!1,S.current.keyboard){re(!1);return}b.current&&(clearTimeout(b.current),b.current=null,ve())}};return document.addEventListener("keydown",s),document.addEventListener("keyup",k),()=>{document.removeEventListener("keydown",s),document.removeEventListener("keyup",k),b.current&&(clearTimeout(b.current),b.current=null),g.current=!1,re(!1),fe(!1)}},[re,ve,_e,he,ae]),$(()=>{const s=H=>H?!!H.closest('[data-speed-boost-ignore="true"], [data-player-ui="true"], button, input, select, textarea, a, [role="button"], [role="slider"], [contenteditable="true"]'):!0,k=H=>{if(H.button!==0)return;const Y=H.target;if(!Y||s(Y))return;const K=h.current;!K||!K.contains(Y)||(a.current&&clearTimeout(a.current),a.current=window.setTimeout(()=>{a.current=null,ie(!0)},180))},B=H=>{const Y=H.target;if(!Y||s(Y))return;const K=h.current;!K||!K.contains(Y)||(a.current&&clearTimeout(a.current),a.current=window.setTimeout(()=>{a.current=null,ie(!0)},180))},w=()=>{a.current&&(clearTimeout(a.current),a.current=null),ie(!1)},F=()=>{a.current&&(clearTimeout(a.current),a.current=null),g.current=!1,b.current&&(clearTimeout(b.current),b.current=null),re(!1),ie(!1),fe(!1)};return document.addEventListener("mousedown",k),document.addEventListener("mouseup",w),document.addEventListener("touchstart",B,{passive:!0}),document.addEventListener("touchend",w),document.addEventListener("touchcancel",w),document.addEventListener("pointerup",w),document.addEventListener("pointercancel",w),window.addEventListener("blur",F),()=>{document.removeEventListener("mousedown",k),document.removeEventListener("mouseup",w),document.removeEventListener("touchstart",B),document.removeEventListener("touchend",w),document.removeEventListener("touchcancel",w),document.removeEventListener("pointerup",w),document.removeEventListener("pointercancel",w),window.removeEventListener("blur",F),a.current&&(clearTimeout(a.current),a.current=null)}},[re,ie]);const $e=N(()=>{W(!0),X(!1),setTimeout(()=>O(!1,!0),50)},[O]),Me=N(()=>{W(!0),X(!1)},[]),Ae=N(()=>{const s=i.current;s&&!s.paused&&s.readyState>=3&&!s.seeking||X(!0)},[]),Fe=N(()=>{X(!1)},[]),Re=N(()=>{W(!1),X(!1),D(!0),setTimeout(()=>O(!1,!0),50)},[O]),De=y(!1);De.current=pe,$(()=>{if(!pe)return;let s=i.current?.currentTime??0,k=0;const B=window.setInterval(()=>{const w=i.current;if(!w)return;k+=1;const F=w.currentTime,H=F!==s;if(s=F,!(w.paused||w.seeking)){if(H||w.readyState>=3){X(!1);return}k>=24&&w.readyState>=2&&!w.ended&&X(!1)}},500);return()=>window.clearInterval(B)},[pe]),$(()=>{ce.current=!1,Ce.current=-1,p.current=0,M.current=Math.random().toString(36).substring(2),V(0),X(!1)},[r,t]);const Oe=N(()=>{V(0),X(!1)},[]);$(()=>{const s=M.current;return()=>{It(s)}},[r,t]),$(()=>{if(o!=="iframe")return;O(!1,!0);const s=setInterval(()=>{O(!1,!0)},6e4);return()=>clearInterval(s)},[o,O]);const qe=N(()=>{V(i.current?.duration||0),ne()},[ne]),He=N(()=>{if(i.current){const s=i.current.muted,k=i.current.volume;x(s),U(k),localStorage.setItem("playerMuted",String(s)),localStorage.setItem("playerVolume",String(k))}},[]),ze=N(()=>{},[]),We=N(()=>{const s=i.current;if(!s)return;De.current&&!s.paused&&!s.seeking&&X(!1);const k=s.currentTime||0,B=Date.now();B-p.current>6e4&&O()&&(p.current=B);const w=e.find(F=>k>=F.start_time&&k<F.end_time)||null;we(F=>F?.skip_id!==w?.skip_id?w:F),be&&w&&!s.paused&&(s.currentTime=w.end_time,we(null))},[e,be,O]),Ve=N(()=>{const s=me();s&&(s.currentTime=s.duration,Ke.progress.updateProgress.mutate(s).then(()=>{v.invalidateQueries({queryKey:["video-sources",r,t]}),v.invalidateQueries({queryKey:["allContinueWatching"]})}).catch(k=>console.error("Failed to send final progress:",k)))},[me,v,r,t]),Ue=N(()=>{ce.current=!0,Ve()},[Ve]);$(()=>{const s=()=>{ee&&(Pe(!1),Ne({time:0,position:null}),f.current&&i.current?.play(),O(!1,!0))};return ee&&(document.addEventListener("mouseup",s),document.addEventListener("pointerup",s),document.addEventListener("touchend",s),document.addEventListener("pointercancel",s),document.addEventListener("touchcancel",s)),()=>{document.removeEventListener("mouseup",s),document.removeEventListener("pointerup",s),document.removeEventListener("touchend",s),document.removeEventListener("pointercancel",s),document.removeEventListener("touchcancel",s)}},[ee,O]);const Bt=de(()=>({togglePlay:ve,seek:ae,toggleMute:he,toggleFullscreen:_e,onPlay:$e,onPause:Re,onLoadedMetadata:qe,formatTime:$t,onVolumeChange:He,onProgress:ze,onTimeUpdate:We,onEnded:Ue,setShowControls:D,setIsScrubbing:Pe,setHoverTime:Ne,setIsAutoSkipEnabled:et,setCurrentSkipInterval:we,setShowCCMenu:rt,setSubtitleFontSize:st,setSubtitlePosition:it,setSubtitleBgOpacity:lt,setSubtitleBgColor:dt,setSubtitleTextColor:ft,setSubtitleEdge:_t,setSubtitleBold:ht,setAvailableSubtitles:yt,setActiveSubtitleTrack:wt,setShowSettings:St,setShowVolumeSlider:Et,wasPlayingBeforeScrub:f,inactivityTimer:P,setIsFullscreen:m,onWaiting:Ae,onPlaying:Me,onCanPlay:Fe,sendProgressUpdate:O,setUseNativeControls:Ie,resetMediaState:Oe}),[ve,ae,he,_e,$e,Re,qe,He,ze,We,Ue,m,Ae,Me,Fe,O,Ie,Oe]);return{refs:{videoRef:i,playerContainerRef:h,progressBarRef:l},state:{isPlaying:A,isMuted:G,volume:q,isFullscreen:d,duration:R,showControls:j,isScrubbing:ee,hoverTime:Ze,isAutoSkipEnabled:be,currentSkipInterval:tt,showCCMenu:nt,subtitleFontSize:ot,subtitlePosition:ct,subtitleBgOpacity:at,subtitleBgColor:ut,subtitleTextColor:pt,subtitleEdge:mt,subtitleBold:vt,availableSubtitles:gt,activeSubtitleTrack:bt,showSettings:Ct,showVolumeSlider:kt,isBuffering:pe,isSpeedBoostActive:Lt,useNativeControls:xt},actions:Bt}};function Go(){try{return typeof navigator<"u"&&/android/i.test(navigator.userAgent)}catch{return!1}}function Fs(e,r){const{refs:t,actions:c}=e,o=y(r);o.current=r;const u=y(!1),v=y(!1),C=i=>{try{if(i)return i.matches}catch{}try{return window.innerWidth>window.innerHeight}catch{return!1}};$(()=>{if(!Go())return;let i=null;const h=()=>{const l=t.playerContainerRef.current;if(C(i)){if(!o.current||!l||se(t.videoRef.current)||v.current)return;u.current=!0,c.toggleFullscreen()}else v.current=!1,u.current&&(u.current=!1,se(t.videoRef.current)&&c.toggleFullscreen())};try{i=window.matchMedia("(orientation: landscape)"),i.addEventListener?i.addEventListener("change",h):i.addListener(h)}catch{}return h(),()=>{try{i&&(i.removeEventListener?i.removeEventListener("change",h):i.removeListener(h))}catch{}}},[c,t.playerContainerRef,t.videoRef,r]),$(()=>{const i=()=>{if(!se(t.videoRef.current)){u.current=!1;try{window.matchMedia("(orientation: landscape)").matches&&(v.current=!0)}catch{v.current=!0}}};return document.addEventListener("fullscreenchange",i),document.addEventListener("webkitfullscreenchange",i),()=>{document.removeEventListener("fullscreenchange",i),document.removeEventListener("webkitfullscreenchange",i)}},[t.videoRef])}const Xo=e=>Math.max(8,Math.min(40,Math.ceil(e/16.7)+4));function Rs({videoRef:e,canvasRef:r,delayMs:t,enabled:c}){const o=y(t);o.current=t;const u=y([]),v=y(-1),C=y(-1),i=y(!1),h=y(0),l=y(null);$(()=>{const P=a=>{if(a)try{a.close()}catch{}},f=()=>{for(const a of u.current)P(a.bitmap);u.current=[]};if(!c){f(),v.current=-1,C.current=-1,i.current=!1,h.current=0;return}let L=!1;const p=()=>{l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)},_=()=>{L||(p(),l.current=requestAnimationFrame(()=>{S()}))};async function S(){if(L)return;const a=e.current,b=r.current;if(!a||!b||a.videoWidth===0){_();return}if(a.paused||a.ended||document.hidden||a.readyState<HTMLMediaElement.HAVE_CURRENT_DATA){_();return}const g=a.getVideoPlaybackQuality().totalVideoFrames;if(g===v.current){_();return}(a.seeking||C.current>=0&&Math.abs(a.currentTime-C.current)>.5)&&(f(),i.current=!1,h.current=0,v.current=-1),C.current=a.currentTime,(b.width!==a.videoWidth||b.height!==a.videoHeight)&&(b.width=a.videoWidth,b.height=a.videoHeight);const M=Math.max(0,o.current||0);M>h.current&&(i.current=!1);try{const A=await createImageBitmap(a);if(L){P(A);return}v.current=g;const W=performance.now(),G=b.getContext("2d"),x=m=>{G&&G.drawImage(m,0,0,b.width,b.height)};if(M<=0){f(),i.current=!1,h.current=0,x(A),P(A),_();return}const q=u.current;q.push({bitmap:A,capture:W});const U=Xo(M);for(;q.length>U;)P(q.shift()?.bitmap);let d=-1;for(let m=q.length-1;m>=0;m--)if(W-q[m].capture>=M){d=m;break}if(d!==-1){for(let R=0;R<d;R++)P(q.shift()?.bitmap);const m=q.shift();m?(x(m.bitmap),P(m.bitmap),i.current=!0,h.current=M):x(A)}else if(!i.current)x(A);else{const m=q.shift();m?(x(m.bitmap),P(m.bitmap)):x(A)}}catch{}_()}return _(),()=>{L=!0,p();for(const a of u.current)try{a.bitmap.close()}catch{}u.current=[]}},[c,e,r])}const Qo="_row_1fq55_1",jo="_rowHeader_1fq55_9",Jo="_rowLabel_1fq55_17",Yo="_rowValue_1fq55_28",Zo="_slider_1fq55_36",es="_swatches_1fq55_99",ts="_swatch_1fq55_99",ns="_swatchPicked_1fq55_114",rs="_colorInput_1fq55_120",os="_segmented_1fq55_131",z={row:Qo,rowHeader:jo,rowLabel:Jo,rowValue:Yo,slider:Zo,swatches:es,swatch:ts,swatchPicked:ns,colorInput:rs,segmented:os},ss=({label:e,display:r,min:t,max:c,step:o,value:u,percent:v,onChange:C,onCommit:i})=>n("div",{className:z.row,children:[n("div",{className:z.rowHeader,children:[n("span",{className:z.rowLabel,children:e}),n("span",{className:z.rowValue,children:r})]}),n("input",{type:"range",className:z.slider,min:t,max:c,step:o,value:u,"aria-label":e,"data-speed-boost-ignore":"true",onInput:h=>C(Number(h.target.value)),onMouseDown:h=>h.stopPropagation(),onPointerDown:h=>h.stopPropagation(),onTouchStart:h=>h.stopPropagation(),onPointerUp:i,onPointerCancel:i,onTouchEnd:i,onKeyUp:i,onBlur:i,style:{"--slider-percent":`${v}%`}})]}),Ds=({label:e,colors:r,value:t,onChange:c})=>n("div",{className:z.row,children:[n("div",{className:z.rowHeader,children:n("span",{className:z.rowLabel,children:e})}),n("div",{className:z.swatches,children:[r.map(o=>n("button",{type:"button","aria-label":`${e} ${o}`,"aria-pressed":t.toLowerCase()===o.toLowerCase(),onClick:()=>c(o),className:`${z.swatch} ${t.toLowerCase()===o.toLowerCase()?z.swatchPicked:""}`,style:{backgroundColor:o}},o)),n("input",{type:"color","aria-label":`Custom ${e.toLowerCase()}`,className:z.colorInput,value:t,"data-speed-boost-ignore":"true",onInput:o=>c(o.target.value),onMouseDown:o=>o.stopPropagation(),onPointerDown:o=>o.stopPropagation(),onTouchStart:o=>o.stopPropagation()})]})]});function Os({label:e,options:r,value:t,onChange:c}){return n("div",{className:z.row,children:[n("div",{className:z.rowHeader,children:n("span",{className:z.rowLabel,children:e})}),n("div",{className:z.segmented,role:"group","aria-label":e,children:r.map(o=>n("button",{type:"button","aria-pressed":t===o,onClick:()=>c(o),children:[n("span",{children:o}),t===o&&n(J,{name:"check",size:10})]},o))})]})}const ye=10,Be=500,Ee=e=>Math.max(0,Math.min(Be,Math.round(e))),qs=({isOpen:e,ms:r,onChange:t,onApply:c,onClose:o,testClipActive:u,onTestClip:v})=>e?n("div",{role:"dialog","aria-label":"Calibrate audio video sync","data-speed-boost-ignore":"true",onClick:C=>C.stopPropagation(),style:{position:"absolute",right:8,bottom:112,width:"min(260px, calc(100% - 16px))",maxHeight:"calc(100% - 124px)",overflowY:"auto",overflowX:"hidden",zIndex:60,display:"flex",flexDirection:"column",alignItems:"center",gap:8,padding:12,borderRadius:"var(--radius-lg)",border:"1px solid var(--glass-border)",background:"rgba(18, 18, 22, 0.95)",boxShadow:"var(--glass-shadow)",backdropFilter:"blur(14px)",WebkitBackdropFilter:"blur(14px)",boxSizing:"border-box"},children:[n("div",{style:{fontSize:"0.8rem",fontWeight:800,color:"var(--text-primary)"},children:"A/V sync"}),n("div",{children:n(le,{size:"sm",variant:"secondary",onClick:v,children:u?"Back to video":"Preview test clip"})}),n("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,flexWrap:"wrap"},children:[n(le,{size:"sm",onClick:()=>t(Ee(r-ye)),"aria-label":"Decrease delay by 10 milliseconds",children:["− ",ye,"ms"]}),n("div",{style:{fontSize:"1.1rem",fontWeight:800,minWidth:64,textAlign:"center"},children:[r,"ms"]}),n(le,{size:"sm",onClick:()=>t(Ee(r+ye)),"aria-label":"Increase delay by 10 milliseconds",children:["+ ",ye,"ms"]})]}),n(ss,{label:"Video delay",display:`${r}ms`,min:0,max:Be,step:5,value:r,percent:r/Be*100,onChange:C=>t(Ee(C))}),n("div",{style:{display:"flex",gap:8,justifyContent:"center",flexWrap:"wrap"},children:[n(le,{size:"sm",variant:"secondary",onClick:o,children:"Cancel"}),n(le,{size:"sm",onClick:c,children:["Apply ",r,"ms"]})]})]}):null;export{qs as A,ks as B,Bs as C,Os as D,$s as E,Z as F,ss as M,Is as P,Ts as S,Ss as T,Ns as U,Ps as a,Rs as b,vs as c,Fs as d,ys as e,Es as f,bs as g,xs as h,Xr as i,Cs as j,ds as k,ms as l,Io as m,us as n,oe as o,gs as p,Ms as q,ws as r,Yr as s,_s as t,As as u,Ls as v,hs as w,ps as x,fs as y,Ds as z};
|