{"version":3,"file":"412.ed18b354e1958ec7.js","mappings":"mTAAAA,MAAA,GACIA,MAAA,qBAC6DA,MAAA,qBAAAA,MAAAC,GAAA,MAAAC,EAAAF,QAAA,OAAWA,MAAAE,EAAAC,cAAa,EAAxBH,CAAyB,uBAAAA,MAAAC,GAAA,MAAAG,EAAAJ,QAAA,OACvCA,MAAAI,EAAAC,UAAAC,KAAAF,EAAAG,UAAwB,2BAEtEP,QACLA,OAAA,yBALmBA,MAAA,GAAAA,MAAA,QAAAQ,EAAAC,KAAAC,KAAAV,CAAmB,UAAAQ,EAAAG,QAAnBX,CAAmB,sBAAAQ,EAAAI,oBAAnBZ,CAAmB,WAAAQ,EAAAK,SAAnBb,CAAmB,SAAAQ,EAAAC,KAAnBT,CAAmB,QAAAQ,EAAAC,KAAAK,MAAnBd,CAAmB,OAAAQ,EAAAC,KAAAM,UAAnBf,CAAmB,iBAAAQ,EAAAQ,eAAnBhB,CAAmB,WAAAQ,EAAAD,SAAnBP,CAAmB,qBAAAA,MAAA,KAAAQ,EAAAS,UAAA,ECyBtC,SAASC,EAAUC,GACjB,GAAY,OAARA,GAA+B,iBAARA,EACzB,OAAOA,EAGT,GAAIA,aAAeC,MACjB,OAAOD,EAAIE,IAAIC,GAAQJ,EAAUI,IAGnC,MAAMC,EAAiB,GAEvB,UAAWC,KAAOL,EACZM,OAAOC,UAAUC,eAAeC,KAAKT,EAAKK,KAE1CD,EAAUC,GADY,iBAAbL,EAAIK,IAAkC,OAAbL,EAAIK,GACrBN,EAAUC,EAAIK,IAEdL,EAAIK,IAK3B,OAAOD,CACT,CAUO,IAAMM,EAAmB,MAA1B,MAAOA,EAqCXC,YAAoBC,EAAwBC,EACxBC,EAAsCC,EACtCC,EAAgCC,EAChCC,EACAC,GAJAC,KAAAR,SAAwBQ,KAAAP,QACxBO,KAAAN,gBAAsCM,KAAAL,SACtCK,KAAAJ,eAAgCI,KAAAH,eAChCG,KAAAF,uBACAE,KAAAD,gBAvCXC,KAAAC,UAAY,EACZD,KAAA3B,qBAAsB,EAItB2B,KAAAhC,UAAoB,EAIpBgC,KAAAvB,gBAA0B,EAI1BuB,KAAAtB,cAAqCwB,EAIrCF,KAAAG,UAAoB,EAEnBH,KAAAI,QAAU,IAAIC,MAIdL,KAAAM,OAAS,IAAID,MACbL,KAAAO,YAAc,IAAIF,MAIlBL,KAAAlC,UAAY,IAAIuC,MAE1BL,KAAA5B,QAAgC,GAChC4B,KAAA1B,SAAmB,GAEF0B,KAAAQ,oBAAmBC,OAAOC,KAMQ,CAGnDC,WACMX,KAAK9B,OACP8B,KAAK1B,SAAW0B,KAAKH,aAAae,oBAAoBZ,KAAK9B,KAAK2C,IAChEb,KAAKP,MAAMqB,eAEf,CAEAC,YAAYC,GACV,GAAIhB,KAAK9B,KAAM,CAEb,GADA8B,KAAK5B,QAAU,IAAI4B,KAAKF,qBAAqBmB,iBAAiB,CAACC,EAA4BC,IAAmBnB,KAAKoB,2BAA2BF,EAAQC,KAClJnB,KAAKG,SAAU,CACjB,MAAMkB,EAAcrB,KAAK5B,QAAQkD,UAAU1C,GAAqB,WAAdA,EAAI2C,OAChDC,EAAe7C,EAAUqB,KAAK5B,QAAQiD,IACxCG,EAAaC,SAASH,UAAUI,GAAKA,EAAER,SAAWS,IAAOC,kBAAoB,IAC/EJ,EAAaC,SAASI,KAAK,CACzBX,OAAQS,IAAOC,iBACfL,MAAO,sBACPO,SAAUA,CAACZ,EAA4BC,IAAmBnB,KAAKoB,2BAA2BF,EAAQC,GAClGY,MAAO,SACPC,eAAe,EACfP,SAAU,KAEZzB,KAAK5B,QAAQiD,GAAeG,GAGhCxB,KAAKP,MAAMqB,cAAY,CAE3B,CAEAM,2BAA2BF,EAA4BC,GACrD,OAAQD,EAAOA,QACb,KAAKS,IAAOM,WACVjC,KAAKkC,WAAWf,GAChB,MACF,KAAKQ,IAAOQ,aACVnC,KAAKoC,aAAajB,GAClB,MACF,KAAKQ,IAAOU,KACVrC,KAAKsC,YAAYnB,GACjB,MACF,KAAKQ,IAAOY,gBACVvC,KAAKwC,gBAAgBrB,GACrB,MACF,KAAKQ,IAAOc,OACVzC,KAAK0C,aAAavB,GAClB,MACF,KAAKQ,IAAOgB,KACV3C,KAAK4C,cAAczB,GACnB,MACF,KAAKQ,IAAOkB,iBACV7C,KAAKD,cAAc+C,uBAAuB3B,GAC1C,MACF,KAAKQ,IAAOoB,oBACV/C,KAAKD,cAAciD,kCAAkC,CAAC7B,EAAON,KAC7D,MACF,KAAKc,IAAOsB,yBACVjD,KAAKD,cAAcmD,uCAAuC,CAAC/B,EAAON,KAC9Db,KAAKR,OAAO2D,IAAIC,WAAW,kBAC7BpD,KAAKM,OAAOvC,KAAKoD,EAAON,IAE1B,MACF,KAAKc,IAAO0B,gBACVrD,KAAKD,cAAcuD,iCAAiC,CAACnC,IACrD,MACF,KAAMQ,IAAO4B,aACXvD,KAAKD,cAAcyD,sBAAsBrC,GACzC,MACF,KAAKQ,IAAO8B,OAEVzD,KAAKD,cAAc2D,mBAAmBvC,EAAON,GAD7BK,EAAOyC,OAAQzF,MAE/B,MACF,KAAKyD,IAAOC,iBACV5B,KAAKN,cAAckE,iBAAiBzC,EAAON,IAAIgD,UAAU,IAAM7D,KAAKM,OAAOvC,KAAKoD,EAAON,KAK7F,CAEA+B,cAAc1E,GACZ,MAAM4F,EAAW9D,KAAKJ,aAAamE,KAAKC,IAA0B,CAAGC,KAAM,OAC3EH,EAASI,kBAAkB/C,OAASjD,EACpC4F,EAASK,OAAON,UAAWO,IACrBA,EAAYC,SACdrE,KAAKN,cAAc4E,UAAUpG,EAAK2C,IAAIgD,UAAU1C,IAC9CnB,KAAK9B,KAAOiD,EACZnB,KAAKP,MAAMqB,eACXd,KAAKM,OAAOvC,KAAKoD,EAAON,IACxBb,KAAKO,YAAYxC,KAAKoD,EAAM,EAC7B,EAGP,CAEMqB,gBAAgBrB,GAAc,IAAAoD,EAAAvE,KAAA,SAAAwE,KAAA,kBAC5BD,EAAKxE,cAAc0E,eAAetD,EAAQ,EADd,EAEpC,CAEMmB,YAAYnB,GAAc,IAAAuD,EAAA1E,KAAA,SAAAwE,KAAA,YAC9BE,EAAKhF,cAAciF,KAAKxD,EAAOlB,UAAWkB,EAAON,IAAIgD,UAAWe,IAC9DF,EAAK/E,OAAO0E,QAAQK,EAAKlE,iBAAiBqE,UAAU,qBAAsB,CAAC1G,KAAMgD,EAAOhD,OAAM,EAC7F,EAH2B,EAIhC,CAEMuE,aAAavB,GAAc,IAAA2D,EAAA9E,KAAA,SAAAwE,KAAA,kBACzBM,EAAK/E,cAAc2C,aAAavB,EAAS4D,IACzCA,GACFD,EAAKxE,OAAOvC,KAAKoD,EAAON,GAAE,EAE3B,EAL4B,EAMjC,CAEAuB,aAAajB,GACXnB,KAAKD,cAAciF,mBAAmB7D,EAAQ,KACxCnB,KAAK9B,OACP8B,KAAK9B,KAAKM,UAAY,EACtBwB,KAAKP,MAAMqB,gBAGbd,KAAKO,YAAYxC,KAAKoD,EAAM,EAEhC,CAEAe,WAAWf,GACTnB,KAAKD,cAAckF,iBAAiB9D,EAAQ,KACtCnB,KAAK9B,OACP8B,KAAK9B,KAAKM,UAAY2C,EAAO5C,MAC7ByB,KAAKP,MAAMqB,gBAEbd,KAAKO,YAAYxC,KAAKoD,EAAM,EAEhC,CAEAvD,cACEoC,KAAKI,QAAQrC,KAAKiC,KAAK9B,MACvB8B,KAAKR,OAAO0F,SAAS,CAAC,UAAWlF,KAAKC,UAAW,SAAUD,KAAK9B,MAAM2C,IACxE,EApLWvB,SAAmB,mBAAA6F,iBAAnB7F,GAAmB7B,MAAA2H,MAAA3H,mBAAA4H,KAAA5H,MAAA6H,MAAA7H,MAAA8H,MAAA9H,MAAA+H,KAAA/H,MAAAgI,KAAAhI,MAAAiI,KAAA,EAAnBpG,EAAmB,UAAAqG,EAAAC,IAAA,MAAnBtG,EAAmBuG,UAAA,sBAAAC,OAAA,CAAA5H,KAAA,OAAA+B,UAAA,YAAA5B,oBAAA,sBAAAL,SAAA,WAAAS,eAAA,iBAAAC,SAAA,WAAAyB,SAAA,YAAA4F,QAAA,CAAA3F,QAAA,UAAAE,OAAA,SAAAC,YAAA,cAAAzC,UAAA,aAAAkI,YAAA,EAAAC,SAAA,CAAAxI,aAAAyI,MAAA,EAAAC,KAAA,EAAAC,OAAA,mKAAAC,SAAA,SAAAC,EAAAC,GAAA,EAAAD,GD1DhC7I,MAAA,EAAA+I,EAAA,4BAAe/I,MAAA,YAAAyC,IAAAqG,EAAArI,qBCqDHuI,KAAYC,KAAEC,IAAmBC,KAAgBC,gBAAA,IAKhDvH,CAAmB,yXChClB7B,MAAA,wBAA4DA,MAAA,kBAAAqJ,GAAArJ,MAAAsJ,GAAA,MAAAC,EAAAvJ,MAAA,UAAUA,MAAAuJ,EAAAC,aAAAH,GAAoB,EAA9BrJ,CAA+B,qBAAAqJ,GAAA,MAAAI,EAAAzJ,MAAAsJ,GAAAI,IAAAC,EAAA3J,MAAA,UAC9EA,MAAA2J,EAAAC,qBAAAC,oBAAyC,SAAQJ,EAAAE,EAAAjG,OAAAoG,OAAAT,GAAkC,GAE/FrJ,OAAA,gDAHgBA,MAAA,OAAA+J,EAAA/J,CAAa,YAAA+J,EAAAvH,UAAbxC,CAAa,WAAAgK,EAAAJ,qBAAAK,eAAA,SAAAR,GAAbzJ,CAAa,8CAQ1BA,MAAA,mCAAAA,MAAA,IAAAkK,EAAA,wCAFRlK,MAAA,SACIA,MAAA,EAAAmK,EAAA,0BAAAnK,OAGJA,iCAIMA,MAAA,mCAAAA,MAAA,IAAAkK,EAAA,iDAFNlK,MAAA,SACIA,MAAA,EAAAoK,EAAA,0BAAApK,OAGJA,oHA1CVA,MAAA,GACEA,MAAA,eAAAA,CAAmB,kCACgCA,MAAA,sBAAAqJ,GAAArJ,MAAAqK,GAAA,MAAAC,EAAAtK,QAAA,OAAcA,MAAAsK,EAAAC,WAAAjK,KAAA+I,GAAuB,GAChFrJ,MAAA,KACIA,MAAA,QACIA,MAAA,GACJA,QACJA,QACAA,MAAA,UAAaA,MAAA,qBAA8DA,YAInFA,MAAA,cACIA,MAAA,4BAEAA,MAAA,+BASIA,MAAA,uBAAAqJ,GAAArJ,MAAAqK,GAAA,MAAAG,EAAAxK,QAAA,OAAeA,MAAAwK,EAAAC,aAAApB,GAAoB,GACnCrJ,MAAA,GAAA0K,EAAA,yBAAA1K,OAOAA,MAAA,GAAA2K,EAAA,cAMA3K,MAAA,GAAA4K,EAAA,cAMJ5K,UAENA,OAAA,uCA5CkCA,MAAA,GAAAA,MAAA,eAAAA,CAAkB,eAAAQ,EAAAqK,cAGlC7K,MAAA,GAAAA,MAAA,IAAAkK,EAAA,cAGKlK,MAAA,GAAAA,MAAAkK,EAAA,eAAAlK,MAAA,GAAA8K,EAAA9K,MAAA,KAAAQ,EAAAuK,WAAAC,eAIhBhL,MAAA,GAAAA,MAAA,UAAAA,MAAA,GAAAiL,EAAAzK,EAAA0K,uBACoBlL,MAAA,GAAAA,MAAA,iBAAAQ,EAAA2K,oBAGjBnL,MAAA,GAAAA,MAAA,YAAAQ,EAAA4K,UAAApL,CAAuB,QAAAQ,EAAAkD,OAAvB1D,CAAuB,aAAAQ,EAAAuK,WAAvB/K,CAAuB,iBAAAQ,EAAA6K,eAAvBrL,CAAuB,aAAAQ,EAAA+J,WAAvBvK,CAAuB,cAAAQ,EAAA8K,YAAvBtL,CAAuB,kBAAAQ,EAAA+K,gBAAvBvL,CAAuB,UAAAQ,EAAAgL,SAgBjBxL,MAAA,GAAAA,MAAA,QAAAQ,EAAAqK,cAAA,IAAArK,EAAAkD,OAAAoG,QAMA9J,MAAA,GAAAA,MAAA,OAAAQ,EAAAqK,cAAA,IAAArK,EAAAkD,OAAAoG,OAAA,ECYT,IAAM2B,EAAmB,MAA1B,MAAOA,EAsCPP,2BACF,QAA4BzI,IAAxBF,KAAKmJ,eAA8B,MAAO,sBAC9C,MAAMC,EAASpJ,KAAKqJ,SAASC,cAAc,WAC3C,OAAe,OAAXF,EAAwB,sBAKrB,yBAHiBpJ,KAAKuJ,aAAcC,cAAcC,aACpCL,EAAOK,aACyB,IACN,KACjD,CAEAlK,YAAmBM,EAAoCL,EAAwBkK,EACrEhK,EAAsCiK,EACvCtC,EAAoDtH,EAAsC6J,GACzFC,GAAsDC,GAA0DT,GACvG5J,GAAkCsK,GAAsCC,GACjFC,IALSjK,KAAAH,eAAoCG,KAAAR,SAAwBQ,KAAA0J,QACrE1J,KAAAN,gBAAsCM,KAAA2J,eACvC3J,KAAAqH,uBAAoDrH,KAAAD,gBAAsCC,KAAA4J,cACzF5J,KAAA6J,wBAAsD7J,KAAA8J,kBAA0D9J,KAAAqJ,YACvGrJ,KAAAP,SAAkCO,KAAA+J,iBAAsC/J,KAAAgK,cACjFhK,KAAAiK,kBAlDOjK,KAAAkK,cAAazJ,OAAO0J,OAErCnK,KAAA6I,WAAqB,EACrB7I,KAAAmB,OAAwB,GAExBnB,KAAAoK,YAAqClK,EACrCF,KAAA8I,eAAiC,IAAIuB,IACrCrK,KAAAiJ,QAA8B,IAAI5I,MAGlCL,KAAAsI,cAAwB,EAExBtI,KAAA+I,YAA8B,GAE9B/I,KAAAgI,WAAoC,IAAI3H,MAExCL,KAAAgJ,gBAAkB,CAACsB,EAAevL,IAAiB,GAAGA,EAAKZ,QAAQY,EAAKwL,iBAAiBxL,EAAKP,YAE9FwB,KAAA4I,mBAAqB,CAAC1H,EAAyBhD,KAC7C,MAAMsM,EAAwBxK,KAAKqH,qBAAqBoD,0BAA0B,UAC5EC,GAAiB1K,KAAKmB,OAAOiJ,OAAO,CAACjJ,EAAQmJ,KAAkBE,EAAsBG,SAASL,GAAQ,KAEpGpJ,EAAOA,SACRS,IAAOsB,0BACVjD,KAAKD,cAAcmD,uCAAuCwH,GAAe5L,IAAI8L,GAAKA,EAAE/J,IAAK,KACvFb,KAAKqH,qBAAqBwD,cAC1B7K,KAAK8K,UAAQ,IAyBjB9K,KAAKR,OAAOuL,mBAAmBC,iBAAmB,KAAM,EACxDhL,KAAK2J,aAAasB,SAAS,eAAcpG,MAAU,uBAEnD7E,KAAKwI,WAAaxI,KAAK6J,qBAAqBrB,WAAWxI,KAAK0J,MAAMwB,UAElElL,KAAKoK,OAASpK,KAAK6J,qBAAqBsB,uBAAuBnL,KAAK0J,MAAMwB,UACpC,IAAlClL,KAAKoK,OAAOgB,WAAW7D,QACzBvH,KAAKoK,OAAQgB,WAAWvJ,KAAK7B,KAAK6J,qBAAqBwB,kCAEzDrL,KAAKsL,kBAAoBtL,KAAK6J,qBAAqB0B,uBACnDvL,KAAKsL,kBAAmBF,WAAWvJ,KAAK7B,KAAK6J,qBAAqBwB,kCAClErL,KAAK8I,eAAe0C,UAAaxL,KAAKoK,OAEtCpK,KAAKP,MAAMqB,eAEXd,KAAKgK,WAAWyB,UAAUC,QAAKC,MAAmB3L,KAAKkK,aAAarG,UAAW+H,IAC7E,GAAIA,EAAMA,QAAUC,IAAOC,cAAe,CACxC,MAAMC,EAAgBH,EAAMI,QAC5B,IAAKhM,KAAK8J,eAAemC,UAAUjM,KAAKoK,OAAQpK,KAAKsL,mBAEnD,YADAtL,KAAK8K,WAIP9K,KAAKmB,OAASnB,KAAKmB,OAAOiJ,OAAOQ,GAAKA,EAAE/J,IAAMkL,EAAcG,UAC5DlM,KAAKwI,WAAWC,aAChBzI,KAAKP,MAAMqB,eACXd,KAAKiJ,QAAQlL,MAAI,GAIzB,CAEA4C,WACEX,KAAK4J,WAAW6B,UAAUC,QAAKC,MAAmB3L,KAAKkK,aAAU,EAAGiC,KAAa,MAAOtI,UAAU+H,IAC5FA,EAAMA,QAAUC,IAAOC,eACzB9L,KAAK8K,UAAQ,EAGnB,CAEAsB,wBACEpM,KAAK+J,cAAcsC,mBAAmBrM,KAAKmJ,eAC7C,CAGAmD,eAAeV,GACTA,EAAM3M,MAAQsN,KAAUC,QAC1BxM,KAAKqH,qBAAqBoF,aAAc,EAE5C,CAGAC,YAAYd,GACNA,EAAM3M,MAAQsN,KAAUC,QAC1BxM,KAAKqH,qBAAqBoF,aAAc,EAE5C,CAEAxF,aAAaiF,GACXlM,KAAKmB,OAASnB,KAAKmB,OAAOiJ,OAAOQ,GAAKA,EAAE/J,IAAMqL,GAC9ClM,KAAKwI,WAAWC,aAChBzI,KAAKP,MAAMqB,eACXd,KAAKiJ,QAAQlL,MACf,CAEA+M,WACE9K,KAAKsI,cAAgBtI,KAAK8J,eAAemC,UAAUjM,KAAKoK,OAAQpK,KAAKsL,mBACrEtL,KAAK6I,WAAY,EACjB7I,KAAKP,MAAMqB,eAEXd,KAAKN,cAAciN,mBAAczM,OAAWA,EAAWF,KAAKoK,QAAQsB,QAAKkB,KAAK,IAAI/I,UAAUgJ,IAC1F7M,KAAKmB,OAAS0L,EAAc9H,OAC5B/E,KAAKwI,WAAaqE,EAAcrE,WAChCxI,KAAK+I,YAAc/I,KAAKiK,eAAe6C,YAAY9M,KAAKmB,OAASA,GAAmBA,EAAOhD,MAC3F6B,KAAK6I,WAAY,EACjBkE,OAAOC,SAAS,EAAG,GACnBhN,KAAKP,MAAMqB,cAAY,EAE3B,CAEAoH,aAAahK,QACWgC,IAAlBhC,EAAK+O,WACTjN,KAAKoK,OAASlM,EAAK+O,SAEd/O,EAAKgP,SACRlN,KAAK6J,qBAAqBsD,sBAAsBnN,KAAKwI,WAAYxI,KAAKoK,QAGxEpK,KAAK8K,WACP,EAhJW5B,SAAmB,mBAAA/D,iBAAnB+D,GAAmBzL,MAAA2H,KAAA3H,MAAA4H,MAAA5H,MAAA4H,MAAA5H,MAAA6H,KAAA7H,MAAA8H,MAAA9H,MAAA+H,KAAA/H,MAAAgI,KAAAhI,MAAAiI,KAAAjI,MAAAiJ,KAAAjJ,MAAA2P,MAAA3P,MAoD0E4P,MAAQ5P,mBAAA6P,KAAA7P,MAAAiI,KAAAjI,MAAA8P,KAAA,EApDrGrE,EAAmB,UAAAsE,EAAA5H,IAAA,MAAnBsD,EAAmBrD,UAAA,uBAAA4H,UAAA,SAAAnH,EAAAC,MAAA,EAAAD,uMAAnBC,EAAA+F,eAAAxF,EAAsB,KAAArJ,OAAA,uBAAAqJ,GAAA,OAAtBP,EAAAmG,YAAA5F,EAAmB,KAAArJ,yiBDlDhCA,MAAA,EAAAiQ,EAAA,6BAAiCjQ,MAAA,+CCgDnBkQ,IAA8BC,KAASC,IAAyBC,IAA2BxO,IAAqByO,KAAMC,KAAaC,MAAkBC,OAAA,6PAAArH,gBAAA,IAEtJqC,CAAmB,mBC7ChC,MAAMiF,EAAiB,CACnB,CAACC,KAAM,KAAMC,UAAWnF,EAAqBoF,UAAW,QACxD,CACEF,KAAM,GACNG,sBAAuB,SACvBC,YAAa,CAACC,KACdhN,SAAU,CACR,CAAC2M,KAAM,GAAIC,UAAWnF,EAAqBoF,UAAW,WAUvD,IAAMI,EAAuB,MAA9B,MAAOA,YAAuB,mBAAAvJ,iBAAvBuJ,EAAuB,EAAvBA,EAAuB,UAAAlB,EAAAmB,IAAA,MAAvBD,MAAuB,UAAAlB,EAAAoB,IAAA,UAHxBC,KAAaC,SAASX,GACtBU,QAECH,CAAuB,KCEvBK,EAAgB,MAAvB,MAAOA,YAAgB,mBAAA5J,iBAAhB4J,EAAgB,EAAhBA,EAAgB,UAAAvB,EAAAmB,IAAA,MAAhBI,MAAgB,UAAAvB,EAAAoB,IAAA,UATrBnI,KACAiI,EACAb,IACAC,IACAxO,IACAqO,IACAzE,KAGK6F,CAAgB","names":["i0","_r2","ctx_r1","handleClick","ctx_r3","selection","emit","selected","ctx_r0","data","name","actions","suppressLibraryLink","imageUrl","pages","pagesRead","allowSelection","relation","deepClone","obj","Array","map","item","clonedObj","key","Object","prototype","hasOwnProperty","call","SeriesCardComponent","constructor","router","cdRef","seriesService","toastr","modalService","imageService","actionFactoryService","actionService","this","libraryId","undefined","isOnDeck","clicked","EventEmitter","reload","dataChanged","translocoService","inject","TranslocoService","ngOnInit","getSeriesCoverImage","id","markForCheck","ngOnChanges","changes","getSeriesActions","action","series","handleSeriesActionCallback","othersIndex","findIndex","title","othersAction","children","o","Action","RemoveFromOnDeck","push","callback","class","requiresAdmin","MarkAsRead","markAsRead","MarkAsUnread","markAsUnread","Scan","scanLibrary","RefreshMetadata","refreshMetadata","Delete","deleteSeries","Edit","openEditModal","AddToReadingList","addSeriesToReadingList","AddToWantToReadList","addMultipleSeriesToWantToReadList","RemoveFromWantToReadList","removeMultipleSeriesFromWantToReadList","url","startsWith","AddToCollection","addMultipleSeriesToCollectionTag","AnalyzeFiles","analyzeFilesForSeries","SendTo","sendSeriesToDevice","_extra","removeFromOnDeck","subscribe","modalRef","open","EditSeriesModalComponent","size","componentInstance","closed","closeResult","success","getSeries","_this","_asyncToGenerator","refreshMetdata","_this2","scan","res","translate","_this3","result","markSeriesAsUnread","markSeriesAsRead","navigate","t","i1","i2","i3","i4","i5","i6","i7","_angular_core__WEBPACK_IMPORTED_MODULE_7__","Xpm","selectors","inputs","outputs","standalone","features","decls","vars","consts","template","rf","ctx","SeriesCardComponent_ng_container_0_Template","CommonModule","i8","CardItemComponent","RelationshipPipe","changeDetection","$event","_r11","ctx_r10","removeSeries","position_r9","idx","ctx_r12","bulkSelectionService","handleCardSelection","length","item_r8","ctx_r5","isCardSelected","t_r1","WantToReadComponent_ng_container_0_div_16_ng_template_1_Template","WantToReadComponent_ng_container_0_div_17_ng_template_1_Template","_r20","ctx_r19","filterOpen","ctx_r21","updateFilter","WantToReadComponent_ng_container_0_ng_template_14_Template","WantToReadComponent_ng_container_0_div_16_Template","WantToReadComponent_ng_container_0_div_17_Template","filterActive","_c2","pagination","totalItems","_c3","ScrollingBlockHeight","bulkActionCallback","isLoading","filterSettings","jumpbarKeys","trackByIdentity","refresh","WantToReadComponent","scrollingBlock","navbar","document","querySelector","companionBar","nativeElement","offsetHeight","route","titleService","messageHub","filterUtilityService","utilityService","scrollService","hubService","jumpbarService","destroyRef","DestroyRef","filter","FilterSettings","index","localizedName","selectedSeriesIndices","getSelectedCardsForSource","selectedSeries","includes","s","deselectAll","loadPage","routeReuseStrategy","shouldReuseRoute","setTitle","snapshot","filterPresetsFromUrlV2","statements","createSeriesV2DefaultStatement","filterActiveCheck","createSeriesV2Filter","presetsV2","messages$","pipe","takeUntilDestroyed","event","EVENTS","SeriesRemoved","seriesRemoved","payload","deepEqual","seriesId","debounceTime","ngAfterContentChecked","setScrollContainer","handleKeypress","KEY_CODES","SHIFT","isShiftDown","handleKeyUp","getWantToRead","take","paginatedList","getJumpKeys","window","scrollTo","filterV2","isFirst","updateUrlFromFilterV2","i9","DOCUMENT","i10","i11","core","viewQuery","WantToReadComponent_ng_container_0_Template","SideNavCompanionBarComponent","NgStyle","BulkOperationsComponent","CardDetailLayoutComponent","NgIf","DecimalPipe","TranslocoDirective","styles","routes","path","component","pathMatch","runGuardsAndResolvers","canActivate","AuthGuard","WantToReadRoutingModule","oAB","cJS","RouterModule","forChild","WantToReadModule"],"sourceRoot":"webpack:///","sources":["./src/app/cards/series-card/series-card.component.html","./src/app/cards/series-card/series-card.component.ts","./src/app/want-to-read/_components/want-to-read/want-to-read.component.html","./src/app/want-to-read/_components/want-to-read/want-to-read.component.ts","./src/app/want-to-read/want-to-read-routing.module.ts","./src/app/want-to-read/want-to-read.module.ts"],"sourcesContent":["\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","\n
\n \n \n

\n {{t('title')}}\n

\n
\n
{{t('series-count', {num: (pagination.totalItems | number)})}}
\n
\n
\n\n
\n \n\n \n \n \n \n\n
\n \n {{t('no-items')}}\n \n
\n\n
\n \n {{t('no-items-filtered')}}\n \n
\n\n \n
\n
\n","import { DOCUMENT, NgStyle, NgIf, DecimalPipe } from '@angular/common';\nimport {\n AfterContentChecked,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Inject,\n OnInit,\n ViewChild\n} from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { take, debounceTime } from 'rxjs';\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 { SeriesRemovedEvent } from 'src/app/_models/events/series-removed-event';\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 { ImageService } from 'src/app/_services/image.service';\nimport { JumpbarService } from 'src/app/_services/jumpbar.service';\nimport { MessageHubService, EVENTS } from 'src/app/_services/message-hub.service';\nimport { ScrollService } from 'src/app/_services/scroll.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 { 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@Component({\n selector: 'app-want-to-read',\n templateUrl: './want-to-read.component.html',\n styleUrls: ['./want-to-read.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [SideNavCompanionBarComponent, NgStyle, BulkOperationsComponent, CardDetailLayoutComponent, SeriesCardComponent, NgIf, DecimalPipe, TranslocoDirective]\n})\nexport class WantToReadComponent implements OnInit, AfterContentChecked {\n\n @ViewChild('scrollingBlock') scrollingBlock: ElementRef | undefined;\n @ViewChild('companionBar') companionBar: ElementRef | undefined;\n private readonly destroyRef = inject(DestroyRef);\n\n isLoading: boolean = true;\n series: Array = [];\n pagination!: Pagination;\n filter: SeriesFilterV2 | undefined = undefined;\n filterSettings: FilterSettings = new FilterSettings();\n refresh: EventEmitter = new EventEmitter();\n\n filterActiveCheck!: SeriesFilterV2;\n filterActive: boolean = false;\n\n jumpbarKeys: Array = [];\n\n filterOpen: EventEmitter = new EventEmitter();\n\n trackByIdentity = (index: number, item: Series) => `${item.name}_${item.localizedName}_${item.pagesRead}`;\n\n bulkActionCallback = (action: ActionItem, data: any) => {\n const selectedSeriesIndices = this.bulkSelectionService.getSelectedCardsForSource('series');\n const selectedSeries = this.series.filter((series, index: number) => selectedSeriesIndices.includes(index + ''));\n\n switch (action.action) {\n case Action.RemoveFromWantToReadList:\n this.actionService.removeMultipleSeriesFromWantToReadList(selectedSeries.map(s => s.id), () => {\n this.bulkSelectionService.deselectAll();\n this.loadPage();\n });\n break;\n }\n }\n\n collectionTag: any;\n\n get ScrollingBlockHeight() {\n if (this.scrollingBlock === undefined) return 'calc(var(--vh)*100)';\n const navbar = this.document.querySelector('.navbar') as HTMLElement;\n if (navbar === null) return 'calc(var(--vh)*100)';\n\n const companionHeight = this.companionBar!.nativeElement.offsetHeight;\n const navbarHeight = navbar.offsetHeight;\n const totalHeight = companionHeight + navbarHeight + 21; //21px to account for padding\n return 'calc(var(--vh)*100 - ' + totalHeight + 'px)';\n }\n\n constructor(public imageService: ImageService, private router: Router, private route: ActivatedRoute,\n private seriesService: SeriesService, private titleService: Title,\n public bulkSelectionService: BulkSelectionService, private actionService: ActionService, private messageHub: MessageHubService,\n private filterUtilityService: FilterUtilitiesService, private utilityService: UtilityService, @Inject(DOCUMENT) private document: Document,\n private readonly cdRef: ChangeDetectorRef, private scrollService: ScrollService, private hubService: MessageHubService,\n private jumpbarService: JumpbarService) {\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\n this.titleService.setTitle('Kavita - ' + translate('want-to-read.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 this.hubService.messages$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {\n if (event.event === EVENTS.SeriesRemoved) {\n const seriesRemoved = event.payload as SeriesRemovedEvent;\n if (!this.utilityService.deepEqual(this.filter, this.filterActiveCheck)) {\n this.loadPage();\n return;\n }\n\n this.series = this.series.filter(s => s.id != seriesRemoved.seriesId);\n this.pagination.totalItems--;\n this.cdRef.markForCheck();\n this.refresh.emit();\n }\n });\n\n }\n\n ngOnInit(): void {\n this.messageHub.messages$.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(2000)).subscribe(event => {\n if (event.event === EVENTS.SeriesRemoved) {\n this.loadPage();\n }\n });\n }\n\n ngAfterContentChecked(): void {\n this.scrollService.setScrollContainer(this.scrollingBlock);\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 removeSeries(seriesId: number) {\n this.series = this.series.filter(s => s.id != seriesId);\n this.pagination.totalItems--;\n this.cdRef.markForCheck();\n this.refresh.emit();\n }\n\n loadPage() {\n this.filterActive = !this.utilityService.deepEqual(this.filter, this.filterActiveCheck);\n this.isLoading = true;\n this.cdRef.markForCheck();\n\n this.seriesService.getWantToRead(undefined, undefined, this.filter).pipe(take(1)).subscribe(paginatedList => {\n this.series = paginatedList.result;\n this.pagination = paginatedList.pagination;\n this.jumpbarKeys = this.jumpbarService.getJumpKeys(this.series, (series: Series) => series.name);\n this.isLoading = false;\n window.scrollTo(0, 0);\n this.cdRef.markForCheck();\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\n\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AuthGuard } from '../_guards/auth.guard';\nimport { WantToReadComponent } from './_components/want-to-read/want-to-read.component';\n\nconst routes: Routes = [\n {path: '**', component: WantToReadComponent, pathMatch: 'full'},\n {\n path: '',\n runGuardsAndResolvers: 'always',\n canActivate: [AuthGuard],\n children: [\n {path: '', component: WantToReadComponent, pathMatch: 'full'},\n ]\n }\n];\n\n\n@NgModule({\n imports: [RouterModule.forChild(routes), ],\n exports: [RouterModule]\n})\nexport class WantToReadRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WantToReadComponent } from './_components/want-to-read/want-to-read.component';\nimport { WantToReadRoutingModule } from './want-to-read-routing.module';\nimport {BulkOperationsComponent} from \"../cards/bulk-operations/bulk-operations.component\";\nimport {CardDetailLayoutComponent} from \"../cards/card-detail-layout/card-detail-layout.component\";\nimport {SeriesCardComponent} from \"../cards/series-card/series-card.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 WantToReadRoutingModule,\n BulkOperationsComponent,\n CardDetailLayoutComponent,\n SeriesCardComponent,\n SideNavCompanionBarComponent,\n WantToReadComponent\n ]\n})\nexport class WantToReadModule { }\n"],"x_google_ignoreList":[]}