{"version":3,"file":"static/chunks/7755.1dfcb85cf8bd63fd.js","mappings":"2XAUA,IAAMA,EAAa,OAAC,CAAEC,KAAAA,CAAI,CAAEC,MAAAA,CAAK,CAAEC,KAAAA,CAAI,CAAEC,KAAAA,CAAI,CAAE,CAAAC,EACrC,CAAEC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,UACvBC,EAAkBC,CAAAA,EAAAA,EAAAA,CAAAA,EAAeP,GACjC,CAACQ,EAAUC,EAAY,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACnCC,EAAmBC,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,MAI1BC,EAAUC,IAAWC,IAAAA,UAAoB,CAAE,CAC7C,CAACA,GAAAA,CAAAA,uBAA8B,CAAC,CAAEP,CACtC,GAEA,MACI,GAAAQ,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWN,YACZ,GAAAG,EAAAI,GAAA,EAACC,IAAAA,CAAEF,UAAWJ,IAAAA,gBAA0B,CAAEhB,KAAMA,WAC5C,GAAAiB,EAAAI,GAAA,EAACE,OAAAA,CAAKH,UAAU,mBAAWlB,MAE/B,GAAAe,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,qBAA+B,WAC3C,GAAAC,EAAAI,GAAA,EAACF,MAAAA,CAAIC,UAAWJ,IAAAA,iBAA2B,UACtCT,GACG,GAAAU,EAAAI,GAAA,EAACG,EAAAA,CAAeA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAKjB,GAAAA,CAAiBkB,QAAS,QAGvD,GAAAR,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,mBAA6B,WACzC,GAAAC,EAAAI,GAAA,EAACE,OAAAA,CAAKH,UAAWJ,IAAAA,eAAyB,UACrCX,EAAE,gBAEP,GAAAY,EAAAI,GAAA,EAACK,KAAAA,CAAGN,UAAWJ,IAAAA,iBAA2B,UAAGd,IAC7C,GAAAe,EAAAI,GAAA,EAACM,IAAAA,CAAEP,UAAWJ,IAAAA,gBAA0B,UAAGb,IAC3C,GAAAc,EAAAI,GAAA,EAACO,EAAAA,CAAaA,CAAAA,CACVC,SAAU,IACVC,OAAQrB,EAAW,OAAS,WAC5B,GAAAQ,EAAAI,GAAA,EAACF,MAAAA,CACGY,GAAI,cACJX,UAAWJ,IAAAA,0BAAoC,CAC/CgB,KAAK,SACLC,IAAKrB,WACJT,MAGT,GAAAc,EAAAI,GAAA,EAACa,SAAAA,CACGd,UAAWJ,IAAAA,kBAA4B,CACvCmB,QApCG,IAAMzB,EAAY,CAACD,GAqCtB2B,gBAAe,cACfC,gBAAe5B,EACf6B,gBAAc,OACdC,YAAAA,CACelC,EAAE,iBAAoB,yBAM7D,CAEAN,CAAAA,EAAWyC,SAAS,CAAG,CACnBxC,KAAMyC,IAAAA,MAAgB,CACtBxC,MAAOwC,IAAAA,MAAgB,CACvBvC,KAAMuC,IAAAA,MAAgB,CACtBtC,KAAMsC,IAAAA,MAAgB,EAG1B1C,EAAW2C,YAAY,CAAG,CACtB1C,KAAM,GACNC,MAAO,CAAC,EACRC,KAAM,GACNC,KAAM,EACV,6CExEA,IAAMwC,EAAqB,QAEnBC,EAFoB,CAAEC,MAAAA,CAAK,CAAEC,UAAAA,CAAS,CAAEC,QAAAA,CAAO,CAAEC,IAAAA,CAAG,CAAEC,KAAAA,CAAI,CAAE,CAAA7C,EAC1D,CAAEC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,UAW7B,OANIsC,EADA,QAASM,QAAUF,EACP,IAAIG,IAAIH,GAAKI,IAAI,CAGjBJ,EAAIK,OAAO,CAAC,gBAAiB,IAIzC,GAAApC,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,kBAA4B,WACxC,GAAAC,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,wBAAkC,WAC9C,GAAAC,EAAAI,GAAA,EAACiC,KAAAA,CAAGlC,UAAWJ,IAAAA,0BAAoC,UAC9CX,EAAE,+BAGP,GAAAY,EAAAC,IAAA,EAACqC,KAAAA,WACIV,GACG,GAAA5B,EAAAC,IAAA,EAACsC,KAAAA,CAAGpC,UAAWJ,IAAAA,wBAAkC,WAC7C,GAAAC,EAAAC,IAAA,EAACI,IAAAA,CACGF,UACIJ,IAAAA,4BAAsC,CAE1ChB,KAAM,SAAeyD,MAAA,CAANZ,aACf,GAAA5B,EAAAI,GAAA,EAACE,OAAAA,CACGH,UACIJ,IAAAA,wBAAkC,CAClC,IACAA,GAAAA,CAAAA,kCAEC,CAEL0C,cAAa,KAEhBb,KAEJC,GACG,GAAA7B,EAAAI,GAAA,EAACM,IAAAA,CACGP,UACIJ,IAAAA,wBAAkC,UAErC8B,OAKhBG,GACG,GAAAhC,EAAAI,GAAA,EAACmC,KAAAA,CAAGpC,UAAWJ,IAAAA,wBAAkC,UAC7C,GAAAC,EAAAC,IAAA,EAACI,IAAAA,CACGF,UACIJ,IAAAA,4BAAsC,CAE1ChB,KAAM,UAAeyD,MAAA,CAALR,aAChB,GAAAhC,EAAAI,GAAA,EAACE,OAAAA,CACGH,UACIJ,IAAAA,wBAAkC,CAClC,IACAA,GAAAA,CAAAA,iCAAwC,CAE5C0C,cAAa,KAEhBT,OAIZF,GACG,GAAA9B,EAAAI,GAAA,EAACmC,KAAAA,CAAGpC,UAAWJ,IAAAA,wBAAkC,UAC7C,GAAAC,EAAAC,IAAA,EAACI,IAAAA,CACGF,UACIJ,IAAAA,4BAAsC,CAE1ChB,KAAM+C,YACN,GAAA9B,EAAAI,GAAA,EAACE,OAAAA,CACGH,UACIJ,IAAAA,wBAAkC,CAClC,IACAA,GAAAA,CAAAA,mCAEC,CAEL0C,cAAa,KAEhBrD,EAAE,4CAOvB,GAAAY,EAAAI,GAAA,EAACF,MAAAA,CAAIC,UAAWJ,IAAAA,4BAAsC,UAClD,GAAAC,EAAAC,IAAA,EAACI,IAAAA,CAAEF,UAAWJ,IAAAA,wBAAkC,CAAEhB,KAAMgD,YACnDJ,EACD,GAAA3B,EAAAI,GAAA,EAACF,MAAAA,CACGC,UACIJ,IAAAA,wBAAkC,CAClC,IACAA,GAAAA,CAAAA,kCAAyC,CAE7C0C,cAAa,YAMrC,CAEAf,CAAAA,EAAmBH,SAAS,CAAG,CAC3BK,MAAOJ,IAAAA,MAAgB,CACvBQ,KAAMR,IAAAA,MAAgB,CACtBK,UAAWL,IAAAA,MAAgB,CAC3BM,QAASN,IAAAA,MAAgB,CACzBO,IAAKP,IAAAA,MAAgB,EAGzBE,EAAmBD,YAAY,CAAG,CAC9BG,MAAO,GACPI,KAAM,GACNH,UAAW,GACXC,QAAS,GACTC,IAAK,EACT,mCE3GA,IAAMW,EAAc,QAyCMC,KAzCL,CACjB7B,GAAAA,EAAK,CAAC,CACNiB,IAAAA,EAAM,EAAE,CACRa,MAAAA,EAAQ,EAAE,CACVC,cAAAA,EAAgB,EAAE,CAClBC,KAAAA,EAAO,CAAC,CAAC,CACTC,YAAAA,EAAc,CAAC,CAAC,CAChBC,SAAAA,EAAW,EAAE,CACbC,oBAAAA,EAAsB,EAAE,CACxBC,UAAAA,EAAY,CAAC,CAAC,CACdC,OAAAA,EAAS,CAAC,CAAC,CACXC,IAAAA,EAAM,CAAC,CAAC,CACRC,QAAAA,EAAU,CAAC,CAAC,CACZC,WAAAA,EAAa,CAAC,CAAC,CACfC,UAAAA,EAAY,EAAK,CACjBC,eAAAA,EAAiB,CAAC,CAAC,CACnBC,KAAAA,EAAO,CAAC,CAAC,CACZ,CAAAtE,EACS,CAAEC,EAAAA,CAAC,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAEMwD,EAAca,IAAI,CAAC,GAAaC,QAAAA,EAAQC,IAAI,EAChE,IAAMC,EAAShB,EAAcO,GAAG,CAAC,GAC7BO,QAAAA,EAAQC,IAAI,CACN,GAAAE,EAAAC,CAAA,KAAAC,EAAAD,CAAA,KACOJ,GAAAA,CACHM,MAAO,CACHC,MAAOd,EAAIe,MAAM,CAACf,GAAG,CAAC,GAAW,GAAAU,EAAAC,CAAA,KAAAC,EAAAD,CAAA,KAC1BK,GAAAA,CACHC,SAAUD,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMrC,GAAG,EAAG,KAAO3C,EAAE,uBAC/BL,KACIqF,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMrC,GAAG,GACT,oCAAgDqC,MAAAA,CAAZA,EAAKE,GAAG,CAAC,KAAgBF,MAAAA,CAAbA,EAAKG,GAAG,CAAC,MAAgBH,MAAAA,CAAZA,EAAKE,GAAG,CAAC,KAAY9B,MAAA,CAAT4B,EAAKG,GAAG,CAAC,WAE1FC,OAAQpB,EAAIqB,gBAAgB,CAC5BC,OAAQ,EACZ,IAEJf,GAGJ,CAAEhB,MAAAA,CAAK,CAAE,CAAGgC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWC,EAAAA,CAAkBA,GAAK,CAAC,EAC/CC,EAAgBlC,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAOmC,UAAU,GAAjBnC,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAmBoC,QAAQ,CAAC,iBAElDC,CAAAA,EAAAA,EAAAA,eAAAA,EAAgB,KAGR/C,OAAOgD,QAAQ,CAACC,MAAM,CAACC,OAAO,CAAC,YAAc,IAE7ClD,OAAOmD,OAAO,CAACC,YAAY,CAAC,CAAC,EAAG,GAAIpD,OAAOgD,QAAQ,CAACK,QAAQ,EAI5DrD,OAAOgD,QAAQ,CAACC,MAAM,CAACC,OAAO,CAAC,cAAgB,IAE/ClD,OAAOmD,OAAO,CAACC,YAAY,CAAC,GAAI,GAAIpD,OAAOgD,QAAQ,CAACK,QAAQ,CAEpE,EAAG,EAAE,EAELxC,EAAO,GAAAgB,EAAAC,CAAA,KAAAC,EAAAD,CAAA,KACAjB,GAAAA,CACHyC,mBACIxC,GAAeA,EAAYmB,KAAK,EAAInB,EAAYmB,KAAK,CAACsB,MAAM,CAAG,IAGvE,IAAMC,EAAW,CACb3E,GAAAA,EACAiB,IAAAA,CACJ,EAEMlC,EAAUC,IAAWC,IAAAA,WAAqB,CAAE,CAC9C,CAACA,GAAAA,CAAAA,sBAA6B,CAAC,CAAEqD,GAAO,CAACsC,CAAAA,EAAAA,EAAAA,CAAAA,EAAQtC,EAAIe,MAAM,EAC3D,CAACpE,GAAAA,CAAAA,yBAAgC,CAAC,CAAE+C,GAAQ4C,CAAAA,EAAAA,EAAAA,CAAAA,EAAQ5C,EAAK9D,KAAK,CAClE,GAEM2G,EAAiB,CAACD,CAAAA,EAAAA,EAAAA,CAAAA,EAAQtC,EAAIe,MAAM,EAE1C,MACI,GAAAnE,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWN,YACZ,GAAAG,EAAAI,GAAA,EAACwF,EAAAA,CAAWA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAK7C,IACjB,GAAA/C,EAAAI,GAAA,EAACyF,EAAAA,CAAIA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAK/C,GAAAA,CAAMgD,MAAO,MACvB,GAAA9F,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,iBAA2B,WACvC,GAAAC,EAAAI,GAAA,EAACF,MAAAA,CAAIY,GAAG,iBACR,GAAAd,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,sBAAgC,WAC5C,GAAAC,EAAAI,GAAA,EAAC2F,KAAAA,CAAG5F,UAAWJ,IAAAA,kBAA4B,UAAG6C,IAC7CI,GACG,GAAAhD,EAAAI,GAAA,EAACF,MAAAA,CACGC,UAAWJ,IAAAA,qBAA+B,CAC1CiG,wBAAyB,CAAEC,OAAQjD,CAAS,IAInDS,GAAQ,GAAAzD,EAAAI,GAAA,EAAC8F,EAAAA,CAAWA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAKzC,OAG9B,GAAAzD,EAAAC,IAAA,EAACC,MAAAA,CAAIC,UAAWJ,IAAAA,oBAA8B,WACzC8E,GACG,GAAA7E,EAAAI,GAAA,EAAC+F,EAAAA,CAAcA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CACXC,4BACIT,EACM,CAAC,gCAAgC,CACjC,EAAE,EAERF,IAGXE,GACG,GAAA3F,EAAAI,GAAA,EAACiG,EAAAA,CAAWA,CAAAA,CACR5B,iBAAkBrB,EAAIqB,gBAAgB,CACtCP,MAAOd,EAAIe,MAAM,CACjBmC,UAAWlD,EAAIkD,SAAS,MAKnC,CAACZ,CAAAA,EAAAA,EAAAA,CAAAA,EAAQpC,IAAeA,EAAWvE,IAAI,EACpC,GAAAiB,EAAAI,GAAA,EAACmG,EAAAA,CAAUA,CAAAA,CACPhD,UAAW,GACXrE,KAAMoE,EAAWV,KAAK,CACtB7D,KAAMuE,EAAWvE,IAAI,GAI5ByE,GAAkB,CAACkC,CAAAA,EAAAA,EAAAA,CAAAA,EAAQlC,IACxB,GAAAxD,EAAAI,GAAA,EAACmG,EAAAA,CAAUA,CAAAA,CACPhD,UAAW,GACXrE,KAAMsE,EAAeZ,KAAK,CAC1B7D,KAAMyE,EAAezE,IAAI,GAGhCwE,GAAa,GAAAvD,EAAAI,GAAA,EAACmG,EAAAA,CAAUA,CAAAA,CAAChD,UAAW,KAEpCN,GAAuBA,EAAoBuC,MAAM,CAAG,GACjD,GAAAxF,EAAAI,GAAA,EAACF,MAAAA,CACGC,UACIJ,IAAAA,kBAA4B,CAC5B,IACAA,GAAAA,CAAAA,8BAAqC,UAEzC,GAAAC,EAAAI,GAAA,EAACoG,EAAAA,CAAQA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAKvD,CAAmB,CAAC,EAAE,CAACgB,KAAK,QAKrDwC,MAAMC,OAAO,CAAC7C,IACX,GAAA7D,EAAAI,GAAA,EAACuG,EAAAA,CAAWA,CAAAA,CAACzC,MAAOL,EAAQ+C,SAAU,YAGzC3D,GAAuBA,EAAoBuC,MAAM,CAAG,GACjD,GAAAxF,EAAAI,GAAA,EAACF,MAAAA,CAAIC,UAAWJ,IAAAA,sBAAgC,UAC5C,GAAAC,EAAAI,GAAA,EAACF,MAAAA,CACGC,UACIJ,IAAAA,kBAA4B,CAC5B,IACAA,GAAAA,CAAAA,6BAAoC,UAExC,GAAAC,EAAAI,GAAA,EAACoG,EAAAA,CAAQA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAKvD,CAAmB,CAAC,EAAE,CAACgB,KAAK,OAKrD,CAACyB,CAAAA,EAAAA,EAAAA,CAAAA,EAAQvC,IAAW,GAAAnD,EAAAI,GAAA,EJtGlBtB,EIsG6BA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAKqE,IAEpC,CAACuC,CAAAA,EAAAA,EAAAA,CAAAA,EAAQrC,IAAY,CAACqC,CAAAA,EAAAA,EAAAA,CAAAA,EAAQrC,EAAQtB,GAAG,GACtC,GAAA/B,EAAAI,GAAA,EFtDDsB,EEsDoBA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAK2B,IAG5B,GAAArD,EAAAI,GAAA,EAACyG,EAAAA,CAAoBA,CAAAA,CAACpB,SAAUA,EAAUqB,UAAWhG,IAEpD,CAAC4E,CAAAA,EAAAA,EAAAA,CAAAA,EAAQxC,IAAc,GAAAlD,EAAAI,GAAA,EAAC2G,EAAAA,CAAQA,CAAAA,CAAAA,EAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAK7D,MAGlD,CAEAR,CAAAA,EAAYnB,SAAS,CAAG,CACpBT,GAAIU,IAAAA,MAAgB,CAACwF,UAAU,CAC/BjF,IAAKP,IAAAA,MAAgB,CAACwF,UAAU,CAChCpE,MAAOpB,IAAAA,MAAgB,CAACwF,UAAU,CAClChE,SAAUxB,IAAAA,MAAgB,CAACwF,UAAU,CACrCxD,eAAgBhC,IAAAA,SAAmB,CAAC,CAACA,IAAAA,MAAgB,CAAEA,IAAAA,IAAc,CAAC,EACtEsB,KAAMtB,IAAAA,MAAgB,CACtB4B,IAAK5B,IAAAA,MAAgB,CACrBuB,YAAavB,IAAAA,MAAgB,CAC7BqB,cAAerB,IAAAA,SAAmB,CAAC,CAACA,IAAAA,KAAe,CAAEA,IAAAA,MAAgB,CAAC,EACtEyB,oBAAqBzB,IAAAA,KAAe,CACpC0B,UAAW1B,IAAAA,MAAgB,CAC3B6B,QAAS7B,IAAAA,MAAgB,CACzB2B,OAAQ3B,IAAAA,MAAgB,CACxB8B,WAAY9B,IAAAA,MAAgB,CAC5BiC,KAAMjC,IAAAA,SAAmB,CAAC,CAACA,IAAAA,MAAgB,CAAEA,IAAAA,IAAc,CAAC,EAC5D+B,UAAW/B,IAAAA,IAAc,EChN7B,IAAAyF,EDmNeC,CAAAA,EAAAA,EAAAA,YAAAA,EAAaxE,qBEpN5ByE,EAAAC,OAAA,EAAkB,6oBCAlBD,EAAAC,OAAA,EAAkB,ilCCAlBD,EAAAC,OAAA,EAAkB,0xBCKlB,SAAAC,EAAAxG,CAAA,EAEA,uBAAAA,GACAA,MAAAA,CAAA,CAAAA,EAAA2E,MAAA,KACA8B,SARAC,CAAA,EACA,IAAAC,EAAAC,WAAAF,GACA,OAAAG,MAAAF,IAAAG,SAAAH,EACA,EAKA3G,EAAA+G,SAAA,GAAA/G,EAAA2E,MAAA,IACA,CACA,SAAAqC,EAAAC,CAAA,CAAAjH,CAAA,CAAAkH,CAAA,EAGA,IAAAlH,GACA,CAAAkH,GACAD,CAAAA,MAAAA,EAAA,OAAAA,EAAAE,KAAA,GACA,CAAAF,MAAAA,EAAA,OAAAA,EAAAG,QAAA,CAAAzC,MAAA,KACAsC,CAAAA,EAAAE,KAAA,CAAAE,OAAA,QAEA,CAQA,IAAAC,EAAA,CACAC,UAAA,gBACAC,YAAA,oBACAC,cAAA,sBACAC,sBAAA,gCACAC,sBAAA,gCACAC,0BAAA,oCACAC,OAAA,aACAC,iBAAA,0BACAC,iBAAA,0BACAC,qBAAA,6BACA,EACA,SAAAC,EAAAC,CAAA,CAAAlI,CAAA,EACA,OACAkI,EAAAL,MAAA,CACA7H,IAAAA,GAAAkI,EAAAJ,gBAAA,CACA,iBAAA9H,GAAAA,EAAA,EACAkI,EAAAF,oBAAA,CACA,KACAhI,SAAAA,GAAAkI,EAAAH,gBAAA,CACA,CACAI,MAAA,IAAAC,GACAC,IAAA,KACA,CAEA,IAAAC,EAAA,CACA,iBACA,wBACA,yBACA,WACA,YACA,mBACA,aACA,QACA,WACA,SACA,SACA,uBACA,yBACA,QACA,qBACA,CACAxI,EAAsByI,EAAAC,UAAgB,EAAAC,EAAAtI,KAGtC,IAAYuI,eAAAA,EAAA,GAAAR,sBAAAA,EAAA,EAAkD,CAAAS,uBAAAA,EAAA,GAAAvB,SAAAA,CAAA,CAAA9H,UAAAA,EAAA,GAAAsJ,iBAAAA,CAAA,CAAAC,MAAAC,EAAA,EAAA5B,mBAAAA,EAAA,GAAAnH,SAAAgJ,EAAA,IAAAC,OAAAA,EAAA,OAAAhJ,OAAAA,CAAA,CAAAiJ,qBAAAA,CAAA,CAAAC,uBAAAA,CAAA,CAAA/B,MAAAA,CAAA,CAAAgC,WAAAA,CAAA,EAAyPV,EACvTW,EAAAC,OAAAC,MAAA,IAAqCb,GACrCH,EAAAiB,OAAA,KACA,OAAAH,CAAA,CAAAI,EAAA,GAGA,IAAAC,EAAuB,GAAAlB,EAAAxJ,MAAA,EAAMiB,GAC7B0J,EAA2B,GAAAnB,EAAAxJ,MAAA,EAAM,MACjC4K,EAAsC,GAAApB,EAAAxJ,MAAA,IACtC6K,EAAsB,GAAArB,EAAAxJ,MAAA,IACtB8K,EAAyB,GAAAtB,EAAAxJ,MAAA,EAAMsK,OAAAC,MAAA,CAAAD,OAAAC,MAAA,IAA+BhC,GAAAY,IAC9D4B,EAAA,oBAAA1I,OACA2I,EAAiC,GAAAxB,EAAAxJ,MAAA,EAAM+K,EAAAA,KAAA1I,OAAA4I,UAAA,EACvC5I,OAAA4I,UAAA,6BAAAC,OAAA,EAEApB,EAAAkB,EAAAG,OAAA,GAAApB,EACA/I,EAAAgK,EAAAG,OAAA,GAAAnB,EACAoB,EAAAnK,EACAoK,EAAA,SACA,kBAAApK,GAEAmK,EAAAnK,EAAA,IAAAA,EACAoK,EAAA,UAEA5D,EAAA2D,KAEAA,EAAAnK,OAAAA,EAAA,EAAAA,EACAoK,EAAA,UAEA,IAAAC,EAAAC,EAAA,CAA8C,GAAA/B,EAAA1J,QAAA,EAAQsL,GACtD,CAAAI,EAAAC,EAAA,CAAoC,GAAAjC,EAAA1J,QAAA,EAAQuL,GAC5C,CAAAK,EAAAC,EAAA,CAAgD,GAAAnC,EAAA1J,QAAA,EAAQ,IACxD,CAAA8L,EAAAC,EAAA,CAAoE,GAAArC,EAAA1J,QAAA,EAAQoJ,EAAA4B,EAAAK,OAAA,CAAAlK,IAExE,GAAAuI,EAAAsC,SAAA,EAAS,KAEb7D,EAAA0C,EAAAQ,OAAA,CAAAG,EAAAnD,EAGA,EAAK,IAED,GAAAqB,EAAAsC,SAAA,EAAS,KACb,GAAA7K,IAAAyJ,EAAAS,OAAA,EAAAR,EAAAQ,OAAA,MA9FAjD,MAsGA6D,EACAC,EAvGA9D,EA+FAyC,EAAAQ,OAAA,CA5FA,IA4FAT,EAAAS,OAAA,EA5FAjD,CAAAA,MAAAA,EAAA,OAAAA,EAAAE,KAAA,GACAF,CAAAA,EAAAE,KAAA,CAAAE,OAAA,KA6FAqC,EAAAQ,OAAA,CAAA/C,KAAA,CAAAoD,QAAA,UACA,IAAAS,EAAAtB,EAAAQ,OAAA,CAAAe,YAAA,CACAvB,EAAAQ,OAAA,CAAA/C,KAAA,CAAAoD,QAAA,IAEA,IAAAW,EAAAnL,EAAA8I,EAGAsC,EAAA,SAEAC,EAAA3B,SAAAA,EAAAS,OAAA,CACA,iBAAAlK,EAGA+K,EADAD,EAAA9K,EAAA,IAAAA,EAGAwG,EAAAxG,GAGA+K,EADAD,EAAA9K,OAAAA,EAAA,EAAAA,GAMA8K,EAAAE,EACAD,EAAA,OACAI,EAAAE,KAAAA,GAEAD,IAEAL,EAAAD,EAGAA,EAAAE,GAGA,IAAAM,EAAA,CACAzB,EAAAK,OAAA,CAAA3C,SAAA,CACA,CAAAkC,SAAAA,EAAAS,OAAA,EAAAlK,EAAAyJ,EAAAS,OAAA,GACAL,EAAAK,OAAA,CAAA1C,WAAA,CACA,CAAAxH,SAAAA,GAAAA,EAAAyJ,EAAAS,OAAA,GACAL,EAAAK,OAAA,CAAAzC,aAAA,CACAsD,IAAAA,GAAAlB,EAAAK,OAAA,CAAAxC,qBAAA,CACAqD,SAAAA,GACAlB,EAAAK,OAAA,CAAAvC,qBAAA,CACA,iBAAAoD,GAAAA,EAAA,EACAlB,EAAAK,OAAA,CAAAtC,yBAAA,CACA,KACA,CACAO,MAAA,IAAAC,GACAC,IAAA,MAEAkD,EAAAtD,EAAA4B,EAAAK,OAAA,CAAAa,GAIAT,EAAAQ,GACAN,EAAA,UACAE,EAAA,CAAAU,GACAR,EAAAU,GAEAE,aAAA5B,EAAAM,OAAA,EACAsB,aAAA7B,EAAAO,OAAA,EACAkB,GAKAxB,EAAAM,OAAA,CAAAuB,WAAA,KACAnB,EAAAS,GACAP,EAAAW,GACAT,EALA,IAOAxB,MAAAA,GAAAA,EAAA6B,EACA,EAAiB,IAEjBpB,EAAAO,OAAA,CAAAuB,WAAA,KACAf,EAAA,IACAE,EAAAW,GAGAvE,EAAA0C,EAAAQ,OAAA,CAAAa,EAAA7D,GAEA+B,MAAAA,GAAAA,EAAA8B,EACA,EAAiBG,KAIjBhC,MAAAA,GAAAA,EAAA4B,GAEAlB,EAAAM,OAAA,CAAAuB,WAAA,KACAnB,EAAAS,GACAP,EAAAW,GACAT,EAAA,IACAE,EAAAW,GAIA,SAAAvL,GAEAgH,EAAA0C,EAAAQ,OAAA,CAAAY,EAAA5D,GAGA+B,MAAAA,GAAAA,EAAA6B,EACA,EAAiBI,GAEjB,CAEA,OADAzB,EAAAS,OAAA,CAAAlK,EACA,KACAwL,aAAA5B,EAAAM,OAAA,EACAsB,aAAA7B,EAAAO,OAAA,CACA,CAGA,EAAK,CAAAlK,EAAA,EAEL,IAAA0L,EAAArC,OAAAC,MAAA,CAAAD,OAAAC,MAAA,IAAyDnC,GAAA,CAAYnH,OAAAqK,EAAAE,SAAAA,GAAApD,CAAAA,MAAAA,EAAA,OAAAA,EAAAoD,QAAA,IACrEE,GAAA9B,IACA+C,EAAAC,UAAA,WAA8C5L,EAAS,KAAKiJ,EAAA,CAAQ,EAAEH,EAAM,IAE5E1B,CAAAA,MAAAA,EAAA,OAAAA,EAAAwE,UAAA,GACAD,CAAAA,EAAAC,UAAA,IAA2CxE,EAAAwE,UAAA,CAAiB,IAAID,EAAAC,UAAA,CAA0B,GAG1FD,EAAAE,gBAAA,CAAAF,EAAAC,UAAA,EAEA,IAAAE,EAAA,GACAnD,IACAmD,EAAAF,UAAA,YAA6C5L,EAAS,KAAKiJ,EAAA,CAAQ,EAAEH,EAAM,IAE3EgD,EAAAD,gBAAA,CAAAC,EAAAF,UAAA,CACA,IAAAtB,GACAwB,CAAAA,EAAAC,OAAA,KAKA,IAAAC,EAAAC,KADA,IAAA5C,CAAA,gBAEAA,CAAA,gBACApJ,IAAAA,EACA,OAAYuI,EAAA0D,aAAmB,OAAA5C,OAAAC,MAAA,IAAwBF,EAAA,CAAc,cAAA2C,EAAAzM,UAAA,GAAyCqL,EAAA,CAA0B,EAAErL,EAAU,EAAA6H,MAAAuE,EAAAvL,IAAAA,CAAA,GAC5IoI,EAAA0D,aAAmB,QAAU3M,UAAAsJ,EAAAzB,MAAA0E,EAAA1L,IAAA,IACrCuJ,EAAAQ,OAAA,CAAAgC,EACA/C,GACAA,CAAAA,EAAAe,OAAA,CAAAgC,CAAA,CAEA,GAAe9E,GACf,EACA+E,CAAAA,EAAAC,CAAA,CAAetM","sources":["webpack://_N_E/./components/AuthorCard/AuthorCard.js","webpack://_N_E/./components/AuthorCard/index.js","webpack://_N_E/./components/PartnerInformation/PartnerInformation.js","webpack://_N_E/./components/PartnerInformation/index.js","webpack://_N_E/./containers/ArticlePage/ArticlePage.js","webpack://_N_E/./containers/ArticlePage/index.js","webpack://_N_E/./components/AuthorCard/AuthorCard.module.scss","webpack://_N_E/./components/PartnerInformation/PartnerInformation.module.scss","webpack://_N_E/./containers/ArticlePage/ArticlePage.module.scss","webpack://_N_E/./node_modules/react-animate-height/dist/esm/index.js"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'next-i18next';\nimport AnimateHeight from 'react-animate-height';\nimport classNames from 'classnames';\n\nimport { serializeImage } from '../../utils/SerializeImage';\nimport BackgroundImage from '../BackgroundImage';\nimport styles from './AuthorCard.module.scss';\n\nconst AuthorCard = ({ href, image, name, text }) => {\n const { t } = useTranslation('common');\n const serializedImage = serializeImage(image);\n const [expanded, setExpanded] = useState(false);\n const itemContainerRef = useRef(null);\n\n const toggleExpanded = () => setExpanded(!expanded);\n\n const classes = classNames(styles['AuthorCard'], {\n [styles['AuthorCard--expanded']]: expanded,\n });\n\n return (\n <div className={classes}>\n <a className={styles['AuthorCard__Link']} href={href}>\n <span className=\"sr-only\">{name}</span>\n </a>\n <div className={styles['AuthorCard__Container']}>\n <div className={styles['AuthorCard__Image']}>\n {serializedImage && (\n <BackgroundImage {...serializedImage} quality={60} />\n )}\n </div>\n <div className={styles['AuthorCard__Content']}>\n <span className={styles['AuthorCard__Tag']}>\n {t('author.tag')}\n </span>\n <h3 className={styles['AuthorCard__Title']}>{name}</h3>\n <p className={styles['AuthorCard__Text']}>{text}</p>\n <AnimateHeight\n duration={350}\n height={expanded ? 'auto' : 0}>\n <div\n id={'author-text'}\n className={styles['AuthorCard__ExpandableText']}\n role=\"region\"\n ref={itemContainerRef}>\n {text}\n </div>\n </AnimateHeight>\n <button\n className={styles['AuthorCard__Toggle']}\n onClick={toggleExpanded}\n aria-controls={'author-text'}\n aria-expanded={expanded}\n aria-haspopup=\"true\"\n aria-label={\n expanded ? t('author.close') : t('author.open')\n }></button>\n </div>\n </div>\n </div>\n );\n};\n\nAuthorCard.propTypes = {\n href: PropTypes.string,\n image: PropTypes.object,\n name: PropTypes.string,\n text: PropTypes.string,\n};\n\nAuthorCard.defaultProps = {\n href: '',\n image: {},\n name: '',\n text: '',\n};\n\nexport default AuthorCard;\n","import AuthorCard from './AuthorCard';\n\nexport default AuthorCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'next-i18next';\nimport styles from './PartnerInformation.module.scss';\n\nconst PartnerInformation = ({ phone, phoneText, address, url, mail }) => {\n const { t } = useTranslation('common');\n let prettyUrl;\n\n // prettyUrl = from protocol://some.com/url/hello/ -> some.com/url/hello/\n if ('URL' in window && url) {\n prettyUrl = new URL(url).host;\n } else {\n // IE 11\n prettyUrl = url.replace(/(^\\w+:|^)\\/\\//, '');\n }\n\n return (\n <div className={styles['PartnerInformation']}>\n <div className={styles['PartnerInformation__Info']}>\n <h2 className={styles['PartnerInformation__Header']}>\n {t('partnerInformation.header')}\n </h2>\n\n <ul>\n {phone && (\n <li className={styles['PartnerInformation__Item']}>\n <a\n className={\n styles['PartnerInformation__ListLink']\n }\n href={`tel://${phone}`}>\n <span\n className={\n styles['PartnerInformation__Icon'] +\n ' ' +\n styles[\n 'PartnerInformation__Icon--Phone'\n ]\n }\n aria-hidden={true}\n />\n {phone}\n </a>\n {phoneText && (\n <p\n className={\n styles['PartnerInformation__Text']\n }>\n {phoneText}\n </p>\n )}\n </li>\n )}\n {mail && (\n <li className={styles['PartnerInformation__Item']}>\n <a\n className={\n styles['PartnerInformation__ListLink']\n }\n href={`mailto:${mail}`}>\n <span\n className={\n styles['PartnerInformation__Icon'] +\n ' ' +\n styles['PartnerInformation__Icon--Mail']\n }\n aria-hidden={true}\n />\n {mail}\n </a>\n </li>\n )}\n {address && (\n <li className={styles['PartnerInformation__Item']}>\n <a\n className={\n styles['PartnerInformation__ListLink']\n }\n href={address}>\n <span\n className={\n styles['PartnerInformation__Icon'] +\n ' ' +\n styles[\n 'PartnerInformation__Icon--Marker'\n ]\n }\n aria-hidden={true}\n />\n {t('partnerInformation.directions')}\n </a>\n </li>\n )}\n </ul>\n </div>\n\n <div className={styles['PartnerInformation__LinkWrap']}>\n <a className={styles['PartnerInformation__Link']} href={url}>\n {prettyUrl}\n <div\n className={\n styles['PartnerInformation__Icon'] +\n ' ' +\n styles['PartnerInformation__Icon--Arrow']\n }\n aria-hidden={true}\n />\n </a>\n </div>\n </div>\n );\n};\n\nPartnerInformation.propTypes = {\n phone: PropTypes.string,\n mail: PropTypes.string,\n phoneText: PropTypes.string,\n address: PropTypes.string,\n url: PropTypes.string,\n};\n\nPartnerInformation.defaultProps = {\n phone: '',\n mail: '',\n phoneText: '',\n address: '',\n url: '',\n};\n\nexport default PartnerInformation;\n","import PartnerInformation from './PartnerInformation';\n\nexport default PartnerInformation;\n","import React, { useLayoutEffect, useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useTranslation } from 'next-i18next';\nimport { basePageWrap } from '../BasePage';\nimport styles from './ArticlePage.module.scss';\nimport isEmpty from '../../utils/isEmpty';\nimport { CookieStateContext } from '../BasePage/state';\nimport Hero from '../../components/Hero';\nimport BookmarkButton from '../../components/BookmarkButton';\nimport ShareFeedbackSegment from '../../components/ShareFeedbackSegment';\nimport StreamField from '../../components/StreamField';\nimport Breadcrumbs from '../../components/Breadcrumbs';\nimport AuthorCard from '../../components/AuthorCard';\nimport LinkList from '../../components/LinkList';\nimport Sponsors from '../../components/Sponsors';\nimport PartnerInformation from '../../components/PartnerInformation';\nimport BackBanner from '../../components/BackBanner';\nimport MapExpander from '../../components/MapExpander';\nimport ArticleDate from '../../components/ArticleDate';\n\nconst ArticlePage = ({\n id = 0,\n url = '',\n title = '',\n contentBlocks = [],\n hero = {},\n breadcrumbs = {},\n preamble = '',\n linksDocumentsBlock = [],\n sponsored = {},\n author = {},\n map = {},\n partner = {},\n partOfPage = {},\n backToMap = false,\n backToWhatToDo = {},\n date = {},\n}) => {\n const { t } = useTranslation();\n\n const hasMapBlock = contentBlocks.find((content) => content.type === 'map');\n const blocks = contentBlocks.map((content) =>\n content.type === 'map'\n ? {\n ...content,\n value: {\n items: map.coords.map((item) => ({\n ...item,\n readMore: item?.url ? null : t('mapExpander.goToMap'),\n href:\n item?.url ||\n `https://maps.google.com/maps/dir/${item.lat},${item.lng}/@${item.lat},${item.lng},16z`,\n })),\n apiKey: map.googleMapsApiKey,\n newTab: true,\n },\n }\n : content\n );\n\n const { state } = useContext(CookieStateContext) || {};\n const cookieConsent = state?.categories?.includes('functionality');\n\n useLayoutEffect(() => {\n if (\n typeof window !== 'undefined' &&\n window.location.search.indexOf('from_map') > -1\n ) {\n window.history.replaceState({}, '', window.location.pathname);\n }\n if (\n typeof window !== 'undefined' &&\n window.location.search.indexOf('what_to_do') > -1\n ) {\n window.history.replaceState('', '', window.location.pathname);\n }\n }, []);\n\n hero = {\n ...hero,\n isBelowBreadcrumbs:\n breadcrumbs && breadcrumbs.items && breadcrumbs.items.length > 1,\n };\n\n const bookmark = {\n id,\n url,\n };\n\n const classes = classNames(styles['ArticlePage'], {\n [styles['ArticlePage--HasMap']]: map && !isEmpty(map.coords),\n [styles['ArticlePage--Imageless']]: hero && isEmpty(hero.image),\n });\n\n const hasMapExpander = !isEmpty(map.coords);\n\n return (\n <div className={classes}>\n <Breadcrumbs {...breadcrumbs} />\n <Hero {...hero} clean={true} />\n <div className={styles['ArticlePage__Main']}>\n <div id=\"main-content\" />\n <div className={styles['ArticlePage__Container']}>\n <h1 className={styles['ArticlePage__Title']}>{title}</h1>\n {preamble && (\n <div\n className={styles['ArticlePage__Preamble']}\n dangerouslySetInnerHTML={{ __html: preamble }}\n />\n )}\n\n {date && <ArticleDate {...date} />}\n </div>\n\n <div className={styles['ArticlePage__Actions']}>\n {cookieConsent && (\n <BookmarkButton\n untranslatedButtonModifiers={\n hasMapExpander\n ? ['Button--WithMapExpanderHeight']\n : []\n }\n {...bookmark}\n />\n )}\n {hasMapExpander && (\n <MapExpander\n googleMapsApiKey={map.googleMapsApiKey}\n items={map.coords}\n zoomLevel={map.zoomLevel}\n />\n )}\n </div>\n\n {!isEmpty(partOfPage) && partOfPage.href && (\n <BackBanner\n backToMap={false}\n text={partOfPage.title}\n href={partOfPage.href}\n />\n )}\n\n {backToWhatToDo && !isEmpty(backToWhatToDo) && (\n <BackBanner\n backToMap={false}\n text={backToWhatToDo.title}\n href={backToWhatToDo.href}\n />\n )}\n {backToMap && <BackBanner backToMap={true} />}\n\n {linksDocumentsBlock && linksDocumentsBlock.length > 0 && (\n <div\n className={\n styles['ArticlePage__Links'] +\n ' ' +\n styles['ArticlePage__Links--Desktop']\n }>\n <LinkList {...linksDocumentsBlock[0].value} />\n </div>\n )}\n </div>\n\n {Array.isArray(blocks) && (\n <StreamField items={blocks} pageType={'Article'} />\n )}\n\n {linksDocumentsBlock && linksDocumentsBlock.length > 0 && (\n <div className={styles['ArticlePage__Container']}>\n <div\n className={\n styles['ArticlePage__Links'] +\n ' ' +\n styles['ArticlePage__Links--Mobile']\n }>\n <LinkList {...linksDocumentsBlock[0].value} />\n </div>\n </div>\n )}\n\n {!isEmpty(author) && <AuthorCard {...author} />}\n\n {!isEmpty(partner) && !isEmpty(partner.url) && (\n <PartnerInformation {...partner} />\n )}\n\n <ShareFeedbackSegment bookmark={bookmark} articleId={id} />\n\n {!isEmpty(sponsored) && <Sponsors {...sponsored} />}\n </div>\n );\n};\n\nArticlePage.propTypes = {\n id: PropTypes.number.isRequired,\n url: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n preamble: PropTypes.string.isRequired,\n backToWhatToDo: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n hero: PropTypes.object,\n map: PropTypes.object,\n breadcrumbs: PropTypes.object,\n contentBlocks: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n linksDocumentsBlock: PropTypes.array,\n sponsored: PropTypes.object,\n partner: PropTypes.object,\n author: PropTypes.object,\n partOfPage: PropTypes.object,\n date: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n backToMap: PropTypes.bool,\n};\n\nexport default basePageWrap(ArticlePage);\n","import ArticlePage from './ArticlePage';\n\nexport default ArticlePage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AuthorCard__Container\":\"AuthorCard_AuthorCard__Container__KtpNR\",\"AuthorCard__Tag\":\"AuthorCard_AuthorCard__Tag__9PmIY\",\"AuthorCard__Title\":\"AuthorCard_AuthorCard__Title__K5Dlw\",\"AuthorCard__ExpandableText\":\"AuthorCard_AuthorCard__ExpandableText__OMTON\",\"AuthorCard__Text\":\"AuthorCard_AuthorCard__Text__HPcIG\",\"AuthorCard\":\"AuthorCard_AuthorCard__udFjV\",\"AuthorCard__Link\":\"AuthorCard_AuthorCard__Link__vM_1Z\",\"AuthorCard__Image\":\"AuthorCard_AuthorCard__Image__7wxKC\",\"AuthorCard__Content\":\"AuthorCard_AuthorCard__Content__2Qb4U\",\"AuthorCard__Toggle\":\"AuthorCard_AuthorCard__Toggle__ilrL5\",\"AuthorCard--expanded\":\"AuthorCard_AuthorCard--expanded__16A9m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PartnerInformation\":\"PartnerInformation_PartnerInformation__9VmVP\",\"PartnerInformation__Text\":\"PartnerInformation_PartnerInformation__Text__0wSS9\",\"PartnerInformation__Header\":\"PartnerInformation_PartnerInformation__Header__bo07Y\",\"PartnerInformation__Link\":\"PartnerInformation_PartnerInformation__Link__enRsi\",\"PartnerInformation__ListLink\":\"PartnerInformation_PartnerInformation__ListLink__fz_ao\",\"PartnerInformation__Info\":\"PartnerInformation_PartnerInformation__Info__X_WEw\",\"PartnerInformation__Item\":\"PartnerInformation_PartnerInformation__Item__zrCek\",\"PartnerInformation__LinkWrap\":\"PartnerInformation_PartnerInformation__LinkWrap__7xmxx\",\"PartnerInformation__Icon\":\"PartnerInformation_PartnerInformation__Icon__bmpdF\",\"PartnerInformation__Icon--Marker\":\"PartnerInformation_PartnerInformation__Icon--Marker__tuD1f\",\"PartnerInformation__Icon--Phone\":\"PartnerInformation_PartnerInformation__Icon--Phone__eSexr\",\"PartnerInformation__Icon--Mail\":\"PartnerInformation_PartnerInformation__Icon--Mail__uzmeN\",\"PartnerInformation__Icon--Arrow\":\"PartnerInformation_PartnerInformation__Icon--Arrow__iNAlr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ArticlePage__Main\":\"ArticlePage_ArticlePage__Main__2bv3r\",\"ArticlePage__Container\":\"ArticlePage_ArticlePage__Container__R3UB0\",\"ArticlePage__Actions\":\"ArticlePage_ArticlePage__Actions__UgSkd\",\"ArticlePage__Title\":\"ArticlePage_ArticlePage__Title__bVnzV\",\"ArticlePage__Preamble\":\"ArticlePage_ArticlePage__Preamble__QWNQ6\",\"ArticlePage--HasMap\":\"ArticlePage_ArticlePage--HasMap__fvUry\",\"BookmarkButton\":\"ArticlePage_BookmarkButton__8_KLz\",\"Button\":\"ArticlePage_Button__Iu0We\",\"ArticlePage__Links\":\"ArticlePage_ArticlePage__Links___kDQ6\",\"ArticlePage__Links--Mobile\":\"ArticlePage_ArticlePage__Links--Mobile__v9Oci\",\"ArticlePage__Links--Desktop\":\"ArticlePage_ArticlePage__Links--Desktop__1mcKC\",\"ArticlePage--Imageless\":\"ArticlePage_ArticlePage--Imageless__Y2ZSy\"};","import React, { useEffect, useRef, useState } from 'react';\n// ------------------ Helpers\nfunction isNumber(n) {\n const number = parseFloat(n);\n return !isNaN(number) && isFinite(number);\n}\nfunction isPercentage(height) {\n // Percentage height\n return (typeof height === 'string' &&\n height[height.length - 1] === '%' &&\n isNumber(height.substring(0, height.length - 1)));\n}\nfunction hideContent(element, height, disableDisplayNone) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 &&\n !disableDisplayNone &&\n (element === null || element === void 0 ? void 0 : element.style) &&\n (element === null || element === void 0 ? void 0 : element.children.length) > 0) {\n element.style.display = 'none';\n }\n}\nfunction showContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = '';\n }\n}\nconst ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific',\n};\nfunction getStaticStateClasses(animationStateClasses, height) {\n return [\n animationStateClasses.static,\n height === 0 && animationStateClasses.staticHeightZero,\n typeof height === 'number' && height > 0\n ? animationStateClasses.staticHeightSpecific\n : null,\n height === 'auto' && animationStateClasses.staticHeightAuto,\n ]\n .filter((v) => v)\n .join(' ');\n}\n// ------------------ Component\nconst propsToOmitFromDiv = [\n 'animateOpacity',\n 'animationStateClasses',\n 'applyInlineTransitions',\n 'children',\n 'className',\n 'contentClassName',\n 'contentRef',\n 'delay',\n 'duration',\n 'easing',\n 'height',\n 'onHeightAnimationEnd',\n 'onHeightAnimationStart',\n 'style',\n 'disableDisplayNone',\n];\nconst AnimateHeight = React.forwardRef((componentProps, ref) => {\n // const AnimateHeight = forwardRef((componentProps: AnimateHeightProps, ref) => {\n // const AnimateHeight: React.FC<AnimateHeightProps> = (componentProps) => {\n const { animateOpacity = false, animationStateClasses = {}, applyInlineTransitions = true, children, className = '', contentClassName, delay: userDelay = 0, disableDisplayNone = false, duration: userDuration = 500, easing = 'ease', height, onHeightAnimationEnd, onHeightAnimationStart, style, contentRef, } = componentProps;\n const divProps = Object.assign({}, componentProps);\n propsToOmitFromDiv.forEach((propKey) => {\n delete divProps[propKey];\n });\n // ------------------ Initialization\n const prevHeight = useRef(height);\n const contentElement = useRef(null);\n const animationClassesTimeoutID = useRef();\n const timeoutID = useRef();\n const stateClasses = useRef(Object.assign(Object.assign({}, ANIMATION_STATE_CLASSES), animationStateClasses));\n const isBrowser = typeof window !== 'undefined';\n const prefersReducedMotion = useRef(isBrowser && window.matchMedia\n ? window.matchMedia('(prefers-reduced-motion)').matches\n : false);\n const delay = prefersReducedMotion.current ? 0 : userDelay;\n const duration = prefersReducedMotion.current ? 0 : userDuration;\n let initHeight = height;\n let initOverflow = 'visible';\n if (typeof height === 'number') {\n // Reset negative height to 0\n initHeight = height < 0 ? 0 : height;\n initOverflow = 'hidden';\n }\n else if (isPercentage(initHeight)) {\n // If value is string \"0%\" make sure we convert it to number 0\n initHeight = height === '0%' ? 0 : height;\n initOverflow = 'hidden';\n }\n const [currentHeight, setCurrentHeight] = useState(initHeight);\n const [overflow, setOverflow] = useState(initOverflow);\n const [useTransitions, setUseTransitions] = useState(false);\n const [animationStateClassNames, setAnimationStateClassNames] = useState(getStaticStateClasses(stateClasses.current, height));\n // ------------------ Did mount\n useEffect(() => {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, currentHeight, disableDisplayNone);\n // This should be explicitly run only on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n // ------------------ Height update\n useEffect(() => {\n if (height !== prevHeight.current && contentElement.current) {\n showContent(contentElement.current, prevHeight.current);\n // Cache content height\n contentElement.current.style.overflow = 'hidden';\n const contentHeight = contentElement.current.offsetHeight;\n contentElement.current.style.overflow = '';\n // set total animation time\n const totalDuration = duration + delay;\n let newHeight;\n let timeoutHeight;\n let timeoutOverflow = 'hidden';\n let timeoutUseTransitions;\n const isCurrentHeightAuto = prevHeight.current === 'auto';\n if (typeof height === 'number') {\n // Reset negative height to 0\n newHeight = height < 0 ? 0 : height;\n timeoutHeight = newHeight;\n }\n else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutHeight = newHeight;\n }\n else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutHeight = 'auto';\n timeoutOverflow = undefined;\n }\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutHeight = newHeight;\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n // Animation classes\n const newAnimationStateClassNames = [\n stateClasses.current.animating,\n (prevHeight.current === 'auto' || height < prevHeight.current) &&\n stateClasses.current.animatingUp,\n (height === 'auto' || height > prevHeight.current) &&\n stateClasses.current.animatingDown,\n timeoutHeight === 0 && stateClasses.current.animatingToHeightZero,\n timeoutHeight === 'auto' &&\n stateClasses.current.animatingToHeightAuto,\n typeof timeoutHeight === 'number' && timeoutHeight > 0\n ? stateClasses.current.animatingToHeightSpecific\n : null,\n ]\n .filter((v) => v)\n .join(' ');\n // Animation classes to be put after animation is complete\n const timeoutAnimationStateClasses = getStaticStateClasses(stateClasses.current, timeoutHeight);\n // Set starting height and animating classes\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n setCurrentHeight(newHeight);\n setOverflow('hidden');\n setUseTransitions(!isCurrentHeightAuto);\n setAnimationStateClassNames(newAnimationStateClassNames);\n // Clear timeouts\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutUseTransitions = true;\n // Short timeout to allow rendering of the initial animation state first\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(timeoutUseTransitions);\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(timeoutHeight);\n }, 50);\n // Set static classes and remove transitions when animation ends\n animationClassesTimeoutID.current = setTimeout(() => {\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, timeoutHeight, disableDisplayNone);\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(timeoutHeight);\n }, totalDuration);\n }\n else {\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(newHeight);\n // Set end height, classes and remove transitions when animation is complete\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, newHeight, disableDisplayNone); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(newHeight);\n }, totalDuration);\n }\n }\n prevHeight.current = height;\n return () => {\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n };\n // This should be explicitly run only on height change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [height]);\n // ------------------ Render\n const componentStyle = Object.assign(Object.assign({}, style), { height: currentHeight, overflow: overflow || (style === null || style === void 0 ? void 0 : style.overflow) });\n if (useTransitions && applyInlineTransitions) {\n componentStyle.transition = `height ${duration}ms ${easing} ${delay}ms`;\n // Include transition passed through styles\n if (style === null || style === void 0 ? void 0 : style.transition) {\n componentStyle.transition = `${style.transition}, ${componentStyle.transition}`;\n }\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n const contentStyle = {};\n if (animateOpacity) {\n contentStyle.transition = `opacity ${duration}ms ${easing} ${delay}ms`;\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n if (currentHeight === 0) {\n contentStyle.opacity = 0;\n }\n }\n // Check if user passed aria-hidden prop\n const hasAriaHiddenProp = typeof divProps['aria-hidden'] !== 'undefined';\n const ariaHidden = hasAriaHiddenProp\n ? divProps['aria-hidden']\n : height === 0;\n return (React.createElement(\"div\", Object.assign({}, divProps, { \"aria-hidden\": ariaHidden, className: `${animationStateClassNames} ${className}`, style: componentStyle, ref: ref }),\n React.createElement(\"div\", { className: contentClassName, style: contentStyle, ref: (el) => {\n contentElement.current = el;\n if (contentRef) {\n contentRef.current = el;\n }\n } }, children)));\n});\nexport default AnimateHeight;\n"],"names":["AuthorCard","href","image","name","text","param","t","useTranslation","serializedImage","serializeImage","expanded","setExpanded","useState","itemContainerRef","useRef","classes","classNames","styles","jsx_runtime","jsxs","div","className","jsx","a","span","BackgroundImage","quality","h3","p","AnimateHeight","duration","height","id","role","ref","button","onClick","aria-controls","aria-expanded","aria-haspopup","aria-label","propTypes","PropTypes","defaultProps","PartnerInformation","prettyUrl","phone","phoneText","address","url","mail","window","URL","host","replace","h2","ul","li","concat","aria-hidden","ArticlePage","state","title","contentBlocks","hero","breadcrumbs","preamble","linksDocumentsBlock","sponsored","author","map","partner","partOfPage","backToMap","backToWhatToDo","date","find","content","type","blocks","_object_spread_props","_","_object_spread","value","items","coords","item","readMore","lat","lng","apiKey","googleMapsApiKey","newTab","useContext","CookieStateContext","cookieConsent","categories","includes","useLayoutEffect","location","search","indexOf","history","replaceState","pathname","isBelowBreadcrumbs","length","bookmark","isEmpty","hasMapExpander","Breadcrumbs","Hero","clean","h1","dangerouslySetInnerHTML","__html","ArticleDate","BookmarkButton","untranslatedButtonModifiers","MapExpander","zoomLevel","BackBanner","LinkList","Array","isArray","StreamField","pageType","ShareFeedbackSegment","articleId","Sponsors","isRequired","containers_ArticlePage","basePageWrap","module","exports","isPercentage","isNumber","n","number","parseFloat","isNaN","isFinite","substring","hideContent","element","disableDisplayNone","style","children","display","ANIMATION_STATE_CLASSES","animating","animatingUp","animatingDown","animatingToHeightZero","animatingToHeightAuto","animatingToHeightSpecific","static","staticHeightZero","staticHeightAuto","staticHeightSpecific","getStaticStateClasses","animationStateClasses","filter","v","join","propsToOmitFromDiv","react__WEBPACK_IMPORTED_MODULE_0__","forwardRef","componentProps","animateOpacity","applyInlineTransitions","contentClassName","delay","userDelay","userDuration","easing","onHeightAnimationEnd","onHeightAnimationStart","contentRef","divProps","Object","assign","forEach","propKey","prevHeight","contentElement","animationClassesTimeoutID","timeoutID","stateClasses","isBrowser","prefersReducedMotion","matchMedia","matches","current","initHeight","initOverflow","currentHeight","setCurrentHeight","overflow","setOverflow","useTransitions","setUseTransitions","animationStateClassNames","setAnimationStateClassNames","useEffect","newHeight","timeoutHeight","contentHeight","offsetHeight","totalDuration","timeoutOverflow","isCurrentHeightAuto","undefined","newAnimationStateClassNames","timeoutAnimationStateClasses","clearTimeout","setTimeout","componentStyle","transition","WebkitTransition","contentStyle","opacity","ariaHidden","hasAriaHiddenProp","createElement","el","__webpack_exports__","Z"],"sourceRoot":""}