{"version":3,"file":"503.a58a26917165fc9d.js","mappings":"0aAKIA,MAAA,UAAgCA,MAAA,qBAA4DA,kDAA5DA,MAAA,GAAAA,MAAAC,EAAA,eAAAD,MAAA,EAAAE,EAAAF,MAAA,IAAAG,EAAAC,WAAAC,cAAA,0CAa9BL,MAAA,uBAA4DA,MAAA,oBAAAA,MAAAM,GAAA,MAAAC,EAAAP,MAAA,UAAUA,MAAAO,EAAAC,WAAU,EAApBR,CAAqB,qBAAAS,GAAA,MAAAC,EAAAV,MAAAM,GAAAK,IAAAC,EAAAZ,MAAA,UACnDA,MAAAY,EAAAC,qBAAAC,oBAAyC,SAAQJ,EAAAE,EAAAG,OAAAC,OAAAP,GAAkC,GACHT,OAAA,gDAF7FA,MAAA,OAAAiB,EAAAjB,CAAa,YAAAiB,EAAAC,UAAblB,CAAa,WAAAmB,EAAAN,qBAAAO,eAAA,SAAAV,GAAbV,CAAa,8DAlBpCA,MAAA,GACEA,MAAA,kCAA+CA,MAAA,sBAAAS,GAAAT,MAAAqB,GAAA,MAAAC,EAAAtB,QAAA,OAAcA,MAAAsB,EAAAC,WAAAC,KAAAf,GAAuB,GAClFT,MAAA,UACEA,MAAA,GACFA,QACAA,MAAA,EAAAyB,EAAA,YACFzB,QACAA,MAAA,2BACAA,MAAA,8BAOEA,MAAA,uBAAAS,GAAAT,MAAAqB,GAAA,MAAAK,EAAA1B,QAAA,OAAeA,MAAA0B,EAAAC,aAAAlB,GAAoB,GAEnCT,MAAA,EAAA4B,EAAA,yBAAA5B,OAKFA,QAEFA,OAAA,yBAvB8BA,MAAA,GAAAA,MAAA,eAAAA,CAAkB,eAAA6B,EAAAC,cAE1C9B,MAAA,GAAAA,MAAA,IAAA6B,EAAAE,MAAA,KAEY/B,MAAA,GAAAA,MAAA,OAAA6B,EAAAzB,YAEKJ,MAAA,GAAAA,MAAA,iBAAA6B,EAAAG,oBAEnBhC,MAAA,GAAAA,MAAA,YAAA6B,EAAAI,cAAAjC,CAA2B,QAAA6B,EAAAd,OAA3Bf,CAA2B,kBAAA6B,EAAAK,gBAA3BlC,CAA2B,iBAAA6B,EAAAM,eAA3BnC,CAA2B,aAAA6B,EAAAN,WAA3BvB,CAA2B,cAAA6B,EAAAO,YAAA,ECmCxB,IAAMC,EAAkB,MAAzB,MAAOA,EA8DXC,YAAoBC,EAAwBC,EAClCC,EAA6BC,EAC9B7B,EAAoD8B,EACnDC,EAAwCC,EACxCC,EAAsDC,EAC7CC,GALCC,KAAAV,SAAwBU,KAAAT,gBAClCS,KAAAR,eAA6BQ,KAAAP,gBAC9BO,KAAApC,uBAAoDoC,KAAAN,aACnDM,KAAAL,iBAAwCK,KAAAJ,QACxCI,KAAAH,uBAAsDG,KAAAF,iBAC7CE,KAAAD,QAjEnBC,KAAAlB,SAAgBmB,MAAU,oBAC1BD,KAAAlC,OAAmB,GACnBkC,KAAAhB,eAAgB,EAEhBgB,KAAAE,YAAqCC,EACrCH,KAAAd,eAAiC,IAAIkB,IACrCJ,KAAA1B,WAAoC,IAAI+B,MAExCL,KAAAnB,cAAwB,EACxBmB,KAAAb,YAA8B,GACba,KAAAM,cAAaC,OAAOC,OAErCR,KAAAjB,mBAAqB,CAAC0B,EAAyBC,KAC7C,MAAMC,EAAyBX,KAAKpC,qBAAqBgD,0BAA0B,UAC7EC,EAAiBb,KAAKlC,OAAOoC,OAAO,CAACpC,EAAQgD,IAAkBH,EAAuBI,SAASD,EAAQ,KAE7G,OAAQL,EAAOA,QACb,KAAKO,IAAOC,iBACVjB,KAAKP,cAAcyB,+BAA+BL,EAAiBM,IAC7DA,GAASnB,KAAKpC,qBAAqBwD,aAAW,GAEpD,MACF,KAAKJ,IAAOK,oBACVrB,KAAKP,cAAc6B,kCAAkCT,EAAeU,IAAIC,GAAKA,EAAEC,IAAK,KAClFzB,KAAKpC,qBAAqBwD,aAAW,GAEvC,MACF,KAAKJ,IAAOU,yBACV1B,KAAKP,cAAckC,uCAAuCd,EAAeU,IAAIC,GAAKA,EAAEC,IAAK,KACvFzB,KAAKpC,qBAAqBwD,aAAW,GAEvC,MACF,KAAKJ,IAAOY,gBACV5B,KAAKP,cAAcoC,iCAAiChB,EAAiBM,IAC/DA,GAASnB,KAAKpC,qBAAqBwD,aAAW,GAEpD,MACF,KAAKJ,IAAOc,WACV9B,KAAKP,cAAcsC,yBAAyBlB,EAAgB,KAC1Db,KAAKzC,WACLyC,KAAKpC,qBAAqBwD,aAAW,GAGvC,MACF,KAAKJ,IAAOgB,aACVhC,KAAKP,cAAcwC,2BAA2BpB,EAAgB,KAC5Db,KAAKzC,WACLyC,KAAKpC,qBAAqBwD,aAAW,GAEvC,MACF,KAAKJ,IAAOkB,OACVlC,KAAKP,cAAc0C,qBAAqBtB,EAAiBuB,IAClDA,IACLpC,KAAKzC,WACLyC,KAAKpC,qBAAqBwD,cAAW,KA6E7CpB,KAAAf,gBAAkB,CAAC6B,EAAeuB,IAAiB,GAAGA,EAAKC,QAAQD,EAAKE,iBAAiBF,EAAKG,YAhE5FxC,KAAKV,OAAOmD,mBAAmBC,iBAAmB,KAAM,EAExD1C,KAAKlB,MAAQkB,KAAKJ,MAAM+C,SAASC,cAAcC,IAAI,UAAY7C,KAAKlB,MACpEkB,KAAKR,aAAasD,SAAS,YAAc9C,KAAKlB,OAE9CkB,KAAK7C,WAAa6C,KAAKH,qBAAqB1C,WAAW6C,KAAKJ,MAAM+C,UAElE3C,KAAKE,OAASF,KAAKH,qBAAqBkD,uBAAuB/C,KAAKJ,MAAM+C,UACpC,IAAlC3C,KAAKE,OAAO8C,WAAWjF,QACzBiC,KAAKE,OAAQ8C,WAAWC,KAAKjD,KAAKH,qBAAqBqD,kCAEzDlD,KAAKmD,kBAAoBnD,KAAKH,qBAAqBuD,uBACnDpD,KAAKmD,kBAAmBH,WAAWC,KAAKjD,KAAKH,qBAAqBqD,kCAClElD,KAAKd,eAAemE,UAAarD,KAAKE,OAEtCF,KAAKD,MAAMuD,cACb,CAEAC,WACEvD,KAAKN,WAAW8D,UAAUC,QAAKC,KAAa,MAAI,EAAGC,MAAmB3D,KAAKM,aAAasD,UAAWC,IAC7FA,EAAMA,QAAUC,IAAOC,aAC3B/D,KAAKzC,UAAQ,EAEjB,CAGAyG,eAAeH,GACTA,EAAMI,MAAQC,KAAUC,QAC1BnE,KAAKpC,qBAAqBwG,aAAc,EAE5C,CAGAC,YAAYR,GACNA,EAAMI,MAAQC,KAAUC,QAC1BnE,KAAKpC,qBAAqBwG,aAAc,EAE5C,CAGA1F,aAAagC,QACWP,IAAlBO,EAAK4D,WACTtE,KAAKE,OAASQ,EAAK4D,SAEd5D,EAAK6D,SACRvE,KAAKH,qBAAqB2E,sBAAsBxE,KAAK7C,WAAY6C,KAAKE,QAGxEF,KAAKzC,WACP,CAEAA,WACEyC,KAAKnB,cAAgBmB,KAAKL,eAAe8E,UAAUzE,KAAKE,OAAQF,KAAKmD,mBACrEnD,KAAKhB,eAAgB,EACrBgB,KAAKD,MAAMuD,eACXtD,KAAKT,cAAcmF,oBAAevE,OAAWA,EAAWH,KAAKE,QAASuD,QAAKkB,KAAK,IAAIf,UAAU9F,IAC5FkC,KAAKlC,OAASA,EAAO8G,OACrB5E,KAAKb,YAAca,KAAKF,eAAe+E,YAAY7E,KAAKlC,OAAS0D,GAAcA,EAAEc,MACjFtC,KAAK7C,WAAaW,EAAOX,WACzB6C,KAAKhB,eAAgB,EACrBgB,KAAKD,MAAMuD,cAAY,EAE3B,EAnIWlE,SAAkB,mBAAA0F,iBAAlB1F,GAAkBrC,MAAAgI,MAAAhI,MAAAiI,KAAAjI,MAAAkI,MAAAlI,MAAAmI,KAAAnI,MAAAoI,KAAApI,MAAAqI,KAAArI,MAAAsI,MAAAtI,MAAAgI,MAAAhI,MAAAuI,KAAAvI,MAAAwI,KAAAxI,aAAA,EAAlBqC,EAAkB,UAAAoG,EAAAC,IAAA,MAAlBrG,EAAkBsG,UAAA,qBAAAC,aAAA,SAAAC,EAAAC,GAAA,EAAAD,4CAAlBC,EAAA7B,eAAAxG,EAAsB,KAAAT,OAAA,uBAAAS,GAAA,OAAtBqI,EAAAxB,YAAA7G,EAAmB,KAAAT,8aD5ChCA,MAAA,EAAA+I,EAAA,4BAAiC/I,MAAA,6CC0CrBgJ,IAA8BC,KAAMC,IAAyBC,IAA2BC,IAAqBC,KAAaC,MAAkBC,gBAAA,IAE3IlH,CAAkB,KCtC/B,MAAMmH,EAAiB,CACrB,CAACC,KAAM,KAAMC,UAAWrH,EAAoBsH,UAAW,OAAQC,YAAa,CAACC,MAC7E,CACEJ,KAAM,GACNC,UAAWrH,EACXyH,sBAAuB,SACvBF,YAAa,CAACC,OASX,IAAME,EAAsB,MAA7B,MAAOA,YAAsB,mBAAAhC,iBAAtBgC,EAAsB,EAAtBA,EAAsB,UAAAtB,EAAAuB,IAAA,MAAtBD,MAAsB,UAAAtB,EAAAwB,IAAA,UAHvBC,KAAaC,SAASX,GACtBU,QAECH,CAAsB,KCGtBK,EAAe,MAAtB,MAAOA,YAAe,mBAAArC,iBAAfqC,EAAe,EAAfA,EAAe,UAAA3B,EAAAuB,IAAA,MAAfI,MAAe,UAAA3B,EAAAwB,IAAA,UATpBI,KACAN,EACAX,IACAF,IACAC,IACAH,IACA3G,KAGK+H,CAAe,6NCxB5BpK,MAAA,GACIA,MAAA,qBAC6DA,MAAA,qBAAAA,MAAAsK,GAAA,MAAAC,EAAAvK,QAAA,OAAWA,MAAAuK,EAAAC,cAAa,EAAxBxK,CAAyB,uBAAAA,MAAAsK,GAAA,MAAAG,EAAAzK,QAAA,OACvCA,MAAAyK,EAAAC,UAAAlJ,KAAAiJ,EAAAE,UAAwB,2BAEtE3K,QACLA,OAAA,yBALmBA,MAAA,GAAAA,MAAA,QAAA6B,EAAA8B,KAAA4B,KAAAvF,CAAmB,UAAA6B,EAAA+I,QAAnB5K,CAAmB,sBAAA6B,EAAAgJ,oBAAnB7K,CAAmB,WAAA6B,EAAAiJ,SAAnB9K,CAAmB,SAAA6B,EAAA8B,KAAnB3D,CAAmB,QAAA6B,EAAA8B,KAAAoH,MAAnB/K,CAAmB,OAAA6B,EAAA8B,KAAA8B,UAAnBzF,CAAmB,iBAAA6B,EAAAmJ,eAAnBhL,CAAmB,WAAA6B,EAAA8I,SAAnB3K,CAAmB,qBAAAA,MAAA,KAAA6B,EAAAoJ,UAAA,ECyBtC,SAASC,EAAUC,GACjB,GAAY,OAARA,GAA+B,iBAARA,EACzB,OAAOA,EAGT,GAAIA,aAAeC,MACjB,OAAOD,EAAI3G,IAAIc,GAAQ4F,EAAU5F,IAGnC,MAAM+F,EAAiB,GAEvB,UAAWnE,KAAOiE,EACZG,OAAOC,UAAUC,eAAeC,KAAKN,EAAKjE,KAE1CmE,EAAUnE,GADY,iBAAbiE,EAAIjE,IAAkC,OAAbiE,EAAIjE,GACrBgE,EAAUC,EAAIjE,IAEdiE,EAAIjE,IAK3B,OAAOmE,CACT,CAUO,IAAMjC,EAAmB,MAA1B,MAAOA,EAqCX9G,YAAoBC,EAAwBS,EACxBR,EAAsCkJ,EACtCC,EAAgCC,EAChCC,EACAnJ,GAJAO,KAAAV,SAAwBU,KAAAD,QACxBC,KAAAT,gBAAsCS,KAAAyI,SACtCzI,KAAA0I,eAAgC1I,KAAA2I,eAChC3I,KAAA4I,uBACA5I,KAAAP,gBAvCXO,KAAA/B,UAAY,EACZ+B,KAAA4H,qBAAsB,EAItB5H,KAAA0H,UAAoB,EAIpB1H,KAAA+H,gBAA0B,EAI1B/H,KAAAgI,cAAqC7H,EAIrCH,KAAA6I,UAAoB,EAEnB7I,KAAA8I,QAAU,IAAIzI,MAIdL,KAAA+I,OAAS,IAAI1I,MACbL,KAAAgJ,YAAc,IAAI3I,MAIlBL,KAAAyH,UAAY,IAAIpH,MAE1BL,KAAA2H,QAAgC,GAChC3H,KAAA6H,SAAmB,GAEF7H,KAAAiJ,oBAAmB1I,OAAO2I,KAMQ,CAGnD3F,WACMvD,KAAKU,OACPV,KAAK6H,SAAW7H,KAAK2I,aAAaQ,oBAAoBnJ,KAAKU,KAAKe,IAChEzB,KAAKD,MAAMuD,eAEf,CAEA8F,YAAYC,GACV,GAAIrJ,KAAKU,KAAM,CAEb,GADAV,KAAK2H,QAAU,IAAI3H,KAAK4I,qBAAqBU,iBAAiB,CAAC7I,EAA4B3C,IAAmBkC,KAAKuJ,2BAA2B9I,EAAQ3C,KAClJkC,KAAK6I,SAAU,CACjB,MAAMW,EAAcxJ,KAAK2H,QAAQ8B,UAAUvB,GAAqB,WAAdA,EAAIpJ,OAChD4K,EAAezB,EAAUjI,KAAK2H,QAAQ6B,IACxCE,EAAaC,SAASF,UAAUG,GAAKA,EAAEnJ,SAAWO,IAAO6I,kBAAoB,IAC/EH,EAAaC,SAAS1G,KAAK,CACzBxC,OAAQO,IAAO6I,iBACf/K,MAAO,sBACPgL,SAAUA,CAACrJ,EAA4B3C,IAAmBkC,KAAKuJ,2BAA2B9I,EAAQ3C,GAClGiM,MAAO,SACPC,eAAe,EACfL,SAAU,KAEZ3J,KAAK2H,QAAQ6B,GAAeE,GAGhC1J,KAAKD,MAAMuD,cAAY,CAE3B,CAEAiG,2BAA2B9I,EAA4B3C,GACrD,OAAQ2C,EAAOA,QACb,KAAKO,IAAOc,WACV9B,KAAKiK,WAAWnM,GAChB,MACF,KAAKkD,IAAOgB,aACVhC,KAAKkK,aAAapM,GAClB,MACF,KAAKkD,IAAOmJ,KACVnK,KAAKoK,YAAYtM,GACjB,MACF,KAAKkD,IAAOqJ,gBACVrK,KAAKsK,gBAAgBxM,GACrB,MACF,KAAKkD,IAAOkB,OACVlC,KAAKuK,aAAazM,GAClB,MACF,KAAKkD,IAAOwJ,KACVxK,KAAKyK,cAAc3M,GACnB,MACF,KAAKkD,IAAOC,iBACVjB,KAAKP,cAAciL,uBAAuB5M,GAC1C,MACF,KAAKkD,IAAOK,oBACVrB,KAAKP,cAAc6B,kCAAkC,CAACxD,EAAO2D,KAC7D,MACF,KAAKT,IAAOU,yBACV1B,KAAKP,cAAckC,uCAAuC,CAAC7D,EAAO2D,KAC9DzB,KAAKV,OAAOqL,IAAIC,WAAW,kBAC7B5K,KAAK+I,OAAOxK,KAAKT,EAAO2D,IAE1B,MACF,KAAKT,IAAOY,gBACV5B,KAAKP,cAAcoC,iCAAiC,CAAC/D,IACrD,MACF,KAAMkD,IAAO6J,aACX7K,KAAKP,cAAcqL,sBAAsBhN,GACzC,MACF,KAAKkD,IAAO+J,OAEV/K,KAAKP,cAAcuL,mBAAmBlN,EAAO2D,GAD7BhB,EAAOwK,OAAQvK,MAE/B,MACF,KAAKM,IAAO6I,iBACV7J,KAAKT,cAAc2L,iBAAiBpN,EAAO2D,IAAImC,UAAU,IAAM5D,KAAK+I,OAAOxK,KAAKT,EAAO2D,KAK7F,CAEAgJ,cAAc/J,GACZ,MAAMyK,EAAWnL,KAAK0I,aAAa0C,KAAKC,IAA0B,CAAGC,KAAM,OAC3EH,EAASI,kBAAkBzN,OAAS4C,EACpCyK,EAASK,OAAO5H,UAAW6H,IACrBA,EAAYtK,SACdnB,KAAKT,cAAcmM,UAAUhL,EAAKe,IAAImC,UAAU9F,IAC9CkC,KAAKU,KAAO5C,EACZkC,KAAKD,MAAMuD,eACXtD,KAAK+I,OAAOxK,KAAKT,EAAO2D,IACxBzB,KAAKgJ,YAAYzK,KAAKT,EAAM,EAC7B,EAGP,CAEMwM,gBAAgBxM,GAAc,IAAA6N,EAAA3L,KAAA,SAAA4L,KAAA,kBAC5BD,EAAKlM,cAAcoM,eAAe/N,EAAQ,EADd,EAEpC,CAEMsM,YAAYtM,GAAc,IAAAgO,EAAA9L,KAAA,SAAA4L,KAAA,YAC9BE,EAAKvM,cAAcwM,KAAKjO,EAAOG,UAAWH,EAAO2D,IAAImC,UAAWoI,IAC9DF,EAAKrD,OAAOtH,QAAQ2K,EAAK7C,iBAAiBhJ,UAAU,qBAAsB,CAACqC,KAAMxE,EAAOwE,OAAM,EAC7F,EAH2B,EAIhC,CAEMiI,aAAazM,GAAc,IAAAmO,EAAAjM,KAAA,SAAA4L,KAAA,kBACzBK,EAAKxM,cAAc8K,aAAazM,EAAS8G,IACzCA,GACFqH,EAAKlD,OAAOxK,KAAKT,EAAO2D,GAAE,EAE3B,EAL4B,EAMjC,CAEAyI,aAAapM,GACXkC,KAAKP,cAAcyM,mBAAmBpO,EAAQ,KACxCkC,KAAKU,OACPV,KAAKU,KAAK8B,UAAY,EACtBxC,KAAKD,MAAMuD,gBAGbtD,KAAKgJ,YAAYzK,KAAKT,EAAM,EAEhC,CAEAmM,WAAWnM,GACTkC,KAAKP,cAAc0M,iBAAiBrO,EAAQ,KACtCkC,KAAKU,OACPV,KAAKU,KAAK8B,UAAY1E,EAAOgK,MAC7B9H,KAAKD,MAAMuD,gBAEbtD,KAAKgJ,YAAYzK,KAAKT,EAAM,EAEhC,CAEAyJ,cACEvH,KAAK8I,QAAQvK,KAAKyB,KAAKU,MACvBV,KAAKV,OAAO8M,SAAS,CAAC,UAAWpM,KAAK/B,UAAW,SAAU+B,KAAKU,MAAMe,IACxE,EApLW0E,SAAmB,mBAAArB,iBAAnBqB,GAAmBpJ,MAAAgI,MAAAhI,mBAAAiI,KAAAjI,MAAAkI,MAAAlI,MAAAmI,MAAAnI,MAAAoI,KAAApI,MAAAqI,KAAArI,MAAAsI,KAAA,EAAnBc,EAAmB,UAAAkG,EAAA5G,IAAA,MAAnBU,EAAmBT,UAAA,sBAAA4G,OAAA,CAAA5L,KAAA,OAAAzC,UAAA,YAAA2J,oBAAA,sBAAAF,SAAA,WAAAK,eAAA,iBAAAC,SAAA,WAAAa,SAAA,YAAA0D,QAAA,CAAAzD,QAAA,UAAAC,OAAA,SAAAC,YAAA,cAAAvB,UAAA,aAAA+E,YAAA,EAAAC,SAAA,CAAA1P,aAAA2P,MAAA,EAAAC,KAAA,EAAAC,OAAA,mKAAAC,SAAA,SAAAjH,EAAAC,GAAA,EAAAD,GD1DhC7I,MAAA,EAAA+P,EAAA,4BAAe/P,MAAA,YAAAoD,IAAA0F,EAAAnF,qBCqDH0G,KAAY9B,KAAEyH,IAAmBC,KAAgB1G,gBAAA,IAKhDH,CAAmB","names":["i0","t_r1","_c0","ctx_r2","pagination","totalItems","_r9","ctx_r8","loadPage","$event","position_r7","idx","ctx_r10","bulkSelectionService","handleCardSelection","series","length","item_r6","libraryId","ctx_r4","isCardSelected","_r12","ctx_r11","filterOpen","emit","AllSeriesComponent_ng_container_0_h6_4_Template","ctx_r13","updateFilter","AllSeriesComponent_ng_container_0_ng_template_7_Template","ctx_r0","filterActive","title","bulkActionCallback","loadingSeries","trackByIdentity","filterSettings","jumpbarKeys","AllSeriesComponent","constructor","router","seriesService","titleService","actionService","hubService","utilityService","route","filterUtilityService","jumpbarService","cdRef","this","translate","filter","undefined","FilterSettings","EventEmitter","destroyRef","inject","DestroyRef","action","data","selectedSeriesIndexies","getSelectedCardsForSource","selectedSeries","index","includes","Action","AddToReadingList","addMultipleSeriesToReadingList","success","deselectAll","AddToWantToReadList","addMultipleSeriesToWantToReadList","map","s","id","RemoveFromWantToReadList","removeMultipleSeriesFromWantToReadList","AddToCollection","addMultipleSeriesToCollectionTag","MarkAsRead","markMultipleSeriesAsRead","MarkAsUnread","markMultipleSeriesAsUnread","Delete","deleteMultipleSeries","successful","item","name","localizedName","pagesRead","routeReuseStrategy","shouldReuseRoute","snapshot","queryParamMap","get","setTitle","filterPresetsFromUrlV2","statements","push","createSeriesV2DefaultStatement","filterActiveCheck","createSeriesV2Filter","presetsV2","markForCheck","ngOnInit","messages$","pipe","debounceTime","takeUntilDestroyed","subscribe","event","EVENTS","SeriesAdded","handleKeypress","key","KEY_CODES","SHIFT","isShiftDown","handleKeyUp","filterV2","isFirst","updateUrlFromFilterV2","deepEqual","getAllSeriesV2","take","result","getJumpKeys","t","i1","i2","i3","i4","i5","i6","i7","i8","i9","core","Xpm","selectors","hostBindings","rf","ctx","AllSeriesComponent_ng_container_0_Template","SideNavCompanionBarComponent","NgIf","BulkOperationsComponent","CardDetailLayoutComponent","SeriesCardComponent","DecimalPipe","TranslocoDirective","changeDetection","routes","path","component","pathMatch","canActivate","AuthGuard","runGuardsAndResolvers","AllSeriesRoutingModule","oAB","cJS","RouterModule","forChild","AllSeriesModule","CommonModule","_r2","ctx_r1","handleClick","ctx_r3","selection","selected","actions","suppressLibraryLink","imageUrl","pages","allowSelection","relation","deepClone","obj","Array","clonedObj","Object","prototype","hasOwnProperty","call","toastr","modalService","imageService","actionFactoryService","isOnDeck","clicked","reload","dataChanged","translocoService","TranslocoService","getSeriesCoverImage","ngOnChanges","changes","getSeriesActions","handleSeriesActionCallback","othersIndex","findIndex","othersAction","children","o","RemoveFromOnDeck","callback","class","requiresAdmin","markAsRead","markAsUnread","Scan","scanLibrary","RefreshMetadata","refreshMetadata","deleteSeries","Edit","openEditModal","addSeriesToReadingList","url","startsWith","AnalyzeFiles","analyzeFilesForSeries","SendTo","sendSeriesToDevice","_extra","removeFromOnDeck","modalRef","open","EditSeriesModalComponent","size","componentInstance","closed","closeResult","getSeries","_this","_asyncToGenerator","refreshMetdata","_this2","scan","res","_this3","markSeriesAsUnread","markSeriesAsRead","navigate","_angular_core__WEBPACK_IMPORTED_MODULE_7__","inputs","outputs","standalone","features","decls","vars","consts","template","SeriesCardComponent_ng_container_0_Template","CardItemComponent","RelationshipPipe"],"sourceRoot":"webpack:///","sources":["./src/app/all-series/_components/all-series/all-series.component.html","./src/app/all-series/_components/all-series/all-series.component.ts","./src/app/all-series/all-series-routing.module.ts","./src/app/all-series/all-series.module.ts","./src/app/cards/series-card/series-card.component.html","./src/app/cards/series-card/series-card.component.ts"],"sourcesContent":["\n \n

\n {{title}}\n

\n
{{t('series-count', {num: pagination.totalItems | number})}}
\n
\n \n \n \n \n \n \n\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n EventEmitter,\n HostListener,\n inject,\n OnInit\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { take, debounceTime } from 'rxjs/operators';\nimport { BulkSelectionService } from 'src/app/cards/bulk-selection.service';\nimport { FilterSettings } from 'src/app/metadata-filter/filter-settings';\nimport { FilterUtilitiesService } from 'src/app/shared/_services/filter-utilities.service';\nimport { UtilityService, KEY_CODES } from 'src/app/shared/_services/utility.service';\nimport { JumpKey } from 'src/app/_models/jumpbar/jump-key';\nimport { Pagination } from 'src/app/_models/pagination';\nimport { Series } from 'src/app/_models/series';\nimport { FilterEvent } from 'src/app/_models/metadata/series-filter';\nimport { Action, ActionItem } from 'src/app/_services/action-factory.service';\nimport { ActionService } from 'src/app/_services/action.service';\nimport { JumpbarService } from 'src/app/_services/jumpbar.service';\nimport { MessageHubService, Message, EVENTS } from 'src/app/_services/message-hub.service';\nimport { SeriesService } from 'src/app/_services/series.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { SeriesCardComponent } from '../../../cards/series-card/series-card.component';\nimport { CardDetailLayoutComponent } from '../../../cards/card-detail-layout/card-detail-layout.component';\nimport { BulkOperationsComponent } from '../../../cards/bulk-operations/bulk-operations.component';\nimport { NgIf, DecimalPipe } from '@angular/common';\nimport { SideNavCompanionBarComponent } from '../../../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component';\nimport {translate, TranslocoDirective} from \"@ngneat/transloco\";\nimport {SeriesFilterV2} from \"../../../_models/metadata/v2/series-filter-v2\";\n\n\n\n@Component({\n selector: 'app-all-series',\n templateUrl: './all-series.component.html',\n styleUrls: ['./all-series.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SideNavCompanionBarComponent, NgIf, BulkOperationsComponent, CardDetailLayoutComponent, SeriesCardComponent, DecimalPipe, TranslocoDirective]\n})\nexport class AllSeriesComponent implements OnInit {\n\n title: string = translate('all-series.title');\n series: Series[] = [];\n loadingSeries = false;\n pagination!: Pagination;\n filter: SeriesFilterV2 | undefined = undefined;\n filterSettings: FilterSettings = new FilterSettings();\n filterOpen: EventEmitter = new EventEmitter();\n filterActiveCheck!: SeriesFilterV2;\n filterActive: boolean = false;\n jumpbarKeys: Array = [];\n private readonly destroyRef = inject(DestroyRef);\n\n bulkActionCallback = (action: ActionItem, data: any) => {\n const selectedSeriesIndexies = this.bulkSelectionService.getSelectedCardsForSource('series');\n const selectedSeries = this.series.filter((series, index: number) => selectedSeriesIndexies.includes(index + ''));\n\n switch (action.action) {\n case Action.AddToReadingList:\n this.actionService.addMultipleSeriesToReadingList(selectedSeries, (success) => {\n if (success) this.bulkSelectionService.deselectAll();\n });\n break;\n case Action.AddToWantToReadList:\n this.actionService.addMultipleSeriesToWantToReadList(selectedSeries.map(s => s.id), () => {\n this.bulkSelectionService.deselectAll();\n });\n break;\n case Action.RemoveFromWantToReadList:\n this.actionService.removeMultipleSeriesFromWantToReadList(selectedSeries.map(s => s.id), () => {\n this.bulkSelectionService.deselectAll();\n });\n break;\n case Action.AddToCollection:\n this.actionService.addMultipleSeriesToCollectionTag(selectedSeries, (success) => {\n if (success) this.bulkSelectionService.deselectAll();\n });\n break;\n case Action.MarkAsRead:\n this.actionService.markMultipleSeriesAsRead(selectedSeries, () => {\n this.loadPage();\n this.bulkSelectionService.deselectAll();\n });\n\n break;\n case Action.MarkAsUnread:\n this.actionService.markMultipleSeriesAsUnread(selectedSeries, () => {\n this.loadPage();\n this.bulkSelectionService.deselectAll();\n });\n break;\n case Action.Delete:\n this.actionService.deleteMultipleSeries(selectedSeries, (successful) => {\n if (!successful) return;\n this.loadPage();\n this.bulkSelectionService.deselectAll();\n });\n break;\n }\n }\n\n constructor(private router: Router, private seriesService: SeriesService,\n private titleService: Title, private actionService: ActionService,\n public bulkSelectionService: BulkSelectionService, private hubService: MessageHubService,\n private utilityService: UtilityService, private route: ActivatedRoute,\n private filterUtilityService: FilterUtilitiesService, private jumpbarService: JumpbarService,\n private readonly cdRef: ChangeDetectorRef) {\n\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n\n this.title = this.route.snapshot.queryParamMap.get('title') || this.title;\n this.titleService.setTitle('Kavita - ' + this.title);\n\n this.pagination = this.filterUtilityService.pagination(this.route.snapshot);\n\n this.filter = this.filterUtilityService.filterPresetsFromUrlV2(this.route.snapshot);\n if (this.filter.statements.length === 0) {\n this.filter!.statements.push(this.filterUtilityService.createSeriesV2DefaultStatement());\n }\n this.filterActiveCheck = this.filterUtilityService.createSeriesV2Filter();\n this.filterActiveCheck!.statements.push(this.filterUtilityService.createSeriesV2DefaultStatement());\n this.filterSettings.presetsV2 = this.filter;\n\n this.cdRef.markForCheck();\n }\n\n ngOnInit(): void {\n this.hubService.messages$.pipe(debounceTime(6000), takeUntilDestroyed(this.destroyRef)).subscribe((event: Message) => {\n if (event.event !== EVENTS.SeriesAdded) return;\n this.loadPage();\n });\n }\n\n @HostListener('document:keydown.shift', ['$event'])\n handleKeypress(event: KeyboardEvent) {\n if (event.key === KEY_CODES.SHIFT) {\n this.bulkSelectionService.isShiftDown = true;\n }\n }\n\n @HostListener('document:keyup.shift', ['$event'])\n handleKeyUp(event: KeyboardEvent) {\n if (event.key === KEY_CODES.SHIFT) {\n this.bulkSelectionService.isShiftDown = false;\n }\n }\n\n\n updateFilter(data: FilterEvent) {\n if (data.filterV2 === undefined) return;\n this.filter = data.filterV2;\n\n if (!data.isFirst) {\n this.filterUtilityService.updateUrlFromFilterV2(this.pagination, this.filter);\n }\n\n this.loadPage();\n }\n\n loadPage() {\n this.filterActive = !this.utilityService.deepEqual(this.filter, this.filterActiveCheck);\n this.loadingSeries = true;\n this.cdRef.markForCheck();\n this.seriesService.getAllSeriesV2(undefined, undefined, this.filter!).pipe(take(1)).subscribe(series => {\n this.series = series.result;\n this.jumpbarKeys = this.jumpbarService.getJumpKeys(this.series, (s: Series) => s.name);\n this.pagination = series.pagination;\n this.loadingSeries = false;\n this.cdRef.markForCheck();\n });\n }\n\n trackByIdentity = (index: number, item: Series) => `${item.name}_${item.localizedName}_${item.pagesRead}`;\n}\n","import { NgModule } from \"@angular/core\";\nimport { Routes, RouterModule } from \"@angular/router\";\nimport { AuthGuard } from \"../_guards/auth.guard\";\nimport { AllSeriesComponent } from \"./_components/all-series/all-series.component\";\n\n\nconst routes: Routes = [\n {path: '**', component: AllSeriesComponent, pathMatch: 'full', canActivate: [AuthGuard]},\n {\n path: '',\n component: AllSeriesComponent,\n runGuardsAndResolvers: 'always',\n canActivate: [AuthGuard],\n }\n];\n\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AllSeriesRoutingModule { }","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AllSeriesRoutingModule } from './all-series-routing.module';\nimport { AllSeriesComponent } from './_components/all-series/all-series.component';\nimport {SeriesCardComponent} from \"../cards/series-card/series-card.component\";\nimport {BulkOperationsComponent} from \"../cards/bulk-operations/bulk-operations.component\";\nimport {CardDetailLayoutComponent} from \"../cards/card-detail-layout/card-detail-layout.component\";\nimport {\n SideNavCompanionBarComponent\n} from \"../sidenav/_components/side-nav-companion-bar/side-nav-companion-bar.component\";\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n AllSeriesRoutingModule,\n SeriesCardComponent,\n BulkOperationsComponent,\n CardDetailLayoutComponent,\n SideNavCompanionBarComponent,\n AllSeriesComponent,\n ]\n})\nexport class AllSeriesModule { }\n","\n \n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter, inject,\n Input,\n OnChanges,\n OnInit,\n Output\n} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {NgbModal} from '@ng-bootstrap/ng-bootstrap';\nimport {ToastrService} from 'ngx-toastr';\nimport {Series} from 'src/app/_models/series';\nimport {ImageService} from 'src/app/_services/image.service';\nimport {Action, ActionFactoryService, ActionItem} from 'src/app/_services/action-factory.service';\nimport {SeriesService} from 'src/app/_services/series.service';\nimport {ActionService} from 'src/app/_services/action.service';\nimport {EditSeriesModalComponent} from '../_modals/edit-series-modal/edit-series-modal.component';\nimport {RelationKind} from 'src/app/_models/series-detail/relation-kind';\nimport {CommonModule} from \"@angular/common\";\nimport {CardItemComponent} from \"../card-item/card-item.component\";\nimport {RelationshipPipe} from \"../../pipe/relationship.pipe\";\nimport {Device} from \"../../_models/device/device\";\nimport {TranslocoService} from \"@ngneat/transloco\";\n\nfunction deepClone(obj: any): any {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n\n if (obj instanceof Array) {\n return obj.map(item => deepClone(item));\n }\n\n const clonedObj: any = {};\n\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n if (typeof obj[key] === 'object' && obj[key] !== null) {\n clonedObj[key] = deepClone(obj[key]);\n } else {\n clonedObj[key] = obj[key];\n }\n }\n }\n\n return clonedObj;\n}\n\n@Component({\n selector: 'app-series-card',\n standalone: true,\n imports: [CommonModule, CardItemComponent, RelationshipPipe],\n templateUrl: './series-card.component.html',\n styleUrls: ['./series-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SeriesCardComponent implements OnInit, OnChanges {\n @Input({required: true}) data!: Series;\n @Input() libraryId = 0;\n @Input() suppressLibraryLink = false;\n /**\n * If the entity is selected or not.\n */\n @Input() selected: boolean = false;\n /**\n * If the entity should show selection code\n */\n @Input() allowSelection: boolean = false;\n /**\n * If the Series has a relationship to display\n */\n @Input() relation: RelationKind | undefined = undefined;\n /**\n * When a series card is shown on deck, a special actionable is added to the list\n */\n @Input() isOnDeck: boolean = false;\n\n @Output() clicked = new EventEmitter();\n /**\n * Emits when a reload needs to occur and the id of the entity\n */\n @Output() reload = new EventEmitter();\n @Output() dataChanged = new EventEmitter();\n /**\n * When the card is selected.\n */\n @Output() selection = new EventEmitter();\n\n actions: ActionItem[] = [];\n imageUrl: string = '';\n\n private readonly translocoService = inject(TranslocoService);\n\n constructor(private router: Router, private cdRef: ChangeDetectorRef,\n private seriesService: SeriesService, private toastr: ToastrService,\n private modalService: NgbModal, private imageService: ImageService,\n private actionFactoryService: ActionFactoryService,\n private actionService: ActionService) {}\n\n\n ngOnInit(): void {\n if (this.data) {\n this.imageUrl = this.imageService.getSeriesCoverImage(this.data.id);\n this.cdRef.markForCheck();\n }\n }\n\n ngOnChanges(changes: any) {\n if (this.data) {\n this.actions = [...this.actionFactoryService.getSeriesActions((action: ActionItem, series: Series) => this.handleSeriesActionCallback(action, series))];\n if (this.isOnDeck) {\n const othersIndex = this.actions.findIndex(obj => obj.title === 'others');\n const othersAction = deepClone(this.actions[othersIndex]) as ActionItem;\n if (othersAction.children.findIndex(o => o.action === Action.RemoveFromOnDeck) < 0) {\n othersAction.children.push({\n action: Action.RemoveFromOnDeck,\n title: 'remove-from-on-deck',\n callback: (action: ActionItem, series: Series) => this.handleSeriesActionCallback(action, series),\n class: 'danger',\n requiresAdmin: false,\n children: [],\n });\n this.actions[othersIndex] = othersAction;\n }\n }\n this.cdRef.markForCheck();\n }\n }\n\n handleSeriesActionCallback(action: ActionItem, series: Series) {\n switch (action.action) {\n case(Action.MarkAsRead):\n this.markAsRead(series);\n break;\n case(Action.MarkAsUnread):\n this.markAsUnread(series);\n break;\n case(Action.Scan):\n this.scanLibrary(series);\n break;\n case(Action.RefreshMetadata):\n this.refreshMetadata(series);\n break;\n case(Action.Delete):\n this.deleteSeries(series);\n break;\n case(Action.Edit):\n this.openEditModal(series);\n break;\n case(Action.AddToReadingList):\n this.actionService.addSeriesToReadingList(series);\n break;\n case Action.AddToWantToReadList:\n this.actionService.addMultipleSeriesToWantToReadList([series.id]);\n break;\n case Action.RemoveFromWantToReadList:\n this.actionService.removeMultipleSeriesFromWantToReadList([series.id]);\n if (this.router.url.startsWith('/want-to-read')) {\n this.reload.emit(series.id);\n }\n break;\n case(Action.AddToCollection):\n this.actionService.addMultipleSeriesToCollectionTag([series]);\n break;\n case (Action.AnalyzeFiles):\n this.actionService.analyzeFilesForSeries(series);\n break;\n case Action.SendTo:\n const device = (action._extra!.data as Device);\n this.actionService.sendSeriesToDevice(series.id, device);\n break;\n case Action.RemoveFromOnDeck:\n this.seriesService.removeFromOnDeck(series.id).subscribe(() => this.reload.emit(series.id));\n break;\n default:\n break;\n }\n }\n\n openEditModal(data: Series) {\n const modalRef = this.modalService.open(EditSeriesModalComponent, { size: 'lg' });\n modalRef.componentInstance.series = data;\n modalRef.closed.subscribe((closeResult: {success: boolean, series: Series, coverImageUpdate: boolean}) => {\n if (closeResult.success) {\n this.seriesService.getSeries(data.id).subscribe(series => {\n this.data = series;\n this.cdRef.markForCheck();\n this.reload.emit(series.id);\n this.dataChanged.emit(series);\n });\n }\n });\n }\n\n async refreshMetadata(series: Series) {\n await this.actionService.refreshMetdata(series);\n }\n\n async scanLibrary(series: Series) {\n this.seriesService.scan(series.libraryId, series.id).subscribe((res: any) => {\n this.toastr.success(this.translocoService.translate('toasts.scan-queued', {name: series.name}));\n });\n }\n\n async deleteSeries(series: Series) {\n await this.actionService.deleteSeries(series, (result: boolean) => {\n if (result) {\n this.reload.emit(series.id);\n }\n });\n }\n\n markAsUnread(series: Series) {\n this.actionService.markSeriesAsUnread(series, () => {\n if (this.data) {\n this.data.pagesRead = 0;\n this.cdRef.markForCheck();\n }\n\n this.dataChanged.emit(series);\n });\n }\n\n markAsRead(series: Series) {\n this.actionService.markSeriesAsRead(series, () => {\n if (this.data) {\n this.data.pagesRead = series.pages;\n this.cdRef.markForCheck();\n }\n this.dataChanged.emit(series);\n });\n }\n\n handleClick() {\n this.clicked.emit(this.data);\n this.router.navigate(['library', this.libraryId, 'series', this.data?.id]);\n }\n\n}\n"],"x_google_ignoreList":[]}