{"version":3,"file":"static/js/2105.b78a26fd.chunk.js","mappings":"sNAUA,MAAMA,GAAaC,EAAAA,EAAAA,IAAOC,EAAAA,EAAPD,EAAgB,QAAC,MAAEE,GAAH,QAAgB,CACjDC,aAAcD,EAAME,QAAQ,GAC5BC,MAAO,QACP,CAACH,EAAMI,YAAYC,KAAK,OAAQ,CAC9BC,UAAW,OACXC,aAAc,iBACdC,aAAc,EACdC,OAAQ,EACRN,MAAO,OACPO,eAAgB,QATe,IAa7BC,GAAeb,EAAAA,EAAAA,IAAOc,EAAAA,EAAPd,EAAe,QAAC,MAAEE,GAAH,QAAgB,CAClDa,WAAYb,EAAMc,QAAQC,KAAKC,QADG,IAIpC,MAAMC,UAAaC,EAAAA,cAAqB,cAAD,yBACrCC,MAAQ,CACNC,MAAM,EACNL,KAAM,GAH6B,CAkBrCM,SACE,MAAM,SAAEC,EAAF,KAAYC,EAAZ,QAAkBC,EAAlB,MAA2BC,GAAUC,KAAKC,MAEhD,OACE,SAAC9B,EAAD,CAAY2B,QAASA,EAArB,UACE,SAAC,IAAD,WACE,SAAC,IAAD,CACEI,QAAQ,SAACjB,EAAD,UAAeY,IACvBE,MAAOA,EACPI,UAAWP,OAKpB,EAhCGL,EAaGa,aAAe,CACpBR,SAAU,qBACVG,MAAO,gBAoBX,W,sJCrDA,MAAMM,UAAyBb,EAAAA,cAU7Bc,YAAYL,GAAQ,IAAD,EACjBM,MAAMN,GADW,YAgFnBO,kBAAqBC,IACnBT,KAAKU,WAAW,CACdC,wBAAwB,EACxBC,aAAa,IAEfZ,KAAKC,MAAMY,IAAIC,eAAeC,QAAQ,8BAAtC,EArFiB,KAwFnBL,WAAa,WAAgB,IAAfM,EAAc,uDAAP,CAAC,EACpB,MAAML,EAAyBK,EAAKL,yBAA0B,EAC5DC,EAAcI,EAAKJ,cAAe,EAoBpC,GAlBA,EAAKX,MAAMY,IAAII,WAAa,EAAKC,KAGjC,EAAKjB,MAAMY,IAAIC,eAAeC,QAAQ,uBAAwB,CAC5DI,UAAW,cACXC,WAAY,EAAKF,KACjBG,UAAW,EAAKpB,MAAMY,IAAIS,OAAOD,YAInC,EAAKpB,MAAMY,IAAIU,sBAAsB,CACnCL,KAAM,EAAKA,KACXrB,KAAM,EAAKI,MAAMuB,OAAO3B,KACxBE,MAAO,EAAKA,MACZ0B,YAAa,EAAKA,eAIa,IAA7B,EAAKhC,MAAMiC,cACb,OAAO,MAGkB,IAA3Bf,GAAmC,EAAKV,MAAMY,IAAIc,aAAa,GAE/D,EAAKC,SACH,CACEF,eAAe,IAEjB,KAEE,EAAKzB,MAAMY,IAAIC,eAAeC,QAAQ,iCAGtB,IAAhBH,GAC4C,oBAAnC,EAAKX,MAAMuB,OAAOK,cACzB,EAAK5B,MAAMuB,OAAOK,cAFpB,GAKL,EAlIkB,KAoInBC,YAAc,KAGR9B,KAAKkB,OAASlB,KAAKC,MAAMY,IAAII,aAC/BjB,KAAKC,MAAMY,IAAII,gBAAac,GAE9B/B,KAAK4B,SACH,CACEF,eAAe,IAEjB,KAEE1B,KAAKC,MAAMY,IAAIC,eAAeC,QAAQ,gCAEI,oBAAnCf,KAAKC,MAAMuB,OAAOQ,cACvBhC,KAAKC,MAAMuB,OAAOQ,cADpB,GARJ,EAvIAhC,KAAKkB,KAAOjB,EAAMiB,KAAKe,oBAAiBF,EAGxC/B,KAAKyB,YAAcxB,EAAMiC,QAAQT,aAAexB,EAAMuB,OAAOC,YAG7D,MAAMU,GAC2C,IAA9CnC,KAAKC,MAAMY,IAAIS,OAAOc,UAAUC,IAAIC,QAClCC,EAAAA,SACGtC,EAAMiC,QAAQM,qBACdvC,EAAMiC,QAAQC,kBACpB,EAKEA,GACFnC,KAAKC,MAAMY,IAAIC,eAAeC,QAAQ,uBAAwB,CAC5DI,UAAW,cACXC,WAAYpB,KAAKkB,KACjBG,UAAWrB,KAAKC,MAAMY,IAAIS,OAAOD,YAMrCrB,KAAKP,MAAQ,CACXM,MAAOE,EAAMiC,QAAQnC,OAASE,EAAMuB,OAAOzB,OAAS,iBACpD0C,MAAOxC,EAAMiC,QAAQO,OAASxC,EAAMuB,OAAOiB,OAAS,KACpDf,cAAeS,GAMjBnC,KAAKD,MAAQE,EAAMiC,QAAQnC,OAASE,EAAMuB,OAAOzB,OAAS,iBAG1DC,KAAKvB,MAAQwB,EAAMiC,QAAQzD,OAASwB,EAAMuB,OAAO/C,OAAS,IAC1DuB,KAAK0C,OAASzC,EAAMiC,QAAQQ,QAAUzC,EAAMuB,OAAOkB,QAAU,OAC7D1C,KAAK2C,SAAW1C,EAAMiC,QAAQS,UAAY1C,EAAMuB,OAAOmB,UAAY,OAGnE1C,EAAMY,IAAI+B,qBAAqB5C,MAI/B,MAAMmB,EAAS,UAAMnB,KAAKkB,KAAX,eAGfjB,EAAMY,IAAIC,eAAe+B,UAAU1B,GAAYH,IAC7ChB,KAAKU,WAAWM,EAAhB,IAIF,MAAM8B,EAAc,UAAM9C,KAAKkB,KAAX,gBAEpBjB,EAAMY,IAAIC,eAAe+B,UAAUC,GAAgB,KACjD9C,KAAK8B,aAAL,GAEH,CAGDiB,mBAAmBC,GAGjBA,EAAUxB,OAAOzB,QAAUC,KAAKC,MAAMuB,OAAOzB,OAC3CC,KAAK4B,SAAS,CAAE7B,MAAOC,KAAKC,MAAMuB,OAAOzB,QAE3CiD,EAAUxB,OAAOiB,QAAUzC,KAAKC,MAAMuB,OAAOiB,OAC3CzC,KAAK4B,SAAS,CAAEa,MAAOzC,KAAKC,MAAMuB,OAAOiB,OAC5C,CAEDQ,eAAeC,GACb,MAAO,CAAC,OAAQ,SAASC,SAASD,EACnC,CAgFDE,aAAa5B,GACX,MAAM,OAAE0B,GAAWlD,KAAKC,MAAMiC,QAI9B,MAAiC,oBAA1B,OAAOV,QAAP,IAAOA,OAAP,EAAOA,EAAQ7B,QACpB6B,EAAO7B,UAKP,iCACE,SAAC,UAAD,CACEmB,eAAgBd,KAAKC,MAAMY,IAAIC,eAC/Bf,MAAOC,KAAKP,MAAMM,MAClB0C,MAAOzC,KAAKP,MAAMgD,MAClBY,QAASrD,KAAK8B,YACdpC,KAAMM,KAAKP,MAAMiC,cACjB4B,SAAUtD,KAAKC,MAAMuB,OAAO8B,SAC5BC,WAAYvD,KAAKC,MAAMuB,OAAO+B,WAC9BC,WAAYxD,KAAKC,MAAMuB,OAAOgC,WAC9BC,gBAAiBzD,KAAKC,MAAMuB,OAAOiC,gBACnCC,yBAA0B1D,KAAKC,MAAMuB,OAAOkC,yBAC5CC,gBAAiB3D,KAAKC,MAAMuB,OAAOmC,gBACnCC,WAAY5D,KAAKC,MAAMuB,OAAOoC,WAC9BC,qBAAsB7D,KAAKC,MAAMuB,OAAOqC,qBACxCC,eAAgB9D,KAAKC,MAAMuB,OAAOsC,eAClCrF,MAAOuB,KAAKvB,MACZiE,OAAQ1C,KAAK0C,OACbC,SAAU3C,KAAK2C,SACfoB,KAAK,SACLC,oBAAqBhE,KAAKC,MAAMY,IAAIS,OAAOc,UAAU6B,MAAMC,MACxDC,GAAiB,kBAAXA,EAAEjD,OApBb,SA2BG1B,EAAAA,aAAmBQ,KAAKC,MAAMmE,SAAU,CACvC1C,cAAe1B,KAAKP,MAAMiC,kBAOlB,WAAXwB,GAAuBlD,KAAKqE,qBAE5BrE,KAAKiD,eAAeC,IACnBlD,KAAKsE,mBAAL,UAA2BpB,EAA3B,YAEU,YAAXA,GAAwBlD,KAAKuE,wBAGnC,CAUDF,qBACE,OAAOG,EAAAA,EAAAA,eACL,SAAC,IAAD,CACEC,KACEzE,KAAKiD,eAAejD,KAAKC,MAAMiC,QAAQgB,SACT,YAA9BlD,KAAKC,MAAMiC,QAAQgB,OAHvB,UAME,UAAC,KAAD,CACEwB,QAAM,EACNC,SAAS,EACTC,SAAU5E,KAAKP,MAAMiC,cACrB5B,QAASE,KAAKQ,kBAJhB,WAME,SAAC,IAAD,UAAeR,KAAKC,MAAMuB,OAAO3B,QACjC,SAAC,IAAD,CAAcP,QAASU,KAAKD,aAGhC8E,SAASC,eAAe,kBAE3B,CAEDR,mBAAmBS,GACjB,OAAOP,EAAAA,EAAAA,eAEL,SAAC,IAAD,CAAQQ,QAAM,EAAd,UACE,SAAC,UAAD,CACEnF,KAAMG,KAAKC,MAAMuB,OAAO3B,KACxBC,QAASE,KAAKQ,kBACdT,MAAOC,KAAKD,MACZH,SAAUI,KAAKyB,gBAGnBoD,SAASC,eAAeC,GAE3B,CAEDR,sBACE,OAAOC,EAAAA,EAAAA,eAEL,SAAC,IAAD,CAAQQ,QAAM,EAAd,UACE,SAAC,UAAD,CACEnF,KAAMG,KAAKC,MAAMuB,OAAO3B,KACxBC,QAASE,KAAKQ,kBACdT,MAAOC,KAAKD,MACZH,SAAUI,KAAKyB,gBAGnBoD,SAASC,eAAe,0BAE3B,CAEDnF,SAEE,OACgD,IAA9CK,KAAKC,MAAMY,IAAIS,OAAOc,UAAUC,IAAIC,OACpCtC,KAAKoD,aAAapD,KAAKC,MAAMuB,OAEhC,EAGH,W,mHCtSA,MAAMyD,UAAezF,EAAAA,cACnBc,YAAYL,GACVM,MAAMN,GADW,KAUnB4B,aAAe,KACb7B,KAAKkF,YAAYC,WAAU,EAA3B,EAXiB,KAcnBnD,aAAe,KACbhC,KAAKkF,YAAYC,WAAU,GAG3BnF,KAAKoF,cAAcrE,QAAQ,aAK3Bf,KAAKkF,YAAYG,gBAAgBC,OAAjC,EArBAtF,KAAKoF,cAAgB,IAAIG,KAEzBvF,KAAKkF,YAAc,IAAIA,EAAAA,QAAY,CACjC7C,IAAKpC,EAAMoC,IACX+C,cAAepF,KAAKoF,eAEvB,CAkBDzF,SACE,OACE,SAAC,UAAD,IACMK,KAAKC,MACTiB,KAAK,SACLM,OAAQ,CACN3B,MAAM,SAAC,IAAD,IACNE,MAAO,SACP0B,YAAa,sDACbiB,OAAQ,IACRjE,MAAO,IACP+G,SAAKzD,EACL0D,UAAM1D,EACNF,aAAc7B,KAAK6B,aACnBG,aAAchC,KAAKgC,cAZvB,UAeE,SAAC,UAAD,CACE0D,MAAO1F,KAAKkF,YACZrE,IAAKb,KAAKC,MAAMY,IAChBuE,cAAepF,KAAKoF,iBAI3B,EAEH,W,mKCkHA,UAvKA,MAGE9E,YAAYqF,GAAW,OAAD,uDA4EtBC,kBAAqBC,KACT,IAANA,GACF7F,KAAKqC,IAAIyD,GAAG,QAAS9F,KAAK+F,aAC1B/F,KAAKqC,IAAI2D,UAAUC,IAAI,YAEvBjG,KAAKqC,IAAI6D,GAAG,QAASlG,KAAK+F,aAC1B/F,KAAKqC,IAAI2D,UAAUG,OAAO,UAC3B,EAnFmB,KAsFtBJ,YAAetF,IAEbT,KAAKqC,IAEF+D,mBAAmB3F,EAAE4F,MAAO,CAC3BC,YAAa,SAAUC,GACrB,MAAMC,EAAOD,EAAEE,IAAI,QACnB,MAAgB,iBAATD,GAAoC,0BAATA,CACnC,IAGFE,SAASC,IACR,MAAMC,EAAgBD,EAAEE,QACxBD,EAAcE,WACd9G,KAAKqF,gBAAgB0B,WAAWH,EAAhC,IAMJ5G,KAAKqC,IACF2E,YACAC,WACAC,QAAQX,GAAMA,EAAEY,eAChBD,QAAQX,GAAMA,EAAEa,aAEhB/E,KAAIgF,UAEH,IACE,MACMC,EADYC,OAAOC,OAAOC,EAAML,YAEnCF,QAAQQ,IAAoC,IAAvBA,EAASC,YAC9BtF,KAAKuF,GAAsBA,EAAkB7C,KAEhD,QAAqBhD,IAAjBtB,EAAEoH,WAA0B,CAC9B,MAAMC,EAAO9H,KAAKqC,IAAI0F,UAEhBC,EAAMP,EACTQ,YAEAC,kBACCzH,EAAEoH,WACFC,EAAKK,gBACLL,EAAKM,gBAAgBC,UACrB,CACEC,YAAa,mBACbC,aAAcjB,EAAiBkB,KAAK,OAIpCC,QAAiBC,EAAAA,EAAAA,QAAOV,GACxBW,QAAaF,EAASE,OACtBC,GAAW,IAAIC,EAAAA,GAAUC,aAAaH,GAE5C3I,KAAKqF,gBAAgB0D,YAAYH,EAClC,CACe,CAAhB,MAAOI,GAAS,IApCtB,EA1GoB,KAkJtBC,eAAkBC,IAChB,MAAMC,EAAM,GAGZ,IAAK,MAAMxC,KAAK3G,KAAKqF,gBAAgB+D,cAAe,CAElD,MAAMC,GAAkB,OAAArJ,KAAA,MAASsJ,YAAY3C,EAAGuC,GAChDC,EAAII,KAAKF,EACV,CAEDrJ,KAAKwJ,aAAaT,YAAYI,EAA9B,EA5JoB,KA+JtB7D,MAAQ,KACNtF,KAAKqF,gBAAgBC,QACrBtF,KAAKwJ,aAAalE,OAAlB,EAhKAtF,KAAKqC,IAAMsD,EAAStD,KACpB,OAAArC,KAAA,MAAW,IAAIyJ,EAAAA,QAAgB,CAC7BC,WAAY/D,EAAStD,IAAI0F,UAAUK,gBAAgBC,YAIrDrI,KAAKqF,gBAAkB,IAAIsE,EAAAA,EAC3B3J,KAAK4J,eAAiB,IAAIC,EAAAA,EAAY,CACpCC,OAAQ9J,KAAKqF,gBACb0E,UAAW,SACXC,OAAQ,IACRxD,KAAM,wBACNyD,QAAS,yBACTC,MAAO,IAAIC,EAAAA,GAAM,CACfC,KAAM,IAAIC,EAAAA,EAAK,CACb5H,MAAO,8BAET6H,OAAQ,IAAIC,EAAAA,EAAO,CACjB9H,MAAO,yBACPhE,MAAO,IAET+L,MAAO,IAAIC,EAAAA,EAAO,CAChBC,OAAQ,EACRN,KAAM,IAAIC,EAAAA,EAAK,CACb5H,MAAO,8BAET6H,OAAQ,IAAIC,EAAAA,EAAO,CACjB9H,MAAO,yBACPhE,MAAO,UAOfuB,KAAKwJ,aAAe,IAAIG,EAAAA,EACxB3J,KAAK2K,YAAc,IAAId,EAAAA,EAAY,CACjCC,OAAQ9J,KAAKwJ,aACbO,UAAW,SACXC,OAAQ,IACRxD,KAAM,eACNyD,QAAS,eACTC,MAAO,IAAIC,EAAAA,GAAM,CACfC,KAAM,IAAIC,EAAAA,EAAK,CACb5H,MAAO,6BAET6H,OAAQ,IAAIC,EAAAA,EAAO,CACjB9H,MAAO,0BACPhE,MAAO,IAET+L,MAAO,IAAIC,EAAAA,EAAO,CAChBC,OAAQ,EACRN,KAAM,IAAIC,EAAAA,EAAK,CACb5H,MAAO,6BAET6H,OAAQ,IAAIC,EAAAA,EAAO,CACjB9H,MAAO,0BACPhE,MAAO,UAOfuB,KAAKqC,IAAIuI,SAAS5K,KAAK4J,gBACvB5J,KAAKqC,IAAIuI,SAAS5K,KAAK2K,YACxB,CAGDxF,UAAU0F,IACO,IAAXA,GACF7K,KAAK4F,mBAAkB,EAE1B,E,iMCzEH,MAAMkF,GAAqB1M,EAAAA,EAAAA,IAAO2M,EAAAA,EAAP3M,EAAqB,QAAC,MAAEE,GAAH,QAAgB,CAC9DG,MAAO,OACPuM,WAAY,EACZC,cAAe,EACfxI,MAAOnE,EAAMc,QAAQC,KAAKC,QAC1B4L,gBAAiB5M,EAAMc,QAAQE,QALe,IAQhD,MAAM6L,UAAmB3L,EAAAA,cAQvBc,YAAYL,GACVM,MAAMN,GADW,KAPnBR,MAAQ,CACN+G,KAAM,GACN4E,aAAa,EACblC,SAAU,IACVmC,WAAY,GAGK,KAWnBC,aAAe,KACbtL,KAAK4B,SAAS,CAAEwJ,aAAcpL,KAAKP,MAAM2L,cAAe,KACtDpL,KAAKC,MAAMyF,MAAME,kBAAkB5F,KAAKP,MAAM2L,YAA9C,GADF,EAZiB,KAiBnBG,YAAe9K,IACbT,KAAK4B,SAAS,CAAEsH,SAAUzI,EAAEyC,OAAOsI,OAAnC,EAlBiB,KAqBnBC,WAAa,KAIX,IAAIL,EAAc,KAClB,GAA8B,IAA1BpL,KAAKP,MAAM4L,WAAkB,CAC/B,GAA8D,IAA1DrL,KAAKC,MAAMyF,MAAML,gBAAgB+D,cAAcsC,OAOjD,YANA1L,KAAKC,MAAM0L,gBACT,wEACA,CACEC,QAAS,UAKf5L,KAAKC,MAAMyF,MAAME,mBAAkB,GACnCwF,GAAc,CACf,CAED,MAAMC,EAAarL,KAAKP,MAAM4L,WAAa,EAC3CrL,KAAK4B,SAAS,CACZyJ,gBACoB,OAAhBD,GAAwB,CAAEA,gBAFhC,EAzCiB,KA+CnBS,WAAa,KACX,MAAMR,EAAarL,KAAKP,MAAM4L,WAAa,EAC3CrL,KAAK4B,SAAS,CAAEyJ,cAAhB,EAjDiB,KAoDnBS,mBAAqB,KACnB,IAAIvF,EAAI,KACR,OAAQvG,KAAKP,MAAM4L,YACjB,KAAK,EACH9E,EAAI,SACJ,MACF,KAAK,EACHA,EAAI,cACJ,MACF,QACEA,EAAI,WAGR,OAAOA,CAAP,EAjEiB,KAoEnBwF,iBAAmB,KAEf,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,EAAf,UACE,SAAC,IAAD,CACEC,WAAS,EACTC,SAAoC,IAA1BnM,KAAKP,MAAM4L,WACrBvL,QAASE,KAAK6L,WAHhB,gCAvEa,KAkFnBO,kBAAoB,KAEqC,IAApDpM,KAAK0F,MAAML,gBAAgB+D,cAAcsC,QACS,IAAjD1L,KAAK0F,MAAM8D,aAAaJ,cAAcsC,UACtC,SAAC,KAAD,CAAMM,MAAI,EAACC,GAAI,GAAf,UACE,UAAC,IAAD,CACEC,WAAS,EACTpM,QAAS,KACPE,KAAK0F,MAAMJ,QAGXtF,KAAKqM,aAAL,EANJ,WASE,SAAC,IAAD,IATF,cApFNrM,KAAK0F,MAAQ1F,KAAKC,MAAMyF,MACxB1F,KAAKa,IAAMb,KAAKC,MAAMY,IACtBb,KAAKc,eAAiBd,KAAKC,MAAMY,IAAIC,eACrCd,KAAKC,MAAMmF,cAAcvC,UAAU,aAAa,KAC9C7C,KAAK4B,SAAS,CAAEyJ,WAAY,EAAGD,aAAa,GAA5C,GAEH,CA8FDzL,SACE,OACE,+BACE,UAAC,IAAD,CAAS0L,WAAYrL,KAAKP,MAAM4L,WAAYiB,YAAY,WAAxD,WACE,UAAC,IAAD,YACE,SAAC,IAAD,yCACA,SAAC,IAAD,WACE,UAAC,KAAD,CAAMC,WAAS,EAAC/N,QAAS,EAAGgO,UAAU,MAAtC,UACGxM,KAAKoM,qBACN,SAAC,KAAD,CAAMJ,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CAASQ,oBAAkB,EAAC1M,MAAM,uBAAlC,UACE,UAAC+K,EAAD,CACE4B,SAAU1M,KAAKsL,aACf1G,SAAU5E,KAAKP,MAAM2L,YACrBI,MAAM,cAHR,WAKE,SAAC,IAAD,IALF,wBAUHxL,KAAK+L,oBACN,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,EAAf,UACE,SAAC,IAAD,CACEC,WAAS,EACTN,QAAQ,YACRnJ,MAAM,UACN3C,QAASE,KAAKyL,WAJhB,+BAnBE,MA+BV,UAAC,IAAD,YACE,SAAC,IAAD,qCACA,SAAC,IAAD,WACE,UAAC,KAAD,CAAMc,WAAS,EAAC/N,QAAS,EAAGgO,UAAU,MAAtC,WACE,SAAC,KAAD,CAAMR,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEL,QAAQ,WACRM,WAAS,EACTV,MAAOxL,KAAKP,MAAMyJ,SAClBwD,SAAU1M,KAAKuL,YACfoB,MAAM,iCAGT3M,KAAK+L,oBACN,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,EAAf,UACE,SAAC,IAAD,CACEC,WAAS,EACTN,QAAQ,YACRnJ,MAAM,UACN3C,QAAS,KACPE,KAAKyL,aACLzL,KAAKC,MAAMyF,MAAMuD,eAAejJ,KAAKP,MAAMyJ,SAA3C,EANJ,6BAfE,MA8BV,UAAC,IAAD,YACE,SAAC,IAAD,qBACA,SAAC,IAAD,WACE,UAAC,KAAD,CAAMqD,WAAS,EAAC/N,QAAS,EAAGgO,UAAU,MAAtC,UACGxM,KAAK+L,oBACN,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,EAAf,UACE,SAAC,IAAD,CACEC,WAAS,EACTN,QAAQ,YACRnJ,MAAM,UACN3C,QAAS,KACPE,KAAKC,MAAMyF,MAAMJ,QACjBtF,KAAK4B,SAAS,CAAEyJ,WAAY,GAA5B,EANJ,4BANE,SAwBjB,EAGH,WAAeuB,EAAAA,EAAAA,IAAazB,E,qBC9NxB0B,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,sHACD,UACJN,EAAQ,EAAUG,C,sBCVdL,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,0LACD,UACJN,EAAQ,EAAUG,C,sBCVdL,EAAyBC,EAAQ,OAIrCC,EAAQ,OAAU,EAClB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAChDG,EAAcH,EAAQ,OACtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,4OACD,eACJN,EAAQ,EAAUG,C,0ICVX,SAASI,EAA8BC,GAC5C,OAAOC,EAAAA,EAAAA,GAAqB,oBAAqBD,EAClD,CAED,OAD8BE,EAAAA,EAAAA,GAAuB,oBAAqB,CAAC,OAAQ,eAAgB,mB,sBCHnG,MAAMC,EAAY,CAAC,WAAY,YAAa,yBAqBtCC,GAAqBvP,EAAAA,EAAAA,IAAOwP,EAAAA,EAAY,CAC5CpH,KAAM,oBACN+G,KAAM,OACNM,kBAAmB,CAAC5N,EAAO6N,IAAWA,EAAOC,MAHpB3P,EAIxB,QAAC,MACFE,GADC,QAEI,CACL0P,QAAS,QACTC,UAAW,UACXxP,MAAO,OACP,CAAC,YAAD,OAAayP,EAAAA,iBAAyC,CACpDC,SAAU7P,EAAM8P,MAAQ9P,GAAOc,QAAQiP,OAAOC,aAC9C,uBAAwB,CACtBH,QAAS,IAGb,CAAC,KAAD,OAAMD,EAAAA,aAAN,aAA6CA,EAAAA,iBAAyC,CACpFC,SAAU7P,EAAM8P,MAAQ9P,GAAOc,QAAQiP,OAAOE,cAb/C,IAgBGC,GAA+BpQ,EAAAA,EAAAA,IAAO,OAAQ,CAClDoI,KAAM,oBACN+G,KAAM,iBACNM,kBAAmB,CAAC5N,EAAO6N,IAAWA,EAAOW,gBAHVrQ,EAIlC,QAAC,MACFE,GADC,QAEI,CACLoQ,SAAU,SACVC,cAAe,OACfhM,SAAU,WACV6C,IAAK,EACLoJ,MAAO,EACPC,OAAQ,EACRpJ,KAAM,EACN3G,aAAc,UACdqP,QAAS,EACTjD,gBAAiB,eACjB4D,WAAYxQ,EAAMyQ,YAAYC,OAAO,UAAW,CAC9CC,SAAU3Q,EAAMyQ,YAAYE,SAASC,QAdtC,IAoEH,MAnDoC1P,EAAAA,YAAiB,SAAwB2P,EAASC,GACpF,MAAMnP,GAAQoP,EAAAA,EAAAA,GAAc,CAC1BpP,MAAOkP,EACP3I,KAAM,uBAEF,SACFpC,EADE,UAEFkL,EAFE,sBAGFC,GACEtP,EACJuP,GAAQC,EAAAA,EAAAA,GAA8BxP,EAAOyN,GACzCgC,EAAazP,EACb0P,EA/DkBD,KACxB,MAAM,QACJC,GACED,EAKJ,OAAOE,EAAAA,EAAAA,GAJO,CACZ7B,KAAM,CAAC,QACPU,eAAgB,CAAC,mBAEUnB,EAA+BqC,EAA5D,EAuDgBE,CAAkBH,GAClC,OAAoBI,EAAAA,EAAAA,MAAMnC,GAAoBoC,EAAAA,EAAAA,GAAS,CACrDT,WAAWU,EAAAA,EAAAA,SAAKL,EAAQ5B,KAAMuB,GAC9BC,uBAAuBS,EAAAA,EAAAA,SAAKT,EAAuBI,EAAQM,cAC3Db,IAAKA,EACLM,WAAYA,GACXF,EAAO,CACRpL,SAAU,CAACA,GAAuB8L,EAAAA,EAAAA,KAAK1B,EAA8B,CACnEc,UAAWK,EAAQlB,eACnBiB,WAAYA,OAGjB,G,oJCtFM,SAASS,EAA0B5C,GACxC,OAAOC,EAAAA,EAAAA,GAAqB,gBAAiBD,EAC9C,CAED,OAD0BE,EAAAA,EAAAA,GAAuB,gBAAiB,CAAC,OAAQ,SAAU,SAAU,UAAW,QAAS,c,WCHnH,MAAMC,EAAY,CAAC,SAAU,SAAU,YAAa,YAAa,oBAAqB,YAAa,2BAA4B,QAAS,wBAyBlI0C,GAAiBhS,EAAAA,EAAAA,IAAO,MAAO,CACnCoI,KAAM,gBACN+G,KAAM,OACNM,kBAAmB,CAAC5N,EAAO6N,KAAWiC,EAAAA,EAAAA,GAAS,CAC7C,CAAC,MAAD,OAAOM,EAAAA,QAA4BvC,EAAO/N,MAC1C,CAAC,MAAD,OAAOsQ,EAAAA,YAAgCvC,EAAO3N,WAC7C2N,EAAOC,OANW3P,CAOpB,CACD4P,QAAS,OACTsC,WAAY,SACZC,QAAS,KAELC,GAAmBpS,EAAAA,EAAAA,IAAO,MAAO,CACrCoI,KAAM,gBACN+G,KAAM,SACNM,kBAAmB,CAAC5N,EAAO6N,IAAWA,EAAO5N,QAHtB9B,CAItB,CACD4P,QAAS,OACTyC,KAAM,WACNC,YAAa,KAETC,GAAmBvS,EAAAA,EAAAA,IAAO,MAAO,CACrCoI,KAAM,gBACN+G,KAAM,SACNM,kBAAmB,CAAC5N,EAAO6N,IAAWA,EAAOO,QAHtBjQ,CAItB,CACDqS,KAAM,WACNG,UAAW,aACXC,WAAY,EACZH,aAAc,EACdnS,cAAe,IAEXuS,GAAoB1S,EAAAA,EAAAA,IAAO,MAAO,CACtCoI,KAAM,gBACN+G,KAAM,UACNM,kBAAmB,CAAC5N,EAAO6N,IAAWA,EAAOiD,SAHrB3S,CAIvB,CACDqS,KAAM,aAiIR,MA/HgCjR,EAAAA,YAAiB,SAAoB2P,EAASC,GAC5E,MAAMnP,GAAQoP,EAAAA,EAAAA,GAAc,CAC1BpP,MAAOkP,EACP3I,KAAM,mBAEF,OACF6H,EADE,OAEFnO,EAFE,UAGFoP,EAHE,UAIF0B,EAAY,MAJV,kBAKFC,GAAoB,EACpB9Q,UAAW+Q,EANT,yBAOFC,EACApR,MAAOqR,EARL,qBASFC,GACEpR,EACJuP,GAAQC,EAAAA,EAAAA,GAA8BxP,EAAOyN,GACzCgC,GAAaK,EAAAA,EAAAA,GAAS,CAAC,EAAG9P,EAAO,CACrC+Q,YACAC,sBAEItB,EA1EkBD,KACxB,MAAM,QACJC,GACED,EASJ,OAAOE,EAAAA,EAAAA,GARO,CACZ7B,KAAM,CAAC,QACP7N,OAAQ,CAAC,UACTmO,OAAQ,CAAC,UACT0C,QAAS,CAAC,WACVhR,MAAO,CAAC,SACRI,UAAW,CAAC,cAEegQ,EAA2BR,EAAxD,EA8DgBE,CAAkBH,GAClC,IAAI3P,EAAQqR,EACC,MAATrR,GAAiBA,EAAMmB,OAASoQ,EAAAA,GAAeL,IACjDlR,GAAqBmQ,EAAAA,EAAAA,KAAKoB,EAAAA,GAAYvB,EAAAA,EAAAA,GAAS,CAC7CnE,QAAS1L,EAAS,QAAU,KAC5BoP,UAAWK,EAAQ5P,MACnBiR,UAAW,OACXhD,QAAS,SACRqD,EAAsB,CACvBjN,SAAUrE,MAGd,IAAII,EAAY+Q,EAYhB,OAXiB,MAAb/Q,GAAqBA,EAAUe,OAASoQ,EAAAA,GAAeL,IACzD9Q,GAAyB+P,EAAAA,EAAAA,KAAKoB,EAAAA,GAAYvB,EAAAA,EAAAA,GAAS,CACjDnE,QAAS1L,EAAS,QAAU,QAC5BoP,UAAWK,EAAQxP,UACnBsC,MAAO,iBACPuO,UAAW,OACXhD,QAAS,SACRmD,EAA0B,CAC3B/M,SAAUjE,OAGM2P,EAAAA,EAAAA,MAAMM,GAAgBL,EAAAA,EAAAA,GAAS,CACjDT,WAAWU,EAAAA,EAAAA,SAAKL,EAAQ5B,KAAMuB,GAC9BiC,GAAIP,EACJ5B,IAAKA,EACLM,WAAYA,GACXF,EAAO,CACRpL,SAAU,CAAClE,IAAuBgQ,EAAAA,EAAAA,KAAKM,EAAkB,CACvDlB,UAAWK,EAAQzP,OACnBwP,WAAYA,EACZtL,SAAUlE,KACK4P,EAAAA,EAAAA,MAAMgB,EAAmB,CACxCxB,UAAWK,EAAQoB,QACnBrB,WAAYA,EACZtL,SAAU,CAACrE,EAAOI,KAChBkO,IAAuB6B,EAAAA,EAAAA,KAAKS,EAAkB,CAChDrB,UAAWK,EAAQtB,OACnBqB,WAAYA,EACZtL,SAAUiK,OAGf,G,qJCjIM,SAASmD,EAAoBjE,GAClC,OAAOC,EAAAA,EAAAA,GAAqB,UAAWD,EACxC,EACmBE,EAAAA,EAAAA,GAAuB,UAAW,CAAC,SACvD,I,WCJA,MAAMC,EAAY,CAAC,YAAa,UAoB1B+D,GAAWrT,EAAAA,EAAAA,IAAOsT,EAAAA,EAAO,CAC7BlL,KAAM,UACN+G,KAAM,OACNM,kBAAmB,CAAC5N,EAAO6N,IAAWA,EAAOC,MAH9B3P,EAId,KACM,CACLsQ,SAAU,aAwDd,MArD0BlP,EAAAA,YAAiB,SAAc2P,EAASC,GAChE,MAAMnP,GAAQoP,EAAAA,EAAAA,GAAc,CAC1BpP,MAAOkP,EACP3I,KAAM,aAEF,UACF8I,EADE,OAEFqC,GAAS,GACP1R,EACJuP,GAAQC,EAAAA,EAAAA,GAA8BxP,EAAOyN,GACzCgC,GAAaK,EAAAA,EAAAA,GAAS,CAAC,EAAG9P,EAAO,CACrC0R,WAEIhC,EA/BkBD,KACxB,MAAM,QACJC,GACED,EAIJ,OAAOE,EAAAA,EAAAA,GAHO,CACZ7B,KAAM,CAAC,SAEoByD,EAAqB7B,EAAlD,EAwBgBE,CAAkBH,GAClC,OAAoBQ,EAAAA,EAAAA,KAAKuB,GAAU1B,EAAAA,EAAAA,GAAS,CAC1CT,WAAWU,EAAAA,EAAAA,SAAKL,EAAQ5B,KAAMuB,GAC9BsC,UAAWD,EAAS,OAAI5P,EACxBqN,IAAKA,EACLM,WAAYA,GACXF,GACJ,G","sources":["components/Card.js","plugins/BaseWindowPlugin.js","plugins/Buffer/Buffer.js","plugins/Buffer/BufferModel.js","plugins/Buffer/BufferView.js","../node_modules/@mui/icons-material/AddBox.js","../node_modules/@mui/icons-material/Adjust.js","../node_modules/@mui/icons-material/LayersClear.js","../node_modules/@mui/material/CardActionArea/cardActionAreaClasses.js","../node_modules/@mui/material/CardActionArea/CardActionArea.js","../node_modules/@mui/material/CardHeader/cardHeaderClasses.js","../node_modules/@mui/material/CardHeader/CardHeader.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js"],"sourcesContent":["import React from \"react\";\nimport propTypes from \"prop-types\";\nimport { styled } from \"@mui/material/styles\";\nimport {\n Card as MUICard,\n CardHeader,\n CardActionArea,\n Avatar,\n} from \"@mui/material\";\n\nconst StyledCard = styled(MUICard)(({ theme }) => ({\n marginBottom: theme.spacing(1),\n width: \"210px\",\n [theme.breakpoints.down(\"sm\")]: {\n boxShadow: \"none\",\n borderBottom: \"1px solid #ccc\",\n borderRadius: 0,\n margin: 0,\n width: \"100%\",\n justifyContent: \"left\",\n },\n}));\n\nconst StyledAvatar = styled(Avatar)(({ theme }) => ({\n background: theme.palette.text.primary,\n}));\n\nclass Card extends React.PureComponent {\n state = {\n open: false,\n text: \"\",\n };\n\n static propTypes = {\n abstract: propTypes.string.isRequired,\n icon: propTypes.object.isRequired,\n onClick: propTypes.func.isRequired,\n title: propTypes.string.isRequired,\n };\n\n static defaultProps = {\n abstract: \"Beskrivning saknas\",\n title: \"Titel saknas\",\n };\n\n render() {\n const { abstract, icon, onClick, title } = this.props;\n\n return (\n \n \n {icon}}\n title={title}\n subheader={abstract}\n />\n \n \n );\n }\n}\n\nexport default Card;\n","import React from \"react\";\nimport propTypes from \"prop-types\";\nimport { isMobile } from \"./../utils/IsMobile\";\nimport { createPortal } from \"react-dom\";\nimport { Hidden, ListItem, ListItemIcon, ListItemText } from \"@mui/material\";\nimport Window from \"../components/Window.js\";\nimport Card from \"../components/Card.js\";\nimport PluginControlButton from \"../components/PluginControlButton\";\n\nclass BaseWindowPlugin extends React.PureComponent {\n static propTypes = {\n app: propTypes.object.isRequired,\n children: propTypes.object.isRequired,\n custom: propTypes.object.isRequired,\n map: propTypes.object.isRequired,\n options: propTypes.object.isRequired,\n type: propTypes.string.isRequired,\n };\n\n constructor(props) {\n super(props);\n // 'type' is basically a unique identifier for each plugin\n this.type = props.type.toLowerCase() || undefined;\n\n // There will be defaults in props.custom, so that each plugin has own default title/description\n this.description = props.options.description || props.custom.description;\n\n // Should Window be visible at start?\n const visibleAtStart =\n (this.props.app.config.mapConfig.map.clean === false && // Never show in clean mode\n (isMobile\n ? props.options.visibleAtStartMobile\n : props.options.visibleAtStart)) ||\n false;\n\n // If plugin is shown at start, we want to register it as shown in the Analytics module too.\n // Normally, the event would be sent when user clicks on the button that activates the plugin,\n // but in this case there won't be any click as the window will be visible at start.\n if (visibleAtStart) {\n this.props.app.globalObserver.publish(\"analytics.trackEvent\", {\n eventName: \"pluginShown\",\n pluginName: this.type,\n activeMap: this.props.app.config.activeMap,\n });\n }\n\n // Title and Color are kept in state and not as class properties. Keeping them in state\n // ensures re-render when new props arrive and update the state variables (see componentDidUpdate() too).\n this.state = {\n title: props.options.title || props.custom.title || \"Unnamed plugin\",\n color: props.options.color || props.custom.color || null,\n windowVisible: visibleAtStart,\n };\n\n // Title is a special case: we want to use the state.title and pass on to Window in order\n // to update Window's title dynamically. At the same time, we want all other occurrences,\n // e.g. Widget or Drawer button's label to remain the same.\n this.title = props.options.title || props.custom.title || \"Unnamed plugin\";\n\n // Try to get values from admin's option. Fallback to customs from Plugin defaults, or finally to hard-coded values.\n this.width = props.options.width || props.custom.width || 400;\n this.height = props.options.height || props.custom.height || \"auto\";\n this.position = props.options.position || props.custom.position || \"left\";\n\n // Register Window in our global register\n props.app.registerWindowPlugin(this);\n\n // Subscribe to a global event that makes it possible to show/hide Windows.\n // First we prepare a unique event name for each plugin so it looks like '{pluginName}.showWindow'.\n const eventName = `${this.type}.showWindow`;\n // Next, subscribe to that event, expect 'opts' array.\n // To find all places where this event is publish, search for 'globalObserver.publish(\"show'\n props.app.globalObserver.subscribe(eventName, (opts) => {\n this.showWindow(opts);\n });\n\n // Same as above, but to close the window.\n const closeEventName = `${this.type}.closeWindow`;\n\n props.app.globalObserver.subscribe(closeEventName, () => {\n this.closeWindow();\n });\n }\n\n // Does not run on initial render, but runs on subsequential re-renders.\n componentDidUpdate(prevProps) {\n // Window's title and color can be updated on-the-flight, so we keep them\n // in state and ensure that state is updated when new props arrive.\n prevProps.custom.title !== this.props.custom.title &&\n this.setState({ title: this.props.custom.title });\n\n prevProps.custom.color !== this.props.custom.color &&\n this.setState({ color: this.props.custom.color });\n }\n\n pluginIsWidget(target) {\n return [\"left\", \"right\"].includes(target);\n }\n\n handleButtonClick = (e) => {\n this.showWindow({\n hideOtherPluginWindows: true,\n runCallback: true,\n });\n this.props.app.globalObserver.publish(\"core.onlyHideDrawerIfNeeded\");\n };\n\n showWindow = (opts = {}) => {\n const hideOtherPluginWindows = opts.hideOtherPluginWindows || true,\n runCallback = opts.runCallback || true;\n // Let the App know which tool is currently active\n this.props.app.activeTool = this.type;\n\n // Tell the Analytics model about this\n this.props.app.globalObserver.publish(\"analytics.trackEvent\", {\n eventName: \"pluginShown\",\n pluginName: this.type,\n activeMap: this.props.app.config.activeMap,\n });\n\n // AppModel keeps track of recently shown plugins.\n this.props.app.pushPluginIntoHistory({\n type: this.type,\n icon: this.props.custom.icon,\n title: this.title,\n description: this.description,\n });\n\n // Don't continue if visibility hasn't changed\n if (this.state.windowVisible === true) {\n return null;\n }\n\n hideOtherPluginWindows === true && this.props.app.onWindowOpen(this);\n\n this.setState(\n {\n windowVisible: true,\n },\n () => {\n // Notify the app that a plugin's visibility has changed\n this.props.app.globalObserver.publish(\"core.pluginVisibilityChanged\");\n\n // If there's a callback defined in custom, run it\n runCallback === true &&\n typeof this.props.custom.onWindowShow === \"function\" &&\n this.props.custom.onWindowShow();\n }\n );\n };\n\n closeWindow = () => {\n // If closeWindow was initiated by the tool that is currently\n // active, we should unset the activeTool property\n if (this.type === this.props.app.activeTool)\n this.props.app.activeTool = undefined;\n\n this.setState(\n {\n windowVisible: false,\n },\n () => {\n // Notify the app that a plugin's visibility has changed\n this.props.app.globalObserver.publish(\"core.pluginVisibilityChanged\");\n\n typeof this.props.custom.onWindowHide === \"function\" &&\n this.props.custom.onWindowHide();\n }\n );\n };\n /**\n * @summary Render the plugin and its buttons according to settings in admin.\n * @description See comments in code to follow the rendering logic.\n * @param {*} custom\n * @returns {object} React.Component\n * @memberof BaseWindowPlugin\n */\n renderWindow(custom) {\n const { target } = this.props.options;\n // BaseWindowPlugin, which calls this method, will supply an object.\n // If that object contains a render() function, we want to call it\n // and bypass any other functionality from this method.\n return typeof custom?.render === \"function\" ? (\n custom.render()\n ) : (\n // If there was not custom render method, we do \"normal\" rendering.\n // That includes rendering the plugin Window itself, as well as a\n // button (that will trigger opening of the plugin Window).\n <>\n t.type === \"layerswitcher\"\n )}\n >\n {/* We have to pass windowVisible down to the children so that we can conditionally render\n the component, since it does not accept components with display: \"none\". We use the\n windowVisible-prop to make sure that we don't render the when the window\n is not visible.*/}\n {React.cloneElement(this.props.children, {\n windowVisible: this.state.windowVisible,\n })}\n \n {/* Always render a Drawer button unless its target is \"hidden\". \n It's a backup for plugins render elsewhere: we hide \n Widget and Control buttons on small screens and fall \n back to Drawer button). */}\n {target !== \"hidden\" && this.renderDrawerButton()}\n {/* Widget buttons must also render a Widget */}\n {this.pluginIsWidget(target) &&\n this.renderWidgetButton(`${target}-column`)}\n {/* Finally, render a Control button if target has that value */}\n {target === \"control\" && this.renderControlButton()}\n \n );\n }\n\n /**\n * This is a bit of a special case. This method will render\n * not only plugins specified as Drawer plugins (target===toolbar),\n * but it will also render Widget and Control plugins - given some special condition.\n *\n * Those special conditions are small screens, where there's no screen\n * estate to render the Widget button in Map Overlay.\n */\n renderDrawerButton() {\n return createPortal(\n \n \n {this.props.custom.icon}\n \n \n ,\n document.getElementById(\"plugin-buttons\")\n );\n }\n\n renderWidgetButton(id) {\n return createPortal(\n // Hide Widget button on small screens, see renderDrawerButton too\n \n \n ,\n document.getElementById(id)\n );\n }\n\n renderControlButton() {\n return createPortal(\n // Hide Control button on small screens, see renderDrawerButton too\n \n \n ,\n document.getElementById(\"plugin-control-buttons\")\n );\n }\n\n render() {\n // Don't render if \"clean\" query param is specified, otherwise go on\n return (\n this.props.app.config.mapConfig.map.clean !== true &&\n this.renderWindow(this.props.custom)\n );\n }\n}\n\nexport default BaseWindowPlugin;\n","import React from \"react\";\nimport BaseWindowPlugin from \"../BaseWindowPlugin\";\nimport Observer from \"react-event-observer\";\n\nimport BufferIcon from \"@mui/icons-material/Adjust\";\n\nimport BufferView from \"./BufferView.js\";\nimport BufferModel from \"./BufferModel.js\";\n\nclass Buffer extends React.PureComponent {\n constructor(props) {\n super(props);\n this.localObserver = new Observer();\n\n this.BufferModel = new BufferModel({\n map: props.map,\n localObserver: this.localObserver,\n });\n }\n\n onWindowShow = () => {\n this.BufferModel.setActive(true);\n };\n\n onWindowHide = () => {\n this.BufferModel.setActive(false);\n\n // Ensure that state is reset in view\n this.localObserver.publish(\"resetView\");\n // Ensure that no selected features are left when window\n // is hidden: we want to start over fresh next time!\n // Note: we don't clear the buffer source though as user\n // might want to close this window but keep the buffers visible.\n this.BufferModel.highlightSource.clear();\n };\n\n render() {\n return (\n ,\n title: \"Buffra\",\n description: \"Skapa en buffer runt objekt utvalda objekt i kartan\",\n height: 650,\n width: 400,\n top: undefined,\n left: undefined,\n onWindowShow: this.onWindowShow,\n onWindowHide: this.onWindowHide,\n }}\n >\n \n \n );\n }\n}\nexport default Buffer;\n","import { Circle, Stroke, Fill, Style } from \"ol/style.js\";\nimport { Vector as VectorSource } from \"ol/source.js\";\nimport { Vector as VectorLayer } from \"ol/layer.js\";\n\nimport GeoJSON from \"ol/format/GeoJSON.js\";\n\nimport HajkTransformer from \"utils/HajkTransformer\";\nimport { hfetch } from \"utils/FetchWrapper\";\n\nclass BufferModel {\n #HT;\n\n constructor(settings) {\n this.map = settings.map;\n this.#HT = new HajkTransformer({\n projection: settings.map.getView().getProjection().getCode(),\n });\n\n // Will contain new features for clicked objects/features\n this.highlightSource = new VectorSource();\n this.highlightLayer = new VectorLayer({\n source: this.highlightSource,\n layerType: \"system\",\n zIndex: 5000,\n name: \"pluginBufferSelection\",\n caption: \"Buffer selection layer\",\n style: new Style({\n fill: new Fill({\n color: \"rgba(255, 168, 231, 0.47)\",\n }),\n stroke: new Stroke({\n color: \"rgba(255, 168, 231, 1)\",\n width: 4,\n }),\n image: new Circle({\n radius: 6,\n fill: new Fill({\n color: \"rgba(255, 168, 231, 0.47)\",\n }),\n stroke: new Stroke({\n color: \"rgba(255, 168, 231, 1)\",\n width: 1,\n }),\n }),\n }),\n });\n\n // Will contain the actual buffer zone features\n this.bufferSource = new VectorSource();\n this.bufferLayer = new VectorLayer({\n source: this.bufferSource,\n layerType: \"system\",\n zIndex: 5000,\n name: \"pluginBuffer\",\n caption: \"Buffer layer\",\n style: new Style({\n fill: new Fill({\n color: \"rgba(255, 255, 255, 0.5)\",\n }),\n stroke: new Stroke({\n color: \"rgba(75, 100, 115, 1.5)\",\n width: 4,\n }),\n image: new Circle({\n radius: 6,\n fill: new Fill({\n color: \"rgba(255, 255, 255, 0.5)\",\n }),\n stroke: new Stroke({\n color: \"rgba(75, 100, 115, 1.5)\",\n width: 2,\n }),\n }),\n }),\n });\n\n // Add layers to map\n this.map.addLayer(this.highlightLayer);\n this.map.addLayer(this.bufferLayer);\n }\n\n // Called onWindowShow and onWindowHide\n setActive(active) {\n if (active === false) {\n this.activateSelecting(false);\n }\n }\n\n activateSelecting = (v) => {\n if (v === true) {\n this.map.on(\"click\", this.handleClick);\n this.map.clickLock.add(\"buffer\");\n } else {\n this.map.un(\"click\", this.handleClick);\n this.map.clickLock.delete(\"buffer\");\n }\n };\n\n handleClick = (e) => {\n // Handle all vector features\n this.map\n // Get all features from all vector sources at given pixel…\n .getFeaturesAtPixel(e.pixel, {\n layerFilter: function (l) {\n const name = l.get(\"name\");\n return name !== \"pluginBuffer\" && name !== \"pluginBufferSelection\"; // …but ignore them if they happen to come from buffer layer.\n },\n })\n // Take each of the returned features from any vector layer…\n .forEach((f) => {\n const clonedFeature = f.clone(); // …clone it…\n clonedFeature.setStyle(); // …and reset it's style (so it uses layer's default)…\n this.highlightSource.addFeature(clonedFeature); //…and add it to the highlight source (so we collect them there).\n });\n\n // We're done with vector sources' features (e.g from WFS layers or the Draw plugin).\n // Still we must handle visible WMS layers, see if we get any features at given coordinate\n // and if so, add them to the highlight source too.\n this.map\n .getLayers() // Grab layers…\n .getArray() // …as array…\n .filter((l) => l.getVisible()) // …only currently visible…\n .filter((l) => l.layersInfo) // …and only those that contain a \"layersInfo\" property - that means it's a Hajk layer - see ConfigMapper.js.\n // Each of the remaining layers must now be queried separately. Let's do it:\n .map(async (layer) => {\n // Async, as we will await some fetch.\n try {\n const subLayers = Object.values(layer.layersInfo); // Transform the object to an array of objects\n const subLayersToQuery = subLayers\n .filter((subLayer) => subLayer.queryable === true) // Use only those layers that are specifically queryable\n .map((queryableSubLayer) => queryableSubLayer.id); // Grab the id property (which is the name that we'll use in our URL)\n\n if (e.coordinate !== undefined) {\n const view = this.map.getView();\n\n const url = layer // Prepare a URL that we'll call to see if there are features at a given coordinate\n .getSource()\n // Get the URL to FeatureInfo for given layer\n .getFeatureInfoUrl(\n e.coordinate, // Use current click event coordinate - that's what we're interested in!\n view.getResolution(),\n view.getProjection().getCode(),\n {\n INFO_FORMAT: \"application/json\",\n QUERY_LAYERS: subLayersToQuery.join(\",\"), // Use the layer names we got earlier in the query\n }\n );\n\n const response = await hfetch(url);\n const json = await response.json();\n const features = new GeoJSON().readFeatures(json); // Parse OL Features from returned JSON.\n\n this.highlightSource.addFeatures(features); // Add them to the highlight source.\n }\n } catch (error) {} // There might be errors in the fetch/JSON parse stage, keep them quiet.\n });\n };\n\n bufferFeatures = (distance) => {\n const arr = [];\n\n // Grab all selected features from highlight source…\n for (const f of this.highlightSource.getFeatures()) {\n // …use HajkTransformer utility to create a buffered feature…\n const bufferedFeature = this.#HT.getBuffered(f, distance);\n arr.push(bufferedFeature);\n }\n // …that finally gets added to the buffer zone features source.\n this.bufferSource.addFeatures(arr);\n };\n\n clear = () => {\n this.highlightSource.clear();\n this.bufferSource.clear();\n };\n}\nexport default BufferModel;\n","import React from \"react\";\nimport { styled } from \"@mui/material/styles\";\n\nimport Grid from \"@mui/material/Grid\";\nimport AddIcon from \"@mui/icons-material/AddBox\";\nimport ClearIcon from \"@mui/icons-material/LayersClear\";\nimport TextField from \"@mui/material/TextField\";\nimport Button from \"@mui/material/Button\";\nimport ToggleButton from \"@mui/material/ToggleButton\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { Step, StepContent, StepLabel, Stepper } from \"@mui/material\";\nimport { withSnackbar } from \"notistack\";\n\nconst StyledToggleButton = styled(ToggleButton)(({ theme }) => ({\n width: \"100%\",\n paddingTop: 5,\n paddingBottom: 5,\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.primary,\n}));\n\nclass BufferView extends React.PureComponent {\n state = {\n name: \"\",\n isSelecting: false,\n distance: 1000,\n activeStep: 0,\n };\n\n constructor(props) {\n super(props);\n\n this.model = this.props.model;\n this.app = this.props.app;\n this.globalObserver = this.props.app.globalObserver;\n this.props.localObserver.subscribe(\"resetView\", () => {\n this.setState({ activeStep: 0, isSelecting: false });\n });\n }\n\n setSelecting = () => {\n this.setState({ isSelecting: !this.state.isSelecting }, () => {\n this.props.model.activateSelecting(this.state.isSelecting);\n });\n };\n\n setDistance = (e) => {\n this.setState({ distance: e.target.value });\n };\n\n handleNext = () => {\n // Some special handling for going from step 1 to 2:\n // - prevent action if no features have been selected\n // - if there are selected features, abort feature selection if user forgot to\n let isSelecting = null;\n if (this.state.activeStep === 0) {\n if (this.props.model.highlightSource.getFeatures().length === 0) {\n this.props.enqueueSnackbar(\n \"Du måste markera minst ett objekt i kartan för att kunna buffra\",\n {\n variant: \"error\",\n }\n );\n return;\n }\n this.props.model.activateSelecting(false);\n isSelecting = false; // Prepare the state variable for setting later\n }\n\n const activeStep = this.state.activeStep + 1;\n this.setState({\n activeStep, // Always set active step to current (new) value\n ...(isSelecting !== null && { isSelecting }), // Set isSelecting only if it isn't null\n });\n };\n\n handlePrev = () => {\n const activeStep = this.state.activeStep - 1;\n this.setState({ activeStep });\n };\n\n getNextButtonLabel = () => {\n let l = null;\n switch (this.state.activeStep) {\n case 1:\n l = \"Buffra\";\n break;\n case 2:\n l = \"Börja om\";\n break;\n default:\n l = \"Nästa\";\n break;\n }\n return l;\n };\n\n renderPrevButton = () => {\n return (\n \n \n Föregående\n \n \n );\n };\n\n renderClearButton = () => {\n return (\n (this.model.highlightSource.getFeatures().length !== 0 ||\n this.model.bufferSource.getFeatures().length !== 0) && (\n \n {\n this.model.clear();\n // The clear() above didn't cause any changes to this components\n // state, hence we must force update… sorry! :/\n this.forceUpdate();\n }}\n >\n Rensa\n \n \n )\n );\n };\n\n render() {\n return (\n <>\n \n \n Välj objekt att buffra\n \n \n {this.renderClearButton()}\n \n \n \n \n Välj objekt\n \n \n \n {this.renderPrevButton()}\n \n \n Nästa\n \n \n \n \n \n \n Ange bufferavstånd\n \n \n \n \n \n {this.renderPrevButton()}\n \n {\n this.handleNext();\n this.props.model.bufferFeatures(this.state.distance);\n }}\n >\n Buffra\n \n \n \n \n \n \n Klart\n \n \n {this.renderPrevButton()}\n \n {\n this.props.model.clear();\n this.setState({ activeStep: 0 });\n }}\n >\n Rensa\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default withSnackbar(BufferView);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\"\n}), 'AddBox');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z\"\n}), 'Adjust');\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m19.81 14.99 1.19-.92-1.43-1.43-1.19.92 1.43 1.43zm-.45-4.72L21 9l-9-7-2.91 2.27 7.87 7.88 2.4-1.88zM3.27 1 2 2.27l4.22 4.22L3 9l1.63 1.27L12 16l2.1-1.63 1.43 1.43L12 18.54l-7.37-5.73L3 14.07l9 7 4.95-3.85L20.73 21 22 19.73 3.27 1z\"\n}), 'LayersClear');\nexports.default = _default;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCardActionAreaUtilityClass(slot) {\n return generateUtilityClass('MuiCardActionArea', slot);\n}\nconst cardActionAreaClasses = generateUtilityClasses('MuiCardActionArea', ['root', 'focusVisible', 'focusHighlight']);\nexport default cardActionAreaClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"focusVisibleClassName\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport cardActionAreaClasses, { getCardActionAreaUtilityClass } from './cardActionAreaClasses';\nimport ButtonBase from '../ButtonBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n focusHighlight: ['focusHighlight']\n };\n return composeClasses(slots, getCardActionAreaUtilityClass, classes);\n};\nconst CardActionAreaRoot = styled(ButtonBase, {\n name: 'MuiCardActionArea',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'block',\n textAlign: 'inherit',\n width: '100%',\n [`&:hover .${cardActionAreaClasses.focusHighlight}`]: {\n opacity: (theme.vars || theme).palette.action.hoverOpacity,\n '@media (hover: none)': {\n opacity: 0\n }\n },\n [`&.${cardActionAreaClasses.focusVisible} .${cardActionAreaClasses.focusHighlight}`]: {\n opacity: (theme.vars || theme).palette.action.focusOpacity\n }\n}));\nconst CardActionAreaFocusHighlight = styled('span', {\n name: 'MuiCardActionArea',\n slot: 'FocusHighlight',\n overridesResolver: (props, styles) => styles.focusHighlight\n})(({\n theme\n}) => ({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit',\n opacity: 0,\n backgroundColor: 'currentcolor',\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.short\n })\n}));\nconst CardActionArea = /*#__PURE__*/React.forwardRef(function CardActionArea(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardActionArea'\n });\n const {\n children,\n className,\n focusVisibleClassName\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(CardActionAreaRoot, _extends({\n className: clsx(classes.root, className),\n focusVisibleClassName: clsx(focusVisibleClassName, classes.focusVisible),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [children, /*#__PURE__*/_jsx(CardActionAreaFocusHighlight, {\n className: classes.focusHighlight,\n ownerState: ownerState\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardActionArea.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n focusVisibleClassName: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default CardActionArea;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCardHeaderUtilityClass(slot) {\n return generateUtilityClass('MuiCardHeader', slot);\n}\nconst cardHeaderClasses = generateUtilityClasses('MuiCardHeader', ['root', 'avatar', 'action', 'content', 'title', 'subheader']);\nexport default cardHeaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"avatar\", \"className\", \"component\", \"disableTypography\", \"subheader\", \"subheaderTypographyProps\", \"title\", \"titleTypographyProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Typography from '../Typography';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport cardHeaderClasses, { getCardHeaderUtilityClass } from './cardHeaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar'],\n action: ['action'],\n content: ['content'],\n title: ['title'],\n subheader: ['subheader']\n };\n return composeClasses(slots, getCardHeaderUtilityClass, classes);\n};\nconst CardHeaderRoot = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Root',\n overridesResolver: (props, styles) => _extends({\n [`& .${cardHeaderClasses.title}`]: styles.title,\n [`& .${cardHeaderClasses.subheader}`]: styles.subheader\n }, styles.root)\n})({\n display: 'flex',\n alignItems: 'center',\n padding: 16\n});\nconst CardHeaderAvatar = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})({\n display: 'flex',\n flex: '0 0 auto',\n marginRight: 16\n});\nconst CardHeaderAction = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n flex: '0 0 auto',\n alignSelf: 'flex-start',\n marginTop: -4,\n marginRight: -8,\n marginBottom: -4\n});\nconst CardHeaderContent = styled('div', {\n name: 'MuiCardHeader',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: '1 1 auto'\n});\nconst CardHeader = /*#__PURE__*/React.forwardRef(function CardHeader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCardHeader'\n });\n const {\n action,\n avatar,\n className,\n component = 'div',\n disableTypography = false,\n subheader: subheaderProp,\n subheaderTypographyProps,\n title: titleProp,\n titleTypographyProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableTypography\n });\n const classes = useUtilityClasses(ownerState);\n let title = titleProp;\n if (title != null && title.type !== Typography && !disableTypography) {\n title = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'h5',\n className: classes.title,\n component: \"span\",\n display: \"block\"\n }, titleTypographyProps, {\n children: title\n }));\n }\n let subheader = subheaderProp;\n if (subheader != null && subheader.type !== Typography && !disableTypography) {\n subheader = /*#__PURE__*/_jsx(Typography, _extends({\n variant: avatar ? 'body2' : 'body1',\n className: classes.subheader,\n color: \"text.secondary\",\n component: \"span\",\n display: \"block\"\n }, subheaderTypographyProps, {\n children: subheader\n }));\n }\n return /*#__PURE__*/_jsxs(CardHeaderRoot, _extends({\n className: clsx(classes.root, className),\n as: component,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [avatar && /*#__PURE__*/_jsx(CardHeaderAvatar, {\n className: classes.avatar,\n ownerState: ownerState,\n children: avatar\n }), /*#__PURE__*/_jsxs(CardHeaderContent, {\n className: classes.content,\n ownerState: ownerState,\n children: [title, subheader]\n }), action && /*#__PURE__*/_jsx(CardHeaderAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CardHeader.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The action to display in the card header.\n */\n action: PropTypes.node,\n /**\n * The Avatar element to display.\n */\n avatar: PropTypes.node,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, `subheader` and `title` won't be wrapped by a Typography component.\n * This can be useful to render an alternative Typography variant by wrapping\n * the `title` text, and optional `subheader` text\n * with the Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n /**\n * The content of the component.\n */\n subheader: PropTypes.node,\n /**\n * These props will be forwarded to the subheader\n * (as long as disableTypography is not `true`).\n */\n subheaderTypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The content of the component.\n */\n title: PropTypes.node,\n /**\n * These props will be forwarded to the title\n * (as long as disableTypography is not `true`).\n */\n titleTypographyProps: PropTypes.object\n} : void 0;\nexport default CardHeader;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getCardUtilityClass(slot) {\n return generateUtilityClass('MuiCard', slot);\n}\nconst cardClasses = generateUtilityClasses('MuiCard', ['root']);\nexport default cardClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"raised\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Paper from '../Paper';\nimport { getCardUtilityClass } from './cardClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getCardUtilityClass, classes);\n};\nconst CardRoot = styled(Paper, {\n name: 'MuiCard',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(() => {\n return {\n overflow: 'hidden'\n };\n});\nconst Card = /*#__PURE__*/React.forwardRef(function Card(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCard'\n });\n const {\n className,\n raised = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n raised\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CardRoot, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : undefined,\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Card.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, the card will use raised styling.\n * @default false\n */\n raised: chainPropTypes(PropTypes.bool, props => {\n if (props.raised && props.variant === 'outlined') {\n return new Error('MUI: Combining `raised={true}` with `variant=\"outlined\"` has no effect.');\n }\n return null;\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Card;"],"names":["StyledCard","styled","MUICard","theme","marginBottom","spacing","width","breakpoints","down","boxShadow","borderBottom","borderRadius","margin","justifyContent","StyledAvatar","Avatar","background","palette","text","primary","Card","React","state","open","render","abstract","icon","onClick","title","this","props","avatar","subheader","defaultProps","BaseWindowPlugin","constructor","super","handleButtonClick","e","showWindow","hideOtherPluginWindows","runCallback","app","globalObserver","publish","opts","activeTool","type","eventName","pluginName","activeMap","config","pushPluginIntoHistory","custom","description","windowVisible","onWindowOpen","setState","onWindowShow","closeWindow","undefined","onWindowHide","toLowerCase","options","visibleAtStart","mapConfig","map","clean","isMobile","visibleAtStartMobile","color","height","position","registerWindowPlugin","subscribe","closeEventName","componentDidUpdate","prevProps","pluginIsWidget","target","includes","renderWindow","onClose","onResize","onMaximize","onMinimize","draggingEnabled","customPanelHeaderButtons","resizingEnabled","scrollable","allowMaximizedWindow","disablePadding","mode","layerswitcherConfig","tools","find","t","children","renderDrawerButton","renderWidgetButton","renderControlButton","createPortal","mdUp","button","divider","selected","document","getElementById","id","mdDown","Buffer","BufferModel","setActive","localObserver","highlightSource","clear","Observer","top","left","model","settings","activateSelecting","v","on","handleClick","clickLock","add","un","delete","getFeaturesAtPixel","pixel","layerFilter","l","name","get","forEach","f","clonedFeature","clone","setStyle","addFeature","getLayers","getArray","filter","getVisible","layersInfo","async","subLayersToQuery","Object","values","layer","subLayer","queryable","queryableSubLayer","coordinate","view","getView","url","getSource","getFeatureInfoUrl","getResolution","getProjection","getCode","INFO_FORMAT","QUERY_LAYERS","join","response","hfetch","json","features","GeoJSON","readFeatures","addFeatures","error","bufferFeatures","distance","arr","getFeatures","bufferedFeature","getBuffered","push","bufferSource","HajkTransformer","projection","VectorSource","highlightLayer","VectorLayer","source","layerType","zIndex","caption","style","Style","fill","Fill","stroke","Stroke","image","Circle","radius","bufferLayer","addLayer","active","StyledToggleButton","ToggleButton","paddingTop","paddingBottom","backgroundColor","BufferView","isSelecting","activeStep","setSelecting","setDistance","value","handleNext","length","enqueueSnackbar","variant","handlePrev","getNextButtonLabel","renderPrevButton","item","xs","fullWidth","disabled","renderClearButton","forceUpdate","orientation","container","direction","disableInteractive","onChange","label","withSnackbar","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getCardActionAreaUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CardActionAreaRoot","ButtonBase","overridesResolver","styles","root","display","textAlign","cardActionAreaClasses","opacity","vars","action","hoverOpacity","focusOpacity","CardActionAreaFocusHighlight","focusHighlight","overflow","pointerEvents","right","bottom","transition","transitions","create","duration","short","inProps","ref","useThemeProps","className","focusVisibleClassName","other","_objectWithoutPropertiesLoose","ownerState","classes","composeClasses","useUtilityClasses","_jsxs","_extends","clsx","focusVisible","_jsx","getCardHeaderUtilityClass","CardHeaderRoot","cardHeaderClasses","alignItems","padding","CardHeaderAvatar","flex","marginRight","CardHeaderAction","alignSelf","marginTop","CardHeaderContent","content","component","disableTypography","subheaderProp","subheaderTypographyProps","titleProp","titleTypographyProps","Typography","as","getCardUtilityClass","CardRoot","Paper","raised","elevation"],"sourceRoot":""}