{"version":3,"file":"common.ff98ef06159bb745.js","mappings":"mMAKO,MAAMA,KAAoBC,MAAwCC,MAC5DC,KAAkBF,MAAeD,EAAmBI,GAASA,EAAMC,QACnEC,KAAyBL,MAAeD,EAAmBI,GAASA,EAAMG,eAC1EC,KAAuBP,MAAeD,EAAoBI,GAAiBA,EAAMK,gBAEjFC,KAA0BT,MAAeD,EAAmBI,GAASA,EAAMO,mBAC3EC,KAA4BX,MAAeD,EAAmBI,GAASA,EAAMS,sBAC7EC,EAA4Bb,MAAeD,EAAmBI,GAASA,EAAMW,sBAC7EC,EAA0Bf,MAAeD,EAAmBI,GAASA,EAAMa,kBAAiB,wICKlG,MAAMC,EAOXC,YACSC,EACCC,GADDC,iBACCA,uBARVA,WAAQA,KAAKD,gBAAgBE,qBAC7BD,iBAAc,IAAIE,KAChBC,EAAOH,KAAKD,gBAAgBE,sBAAsBG,IAAI,EAAG,QAAQC,SACjEH,cAMC,CAEHI,SACMN,KAAKO,YAAYC,QACnBR,KAAKO,YAAYE,mBAInBT,KAAKF,UAAUY,MAAMV,KAAKO,YAAYI,MACxC,wCAnBWf,GAA8BgB,iDAA9BhB,EAA8BiB,siBClB3CD,iBAA+C,UAA/CA,CAA+C,WAEhBA,6BAAiBA,UAE9CA,8BAAoB,WAEhBA,+BASFA,UAEFA,gCAAoC,cACuBA,kBAAMA,QAC/DA,qBAAwDA,gCAASE,UAAQ,GACvEF,mBAA4B,WACpBA,mBAAMA,uBAdZA,uCAAwB,oBAAxBA,CAAwB,wCAAxBA,CAAwB,0BAAxBA,CAAwB,4BAAxBA,CAAwB,gCAAxBA,CAAwB,cAAxBA,CAAwB,0CDSpBG,KAAcC,KAAiBA,yBAAiBC,SAAoBC,SAAmBhB,8+FEC/FU,sBAQEA,yDAASA,sBAAa,GAAEA,gCAJxBA,uBAAiB,eAAjBA,CAAiB,mCAAjBA,CAAiB,sBCFhB,MAAMO,EARbtB,cAUWG,mBAAe,EACfA,gBAAY,EACXA,SAAM,IAAIY,MACVZ,YAAS,IAAIY,MAEfZ,eAASY,OAAOQ,MAgBfpB,mBAAgBqB,IAChBrB,WAAQsB,IAfjBC,UACMvB,KAAKwB,YAAYC,SACnBzB,KAAK0B,OAAOC,SAAS,CAAC3B,KAAKwB,YAAYC,SAAU,CAAEG,oBAAqB,SAE5E,CAEAC,QACE7B,KAAKI,IAAI0B,MACX,CAEAC,cACE/B,KAAKgC,WAAahC,KAAKiC,OAAOH,KAAK9B,KAAKwB,YAAYU,GACtD,wCArBWf,EAAuB,0BAAvBA,EAAuBN,4uBDnBpCD,iBAAsG,WAIlGA,sDAA+BE,YAAYA,SAAO,EAAlDF,CAAmD,wCAC5BE,YAAYA,SAAO,GAE1CF,sBAMAA,iBACEA,2BACFA,QAEAA,4BASFA,sBApBEA,kEAEEA,0EAAyD,oCAAzDA,CAAyD,eAAzDA,CAAyD,iBAM1CA,0GAIdA,mDCDKG,KAAcA,cAAeoB,IAA0BC,KAAiBC,65BCT7E,MAAMC,2CAAwB,0BAAxBA,EAAwBzB,uNCRrC0B,iBACEA,SACFA,+JCQO,MAAMC,2CAAqB,0BAArBA,gCAHDC,OAAY,qLCkBjB,MAAMC,2CAAmC,0BAAnCA,gCATTC,KACAC,IACAC,KACAC,IACAC,IACAC,KACAC,uDCKG,MAAMC,2CAA4B,0BAA5BA,gCAXTP,KACAQ,IACAC,KACAC,KACAC,KACAC,KACAC,IACAC,6CCIG,MAAMC,2CAAgC,0BAAhCA,gCAVTf,KACAQ,IACAC,KACAO,IACAC,IACAf,KACAgB,IACAb,QCRG,MAAMc,2CAAgC,0BAAhCA,gCAFDnB,KAAcQ,IAAeP,IAAiBC,KAAqBC,IAAaC,kECuCrF,MAAMgB,2CAAiB,0BAAjBA,gCAxBTpB,KACAqB,IACAC,IACAd,IACAC,KACAG,KACAD,KACAY,IACAC,IACAC,IACAvB,KACAD,IACAE,IACAY,EACAI,EACApB,EACA2B,KACAC,IACAtB,KACAH,KACAK,EACAH,MAAyB,kHC9CtB,MAAMwB,KAAiC5F,MAC5C6F,MAGWC,KAAqB9F,MAChC4F,EACAG,GAA4BA,EAAyBC,cAG1CC,KAAqCjG,MAChD4F,EACAG,GAA4BA,EAAyBG,wBAG1CC,KAA4BnG,MACvC4F,EACAG,GAA4BA,EAAyBK,qBAG1CC,KAA0BrG,MACrC4F,EACAG,GAA4BA,EAAyBO,mBAG1CC,KAA2BvG,MACtC4F,EACAG,GAA4BA,EAAyBS,oBAG1CC,KAAoBzG,MAC/B4F,EACAG,GAA4BA,EAAyBW,aAG1CC,KAAyB3G,MACpC4F,EACAG,GAA4BA,EAAyBa,iBAAgB,wJCpChE,MAAMC,KAAgC7G,MAC3C8G,MAGWC,KAA2B/G,MACtC6G,EACAG,GAA2BA,EAAwBC,oBAGxCC,KAAoClH,MAC/C6G,EACAG,GAA2BA,EAAwBG,6BAGxCC,KAAkCpH,MAC7C6G,EACAG,GAA2BA,EAAwBK,2BAGxCC,KAA4BtH,MACvC6G,EACAG,GAA2BA,EAAwBO,qBAGxCC,KAAwCxH,MACnD6G,EACAG,GAA2BA,EAAwBS,iCAExCC,KAAuC1H,MAClD6G,EACAG,GAA2BA,EAAwBW,gCAExCC,KAAkC5H,MAC7C6G,EACAG,GAA2BA,EAAwBa,2BAGxCC,KAAwC9H,MACnD6G,EACAG,GAA2BA,EAAwBe,iCAExCC,KAAuChI,MAClD6G,EACAG,GAA2BA,EAAwBiB,gCAGxCC,KAAuBlI,MAClC6G,EACAG,GAA2BA,EAAwBmB,gBAQxCC,IALAC,EAAoBrI,MAC/B6G,EACAG,GAA2BA,EAAwBsB,WAGxCF,EAA0BpI,MACrC6G,EACAG,GAA2BA,EAAwBuB,eAAa,0KCrC3D,MAAMC,2CAAiD,0BAAjDA,gCATTxE,KACAG,IACAsE,IACAC,IACAxE,KACAyB,IACAD,QCPG,MAAMiD,2CAA6C,0BAA7CA,gCAFD3E,KAAcE,KAAqBuE,IAAkBC,IAA0BvE,OCYpF,MAAMyE,2CAA4C,0BAA5CA,gCATT5E,KACAG,IACAsE,IACAC,IACAxE,KACAyB,IACAD,8GCqCG,MAAMmD,2CAAwC,0BAAxCA,gCA5BT7E,KACAwB,IACAC,IACAqD,IACA5E,KACAU,KACAD,KACA8D,IACAC,IACAvE,IACA4E,IACAC,IACAxE,IACAC,KACAmE,EACAK,IACAC,IACAxD,KACAC,IACA6C,EACAW,IACA/E,IACAF,KACAyE,IAA6C,6DCzC1C,MAAMS,2CAAgC,0BAAhCA,gCAHDtF,OAAY,4ICRpBuF,2CAEEA,uBAAiB,cAAjBA,CAAiB,mCAAjBA,CAAiB,+EAQvBA,iBACEA,WACFA,0CCIO,IAAMC,EAAN,oBACLjI,mBAAgBkI,IAChBlI,WAAQmI,IAECnI,iBAAa,EAEbA,wBAAoB,EAEnBA,mBAAgB,IAAIgI,MACpBhI,iBAAc,IAAIgI,MAE5BI,aACMpI,KAAKqI,cAAcC,SACrBtI,KAAKqI,cAAcvG,OAEnB9B,KAAKuI,YAAcvI,KAAKuI,UAE5B,yCAjBWN,EAA0B,0BAA1BA,EAA0BpH,uiBDlBvCmH,oBAAmDA,gCAASlH,cAAY,EAArBkH,CAAsB,6BAAalH,oBAAkB,GACtGkH,iBACEA,4BAMAA,SACAA,SACFA,UAEFA,8BATOA,2CAMHA,iCAGoBA,oDCIZQ,KAAcA,SAAeC,KAAeA,4nDAE3CR,qUAA0BS,KATtCC,QASYV,EAA0B,mFCbvC,MAAMW,EAAc,CAClBC,EAAG,GACHC,EAAG,IAWC,MAAOC,EARblJ,cASWG,UAAkB,IAClBA,eAAoB,KAE7BA,eAAY,IAAIgJ,IAAgB,GAKjC,CAHCC,WACEjJ,KAAKkJ,UAAUC,KAAKP,EAAY5I,KAAKoJ,MACtC,wCARUL,EAAe,0BAAfA,EAAelI,gOClB5BwI,iBACEA,mDACFA,eAFqBA,qCACGA,kEDeZC,KAAYC,KAAEC,KAAwBC,2OEhB3C,MAAMC,EAAqB,GACrBC,EAAmB,oCCCzB,MAAMC,EAAqD,CAChE,CACEC,MAAO,KACPlJ,MAAO,GAET,CACEkJ,MAAO,OACPlJ,MAAO,KAET,CACEkJ,MAAO,OACPlJ,MAAO,KAET,CACEkJ,MAAO,QACPlJ,MAAO,KAET,CACEkJ,MAAO,QACPlJ,MAAO,uCCrBJ,MAAMmJ,EAAsB,oBCAnC,IAAYC,IAKAC,8BALAD,QAAgB,KAC1BA,mBACAA,iBAGF,SAAYC,GACVA,iCACAA,iCACAA,yBACAA,qCACAA,2DACAA,yEACAA,mEACAA,yDACAA,yEACAA,yDACAA,wDACAA,0DACAA,0DACAA,oFACAA,4CACAA,wCACAA,sEACAA,oEACAA,kCACAA,4EACAA,gGACAA,0CACAA,oCACAA,oDACAA,4DACAA,0DACAA,4DACAA,kEACAA,gEACAA,gEACAA,kDACAA,4DACAA,oDACAA,4DACAA,gDACAA,4DACAA,8CACAA,oDACAA,0DACAA,0DACAA,0DACAA,sDACAA,0EACAA,8EACAA,wEACAA,2DACF,CA/CA,CAAYA,MAAqB,KAiD1B,MAAMC,EAA4B,CACvC,CACEtJ,MAAOqJ,EAAsBE,YAC7BL,MAAO,eAET,CACElJ,MAAOqJ,EAAsBG,YAC7BN,MAAO,eAET,CACElJ,MAAOqJ,EAAsBI,QAC7BP,MAAO,WAET,CACElJ,MAAOqJ,EAAsBK,cAC7BR,MAAO,iBAET,CACElJ,MAAOqJ,EAAsBM,yBAC7BT,MAAO,4BAET,CACElJ,MAAOqJ,EAAsBO,gCAC7BV,MAAO,mCAET,CACElJ,MAAOqJ,EAAsBQ,6BAC7BX,MAAO,gCAET,CACElJ,MAAOqJ,EAAsBS,wBAC7BZ,MAAO,2BAET,CACElJ,MAAOqJ,EAAsBU,gCAC7Bb,MAAO,mCAET,CACElJ,MAAOqJ,EAAsBW,wBAC7Bd,MAAO,2BAET,CACElJ,MAAOqJ,EAAsBY,uBAC7Bf,MAAO,0BAET,CACElJ,MAAOqJ,EAAsBa,wBAC7BhB,MAAO,2BAET,CACElJ,MAAOqJ,EAAsBc,wBAC7BjB,MAAO,2BAET,CACElJ,MAAOqJ,EAAsBe,qCAC7BlB,MAAO,wCAET,CACElJ,MAAOqJ,EAAsBgB,iBAC7BnB,MAAO,oBAET,CACElJ,MAAOqJ,EAAsBiB,eAC7BpB,MAAO,kBAET,CACElJ,MAAOqJ,EAAsBkB,8BAC7BrB,MAAO,iCAET,CACElJ,MAAOqJ,EAAsBmB,6BAC7BtB,MAAO,gCAET,CACElJ,MAAOqJ,EAAsBoB,YAC7BvB,MAAO,eAET,CACElJ,MAAOqJ,EAAsBqB,iCAC7BxB,MAAO,oCAET,CACElJ,MAAOqJ,EAAsBsB,2CAC7BzB,MAAO,8CAET,CACElJ,MAAOqJ,EAAsBuB,gBAC7B1B,MAAO,mBAET,CACElJ,MAAOqJ,EAAsBwB,aAC7B3B,MAAO,gBAET,CACElJ,MAAOqJ,EAAsByB,qBAC7B5B,MAAO,wBAET,CACElJ,MAAOqJ,EAAsB0B,yBAC7B7B,MAAO,4BAET,CACElJ,MAAOqJ,EAAsB2B,wBAC7B9B,MAAO,2BAET,CACElJ,MAAOqJ,EAAsB4B,yBAC7B/B,MAAO,4BAET,CACElJ,MAAOqJ,EAAsB6B,4BAC7BhC,MAAO,+BAET,CACElJ,MAAOqJ,EAAsB8B,2BAC7BjC,MAAO,8BAET,CACElJ,MAAOqJ,EAAsB+B,2BAC7BlC,MAAO,8BAET,CACElJ,MAAOqJ,EAAsBgC,oBAC7BnC,MAAO,uBAET,CACElJ,MAAOqJ,EAAsBiC,yBAC7BpC,MAAO,4BAET,CACElJ,MAAOqJ,EAAsBkC,qBAC7BrC,MAAO,wBAET,CACElJ,MAAOqJ,EAAsBmC,yBAC7BtC,MAAO,4BAET,CACElJ,MAAOqJ,EAAsBoC,mBAC7BvC,MAAO,sBAET,CACElJ,MAAOqJ,EAAsBqC,yBAC7BxC,MAAO,4BAET,CACElJ,MAAOqJ,EAAsBsC,kBAC7BzC,MAAO,qBAET,CACElJ,MAAOqJ,EAAsBuC,qBAC7B1C,MAAO,wBAET,CACElJ,MAAOqJ,EAAsBwC,wBAC7B3C,MAAO,2BAET,CACElJ,MAAOqJ,EAAsByC,wBAC7B5C,MAAO,2BAET,CACElJ,MAAOqJ,EAAsB0C,wBAC7B7C,MAAO,2BAET,CACElJ,MAAOqJ,EAAsB2C,sBAC7B9C,MAAO,yBAET,CACElJ,MAAOqJ,EAAsB4C,gCAC7B/C,MAAO,mCAET,CACElJ,MAAOqJ,EAAsB6C,kCAC7BhD,MAAO,qCAET,CACElJ,MAAOqJ,EAAsB8C,+BAC7BjD,MAAO,kCAET,CACElJ,MAAOqJ,EAAsB+C,yBAC7BlD,MAAO,qKC7MJ,MAAMmD,UAAmBC,IAY9BpN,YAAoBqN,EAAsCC,GACxDC,QADkBpN,aAAsCA,qBAX1DA,iBAAqC,GACrCA,eAAkCA,KAAKkN,MAAMG,OAAOC,MACpDtN,aAA8BA,KAAKkN,MAAMG,OAAOC,MAChDtN,eAA4CA,KAAKkN,MAAMG,OAAOC,MAC9DtN,sBAAqDA,KAAKkN,MAAMG,OAAOC,MACvEtN,kBAAkDA,KAAKkN,MAAMG,OAAOC,MACpEtN,sBAAwCA,KAAKkN,MAAMG,OAAOC,MAC1DtN,mBAA2CA,KAAKkN,MAAMG,OAAOC,MAC7DtN,0BAA4CA,KAAKkN,MAAMG,OAAOC,MAC9DtN,iBAAsCA,KAAKkN,MAAMG,OAAOC,MAItDtN,KAAKuN,iBACP,CAEAC,kBAAkBC,EAAqCC,GACrD,OAAO1N,KAAK2N,aAAaC,QACvBC,KAAIC,GACKJ,GAAQK,MACXN,EAAaM,MAAMC,GAAsBF,EAAYG,SAASD,IAC9DP,EAAaS,KAAKF,GAAsBF,EAAYG,SAASD,MAClE,EACDG,KAAIC,KACDA,IACEV,GAAQW,QAAUX,GAAQY,gBAC3BtO,KAAKmN,cAAcoB,QACjBb,GAAQY,eAAiB,2DAA0D,GAI7F,CAEAE,gBAAgBR,EAAyCK,GAAS,GAChE,MAAMD,EAAgBpO,KAAK8N,YAAYG,SAASD,GAChD,OAAKI,GAAiBC,GACpBrO,KAAKmN,cAAcoB,QAAQ,4DAEtBH,CACT,CAEQb,kBACNvN,KAAK2N,aACFC,QACCa,KAAQC,KAA8CA,GAAkBC,SAAM,EAC9EC,KAAK,IAAC,EACNT,KAAIL,GAAgB9N,KAAK8N,YAAcA,IAExCe,YACAC,eAAe9O,KACpB,wCAnDWgN,GAAU+B,mDAAV/B,EAAUgC,QAAVhC,EAAU,qBADG,QAAM,4FCxBzB,MAAMiC,EAA0B/B,MACrCgC,KAAc,CAAChC,EAAMG,OAAO8B,MAA4BjC,EAAMG,OAAO+B,QAAoBxB,QACvFC,KAAO,EAAE3L,EAAImN,OAAkBnN,KAAQmN,GAAYV,SAAM,EACzDR,KAAI,EAAEjM,EAAImN,KACDA,EAAWC,KAAKC,GAAKA,EAAErN,KAAOA,KACtC,EACD2L,KAAO0B,KAAOA,GAAE,kBCbb,SAASC,IACd,cAAcC,OAAW,YAAsBC,SAAa,GAC9D,iBAIA,kBCNO,SAASC,EAAgBzN,GAC9B,IAAKuN,SAAWC,SAEd,YADAE,QAAQC,KAAK,qFAIf,MAAMC,EAAUJ,SAASK,eAAe7N,GACnC4N,EAILA,EAAQE,eAAe,CAAEC,SAAU,SAAUC,MAAO,QAASC,OAAQ,YAHnEP,QAAQC,KAAK,2CAA2C3N,IAI5D,mECVO,SAASkO,EAAgBC,EAAaC,GAAY,KACnD,EAACC,SACLD,EAAYb,OAAOe,KAAKH,EAAK,UAAaZ,OAAOgB,SAASC,KAAOL,EACnE,6DCHO,SAASM,EAAyBC,EAASC,GAChD,SAAOC,KAAWC,IAChBF,GAAUjB,QAAQoB,MAAM,oBAAqBD,EAAKF,IAAM,EACjDI,WAAW,IAARL,EAAoBA,EAAMG,IAExC,mBCFO,SAASG,EACdC,EACAC,EACAC,GAEA,MACMC,EAAO,GAAGF,EADFC,GAASE,OAAS,OACDJ,IAE/B,OAAOE,GAASG,OAASC,KAAKC,UAAUN,GAAQE,CAClD,uICbEK,4CAA2BA,2BAAmB,oBAAnBA,CAAmB,wBCWzC,MAAMC,UAA2BC,IAQtChS,YAAsBiS,GACpB1E,MAAM0E,GADc9R,WALbA,mBAA2B+R,eAC3B/R,eAAY,QACZA,gBAAa,QACbA,WAAO,CAIhB,CAEAiJ,WACEjJ,KAAKqR,QAAUrR,KAAKgS,WACtB,CAEQA,YACN,MAAO,CAAEC,KAAMjS,KAAKiS,KAAMC,KAAMlS,KAAKmS,gBACvC,CAEQA,gBACN,MAAMC,EAAa,oCACnB,OAAQpS,KAAKqS,oBACNN,eACH,MAAO,GAAGK,wBAEPL,eACH,MAAO,GAAGK,mBAGhB,wCA9BWR,GAAkBD,uCAAlBC,EAAkB/Q,kWDZ/B8Q,iBACEA,6BACFA,eADcA,0QEUP,MAAMW,2CAAe,0BAAfA,gCAHD7P,KAAc8P,OAAY,iOCc1BlJ,mCAOEA,SACFA,mDANEA,gCAA0B,yDAA1BA,CAA0B,kCAA1BA,CAA0B,mBAA1BA,CAA0B,qDAK1BA,sEAEmBA,6GAhBzBA,SACEA,oBAEEA,sEAASA,uBAAiB,GAI1BA,wBASAA,2CACFA,QACFA,0DAdIA,uOAIGA,wCAAsB,oCAW7BA,gDApBFA,SACEA,gCAmBAA,+BACFA,2CApBiCA,+CAmBjBA,qFAlCtBA,iBAA8D,cACdA,8DAAcA,uBAAc,GACxEA,iBAA2E,QACrEA,SAAiCA,QACrCA,oBAAUA,SAAiEA,YAG/EA,wBAIEA,0DAAUA,uBAAc,EAAxBA,CAAyB,oDACfA,uBAAc,GACxBA,iBACEA,iCAsBFA,+CAnCiBA,sCAEXA,mFACMA,8FAUsBA,0CCiB/B,IAAMmJ,EAAN,cACGC,IAkCR5S,YACgC6S,EACpBZ,EACUa,GAEpBvF,QAJ8BpN,iBACpBA,WACUA,qBAhCtBA,mBAAgB,EAChBA,iBAAa,EAEbA,sBAAmB,IAAI4S,KAA0D,MACjF5S,kBAA2E,GAC3EA,4BAAyB,IAAI6S,IAErB7S,sBAAiD,KAEhDA,qBAAiB,EAYlBA,cAAiC,OAIjCA,eAAwB,OAU1BA,KAAK0S,YACP1S,KAAK0S,UAAUI,cAAgB9S,KAElC,CA5BY+S,UAAMC,GACjBhT,KAAKiT,OAASD,EACdhT,KAAKkT,qBACLlT,KAAKmT,eAAenT,KAAKoT,iBAAiBzS,OAC1CX,KAAK8R,IAAIuB,eACV,CAEGN,YACF,OAAO/S,KAAKiT,MACb,CAqBDhK,WACEjJ,KAAKmT,eAAenT,KAAKoT,iBAAiBzS,MAC3C,CAED2S,YACMtT,KAAK0S,WAAWa,SAAWvT,KAAKoT,mBAAqBpT,KAAK0S,UAAUa,SACtEvT,KAAKwT,iBAER,CAEOA,kBACFxT,KAAK0S,WAAWa,UAClBvT,KAAKoT,iBAAmBpT,KAAK0S,WAAWa,SAE1CvT,KAAK8R,IAAIuB,eACV,CAEDI,WAAW9S,GACLA,IAAUX,KAAKoT,iBAAiBzS,OAClCX,KAAKoT,iBAAiBM,SAAS/S,EAElC,CAEDgT,iBAAiBC,GACf5T,KAAK6T,SAAWD,CACjB,CAEDE,kBAAkBF,GAChB5T,KAAK+T,UAAYH,CAClB,CAEDI,YAAY5C,GACVpR,KAAKiU,iBAAmB7C,CACzB,CAED8C,eACElU,KAAKmU,YAAa,EACdnU,KAAKiU,uBAAqDG,IAAjCpU,KAAKiU,kBAAkBtT,OAClD0T,WAAW,KACT,MAAMC,EAAW,CAAEC,WAAYvU,KAAKiU,iBAAiBM,WAAY5T,MAAOX,KAAKiU,iBAAiBtT,OAC9FX,KAAK6T,SAASS,GACdtU,KAAKyT,WAAWa,GAChBtU,KAAKwU,cAAgBxU,KAAK+S,MAAM0B,UAC9BC,GAAKA,EAAEH,aAAevU,KAAKiU,iBAAiBM,YAAcG,EAAE/T,QAAUX,KAAKiU,iBAAiBtT,OAE9FX,KAAKiU,iBAAmB,KACxBjU,KAAK8R,IAAIuB,eAAT,EACC,EAEN,CAEOF,eAAewB,GACrB,GAAmD,MAAjBA,EAAuB,OACzD,MAAMC,EAAe5U,KAAK+S,MAAM0B,UAC9BrD,GAAQuD,EAAaJ,aAAenD,EAAKmD,YAAcI,EAAahU,QAAUyQ,EAAKzQ,OAE/EkU,GAAoC,IAAjBD,EAAsBA,EAAe,EAC1DC,IAAqB7U,KAAKwU,gBAC5BxU,KAAKwU,cAAgBK,EACrB7U,KAAK8R,IAAIuB,gBAEZ,CAEDyB,eACE9U,KAAKmU,YAAa,EACdnU,KAAK+U,gBAAgB/U,KAAKgV,uBAAuB7L,MAAK,IAAI8L,MAAOC,WACrElV,KAAK8R,IAAIuB,eACV,CAEOH,qBACN,IAAKlT,KAAKiT,QAAQtE,OAEhB,YADA3O,KAAKmV,aAAe,IAGtB,MAAMC,EAAYpV,KAAKiT,OAAOoC,OAAOjE,IAASA,EAAKmD,YAC7Ce,EAASC,MAAMC,KAAK,IAAIC,IAAIzV,KAAKiT,OAAOoC,OAAOjE,GAAQA,EAAKmD,YAAYmB,IAAItE,GAAQA,EAAKmD,cAC/FvU,KAAKmV,aAAe,IACdC,EAAUzG,OAAS,CAAC,CAAEgH,MAAO,KAAM5C,MAAOqC,IAAe,MAC1DE,EAAOI,IAAIC,KACZA,QACA5C,MAAO/S,KAAKiT,OAAOoC,OAAOjE,GAAQA,EAAKmD,aAAeoB,MAG3D,yCAjIUnD,GAAgCnJ,oEAAhCmJ,EAAgC3R,oFAIhC+U,KAAc,2yBDnC3BvM,6BAAyCA,gqDC+B5BmJ,qUAAgC9J,KAR5CmN,QAQYrD,EAAgC,qJCCtC,MAAMsD,2CAA6B,0BAA7BA,gCAdTtN,KACAuN,KACAC,IACAC,IACAC,KACAC,KACAC,KACAC,IACAL,IACAM,MAAW,kFCfR,MAAMC,2CAAc,0BAAdA,gCAHDC,KAAcC,IAA2BC,OAAmB,6DCCjE,MAAMC,2CAAgB,0BAAhBA,gCAFDlU,OAAY,sKCPtBmU,oBAGEA,yDAASA,eAAM,GAGfA,sBAQFA,gCAVEA,uEAGEA,mCAAkB,eAAlBA,CAAkB,gBAAlBA,CAAkB,wBAAlBA,CAAkB,wJAQtBA,oBAGEA,yDAASA,eAAM,GAGfA,sBAMFA,gCAPEA,8CAEEA,mCAAkB,eAAlBA,CAAkB,gBAAlBA,CAAkB,uFAAlBA,CAAkB,kEAMtBA,oBAIEA,yDAASA,iBAAQ,GAGjBA,sBAMFA,gCAREA,gDAGEA,oCAAmB,eAAnBA,CAAmB,gBAAnBA,CAAmB,uFAAnBA,CAAmB,4BC3BlB,MAAMC,UAAoChF,IAc/ChS,YAAsBiS,GACpB1E,MAAM0E,GADc9R,WAXbA,kBAAc,EACdA,kBAAc,EACdA,oBAAgB,EAChBA,iBAAa,EACbA,kBAAc,EACdA,gBAAY,EAEXA,eAAgC,IAAI4W,MACpC5W,eAAgC,IAAI4W,MACpC5W,iBAAkC,IAAI4W,KAIhD,CAEAE,OACE9W,KAAK+W,UAAUjV,MACjB,CAEAkV,OACEhX,KAAKiX,UAAUnV,MACjB,CAEAG,SACEjC,KAAKkX,YAAYpV,MACnB,wCA5BW+U,GAA2BD,uCAA3BC,EAA2BhW,69BDVxC+V,iBACEA,0BAeAA,0BAaAA,0BAcFA,eArCKA,2EAcAA,2EAeAA,iMEpBE,MAAMO,2CAAwB,0BAAxBA,gCAFDC,KAAcC,KAAiBrB,IAAeC,MAAsB,uEC0CzE,MAAMqB,EACXzX,YAAsB0X,iBAA0B,CAEzCC,YAAYC,GACjB,OAAOzX,KAAKuX,QAAQG,IAAI,gCAAgCD,QAAYE,SACtE,CAEOC,QAAQH,EAAkBG,GAC/B,OAAO5X,KAAKuX,QAAQM,KAAK,yBAAyBJ,QAAYE,SAAiB,CAAEC,WACnF,CAEOE,OAAOL,GACZ,OAAOzX,KAAKuX,QAAQM,KAAK,wBAAwBJ,QAAYE,SAC/D,CAEOI,QAAQN,GACb,OAAOzX,KAAKuX,QAAQM,KAAK,yBAAyBJ,QAAYE,SAChE,CAEOK,OAAOP,EAAkBQ,GAC9B,OAAOjY,KAAKuX,QAAQM,KAAK,wBAAwBJ,QAAYE,SAAiB,CAAEM,UAClF,CAEOC,KAAKT,EAAkBQ,GAC5B,OAAOjY,KAAKuX,QAAQM,KAAK,sBAAsBJ,QAAYE,SAAiB,CAAEM,UAChF,wCAzBWX,GAAoB3F,uCAApB2F,EAAoBtI,QAApBsI,EAAoB,qBAFnB,QAAM,+FCCb,MAAMa,EACXtY,YAAsB0X,iBAA0B,CAEzCa,WAAWX,GAChB,OAAOzX,KAAKuX,QAAQM,KAAK,0BAA0BJ,QAAYY,SACjE,CAEOC,WAAWb,EAAkBc,GAClC,MAAMC,EAAsBC,mBAA8BF,GAC1D,OAAOvY,KAAKuX,QAAQM,KAAa,0BAA0BJ,QAAYY,SAAiB,CACtFK,WAAYF,GAEhB,CAEOG,gBAAgBlB,GACrB,OAAOzX,KAAKuX,QACTG,IAAgC,+BAA+BD,QAAYY,UAC3EzK,QACCgL,KAAIC,IACFA,EAAKC,SAASC,WAAaN,mCAA8CI,EAAKC,SAASC,YACvFF,EAAKG,qBAAqBC,QAAUR,mCAClCI,EAAKG,qBAAqBC,SAErBJ,IAGf,CAEOrB,YAAYC,GACjB,OAAOzX,KAAKuX,QACTG,IAAgC,iCAAiCD,QAAYY,UAC7EzK,QACCgL,KAAIC,IACFA,EAAKC,SAASC,WAAaN,mCAA8CI,EAAKC,SAASC,YAEhFF,IAGf,CAEOK,YAAYzB,EAAkBG,GACnC,OAAO5X,KAAKuX,QAAQM,KAAK,2BAA2BJ,QAAYY,SAAiB,CAAET,WACrF,CAEOuB,oBAAoB1B,EAAkBG,GAC3C,OAAO5X,KAAKuX,QAAQM,KAAK,6BAA6BJ,QAAYY,SAAiB,CAAET,WACvF,CAEOwB,gBAAgB3B,EAAkBQ,GACvC,OAAOjY,KAAKuX,QAAQM,KAAK,uBAAuBJ,QAAYY,SAAiB,CAAEJ,UACjF,CAEOoB,eAAe5B,GACpB,OAAOzX,KAAKuX,QAAQM,KAAK,sBAAsBJ,QAAYY,SAC7D,wCAtDWF,GAAmBvB,uCAAnBuB,EAAmBnJ,QAAnBmJ,EAAmB,qBAFlB,QAAM,ySChDhB9O,SACEA,oBAAyBA,SAAiBA,QAC1CA,wCAWEA,wFAAqB,gEACAA,eAAM,GAAEA,QACjCA,iCAd2BA,8BAEvBA,yEAA0D,iBAA1DA,CAA0D,gBAA1DA,CAA0D,gBAA1DA,CAA0D,oBAA1DA,CAA0D,wBAA1DA,CAA0D,+BAA1DA,CAA0D,iBAA1DA,CAA0D,6BAA1DA,CAA0D,8DAe5DA,0BAMEA,wFAAqB,oDACZA,yBAAgB,EADzBA,CAAqB,oDAEZA,yBAAgB,GAAEA,iCAH3BA,mCACAA,qDAKJA,kBAAyDA,SAAWA,6BAAXA,2DA/B3DA,SACEA,mBAA6BA,SAAYA,QACzCA,iCAiBAA,0CAYAA,wCACAA,kBAA0B,eACWA,yDAASA,eAAM,qBAChDA,UACAA,mBACFA,UAEJA,2CArC+BA,yBACdA,+BAAa,cA6BtBA,2CAEgDA,qDAClDA,6DAKNA,kBAAsE,WAC7DA,SAAcA,gCAAdA,qDAETA,kBAAgE,cACxCA,iBAAKA,QAC3BA,oBAA0BA,kCAA+BA,gCAA/BA,wCCjC9B,IAAKiQ,aAAkB,KACrBA,6BACAA,yBACAA,mBA4BK,IAAeC,EAAf,cAAuD9G,IAmB5D5S,YAAgCiS,EAAgC0H,GAC9DpM,QAD8BpN,WAAgCA,aAhBhEA,wBAAqBsZ,EACrBtZ,eAAY,UACZA,aAAU,GACVA,iBAAc,IAAIgJ,KAAyB,GAC3ChJ,cAAW,aACXA,iBAAc,aACdA,cAAW,eACXA,YAAS,IAAI6S,GAWZ,CARG4E,eACF,OAAOzX,KAAKwZ,MAAMC,SAASC,YAAYC,GACxC,CAcD1Q,WACEjJ,KAAK4Z,YAAY5Z,KAAKyX,UACnB7J,QAAKiM,KAAS,IAAM7Z,KAAK8R,IAAIuB,kBAC7BxE,UAAU,CACT1F,KAAM2Q,IACAA,GAAOC,QAAU/Z,KAAK+Z,MAAQD,EAAKC,OACvC/Z,KAAKga,iBAAiBF,GACtB9Z,KAAKlB,MAAQwa,EAAmBW,WAChC5F,WAAW,KACTrU,KAAKka,cAAcC,eAAeC,QAClCpa,KAAKqa,2BAAL,EAFQ,EAKZrJ,MAAOD,IACL/Q,KAAKsa,UAAYvJ,GAAKC,OAAS,GAC/BhR,KAAKlB,MAAQwa,EAAmBiB,QAGnCzL,eAAe9O,KACnB,CAEDwa,iBACwB9K,SAAS+K,cAAc,kBAC9BzK,eAAe,CAAEC,SAAU,SAAUC,MAAO,OAC5D,CAED2H,OACM7X,KAAK4X,QAAQjJ,OAAS,EACI,IAAxB3O,KAAK4X,QAAQjJ,OAAc3O,KAAK0a,OAAOvR,KAAK,uBACvCnJ,KAAK4X,QAAQjJ,OAAS,GAAG3O,KAAK0a,OAAOvR,KAAK,wCAIrDnJ,KAAK2a,YAAYxR,MAAK,GACtBnJ,KAAK4a,YAAY5a,KAAKyX,SAAUzX,KAAK4X,SAClChK,QAAKiM,KAAS,IAAM7Z,KAAK2a,YAAYxR,MAAK,KAC1C0F,UAAU,CACT1F,KAAM,KACJnJ,KAAKlB,MAAQwa,EAAmBuB,QAChC7a,KAAK8R,IAAIuB,eAEXrC,MAAOD,IACL/Q,KAAKsa,UAAYvJ,GAAKC,OAAS,GAC/BhR,KAAKlB,MAAQwa,EAAmBiB,KAChCva,KAAK8R,IAAIuB,iBAGZvE,eAAe9O,MACnB,CAEOqa,6BACDra,KAAKka,cAAcC,kBACxBW,KAAU9a,KAAKka,cAAcC,cAAe,SACzCvM,QACC8H,KAAKqF,GAAkBA,EAAMC,OAA+Bra,QAAzD,EACHsa,KAAI,IAAMjb,KAAK4X,QAAQjJ,OAAS,GAAK3O,KAAK0a,OAAOvR,KAAK,MAAnD,EACH2F,KAAe9O,OAEhB6O,YACAC,eAAe9O,KACnB,yCAzFmBuZ,GAA4BlQ,mDAA5BkQ,EAA4B1Y,mFAiBbqa,+6BD7DrC7R,iBACAA,iBACEA,kCAuCAA,uBAGAA,uBAIFA,QACAA,wBAhDwBA,mCACPA,+DAuCaA,4DAGHA,yECTvBC,KAAYG,oBACZ0R,KAAWC,oBACXC,KACAC,IACAC,KACAC,KAA4BnZ,q2FAIVkX,qUAA4B7Q,KAhBjDmN,QAgBqB0D,EAA4B,uCClC7CkC,mHCRH9J,iBAAuE,WAC9DA,SAAcA,gCAAdA,qDAETA,iBAAiE,aACzCA,iBAAKA,QAC3BA,mBAA0BA,kCAA+BA,gCAA/BA,yCDGzB8J,QAAmB,KACtBA,uBACAA,mBAYK,IAAeC,EAAf,cAA+CzO,IAUpDpN,YAAsBiS,EAAgC0H,GACpDpM,QADoBpN,WAAgCA,aARtDA,yBAAsByb,EACtBzb,eAAY,SASZ,CANIyX,eACF,OAAOzX,KAAKwZ,MAAMC,SAASC,YAAYC,GACzC,CAUA1Q,WACEjJ,KAAK2b,SAAW3b,KAAK4b,cAErB5b,KAAK6b,OAAO7b,KAAKyX,UACd7J,QAAKgL,KAAS,IAAM5Y,KAAK8R,IAAIuB,kBAC7BxE,UAAU,CACT1F,KAAM,IAAOnJ,KAAKlB,MAAQ2c,EAAoBZ,QAC9C7J,MAAOD,IACL/Q,KAAKsa,UAAYvJ,GAAKC,OAAO8K,SAAW/K,GAAKC,OAAS,GACtDhR,KAAKlB,MAAQ2c,EAAoBlB,KACjCva,KAAK8R,IAAIuB,eAAa,IAGzBvE,eAAe9O,KACpB,yCAhCoB0b,GAAuB/J,mDAAvB+J,EAAuB7a,sVCxB7C8Q,iBACAA,iBACEA,uBAGAA,uBAIFA,QACAA,wBATwBA,mCACMA,6DAGHA,0EDgBfoK,KAAcA,eAAaC,KAAiB3Z,+kEAGlCqZ,qUAAuBhT,KAT5CuT,QASqBP,EAAuB,kDEtB7C,MAAMQ,EAAqD,CACzDC,kCAAmC,uBACnCC,6BAA8B,+CAC9BC,4BAA6B,wBAC7BC,2BAA4B,yBAC5BC,2BAA4B,sCAC5BC,4BAA6B,sCAC7BC,+BAAgC,6BAChCC,+BAAgC,yBAChCC,0BAA2B,yBAC3BC,kCAAmC,mBACnCC,yBAA0B,mBAC1BC,yBAA0B,mBAC1BC,yBAA0B,mBAC1BC,2BAA4B,4BAC5BC,6BAA8B,gCAOzB,MAAM3B,EACX4B,UAAUC,KAAiBC,GACzB,IAAIC,EAAgBnB,EAAuBiB,IAASA,EACpD,OAAIC,GACFA,EAAOE,QAAQ,CAACC,EAAG7I,IAAO2I,EAAgBA,EAAcG,QAAQ,IAAIC,OAAO,MAAM/I,OAAQ,KAAM6I,IAE1FF,CACT,wCAPW/B,EAAiB,gDAAjBA,EAAiBoC,yCCxBvB,SAASC,IACd,MAAMC,EAAWlO,SAASkO,SACpBC,EAAmBnO,SAASe,SAASC,KAC3C,OAAIkN,GAAUE,SAAWD,GAAkBC,OAAe,YAAYF,IAE/D,YAAYA,sBAA6BC,GAClD,yFCGO,MAAME,EAGXle,YAAYme,GACVhe,KAAKie,KAAO,IAAIC,KAAWF,EAC7B,CAEOtG,IAAO8B,GACZ,OAAOxZ,KAAKie,KAAKvG,IAAO1X,KAAKme,aAAa3E,EAAO4E,gBACnD,CAEOvG,KAAQ2B,EAAe6E,GAC5B,OAAOre,KAAKie,KAAKpG,KAAQ7X,KAAKme,aAAa3E,EAAO4E,gBAAyBC,EAAMre,KAAKse,kBACxF,CAEOC,OAAU/E,EAAe6E,GAC9B,OAAOre,KAAKie,KAAKO,IAAOxe,KAAKme,aAAa3E,EAAO4E,gBAAyBC,EAAMre,KAAKse,kBACvF,CAEOrc,OAAUuX,EAAe6E,EAAgB,IAC9C,OAAOre,KAAKie,KAAKhc,OAAUjC,KAAKme,aAAa3E,EAAO4E,gBAAyBC,EAC/E,CAEOI,OAAUjF,EAAekF,GAC9B,MAAMC,EAAW,IAAIC,SACrB,SAASC,OAAO,OAAQH,GACjB1e,KAAKie,KAAKpG,KAAQ7X,KAAKme,aAAa3E,EAAO4E,gBAAyBO,EAC7E,CAEQR,aAAa3E,EAAesF,GAClC,MAAO,GAAGA,KAAkBtF,GAC9B,CAEQ8E,kBACN,MAAO,CACLS,QAAS,IAAIb,KAAY,CAAE,eAAgB,qBAE/C,wCArCWH,GAAcpM,wCAAdoM,EAAc/O,QAAd+O,EAAc,qBAFb,QAAM,kBCPpB,SAASiB,EAAEA,GAAGhf,KAAK8b,QAAQkD,CAAE,oBAAEC,UAAU,IAAIC,MAAMF,EAAEC,UAAUE,KAAK,wBAAwB,IAAIC,SAAsB3P,OAApB,KAA4BA,OAAO4P,MAAM5P,OAAO4P,KAAKC,KAAK7P,SAAS,SAAS2P,GAAG,IAAIG,EAAEC,OAAOJ,GAAG5B,QAAQ,MAAM,IAAI,GAAG+B,EAAE5Q,OAAO,GAAG,EAAE,MAAM,IAAIqQ,EAAE,qEAAqE,QAAQS,EAAEC,EAAEC,EAAE,EAAEjL,EAAE,EAAEkL,EAAE,GAAGF,EAAEH,EAAEM,OAAOnL,MAAMgL,IAAID,EAAEE,EAAE,EAAE,GAAGF,EAAEC,EAAEA,EAAEC,IAAI,GAAGC,GAAGJ,OAAOM,aAAa,IAAIL,KAAI,EAAGE,EAAE,IAAI,EAAED,EAAE,oEAAoEK,QAAQL,GAAG,OAAOE,CAAE,EAAmX,SAASH,EAAET,GAAGhf,KAAK8b,QAAQkD,CAAE,CAAoNS,EAAER,UAAU,IAAIC,MAAMO,EAAER,UAAUE,KAAK,oBAAoB,QAA/Q,SAASO,EAAEV,EAAEI,GAAG,GAAG,iBAAiBJ,EAAE,MAAM,IAAIS,EAAE,2BAA2B,IAAIC,GAAE,KAAMN,EAAEA,GAAG,IAAIY,OAAO,EAAE,EAAE,IAAI,OAAOvO,KAAKwO,MAA5gB,SAASV,EAAEP,GAAG,IAAIO,EAAEP,EAAExB,QAAQ,KAAK,KAAKA,QAAQ,KAAK,KAAK,OAAO+B,EAAE5Q,OAAO,QAAQ,EAAE,WAAW,EAAE4Q,GAAG,KAAK,WAAW,EAAEA,GAAG,IAAI,cAAc,KAAK,4BAA4B,IAAI,OAA0BW,mBAAmBd,EAA4HG,GAAvH/B,QAAQ,OAAQ,SAASwB,EAAEI,GAAG,IAAIG,EAAEH,EAAEe,WAAW,GAAGC,SAAS,IAAIC,cAAc,OAAOd,EAAE5Q,OAAO,IAAI4Q,EAAE,IAAIA,GAAG,IAAIA,CAAE,GAA6B,CAArB,MAAS,OAAOH,EAAEG,EAAG,CAAC,CAAgKA,CAAEP,EAAEsB,MAAM,KAAKZ,IAAiE,CAA5D,MAAMV,GAAG,MAAM,IAAIS,EAAE,4BAA4BT,EAAElD,QAAS,CAAC,CAA0E4D","names":["selectBoardsState","_ngrx_store__WEBPACK_IMPORTED_MODULE_1__","_boards_reducer__WEBPACK_IMPORTED_MODULE_0__","selectBoardList","state","boards","selectBoardListLoading","boardsLoading","selectTemplatesUsage","templatesUsage","selectBoardSummaryStats","boardSummaryStats","selectBoardSummaryDetails","boardSummaryDetails","selectBoardSummaryLoading","boardSummaryLoading","selectBoardSummaryError","boardSummaryError","ExtendExpirationModalComponent","constructor","dialogRef","timezoneService","this","getCurrentDateOnly","_angular_forms__WEBPACK_IMPORTED_MODULE_4__","moment__WEBPACK_IMPORTED_MODULE_0__","add","toDate","submit","dateControl","invalid","markAllAsTouched","close","value","_angular_core__WEBPACK_IMPORTED_MODULE_5__","selectors","ctx","_angular_common__WEBPACK_IMPORTED_MODULE_7__","_angular_material_dialog__WEBPACK_IMPORTED_MODULE_6__","_angular_material_button__WEBPACK_IMPORTED_MODULE_8__","_ui_components_controls_date_dropdown_date_dropdown_component__WEBPACK_IMPORTED_MODULE_3__","ManagementCardComponent","_angular_router__WEBPACK_IMPORTED_MODULE_6__","_shared_enums_color_palette_enum__WEBPACK_IMPORTED_MODULE_2__","_shared_enums_icon_enum__WEBPACK_IMPORTED_MODULE_3__","onClick","sectionItem","urlPath","router","navigate","queryParamsHandling","onAdd","emit","deleteBoard","hasDelete","delete","id","_shared_directives_stop_propagation_directive__WEBPACK_IMPORTED_MODULE_1__","_shared_components_ellipsis_one_row_fade_text_component__WEBPACK_IMPORTED_MODULE_0__","styles","PortfolioHeaderComponent","_angular_core__WEBPACK_IMPORTED_MODULE_0__","PortfolioHeaderModule","_angular_common__WEBPACK_IMPORTED_MODULE_1__","UnitDetailsDescriptionSectionModule","common","input_area_module","fesm2020_forms","pipes_module","radio_button_dropdown_module","progress_spinner","number_input_module","UnitDetailsInspectionsModule","icon_component","fesm2020_button","icon","sort","table","divider","menu","UnitDetailsPicturesSectionModule","attachment_module","input_file_module","picture_module","UnitDetailsPropertySectionModule","UnitDetailsModule","portfolio_header_module","input_module","empty_data_module","dashboard_container_module","dashboard_user_header_module","fesm2020_checkbox","tooltip_directive","selectSystemConfigurationState","_system_configuration_reducer__WEBPACK_IMPORTED_MODULE_0__","selectSystemConfig","systemConfigurationState","systemConfig","selectSystemConfigUpdateInProgress","updateSystemInProgress","selectSystemConfigLoading","systemConfigLoading","selectChatHooksChannels","chatHooksChannels","selectTimerReportLoading","timerReportLoading","selectTimerReport","timerReport","selectExpandedSections","expandedSections","selectResponsiblePartiesState","_reducers_turnover_configuration_step_assignees_reducer__WEBPACK_IMPORTED_MODULE_0__","selectResponsibleParties","responsiblePartiesState","responsibleParties","selectPortfolioResponsibleParties","portfolioResponsibleParties","selectResponsiblePartiesLoading","responsiblePartiesLoading","selectAllStepAssigneeList","allStepAssigneeList","selectUpdateResponsiblePartiesOngoing","updateResponsiblePartiesOngoing","selectUpdateResponsiblePartiesStatus","updateResponsiblePartiesStatus","selectUpdatedResponsibleParties","updatedResponsibleParties","selectCreateResponsiblePartiesOngoing","createResponsiblePartiesOngoing","selectCreateResponsiblePartiesStatus","createResponsiblePartiesStatus","selectEditedCellUUId","editedCellUUId","selectPropertyAssignees","selectActiveUsers","allUsers","propertyUsers","TurnoverConfigurationPortfolioAssigneesCellModule","edited_cell_module","user_select_dropdown_module","TurnoverConfigurationProjectManagerCellModule","TurnoverConfigurationStepAssigneesCellModule","TurnoverConfigurationStepAssigneesModule","search_input_module","table_action_buttons_module","table_empty_content_module","skeleton_loader_component","ui_components_module","divider_module","TurnoverConfigurationPipesModule","_angular_core__WEBPACK_IMPORTED_MODULE_3__","ExpandableSectionComponent","_shared_enums_color_palette_enum__WEBPACK_IMPORTED_MODULE_0__","_shared_enums_icon_enum__WEBPACK_IMPORTED_MODULE_1__","clickEvent","clickOverride","observed","isExpanded","_angular_common__WEBPACK_IMPORTED_MODULE_4__","_angular_material_button__WEBPACK_IMPORTED_MODULE_5__","__decorate","_ngneat_until_destroy__WEBPACK_IMPORTED_MODULE_6__","diameterMap","s","m","LoaderComponent","BehaviorSubject","ngOnInit","diameter$","next","size","i0","CommonModule","i1","MatProgressSpinnerModule","i2","RENEWAL_DAYS_COUNT","PROPUP_TENANT_ID","BidApprovalListConst","label","DefaultDebounceTime","NotificationType","EmailNotificationType","EmailNotificationTypeList","BidAccepted","BidRejected","BidSent","TicketCreated","ResidentServiceRequested","ResidentServiceWindowInitialSet","ResidentServiceWindowChanged","ResidentServiceReminder","ResidentServiceAssigneeReminder","ResidentRateYourService","ResidentTicketDeclined","ResidentServiceResolved","ResidentServiceReopened","ResidentServiceWorkflowStatusChanged","TicketUnassigned","TicketAssigned","TurnoverWorkflowStepActivated","TurnoverWorkflowStepAssigned","UserCreated","TurnoverWorkflowStepCommentAdded","TurnoverWorkflowStepCommentMentionOccurred","PriorityChanged","ImportFailed","InspectionResultSent","InspectionNotifyResident","ResidentTicketCancelled","TurnStepScheduleAssigned","TurnStepScheduleRescheduled","TurnStepScheduleUnassigned","TurnStepScheduleInProgress","TurnStepScheduleEod","TurnStepScheduleCanceled","TurnStepScheduleDone","TurnStepScheduleDeclined","InspectionAssigned","InspectionReviewRequired","InspectionSummary","TurnoverDataBidAdded","TurnoverDataBidAccepted","TurnoverDataBidRejected","TurnoverDataBidApproved","TurnoverDataBidDenied","TurnoverDataBidApprovalRequired","TurnoverWithBoardLayoutAssociated","BoardLayoutOrColumnNameChanged","DynamicInspectionCreated","UserFacade","_app_utils_pu_subscribe__WEBPACK_IMPORTED_MODULE_0__","store","notifications","super","select","_main_application_store_selectors_user_selectors__WEBPACK_IMPORTED_MODULE_1__","initPermissions","checkPermissions$","requiredList","config","permissions$","pipe","rxjs_operators__WEBPACK_IMPORTED_MODULE_3__","permissions","every","permissionRequired","includes","some","rxjs_operators__WEBPACK_IMPORTED_MODULE_4__","hasPermission","notify","notifyMessage","warning","checkPermission","rxjs__WEBPACK_IMPORTED_MODULE_5__","permissionLevels","length","rxjs__WEBPACK_IMPORTED_MODULE_6__","subscribe","untilDestroyed","_angular_core__WEBPACK_IMPORTED_MODULE_7__","factory","selectCurrentPortfolio","rxjs__WEBPACK_IMPORTED_MODULE_2__","_dashboards_store_selectors_property_selector_selectors__WEBPACK_IMPORTED_MODULE_0__","_portfolio_store_portfolio_selectors__WEBPACK_IMPORTED_MODULE_1__","portfolios","find","p","isBrowser","window","document","scrollToElement","console","warn","element","getElementById","scrollIntoView","behavior","block","inline","openExternalUrl","url","isNewPage","_is_browser_util__WEBPACK_IMPORTED_MODULE_0__","open","location","href","catchErrorDefault$","val","errMsg","rxjs__WEBPACK_IMPORTED_MODULE_0__","err","error","rxjs__WEBPACK_IMPORTED_MODULE_1__","trackByFn","index","item","options","mark","field","isDeep","JSON","stringify","_angular_core__WEBPACK_IMPORTED_MODULE_2__","AnimationComponent","_app_components_abstract_component_abstract__WEBPACK_IMPORTED_MODULE_0__","cdr","_shared_enums_animation__WEBPACK_IMPORTED_MODULE_1__","getConfig","loop","path","getConfigPath","configPath","animationItem","AnimationModule","ngx_lottie__WEBPACK_IMPORTED_MODULE_2__","CustomDashboardDropdownComponent","PuSubscribable","ngControl","formDirective","FormControl","Subject","valueAccessor","items","getItems","_items","updateGroupedItems","setDefaultItem","dashboardControl","detectChanges","ngDoCheck","control","initControlBase","writeValue","setValue","registerOnChange","fn","onChange","registerOnTouched","onTouched","selectedTab","pendingSelection","onMenuClosed","isMenuOpen","undefined","setTimeout","newValue","groupValue","selectedIndex","findIndex","i","currentValue","matchedIndex","getSelectedIndex","onMenuOpened","fadeTextTurnOn","recalculateTitleWidth$","Date","getTime","groupedItems","nullGroup","filter","groups","Array","from","Set","map","group","MatMenuTrigger","UntilDestroy","CustomDashboardDropdownModule","_angular_material_tabs__WEBPACK_IMPORTED_MODULE_5__","_ui_components_components_icon_icon_component__WEBPACK_IMPORTED_MODULE_1__","_shared_directives_tooltip_directive__WEBPACK_IMPORTED_MODULE_0__","_angular_material_button__WEBPACK_IMPORTED_MODULE_6__","_angular_material_icon__WEBPACK_IMPORTED_MODULE_7__","_angular_material_menu__WEBPACK_IMPORTED_MODULE_8__","_angular_material_divider__WEBPACK_IMPORTED_MODULE_9__","_ui_components_controls_input_input_module__WEBPACK_IMPORTED_MODULE_2__","DropdownModule","_angular_common__WEBPACK_IMPORTED_MODULE_2__","_ui_components_controls_radio_button_dropdown_radio_button_dropdown_module__WEBPACK_IMPORTED_MODULE_0__","_angular_forms__WEBPACK_IMPORTED_MODULE_3__","EditedCellModule","_angular_core__WEBPACK_IMPORTED_MODULE_4__","TableActionButtonsComponent","edit","editEvent","save","saveEvent","deleteEvent","TableActionButtonsModule","_angular_common__WEBPACK_IMPORTED_MODULE_3__","_angular_material_button__WEBPACK_IMPORTED_MODULE_4__","BidManagementService","service","getTurnInfo","jwtToken","get","_widgets_referrer_utils__WEBPACK_IMPORTED_MODULE_1__","comment","post","accept","approve","reject","reason","deny","BoardBuilderService","markAsDone","_widgets_referrer_utils__WEBPACK_IMPORTED_MODULE_2__","reschedule","date","dateWithoutTimezone","_main_application_management_pages_system_configuration_components_timezone_helper__WEBPACK_IMPORTED_MODULE_0__","newDueDate","getTurnStepInfo","rxjs__WEBPACK_IMPORTED_MODULE_3__","data","turnInfo","dateMoveIn","turnStepScheduleInfo","dueDate","postComment","postTurnoverComment","declineTurnover","acceptTurnover","CommentWidgetState","CommonCommentWidgetComponent","route","snapshot","queryParams","jwt","getMainInfo","finalize","info","users","setPredefineInfo","InProgress","commentInput","nativeElement","focus","setupCommentInputListener","errorCode","Fail","scrollToButton","querySelector","error$","inProgress$","sendComment","Success","fromEvent","event","target","tap","ElementRef","FormsModule","i3","MatIconModule","TranslateCodePipe","ReactiveFormsModule","ContentEditableAreaComponent","JustDoneWidgetState","JustDoneWidgetComponent","doneText","getDoneText","doWork","message","_angular_common__WEBPACK_IMPORTED_MODULE_5__","_widgets_pipes_translate_code_pipe__WEBPACK_IMPORTED_MODULE_1__","_ngneat_until_destroy__WEBPACK_IMPORTED_MODULE_7__","localizationDictionary","INVALID_JWT_CANT_VERIFY_SIGNATURE","INVALID_JWT_ASSIGNEE_CHANGED","INVALID_JWT_LINK_IS_EXPIRED","INVALID_JWT_TURN_CANCELLED","INVALID_JWT_TURN_COMPLETED","INVALID_JWT_BOARD_COMPLETED","INVALID_JWT_STEP_WAS_NOT_FOUND","INVALID_JWT_CANT_VERIFY_ISSUER","INVALID_JWT_TASK_DECLINED","INVALID_JWT_TASK_NO_LONGER_EXISTS","INVALID_JWT_TASK_SKIPPED","INVALID_JWT_TASK_PENDING","INVALID_JWT_TASK_DELETED","INVALID_JWT_TASK_COMPLETED","INVALID_JWT_TASK_AMOUNT_ONLY","transform","code","values","localizedText","forEach","v","replace","RegExp","pure","getReferrer","referrer","originalLocation","trim","OpenApiService","handler","http","_angular_common_http__WEBPACK_IMPORTED_MODULE_1__","composeRoute","_environments_environment__WEBPACK_IMPORTED_MODULE_0__","body","generateHeaders","update","put","upload","file","formData","FormData","append","environmentUrl","headers","e","prototype","Error","name","r","atob","bind","t","String","n","o","a","c","charAt","fromCharCode","indexOf","header","parse","decodeURIComponent","charCodeAt","toString","toUpperCase","split"],"sourceRoot":"webpack:///","sources":["./src/app/modules/main-application/boards/store/boards.selectors.ts","./src/app/modules/main-application/inspections/components/extend-expiration-modal/extend-expiration-modal.component.ts","./src/app/modules/main-application/inspections/components/extend-expiration-modal/extend-expiration-modal.component.html","./src/app/modules/main-application/management/pages/management-card/management-card.component.html","./src/app/modules/main-application/management/pages/management-card/management-card.component.ts","./src/app/modules/main-application/management/pages/portfolio/components/portfolio-header/portfolio-header.component.ts","./src/app/modules/main-application/management/pages/portfolio/components/portfolio-header/portfolio-header.component.html","./src/app/modules/main-application/management/pages/portfolio/components/portfolio-header/portfolio-header.module.ts","./src/app/modules/main-application/management/pages/portfolio/components/unit-details/components/unit-details-description-section/unit-details-description-section.module.ts","./src/app/modules/main-application/management/pages/portfolio/components/unit-details/components/unit-details-inspections/unit-details-inspections.module.ts","./src/app/modules/main-application/management/pages/portfolio/components/unit-details/components/unit-details-pictures-section/unit-details-pictures-section.module.ts","./src/app/modules/main-application/management/pages/portfolio/components/unit-details/components/unit-details-property-section/unit-details-property-section.module.ts","./src/app/modules/main-application/management/pages/portfolio/components/unit-details/unit-details.module.ts","./src/app/modules/main-application/management/pages/system-configuration/store/system-configuration.selectors.ts","./src/app/modules/main-application/management/pages/turnover-configuration/components/turnover-configuration-step-assignees/store/selectors/turnover-configuration-step-assignees.selectors.ts","./src/app/modules/main-application/management/pages/turnover-configuration/components/turnover-configuration-portfolio-assignees-cell/turnover-configuration-portfolio-assignees-cell.module.ts","./src/app/modules/main-application/management/pages/turnover-configuration/components/turnover-configuration-project-manager-cell/turnover-configuration-project-manager-cell.module.ts","./src/app/modules/main-application/management/pages/turnover-configuration/components/turnover-configuration-step-assignees-cell/turnover-configuration-step-assignees-cell.module.ts","./src/app/modules/main-application/management/pages/turnover-configuration/components/turnover-configuration-step-assignees/turnover-configuration-step-assignees.module.ts","./src/app/modules/main-application/management/pages/turnover-configuration/pipes/turnover-configuration-pipes.module.ts","./src/app/modules/main-application/shared/expandable-setting/expandable-section.component.html","./src/app/modules/main-application/shared/expandable-setting/expandable-section.component.ts","./src/app/modules/shared/components/loader/loader.component.ts","./src/app/modules/shared/components/loader/loader.component.html","./src/app/modules/shared/constants/app-config.const.ts","./src/app/modules/shared/constants/bid-approval-list.const.ts","./src/app/modules/shared/constants/default-operators.constant.ts","./src/app/modules/shared/enums/notification-type.ts","./src/app/modules/shared/facades/user.facade.ts","./src/app/modules/shared/observables/select-current-portfolio.ts","./src/app/modules/shared/utils/dom/is-browser.util.ts","./src/app/modules/shared/utils/dom/scroll-to-element.util.ts","./src/app/modules/shared/utils/dom/window.util.ts","./src/app/modules/shared/utils/rxjs/catch-error-default.rxjs.util.ts","./src/app/modules/shared/utils/track-by-fn.ts","./src/app/modules/ui-components/components/animation/animation.component.html","./src/app/modules/ui-components/components/animation/animation.component.ts","./src/app/modules/ui-components/components/animation/animation.module.ts","./src/app/modules/ui-components/components/custom-dashboard-dropdown/custom-dashboard-dropdown.component.html","./src/app/modules/ui-components/components/custom-dashboard-dropdown/custom-dashboard-dropdown.component.ts","./src/app/modules/ui-components/components/custom-dashboard-dropdown/custom-dashboard-dropdown.module.ts","./src/app/modules/ui-components/components/dropdown/dropdown.module.ts","./src/app/modules/ui-components/components/edited-cell/edited-cell.module.ts","./src/app/modules/ui-components/components/table-action-buttons/table-action-buttons.component.html","./src/app/modules/ui-components/components/table-action-buttons/table-action-buttons.component.ts","./src/app/modules/ui-components/components/table-action-buttons/table-action-buttons.module.ts","./src/app/modules/widgets/bid-management/bid-management.service.ts","./src/app/modules/widgets/board-builder/board-builder.service.ts","./src/app/modules/widgets/common-abstract-widget/common-comment-widget/common-comment-widget.component.html","./src/app/modules/widgets/common-abstract-widget/common-comment-widget/common-comment-widget.component.ts","./src/app/modules/widgets/common-abstract-widget/just-done-widget/just-done-widget.component.ts","./src/app/modules/widgets/common-abstract-widget/just-done-widget/just-done-widget.component.html","./src/app/modules/widgets/pipes/translate-code.pipe.ts","./src/app/modules/widgets/referrer.utils.ts","./src/app/modules/widgets/services/open-api.service.ts","./node_modules/jwt-decode/build/jwt-decode.esm.js"],"sourcesContent":["import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromBoards from './boards.reducer';\nimport { State } from './boards.reducer';\n\nexport const selectBoardsState = createFeatureSelector(fromBoards.boardsFeatureKey);\nexport const selectBoardList = createSelector(selectBoardsState, state => state.boards);\nexport const selectBoardListLoading = createSelector(selectBoardsState, state => state.boardsLoading);\nexport const selectTemplatesUsage = createSelector(selectBoardsState, (state: State) => state.templatesUsage);\n\nexport const selectBoardSummaryStats = createSelector(selectBoardsState, state => state.boardSummaryStats);\nexport const selectBoardSummaryDetails = createSelector(selectBoardsState, state => state.boardSummaryDetails);\nexport const selectBoardSummaryLoading = createSelector(selectBoardsState, state => state.boardSummaryLoading);\nexport const selectBoardSummaryError = createSelector(selectBoardsState, state => state.boardSummaryError);\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport * as moment from 'moment';\n\nimport { TimezoneService } from '@main-application/management/pages/system-configuration/components/date-time-configuration/timezone.service';\nimport { DateDropdownModule } from '@ui-components/controls/date-dropdown/date-dropdown.module';\n\n@Component({\n standalone: true,\n selector: 'app-extend-expiration-modal',\n templateUrl: './extend-expiration-modal.component.html',\n styleUrls: ['./extend-expiration-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, MatDialogModule, MatButtonModule, DateDropdownModule, ReactiveFormsModule],\n})\nexport class ExtendExpirationModalComponent {\n today = this.timezoneService.getCurrentDateOnly();\n dateControl = new FormControl(\n moment(this.timezoneService.getCurrentDateOnly()).add(2, 'days').toDate(),\n Validators.required\n );\n\n constructor(\n public dialogRef: MatDialogRef,\n private timezoneService: TimezoneService\n ) {}\n\n submit(): void {\n if (this.dateControl.invalid) {\n this.dateControl.markAllAsTouched();\n return;\n }\n\n this.dialogRef.close(this.dateControl.value);\n }\n}\n","
\n
\n
Extend Expiration
\n
\n \n
\n \n
\n
\n \n \n \n \n
\n","
\n \n \n\n
\n \n
\n\n \n
\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { FadeTextComponent } from '@shared/components/ellipsis-one-row/fade-text.component';\nimport { StopPropagationDirective } from '@shared/directives/stop-propagation.directive';\nimport { EColorPalette } from '@shared/enums/color-palette.enum';\nimport { EIcon } from '@shared/enums/icon.enum';\nimport { MenuSectionItem } from '@shared/interfaces/menu-config.interface';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\n\n@Component({\n selector: 'app-management-card',\n templateUrl: './management-card.component.html',\n styleUrls: ['./management-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, IconComponent, StopPropagationDirective, FadeTextComponent],\n})\nexport class ManagementCardComponent {\n @Input() sectionItem: MenuSectionItem;\n @Input() hasEditRight = false;\n @Input() hasDelete = false;\n @Output() add = new EventEmitter();\n @Output() delete = new EventEmitter();\n\n private router = inject(Router);\n\n onClick() {\n if (this.sectionItem.urlPath) {\n this.router.navigate([this.sectionItem.urlPath], { queryParamsHandling: 'merge' });\n }\n }\n\n onAdd(): void {\n this.add.emit();\n }\n\n deleteBoard() {\n this.hasDelete && this.delete.emit(this.sectionItem.id);\n }\n\n readonly EColorPalette = EColorPalette;\n readonly EIcon = EIcon;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'app-portfolio-header',\n templateUrl: './portfolio-header.component.html',\n styleUrls: ['./portfolio-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PortfolioHeaderComponent {}\n","
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { PortfolioHeaderComponent } from './portfolio-header.component';\n\n@NgModule({\n declarations: [PortfolioHeaderComponent],\n imports: [CommonModule],\n exports: [PortfolioHeaderComponent],\n})\nexport class PortfolioHeaderModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { InputAreaModule } from '@ui-components/controls/input-area/input-area.module';\nimport { NumberInputModule } from '@ui-components/controls/number-input/number-input.module';\nimport { RadioButtonDropdownModule } from '@ui-components/controls/radio-button-dropdown/radio-button-dropdown.module';\n\nimport { UnitDetailsDescriptionSectionComponent } from './unit-details-description-section.component';\n\n@NgModule({\n declarations: [UnitDetailsDescriptionSectionComponent],\n exports: [UnitDetailsDescriptionSectionComponent],\n imports: [\n CommonModule,\n InputAreaModule,\n ReactiveFormsModule,\n PipesModule,\n RadioButtonDropdownModule,\n MatProgressSpinnerModule,\n NumberInputModule,\n ],\n})\nexport class UnitDetailsDescriptionSectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\n\nimport { UnitDetailsInspectionsComponent } from './unit-details-inspections.component';\n\n@NgModule({\n declarations: [UnitDetailsInspectionsComponent],\n imports: [\n CommonModule,\n IconComponent,\n MatButtonModule,\n MatIconModule,\n MatSortModule,\n MatTableModule,\n MatDividerModule,\n MatMenuModule,\n ],\n exports: [UnitDetailsInspectionsComponent],\n})\nexport class UnitDetailsInspectionsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { AttachmentModule } from '@ui-components/components/attachment/attachment.module';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\nimport { PictureModule } from '@ui-components/components/picture/picture.module';\nimport { InputFileModule } from '@ui-components/controls/input-file/input-file.module';\n\nimport { UnitDetailsPicturesSectionComponent } from './unit-details-pictures-section.component';\n\n@NgModule({\n declarations: [UnitDetailsPicturesSectionComponent],\n exports: [UnitDetailsPicturesSectionComponent],\n imports: [\n CommonModule,\n IconComponent,\n MatButtonModule,\n AttachmentModule,\n InputFileModule,\n ReactiveFormsModule,\n PictureModule,\n MatProgressSpinnerModule,\n ],\n})\nexport class UnitDetailsPicturesSectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\nimport { InputAreaModule } from '@ui-components/controls/input-area/input-area.module';\nimport { RadioButtonDropdownModule } from '@ui-components/controls/radio-button-dropdown/radio-button-dropdown.module';\n\nimport { UnitDetailsPropertySectionComponent } from './unit-details-property-section.component';\n\n@NgModule({\n declarations: [UnitDetailsPropertySectionComponent],\n exports: [UnitDetailsPropertySectionComponent],\n imports: [CommonModule, IconComponent, InputAreaModule, ReactiveFormsModule, PipesModule, RadioButtonDropdownModule],\n})\nexport class UnitDetailsPropertySectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { DashboardUserHeaderModule } from '@dashboards/components/dashboard-user-header/dashboard-user-header.module';\nimport { UnitDetailsDescriptionSectionModule } from '@portfolio/components/unit-details/components/unit-details-description-section/unit-details-description-section.module';\nimport { UnitDetailsInspectionsModule } from '@portfolio/components/unit-details/components/unit-details-inspections/unit-details-inspections.module';\nimport { UnitDetailsPicturesSectionModule } from '@portfolio/components/unit-details/components/unit-details-pictures-section/unit-details-pictures-section.module';\nimport { UnitDetailsPropertySectionModule } from '@portfolio/components/unit-details/components/unit-details-property-section/unit-details-property-section.module';\nimport { TooltipDirectiveModule } from '@shared/directives/tooltip.directive';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { DashboardContainerModule } from '@ui-components/components/dashboard-container/dashboard-container.module';\nimport { EmptyDataModule } from '@ui-components/components/empty-data/empty-data.module';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\nimport { InputModule } from '@ui-components/controls/input/input.module';\nimport { InputAreaModule } from '@ui-components/controls/input-area/input-area.module';\nimport { RadioButtonDropdownModule } from '@ui-components/controls/radio-button-dropdown/radio-button-dropdown.module';\n\nimport { UnitDetailsComponent } from './unit-details.component';\nimport { PortfolioHeaderModule } from '../portfolio-header/portfolio-header.module';\n\n@NgModule({\n declarations: [UnitDetailsComponent],\n imports: [\n CommonModule,\n PortfolioHeaderModule,\n InputModule,\n IconComponent,\n MatButtonModule,\n MatTableModule,\n MatSortModule,\n EmptyDataModule,\n DashboardContainerModule,\n DashboardUserHeaderModule,\n ReactiveFormsModule,\n InputAreaModule,\n PipesModule,\n UnitDetailsPicturesSectionModule,\n UnitDetailsPropertySectionModule,\n UnitDetailsDescriptionSectionModule,\n MatCheckboxModule,\n TooltipDirectiveModule,\n MatProgressSpinnerModule,\n FormsModule,\n UnitDetailsInspectionsModule,\n RadioButtonDropdownModule,\n ],\n})\nexport class UnitDetailsModule {}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromSystemConfiguration from './system-configuration.reducer';\n\nexport const selectSystemConfigurationState = createFeatureSelector(\n fromSystemConfiguration.systemConfigurationFeatureKey\n);\n\nexport const selectSystemConfig = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.systemConfig\n);\n\nexport const selectSystemConfigUpdateInProgress = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.updateSystemInProgress\n);\n\nexport const selectSystemConfigLoading = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.systemConfigLoading\n);\n\nexport const selectChatHooksChannels = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.chatHooksChannels\n);\n\nexport const selectTimerReportLoading = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.timerReportLoading\n);\n\nexport const selectTimerReport = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.timerReport\n);\n\nexport const selectExpandedSections = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.expandedSections\n);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromResponsibleParties from '../reducers/turnover-configuration-step-assignees.reducer';\n\nexport const selectResponsiblePartiesState = createFeatureSelector(\n fromResponsibleParties.reponsiblePartiesFeatureKey\n);\n\nexport const selectResponsibleParties = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.responsibleParties\n);\n\nexport const selectPortfolioResponsibleParties = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.portfolioResponsibleParties\n);\n\nexport const selectResponsiblePartiesLoading = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.responsiblePartiesLoading\n);\n\nexport const selectAllStepAssigneeList = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.allStepAssigneeList\n);\n\nexport const selectUpdateResponsiblePartiesOngoing = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.updateResponsiblePartiesOngoing\n);\nexport const selectUpdateResponsiblePartiesStatus = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.updateResponsiblePartiesStatus\n);\nexport const selectUpdatedResponsibleParties = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.updatedResponsibleParties\n);\n\nexport const selectCreateResponsiblePartiesOngoing = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.createResponsiblePartiesOngoing\n);\nexport const selectCreateResponsiblePartiesStatus = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.createResponsiblePartiesStatus\n);\n\nexport const selectEditedCellUUId = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.editedCellUUId\n);\n\nexport const selectActiveUsers = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.allUsers\n);\n\nexport const selectPropertyAssignees = createSelector(\n selectResponsiblePartiesState,\n responsiblePartiesState => responsiblePartiesState.propertyUsers\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { TooltipDirectiveModule } from '@shared/directives/tooltip.directive';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { EditedCellModule } from '@ui-components/components/edited-cell/edited-cell.module';\nimport { UserSelectDropdownModule } from '@ui-components/controls/user-select-dropdown/user-select-dropdown.module';\n\nimport { TurnoverConfigurationPortfolioAssigneesCellComponent } from './turnover-configuration-portfolio-assignees-cell.component';\n\n@NgModule({\n declarations: [TurnoverConfigurationPortfolioAssigneesCellComponent],\n exports: [TurnoverConfigurationPortfolioAssigneesCellComponent],\n imports: [\n CommonModule,\n PipesModule,\n EditedCellModule,\n UserSelectDropdownModule,\n ReactiveFormsModule,\n TooltipDirectiveModule,\n MatCheckboxModule,\n ],\n})\nexport class TurnoverConfigurationPortfolioAssigneesCellModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { EditedCellModule } from '@ui-components/components/edited-cell/edited-cell.module';\nimport { UserSelectDropdownModule } from '@ui-components/controls/user-select-dropdown/user-select-dropdown.module';\n\nimport { TurnoverConfigurationProjectManagerCellComponent } from './turnover-configuration-project-manager-cell.component';\n\n@NgModule({\n declarations: [TurnoverConfigurationProjectManagerCellComponent],\n exports: [TurnoverConfigurationProjectManagerCellComponent],\n imports: [CommonModule, ReactiveFormsModule, EditedCellModule, UserSelectDropdownModule, PipesModule],\n})\nexport class TurnoverConfigurationProjectManagerCellModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { TooltipDirectiveModule } from '@shared/directives/tooltip.directive';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { EditedCellModule } from '@ui-components/components/edited-cell/edited-cell.module';\nimport { UserSelectDropdownModule } from '@ui-components/controls/user-select-dropdown/user-select-dropdown.module';\n\nimport { TurnoverConfigurationStepAssigneesCellComponent } from './turnover-configuration-step-assignees-cell.component';\n\n@NgModule({\n declarations: [TurnoverConfigurationStepAssigneesCellComponent],\n exports: [TurnoverConfigurationStepAssigneesCellComponent],\n imports: [\n CommonModule,\n PipesModule,\n EditedCellModule,\n UserSelectDropdownModule,\n ReactiveFormsModule,\n TooltipDirectiveModule,\n MatCheckboxModule,\n ],\n})\nexport class TurnoverConfigurationStepAssigneesCellModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { DashboardUserHeaderModule } from '@dashboards/components/dashboard-user-header/dashboard-user-header.module';\nimport { TurnoverConfigurationPortfolioAssigneesCellModule } from '@main-application/management/pages/turnover-configuration/components/turnover-configuration-portfolio-assignees-cell/turnover-configuration-portfolio-assignees-cell.module';\nimport { TurnoverConfigurationProjectManagerCellModule } from '@main-application/management/pages/turnover-configuration/components/turnover-configuration-project-manager-cell/turnover-configuration-project-manager-cell.module';\nimport { TurnoverConfigurationStepAssigneeComponent } from '@main-application/management/pages/turnover-configuration/components/turnover-configuration-step-assignees/turnover-configuration-step-assignees.component';\nimport { TurnoverConfigurationStepAssigneesCellModule } from '@main-application/management/pages/turnover-configuration/components/turnover-configuration-step-assignees-cell/turnover-configuration-step-assignees-cell.module';\nimport { FadeTextOnWidthDirective } from '@shared/directives/fade-text-on-width.directive';\nimport { TooltipDirectiveModule } from '@shared/directives/tooltip.directive';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { DashboardContainerModule } from '@ui-components/components/dashboard-container/dashboard-container.module';\nimport { DividerModule } from '@ui-components/components/divider/divider.module';\nimport { EditedCellModule } from '@ui-components/components/edited-cell/edited-cell.module';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\nimport { SearchInputModule } from '@ui-components/components/search-input/search-input.module';\nimport { SkeletonLoaderComponent } from '@ui-components/components/skeleton-loader/skeleton-loader.component';\nimport { TableActionButtonsModule } from '@ui-components/components/table-action-buttons/table-action-buttons.module';\nimport { TableEmptyContentModule } from '@ui-components/components/table-empty-content/table-empty-content.module';\nimport { RadioButtonDropdownModule } from '@ui-components/controls/radio-button-dropdown/radio-button-dropdown.module';\nimport { UserSelectDropdownModule } from '@ui-components/controls/user-select-dropdown/user-select-dropdown.module';\nimport { UiComponentsModule } from '@ui-components/ui-components.module';\n\n@NgModule({\n declarations: [TurnoverConfigurationStepAssigneeComponent],\n imports: [\n CommonModule,\n DashboardContainerModule,\n DashboardUserHeaderModule,\n SearchInputModule,\n ReactiveFormsModule,\n MatTableModule,\n MatSortModule,\n EditedCellModule,\n UserSelectDropdownModule,\n PipesModule,\n TableActionButtonsModule,\n TableEmptyContentModule,\n IconComponent,\n MatButtonModule,\n TurnoverConfigurationStepAssigneesCellModule,\n SkeletonLoaderComponent,\n UiComponentsModule,\n MatCheckboxModule,\n TooltipDirectiveModule,\n TurnoverConfigurationPortfolioAssigneesCellModule,\n DividerModule,\n RadioButtonDropdownModule,\n FormsModule,\n TurnoverConfigurationProjectManagerCellModule,\n FadeTextOnWidthDirective,\n ],\n exports: [TurnoverConfigurationStepAssigneeComponent],\n})\nexport class TurnoverConfigurationStepAssigneesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FieldConfigurationPipe } from './field-configuration.pipe';\nimport { IsFieldActivePipe } from './is-field-active.pipe';\nimport { IsFieldRequiredPipe } from './is-field-required.pipe';\nimport { ShouldShowSectionPipe } from './should-show-section.pipe';\n\n@NgModule({\n declarations: [ShouldShowSectionPipe, FieldConfigurationPipe, IsFieldRequiredPipe, IsFieldActivePipe],\n imports: [CommonModule],\n exports: [ShouldShowSectionPipe, FieldConfigurationPipe, IsFieldRequiredPipe, IsFieldActivePipe],\n})\nexport class TurnoverConfigurationPipesModule {}\n","\n
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { UntilDestroy } from '@ngneat/until-destroy';\n\nimport { EColorPalette } from '@shared/enums/color-palette.enum';\nimport { EIcon } from '@shared/enums/icon.enum';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\n\n@UntilDestroy()\n@Component({\n selector: 'app-expandable-section',\n templateUrl: './expandable-section.component.html',\n styleUrls: ['./expandable-section.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, IconComponent, MatButtonModule],\n})\nexport class ExpandableSectionComponent {\n EColorPalette = EColorPalette;\n EIcon = EIcon;\n\n @Input() isExpanded = false;\n @Input() header: string;\n @Input() displayExpandIcon = true;\n\n @Output() clickOverride = new EventEmitter();\n @Output() doubleClick = new EventEmitter();\n\n clickEvent() {\n if (this.clickOverride.observed) {\n this.clickOverride.emit();\n } else {\n this.isExpanded = !this.isExpanded;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { BehaviorSubject } from 'rxjs';\n\nconst diameterMap = {\n s: 30,\n m: 40,\n};\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, MatProgressSpinnerModule],\n})\nexport class LoaderComponent implements OnInit {\n @Input() size: 's' | 'm' = 's';\n @Input() minHeight: number = null;\n\n diameter$ = new BehaviorSubject(30); // TODO change to signal when angular 16+\n\n ngOnInit() {\n this.diameter$.next(diameterMap[this.size]);\n }\n}\n","
\n \n
\n","export const RENEWAL_DAYS_COUNT = 90;\nexport const PROPUP_TENANT_ID = 1;\n","import { IRadioButtonOption } from '@shared/interfaces/radio-button-option.interface';\n\nexport const BidApprovalListConst: IRadioButtonOption[] = [\n {\n label: '$0',\n value: 0,\n },\n {\n label: '$250',\n value: 250,\n },\n {\n label: '$500',\n value: 500,\n },\n {\n label: '$1000',\n value: 1000,\n },\n {\n label: '$2000',\n value: 2000,\n },\n];\n","export const DefaultDebounceTime = 300;\n","export enum NotificationType {\n Email,\n Web,\n}\n\nexport enum EmailNotificationType {\n BidAccepted,\n BidRejected,\n BidSent,\n TicketCreated,\n ResidentServiceRequested,\n ResidentServiceWindowInitialSet,\n ResidentServiceWindowChanged,\n ResidentServiceReminder,\n ResidentServiceAssigneeReminder,\n ResidentRateYourService,\n ResidentTicketDeclined,\n ResidentServiceResolved,\n ResidentServiceReopened,\n ResidentServiceWorkflowStatusChanged,\n TicketUnassigned,\n TicketAssigned,\n TurnoverWorkflowStepActivated,\n TurnoverWorkflowStepAssigned,\n UserCreated,\n TurnoverWorkflowStepCommentAdded,\n TurnoverWorkflowStepCommentMentionOccurred,\n PriorityChanged,\n ImportFailed,\n InspectionResultSent,\n InspectionNotifyResident,\n ResidentTicketCancelled,\n TurnStepScheduleAssigned,\n TurnStepScheduleRescheduled,\n TurnStepScheduleUnassigned,\n TurnStepScheduleInProgress,\n TurnStepScheduleEod,\n TurnStepScheduleCanceled,\n TurnStepScheduleDone,\n TurnStepScheduleDeclined,\n InspectionAssigned,\n InspectionReviewRequired,\n InspectionSummary,\n TurnoverDataBidAdded,\n TurnoverDataBidAccepted,\n TurnoverDataBidRejected,\n TurnoverDataBidApproved,\n TurnoverDataBidDenied,\n TurnoverDataBidApprovalRequired,\n TurnoverWithBoardLayoutAssociated,\n BoardLayoutOrColumnNameChanged,\n DynamicInspectionCreated,\n}\n\nexport const EmailNotificationTypeList = [\n {\n value: EmailNotificationType.BidAccepted,\n label: 'BidAccepted',\n },\n {\n value: EmailNotificationType.BidRejected,\n label: 'BidRejected',\n },\n {\n value: EmailNotificationType.BidSent,\n label: 'BidSent',\n },\n {\n value: EmailNotificationType.TicketCreated,\n label: 'TicketCreated',\n },\n {\n value: EmailNotificationType.ResidentServiceRequested,\n label: 'ResidentServiceRequested',\n },\n {\n value: EmailNotificationType.ResidentServiceWindowInitialSet,\n label: 'ResidentServiceWindowInitialSet',\n },\n {\n value: EmailNotificationType.ResidentServiceWindowChanged,\n label: 'ResidentServiceWindowChanged',\n },\n {\n value: EmailNotificationType.ResidentServiceReminder,\n label: 'ResidentServiceReminder',\n },\n {\n value: EmailNotificationType.ResidentServiceAssigneeReminder,\n label: 'ResidentServiceAssigneeReminder',\n },\n {\n value: EmailNotificationType.ResidentRateYourService,\n label: 'ResidentRateYourService',\n },\n {\n value: EmailNotificationType.ResidentTicketDeclined,\n label: 'ResidentTicketDeclined',\n },\n {\n value: EmailNotificationType.ResidentServiceResolved,\n label: 'ResidentServiceResolved',\n },\n {\n value: EmailNotificationType.ResidentServiceReopened,\n label: 'ResidentServiceReopened',\n },\n {\n value: EmailNotificationType.ResidentServiceWorkflowStatusChanged,\n label: 'ResidentServiceWorkflowStatusChanged',\n },\n {\n value: EmailNotificationType.TicketUnassigned,\n label: 'TicketUnassigned',\n },\n {\n value: EmailNotificationType.TicketAssigned,\n label: 'TicketAssigned',\n },\n {\n value: EmailNotificationType.TurnoverWorkflowStepActivated,\n label: 'TurnoverWorkflowStepActivated',\n },\n {\n value: EmailNotificationType.TurnoverWorkflowStepAssigned,\n label: 'TurnoverWorkflowStepAssigned',\n },\n {\n value: EmailNotificationType.UserCreated,\n label: 'UserCreated',\n },\n {\n value: EmailNotificationType.TurnoverWorkflowStepCommentAdded,\n label: 'TurnoverWorkflowStepCommentAdded',\n },\n {\n value: EmailNotificationType.TurnoverWorkflowStepCommentMentionOccurred,\n label: 'TurnoverWorkflowStepCommentMentionOccurred',\n },\n {\n value: EmailNotificationType.PriorityChanged,\n label: 'PriorityChanged',\n },\n {\n value: EmailNotificationType.ImportFailed,\n label: 'ImportFailed',\n },\n {\n value: EmailNotificationType.InspectionResultSent,\n label: 'InspectionResultSent',\n },\n {\n value: EmailNotificationType.InspectionNotifyResident,\n label: 'InspectionNotifyResident',\n },\n {\n value: EmailNotificationType.ResidentTicketCancelled,\n label: 'ResidentTicketCancelled',\n },\n {\n value: EmailNotificationType.TurnStepScheduleAssigned,\n label: 'TurnStepScheduleAssigned',\n },\n {\n value: EmailNotificationType.TurnStepScheduleRescheduled,\n label: 'TurnStepScheduleRescheduled',\n },\n {\n value: EmailNotificationType.TurnStepScheduleUnassigned,\n label: 'TurnStepScheduleUnassigned',\n },\n {\n value: EmailNotificationType.TurnStepScheduleInProgress,\n label: 'TurnStepScheduleInProgress',\n },\n {\n value: EmailNotificationType.TurnStepScheduleEod,\n label: 'TurnStepScheduleEod',\n },\n {\n value: EmailNotificationType.TurnStepScheduleCanceled,\n label: 'TurnStepScheduleCanceled',\n },\n {\n value: EmailNotificationType.TurnStepScheduleDone,\n label: 'TurnStepScheduleDone',\n },\n {\n value: EmailNotificationType.TurnStepScheduleDeclined,\n label: 'TurnStepScheduleDeclined',\n },\n {\n value: EmailNotificationType.InspectionAssigned,\n label: 'InspectionAssigned',\n },\n {\n value: EmailNotificationType.InspectionReviewRequired,\n label: 'InspectionReviewRequired',\n },\n {\n value: EmailNotificationType.InspectionSummary,\n label: 'InspectionSummary',\n },\n {\n value: EmailNotificationType.TurnoverDataBidAdded,\n label: 'TurnoverDataBidAdded',\n },\n {\n value: EmailNotificationType.TurnoverDataBidAccepted,\n label: 'TurnoverDataBidAccepted',\n },\n {\n value: EmailNotificationType.TurnoverDataBidRejected,\n label: 'TurnoverDataBidRejected',\n },\n {\n value: EmailNotificationType.TurnoverDataBidApproved,\n label: 'TurnoverDataBidApproved',\n },\n {\n value: EmailNotificationType.TurnoverDataBidDenied,\n label: 'TurnoverDataBidDenied',\n },\n {\n value: EmailNotificationType.TurnoverDataBidApprovalRequired,\n label: 'TurnoverDataBidApprovalRequired',\n },\n {\n value: EmailNotificationType.TurnoverWithBoardLayoutAssociated,\n label: 'TurnoverWithBoardLayoutAssociated',\n },\n {\n value: EmailNotificationType.BoardLayoutOrColumnNameChanged,\n label: 'BoardLayoutOrColumnNameChanged',\n },\n {\n value: EmailNotificationType.DynamicInspectionCreated,\n label: 'DynamicInspectionCreated',\n },\n];\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable, filter, take } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\nimport { PuSubscribable } from '@app/utils/pu-subscribe';\nimport { IUserStateTree } from '@main-application/store/reducers/user.reducer';\nimport {\n selectIsAuthenticated,\n selectSelectedUser,\n selectSelectedUserLoading,\n selectTenantData,\n selectUserData,\n selectUserGeneralRole,\n selectUserId,\n selectUserName,\n selectUserPermissionLevel,\n} from '@main-application/store/selectors/user.selectors';\nimport { SnackbarService } from '@ui-components/components/customized-snackbar/snackbar.service';\n\nimport { PermissionLevelType } from '../enums/permission-level.enum';\nimport { TenantData } from '../interfaces/tenant-data';\nimport { UserData } from '../interfaces/user-data';\nimport { RestUserModel } from '../interfaces/user.interface';\n\ninterface ICheckPermissionsConfig {\n every?: boolean;\n notify?: boolean;\n notifyMessage?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UserFacade extends PuSubscribable {\n permissions: PermissionLevelType[] = [];\n userData$: Observable = this.store.select(selectUserData);\n userId$: Observable = this.store.select(selectUserId);\n userName$: Observable = this.store.select(selectUserName);\n userGeneralRole$: Observable<'superUser' | string> = this.store.select(selectUserGeneralRole);\n permissions$: Observable = this.store.select(selectUserPermissionLevel);\n isAuthenticated$: Observable = this.store.select(selectIsAuthenticated);\n selectedUser$: Observable = this.store.select(selectSelectedUser);\n selectedUserLoading$: Observable = this.store.select(selectSelectedUserLoading);\n tenantData$: Observable = this.store.select(selectTenantData);\n\n constructor(private store: Store, private notifications: SnackbarService) {\n super();\n this.initPermissions();\n }\n\n checkPermissions$(requiredList: PermissionLevelType[], config?: ICheckPermissionsConfig): Observable {\n return this.permissions$.pipe(\n map(permissions => {\n return config?.every\n ? requiredList.every(permissionRequired => permissions.includes(permissionRequired))\n : requiredList.some(permissionRequired => permissions.includes(permissionRequired));\n }),\n tap(hasPermission => {\n !hasPermission &&\n (config?.notify || config?.notifyMessage) &&\n this.notifications.warning(\n config?.notifyMessage ?? 'Access denied: You do not have the required permissions.'\n );\n })\n );\n }\n\n checkPermission(permissionRequired: PermissionLevelType, notify = true): boolean {\n const hasPermission = this.permissions.includes(permissionRequired);\n if (!hasPermission && notify) {\n this.notifications.warning('Access denied: You do not have the required permissions.');\n }\n return hasPermission;\n }\n\n private initPermissions(): void {\n this.permissions$\n .pipe(\n filter((permissionLevels: PermissionLevelType[]) => !!permissionLevels?.length),\n take(1),\n tap(permissions => (this.permissions = permissions))\n )\n .subscribe()\n .untilDestroyed(this);\n }\n}\n","import { Store } from '@ngrx/store';\nimport { combineLatest } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { selectSelectedPortfolioId } from '@dashboards/store/selectors/property-selector.selectors';\nimport { selectPortfolios } from '@portfolio/store/portfolio.selectors';\n\nexport const selectCurrentPortfolio = (store: Store<{}>) =>\n combineLatest([store.select(selectSelectedPortfolioId), store.select(selectPortfolios)]).pipe(\n filter(([id, portfolios]) => !!id && !!portfolios?.length),\n map(([id, portfolios]) => {\n return portfolios.find(p => p.id === id);\n }),\n filter(p => !!p)\n );\n","export function isBrowser(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nexport function isSSR(): boolean {\n return typeof window === 'undefined' || typeof document === 'undefined';\n}\n","export function scrollToElement(id: string): void {\n if (!window || !document) {\n console.warn(`scrollToElement was called on the server. This operation is not supported in SSR.`);\n return;\n }\n\n const element = document.getElementById(id);\n if (!element) {\n console.warn(`There is no element on the page with id ${id}`);\n return;\n }\n element.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n}\n","import { isBrowser } from './is-browser.util';\n\nexport function openExternalUrl(url: string, isNewPage = true): void {\n if (!isBrowser()) return;\n isNewPage ? window.open(url, '_blank') : (window.location.href = url);\n}\n","import { OperatorFunction, catchError, of } from 'rxjs';\n\nexport function catchErrorDefault$(val?: P, errMsg?: string): OperatorFunction {\n return catchError(err => {\n errMsg && console.error('CatchErrorDefault', err, errMsg);\n return of(val !== undefined ? val : err);\n });\n}\n","export interface ITrackByFn {\n isDeep?: boolean;\n field?: string;\n}\n\nexport function trackByFn>(\n index: number,\n item: T,\n options?: ITrackByFn\n): number | string {\n const field = options?.field ?? 'id';\n const mark = `${item[field] ?? index}`;\n\n return options?.isDeep ? JSON.stringify(item) : mark;\n}\n\n/**\n simple: trackById = trackByFn;\n with arguments: trackByDeep = (index: number, item: RestTurnoverTaskModel) => trackByFn(index, item, { isDeep: true });\n*/\n","
\n \n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { AnimationOptions } from 'ngx-lottie';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\nimport { Animation } from '@shared/enums/animation';\n\n@Component({\n selector: 'app-animation',\n templateUrl: './animation.component.html',\n styleUrls: ['./animation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnimationComponent extends ComponentAbstract implements OnInit {\n options: AnimationOptions;\n\n @Input() animationItem: Animation = Animation.WHITE_LOGO;\n @Input() attrWidth = '200px';\n @Input() attrHeight = '200px';\n @Input() loop = true;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n ngOnInit(): void {\n this.options = this.getConfig();\n }\n\n private getConfig(): AnimationOptions {\n return { loop: this.loop, path: this.getConfigPath() };\n }\n\n private getConfigPath(): string {\n const configPath = '../../../../../assets/animations/';\n switch (this.animationItem) {\n case Animation.WHITE_LOGO: {\n return `${configPath}logo_white.json`;\n }\n case Animation.BLACK_LOGO: {\n return `${configPath}logo_black.json`;\n }\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LottieModule } from 'ngx-lottie';\n\nimport { AnimationComponent } from './animation.component';\n\n@NgModule({\n declarations: [AnimationComponent],\n imports: [CommonModule, LottieModule],\n exports: [AnimationComponent],\n})\nexport class AnimationModule {}\n","
\n \n \n
\n \n \n \n \n {{ item?.label }}\n
\n {{ item?.label }}\n \n \n 0\">\n \n
\n \n\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n Input,\n OnInit,\n Optional,\n QueryList,\n Self,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroupDirective, NgControl } from '@angular/forms';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { Subject } from 'rxjs';\n\nimport { PuSubscribable } from '@app/utils/pu-subscribe';\nimport { IRadioButtonOption } from '@shared/interfaces/radio-button-option.interface';\n\n@UntilDestroy()\n@Component({\n selector: 'app-custom-dashboard-dropdown',\n templateUrl: './custom-dashboard-dropdown.component.html',\n styleUrls: ['./custom-dashboard-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CustomDashboardDropdownComponent\n extends PuSubscribable\n implements OnInit, DoCheck, ControlValueAccessor\n{\n @ViewChild(MatMenuTrigger) menuTrigger: MatMenuTrigger;\n @ViewChildren('menuItem') menuItems: QueryList;\n selectedIndex = 0;\n isMenuOpen = false;\n\n dashboardControl = new FormControl<{ groupValue: string | null; value: number }>(null);\n groupedItems: { group: string | null; items: IRadioButtonOption[] }[] = [];\n recalculateTitleWidth$ = new Subject();\n private _items: IRadioButtonOption[];\n private pendingSelection: IRadioButtonOption | null = null;\n\n @Input() fadeTextTurnOn = false;\n @Input() set items(getItems: IRadioButtonOption[]) {\n this._items = getItems;\n this.updateGroupedItems();\n this.setDefaultItem(this.dashboardControl.value);\n this.cdr.detectChanges();\n }\n\n get items(): IRadioButtonOption[] {\n return this._items;\n }\n\n private onChange: (value: any) => void = () => {\n //\n };\n\n private onTouched: () => void = () => {\n //\n };\n\n constructor(\n @Self() @Optional() protected ngControl: NgControl,\n protected cdr: ChangeDetectorRef,\n @Optional() private formDirective: FormGroupDirective\n ) {\n super();\n if (this.ngControl) {\n this.ngControl.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n this.setDefaultItem(this.dashboardControl.value);\n }\n\n ngDoCheck(): void {\n if (this.ngControl?.control && this.dashboardControl !== this.ngControl.control) {\n this.initControlBase();\n }\n }\n\n private initControlBase() {\n if (this.ngControl?.control) {\n this.dashboardControl = this.ngControl?.control as FormControl;\n }\n this.cdr.detectChanges();\n }\n\n writeValue(value: any): void {\n if (value !== this.dashboardControl.value) {\n this.dashboardControl.setValue(value);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n selectedTab(item: IRadioButtonOption) {\n this.pendingSelection = item;\n }\n\n onMenuClosed() {\n this.isMenuOpen = false;\n if (this.pendingSelection && this.pendingSelection?.value !== undefined) {\n setTimeout(() => {\n const newValue = { groupValue: this.pendingSelection.groupValue, value: this.pendingSelection.value };\n this.onChange(newValue);\n this.writeValue(newValue);\n this.selectedIndex = this.items.findIndex(\n i => i.groupValue === this.pendingSelection.groupValue && i.value === this.pendingSelection.value\n );\n this.pendingSelection = null;\n this.cdr.detectChanges();\n }, 0);\n }\n }\n\n private setDefaultItem(currentValue: { groupValue: string | null; value: number }) {\n if (currentValue === undefined || currentValue === null) return;\n const matchedIndex = this.items.findIndex(\n item => currentValue.groupValue === item.groupValue && currentValue.value === item.value\n );\n const getSelectedIndex = matchedIndex !== -1 ? matchedIndex : 0;\n if (getSelectedIndex !== this.selectedIndex) {\n this.selectedIndex = getSelectedIndex;\n this.cdr.detectChanges();\n }\n }\n\n onMenuOpened() {\n this.isMenuOpen = true;\n if (this.fadeTextTurnOn) this.recalculateTitleWidth$.next(new Date().getTime());\n this.cdr.detectChanges();\n }\n\n private updateGroupedItems() {\n if (!this._items?.length) {\n this.groupedItems = [];\n return;\n }\n const nullGroup = this._items.filter(item => !item.groupValue);\n const groups = Array.from(new Set(this._items.filter(item => item.groupValue).map(item => item.groupValue)));\n this.groupedItems = [\n ...(nullGroup.length ? [{ group: null, items: nullGroup }] : []),\n ...groups.map(group => ({\n group,\n items: this._items.filter(item => item.groupValue === group),\n })),\n ];\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { FadeTextOnWidthDirective } from '@shared/directives/fade-text-on-width.directive';\nimport { TooltipDirectiveModule } from '@shared/directives/tooltip.directive';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\nimport { InputModule } from '@ui-components/controls/input/input.module';\n\nimport { CustomDashboardDropdownComponent } from './custom-dashboard-dropdown.component';\n\n@NgModule({\n declarations: [CustomDashboardDropdownComponent],\n imports: [\n CommonModule,\n MatTabsModule,\n IconComponent,\n TooltipDirectiveModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n MatDividerModule,\n IconComponent,\n InputModule,\n FadeTextOnWidthDirective,\n ],\n exports: [CustomDashboardDropdownComponent],\n})\nexport class CustomDashboardDropdownModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { DropdownComponent } from '@ui-components/components/dropdown/dropdown.component';\nimport { RadioButtonDropdownModule } from '@ui-components/controls/radio-button-dropdown/radio-button-dropdown.module';\n\n@NgModule({\n declarations: [DropdownComponent],\n imports: [CommonModule, RadioButtonDropdownModule, ReactiveFormsModule],\n exports: [DropdownComponent],\n})\nexport class DropdownModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EditedCellComponent } from './edited-cell.component';\n\n@NgModule({\n declarations: [EditedCellComponent],\n exports: [EditedCellComponent],\n imports: [CommonModule],\n})\nexport class EditedCellModule {}\n","
\n \n \n \n \n \n \n \n \n \n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\n\n@Component({\n selector: 'app-table-action-buttons',\n templateUrl: './table-action-buttons.component.html',\n styleUrls: ['./table-action-buttons.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableActionButtonsComponent extends ComponentAbstract {\n @Input() rowReference: Object;\n @Input() currentRowReference;\n @Input() disableEdit = false;\n @Input() disableSave = false;\n @Input() disableDelete = false;\n @Input() lockFields = false;\n @Input() allowDelete = true;\n @Input() allowEdit = true;\n\n @Output() editEvent: EventEmitter = new EventEmitter();\n @Output() saveEvent: EventEmitter = new EventEmitter();\n @Output() deleteEvent: EventEmitter = new EventEmitter();\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n edit() {\n this.editEvent.emit();\n }\n\n save() {\n this.saveEvent.emit();\n }\n\n delete() {\n this.deleteEvent.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { StopPropagationDirective } from '@shared/directives/stop-propagation.directive';\nimport { TooltipDirectiveModule } from '@shared/directives/tooltip.directive';\nimport { IconComponent } from '@ui-components/components/icon/icon.component';\n\nimport { TableActionButtonsComponent } from './table-action-buttons.component';\n\n@NgModule({\n declarations: [TableActionButtonsComponent],\n exports: [TableActionButtonsComponent],\n imports: [CommonModule, MatButtonModule, IconComponent, TooltipDirectiveModule, StopPropagationDirective],\n})\nexport class TableActionButtonsModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { getReferrer } from '@widgets/referrer.utils';\nimport { OpenApiService } from '@widgets/services/open-api.service';\n\nexport class WidgetTurnBidResponce {\n assignee: number;\n bidInfo: {\n approved: boolean;\n bidAmount: number;\n bidDate: Date;\n id: number;\n invoices: any[];\n status: number;\n expenseCategoryId: number;\n turnoverId: number;\n vendorId: number;\n };\n timeZone: {\n id: string;\n displayName: string;\n utcOffsetMinutes: number;\n };\n turnInfo: {};\n unitInfo: {\n unitName: string;\n unitType: string;\n propertyName: string;\n propertyAddress: {\n propertyToAddressLinkId: number;\n id: number;\n addressType: number;\n addressTypeUrn: string;\n title: string;\n street1: string;\n street2: string;\n city: string;\n state: string;\n zip: string;\n url: string;\n };\n };\n users: {\n userId: number;\n firstName: string;\n lastName: string;\n displayName: string;\n email: string;\n }[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BidManagementService {\n constructor(protected service: OpenApiService) {}\n\n public getTurnInfo(jwtToken: string): Observable {\n return this.service.get(`bids/getTurnBidInfo?jwtToken=${jwtToken}&${getReferrer()}`);\n }\n\n public comment(jwtToken: string, comment: string): Observable {\n return this.service.post(`bids/comment?jwtToken=${jwtToken}&${getReferrer()}`, { comment });\n }\n\n public accept(jwtToken: string): Observable {\n return this.service.post(`bids/accept?jwtToken=${jwtToken}&${getReferrer()}`);\n }\n\n public approve(jwtToken: string): Observable {\n return this.service.post(`bids/approve?jwtToken=${jwtToken}&${getReferrer()}`);\n }\n\n public reject(jwtToken: string, reason: string): Observable {\n return this.service.post(`bids/reject?jwtToken=${jwtToken}&${getReferrer()}`, { reason });\n }\n\n public deny(jwtToken: string, reason: string): Observable {\n return this.service.post(`bids/deny?jwtToken=${jwtToken}&${getReferrer()}`, { reason });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\nimport { ScheduleCellStatus } from '@main-application/boards/interfaces/board.enums';\nimport { TimezoneHelper } from '@main-application/management/pages/system-configuration/components/timezone.helper';\nimport { getReferrer } from '@widgets/referrer.utils';\nimport { OpenApiService } from '@widgets/services/open-api.service';\n\nexport class WidgetTurnScheduleResponce {\n unitInfo: {\n unitName: string;\n unitType: string;\n propertyName: string;\n propertyAddress: {\n propertyToAddressLinkId: number;\n id: number;\n addressType: number;\n addressTypeUrn: string;\n title: string;\n street1: string;\n street2: string;\n city: string;\n state: string;\n zip: string;\n url: string;\n };\n };\n turnInfo: {\n dateMoveIn: Date;\n activeStepName: string;\n };\n turnStepScheduleInfo: {\n assignee: number;\n dueDate: Date;\n dateCompleted: Date;\n name: string;\n status: ScheduleCellStatus;\n };\n}\n\nexport class JwtInfo {\n tenantSubscriptionId: number;\n turnStepScheduleId: number;\n authKey: string;\n assignee: number;\n nbf: number;\n exp: number;\n iat: number;\n iss: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BoardBuilderService {\n constructor(protected service: OpenApiService) {}\n\n public markAsDone(jwtToken: string): Observable {\n return this.service.post(`BB/markAsDone?jwtToken=${jwtToken}&${getReferrer()}`);\n }\n\n public reschedule(jwtToken: string, date: Date): Observable {\n const dateWithoutTimezone = TimezoneHelper.removeTimeZone(date);\n return this.service.post(`BB/reschedule?jwtToken=${jwtToken}&${getReferrer()}`, {\n newDueDate: dateWithoutTimezone,\n });\n }\n\n public getTurnStepInfo(jwtToken: string): Observable {\n return this.service\n .get(`BB/getTurnStepInfo?jwtToken=${jwtToken}&${getReferrer()}`)\n .pipe(\n map(data => {\n data.turnInfo.dateMoveIn = TimezoneHelper.addTimeZoneAndKeepOnlyDatePart(data.turnInfo.dateMoveIn);\n data.turnStepScheduleInfo.dueDate = TimezoneHelper.addTimeZoneAndKeepOnlyDatePart(\n data.turnStepScheduleInfo.dueDate\n );\n return data;\n })\n );\n }\n\n public getTurnInfo(jwtToken: string): Observable {\n return this.service\n .get(`turnover/getTurnInfo?jwtToken=${jwtToken}&${getReferrer()}`)\n .pipe(\n map(data => {\n data.turnInfo.dateMoveIn = TimezoneHelper.addTimeZoneAndKeepOnlyDatePart(data.turnInfo.dateMoveIn);\n\n return data;\n })\n );\n }\n\n public postComment(jwtToken: string, comment: string): Observable {\n return this.service.post(`BB/postComment?jwtToken=${jwtToken}&${getReferrer()}`, { comment });\n }\n\n public postTurnoverComment(jwtToken: string, comment: string): Observable {\n return this.service.post(`turnover/comment?jwtToken=${jwtToken}&${getReferrer()}`, { comment });\n }\n\n public declineTurnover(jwtToken: string, reason: string): Observable {\n return this.service.post(`BB/decline?jwtToken=${jwtToken}&${getReferrer()}`, { reason });\n }\n\n public acceptTurnover(jwtToken: string): Observable {\n return this.service.post(`BB/accept?jwtToken=${jwtToken}&${getReferrer()}`);\n }\n}\n","
\n
\n \n \n \n \n \n \n\n \n \n \n\n
{{ error }}
\n
\n \n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute } from '@angular/router';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { BehaviorSubject, Observable, Subject, finalize, fromEvent } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\nimport { PuSubscribable } from '@app/utils/pu-subscribe';\nimport { ContentEditableAreaComponent } from '@ui-components/controls/content-editable-area/content-editable-area.component';\nimport { TranslateCodePipe } from '@widgets/pipes/translate-code.pipe';\n\nenum CommentWidgetState {\n InProgress,\n Success,\n Fail,\n}\n\nexport type AvailableUserList = {\n azureId: string;\n displayName: string;\n email: string;\n firstName: string;\n lastName: string;\n userId: number;\n};\n\n@UntilDestroy()\n@Component({\n selector: 'app-common-comment-widget',\n templateUrl: './common-comment-widget.component.html',\n styleUrls: ['./common-comment-widget.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatIconModule,\n TranslateCodePipe,\n ReactiveFormsModule,\n ContentEditableAreaComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport abstract class CommonCommentWidgetComponent extends PuSubscribable implements OnInit {\n header: string;\n state: CommentWidgetState;\n CommentWidgetState = CommentWidgetState;\n errorCode = 'Failure';\n comment = '';\n inProgress$ = new BehaviorSubject(false);\n doneText = 'Thank you!';\n placeholder = 'Comment...';\n sendText = 'Send comment';\n error$ = new Subject();\n users: AvailableUserList[];\n\n get jwtToken(): string {\n return this.route.snapshot.queryParams.jwt;\n }\n\n @ViewChild('commentInput', { read: ElementRef, static: false }) commentInput: ElementRef;\n\n protected constructor(protected cdr: ChangeDetectorRef, private route: ActivatedRoute) {\n super();\n }\n\n protected abstract getMainInfo(jwtToken: string): Observable;\n\n protected abstract setPredefineInfo(info: T): void;\n\n protected abstract sendComment(jwtToken: string, comment: string): Observable;\n\n ngOnInit() {\n this.getMainInfo(this.jwtToken)\n .pipe(finalize(() => this.cdr.detectChanges()))\n .subscribe({\n next: info => {\n if (info?.['users']) this.users = info['users'];\n this.setPredefineInfo(info);\n this.state = CommentWidgetState.InProgress;\n setTimeout(() => {\n this.commentInput?.nativeElement?.focus();\n this.setupCommentInputListener();\n });\n },\n error: err => {\n this.errorCode = err?.error ?? '';\n this.state = CommentWidgetState.Fail;\n },\n })\n .untilDestroyed(this);\n }\n\n scrollToButton() {\n const buttonElement = document.querySelector('.button-panel');\n buttonElement?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n\n post() {\n if (this.comment.length < 5) {\n if (this.comment.length === 0) this.error$.next('Comment is required');\n else if (this.comment.length < 5) this.error$.next('Please put a comment, min 5 symbols');\n return;\n }\n\n this.inProgress$.next(true);\n this.sendComment(this.jwtToken, this.comment)\n .pipe(finalize(() => this.inProgress$.next(false)))\n .subscribe({\n next: () => {\n this.state = CommentWidgetState.Success;\n this.cdr.detectChanges;\n },\n error: err => {\n this.errorCode = err?.error ?? '';\n this.state = CommentWidgetState.Fail;\n this.cdr.detectChanges;\n },\n })\n .untilDestroyed(this);\n }\n\n private setupCommentInputListener() {\n if (!this.commentInput?.nativeElement) return;\n fromEvent(this.commentInput?.nativeElement, 'input')\n .pipe(\n map((event: Event) => (event.target as HTMLTextAreaElement).value),\n tap(() => this.comment.length > 5 && this.error$.next('')),\n untilDestroyed(this)\n )\n .subscribe()\n .untilDestroyed(this);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { Observable, finalize } from 'rxjs';\n\nimport { PuSubscribable } from '@app/utils/pu-subscribe';\nimport { TranslateCodePipe } from '@widgets/pipes/translate-code.pipe';\n\nenum JustDoneWidgetState {\n Success,\n Fail,\n}\n\n@UntilDestroy()\n@Component({\n selector: 'app-just-done-widget',\n templateUrl: './just-done-widget.component.html',\n styleUrls: ['./just-done-widget.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, TranslateCodePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport abstract class JustDoneWidgetComponent extends PuSubscribable implements OnInit {\n state: JustDoneWidgetState;\n JustDoneWidgetState = JustDoneWidgetState;\n errorCode = 'Failure';\n doneText: string;\n\n get jwtToken(): string {\n return this.route.snapshot.queryParams.jwt;\n }\n\n constructor(protected cdr: ChangeDetectorRef, private route: ActivatedRoute) {\n super();\n }\n\n protected abstract doWork(jwtToken: string): Observable;\n\n protected abstract getDoneText(): string;\n\n ngOnInit() {\n this.doneText = this.getDoneText();\n\n this.doWork(this.jwtToken)\n .pipe(finalize(() => this.cdr.detectChanges()))\n .subscribe({\n next: () => (this.state = JustDoneWidgetState.Success),\n error: err => {\n this.errorCode = err?.error?.message ?? err?.error ?? '';\n this.state = JustDoneWidgetState.Fail;\n this.cdr.detectChanges();\n },\n })\n .untilDestroyed(this);\n }\n}\n","
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst localizationDictionary: { [code: string]: string } = {\n INVALID_JWT_CANT_VERIFY_SIGNATURE: 'This link is invalid',\n INVALID_JWT_ASSIGNEE_CHANGED: 'You are no longer the assignee for this task',\n INVALID_JWT_LINK_IS_EXPIRED: 'This link has expired',\n INVALID_JWT_TURN_CANCELLED: 'This turn was canceled',\n INVALID_JWT_TURN_COMPLETED: 'This turn is no longer on the board',\n INVALID_JWT_BOARD_COMPLETED: 'This turn is no longer on the board',\n INVALID_JWT_STEP_WAS_NOT_FOUND: 'This task no longer exists',\n INVALID_JWT_CANT_VERIFY_ISSUER: 'Your link is not valid',\n INVALID_JWT_TASK_DECLINED: 'Task is already closed',\n INVALID_JWT_TASK_NO_LONGER_EXISTS: 'Task is canceled',\n INVALID_JWT_TASK_SKIPPED: 'Task is canceled',\n INVALID_JWT_TASK_PENDING: 'Task is canceled',\n INVALID_JWT_TASK_DELETED: 'Task is canceled',\n INVALID_JWT_TASK_COMPLETED: 'Task is already completed',\n INVALID_JWT_TASK_AMOUNT_ONLY: `Task can't be marked as done`,\n};\n\n@Pipe({\n name: 'translateCode',\n standalone: true,\n})\nexport class TranslateCodePipe implements PipeTransform {\n transform(code: string, ...values): string {\n let localizedText = localizationDictionary[code] ?? code;\n if (values) {\n values.forEach((v, i) => (localizedText = localizedText.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), v)));\n }\n return localizedText;\n }\n}\n","export function getReferrer(): string {\n const referrer = document.referrer;\n const originalLocation = document.location.href;\n if (referrer?.trim() === originalLocation?.trim()) return `referrer=${referrer}`;\n\n return `referrer=${referrer}&originalLocation=${originalLocation}`;\n}\n","import { HttpBackend, HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { environment } from '../../../../environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OpenApiService {\n private http: HttpClient;\n\n constructor(handler: HttpBackend) {\n this.http = new HttpClient(handler);\n }\n\n public get(route: string): Observable {\n return this.http.get(this.composeRoute(route, environment.openApiUrl));\n }\n\n public post(route: string, body?: unknown): Observable {\n return this.http.post(this.composeRoute(route, environment.openApiUrl), body, this.generateHeaders());\n }\n\n public update(route: string, body: unknown): Observable {\n return this.http.put(this.composeRoute(route, environment.openApiUrl), body, this.generateHeaders());\n }\n\n public delete(route: string, body: unknown = {}): Observable {\n return this.http.delete(this.composeRoute(route, environment.openApiUrl), body);\n }\n\n public upload(route: string, file: File): Observable {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post(this.composeRoute(route, environment.openApiUrl), formData);\n }\n\n private composeRoute(route: string, environmentUrl: string) {\n return `${environmentUrl}/${route}`;\n }\n\n private generateHeaders() {\n return {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n }\n}\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n"],"x_google_ignoreList":[55]}