@serifpersia/dango 4.0.6 → 4.0.8
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/AmbientLightMenu-CO10UIKM.js +1 -0
- package/client/dist/assets/{AnimeCard-ZMgtR741.js → AnimeCard-fC2KO9iC.js} +1 -1
- package/client/dist/assets/{AnimeInfo-CmDzxK-x.js → AnimeInfo-KjBye_qd.js} +1 -1
- package/client/dist/assets/{AnimeInfoPage-BtMHG64S.js → AnimeInfoPage-C73_sIog.js} +2 -2
- package/client/dist/assets/Asmr-Bl73R_56.js +2 -0
- package/client/dist/assets/{AsmrPopup-ER6dDxFM.js → AsmrPopup-BbvhL78t.js} +1 -1
- package/client/dist/assets/{AsmrResetProgressModal-CmDqGKma.js → AsmrResetProgressModal-DuuqDv23.js} +1 -1
- package/client/dist/assets/Home-CoBFY-dI.css +1 -0
- package/client/dist/assets/Home-DtBGTNur.js +1 -0
- package/client/dist/assets/{Insights-Dlu3LypY.js → Insights-DRgipISO.js} +1 -1
- package/client/dist/assets/{LibraryListPage-L4Lyt1BV.js → LibraryListPage-DJcL0lfR.js} +1 -1
- package/client/dist/assets/{ListeningList-CEiZWAUS.js → ListeningList-KC8x2JTx.js} +1 -1
- package/client/dist/assets/{Manga-CazCyWIh.js → Manga-DRLYjZ32.js} +1 -1
- package/client/dist/assets/{MangaInfoPage-8ZsayGOJ.js → MangaInfoPage-Dg5FyjKC.js} +1 -1
- package/client/dist/assets/{MangaReadPage-CG59Zuhi.js → MangaReadPage-CHMXWOeU.js} +1 -1
- package/client/dist/assets/{MangaResetProgressModal-CmIGgwJc.js → MangaResetProgressModal-6C_7cQ9-.js} +1 -1
- package/client/dist/assets/Mature-DintSvcm.js +1 -0
- package/client/dist/assets/{MatureConsentModal-CBGHgiBA.js → MatureConsentModal-D2QxzAd5.js} +1 -1
- package/client/dist/assets/MediaCard-B13pU_sD.js +1 -0
- package/client/dist/assets/{Player-DJSkQVjM.js → Player-D7JxeeEa.js} +6 -6
- package/client/dist/assets/{PlayerProvider-C6humJW5.js → PlayerProvider-BPOUTsvo.js} +1 -1
- package/client/dist/assets/PlayerSettings-Bn9-36NI.js +1 -0
- package/client/dist/assets/{PlayerSurface-C0SuP9xJ.js → PlayerSurface-DRZlkk9L.js} +1 -1
- package/client/dist/assets/{QueueOptionsButton-C1o8UacJ.js → QueueOptionsButton-NMKIXk8k.js} +1 -1
- package/client/dist/assets/{QueueRail-Dj_zPCND.js → QueueRail-BMqj7tA1.js} +1 -1
- package/client/dist/assets/{ReadingList-CMo85dG4.js → ReadingList-D3YqOY3n.js} +1 -1
- package/client/dist/assets/{ResetProgressModal-udBYaYWc.js → ResetProgressModal-Dw-OK0wI.js} +1 -1
- package/client/dist/assets/{Search-vE5ITchW.js → Search-BWa4iAdv.js} +1 -1
- package/client/dist/assets/{Settings-DTdakL-f.js → Settings-DGNoqBtn.js} +2 -2
- package/client/dist/assets/{SkeletonGrid-CKVHMLEB.js → SkeletonGrid-xGtg97zD.js} +1 -1
- package/client/dist/assets/{Trackers-Cbuzzhap.js → Trackers-DpD8kLrJ.js} +1 -1
- package/client/dist/assets/Tv-gfhcHTMv.js +4 -0
- package/client/dist/assets/{TvInfo-DBdRrmSJ.js → TvInfo-h4NE1IP0.js} +1 -1
- package/client/dist/assets/TvPopup-on4rxc10.js +1 -0
- package/client/dist/assets/{TvSearch-DhZt3CXR.js → TvSearch-BoWPuHhz.js} +1 -1
- package/client/dist/assets/{TvWatchlist-Dg7X14X1.js → TvWatchlist-CZsKdghE.js} +1 -1
- package/client/dist/assets/{VirtualKeyboard-BkfL6fYx.js → VirtualKeyboard-BWvLAbre.js} +1 -1
- package/client/dist/assets/{WatchAlong-D-Wdl6L6.js → WatchAlong-BQ1knfz0.js} +1 -1
- package/client/dist/assets/{WatchAlongPanel-BtiB_ErQ.js → WatchAlongPanel-D_ToyGjh.js} +1 -1
- package/client/dist/assets/{Watchlist-DFXVM31Q.js → Watchlist-4P7nHRSB.js} +1 -1
- package/client/dist/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2 +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2 +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2 +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2 +0 -0
- package/client/dist/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff +0 -0
- package/client/dist/assets/bangers-latin-400-normal-BAEm-Pv0.woff +0 -0
- package/client/dist/assets/bangers-latin-400-normal-DeHY8Ncq.woff2 +0 -0
- package/client/dist/assets/bangers-latin-ext-400-normal-7BLmjjiv.woff2 +0 -0
- package/client/dist/assets/bangers-latin-ext-400-normal-CzVt_Cgx.woff +0 -0
- package/client/dist/assets/bangers-vietnamese-400-normal-BbvBhFjQ.woff2 +0 -0
- package/client/dist/assets/bangers-vietnamese-400-normal-Ll9rymNv.woff +0 -0
- package/client/dist/assets/bree-serif-latin-400-normal-DFKDEHQE.woff2 +0 -0
- package/client/dist/assets/bree-serif-latin-400-normal-Dbaz2OwO.woff +0 -0
- package/client/dist/assets/bree-serif-latin-ext-400-normal-CnorAOA2.woff +0 -0
- package/client/dist/assets/bree-serif-latin-ext-400-normal-amfO-E0k.woff2 +0 -0
- package/client/dist/assets/chakra-petch-latin-400-normal-D7EtbySE.woff +0 -0
- package/client/dist/assets/chakra-petch-latin-400-normal-SafcrIr2.woff2 +0 -0
- package/client/dist/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2 +0 -0
- package/client/dist/assets/chakra-petch-latin-700-normal-D1s_c2du.woff +0 -0
- package/client/dist/assets/chakra-petch-latin-ext-400-normal-C8u6EFkq.woff2 +0 -0
- package/client/dist/assets/chakra-petch-latin-ext-400-normal-MNNNbyh_.woff +0 -0
- package/client/dist/assets/chakra-petch-latin-ext-700-normal-BeviJPUl.woff +0 -0
- package/client/dist/assets/chakra-petch-latin-ext-700-normal-DAkvJhej.woff2 +0 -0
- package/client/dist/assets/chakra-petch-thai-400-normal-Bw1Q-fVY.woff2 +0 -0
- package/client/dist/assets/chakra-petch-thai-400-normal-KdzBjiWs.woff +0 -0
- package/client/dist/assets/chakra-petch-thai-700-normal-B7WL5pBr.woff2 +0 -0
- package/client/dist/assets/chakra-petch-thai-700-normal-vZLZ_5L8.woff +0 -0
- package/client/dist/assets/chakra-petch-vietnamese-400-normal-Cn7ya5On.woff +0 -0
- package/client/dist/assets/chakra-petch-vietnamese-700-normal-gQuUA8Wu.woff +0 -0
- package/client/dist/assets/comic-neue-latin-400-normal-BdhG8RSD.woff2 +0 -0
- package/client/dist/assets/comic-neue-latin-400-normal-CU7kPFAv.woff +0 -0
- package/client/dist/assets/comic-neue-latin-700-normal-NE4Vcoll.woff2 +0 -0
- package/client/dist/assets/comic-neue-latin-700-normal-yR9qu__P.woff +0 -0
- package/client/dist/assets/index-CqcwUuWG.js +180 -0
- package/client/dist/assets/{libraryInvalidation-DWCCaTbI.js → libraryInvalidation-CC9NocI9.js} +1 -1
- package/client/dist/assets/oswald-cyrillic-ext-wght-normal-DLWmRmaW.woff2 +0 -0
- package/client/dist/assets/oswald-cyrillic-wght-normal-C8sJyxwB.woff2 +0 -0
- package/client/dist/assets/oswald-latin-ext-wght-normal-Dj_1K-Kw.woff2 +0 -0
- package/client/dist/assets/oswald-latin-wght-normal-CzS3kehr.woff2 +0 -0
- package/client/dist/assets/oswald-vietnamese-wght-normal-Tdf5mmdl.woff2 +0 -0
- package/client/dist/assets/{playbackCompletion-DzRc-CrM.js → playbackCompletion-DasRrCt1.js} +1 -1
- package/client/dist/assets/russo-one-cyrillic-400-normal-BXZIn0h3.woff2 +0 -0
- package/client/dist/assets/russo-one-cyrillic-400-normal-rRbrNFRA.woff +0 -0
- package/client/dist/assets/russo-one-latin-400-normal-BfOuQF9V.woff2 +0 -0
- package/client/dist/assets/russo-one-latin-400-normal-CosRecV9.woff +0 -0
- package/client/dist/assets/russo-one-latin-ext-400-normal-BssN3Pxm.woff +0 -0
- package/client/dist/assets/russo-one-latin-ext-400-normal-CezFp_e4.woff2 +0 -0
- package/client/dist/assets/useAnimeInfoData-BlTijixl.js +1 -0
- package/client/dist/assets/{useMangaLibrary-DQvZO29f.js → useMangaLibrary-BMioQUxH.js} +1 -1
- package/client/dist/assets/{useMangaPopup-BiaJvL8C.js → useMangaPopup-Dzqm7EW7.js} +1 -1
- package/client/dist/assets/{useTv-Daayom0r.js → useTv-iD-DnP_2.js} +1 -1
- package/client/dist/assets/{useTvLibrary-7zDxMjFz.js → useTvLibrary-D9vDuZs7.js} +1 -1
- package/client/dist/assets/useWatchAlongPlayer-BksJHCzs.css +1 -0
- package/client/dist/assets/useWatchAlongPlayer-DC5cqK1c.js +11 -0
- package/client/dist/index.html +1 -1
- package/client/dist/subtitle-font-licenses.txt +113 -0
- package/package.json +2 -2
- package/server/dist/server.js +1 -1
- package/server/package.json +1 -1
- package/client/dist/assets/Asmr-Ct7Pp0i7.js +0 -2
- package/client/dist/assets/Home-Bmc4hGfd.css +0 -1
- package/client/dist/assets/Home-CWsXJfHc.js +0 -1
- package/client/dist/assets/Mature-Dw4DVRVT.js +0 -1
- package/client/dist/assets/MediaCard-Bd24Icus.js +0 -1
- package/client/dist/assets/OptionListMenu-BdiwBX1S.js +0 -1
- package/client/dist/assets/PlayerSettings-C3MmSKgQ.js +0 -1
- package/client/dist/assets/Tv-z-RzIer_.js +0 -4
- package/client/dist/assets/TvPopup-C_TEPZqV.js +0 -1
- package/client/dist/assets/index-hrS3r0UE.js +0 -179
- package/client/dist/assets/useAnimeInfoData-Di0AjMa7.js +0 -1
- package/client/dist/assets/useWatchAlongPlayer-BNJCb3D5.js +0 -10
- package/client/dist/assets/useWatchAlongPlayer-BsaopdPw.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as fe,o as He,a as Ze,p as Je,d as h,A as ye,T,u as t,S as Xe}from"./vendor-core-DfaOB3Rn.js";import{u as et,a as Se}from"./vendor-query-BBT5_sHx.js";import{r as tt,u as at,d as nt,I as st,J as _e,K as we,q as Ae,L as lt,t as rt,x as ct,N as it,O as ot,P as dt,Q as ht,R as ut,B as W,S as se}from"./index-hrS3r0UE.js";import{I as g}from"./vendor-icons-C1Pj_eSX.js";import{A as mt}from"./AnimeCard-ZMgtR741.js";import{S as pt}from"./SkeletonGrid-CKVHMLEB.js";import{E as gt}from"./ErrorMessage-hMt90aG4.js";import{P as Le}from"./MediaCard-Bd24Icus.js";import{s as n}from"./LibraryListPage.module-r6k9nyT9.js";import{A as vt}from"./ActiveFilterChips-olGfwxle.js";import"./useAnimeInfoData-Di0AjMa7.js";import"./QueueOptionsButton-C1o8UacJ.js";import"./vendor-ui-3qrARCPr.js";import"./MediaPopupShell-BewMMT93.js";import"./useIsMobile-Dvx1uJ82.js";import"./playbackCompletion-DzRc-CrM.js";import"./MatureConsentModal-CBGHgiBA.js";const ft=(d,v)=>{const l=new URLSearchParams(v);return l.delete("page"),l.sort(),`${d}|${l.toString()}`},yt=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.add(w)),l},St=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.delete(w)),l},_t="_sortSelect_cahhw_1",wt="_filterContainer_cahhw_30",At="_slideUpIn_cahhw_1",Lt="_searchBarWrapper_cahhw_44",Ct="_inputIconWrapper_cahhw_50",Nt="_searchIcon_cahhw_55",bt="_searchInput_cahhw_64",Bt="_searchActions_cahhw_84",Rt="_searchBtn_cahhw_89",kt="_filterToggleBtn_cahhw_94",Tt="_advancedFilters_cahhw_115",Wt="_show_cahhw_122",It="_filterDivider_cahhw_128",xt="_filterGrid_cahhw_134",Pt="_filterItem_cahhw_141",$t="_genreSection_cahhw_183",Ft="_genreLabel_cahhw_189",Ot="_genreContainer_cahhw_199",Gt="_genreButton_cahhw_205",Mt="_include_cahhw_222",Et="_exclude_cahhw_228",Dt="_filterActions_cahhw_235",zt="_applyBtn_cahhw_246",c={sortSelect:_t,filterContainer:wt,slideUpIn:At,searchBarWrapper:Lt,inputIconWrapper:Ct,searchIcon:Nt,searchInput:bt,searchActions:Bt,searchBtn:Rt,filterToggleBtn:kt,advancedFilters:Tt,show:Wt,filterDivider:It,filterGrid:xt,filterItem:Pt,genreSection:$t,genreLabel:Ft,genreContainer:Ot,genreButton:Gt,include:Mt,exclude:Et,filterActions:Dt,applyBtn:zt},Ne=["All","Continue Watching","Watching","Completed","On-Hold","Dropped","Planned"],Ce=Ne.slice(2),Ut=[{value:"ALL",label:"All Types"},{value:"TV",label:"TV Series"},{value:"Movie",label:"Movie"},{value:"OVA",label:"OVA"},{value:"ONA",label:"ONA"},{value:"TV_SHORT",label:"TV Short"},{value:"SPECIAL",label:"Special"},{value:"ADULT",label:"Adult (18+)"}],qt=[{value:"ALL",label:"All Seasons"},{value:"WINTER",label:"Winter"},{value:"SPRING",label:"Spring"},{value:"SUMMER",label:"Summer"},{value:"FALL",label:"Fall"}],ia=()=>{fe(()=>{document.title="Watchlist - dango"},[]);const{filter:d="All"}=He(),v=Ze(),[l,w]=Je(),Q=et(),le=tt(),[f,I]=h(parseInt(l.get("page")||"1")),[A,x]=h(l.get("query")||""),[L,V]=h(l.get("sortBy")||"last_added"),[C,P]=h(l.get("type")||"ALL"),[N,$]=h(l.get("season")||"ALL"),[b,F]=h(l.get("year")||"ALL"),[R,O]=h(()=>{const e={},a=l.get("genres")?.split(",").map(r=>r.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(r=>r.trim()).filter(Boolean)||[];return a.forEach(r=>r&&(e[r]="include")),s.forEach(r=>r&&(e[r]="exclude")),e}),[G,be]=h(()=>["type","season","year","genres","excludeGenres"].some(e=>l.has(e))),{lowEndMode:Be}=at(),{titlePreference:M}=nt(),{data:Re}=st(),re=Re?.genres||[],H=ye(null),[o,B]=h(null),[Z,E]=h(!1),[ce,D]=h(!1),[z,ke]=h(!1),[p,y]=h(new Set),J=ye(null),i=d==="Continue Watching",U=T(()=>{const e=new URLSearchParams(l);return e.delete("page"),e.set("titlePreference",M),e.toString()},[l,M]),{data:q,isLoading:Te,error:We}=_e(U,f,14),{data:Y,isLoading:Ie,error:xe}=we(d,U,f,14),{data:Pe}=_e(U,f+1,14),{data:$e}=we(d,U,f+1,14),X=T(()=>(i?q?.data:Y?.data)||[],[i,q,Y]),k=T(()=>(i?q?.total:Y?.total)||0,[i,q,Y]),j=i?Te:Ie,ie=i?We:xe,oe=i?Pe:$e;fe(()=>{x(l.get("query")||""),V(l.get("sortBy")||"last_added"),P(l.get("type")||"ALL"),$(l.get("season")||"ALL"),F(l.get("year")||"ALL");const e={},a=l.get("genres")?.split(",").map(u=>u.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(u=>u.trim()).filter(Boolean)||[];a.forEach(u=>u&&(e[u]="include")),s.forEach(u=>u&&(e[u]="exclude")),O(e),I(parseInt(l.get("page")||"1"));const r=ft(d,l);J.current!==null&&J.current!==r&&y(new Set),J.current=r},[l,d]);const Fe=Se({mutationFn:async({id:e,status:a})=>{await rt.watchlist.setStatus.mutate({id:e,status:a})},onSuccess:()=>{Q.invalidateQueries({queryKey:[Ae.watchlist]}),lt.success("Status updated")}}),Oe=Se(le.continueWatching.remove.mutationOptions({onSuccess:()=>{Q.invalidateQueries(le.continueWatching.pathFilter()),Q.invalidateQueries({queryKey:[Ae.continueWatching]})}})),ee=ct(),{data:de}=it("skipRemoveConfirmation"),Ge=ot(),te=T(()=>{const e=a=>a[M]||a.name||"";return[...X].sort((a,s)=>L==="name_asc"?e(a).localeCompare(e(s)):L==="name_desc"?e(s).localeCompare(e(a)):0)},[X,L,M]),ae=new Date().getFullYear(),Me=[{value:"ALL",label:"All Years"},...Array.from({length:ae-1980+1},(e,a)=>({value:String(ae-a),label:String(ae-a)}))],m=(e=L,a=1)=>{const s=new URLSearchParams;A.trim()&&s.set("query",A.trim()),e!=="last_added"&&s.set("sortBy",e),C!=="ALL"&&s.set("type",C),N!=="ALL"&&s.set("season",N),b!=="ALL"&&s.set("year",b);const r=Object.entries(R).filter(([,_])=>_==="include").map(([_])=>_),u=Object.entries(R).filter(([,_])=>_==="exclude").map(([_])=>_);r.length>0&&s.set("genres",r.join(",")),u.length>0&&s.set("excludeGenres",u.join(",")),a>1&&s.set("page",a.toString()),w(s),a!==f&&I(a)},he=e=>{if(m(L,e),H.current){const a=H.current.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:a,behavior:"smooth"})}},Ee=()=>{x(""),V("last_added"),P("ALL"),$("ALL"),F("ALL"),O({}),w(new URLSearchParams),I(1)},De=e=>{O(a=>{const s=a[e],r={...a};return s==="include"?r[e]="exclude":s==="exclude"?delete r[e]:r[e]="include",r})},ue=(e,a)=>{if(i){B({id:e,name:a});return}String(de)==="true"||String(de)==="1"?ee.mutate({id:e}):B({id:e,name:a})},ze=()=>{if(o){if(o.ids){i?(Ue.mutate({ids:o.ids}),Z&&pe.mutate({ids:o.ids})):pe.mutate({ids:o.ids}),y(new Set),B(null),E(!1),D(!1);return}i?(Oe.mutate({showId:o.id}),Z&&ee.mutate({id:o.id})):ee.mutate({id:o.id}),ce&&Ge.mutate({key:"skipRemoveConfirmation",value:!0}),B(null),E(!1),D(!1)}},me=()=>{B(null),E(!1),D(!1)},pe=dt(),Ue=ht(),qe=ut(),Ye=()=>{ke(e=>{const a=!e;return a||y(new Set),a})},je=e=>{y(a=>{const s=new Set(a);return s.has(e)?s.delete(e):s.add(e),s})},K=te.map(e=>e.id),ne=K.length>0&&K.every(e=>p.has(e)),Ke=()=>{y(ne?e=>St(e,K):e=>yt(e,K))},Qe=e=>{p.size!==0&&(qe.mutate({ids:[...p],status:e}),y(new Set))},Ve=()=>{p.size!==0&&B({ids:[...p]})},ge=X.length>=14&&oe&&oe.data.length>0,ve=T(()=>Math.max(1,Math.ceil(k/14)),[k]),S=[];A.trim()&&S.push({key:"query",label:`Search: ${A}`,onRemove:()=>{x(""),m()}}),C!=="ALL"&&S.push({key:"type",label:`Type: ${C}`,onRemove:()=>{P("ALL"),m()}}),N!=="ALL"&&S.push({key:"season",label:`Season: ${N}`,onRemove:()=>{$("ALL"),m()}}),b!=="ALL"&&S.push({key:"year",label:`Year: ${b}`,onRemove:()=>{F("ALL"),m()}});for(const[e,a]of Object.entries(R))S.push({key:e,label:a==="include"?`+ ${e}`:`-${e}`,tone:a==="include"?"primary":"danger",onRemove:()=>{O(s=>{const r={...s};return delete r[e],r}),m()}});return t("div",{className:"page-container",children:[t("header",{className:n.header,children:[t("h2",{className:n.title,children:"My Watchlist"}),t("p",{className:n.subtitle,children:"Track and manage your anime collection"})]}),t("div",{className:n.controls,children:[t("div",{className:n.filters,children:Ne.map(e=>t("button",{className:`${n.filterBtn} ${d===e?n.active:""}`,onClick:()=>{const a=new URLSearchParams(l);a.delete("page"),v({pathname:`/watchlist/${e}`,search:a.toString()}),I(1)},children:e},e))}),t("div",{children:t("select",{className:c.sortSelect,value:L,onChange:e=>{const a=e.currentTarget.value;V(a),m(a,f)},children:[t("option",{value:"last_added",children:"Recently Added"}),t("option",{value:"name_asc",children:"Name (A-Z)"}),t("option",{value:"name_desc",children:"Name (Z-A)"})]})})]}),t("div",{className:c.filterContainer,children:[t("div",{className:c.searchBarWrapper,children:[t("div",{className:c.inputIconWrapper,children:[t(g,{name:"search",className:c.searchIcon}),t("input",{className:c.searchInput,placeholder:"Search your watchlist by title...",value:A,onInput:e=>x(e.currentTarget.value),onKeyDown:e=>e.key==="Enter"&&m()})]}),t("div",{className:c.searchActions,children:[t(W,{onClick:()=>m(),className:c.searchBtn,children:"Search"}),t("button",{className:`${c.filterToggleBtn} ${G?n.active:""}`,onClick:()=>be(!G),children:[t(g,{name:"filter",size:14}),t("span",{children:"Filters"}),G?t(g,{name:"chevron-up",size:12}):t(g,{name:"chevron-down",size:12})]})]})]}),t("div",{className:`${c.advancedFilters} ${G?c.show:""}`,children:[t("div",{className:c.filterDivider}),t("div",{className:c.filterGrid,children:[t("div",{className:c.filterItem,children:[t("label",{children:"Type"}),t("select",{value:C,onChange:e=>P(e.currentTarget.value),children:Ut.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Season"}),t("select",{value:N,onChange:e=>$(e.currentTarget.value),children:qt.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Year"}),t("select",{value:b,onChange:e=>F(e.currentTarget.value),children:Me.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),re.length>0&&t("div",{className:c.genreSection,children:[t("label",{className:c.genreLabel,children:"Genres"}),t("div",{className:c.genreContainer,children:re.map(e=>t("button",{className:`${c.genreButton} ${c[R[e]||""]}`,onClick:()=>De(e),children:e},e))})]}),t("div",{className:c.filterActions,children:[t(W,{variant:"secondary",onClick:Ee,children:"Reset All"}),t(W,{onClick:()=>m(),className:c.applyBtn,children:"Apply Filters"})]})]})]}),t("div",{className:n.resultsHeader,ref:H,children:[t("h3",{className:n.resultsTitle,children:[i?"Continue Watching":d,t("span",{className:n.itemCount,children:["(",k," items)"]})]}),t("div",{className:n.headerActions,children:[t("button",{className:`${n.manageBtn} ${z?n.active:""}`,onClick:Ye,children:[t(g,{name:"pencil-alt",size:13}),t("span",{children:"Bulk Manage"})]}),k>0&&t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j})]})]}),z&&t("div",{className:n.manageBar,children:[t("button",{className:n.selectAllBtn,onClick:Ke,children:[t("span",{className:`${n.selectAllBox} ${ne?n.selectAllBoxChecked:""}`,"aria-hidden":"true"}),t("span",{children:ne?"Clear Page":"Select All"})]}),t("span",{className:n.manageCount,children:[p.size," selected"]}),t("div",{className:n.manageSpacer}),!i&&t("select",{className:n.manageStatusSelect,value:"",onChange:e=>{e.currentTarget.value&&Qe(e.currentTarget.value)},disabled:p.size===0,title:"Set status for selected items",children:[t("option",{value:"",children:"Set status…"}),Ce.map(e=>t("option",{value:e,children:e},e))]}),t("button",{className:n.manageRemoveBtn,onClick:Ve,disabled:p.size===0,children:[t(g,{name:"trash",size:13}),t("span",{children:"Remove Selected"})]})]}),j?t(pt,{}):ie?t(gt,{message:ie.message}):t(Xe,{children:[S.length>0&&t(vt,{chips:S}),t("div",{className:`${n.grid} ${Be?n.lowEnd:""}`,children:te.map(e=>{const a=p.has(e.id);return t("div",{className:`${n.itemWrapper} ${a?n.selected:""}`,children:[z&&t("div",{className:n.selectOverlay,onClick:()=>je(e.id),title:a?"Deselect":"Select",children:t("span",{className:n.selectBadge,children:a?t(g,{name:"check",size:12}):null})}),t(mt,{anime:e,continueWatching:i,onRemove:()=>ue(e.id,e.name),layout:"vertical"}),!i&&!z&&t("div",{className:n.cardActions,children:[t("select",{className:n.statusSelect,value:e.status,onChange:s=>Fe.mutate({id:e.id,status:s.currentTarget.value}),children:Ce.map(s=>t("option",{value:s,children:s},s))}),t("button",{className:n.removeBtn,onClick:()=>ue(e.id,e.name),title:"Remove from Watchlist","aria-label":"Remove from Watchlist",children:t(g,{name:"trash",size:12})})]})]},e._id)})})]}),!j&&te.length===0&&t("div",{className:n.emptyState,children:[t("h3",{className:n.emptyTitle,children:"Your watchlist is looking a bit lonely"}),t("p",{className:n.emptyText,children:d!=="All"||A||C!=="ALL"||N!=="ALL"||b!=="ALL"||Object.keys(R).length>0?"No anime match these filters. Try adjusting them to see more titles.":"Let's find something to watch!"}),t("button",{className:n.emptyBtn,onClick:()=>v("/search"),children:[t(g,{name:"search",size:14}),t("span",{children:"Browse Anime"})]})]}),k>0&&t("div",{className:n.bottomPagination,children:t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j,variant:"labeled"})}),t(se,{isOpen:!!o,onClose:me,title:i?"Reset Progress":"Remove from Watchlist",children:[t(se.Body,{children:[t("p",{children:o?.ids&&o.ids.length>1?i?`Are you sure you want to remove watch progress for ${o.ids.length} items?`:`Are you sure you want to remove ${o.ids.length} items from your watchlist?`:i?`Are you sure you want to remove your watch progress for "${o?.name}"?`:`Are you sure you want to remove "${o?.name}" from your watchlist?`}),i&&t("label",{children:[t("input",{type:"checkbox",checked:Z,onChange:e=>E(e.currentTarget.checked)}),"Also remove from my watchlist"]}),!i&&!(o?.ids&&o.ids.length>1)&&t("label",{children:[t("input",{type:"checkbox",checked:ce,onChange:e=>D(e.currentTarget.checked)}),"Remember my choice"]})]}),t(se.Actions,{children:[t(W,{variant:"secondary",onClick:me,children:"No"}),t(W,{variant:"danger",onClick:ze,children:"Yes"})]})]})]})};export{ia as default};
|
|
1
|
+
import{h as fe,o as He,a as Ze,p as Je,d as h,A as ye,T,u as t,S as Xe}from"./vendor-core-DfaOB3Rn.js";import{u as et,a as Se}from"./vendor-query-BBT5_sHx.js";import{v as tt,a as at,e as nt,J as st,K as _e,L as we,q as Ae,N as lt,t as rt,y as ct,u as it,O as ot,P as dt,Q as ht,R as ut,B as W,S as se}from"./index-CqcwUuWG.js";import{I as g}from"./vendor-icons-C1Pj_eSX.js";import{A as mt}from"./AnimeCard-fC2KO9iC.js";import{S as pt}from"./SkeletonGrid-xGtg97zD.js";import{E as gt}from"./ErrorMessage-hMt90aG4.js";import{P as Le}from"./MediaCard-B13pU_sD.js";import{s as n}from"./LibraryListPage.module-r6k9nyT9.js";import{A as vt}from"./ActiveFilterChips-olGfwxle.js";import"./useAnimeInfoData-BlTijixl.js";import"./QueueOptionsButton-NMKIXk8k.js";import"./vendor-ui-3qrARCPr.js";import"./MediaPopupShell-BewMMT93.js";import"./useIsMobile-Dvx1uJ82.js";import"./playbackCompletion-DasRrCt1.js";import"./MatureConsentModal-D2QxzAd5.js";const ft=(d,v)=>{const l=new URLSearchParams(v);return l.delete("page"),l.sort(),`${d}|${l.toString()}`},yt=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.add(w)),l},St=(d,v)=>{const l=new Set(d);return v.forEach(w=>l.delete(w)),l},_t="_sortSelect_cahhw_1",wt="_filterContainer_cahhw_30",At="_slideUpIn_cahhw_1",Lt="_searchBarWrapper_cahhw_44",Ct="_inputIconWrapper_cahhw_50",Nt="_searchIcon_cahhw_55",bt="_searchInput_cahhw_64",Bt="_searchActions_cahhw_84",Rt="_searchBtn_cahhw_89",kt="_filterToggleBtn_cahhw_94",Tt="_advancedFilters_cahhw_115",Wt="_show_cahhw_122",It="_filterDivider_cahhw_128",xt="_filterGrid_cahhw_134",Pt="_filterItem_cahhw_141",$t="_genreSection_cahhw_183",Ft="_genreLabel_cahhw_189",Ot="_genreContainer_cahhw_199",Gt="_genreButton_cahhw_205",Mt="_include_cahhw_222",Et="_exclude_cahhw_228",Dt="_filterActions_cahhw_235",zt="_applyBtn_cahhw_246",c={sortSelect:_t,filterContainer:wt,slideUpIn:At,searchBarWrapper:Lt,inputIconWrapper:Ct,searchIcon:Nt,searchInput:bt,searchActions:Bt,searchBtn:Rt,filterToggleBtn:kt,advancedFilters:Tt,show:Wt,filterDivider:It,filterGrid:xt,filterItem:Pt,genreSection:$t,genreLabel:Ft,genreContainer:Ot,genreButton:Gt,include:Mt,exclude:Et,filterActions:Dt,applyBtn:zt},Ne=["All","Continue Watching","Watching","Completed","On-Hold","Dropped","Planned"],Ce=Ne.slice(2),Ut=[{value:"ALL",label:"All Types"},{value:"TV",label:"TV Series"},{value:"Movie",label:"Movie"},{value:"OVA",label:"OVA"},{value:"ONA",label:"ONA"},{value:"TV_SHORT",label:"TV Short"},{value:"SPECIAL",label:"Special"},{value:"ADULT",label:"Adult (18+)"}],qt=[{value:"ALL",label:"All Seasons"},{value:"WINTER",label:"Winter"},{value:"SPRING",label:"Spring"},{value:"SUMMER",label:"Summer"},{value:"FALL",label:"Fall"}],ia=()=>{fe(()=>{document.title="Watchlist - dango"},[]);const{filter:d="All"}=He(),v=Ze(),[l,w]=Je(),Q=et(),le=tt(),[f,I]=h(parseInt(l.get("page")||"1")),[A,x]=h(l.get("query")||""),[L,V]=h(l.get("sortBy")||"last_added"),[C,P]=h(l.get("type")||"ALL"),[N,$]=h(l.get("season")||"ALL"),[b,F]=h(l.get("year")||"ALL"),[R,O]=h(()=>{const e={},a=l.get("genres")?.split(",").map(r=>r.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(r=>r.trim()).filter(Boolean)||[];return a.forEach(r=>r&&(e[r]="include")),s.forEach(r=>r&&(e[r]="exclude")),e}),[G,be]=h(()=>["type","season","year","genres","excludeGenres"].some(e=>l.has(e))),{lowEndMode:Be}=at(),{titlePreference:M}=nt(),{data:Re}=st(),re=Re?.genres||[],H=ye(null),[o,B]=h(null),[Z,E]=h(!1),[ce,D]=h(!1),[z,ke]=h(!1),[p,y]=h(new Set),J=ye(null),i=d==="Continue Watching",U=T(()=>{const e=new URLSearchParams(l);return e.delete("page"),e.set("titlePreference",M),e.toString()},[l,M]),{data:q,isLoading:Te,error:We}=_e(U,f,14),{data:Y,isLoading:Ie,error:xe}=we(d,U,f,14),{data:Pe}=_e(U,f+1,14),{data:$e}=we(d,U,f+1,14),X=T(()=>(i?q?.data:Y?.data)||[],[i,q,Y]),k=T(()=>(i?q?.total:Y?.total)||0,[i,q,Y]),j=i?Te:Ie,ie=i?We:xe,oe=i?Pe:$e;fe(()=>{x(l.get("query")||""),V(l.get("sortBy")||"last_added"),P(l.get("type")||"ALL"),$(l.get("season")||"ALL"),F(l.get("year")||"ALL");const e={},a=l.get("genres")?.split(",").map(u=>u.trim()).filter(Boolean)||[],s=l.get("excludeGenres")?.split(",").map(u=>u.trim()).filter(Boolean)||[];a.forEach(u=>u&&(e[u]="include")),s.forEach(u=>u&&(e[u]="exclude")),O(e),I(parseInt(l.get("page")||"1"));const r=ft(d,l);J.current!==null&&J.current!==r&&y(new Set),J.current=r},[l,d]);const Fe=Se({mutationFn:async({id:e,status:a})=>{await rt.watchlist.setStatus.mutate({id:e,status:a})},onSuccess:()=>{Q.invalidateQueries({queryKey:[Ae.watchlist]}),lt.success("Status updated")}}),Oe=Se(le.continueWatching.remove.mutationOptions({onSuccess:()=>{Q.invalidateQueries(le.continueWatching.pathFilter()),Q.invalidateQueries({queryKey:[Ae.continueWatching]})}})),ee=ct(),{data:de}=it("skipRemoveConfirmation"),Ge=ot(),te=T(()=>{const e=a=>a[M]||a.name||"";return[...X].sort((a,s)=>L==="name_asc"?e(a).localeCompare(e(s)):L==="name_desc"?e(s).localeCompare(e(a)):0)},[X,L,M]),ae=new Date().getFullYear(),Me=[{value:"ALL",label:"All Years"},...Array.from({length:ae-1980+1},(e,a)=>({value:String(ae-a),label:String(ae-a)}))],m=(e=L,a=1)=>{const s=new URLSearchParams;A.trim()&&s.set("query",A.trim()),e!=="last_added"&&s.set("sortBy",e),C!=="ALL"&&s.set("type",C),N!=="ALL"&&s.set("season",N),b!=="ALL"&&s.set("year",b);const r=Object.entries(R).filter(([,_])=>_==="include").map(([_])=>_),u=Object.entries(R).filter(([,_])=>_==="exclude").map(([_])=>_);r.length>0&&s.set("genres",r.join(",")),u.length>0&&s.set("excludeGenres",u.join(",")),a>1&&s.set("page",a.toString()),w(s),a!==f&&I(a)},he=e=>{if(m(L,e),H.current){const a=H.current.getBoundingClientRect().top+window.scrollY-100;window.scrollTo({top:a,behavior:"smooth"})}},Ee=()=>{x(""),V("last_added"),P("ALL"),$("ALL"),F("ALL"),O({}),w(new URLSearchParams),I(1)},De=e=>{O(a=>{const s=a[e],r={...a};return s==="include"?r[e]="exclude":s==="exclude"?delete r[e]:r[e]="include",r})},ue=(e,a)=>{if(i){B({id:e,name:a});return}String(de)==="true"||String(de)==="1"?ee.mutate({id:e}):B({id:e,name:a})},ze=()=>{if(o){if(o.ids){i?(Ue.mutate({ids:o.ids}),Z&&pe.mutate({ids:o.ids})):pe.mutate({ids:o.ids}),y(new Set),B(null),E(!1),D(!1);return}i?(Oe.mutate({showId:o.id}),Z&&ee.mutate({id:o.id})):ee.mutate({id:o.id}),ce&&Ge.mutate({key:"skipRemoveConfirmation",value:!0}),B(null),E(!1),D(!1)}},me=()=>{B(null),E(!1),D(!1)},pe=dt(),Ue=ht(),qe=ut(),Ye=()=>{ke(e=>{const a=!e;return a||y(new Set),a})},je=e=>{y(a=>{const s=new Set(a);return s.has(e)?s.delete(e):s.add(e),s})},K=te.map(e=>e.id),ne=K.length>0&&K.every(e=>p.has(e)),Ke=()=>{y(ne?e=>St(e,K):e=>yt(e,K))},Qe=e=>{p.size!==0&&(qe.mutate({ids:[...p],status:e}),y(new Set))},Ve=()=>{p.size!==0&&B({ids:[...p]})},ge=X.length>=14&&oe&&oe.data.length>0,ve=T(()=>Math.max(1,Math.ceil(k/14)),[k]),S=[];A.trim()&&S.push({key:"query",label:`Search: ${A}`,onRemove:()=>{x(""),m()}}),C!=="ALL"&&S.push({key:"type",label:`Type: ${C}`,onRemove:()=>{P("ALL"),m()}}),N!=="ALL"&&S.push({key:"season",label:`Season: ${N}`,onRemove:()=>{$("ALL"),m()}}),b!=="ALL"&&S.push({key:"year",label:`Year: ${b}`,onRemove:()=>{F("ALL"),m()}});for(const[e,a]of Object.entries(R))S.push({key:e,label:a==="include"?`+ ${e}`:`-${e}`,tone:a==="include"?"primary":"danger",onRemove:()=>{O(s=>{const r={...s};return delete r[e],r}),m()}});return t("div",{className:"page-container",children:[t("header",{className:n.header,children:[t("h2",{className:n.title,children:"My Watchlist"}),t("p",{className:n.subtitle,children:"Track and manage your anime collection"})]}),t("div",{className:n.controls,children:[t("div",{className:n.filters,children:Ne.map(e=>t("button",{className:`${n.filterBtn} ${d===e?n.active:""}`,onClick:()=>{const a=new URLSearchParams(l);a.delete("page"),v({pathname:`/watchlist/${e}`,search:a.toString()}),I(1)},children:e},e))}),t("div",{children:t("select",{className:c.sortSelect,value:L,onChange:e=>{const a=e.currentTarget.value;V(a),m(a,f)},children:[t("option",{value:"last_added",children:"Recently Added"}),t("option",{value:"name_asc",children:"Name (A-Z)"}),t("option",{value:"name_desc",children:"Name (Z-A)"})]})})]}),t("div",{className:c.filterContainer,children:[t("div",{className:c.searchBarWrapper,children:[t("div",{className:c.inputIconWrapper,children:[t(g,{name:"search",className:c.searchIcon}),t("input",{className:c.searchInput,placeholder:"Search your watchlist by title...",value:A,onInput:e=>x(e.currentTarget.value),onKeyDown:e=>e.key==="Enter"&&m()})]}),t("div",{className:c.searchActions,children:[t(W,{onClick:()=>m(),className:c.searchBtn,children:"Search"}),t("button",{className:`${c.filterToggleBtn} ${G?n.active:""}`,onClick:()=>be(!G),children:[t(g,{name:"filter",size:14}),t("span",{children:"Filters"}),G?t(g,{name:"chevron-up",size:12}):t(g,{name:"chevron-down",size:12})]})]})]}),t("div",{className:`${c.advancedFilters} ${G?c.show:""}`,children:[t("div",{className:c.filterDivider}),t("div",{className:c.filterGrid,children:[t("div",{className:c.filterItem,children:[t("label",{children:"Type"}),t("select",{value:C,onChange:e=>P(e.currentTarget.value),children:Ut.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Season"}),t("select",{value:N,onChange:e=>$(e.currentTarget.value),children:qt.map(e=>t("option",{value:e.value,children:e.label},e.value))})]}),t("div",{className:c.filterItem,children:[t("label",{children:"Year"}),t("select",{value:b,onChange:e=>F(e.currentTarget.value),children:Me.map(e=>t("option",{value:e.value,children:e.label},e.value))})]})]}),re.length>0&&t("div",{className:c.genreSection,children:[t("label",{className:c.genreLabel,children:"Genres"}),t("div",{className:c.genreContainer,children:re.map(e=>t("button",{className:`${c.genreButton} ${c[R[e]||""]}`,onClick:()=>De(e),children:e},e))})]}),t("div",{className:c.filterActions,children:[t(W,{variant:"secondary",onClick:Ee,children:"Reset All"}),t(W,{onClick:()=>m(),className:c.applyBtn,children:"Apply Filters"})]})]})]}),t("div",{className:n.resultsHeader,ref:H,children:[t("h3",{className:n.resultsTitle,children:[i?"Continue Watching":d,t("span",{className:n.itemCount,children:["(",k," items)"]})]}),t("div",{className:n.headerActions,children:[t("button",{className:`${n.manageBtn} ${z?n.active:""}`,onClick:Ye,children:[t(g,{name:"pencil-alt",size:13}),t("span",{children:"Bulk Manage"})]}),k>0&&t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j})]})]}),z&&t("div",{className:n.manageBar,children:[t("button",{className:n.selectAllBtn,onClick:Ke,children:[t("span",{className:`${n.selectAllBox} ${ne?n.selectAllBoxChecked:""}`,"aria-hidden":"true"}),t("span",{children:ne?"Clear Page":"Select All"})]}),t("span",{className:n.manageCount,children:[p.size," selected"]}),t("div",{className:n.manageSpacer}),!i&&t("select",{className:n.manageStatusSelect,value:"",onChange:e=>{e.currentTarget.value&&Qe(e.currentTarget.value)},disabled:p.size===0,title:"Set status for selected items",children:[t("option",{value:"",children:"Set status…"}),Ce.map(e=>t("option",{value:e,children:e},e))]}),t("button",{className:n.manageRemoveBtn,onClick:Ve,disabled:p.size===0,children:[t(g,{name:"trash",size:13}),t("span",{children:"Remove Selected"})]})]}),j?t(pt,{}):ie?t(gt,{message:ie.message}):t(Xe,{children:[S.length>0&&t(vt,{chips:S}),t("div",{className:`${n.grid} ${Be?n.lowEnd:""}`,children:te.map(e=>{const a=p.has(e.id);return t("div",{className:`${n.itemWrapper} ${a?n.selected:""}`,children:[z&&t("div",{className:n.selectOverlay,onClick:()=>je(e.id),title:a?"Deselect":"Select",children:t("span",{className:n.selectBadge,children:a?t(g,{name:"check",size:12}):null})}),t(mt,{anime:e,continueWatching:i,onRemove:()=>ue(e.id,e.name),layout:"vertical"}),!i&&!z&&t("div",{className:n.cardActions,children:[t("select",{className:n.statusSelect,value:e.status,onChange:s=>Fe.mutate({id:e.id,status:s.currentTarget.value}),children:Ce.map(s=>t("option",{value:s,children:s},s))}),t("button",{className:n.removeBtn,onClick:()=>ue(e.id,e.name),title:"Remove from Watchlist","aria-label":"Remove from Watchlist",children:t(g,{name:"trash",size:12})})]})]},e._id)})})]}),!j&&te.length===0&&t("div",{className:n.emptyState,children:[t("h3",{className:n.emptyTitle,children:"Your watchlist is looking a bit lonely"}),t("p",{className:n.emptyText,children:d!=="All"||A||C!=="ALL"||N!=="ALL"||b!=="ALL"||Object.keys(R).length>0?"No anime match these filters. Try adjusting them to see more titles.":"Let's find something to watch!"}),t("button",{className:n.emptyBtn,onClick:()=>v("/search"),children:[t(g,{name:"search",size:14}),t("span",{children:"Browse Anime"})]})]}),k>0&&t("div",{className:n.bottomPagination,children:t(Le,{page:f,totalPages:ve,canGoNext:ge,onChange:he,isLoading:j,variant:"labeled"})}),t(se,{isOpen:!!o,onClose:me,title:i?"Reset Progress":"Remove from Watchlist",children:[t(se.Body,{children:[t("p",{children:o?.ids&&o.ids.length>1?i?`Are you sure you want to remove watch progress for ${o.ids.length} items?`:`Are you sure you want to remove ${o.ids.length} items from your watchlist?`:i?`Are you sure you want to remove your watch progress for "${o?.name}"?`:`Are you sure you want to remove "${o?.name}" from your watchlist?`}),i&&t("label",{children:[t("input",{type:"checkbox",checked:Z,onChange:e=>E(e.currentTarget.checked)}),"Also remove from my watchlist"]}),!i&&!(o?.ids&&o.ids.length>1)&&t("label",{children:[t("input",{type:"checkbox",checked:ce,onChange:e=>D(e.currentTarget.checked)}),"Remember my choice"]})]}),t(se.Actions,{children:[t(W,{variant:"secondary",onClick:me,children:"No"}),t(W,{variant:"danger",onClick:ze,children:"Yes"})]})]})]})};export{ia as default};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|