{"version":3,"file":"assets/js/chunks/548.89c0cfb69a3ed308890b.js","mappings":"yJAAA,MAgBA,2BAdyBA,IACrB,MAAMC,EAAeD,EAAQE,cAAc,2BAE3C,MAAO,CACHC,UAAW,KACPH,EAAQI,UAAUC,IAPT,cASTJ,GAAcK,iBAAiB,gBAAgB,KAC3CL,GAAcM,gB,qGCA9B,MAyCA,2BAzCoB,IAAyD,IAAxD,aAAEC,EAAF,QAAgBC,EAAU,IAA8B,EACzE,OACI,cAAKC,MAAO,kBAAkBD,MAC1B,OAAC,IAAW,CACRE,UAAU,UACVF,QAAQ,uBACRG,KAAK,QACLC,IAAI,aACJC,QAAS,MACL,OAAQ,CACJC,MAAO,kBACPC,cAAe,MACfC,YAAa,cACbC,WAAY,aAEhB,WAAkBC,aAG1B,OAAC,IAAW,CACRR,UAAU,WACVF,QAAQ,uBACRG,KAAK,QACLC,IAAI,cACJC,QAAS,MACL,OAAQ,CACJC,MAAO,kBACPC,cAAe,MACfC,YAAa,cACbC,WAAY,cAEhB,WAAkBE,aAIzBZ,IACG,OAAC,IAAW,CAACG,UAAU,OAAOC,KAAK,QAAQC,IAAI,sBAAsBQ,UAAQ,O,ubCrC7F,IAAaC,EAAb,MAAaA,uBAAuBC,YAGhCC,mBACIC,KAAKC,YAGTA,YACIC,EAAAC,UAAA,WAAoB,KAChBH,KAAKI,gBAAiB,IAAAA,oBACvB,CAAC,aAGRC,SACI,MAAMC,GAAmB,QAAa,kBAChCC,GAA4B,QAAa,2BACzCC,GAA6B,QAAa,4BAC1CC,GAAwB,QAAa,uBAE3C,OACI,cAAKxB,MAAM,sBACP,aAAIA,MAAM,iBAAiBwB,IAC3B,eAAMxB,MAAM,iEACPe,KAAKI,gBACF,OAAC,IAAQ,KACJE,EADL,IACwBN,KAAKI,eAD7B,IAC8CG,IAG9C,OAAC,IAAQ,KAAEC,OA3BL,aAAzB,QAAK,CAAEE,UAAU,KAAQ,qCADjBb,EAAc,aAH1B,QAAU,CACPc,IAAK,yBAEId,G,2FCGb,MAAMe,uBAA0BC,IAC5B,cAAK5B,MAAO,qBAAqB4B,EAAK7B,QAAU6B,EAAK7B,QAAU,OAC3D,cAAKC,MAAM,qDACN4B,EAAKC,MAAQD,EAAKC,MAAQ,IAE/B,cAAK7B,MAAM,6BACP,aAAIA,MAAM,kCACL,QAAa,sBADlB,IAC0C4B,EAAKE,QAE/C,eAAM9B,MAAO4B,EAAKG,OAAS,YAAYH,EAAKG,SAAW,IAAKH,EAAKI,e,+VCc7E,IAAaC,EAAb,MAAaA,qBAAqBpB,YAAlC,c,oBAMY,KAAAqB,cAAyC,GAK3B,yBAClB,IACInB,KAAKoB,uBAAyB,QAAc,SAC5CpB,KAAKqB,aACP,MAAOC,GACLC,QAAQC,IAAIF,GAGhBtB,KAAKC,YAGTA,YACI,gBACI,IAAc,IAAb,MAAEwB,GAAW,EAGV,GAFIzB,KAAK0B,mBAAmB1B,KAAK0B,kBAAkBC,mBAE/CF,EAAO,CACP,MAAMG,EAAOC,MAAMC,KAAK9B,KAAK+B,OAAOC,MAAK,QAAC,GAAEC,GAAH,SAAYA,IAAOR,EAAMS,SAASD,MAEvEL,IACAA,EAAKO,iBACLnC,KAAK0B,kBAAoBE,MAIrC,CAAC,UAITQ,YAAYC,GACR,IAAI,IAAAC,aAAY,CAAED,uBAAuB,CACrC,MAAM,kBAAEE,GAAsBF,EAE1BE,IACA,QAAS,CAACA,EAAkBN,IAAK,CAC7BO,MAAM,SAGd,QAAS,CAACH,EAAmBJ,IAAK,CAC9BO,MAAM,IAKlBC,cACI,UAGJC,UAAU3B,EAAe4B,IACrB,OAAQ,CACJrD,MAAO,eACPC,cAAe,WACfC,YAAa,mBACbC,WAAYsB,IAIhB6B,YAAW,KACPC,OAAOC,SAASC,KAAOJ,IACxB,IAGPK,sBAAsBC,GAClB,IAAKA,EAAS,OAEd,MAAM,GAAEhB,EAAF,WAAMiB,EAAN,KAAkBC,GAASF,EAEjC,OACI,2BACIhE,MAAM,kCACNmE,QAAQ,aACRC,UAAU,QAAa,kCACvBC,YAAY,QAAa,oCAAqC,CAC1DC,QAAS,CAAC,CAAEtB,GAAI,UAAWuB,MAAOL,GAAQ,OAE9CM,eAAgBxB,EAChByB,iBAAkBP,EAClBD,WAAYA,EACZS,aAAa,QAAa,+BAC1BC,sBAAsB,IAKlCvC,aACI,MAAMwC,GAAqB,UAAuBC,eAAiB,GAE9D9D,KAAK+D,gBAEV/D,KAAK+D,cAAcC,UAAY,GAE/BhE,KAAK+D,cAAcE,QACf,OAAC,IAAQ,KACJjE,KAAKkE,SAASC,OAAS,EACpBnE,KAAKkE,SAASE,KAAKvD,IACf,MAAMwD,IAA0BR,EAAmB7B,MAC9CC,GAAOA,IAAOpB,EAAKoC,QAAQhB,KAGhC,OACI,cAAKhD,MAAM,6BACP,OAAC2B,uBAAsB,CACnB5B,QAAQ,yBACR+B,MAAOF,EAAKoC,QAAQE,MAAQ,GAC5BnC,OAAQH,EAAKoC,QAAQjC,SAAU,OAAUH,EAAKoC,QAAQjC,QACtDC,aAAa,QAAyBJ,EAAKoC,UAAUqB,MACrDxD,MACID,EAAKoC,QAAQE,MAAQnD,KAAKmB,cAAcN,EAAKoC,QAAQE,QAI5DtC,EAAK0D,oBAAoBH,KAAK/B,IAC3B,MAAM,aACFmC,EADE,iBAEFC,EAFE,UAGFC,EAHE,WAIFC,EAJE,YAKFC,GACAvC,EAEEwC,EAAkC,GAElCC,GAAQ,QAAYzC,GACpB0C,GAAa,QAAiB1C,GAKpC,OAHIyC,GAAOD,EAAMG,KAAKF,GAClBC,GAAYF,EAAMG,KAAKD,IAGvB,uEAEI9F,MAAM,qCACNgG,UAAW,GAAGR,MAAqBE,IACnCO,aAAc,IACVlF,KAAKoC,YAAYC,GAErB8C,aAAc,IAAMnF,KAAKyC,aACzB2C,QAAS,IAAMpF,KAAKoC,YAAYC,GAChCJ,GAAII,EAAmBJ,GACvBoD,OAAO,QAAY,CAAEhD,uBACrBU,MAAM,QAAoB,CAAEV,uBAC5BrB,QAAQ,QACJqB,GAEJiD,OAAO,OAAwBjD,GAC/BkD,MAAO,CACH5C,IAAK+B,GAAW/B,IAChB6C,IAAKd,GAAW3D,OAEpB8D,MAAOA,EACPY,kBAAmBpD,EAAmBoD,kBACtCC,iBAAiB,QACbrD,GAEJsD,WAAYnB,GAAcoB,aAC1BC,SACKjB,GAAakB,SAASC,gCAKrC1B,GAC0B,WAAxBxD,EAAKoC,QAAQjC,QACW,SAAxBH,EAAKoC,QAAQjC,QACbhB,KAAKgD,sBAAsBnC,EAAKoC,cAKhD,cAAKhE,MAAM,yBACP,kBAASkE,KAAK,0BACd,eAAMlE,MAAM,yBACP,QAAa,wBAEhB,IAAA+G,gBACE,eAAM/G,MAAM,wBACP,QAAa,wBAGrB,IAAA+G,gBACG,OAAC,KAAO,CACJhH,QAAQ,oCACRoE,QAAQ,WACR6C,KAAK,SACL3B,MAAO,uBACPjF,QAAS,IACLW,KAAK0C,UACD,uBACAG,OAAOqD,wBAAwBC,0BAK7C,IAAAH,eAAgBhG,KAAKoB,mBACnB,OAAC,KAAM,CACHpC,QAAQ,yBACRoE,QAAQ,WACR6C,KAAK,SACL3B,MAAOtE,KAAKoB,iBACZ/B,QAAS,IAAMW,KAAKoG,iBAMnCpG,KAAKkE,SAASC,OAAS,IACpB,cAAKlF,MAAM,2DACP,OAAC,KAAO,CACJmE,QAAQ,WACR6C,KAAK,SACL3B,MAAO,gBACPjF,QAAS,IACLW,KAAK0C,UACD,gBACAG,OAAOqD,wBAAwBC,4BAU/DC,eACS,IAAAJ,gBACD,IAAAK,SAIRhG,SACI,OAAO,cAAKpB,MAAM,kBAAiB,oCA7Ob,yBAAzB,QAAK,CAAEyB,UAAU,KAAQ,+BAClB,yBAAP,WAAO,oCAE+B,yBAAtC,QAAM,iCAAgC,oCACG,yBAAzC,QAAS,iCAAgC,4BATjCQ,EAAY,yBAJxB,QAAU,CACPP,IAAK,oBACL2F,MAJU,0BAMDpF,G,iHC7BN,MAAMqF,GAAkB,QAAe,CAC1CC,QAAS,CACLC,SAAU,CACN,CACIrD,QAAS,WACTsD,OAAQ,CACJC,KAAM,IAAI,KAAM,IAChBC,OAAQ,IAAI,KAAO,IAEvBnF,MAAO,QAInBoF,QAAS,CACLJ,SAAU,CACN,CACIrD,QAAS,YACT0D,sBAAsB,EACtBC,cAAe,KACX,OAAC,IAAW,CACR7H,UAAU,gBACVC,KAAK,QACLC,IAAI,cACJgE,QAAQ,QACRpE,QAAQ,4BCf1BgI,EAAe,CACjB,YACA,WACA,OACA,gBACA,SACA,UACA,SACA,aAiFEC,oBAAsB,CAACpG,EAAqBqG,IAC9CrG,EAAKmB,MAAKmF,GAAWA,EAAQlE,SAASE,OAAS+D,IAgC7CE,oBACFC,IAEA,MAAM,GAAEpF,EAAF,SAAMqF,GAAaD,EAGzB,IAAIE,EAEAD,GAAUnD,QAAUmD,EAAS,GAAGE,cAChCD,EAAkB,CAACD,EAAS,GAAGE,cAGnC,MAAMA,EAAcD,IAAoC,IAAAE,oBAAmBJ,GAG3E,GAAKG,EAEL,MAAO,CACHA,cACAvF,GAAI,UAAUA,IACdmB,QAPY,YAQZsE,WAAYL,EAAUK,aCrJxBC,4BAA+B9G,IACjC,MAAM+G,EAAsC,GAmC5C,OAjCA/G,EAAK0D,oBAAoBsD,SAAQxF,IAC7B,IAAK,IAAAC,aAAY,CAAED,uBAQZ,CACH,MAAM,kBAAEE,GAAsBF,EAE1BE,IAAsBqF,EAA0BE,SAASvF,EAAkBN,KAC3E2F,EAA0B5C,KAAKzC,EAAkBN,QAZf,CACtC,MAAM8F,EAASX,oBAAoB/E,GAC7BmE,ED6FdnE,KAEA,MAAMmF,GAAc,IAAAQ,yBAAwB3F,GAE5C,GAAKmF,EAEL,MAAO,CACHA,cACAvF,GAAII,EAAmBJ,GACvBmB,QAAS,WACTT,KAAK,QAAoB,CAAEN,yBCvGP4F,CAAgC5F,GAEhDA,EAAmB6F,aAAe,GAE9BH,GAAQ1F,EAAmB6F,aAAalD,KAAK+C,GAC7CvB,GAASnE,EAAmB6F,aAAalD,KAAKwB,OAS1DoB,EAA0BC,SAAQM,IAC9B,MAAM5F,GAAoB,IAAA6F,uBAAsBvH,EAAKwH,mBAAoB,CACrEpG,GAAIkG,IAGR,GAAI5F,EAAmB,CACnB,MAAMwF,EAASX,oBAAoB7E,GAC7BiE,ED8HsBjE,KACpC,MAAM,GAAEN,GAAOM,EAETiF,GAAc,IAAAQ,yBAAwBzF,GAE5C,GAAKiF,EAEL,MAAO,CACHA,cACAvF,KACAmB,QAAS,WACTsE,WAAY,sBCzIQY,CAA+B/F,GAE/CA,EAAkB2F,aAAe,GAE7BH,GAAQxF,EAAkB2F,aAAalD,KAAK+C,GAC5CvB,GAASjE,EAAkB2F,aAAalD,KAAKwB,OAIlD3F,G,+vBCFJ,MAAM0H,SAAe,IAAgB,IAAf,QAAEhK,GAAa,GACxC,QAAc,KAEd,MAAMiK,GAAc,QAAwB,0BACtCC,GAAe,QAAwB,2BACvCC,GAAiB,QAAwB,8BAExC,CAAEzI,IAAa,IAAA0I,UAAoBzI,EAAAC,YACnC,CAAEyI,IAAgB,IAAAD,UAAmB,OACrC,CAAEE,IAAyB,IAAAF,UAA8B,OAE1D,UAAEjK,IAAc,OAAgBH,GAEtC,IAAIuK,EACAjI,EACAkI,GAAuB,EACvBC,EAA8B,GAClC,MAAM7H,EAA+B,GA8CrC,SAAS8H,cAAcC,GACfA,EAURC,eAAeC,YACX,MAAMC,GAAc,IAAAC,yBAAwBzI,EAAK+D,aAEjD4D,EAAYtG,QAAS8B,UAAY,GACjCwE,EAAYtG,QAAS+B,QACjB,OAAC,IAAQ,MACL,wBACIjF,QAAQ,uBACRoE,QAAQ,UACRmG,UAAW,CACPjF,OAAO,QAAa,iBACpBkF,KAAM,iBAEVC,SAAU,CACNnF,OAAO,QAAa,mBACpBkF,KAAM,kBAEVnK,QAASqK,aAGb,OAAC,IAAW,CAAC1K,QAAQ,yBAAyBD,cAAc,KAE5D,cAAK4K,UAAU,2BACX,kBACIC,QAAO,eACHP,cACAQ,YAAaC,eAAejJ,GAC5BkJ,aAAa,IACV,WAEPC,MAAOzD,OAvCnB6C,GA8CR,SAASa,eACLzB,EAAYtG,QAAS8B,UAAY,GACjCwE,EAAYtG,QAAS+B,QAAO,uCA9CxBgG,GAGJC,gBACAxL,KApDJ,SAAUyK,UACNtI,QAAa,EAAAsJ,aAAA,QAAqBtH,OAAOqD,wBAAwBkE,QACjEvJ,EAAO8G,4BAA4B9G,GAEnCoI,eAAc,QAAW,cAG7BJ,GAAsB,QAAC,OAAEwB,GAAH,SAAgBpB,cAAcoB,KAAS,CAAC,WAE9DpK,GACI,IAAiB,IAAhB,SAAEqK,GAAc,EACRA,GAAUC,gBACfL,kBAEJ,CAAC,aAGLjK,GACI,IAAiB,IAAhB,SAAEuK,GAAc,EACTA,GAAYA,EAASrG,OAAS,GAAK4E,GAAamB,gBACpDO,uBAEJ,CAAC,aAGL7B,GACI,IAAc,IAAb,MAAEnH,GAAW,EACNA,EAAMS,SAASE,YAAYX,EAAMS,SAASD,MAElD,CAAC,UAGL2G,GACI,IAAc,IAAb,MAAE8B,GAAW,EACV,GAAIA,EAAO,CACP,MAAMrD,GAAY,IAAAsD,wBAAuB9J,EAAO6J,EAAMzI,KACtD,OAA4BoF,GAExBqD,EAAM/H,KAAKE,OAAO+H,KAAKF,EAAM/H,IAAK,YAG9C,CAAC,UAwDL,MAAMuH,cAAgB,KAClBW,YACAJ,qBACAK,qBACAC,uBACAhC,EAAsC,IAAxBC,EAAa7E,QAGzBoG,cAAgB,MACd,QAAW,YAAW,QAAc,IACxCvB,EAAe,GACfD,GAAc,GAGZ0B,mBAAqB,KACvB3B,GAAe,IAAAkC,mBAEXlC,IACAE,EFvHW,EAACiC,EAAwBpK,KAC5C,MAAMqK,EAA0B,GAmBhC,OAlBqBrK,EAAK0D,oBAAoB4G,QAAOC,GAAKH,EAAanD,SAASsD,EAAEnJ,MAErE4F,SAAQxF,IACjB,MAAM,iBAAEqB,GAAqBrB,EACvBgJ,EAAcpE,oBAAoBiE,EAAUxH,GAE7C2H,EAQDA,EAAY9G,oBAAoBS,KAAK3C,GAPrC6I,EAASlG,KAAK,CACV/B,QAASpC,EAAKiD,cAAc9B,MACxBoJ,GAAKA,EAAEjI,OAASO,IAEpBa,oBAAqB,CAAClC,QAO3B6I,GEmGgBI,CAAexC,EAAcjI,GFhGxBmI,KAC5BA,EAAeA,EAAauC,MAAK,CAACC,EAAUC,IACxCD,EAASvI,SAASjC,QAClByK,EAASxI,SAASjC,QAClBgG,EAAa0E,QAAQF,EAASvI,SAASjC,QACnCgG,EAAa0E,QAAQD,EAASxI,SAASjC,QACrC,GACC,KE2FH2K,CAAuB3C,GFvFQA,KACvCA,EAAanB,SAAQV,IACjBA,EAAQ5C,oBAAsB4C,EAAQ5C,oBAAoBgH,MAAK,CAACK,EAAGC,IAC/DD,EAAEE,oBACFD,EAAEC,oBACF9E,EAAa0E,QAAQE,EAAEE,oBAAsB9E,EAAa0E,QAAQG,EAAEC,oBAC9D,GACC,QEiFPC,CAAkC/C,GFrJlB,EAACA,EAA6B7H,KACtD,MAAM6K,EAAyB,GAE/BhD,EAAanB,SAAQV,IACjB,MAAMD,EAAcC,EAAQlE,QAAQE,KAEpC,GAAI+D,EAAa,CACb,IAAI+E,EAAe9K,EAAc+F,GAE5B+E,IACDA,EAAe,IAAIC,KACnB/K,EAAc+F,GAAe+E,GAGjCA,EAAaE,YAAc,GAAGhF,EAAQ5C,oBAAoBJ,SAE1D6H,EAAahH,KAAKkC,OAI1B,IAAK,MAAOA,EAAa+E,KAAiBG,OAAOC,QAAQlL,GACjD6K,EAAaN,QAAQxE,GAAe,IACpC+E,EAAaE,YAAc,MEgI3BG,CAAoBtD,EAAc7H,KAIpC0J,UAAY,KACd,IAAI,QAAW,UAAW,CACtB,MAAM0B,EAAeC,6BAA6B3L,GAC5C4L,GAAU,OAAuBF,IAEvC,QAAcE,KAIhB3C,eAAkBjJ,IACpB,MAAM4L,GAAU,OAAuB5L,GAEvC,IAAIgJ,EAEJ,GAAI4C,EAAQtI,OAIR,OAHA0F,GAAc,IAAA6C,6BAA4BD,GAC1C5C,GAAc,IAAA8C,mBAAkB9C,EAAa,MAEtCA,EACJ,CACH,MAAM+C,GAAoB,IAAAnF,oBAAmB5G,EAAK+D,aAElD,GAAIgI,EAIA,OAHA/C,GAAc,IAAAgD,sBAAqBD,GACnC/C,GAAc,IAAA8C,mBAAkB9C,EAAa,IAEtCA,IAOb2C,6BAAgC3L,IAClC,MAAMiI,GAAe,IAAAkC,oBAAqB,GAE1C,OAAO,cAAP,iBACOnK,GADP,IAEI0D,oBAAqB1D,EAAK0D,oBAAoB4G,QAAO,QAAC,GAAElJ,GAAH,SACjD6G,EAAahB,SAAS7F,MAE1BoG,mBAAoBxH,EAAKwH,mBAAmB8C,QACxC,QAAC,sBAAE2B,GAAH,UACMA,GAAuB9K,MAAMC,GAAO6G,EAAahB,SAAS7F,WAKtE6I,mBAAqB,KACnBrC,EAAavG,UACbuG,EAAavG,QAAQ8B,UAAY,GACjCyE,EAAavG,QAAQ+B,QACjB,4BAAmBC,SAAU8E,EAAc7H,cAAeA,OAKhE4J,qBAAuB,KACrBrC,EAAexG,UACfwG,EAAexG,QAAQ8B,UAAY,GACnC0E,EAAexG,QAAQ+B,QACnB,8BAAqB7D,gBAAgB,IAAAA,uBAK3CsJ,UAAY,KACd,0BAA+B,8BAG7BtH,YAAeH,IACjB,GAAIwG,EAAavG,QAAS,CACtB,MAAMN,EAAO6G,EAAavG,QAAQzD,cAAc,IAAIwD,KAEpD,GAAIL,EAAM,CACN,MAAMmL,EAAYnL,EAAKmL,UAAgD,GAApCtE,EAAavG,QAAQ8K,aAExDvE,EAAavG,QAAQ+K,OAAO,CACxBC,IAAKH,EACLI,KAAM,EACNC,SAAU,cAM1B,OACI,cAAKnO,MAAM,eACP,cAAKA,MAAM,mBAAkB,gCAE7B,cAAKA,MAAM,mBACP,cAAKA,MAAM,iBAAgB,8BAE3B,cAAKA,MAAM,+BACP,wBACID,QAAQ,uBACRoE,QAAQ,UACRiK,MAAM,aACN9D,UAAW,CACPjF,OAAO,QAAa,0BACpBkF,KAAM,aAEVC,SAAU,CACNnF,OAAO,QAAa,eACpBkF,KAAM,kBAEVnK,QAASqK,cAIjB,cAAKzK,MAAM,mBAAkB,gCAM7C,QAAc,eAAgBsJ,W,iECvS9B,MA+BM,wBAAE+E,GAzBW,MACf,IAAIC,EACAC,EAoBJ,MAlBarE,WACToE,OARkBpE,UAAYsE,eAAe,QAH/B,aAWGC,GACjBF,OARqBrE,UAAYsE,eAAe,QAH9B,gBAWEE,IAcxBC,GAEO,CAAEN,wBARwBjL,IAC7B,IAAI,YAAgB,IAAAwL,WAAU,CAAExL,uBAAuB,OAAO,EAC9D,MAAMgD,EAAQhD,EAAmByL,YAAYC,QAAQjM,KACrD,QAASuD,IARE0I,EAQa1I,EAAO,CAAE2I,SAAU3L,EAAmB4L,kBAPjDD,SAAiBD,EAASP,EAChCO,GAAUR,GAFP,IAACQ,KAgBiBG,I,uPC1BpC,MAAMC,2BAA6BhF,MAC/BtI,EACA+I,KAEA/I,EAAK0D,oBACA4G,QAAQiD,IAAuB,OAAkBA,KACjDvG,SAASxF,IACNA,EAAmB6F,cAAe,QAAgC7F,MAG1ExB,EAAKwN,cACAlD,QAAQ3G,IAAiB,OAAkBA,KAC3CqD,SAASrD,IACNA,EAAa0D,cAAe,QAA0B1D,MAG9D,IAAK,MAAM8J,KAAgBzN,EAAKiD,cAAcqH,QAAQlI,IAClD,OAAkBA,EAAS2G,KAE3B0E,EAAapG,mBAAqB,QAA0BoG,EAAc1E,GAO9E,OAJA/I,EAAKwH,mBAAoBR,SAAStF,IAC9BA,EAAkB2F,cAAe,QAA+B3F,MAG7D1B,G,wBCxBJ,MAAM0N,EAAa,CAAC,IAAK,IAAK,KACxBC,EAAkB,CAAC,IAAK,IAAK,KAC7BC,EAAiB,CAAC,GAAI,GAAI,IAC1BC,EAAc,CAAC,IAAK,GAAI,KACxBC,EAAW,CAAC,IAAK,GAAI,IACrBC,EAAc,CAAC,IAAK,IAAK,GACzBC,EAAa,CAAC,IAAK,IAAK,IACxBC,EAAY,CAAC,GAAI,IAAK,KAEtBC,EAAc,IAAIR,EAAO,KAGzBS,EAAe,IAAIN,EAAQ,IAC3BO,EAAqB,IAAIP,EAAQ,IACjCQ,EAAY,IAAIP,EAAK,IACrBQ,EAAe,IAAIP,EAAQ,IAC3BQ,EAAc,IAAIP,EAAO,IACzBQ,EAAa,IAAIP,EAAM,IACvBQ,EAAmB,IAAIR,EAAM,KAE7BS,EAGT,CACA5I,KAAM0I,EACNzI,OAAQ,IAAI2H,EAAO,KAGViB,EAA0C,CACnDhJ,QAAS,CACLC,SAAU,CACN,CACIrD,QAAS,gBACTsD,OAAQ,CACJC,KAAMoI,EACNnI,OAAQ,IAAI4H,EAAY,IAE5B/M,MAAO8N,GAEX,CACInM,QAAS,YACTsD,OAAQ,CACJC,KAAMyI,EACNxI,OAAQ,IAAI2H,EAAO,IAEvB9M,MAAO8N,GAEX,CACInM,QAAS,WACTsD,OAAQ,CACJC,KAAMwI,EACNvI,OAAQ,IAAI2H,EAAO,IAEvB9M,MAAO8N,GAEX,CACInM,QAAS,WACTsD,OAAQ,CACJC,KAAMwI,EACNvI,OAAQ,IAAI2H,EAAO,IAEvB9M,MAAO8N,GAEX,CACInM,QAAS,OACTsD,OAAQ,CACJC,KAAMuI,EACNtI,OAAQ,IAAI2H,EAAO,IAEvB9M,MAAO8N,GAEX,CACInM,QAAS,oBACTsD,OAAQ,CACJC,KAAMqI,EACNpI,OAAQ,IAAI2H,EAAO,IAEvB9M,MAAO8N,MAMVE,EAAyC,CAClDjJ,QAAS,CACLC,SAAU,CACN,CACIrD,QAAS,eACTsD,OAAQ,CACJC,KAAMoI,EACNnI,OAAQ,IAAI6H,EAAW,IAE3BhN,MAAO,CACHkF,KAAMoI,EACNnI,OAAQ,IAAI6H,EAAW,OAKvC5H,QAAS,CACLJ,SAAU,CACN,CACIrD,QAAS,sBACTsM,QAAS,GACT3I,cAAgB4I,IACL,OAAC,IAAQ,CAAC5O,MAAO4O,EAAK5O,MAAO6O,SAAUD,EAAK3O,aAO1D6O,eAAiB,WAC1B,MAAMC,EAAqB,CACvBtJ,QAAS,CAAEC,SAAU,IACrBI,QAAS,CAAEJ,SAAU,GAAIsJ,QAAUjP,IAAU,mBAAOA,KAH+B,2BAAzDkP,EAAyD,yBAAzDA,EAAyD,gBAcvF,OARAA,EAAUnI,SAAQ,IAAyB,IAAxB,QAAErB,EAAF,QAAWK,GAAa,EACvCL,GAASC,SAAStC,QAAU2L,EAAStJ,SAASC,UAAUzB,QAAQwB,EAAQC,UACxEI,GAASJ,SAAStC,QAAU2L,EAASjJ,SAASJ,UAAUzB,QAAQ6B,EAAQJ,UACpEI,GAASkJ,SAAWD,EAASjJ,UAC7BiJ,EAASjJ,QAAQkJ,QAAUlJ,EAAQkJ,YAIpCD,GAGEvJ,EAAQsJ,eAAeL,EAAsBC,I,+LClI1D,MAAMQ,gCAAkC,CACpC5N,EACAuH,KAEA,MAAM,GAAE3H,GAAOI,EAETmF,GAAc,IAAAQ,yBAAwB3F,GAC5C,IAAKmF,EAAa,OAKlB,MAAO,CACH,CACIA,cACAvF,KACAmB,QAPQ8M,6BAA6B7N,EAAoBuH,GAQzDjH,KAPI,QAAoB,CAAEN,uBAQ1BqF,WAAY,wBAKlByI,0BACF3L,IAEA,MAAM,GAAEvC,GAAOuC,EAETgD,GAAc,IAAAQ,yBAAwBxD,GAC5C,IAAKgD,EAAa,OAKlB,MAAO,CACH,CACIA,cACAvF,KACAmB,QAPQgN,uBAAuB5L,GAQ/B7B,KAPI,QAAoB,CAAE6B,iBAQ1BkD,WAAY,kBAKlB2I,0BAA4BlH,MAC9BmF,EACA1E,KAEA,MAAM,GAAE3H,GAAOqM,EAET9G,GAAc,IAAAQ,yBAAwBsG,GAE5C,IAAK9G,EAAa,OAElB,MAAMxG,QAAe,QAA8BsN,GAE7CgC,EAAiB1G,GAAS2G,+BAAyD,SAAxBjC,EAAatN,OAE9E,MAAO,CACH,CACIwG,cACAvF,KACAmB,QAASkN,EAAiB,mBAAqB,eAC/C5I,WAAY,gBAEhB,CACIF,cACAvF,GAAI,IAAIA,IACRmB,QAASkN,EAAiB,0BAA4B,sBACtDvP,MAAOuN,EAAanL,KACpBnC,OAAQA,GAAQsD,SAKtBkM,+BACFjO,IAEA,MAAM,GAAEN,GAAOM,EAETiF,GAAc,IAAAQ,yBAAwBzF,GAC5C,IAAKiF,EAAa,OAIlB,MAAO,CACH,CACIvF,KACAuF,cACApE,QANQqN,4BAA4BlO,GAOpCmF,WAAY,uBAKlBwI,6BAA+B,CACjC7N,EACAuH,KAEA,MAAM,aAAEpF,EAAF,aAAgB8J,EAAhB,OAA8BtN,GAAWqB,EAE/C,GAAe,aAAXrB,EAAuB,MAAO,WAClC,GAAe,gBAAXA,EAA0B,MAAO,WAErC,IAAKwD,IAAiB8J,EAAc,MAAO,GAE3C,GAA8C,SAA1CjM,EAAmByJ,oBAAyD,SAAxBwC,EAAatN,OACjE,OAAO4I,GAAS8G,SAAW,oBAAsB,SAErD,GAA4B,kBAAxBpC,EAAatN,OAA4B,MAAO,gBAEpD,GACgD,WAA5CqB,EAAmBiM,cAActN,QACW,YAA5CqB,EAAmBiM,cAActN,OAEjC,OAAQqB,EAAmByJ,oBACvB,IAAK,YACD,MAAO,YACX,IAAK,WACD,MAAO,WACX,IAAK,OACD,MAAO,OAInB,MAAO,aAGLsE,uBAA0B5L,IAC5B,OAAQA,EAAaxD,QACjB,IAAK,gBACL,IAAK,WACD,MAAO,gBACX,IAAK,cACL,IAAK,UACL,IAAK,kBACD,MAAO,YACX,IAAK,cACL,IAAK,WACD,MAAO,WACX,IAAK,OACL,IAAK,SACD,MAAO,OACX,IAAK,oBACD,MAAO,oBAGf,MAAO,IAGLyP,4BAA+BlO,IACjC,MAAM,OAAEvB,GAAWuB,EAEnB,OAAQvB,GACJ,IAAK,gBACL,IAAK,WACD,MAAO,gBACX,IAAK,YACL,IAAK,cACL,IAAK,kBACL,IAAK,UACD,MAAO,YACX,IAAK,WACL,IAAK,cACD,MAAO,WACX,IAAK,SACL,IAAK,OACD,MAAO,OACX,IAAK,oBACD,MAAO,oBAGf,MAAO,K,8FCpLP2P,EAAgC,IAAIC,IAAI,YACxCC,EAAgC,IAAID,IAAI,aACxCE,EAAgC,IAAIF,IAAI,aACxCG,EAAgC,IAAIH,IAAI,aACxCI,EAAgC,IAAIJ,IAAI,aACxCK,EAAgC,IAAIL,IAAI,aACxCM,EAAgC,IAAIN,IAAI,YACxCO,EAAgC,IAAIP,IAAI,aACxCQ,EAAgC,IAAIR,IAAI,aACxCS,EAAgC,IAAIT,IAAI,aACxCU,EAAiC,IAAIV,IAAI,aACzCW,EAAiC,IAAIX,IAAI,YACzCY,EAAiC,IAAIZ,IAAI,aACzCa,EAAiC,IAAIb,IAAI,aACzCc,EAAiC,IAAId,IAAI,aACzCe,EAAiC,IAAIf,IAAI,aACzCgB,EAAiC,IAAIhB,IAAI,YACzCiB,EAAiC,IAAIjB,IAAI,aACzCkB,EAAiC,IAAIlB,IAAI,WACzCmB,EAAiC,IAAInB,IAAI,aACzCoB,EAAiC,IAAIpB,IAAI,aACzCqB,EAAiC,IAAIrB,IAAI,aACzCsB,EAAiC,IAAItB,IAAI,aACzCuB,EAAiC,IAAIvB,IAAI,aACzCwB,EAAiC,IAAIxB,IAAI,aACzCyB,EAAiC,IAAIzB,IAAI,aACzC0B,EAAiC,IAAI1B,IAAI,aACzC2B,EAAiC,IAAI3B,IAAI,aACzC4B,EAAiC,IAAI5B,IAAI,aACzC6B,EAA0B,IAA4B,KACtDC,EAAqC,IAAgC/B,GACrEgC,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAqC,IAAgC9B,GACrE+B,EAAsC,IAAgC9B,GACtE+B,EAAsC,IAAgC9B,GACtE+B,EAAsC,IAAgC9B,GACtE+B,EAAsC,IAAgC9B,GACtE+B,EAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GACtE+B,GAAsC,IAAgC9B,GAE1EC,EAAwBzN,KAAK,CAACuP,EAAOtS,GAAI,80GAAg1GyQ,EAAqC,0FAA4FC,EAAqC,6FAA+FC,EAAqC,yFAA2FC,EAAqC,0FAA4FC,EAAqC,4FAA8FC,EAAqC,qGAAuGC,EAAqC,2HAA6HC,EAAqC,iIAAmIC,EAAqC,+HAAiIC,EAAqC,qIAAuIC,EAAsC,ugBAAygBC,EAAsC,4+cAAo/cC,EAAsC,0FAA4FC,EAAsC,6FAA+FC,EAAsC,yFAA2FC,GAAsC,0FAA4FC,GAAsC,4FAA8FC,GAAsC,qGAAuGC,GAAsC,2HAA6HX,EAAqC,iIAAmIC,EAAqC,+HAAiIC,EAAqC,qIAAuIC,EAAsC,4EAA8ES,GAAsC,qIAAuIC,GAAsC,0FAA4FC,GAAsC,6FAA+FC,GAAsC,yFAA2FnB,EAAqC,0FAA4FoB,GAAsC,4FAA8FC,GAAsC,qGAAuGC,GAAsC,+CAAiDC,GAAsC,8lBAAgmBC,GAAsC,k/BAAo/BC,GAAsC,6HAA+HD,GAAsC,+2BAAg3B,KAExpyB,SAAe5B,EAAwB+B","sources":["webpack://frontend-setup/./src/components/atoms/loading-state/hooks/use-loading-state.ts","webpack://frontend-setup/./src/components/molecules/map-controls/map-controls.tsx","webpack://frontend-setup/./src/features/wishlist/components/wishlist-header/wishlist-header.tsx","webpack://frontend-setup/./src/features/wishlist/components/wishlist-project-heading/wishlist-project-heading.tsx","webpack://frontend-setup/./src/features/wishlist/components/wishlist-list/wishlist-list.tsx","webpack://frontend-setup/./src/features/wishlist/utilities/config/theme.tsx","webpack://frontend-setup/./src/features/wishlist/utilities/service.ts","webpack://frontend-setup/./src/features/wishlist/utilities/provider.ts","webpack://frontend-setup/./src/features/wishlist/wishlist.tsx","webpack://frontend-setup/./src/utilities/api-utilities/is-nhg.ts","webpack://frontend-setup/./src/utilities/map/provider.ts","webpack://frontend-setup/./src/utilities/map/config/theme.tsx","webpack://frontend-setup/./src/utilities/map/service.ts","webpack://frontend-setup/./src/features/wishlist/wishlist.scss"],"sourcesContent":["const LOADED_CLASS = 'is--loaded';\n\nconst useLoadingState = (element: Element) => {\n const loadingState = element.querySelector('[js-hook-loading-state]');\n\n return {\n setLoaded: () => {\n element.classList.add(LOADED_CLASS);\n\n loadingState?.addEventListener('animationend', () => {\n loadingState?.remove();\n });\n },\n };\n};\n\nexport default useLoadingState;\n","import { h } from '@atomify/jsx';\nimport { getMapInstance } from '@bpd-library/components';\nimport { ButtonRound } from '@source/components/atoms/button-round/button-round';\nimport { GTMPush } from '@utilities/gtm';\n\ninterface MapControlsInterface {\n classes?: string;\n sunDirection?: boolean;\n}\n\nconst MapControls = ({ sunDirection, classes = '' }: MapControlsInterface) => {\n return (\n
\n {\n GTMPush({\n event: 'Map Interaction',\n eventCategory: 'Map',\n eventAction: 'Zoom filter',\n eventLabel: 'zoom_in',\n });\n getMapInstance()?.zoomIn();\n }}\n />\n {\n GTMPush({\n event: 'Map Interaction',\n eventCategory: 'Map',\n eventAction: 'Zoom filter',\n eventLabel: 'zoom_out',\n });\n getMapInstance()?.zoomOut();\n }}\n />\n\n {sunDirection && (\n \n )}\n
\n );\n};\n\nexport default MapControls;\n","import { Component, Prop } from '@atomify/core';\nimport { Fragment, h } from '@atomify/jsx';\nimport { userStore, wishlistLength } from '@store/user';\nimport { useTranslate } from '@utilities/hooks';\n\n@Component({\n tag: 'bpd-wishlist-header',\n})\nexport class WishlistHeader extends HTMLElement {\n @Prop({ reRender: true }) wishlistLength: number;\n\n componentDidLoad() {\n this.subscribe();\n }\n\n subscribe() {\n userStore.subscribe(() => {\n this.wishlistLength = wishlistLength();\n }, ['wishlist']);\n }\n\n render() {\n const theseTranslation = useTranslate('Wishlist-These');\n const housesAreSavedTranslation = useTranslate('Wishlist-HousesAreSaved');\n const wishlistIsEmptyTranslation = useTranslate('Wishlist-WishlistIsEmpty');\n const myWishlistTranslation = useTranslate('Wishlist-MyWishlist');\n\n return (\n
\n

{myWishlistTranslation}

\n \n {this.wishlistLength ? (\n \n {theseTranslation} {this.wishlistLength} {housesAreSavedTranslation}\n \n ) : (\n {wishlistIsEmptyTranslation}\n )}\n \n
\n );\n }\n}\n","import { h } from '@atomify/jsx';\nimport { useTranslate } from '@utilities/hooks';\n\ninterface WishlistProjectHeadingInterface {\n title: string;\n statusLabel?: string | Text;\n status?: string;\n total?: Text | string | null;\n classes?: string;\n}\n\nconst WishlistProjectHeading = (data: WishlistProjectHeadingInterface) => (\n
\n
\n {data.total ? data.total : 0}\n
\n
\n

\n {useTranslate('Wishlist-Favorites')} {data.title}\n

\n {data.statusLabel}\n
\n
\n);\n\nexport { WishlistProjectHeading };\n","import '@molecules/subscription-box/subscription-box';\n\nimport { Component, Prop, Query, QueryAll } from '@atomify/core';\nimport { Fragment, h } from '@atomify/jsx';\nimport { Button, ButtonA } from '@atoms/button/button';\nimport { clearFocus, mapStore, setFocus } from '@bpd-library/components';\nimport { ExtendedConstructionNumber, isApartment, ProjectPhaseModel } from '@bpd-library/utilities';\nimport { ListSection } from '@features/wishlist/utilities/service';\nimport { ConstructionNumberCardElement } from '@molecules/construction-number-card/construction-number-card';\nimport { getSubscriptionState } from '@store/subscription/store';\nimport { isLoggedIn, login } from '@store/user';\nimport {\n formatConstructionNumberStatus,\n formatDetailPageUrl,\n formatLivingArea,\n formatPrice,\n formatProjectPhaseStatus,\n formatRooms,\n formatShoppingCartUrl,\n FormattedSpecification,\n} from '@utilities/api-formatters';\nimport { isConstructionNumberNhg } from '@utilities/api-utilities/is-nhg';\nimport { GTMPush } from '@utilities/gtm';\nimport { translateItem, useTranslate } from '@utilities/hooks';\nimport kebabCase from '@utilities/kebab-case';\n\nimport { WishlistProjectHeading } from '../wishlist-project-heading/wishlist-project-heading';\n\nconst style = './wishlist-list.scss';\n\n@Component({\n tag: 'bpd-wishlist-list',\n style,\n})\nexport class WishlistList extends HTMLElement {\n userWishlist: string[] | undefined;\n loginButtonLabel: string;\n previousHoverCard: ConstructionNumberCardElement | undefined;\n\n @Prop({ reRender: true }) listData: ListSection[];\n @Prop() projectTotals: { [key: string]: Text } = {};\n\n @Query('[js-wishlist-list-container]') listContainer: HTMLElement;\n @QueryAll('[js-hook-wishlist-list-card]') cards: NodeListOf;\n\n async componentDidLoad() {\n try {\n this.loginButtonLabel = await translateItem('Login');\n this.renderList();\n } catch (error) {\n console.log(error);\n }\n\n this.subscribe();\n }\n\n subscribe() {\n mapStore.subscribe(\n ({ hover }) => {\n if (this.previousHoverCard) this.previousHoverCard.unsetHighlighted();\n\n if (hover) {\n const card = Array.from(this.cards).find(({ id }) => id === hover.current?.id);\n\n if (card) {\n card.setHighlighted();\n this.previousHoverCard = card;\n }\n }\n },\n ['hover'],\n );\n }\n\n handleHover(constructionNumber: ExtendedConstructionNumber) {\n if (isApartment({ constructionNumber })) {\n const { apartmentBuilding } = constructionNumber;\n\n if (apartmentBuilding)\n setFocus([apartmentBuilding.id], {\n zoom: true,\n });\n } else {\n setFocus([constructionNumber.id], {\n zoom: true,\n });\n }\n }\n\n clearHover() {\n clearFocus();\n }\n\n handleGTM(title: string, url: string) {\n GTMPush({\n event: 'gtm.Wishlist',\n eventCategory: 'Wishlist',\n eventAction: 'CTA_woningaanbod',\n eventLabel: title,\n });\n\n // Needed to give the browser enough time to push the event\n setTimeout(() => {\n window.location.href = url;\n }, 50);\n }\n\n renderSubscriptionBox(project: ProjectPhaseModel) {\n if (!project) return;\n\n const { id, districtId, name } = project;\n\n return (\n \n );\n }\n\n renderList() {\n const subscribedProjects = getSubscriptionState().projectPhases || [];\n\n if (!this.listContainer) return;\n\n this.listContainer.innerHTML = '';\n\n this.listContainer.append(\n \n {this.listData.length > 0 ? (\n this.listData.map((data) => {\n const isSubscribedToProject = !!subscribedProjects.find(\n (id) => id === data.project.id,\n );\n\n return (\n
\n \n\n {data.constructionNumbers.map((constructionNumber) => {\n const {\n propertyType,\n propertyTypeName,\n mainImage,\n identifier,\n areaProject,\n } = constructionNumber;\n\n const specs: FormattedSpecification[] = [];\n\n const rooms = formatRooms(constructionNumber);\n const livingArea = formatLivingArea(constructionNumber);\n\n if (rooms) specs.push(rooms);\n if (livingArea) specs.push(livingArea);\n\n return (\n \n this.handleHover(constructionNumber)\n }\n onMouseLeave={() => this.clearHover()}\n onFocus={() => this.handleHover(constructionNumber)}\n id={constructionNumber.id}\n price={formatPrice({ constructionNumber })}\n href={formatDetailPageUrl({ constructionNumber })}\n status={formatConstructionNumberStatus(\n constructionNumber,\n )}\n isNhg={isConstructionNumberNhg(constructionNumber)}\n image={{\n url: mainImage?.url,\n alt: mainImage?.title,\n }}\n specs={specs}\n wishlistItemCount={constructionNumber.wishlistItemCount}\n shoppingCartUrl={formatShoppingCartUrl(\n constructionNumber,\n )}\n hidePrice={!propertyType?.canShowPrice}\n compare={\n !areaProject?.website?.disablePropertyComparison\n }\n />\n );\n })}\n {!isSubscribedToProject &&\n data.project.status !== 'Rented' &&\n data.project.status !== 'Sold' &&\n this.renderSubscriptionBox(data.project)}\n
\n );\n })\n ) : (\n
\n \n \n {useTranslate('NoHomesFoundTitle')}\n \n {!isLoggedIn() && (\n \n {useTranslate('LoginToSeeWishlist')}\n \n )}\n {isLoggedIn() && (\n \n this.handleGTM(\n 'Voeg bouwnummers toe',\n window.__ENVIRONMENT_DETAILS__.areaHouseOverviewUrl,\n )\n }\n />\n )}\n {!isLoggedIn() && this.loginButtonLabel && (\n this.handleLogin()}\n />\n )}\n
\n )}\n\n {this.listData.length > 0 && (\n
\n \n this.handleGTM(\n 'Voeg meer toe',\n window.__ENVIRONMENT_DETAILS__.areaHouseOverviewUrl,\n )\n }\n />\n
\n )}\n
,\n );\n }\n\n handleLogin() {\n if (!isLoggedIn()) {\n login();\n }\n }\n\n render() {\n return
;\n }\n}\n","import { h } from '@atomify/jsx';\nimport { MapTheme } from '@bpd-library/types';\nimport { ButtonRound } from '@source/components/atoms/button-round/button-round';\nimport { BLUE, extendMapTheme, HOVER, WHITE } from '@utilities/map';\n\nexport const THEME: MapTheme = extendMapTheme({\n polygon: {\n settings: [\n {\n variant: 'wishlist',\n normal: {\n fill: [...BLUE, 0.4],\n stroke: [...WHITE, 1],\n },\n hover: HOVER,\n },\n ],\n },\n pointer: {\n settings: [\n {\n variant: 'heartIcon',\n disablePointerEvents: true,\n createElement: () => (\n \n ),\n },\n ],\n },\n});\n","import { Coordinates, MapDataItem } from '@bpd-library/types';\nimport {\n ExtendedApartmentBuilding,\n ExtendedAreaModels,\n ExtendedConstructionNumber,\n ExtendedProjectPhase,\n ExtendedPropertyType,\n getApiObjectCenter,\n getApiObjectCoordinates,\n} from '@bpd-library/utilities';\nimport { formatDetailPageUrl } from '@source/utilities/api-formatters';\n\nimport { ProjectTotals } from '../wishlist.types';\n\nconst STATUS_ORDER = [\n 'Available',\n 'InOption',\n 'Sold',\n 'InPreparation',\n 'OnSale',\n 'ForRent',\n 'Rented',\n 'NotActive',\n];\n\ninterface ListSection {\n project: ExtendedProjectPhase;\n constructionNumbers: ExtendedConstructionNumber[];\n}\n\nconst updateProjectTotals = (listSections: ListSection[], projectTotals: ProjectTotals) => {\n const projectNames: string[] = [];\n\n listSections.forEach(section => {\n const projectName = section.project.name;\n\n if (projectName) {\n let projectTotal = projectTotals[projectName];\n\n if (!projectTotal) {\n projectTotal = new Text();\n projectTotals[projectName] = projectTotal;\n }\n\n projectTotal.textContent = `${section.constructionNumbers.length}`;\n\n projectNames.push(projectName);\n }\n });\n\n for (const [projectName, projectTotal] of Object.entries(projectTotals)) {\n if (projectNames.indexOf(projectName) < 0) {\n projectTotal.textContent = '0';\n }\n }\n};\n\nconst filterSections = (wishListData: string[], data: ExtendedAreaModels) => {\n const sections: ListSection[] = [];\n const filteredData = data.constructionNumbers.filter(s => wishListData.includes(s.id));\n\n filteredData.forEach(constructionNumber => {\n const { projectPhaseName } = constructionNumber;\n const listSection = getSectionByProject(sections, projectPhaseName!);\n\n if (!listSection) {\n sections.push({\n project: data.projectPhases.find(\n s => s.name === projectPhaseName,\n ) as ExtendedProjectPhase,\n constructionNumbers: [constructionNumber],\n });\n } else {\n listSection.constructionNumbers.push(constructionNumber);\n }\n });\n\n return sections;\n};\n\nconst sortSectionsByProjects = (listSections: ListSection[]) => {\n listSections = listSections.sort((sectionA, sectionB) =>\n sectionA.project?.status &&\n sectionB.project?.status &&\n STATUS_ORDER.indexOf(sectionA.project?.status) >\n STATUS_ORDER.indexOf(sectionB.project?.status)\n ? 1\n : -1,\n );\n};\n\nconst sortSectionsByConstructionNumbers = (listSections: ListSection[]) => {\n listSections.forEach(section => {\n section.constructionNumbers = section.constructionNumbers.sort((a, b) =>\n a.availabilityStatus &&\n b.availabilityStatus &&\n STATUS_ORDER.indexOf(a.availabilityStatus) > STATUS_ORDER.indexOf(b.availabilityStatus)\n ? 1\n : -1,\n );\n });\n};\n\nconst getSectionByProject = (data: ListSection[], projectName: string) =>\n data.find(section => section.project?.name === projectName);\n\nconst createConstructionNumberPolygon = (\n constructionNumber: ExtendedConstructionNumber,\n): MapDataItem | undefined => {\n const coordinates = getApiObjectCoordinates(constructionNumber);\n\n if (!coordinates) return;\n\n return {\n coordinates,\n id: constructionNumber.id,\n variant: 'wishlist',\n url: formatDetailPageUrl({ constructionNumber }),\n };\n};\n\nconst createPropertyTypePolygon = (propertyType: ExtendedPropertyType): MapDataItem | undefined => {\n const { id } = propertyType;\n\n const coordinates = getApiObjectCoordinates(propertyType);\n\n if (!coordinates) return;\n\n return {\n coordinates,\n id,\n variant: 'wishlist',\n objectType: 'propertyType',\n };\n};\n\nconst createPolygonMarker = (\n apiObject: ExtendedPropertyType | ExtendedConstructionNumber | ExtendedApartmentBuilding,\n): MapDataItem | undefined => {\n const { id, geometry } = apiObject;\n\n // Coordinates may consist of multiple polygons, grab the first one. Otherwise the marker will float in between polygons.\n let firstCoordinate: Coordinates | undefined;\n\n if (geometry?.length && geometry[0].coordinates) {\n firstCoordinate = [geometry[0].coordinates] as Coordinates;\n }\n\n const coordinates = firstCoordinate ? firstCoordinate : getApiObjectCenter(apiObject);\n const variant = 'heartIcon';\n\n if (!coordinates) return;\n\n return {\n coordinates,\n id: `marker-${id}`,\n variant,\n objectType: apiObject.objectType,\n };\n};\n\nconst createApartmentBuildingPolygon = (apartmentBuilding: ExtendedApartmentBuilding) => {\n const { id } = apartmentBuilding;\n\n const coordinates = getApiObjectCoordinates(apartmentBuilding);\n\n if (!coordinates) return;\n\n return {\n coordinates,\n id,\n variant: 'wishlist',\n objectType: 'apartmentBuilding',\n };\n};\n\nexport {\n ListSection,\n updateProjectTotals,\n filterSections,\n sortSectionsByProjects,\n sortSectionsByConstructionNumbers,\n createConstructionNumberPolygon,\n createPropertyTypePolygon,\n createPolygonMarker,\n createApartmentBuildingPolygon,\n};\n","import { ExtendedAreaModels, findApartmentBuilding, isApartment } from '@bpd-library/utilities';\n\nimport {\n createApartmentBuildingPolygon,\n createConstructionNumberPolygon,\n createPolygonMarker,\n} from './service';\n\nconst extendApiModelsWithWishlist = (data: ExtendedAreaModels): ExtendedAreaModels => {\n const drawnApartmentBuildingIds: string[] = [];\n\n data.constructionNumbers.forEach(constructionNumber => {\n if (!isApartment({ constructionNumber })) {\n const marker = createPolygonMarker(constructionNumber);\n const polygon = createConstructionNumberPolygon(constructionNumber);\n\n constructionNumber.mapDataItems = [];\n\n if (marker) constructionNumber.mapDataItems.push(marker);\n if (polygon) constructionNumber.mapDataItems.push(polygon);\n } else {\n const { apartmentBuilding } = constructionNumber;\n\n if (apartmentBuilding && !drawnApartmentBuildingIds.includes(apartmentBuilding.id))\n drawnApartmentBuildingIds.push(apartmentBuilding.id);\n }\n });\n\n drawnApartmentBuildingIds.forEach(apartmentBuildingId => {\n const apartmentBuilding = findApartmentBuilding(data.apartmentBuildings, {\n id: apartmentBuildingId,\n });\n\n if (apartmentBuilding) {\n const marker = createPolygonMarker(apartmentBuilding);\n const polygon = createApartmentBuildingPolygon(apartmentBuilding);\n\n apartmentBuilding.mapDataItems = [];\n\n if (marker) apartmentBuilding.mapDataItems.push(marker);\n if (polygon) apartmentBuilding.mapDataItems.push(polygon);\n }\n });\n\n return data;\n};\n\nexport { extendApiModelsWithWishlist };\n","import '@bpd-library/components/dist/molecules/map/map';\nimport '@features/wishlist/components/wishlist-header/wishlist-header';\nimport '@features/wishlist/components/wishlist-list/wishlist-list';\n\nimport { defineElement, FC, onDidLoad, useElement } from '@atomify/hooks';\nimport { Fragment, h } from '@atomify/jsx';\nimport { useStore } from '@atomify/kit';\nimport { MapState, mapStore, updateMapData } from '@bpd-library/components';\nimport { BoundingBox } from '@bpd-library/types';\nimport {\n calculateBoundingBox,\n calculateMapDataBoundingBox,\n expandBoundingBox,\n extendedArea,\n ExtendedAreaModels,\n findExtendedObjectById,\n getApiObjectCenter,\n getApiObjectLayerRaster,\n} from '@bpd-library/utilities';\nimport useLoadingState from '@source/components/atoms/loading-state/hooks/use-loading-state';\nimport MapControls from '@source/components/molecules/map-controls/map-controls';\nimport { getUserWishlist, userStore, wishlistLength } from '@source/store/user';\nimport { UserState } from '@source/store/user/utilities/store.types';\nimport getExtendedAreaMapData from '@source/utilities/api-utilities/get-extended-area-map-data';\nimport { useStylesheet, useTranslate } from '@source/utilities/hooks';\nimport { getDebuggerMapOptions } from '@store/debugger';\nimport { hasConsent, ServiceConsentState, serviceConsentStore } from '@store/service-consent';\nimport { elements } from '@utilities/dom';\nimport { handleGTMPolygonInteraction } from '@utilities/gtm-map';\n\nimport { THEME } from './utilities/config/theme';\nimport { extendApiModelsWithWishlist } from './utilities/provider';\nimport {\n filterSections,\n ListSection,\n sortSectionsByConstructionNumbers,\n sortSectionsByProjects,\n updateProjectTotals,\n} from './utilities/service';\nimport style from './wishlist.scss';\nimport { ProjectTotals } from './wishlist.types';\n\nexport const Wishlist: FC = ({ element }) => {\n useStylesheet(style);\n\n const wishlistMap = useElement('[js-hook-wishlist-map]');\n const wishlistList = useElement('[js-hook-wishlist-list]');\n const wishlistHeader = useElement('[js-hook-wishlist-header]');\n\n const [, subscribe] = useStore(userStore);\n const [, subscribeMap] = useStore(mapStore);\n const [, subscribeConsentStore] = useStore(serviceConsentStore);\n\n const { setLoaded } = useLoadingState(element);\n\n let userWishlist: string[] | undefined;\n let data: ExtendedAreaModels;\n let listIsEmpty: boolean = true;\n let listSections: ListSection[] = [];\n const projectTotals: ProjectTotals = {};\n\n onDidLoad(async () => {\n data = await extendedArea.getData(window.__ENVIRONMENT_DETAILS__.areaId);\n data = extendApiModelsWithWishlist(data);\n\n handleConsent(hasConsent('mapbox'));\n });\n\n subscribeConsentStore(({ mapbox }) => handleConsent(mapbox), ['mapbox']);\n\n subscribe(\n ({ loggedIn }) => {\n if (!loggedIn) emptyWishlist();\n setupWishlist();\n },\n ['loggedIn'],\n );\n\n subscribe(\n ({ wishlist }) => {\n if (wishlist && wishlist.length > 0 && listIsEmpty) setupWishlist();\n updateListSections();\n },\n ['wishlist'],\n );\n\n subscribeMap(\n ({ hover }) => {\n if (hover.current) handleHover(hover.current?.id);\n },\n ['hover'],\n );\n\n subscribeMap(\n ({ click }) => {\n if (click) {\n const apiObject = findExtendedObjectById(data!, click.id);\n handleGTMPolygonInteraction(apiObject);\n\n if (click.url) window.open(click.url, '_self');\n }\n },\n ['click'],\n );\n\n function handleConsent(consent: boolean) {\n if (consent) {\n renderMap();\n } else {\n renderBanner();\n }\n\n setupWishlist();\n setLoaded();\n }\n\n async function renderMap() {\n const layerRaster = getApiObjectLayerRaster(data.areaProject);\n\n wishlistMap.current!.innerHTML = '';\n wishlistMap.current!.append(\n \n \n\n \n\n
\n \n
\n
,\n );\n }\n\n function renderBanner() {\n wishlistMap.current!.innerHTML = '';\n wishlistMap.current!.append(
);\n }\n\n const setupWishlist = () => {\n updateMap();\n updateListSections();\n renderWishlistList();\n renderWishlistHeader();\n listIsEmpty = listSections.length === 0;\n };\n\n const emptyWishlist = () => {\n if (hasConsent('mapbox')) updateMapData([]);\n listSections = [];\n listIsEmpty = true;\n };\n\n const updateListSections = () => {\n userWishlist = getUserWishlist();\n\n if (userWishlist) {\n listSections = filterSections(userWishlist, data);\n\n sortSectionsByProjects(listSections);\n sortSectionsByConstructionNumbers(listSections);\n updateProjectTotals(listSections, projectTotals);\n }\n };\n\n const updateMap = () => {\n if (hasConsent('mapbox')) {\n const filteredData = filterExtendedDataByWishlist(data);\n const mapData = getExtendedAreaMapData(filteredData);\n\n updateMapData(mapData);\n }\n };\n\n const getBoundingBox = (data: ExtendedAreaModels): BoundingBox | undefined => {\n const mapData = getExtendedAreaMapData(data);\n\n let boundingBox: BoundingBox;\n\n if (mapData.length) {\n boundingBox = calculateMapDataBoundingBox(mapData);\n boundingBox = expandBoundingBox(boundingBox, 0.075);\n\n return boundingBox;\n } else {\n const areaProjectCenter = getApiObjectCenter(data.areaProject);\n\n if (areaProjectCenter) {\n boundingBox = calculateBoundingBox(areaProjectCenter);\n boundingBox = expandBoundingBox(boundingBox, 0.2);\n\n return boundingBox;\n }\n }\n\n return;\n };\n\n const filterExtendedDataByWishlist = (data: ExtendedAreaModels) => {\n const userWishlist = getUserWishlist() || [];\n\n return {\n ...data,\n constructionNumbers: data.constructionNumbers.filter(({ id }) =>\n userWishlist.includes(id),\n ),\n apartmentBuildings: data.apartmentBuildings.filter(\n ({ constructionNumberIds }) =>\n !!constructionNumberIds?.find((id) => userWishlist.includes(id)),\n ),\n };\n };\n\n const renderWishlistList = () => {\n if (wishlistList.current) {\n wishlistList.current.innerHTML = '';\n wishlistList.current.append(\n ,\n );\n }\n };\n\n const renderWishlistHeader = () => {\n if (wishlistHeader.current) {\n wishlistHeader.current.innerHTML = '';\n wishlistHeader.current.append(\n ,\n );\n }\n };\n\n const toggleMap = () => {\n elements.body.classList.toggle('wishlist--map-is-expanded');\n };\n\n const handleHover = (id: string) => {\n if (wishlistList.current) {\n const card = wishlistList.current.querySelector(`#${id}`) as HTMLElement;\n\n if (card) {\n const offsetTop = card.offsetTop - wishlistList.current.offsetHeight * 0.5;\n\n wishlistList.current.scroll({\n top: offsetTop,\n left: 0,\n behavior: 'smooth',\n });\n }\n }\n };\n\n return (\n
\n
\n\n
\n
\n\n
\n \n
\n\n
\n
\n
\n );\n};\n\ndefineElement('bpd-wishlist', Wishlist);\n","import { ExtendedConstructionNumber, showPrice } from '@bpd-library/utilities';\nimport { isGermany } from '@utilities/is-germany';\n\nimport { translateItem } from '../hooks';\n\nconst NHG_LIMIT_KEY = 'NHGLimit';\nconst NGH_ECO_LIMIT_KEY = 'NHGEcoLimit';\n\nconst translateNhgLimit = async () => parseInt(await translateItem(NHG_LIMIT_KEY));\nconst translateNhgEcoLimit = async () => parseInt(await translateItem(NGH_ECO_LIMIT_KEY));\n\nconst nhgChecker = () => {\n let nhgLimit: number;\n let nhgEcoLimit: number;\n\n const init = async () => {\n nhgLimit = await translateNhgLimit();\n nhgEcoLimit = await translateNhgEcoLimit();\n };\n\n const isNhg = (amount: number, options?: { ecoLimit?: boolean }) => {\n if (options?.ecoLimit) return amount < nhgEcoLimit;\n return amount <= nhgLimit;\n };\n\n const isConstructionNumberNhg = (constructionNumber: ExtendedConstructionNumber) => {\n if (isGermany() || !showPrice({ constructionNumber })) return false;\n const price = constructionNumber.salesPrice?.amount?.from;\n return !!price && isNhg(price, { ecoLimit: constructionNumber.isEnergyNeutral });\n };\n\n init();\n\n return { isConstructionNumberNhg };\n};\n\nconst { isConstructionNumberNhg } = nhgChecker();\n\nexport { isConstructionNumberNhg };\n","import { ExtendedAreaModels } from '@bpd-library/utilities';\n\nimport shouldDrawPolygon from '../api-utilities/should-draw-polygon';\nimport {\n createApartmentBuildingMapData,\n createConstructionNumberMapData,\n createProjectPhaseMapData,\n createPropertyTypeMapData,\n} from './service';\n\nconst extendApiModelsWithMapData = async (\n data: ExtendedAreaModels,\n options?: { alwaysShowSoldProjectPolygons?: boolean },\n): Promise => {\n data.constructionNumbers\n .filter((constructionNUmber) => shouldDrawPolygon(constructionNUmber))\n .forEach((constructionNumber) => {\n constructionNumber.mapDataItems = createConstructionNumberMapData(constructionNumber);\n });\n\n data.propertyTypes\n .filter((propertyType) => shouldDrawPolygon(propertyType))\n .forEach((propertyType) => {\n propertyType.mapDataItems = createPropertyTypeMapData(propertyType);\n });\n\n for (const projectPhase of data.projectPhases.filter((project) =>\n shouldDrawPolygon(project, options),\n )) {\n projectPhase.mapDataItems = await createProjectPhaseMapData(projectPhase, options);\n }\n\n data.apartmentBuildings!.forEach((apartmentBuilding) => {\n apartmentBuilding.mapDataItems = createApartmentBuildingMapData(apartmentBuilding);\n });\n\n return data;\n};\n\nexport { extendApiModelsWithMapData };\n","import { h } from '@atomify/jsx';\nimport { MapTheme, PointerTheme, PolygonTheme, RGBA } from '@bpd-library/types';\nimport { MapLabel } from '@source/components/atoms/map-label';\nimport { PickPartial } from '@utilities/types';\n\nexport type MapThemeExtension = {\n polygon?: PolygonTheme;\n pointer?: PickPartial;\n};\n\nexport type RGB = [number, number, number];\n\nexport const WHITE: RGB = [255, 255, 255]; // #FFFFFF\nexport const GREY_LIGHT: RGB = [190, 190, 190]; // #BEBEBE\nexport const GREY_DARK: RGB = [77, 77, 77]; // #4D4D4D\nexport const PURPLE: RGB = [217, 63, 115]; // #D93F73\nexport const RED: RGB = [200, 56, 53]; // #C83835\nexport const ORANGE: RGB = [240, 164, 0]; // #F0A400\nexport const GREEN: RGB = [176, 209, 72]; // #B0D148\nexport const BLUE: RGB = [50, 193, 222]; // #32C1DE\n\nexport const WHITE_ALPHA = [...WHITE, 0.25] as RGBA;\nexport const GREY_LIGHT_ALPHA = [...GREY_LIGHT, 0.25] as RGBA;\nexport const GREY_DARK_ALPHA = [...GREY_DARK, 0.25] as RGBA;\nexport const PURPLE_ALPHA = [...PURPLE, 0.4] as RGBA;\nexport const PURPLE_ALPHA_LIGHT = [...PURPLE, 0.7] as RGBA;\nexport const RED_ALPHA = [...RED, 0.6] as RGBA;\nexport const ORANGE_ALPHA = [...ORANGE, 0.4] as RGBA;\nexport const GREEN_ALPHA = [...GREEN, 0.5] as RGBA;\nexport const BLUE_ALPHA = [...BLUE, 0.6] as RGBA;\nexport const BLUE_ALPHA_LIGHT = [...BLUE, 0.25] as RGBA;\n\nexport const HOVER: {\n fill: RGBA;\n stroke: RGBA;\n} = {\n fill: BLUE_ALPHA,\n stroke: [...WHITE, 0.8],\n};\n\nexport const POLYGON_STATUS_THEME: MapThemeExtension = {\n polygon: {\n settings: [\n {\n variant: 'inPreparation',\n normal: {\n fill: WHITE_ALPHA,\n stroke: [...GREY_LIGHT, 1],\n },\n hover: HOVER,\n },\n {\n variant: 'available',\n normal: {\n fill: GREEN_ALPHA,\n stroke: [...WHITE, 1],\n },\n hover: HOVER,\n },\n {\n variant: 'inOption',\n normal: {\n fill: ORANGE_ALPHA,\n stroke: [...WHITE, 1],\n },\n hover: HOVER,\n },\n {\n variant: 'reserved',\n normal: {\n fill: ORANGE_ALPHA,\n stroke: [...WHITE, 1],\n },\n hover: HOVER,\n },\n {\n variant: 'sold',\n normal: {\n fill: RED_ALPHA,\n stroke: [...WHITE, 1],\n },\n hover: HOVER,\n },\n {\n variant: 'underConstruction',\n normal: {\n fill: PURPLE_ALPHA,\n stroke: [...WHITE, 1],\n },\n hover: HOVER,\n },\n ],\n },\n};\n\nexport const PROJECT_PHASE_THEME: MapThemeExtension = {\n polygon: {\n settings: [\n {\n variant: 'projectPhase',\n normal: {\n fill: WHITE_ALPHA,\n stroke: [...GREY_DARK, 1],\n },\n hover: {\n fill: WHITE_ALPHA,\n stroke: [...GREY_DARK, 1],\n },\n },\n ],\n },\n pointer: {\n settings: [\n {\n variant: 'projectPhasePointer',\n minzoom: 14,\n createElement: (item) => {\n return ;\n },\n },\n ],\n },\n};\n\nexport const extendMapTheme = (...mapThemes: (MapTheme | MapThemeExtension)[]): MapTheme => {\n const newTheme: MapTheme = {\n polygon: { settings: [] },\n pointer: { settings: [], cluster: (total) => {total} },\n };\n\n mapThemes.forEach(({ polygon, pointer }) => {\n polygon?.settings.length && newTheme.polygon?.settings?.push(...polygon.settings);\n pointer?.settings.length && newTheme.pointer?.settings?.push(...pointer.settings);\n if (pointer?.cluster && newTheme.pointer) {\n newTheme.pointer.cluster = pointer.cluster;\n }\n });\n\n return newTheme;\n};\n\nexport const THEME = extendMapTheme(POLYGON_STATUS_THEME, PROJECT_PHASE_THEME);\n","import { MapDataItem } from '@bpd-library/types';\nimport {\n ExtendedApartmentBuilding,\n ExtendedConstructionNumber,\n ExtendedProjectPhase,\n ExtendedPropertyType,\n getApiObjectCoordinates,\n} from '@bpd-library/utilities';\n\nimport { formatDetailPageUrl, formatProjectPhaseStatusAsync } from '../api-formatters';\n\nconst createConstructionNumberMapData = (\n constructionNumber: ExtendedConstructionNumber,\n options?: { showSold?: boolean },\n): MapDataItem[] | undefined => {\n const { id } = constructionNumber;\n\n const coordinates = getApiObjectCoordinates(constructionNumber);\n if (!coordinates) return;\n\n const variant = getConstructionNumberVariant(constructionNumber, options);\n const url = formatDetailPageUrl({ constructionNumber });\n\n return [\n {\n coordinates,\n id,\n variant,\n url,\n objectType: 'constructionNumber',\n },\n ];\n};\n\nconst createPropertyTypeMapData = (\n propertyType: ExtendedPropertyType,\n): MapDataItem[] | undefined => {\n const { id } = propertyType;\n\n const coordinates = getApiObjectCoordinates(propertyType);\n if (!coordinates) return;\n\n const variant = getPropertyTypeVariant(propertyType);\n const url = formatDetailPageUrl({ propertyType });\n\n return [\n {\n coordinates,\n id,\n variant,\n url,\n objectType: 'propertyType',\n },\n ];\n};\n\nconst createProjectPhaseMapData = async (\n projectPhase: ExtendedProjectPhase,\n options?: { alwaysShowSoldProjectPolygons?: boolean },\n): Promise => {\n const { id } = projectPhase;\n\n const coordinates = getApiObjectCoordinates(projectPhase);\n\n if (!coordinates) return;\n\n const status = await formatProjectPhaseStatusAsync(projectPhase);\n\n const useSoldVariant = options?.alwaysShowSoldProjectPolygons && projectPhase.status === 'Sold';\n\n return [\n {\n coordinates,\n id,\n variant: useSoldVariant ? 'projectPhaseSold' : 'projectPhase',\n objectType: 'projectPhase',\n },\n {\n coordinates,\n id: ` ${id}`,\n variant: useSoldVariant ? 'projectPhaseSoldPointer' : 'projectPhasePointer',\n title: projectPhase.name,\n status: status?.label,\n },\n ];\n};\n\nconst createApartmentBuildingMapData = (\n apartmentBuilding: ExtendedApartmentBuilding,\n): MapDataItem[] | undefined => {\n const { id } = apartmentBuilding;\n\n const coordinates = getApiObjectCoordinates(apartmentBuilding);\n if (!coordinates) return;\n\n const variant = getApartmentBuildingVariant(apartmentBuilding);\n\n return [\n {\n id,\n coordinates,\n variant,\n objectType: 'apartmentBuilding',\n },\n ];\n};\n\nconst getConstructionNumberVariant = (\n constructionNumber: ExtendedConstructionNumber,\n options?: { showSold?: boolean },\n): string => {\n const { propertyType, projectPhase, status } = constructionNumber;\n\n if (status === 'Reserved') return 'reserved';\n if (status === 'AssigningOn') return 'inOption';\n\n if (!propertyType || !projectPhase) return '';\n\n if (constructionNumber.availabilityStatus === 'Sold' && projectPhase.status === 'Sold')\n return options?.showSold ? 'underConstruction' : 'hidden';\n\n if (projectPhase.status === 'InPreparation') return 'inPreparation';\n\n if (\n constructionNumber.projectPhase?.status === 'OnSale' ||\n constructionNumber.projectPhase?.status === 'ForRent'\n ) {\n switch (constructionNumber.availabilityStatus) {\n case 'Available':\n return 'available';\n case 'InOption':\n return 'inOption';\n case 'Sold':\n return 'sold';\n }\n }\n\n return 'available';\n};\n\nconst getPropertyTypeVariant = (propertyType: ExtendedPropertyType): string => {\n switch (propertyType.status) {\n case 'InPreparation':\n case 'SaleSoon':\n return 'inPreparation';\n case 'SaleStarted':\n case 'ForRent':\n case 'AmountAvailable':\n return 'available';\n case 'AssigningOn':\n case 'InOption':\n return 'inOption';\n case 'Sold':\n case 'Rented':\n return 'sold';\n case 'UnderConstruction':\n return 'underConstruction';\n }\n\n return '';\n};\n\nconst getApartmentBuildingVariant = (apartmentBuilding: ExtendedApartmentBuilding): string => {\n const { status } = apartmentBuilding;\n\n switch (status) {\n case 'InPreparation':\n case 'SaleSoon':\n return 'inPreparation';\n case 'Available':\n case 'SaleStarted':\n case 'AmountAvailable':\n case 'ForRent':\n return 'available';\n case 'InOption':\n case 'AssigningOn':\n return 'inOption';\n case 'Rented':\n case 'Sold':\n return 'sold';\n case 'UnderConstruction':\n return 'underConstruction';\n }\n\n return '';\n};\n\nexport {\n createConstructionNumberMapData,\n createPropertyTypeMapData,\n createProjectPhaseMapData,\n createApartmentBuildingMapData,\n getConstructionNumberVariant,\n};\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27m10.5 14 4-8 4 8h-8z%27/%3E%3Cpath d=%27m10.5 16 4 8 4-8h-8z%27 fill=%27%23ccc%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23333%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23aaa%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath d=%27m14 5 1 1-9 9-1-1 9-9z%27 fill=%27red%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%2333b5e5%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23e58978%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%2333b5e5%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23e54e33%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2788%27 height=%2723%27 xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27%3E%3Cdefs%3E%3Cpath id=%27a%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27b%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27c%27%3E%3Crect width=%27100%25%27 height=%27100%25%27 fill=%27%23fff%27/%3E%3Cuse xlink:href=%27%23a%27/%3E%3Cuse xlink:href=%27%23b%27/%3E%3C/mask%3E%3Cg opacity=%27.3%27 stroke=%27%23000%27 stroke-width=%273%27%3E%3Ccircle mask=%27url%28%23c%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23b%27 mask=%27url%28%23c%29%27/%3E%3C/g%3E%3Cg opacity=%27.9%27 fill=%27%23fff%27%3E%3Cuse xlink:href=%27%23a%27/%3E%3Cuse xlink:href=%27%23b%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27m10.5 14 4-8 4 8h-8z%27/%3E%3Cpath d=%27m10.5 16 4 8 4-8h-8z%27 fill=%27%23999%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23fff%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23999%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath d=%27m14 5 1 1-9 9-1-1 9-9z%27 fill=%27red%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_19___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2788%27 height=%2723%27 xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27%3E%3Cdefs%3E%3Cpath id=%27a%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27b%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27c%27%3E%3Crect width=%27100%25%27 height=%27100%25%27 fill=%27%23fff%27/%3E%3Cuse xlink:href=%27%23a%27/%3E%3Cuse xlink:href=%27%23b%27/%3E%3C/mask%3E%3Cg stroke=%27%23000%27 stroke-width=%273%27%3E%3Ccircle mask=%27url%28%23c%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23b%27 mask=%27url%28%23c%29%27/%3E%3C/g%3E%3Cg fill=%27%23fff%27%3E%3Cuse xlink:href=%27%23a%27/%3E%3Cuse xlink:href=%27%23b%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_20___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_21___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_22___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_23___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27m10.5 14 4-8 4 8h-8z%27/%3E%3Cpath d=%27m10.5 16 4 8 4-8h-8z%27 fill=%27%23ccc%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_24___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_25___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2729%27 height=%2729%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill=%27%23666%27%3E%3Cpath d=%27M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z%27/%3E%3Ccircle cx=%2710%27 cy=%2710%27 r=%272%27/%3E%3Cpath d=%27m14 5 1 1-9 9-1-1 9-9z%27 fill=%27red%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_26___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2788%27 height=%2723%27 xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 fill-rule=%27evenodd%27%3E%3Cdefs%3E%3Cpath id=%27a%27 d=%27M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z%27/%3E%3Cpath id=%27b%27 d=%27M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z%27/%3E%3C/defs%3E%3Cmask id=%27c%27%3E%3Crect width=%27100%25%27 height=%27100%25%27 fill=%27%23fff%27/%3E%3Cuse xlink:href=%27%23a%27/%3E%3Cuse xlink:href=%27%23b%27/%3E%3C/mask%3E%3Cg stroke=%27%23fff%27 stroke-width=%273%27 fill=%27%23fff%27%3E%3Ccircle mask=%27url%28%23c%29%27 cx=%2711.5%27 cy=%2711.5%27 r=%279.25%27/%3E%3Cuse xlink:href=%27%23b%27 mask=%27url%28%23c%29%27/%3E%3C/g%3E%3Cuse xlink:href=%27%23a%27/%3E%3Cuse xlink:href=%27%23b%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_27___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2724%27 height=%2724%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill-rule=%27evenodd%27%3E%3Cpath d=%27M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_28___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2724%27 height=%2724%27 viewBox=%270 0 20 20%27 xmlns=%27http://www.w3.org/2000/svg%27 fill-rule=%27evenodd%27 fill=%27%23fff%27%3E%3Cpath d=%27M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___);\nvar ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___);\nvar ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___);\nvar ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___);\nvar ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___);\nvar ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___);\nvar ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___);\nvar ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___);\nvar ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___);\nvar ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".mapboxgl-map{-webkit-tap-highlight-color:transparent;font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:-webkit-grabbing;cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{-ms-touch-action:none;touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;-webkit-transform:translate(0);transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){-webkit-box-shadow:0 0 0 2px rgba(0,0,0,.1);box-shadow:0 0 0 2px rgba(0,0,0,.1)}.mapboxgl-ctrl-group button{background-color:transparent;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:0;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{-webkit-box-shadow:0 0 2px 2px #0096ff;box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{-webkit-box-shadow:0 0 2px 2px #0096ff;box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){-webkit-box-shadow:none;box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{-webkit-animation:mapboxgl-spin 2s linear infinite;animation:mapboxgl-spin 2s linear infinite}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;-webkit-box-sizing:border-box;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.mapboxgl-popup{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.mapboxgl-popup-anchor-left{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.mapboxgl-popup-anchor-right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{-ms-flex-item-align:start;-webkit-align-self:flex-start;align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{-ms-flex-item-align:end;-webkit-align-self:flex-end;align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{-ms-flex-item-align:start;-webkit-align-self:flex-start;align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{-ms-flex-item-align:end;-webkit-align-self:flex-end;align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{background:#fff;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;-webkit-transition:opacity .2s;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite;content:\\\"\\\";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;-webkit-box-shadow:0 0 3px rgba(0,0,0,.35);box-shadow:0 0 3px rgba(0,0,0,.35);-webkit-box-sizing:border-box;box-sizing:border-box;content:\\\"\\\";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:\\\"\\\";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;-webkit-transform:translateY(-28px) skewY(-20deg);transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;-webkit-transform:translate(7.5px,-28px) skewY(20deg);transform:translate(7.5px,-28px) skewY(20deg)}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}70%{opacity:0;-webkit-transform:scale(3);transform:scale(3)}to{opacity:0;-webkit-transform:scale(1);transform:scale(1)}}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}70%{opacity:0;-webkit-transform:scale(3);transform:scale(3)}to{opacity:0;-webkit-transform:scale(1);transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}bpd-map{display:block;position:relative}.c-map,bpd-map{height:100%;width:100%}.c-map .mapboxgl-canvas,.c-map .mapboxgl-canvas-container{height:100%!important;width:100%!important}.c-map .mapboxgl-ctrl-bottom-left{display:none}.c-map .mapboxgl-popup{pointer-events:all}.c-map .mapboxgl-popup .mapboxgl-popup-content{border-radius:0;-webkit-box-shadow:0 1rem 2rem rgba(0,0,0,.09);box-shadow:0 1rem 2rem rgba(0,0,0,.09);padding:0}.c-map .mapboxgl-ctrl-geocoder,.c-map .mapboxgl-popup .mapboxgl-popup-tip{display:none}.map--hovering .map__cluster:not(:hover),.map--hovering .map__pointer:not(:hover):not(.map__pointer--focus){opacity:.3}.map__container{height:100%;width:100%}.map__cluster,.map__pointer{-webkit-transition:opacity .3s cubic-bezier(.215,.61,.355,1);transition:opacity .3s cubic-bezier(.215,.61,.355,1)}.map__pointer{-webkit-animation:fadein .3s cubic-bezier(.215,.61,.355,1);animation:fadein .3s cubic-bezier(.215,.61,.355,1)}.map__pointer--disabled{pointer-events:none}.map__pointer--fadeout{-webkit-animation:fadeout .3s cubic-bezier(.215,.61,.355,1);animation:fadeout .3s cubic-bezier(.215,.61,.355,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards}@-webkit-keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeout{0%{opacity:1}to{opacity:0}}@keyframes fadeout{0%{opacity:1}to{opacity:0}}.mapboxgl-map{font-family:Avenir Next W02,sans-serif}.map__navigation{-webkit-box-orient:vertical;-webkit-box-direction:normal;background-color:var(--color-white);-webkit-box-shadow:0 0 2rem 0 rgba(0,0,0,.17);box-shadow:0 0 2rem 0 rgba(0,0,0,.17);-webkit-flex-flow:column wrap;-ms-flex-flow:column wrap;flex-flow:column wrap;position:absolute;right:2.2rem;top:1.8rem;z-index:9}.map__button,.map__navigation{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.map__button{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;color:var(--color-black);height:3.3rem;-webkit-justify-content:center;justify-content:center;width:3.3rem}.map__button+.map__button{border-top:1px solid rgba(0,0,0,.09)}.map__button .svg-icons-plus{height:1.5rem;width:1.5rem}html.is-touch--with-mouse .map__button:hover,html:not(.is-touch) .map__button:hover{background-color:var(--color-bg)}.map__minus{background-color:currentColor;display:block;height:.1rem;width:1.5rem}.map__close,.map__open{display:none}.c-wishlist-toggle svg{color:var(--color-grey-50);-webkit-transition:color .3s cubic-bezier(.215,.61,.355,1);transition:color .3s cubic-bezier(.215,.61,.355,1)}.c-wishlist-toggle .button__label{-webkit-box-flex:2;-ms-flex-positive:2;-webkit-flex-grow:2;flex-grow:2}.c-wishlist-toggle .svg-icons-heart-plus{height:2rem;width:2rem}[is-added] .c-wishlist-toggle svg{color:var(--color-progression)}html.is-touch--with-mouse .c-wishlist-toggle:hover .button__icon,html:not(.is-touch) .c-wishlist-toggle:hover .button__icon{-webkit-transform:none;transform:none}.wishlist-toggle__label--is-added,[is-added] .wishlist-toggle__label{display:none}[is-added] .wishlist-toggle__label--is-added{display:block}.c-wishlist-toggle-icon{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;color:var(--color-grey-50);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;justify-content:center}[is-added] .c-wishlist-toggle-icon svg{color:var(--color-progression)}.c-wishlist-header{padding:4.8rem 0;text-align:center}.wishlist-header__wishlist-text{display:block;margin-top:.8rem;text-align:center}.wishlist-list__empty{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-box-align:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%;-webkit-justify-content:center;justify-content:center;padding:2.5rem 0;text-align:center}.wishlist-list__empty .svg-icons-wishlist-empty{color:var(--color-grey-30);margin-bottom:2.4rem;width:110px}.wishlist-list__project{margin-bottom:3.6rem}.wishlist-list__construction-number+.wishlist-list__construction-number{margin-top:3.2rem}.wishlist-list__title{font-size:1.8rem;margin-bottom:.8rem}.wishlist-list__text{color:var(--color-grey-30);font-size:1.4rem;margin-bottom:2.5rem;max-width:28rem}.wishlist-list__container{border-bottom:.1rem solid var(--color-grey-10);padding-bottom:3.2rem;padding-top:3.2rem}.wishlist-list__subscription-box{margin-top:3.2rem}.wishlist-list__more{padding:3.2rem 0}.c-project-heading,.project-heading__count{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.project-heading__count{-webkit-box-pack:center;-ms-flex-pack:center;background-color:var(--color-grey-10);border-radius:50%;color:var(--black);height:4rem;-webkit-justify-content:center;justify-content:center;margin-right:2.1rem;width:4rem}.c-wishlist,.project-heading__details{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.wishlist__main{position:relative;width:100%}.wishlist__list{padding-left:1.6rem;padding-right:1.6rem;-webkit-transition:width .3s cubic-bezier(.455,.03,.515,.955);transition:width .3s cubic-bezier(.455,.03,.515,.955)}.wishlist__mapbox{bottom:0;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;-webkit-transition:.3s cubic-bezier(.455,.03,.515,.955);transition:.3s cubic-bezier(.455,.03,.515,.955);-webkit-transition-property:opacity,width;transition-property:opacity,width;z-index:2}.wishlist__mapbox .mapboxgl-control-container{display:none}.wishlist--map-is-expanded .wishlist__mapbox{opacity:1;pointer-events:all}.wishlist__mapbox-inner{height:100%;padding-top:6.5rem;width:100%}.wishlist__map-controls{position:absolute;right:2rem;top:8.5rem;z-index:2}.wishlist__map-icon{pointer-events:none}.wishlist__map-icon svg{height:1rem;width:1.2rem}.wishlist__map-expand{left:0;position:absolute;top:0;z-index:1}.wishlist__map-expand svg{height:1.6rem;width:1.6rem}.wishlist__toggle-container{background-color:var(--color-grey-5);bottom:0;left:0;padding:.8rem;position:fixed;width:100%;z-index:5}.wishlist__map-toggle .svg-icons-listview,.wishlist__map-toggle .svg-icons-pin{height:1.8rem;width:1.5rem}.wishlist__map-toggle .svg-icons-listview{height:1.6rem;width:1.6rem}@media only screen and (min-width:48em){.map__navigation{right:1.5rem;top:3rem}.c-wishlist-header{padding:8rem 0}.c-wishlist-list{height:100%}.wishlist-list__project{margin-bottom:2.4rem}.wishlist-list__construction-number+.wishlist-list__construction-number{margin-top:2.4rem}.c-wishlist{height:calc(100vh - 7.2rem)}.wishlist__main{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-height:0}.wishlist__header{border-bottom:.1rem solid var(--color-grey-10);width:100%}.wishlist__list{height:100%;overflow-y:auto;padding-left:3.2rem;padding-right:3.2rem;width:60%}.wishlist--map-is-expanded .wishlist__list{width:45%}.wishlist__list-container{padding-top:10rem}.wishlist__mapbox{background-color:var(--color-grey-10);left:auto;opacity:1;overflow:hidden;pointer-events:all;position:absolute;width:40%}.wishlist--map-is-expanded .wishlist__mapbox{width:55%}.wishlist__mapbox-inner{height:100%;left:50%;padding-top:0;position:absolute;top:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:60vw;z-index:0}.wishlist__map-controls{top:2rem}.wishlist__toggle-container{display:none}}@media(-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){-webkit-box-shadow:0 0 0 2px ButtonText;box-shadow:0 0 0 2px ButtonText}.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \")}a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \")}}@media(-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \")}a.mapboxgl-ctrl-logo{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \")}}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \");border:0;border-radius:12px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:0;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \")}}@media print{.mapbox-improve-map{display:none}}@media only screen and (max-width:47.96875em){.map__open{bottom:0;display:block;left:0;position:fixed;z-index:9}.map--is-visible .map__close{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;background-color:var(--color-white);-webkit-box-shadow:0 0 2rem 0 rgba(0,0,0,.17);box-shadow:0 0 2rem 0 rgba(0,0,0,.17);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:3.3rem;-webkit-justify-content:center;justify-content:center;left:2.2rem;position:fixed;top:1.8rem;width:3.3rem;z-index:11}.map--is-visible .map__close .svg-icons-close{height:1.3rem;width:1.3rem}html.is-touch--with-mouse .map--is-visible .map__close:hover,html:not(.is-touch) .map--is-visible .map__close:hover{background-color:var(--color-bg)}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["element","loadingState","querySelector","setLoaded","classList","add","addEventListener","remove","sunDirection","classes","class","ariaLabel","size","svg","onClick","event","eventCategory","eventAction","eventLabel","zoomIn","zoomOut","disabled","WishlistHeader","HTMLElement","componentDidLoad","this","subscribe","user","userStore","wishlistLength","render","theseTranslation","housesAreSavedTranslation","wishlistIsEmptyTranslation","myWishlistTranslation","reRender","tag","WishlistProjectHeading","data","total","title","status","statusLabel","WishlistList","projectTotals","loginButtonLabel","renderList","error","console","log","hover","previousHoverCard","unsetHighlighted","card","Array","from","cards","find","id","current","setHighlighted","handleHover","constructionNumber","isApartment","apartmentBuilding","zoom","clearHover","handleGTM","url","setTimeout","window","location","href","renderSubscriptionBox","project","districtId","name","variant","boxTitle","boxContent","replace","value","projectPhaseId","projectPhaseName","buttonLabel","deleteWhenSubscribed","subscribedProjects","projectPhases","listContainer","innerHTML","append","listData","length","map","isSubscribedToProject","label","constructionNumbers","propertyType","propertyTypeName","mainImage","identifier","areaProject","specs","rooms","livingArea","push","houseName","onMouseEnter","onMouseLeave","onFocus","price","isNhg","image","alt","wishlistItemCount","shoppingCartUrl","hidePrice","canShowPrice","compare","website","disablePropertyComparison","isLoggedIn","type","__ENVIRONMENT_DETAILS__","areaHouseOverviewUrl","handleLogin","login","style","THEME","polygon","settings","normal","fill","stroke","pointer","disablePointerEvents","createElement","STATUS_ORDER","getSectionByProject","projectName","section","createPolygonMarker","apiObject","geometry","firstCoordinate","coordinates","getApiObjectCenter","objectType","extendApiModelsWithWishlist","drawnApartmentBuildingIds","forEach","includes","marker","getApiObjectCoordinates","createConstructionNumberPolygon","mapDataItems","apartmentBuildingId","findApartmentBuilding","apartmentBuildings","createApartmentBuildingPolygon","Wishlist","wishlistMap","wishlistList","wishlistHeader","useStore","subscribeMap","subscribeConsentStore","userWishlist","listIsEmpty","listSections","handleConsent","consent","async","renderMap","layerRaster","getApiObjectLayerRaster","toggleOff","icon","toggleOn","toggleMap","className","options","boundingBox","getBoundingBox","autoOpenUrl","theme","renderBanner","setupWishlist","extendedArea","areaId","mapbox","loggedIn","emptyWishlist","wishlist","updateListSections","click","findExtendedObjectById","open","updateMap","renderWishlistList","renderWishlistHeader","getUserWishlist","wishListData","sections","filter","s","listSection","filterSections","sort","sectionA","sectionB","indexOf","sortSectionsByProjects","a","b","availabilityStatus","sortSectionsByConstructionNumbers","projectNames","projectTotal","Text","textContent","Object","entries","updateProjectTotals","filteredData","filterExtendedDataByWishlist","mapData","calculateMapDataBoundingBox","expandBoundingBox","areaProjectCenter","calculateBoundingBox","constructionNumberIds","offsetTop","offsetHeight","scroll","top","left","behavior","width","isConstructionNumberNhg","nhgLimit","nhgEcoLimit","parseInt","translateNhgLimit","translateNhgEcoLimit","init","showPrice","salesPrice","amount","ecoLimit","isEnergyNeutral","nhgChecker","extendApiModelsWithMapData","constructionNUmber","propertyTypes","projectPhase","WHITE","GREY_LIGHT","GREY_DARK","PURPLE","RED","ORANGE","GREEN","BLUE","WHITE_ALPHA","PURPLE_ALPHA","PURPLE_ALPHA_LIGHT","RED_ALPHA","ORANGE_ALPHA","GREEN_ALPHA","BLUE_ALPHA","BLUE_ALPHA_LIGHT","HOVER","POLYGON_STATUS_THEME","PROJECT_PHASE_THEME","minzoom","item","subtitle","extendMapTheme","newTheme","cluster","mapThemes","createConstructionNumberMapData","getConstructionNumberVariant","createPropertyTypeMapData","getPropertyTypeVariant","createProjectPhaseMapData","useSoldVariant","alwaysShowSoldProjectPolygons","createApartmentBuildingMapData","getApartmentBuildingVariant","showSold","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_URL_IMPORT_19___","___CSS_LOADER_URL_IMPORT_20___","___CSS_LOADER_URL_IMPORT_21___","___CSS_LOADER_URL_IMPORT_22___","___CSS_LOADER_URL_IMPORT_23___","___CSS_LOADER_URL_IMPORT_24___","___CSS_LOADER_URL_IMPORT_25___","___CSS_LOADER_URL_IMPORT_26___","___CSS_LOADER_URL_IMPORT_27___","___CSS_LOADER_URL_IMPORT_28___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","___CSS_LOADER_URL_REPLACEMENT_20___","___CSS_LOADER_URL_REPLACEMENT_21___","___CSS_LOADER_URL_REPLACEMENT_22___","___CSS_LOADER_URL_REPLACEMENT_23___","___CSS_LOADER_URL_REPLACEMENT_24___","___CSS_LOADER_URL_REPLACEMENT_25___","___CSS_LOADER_URL_REPLACEMENT_26___","___CSS_LOADER_URL_REPLACEMENT_27___","___CSS_LOADER_URL_REPLACEMENT_28___","module","toString"],"sourceRoot":""}