{"version":3,"file":"js/app.bundle.js","mappings":"uBAAIA,ECCAC,EADAC,E,6NCAJ,I,MAAA,UACA,UAEA,UACA,UACA,UAqCMC,EAAQ,UAAOC,IAAG,ywBAmBlBC,EAAO,UAAOD,IAAG,qoBAqBjBE,GAAQ,cAtEI,SAACC,GACjB,OACE,uBAAKC,UAAWD,EAAMC,WACpB,uBAAKC,IAAK,qBAAcF,EAAMG,KAAKC,SACnC,gBAACR,EAAK,KACHI,EAAMG,KAAKE,OAEd,gBAACP,EAAI,KACH,6BACE,6BACE,0BACE,sBAAIQ,QAAS,GAAC,yBAEhB,0BAAI,0BAAI,gBAAC,EAAAC,UAAS,CAACC,MAAO,EAAAC,wB,oBAA6C,0BAAI,gBAAC,EAAAC,OAAM,CAACC,MAAOX,EAAMG,KAAKS,SAASC,KAAMC,SAAU,I,SAC9H,0BAAI,0BAAI,gBAAC,EAAAP,UAAS,CAACC,MAAO,EAAAO,iB,aAA+B,0BAAI,gBAAC,EAAAL,OAAM,CAACC,MAAOX,EAAMG,KAAKS,SAASI,OAAQF,SAAU,I,SAClH,0BAAI,0BAAI,gBAAC,EAAAP,UAAS,CAACC,MAAO,EAAAS,4B,wBAAqD,0BAAI,gBAAC,EAAAP,OAAM,CAACC,MAAOX,EAAMG,KAAKS,SAASM,IAAKJ,SAAU,I,SACrI,0BACE,sBAAIR,QAAS,GAAC,wBAEhB,0BAAI,0BAAI,gBAAC,EAAAC,UAAS,CAACC,MAAO,EAAAC,wB,oBAA6C,0BAAI,gBAAC,EAAAC,OAAM,CAACC,MAA+B,IAAxBX,EAAMG,KAAKgB,QAAQN,KAAWC,SAAU,I,SAClI,0BAAI,0BAAI,gBAAC,EAAAP,UAAS,CAACC,MAAO,EAAAO,iB,aAA+B,0BAAI,gBAAC,EAAAL,OAAM,CAACC,MAAiC,IAA1BX,EAAMG,KAAKgB,QAAQH,OAAaF,SAAU,I,SACtH,0BAAI,0BAAI,gBAAC,EAAAP,UAAS,CAACC,MAAO,EAAAS,4B,wBAAqD,0BAAI,gBAAC,EAAAP,OAAM,CAACC,MAA8B,IAAvBX,EAAMG,KAAKgB,QAAQD,IAAUJ,SAAU,I,SACzI,0BAAI,0BAAI,gBAAC,EAAAP,UAAS,CAACC,MAAO,EAAAY,qB,iBAAuC,0BAAI,gBAAC,EAAAV,OAAM,CAACC,MAA+B,IAAxBX,EAAMG,KAAKgB,QAAQE,KAAWP,SAAU,I,YAMxI,GA0Cc,CAAiB,2/BAkBvB,uEAKE,qCAGC,6FARPhB,EAKEA,EAGAF,GASG,EAAAG,MAAAA,C,4wBCrHT,cACA,UAEA,UAEA,UAEA,UACA,UACA,UACA,UACA,UACA,UACA,UAEA,OAEA,UACA,UAGA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SAiBA,yE,OACU,EAAAuB,IAAiB,KACjB,EAAAC,QAAkC,GAE1C,EAAAC,MAAgB,CACdC,UAAW,CACTC,UAAW,EAAAC,OAAOD,UAClBE,SAAU,EAAAD,OAAOC,SACjBC,KAAM,EAAAF,OAAOG,QACbC,QAAS,EACTC,MAAO,EACPC,QAAS,CAAEC,IAAK,EAAGC,OAAQ,EAAGC,MAAO,EAAGC,KAAM,IAGhDC,WAAW,EACXC,oBAAqB,GAErBC,cAAe,EACfC,eAAgB,EAChBC,cAAe,GACfC,iBAAkB,OAClBC,eAAgB,MAEhBC,OAAQ,EAAAlB,OAAOkB,QAGjB,EAAAC,WAAa,SAACC,GACZ,EAAKzB,IAAMyB,EAAEC,OACb,EAAKC,SAAS,CACZV,oBAAqBW,OAAOC,QAAQ,EAAAxB,OAAOkB,QAAQvB,KAAI,SAAC,G,IAAC8B,EAAG,KAAa,OAAN,KAAMA,CAAA,KAE7E,EAEA,EAAAC,eAAiB,SAACC,GAChB,EAAK9B,MAAMqB,OAAOS,GAAMC,QAAU,EAAK/B,MAAMqB,OAAOS,GAAMC,OAC1D,EAAKN,SAAS,CAAEJ,OAAQ,EAAKrB,MAAMqB,QACrC,EAEA,EAAAW,sBAAwB,WACtB,EAAKP,SAAS,CAAEX,WAAY,EAAKd,MAAMc,WACzC,EAMQ,EAAAmB,cAAgB,WAKtB,MAAO,CAJQC,OAAOC,YAAcC,SAASC,gBAAgBC,aAC9CF,SAASG,KAAKD,YACdJ,OAAOM,aAAcJ,SAASC,gBAAgBI,cAC9CL,SAASG,KAAKE,aAE/B,EAEA,EAAAC,gBAAkB,SAACnB,GAEjB,GAAI,EAAKzB,IAAT,CAEM,MAAkB,EAAKmC,gBAAtBU,EAAK,KAAEC,EAAM,KACdC,EAAKtB,EAAEuB,MAAMC,EAAIJ,EAAQ,EACzBK,EAAKzB,EAAEuB,MAAMG,EAAIL,EAAS,EAChC,EAAKnB,SAAS,CACZN,iBAAkB0B,EAAK,EAAI,OAAS,QACpCzB,eAAkB4B,EAAK,EAAI,MAAQ,WAGrC,EAAKjD,QAAQmD,SAAQ,SAAAC,GACnB,EAAKrD,IAAIsD,gBAAgBD,EAAG,CAAEE,OAAO,GACvC,IAEA,EAAKtD,QAAUwB,EAAE+B,SACjB,EAAKvD,QAAQmD,SAAQ,SAAAC,GACnB,EAAKrD,IAAIsD,gBAAgBD,EAAG,CAAEE,OAAO,GACvC,IAEA,EAAK5B,SAAS,CACZT,cAAeO,EAAEgC,OAAOC,IACxBvC,eAAgBM,EAAEgC,OAAOE,IACzBvC,cAAeK,EAAE+B,UAtBC,CAwBtB,EAEA,EAAAI,cAAgB,SAACC,GAEf,IAAMC,EAA0B,GAQhC,OAPAlC,OAAOmC,KAAKF,EAAQG,YAAYZ,SAAQ,SAACa,EAAGC,GAC1CJ,EAAKK,KAAK,sBAAIrC,IAAKoC,KACjB,0BAAI,gBAAC,EAAAE,eAAc,CAACpC,KAAMiC,KAC1B,0BAAI,gBAAC,EAAAI,gBAAe,CAACrC,KAAMiC,EAAG5E,MAAOwE,EAAQG,WAAWC,OAE5D,IAGE,gBAAC,EAAAK,MAAK,KACJ,6BACGR,GAIT,EAEA,EAAAS,gBAAkB,SAACf,GAEjB,IAAIgB,EAAqB,GACzBhB,EAASJ,SAAQ,SAAAC,GACfG,EAASJ,SAAQ,SAAAC,IACsB,IAAlCmB,EAASC,QAAQpB,EAAEqB,MAAMC,KAC1BH,EAASL,KAAKd,EAAEqB,MAAMC,GAE1B,GACF,IAGA,IAAMC,EAAQJ,EAASxE,KAAI,SAAC6E,EAASX,GACnC,uBAAC,EAAAY,SAAQ,CAAChD,IAAKoC,GACb,gBAAC,EAAAa,WAAU,KAAE,EAAA1E,OAAOkB,OAAOsD,GAAS7C,MACnC,EAAK4B,cAAcJ,EAASwB,MAAK,SAAA3B,GAAK,OAAAA,EAAEqB,MAAMC,IAAME,CAAd,KAFzC,IAOF,OAAO,gCAAGD,EACZ,EAEA,EAAAK,WAAa,SAACxD,GACZ,EAAKE,SAAS,CACZxB,UAAWsB,EAAEtB,WAEjB,EAEA,EAAA+E,OAAS,WACP,OACE,gBAAC,UAAG,KACE,EAAKhF,MAAMC,UAAS,CACxBgF,kBAAmB,EAAA9E,OAAO+E,OAC1BC,MAAO,CAACxC,MAAO,OAAQC,OAAQ,QAC/BwC,OAAQ,EAAKpF,MAAMkB,cAAcmE,OAAS,EAAI,UAAY,OAC1DC,aAAa,cACbvE,oBAAqB,EAAKf,MAAMe,oBAChCwE,SAAU,EAAKvF,MAAMc,UAAY,EAAAX,OAAOqF,eAAiB,EAAArF,OAAOsF,UAChEC,YAAY,EACZC,UAAW,EAAAxF,OAAOyF,WAClBtF,QAAS,EAAAH,OAAOG,QAChBuF,QAAS,EAAA1F,OAAO0F,QAChBC,OAAQ,EAAKxE,WACbyE,YAAa,EAAKrD,gBAClBsD,OAAQ,EAAKjB,aAGb,gBAAC,EAAAkB,aAAY,KAAK,EAAKjG,MAAMC,UAAS,CAAE8C,EAAG,GAAIE,GAAI,GAAIN,MAAO,OAC9D,gBAAC,EAAAuD,iBAAgB,GAACC,KAAM,EAAAC,UAAc,EAAKpG,MAAMC,UAAS,CAAE8C,EAAG,GAAIE,GAAI,IAAKoD,KAAM,yDAClF,gBAAC,EAAAC,YAAW,CAACvE,OAAQ,EAAK/B,MAAMc,UAAWiC,EAAG,GAAIE,GAAI,IAAKoD,KAAM,0DAA6BE,QAAS,EAAKvE,wBAC5G,gBAAC,EAAAwE,aAAY,GAAEL,KAAM,EAAAC,UAAc,EAAKpG,MAAMC,UAAS,CAAE8C,EAAG,GAAIE,GAAI,IAAKoD,KAAM,8CAC/E,gBAAC,EAAAI,cAAa,GAACN,KAAM,EAAAC,UAAc,EAAKpG,MAAMC,UAAS,CAAE8C,EAAG,GAAIE,GAAI,IAAKoD,KAAM,+CAC/E,gBAAC,EAAAK,cAAa,GAACP,KAAM,EAAAC,UAAc,EAAKpG,MAAMC,UAAS,CAAE8C,EAAG,GAAIE,GAAI,GAAIoD,KAAM,0DAA6BM,gBAAc,KAGzH,gBAAC,EAAAC,aAAY,KACVlF,OAAOC,QAAQ,EAAAxB,OAAOkB,QAAQvB,KAAI,SAAC,G,IAAC8B,EAAG,KAAE4C,EAAK,KAC7C,uBAAC,EAAAqC,SAAQ,CAACjF,IAAKA,EAAKG,OAAQ,EAAK/B,MAAMqB,OAAOO,GAAKG,OAAQ+E,KAAMtC,EAAMsC,KAAMjI,MAAO2F,EAAM1C,KAAMyE,QAAS,WAAM,SAAK1E,eAAeD,EAApB,GAA/G,KAKHF,OAAOC,QAAQ,EAAAxB,OAAOkB,QAAQvB,KAAI,SAAC,G,IAAC8B,EAAG,KAAE4C,EAAK,KAC7C,uBAAC,EAAAuC,kBAAiB,GAACnF,IAAKA,EAAK6C,GAAI7C,GAAS4C,EAAK,CAAEzC,OAAQ,EAAK/B,MAAMqB,OAAOO,GAAKG,SAAhF,IAIF,gBAAC,EAAAiF,OAAM,CAACjE,GAAI,GAAIE,GAAI,GAAIkD,KAAM,EAAAC,UAC5B,gBAAC,EAAArH,UAAS,CAACC,MAAO,EAAAY,mBAAoBqH,MAAM,iBAC5C,gBAAC,EAAAlI,UAAS,CAACC,MAAO,EAAAS,0BAA2BwH,MAAM,wBACnD,gBAAC,EAAAlI,UAAS,CAACC,MAAO,EAAAO,eAAgB0H,MAAM,aACxC,gBAAC,EAAAlI,UAAS,CAACC,MAAO,EAAAC,sBAAuBgI,MAAM,qBAGjD,gBAAC,EAAAC,MAAK,MAEL,EAAKlH,MAAMkB,cAAcmE,OAAS,GACjC,gBAAC,EAAA8B,MAAK,CACFjH,UAAW,EAAKF,MAAMiB,eACtBb,SAAU,EAAKJ,MAAMgB,cACrBoG,OAAQ,CAAgC,QAA/B,EAAKpH,MAAMmB,kBAA8B,GAAK,GAClB,OAA7B,EAAKnB,MAAMoB,eAA0B,IAAM,IACnDiG,aAAa,EACbC,OAAQ,UAAG,EAAKtH,MAAMoB,eAAc,YAAI,EAAKpB,MAAMmB,kBACnDoG,SAAS,SACTC,cAAc,GAEd,gBAAC,EAAAC,aAAY,CAACC,WAAY,EAAK1H,MAAMmB,iBAAkBwG,SAAU,EAAK3H,MAAMoB,gBACzE,EAAKiD,gBAAgB,EAAKtE,WAMzC,E,CACF,QArMsB,OAqMtB,EArMA,CAAsB6H,EAAMC,WAuMtBC,EAAO1F,SAAS2F,eAAe,WAClCD,IACY,IAAAE,YAAWF,GACnB9C,OAAO,gBAACiD,EAAO,M,8MCxPtB,I,EAAA,UACA,UACA,UACA,UAEA,SAgBMC,GAAU,cAVI,SAAC1J,GACnB,OACE,uBAAKC,UAAWD,EAAMC,WACnB,EAAA0B,OAAOgI,QAAQrI,KAAI,SAACsI,GACnB,uBAAC,EAAA7J,MAAK,CAACI,KAAMyJ,EAAGxG,IAAKwG,EAAExJ,OAAvB,IAIR,GAEgB,CAAmB,4ZAKgC,2HAIb,qBAJvByJ,KAAKC,KAAK,EAAAnI,OAAOgI,QAAQ9C,OAAS,GAIhC,EAAAlF,OAAOgI,QAAQ9C,QAI1CyC,EAAO1F,SAAS2F,eAAe,WAClCD,IACY,IAAAE,YAAWF,GACnB9C,OAAO,gBAACkD,EAAO,M,sUCrCtB,cAEA,SACA,UAmBS,EAAA5B,YAZW,SAACiC,GACnB,OACE,gBAAC,EAAAC,UAAS,GAACrC,KAAM,EAAAC,SAAUrE,OAAQwG,EAAExG,OAAQwE,QAASgC,EAAEhC,SAAagC,GACnE,uBAAK5F,MAAM,KAAKC,OAAO,KAAK6F,QAAQ,YAAYC,MAAM,8BACpD,wBAAMC,EAAE,wrBACR,wBAAMA,EAAE,+lBACR,wBAAMA,EAAE,imBAIhB,C,2rBCpBA,cACA,UAiBA,yE,OACE,EAAA3D,OAAS,WACP,IAAMuD,EAAI,EAAK/J,MACf,OACE,gBAACoK,EAAc,KACb,uBAAKnK,UAAW8J,EAAE9J,WAChB,uBAAKA,UAAU,MAAM8H,QAASgC,EAAEhC,SAC9B,2BAAK,uBAAKsC,UAAW,sBAAeN,EAAEzB,SACrCyB,EAAE1J,OAEJ+I,EAAMkB,SAASC,MAAMR,EAAES,UAAY,GAChC,gBAACC,EAAK,KACJ,gBAACC,EAAY,KACVX,EAAES,YAMnB,E,CACF,QApB2B,OAoB3B,EApBA,CAA2BpB,EAAMC,WAsB3Be,GAAiB,aAAO,MAAP,CAAa,mIAM9B/B,GAAW,aAAOsC,EAAP,CAAoB,0sBAE6B,iBAClD,iNAU6C,4BACA,2IAKX,0EAIC,sKArBxC,SAAAZ,GAAK,OAAAA,EAAExG,QAAU,KAAqB,GAAjC,GA7CF,KAwDU,SAAAwG,GAAK,OAAAA,EAAExG,OAAS,UAAY,SAAvB,IACL,SAAAwG,GAAK,OAAAA,EAAExG,OAAS,UAAY,SAAvB,IAKhB,SAAAwG,GAAK,OAAAA,EAAExG,OAAS,UAAY,SAAvB,IAIJ,SAAAwG,GAAK,OAAAA,EAAExG,OAAS,UAAY,SAAvB,IA2BV,EAAA8E,SAAAA,EAhBT,I,QAAMoC,GAAQ,aAAO,MAAP,CAAa,yMAQrBC,GAAe,aAAO,MAAP,CAAa,wP,oOCxFlC,I,EAEMtC,GAAe,EAFrB,QAEqB,SAAO,MAAP,CAAa,yPASzB,EAAAA,aAAAA,C,+rBCXT,I,sBAAA,UACA,UASA,yE,OACE,EAAA5B,OAAS,WACP,IAAMuD,EAAI,EAAK/J,MACf,OACE,uBAAKC,UAAW8J,EAAE9J,WACf8J,EAAES,SAGT,E,CACF,QAT+B,OAS/B,EATA,CAA+BpB,EAAMC,WAW/BJ,GAAe,aAAO2B,EAAP,CAAwB,mQA+B1C,OA0BA,WAnDC,SAAAb,GAAK,MAAe,UAAdA,EAAEZ,WAA0B,IAAA0B,KAAG,6nBAIU,WACF,qQAWE,WACF,sMAbzB,SAAhBd,EAAEb,aAAyB,IAAA2B,KAAG,2CACd,QAAhBd,EAAEb,aAAwB,IAAA2B,KAAG,yCAWb,SAAhBd,EAAEb,aAAyB,IAAA2B,KAAG,2CACd,QAAhBd,EAAEb,aAAwB,IAAA2B,KAAG,yCAjB5B,IA0BL,SAAAd,GAAK,MAAe,OAAdA,EAAEZ,WAAsB,IAAA0B,KAAG,6nBAIc,WACF,qQAWE,WACF,sMAbzB,SAAhBd,EAAEb,aAAyB,IAAA2B,KAAG,2CACd,QAAhBd,EAAEb,aAAwB,IAAA2B,KAAG,yCAWb,SAAhBd,EAAEb,aAAyB,IAAA2B,KAAG,2CACd,QAAhBd,EAAEb,aAAwB,IAAA2B,KAAG,yCAjB5B,IA4BA,EAAA5B,aAAAA,C,2rBCjFT,I,EAAA,UACA,UAOA,yE,OACE,EAAAzC,OAAS,WACP,IAAMuD,EAAI,EAAK/J,MACf,OACE,uBAAKC,UAAW8J,EAAE9J,WACf8J,EAAES,SAGT,E,CACF,QAT2B,OAS3B,EATA,CAA2BpB,EAAMC,WAW3BjD,GAAW,aAAO0E,EAAP,CAAoB,uVAS5B,EAAA1E,SAAAA,C,6rBC5BT,I,EAAA,UACA,UAOA,yE,OACE,EAAAI,OAAS,WACP,IAAMuD,EAAI,EAAK/J,MACf,OACE,uBAAKC,UAAW8J,EAAE9J,WACf8J,EAAES,SAGT,E,CACF,QAT6B,OAS7B,EATA,CAA6BpB,EAAMC,WAW7BhD,GAAa,aAAO0E,EAAP,CAAsB,2UAShC,EAAA1E,WAAAA,C,6NC5BT,I,EAEMT,GAAQ,EAFd,QAEc,SAAO,QAAP,CAAe,25BAgCpB,EAAAA,MAAAA,C,iKClCI,EAAAxE,mBAAqB,UACrB,EAAAH,0BAA4B,UAC5B,EAAAF,eAAiB,UACjB,EAAAN,sBAAwB,S,kFCHrC,cAEA,UAEMkB,EAAkB,CACtB+E,OAAQ,4GACRO,UAAW,gEACXD,eAAgB,gEAChBtF,WAAY,MACZE,SAAU,MACVE,QAAS,EACTuF,QAAS,GACTD,WAAY,CACV,EAAE,MAAO,OACT,EAAE,MAAO,QAEXhD,OAAQ,GACRvB,OAAQ,CACN,qBAAwB,CACtB3C,IAAK,+BACLoD,KAAM,uBACNC,QAAQ,EACR+E,KAAM,4BACN0C,UAAW,EAAAC,oBAAoBC,gBAC/BC,UAAW,EAAAF,oBAAoBG,yBAEjC,oBAAuB,CACrBlL,IAAK,8BACLoD,KAAM,sBACNC,QAAQ,EACR+E,KAAM,2BACN0C,UAAW,EAAAC,oBAAoBC,gBAC/BC,UAAW,EAAAF,oBAAoBG,0BAWnCC,WAAY,CACV,CACEjI,IAAK,cACLkI,KAAM,cACNC,KAAM,eACL,CACDnI,IAAK,SACLkI,KAAM,SACNC,KAAM,UACL,CACDnI,IAAK,WACLkI,KAAM,OACNE,KAAM,uCACND,KAAM,SACNE,OAAQ,GACP,CACDrI,IAAK,UACLkI,KAAM,OACNE,KAAM,uCACND,KAAM,SACNE,OAAQ,MAGZ9B,QAAS,CACP,CAAEtJ,MAAO,YAAaD,MAAO,eAAqBe,QAAS,CAAEE,KAAM,SAAUH,IAAK,QAASF,OAAQ,QAASH,KAAM,OAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,QAASH,KAAM,OAC3K,CAAER,MAAO,QAASD,MAAO,YAAyBe,QAAS,CAAEE,KAAM,QAAUH,IAAK,GAASF,OAAQ,EAASH,KAAM,GAASD,SAAU,CAAEM,IAAK,KAAQF,OAAQ,EAASH,KAAM,IAC3K,CAAER,MAAO,OAAQD,MAAO,WAA0Be,QAAS,CAAEE,KAAM,SAAUH,IAAK,MAASF,OAAQ,IAASH,KAAM,GAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,EAASH,KAAM,IAC3K,CAAER,MAAO,OAAQD,MAAO,WAA0Be,QAAS,CAAEE,KAAM,SAAUH,IAAK,QAASF,OAAQ,MAASH,KAAM,OAASD,SAAU,CAAEM,IAAK,OAAQF,OAAQ,EAASH,KAAM,QAC3K,CAAER,MAAO,MAAOD,MAAO,kBAA2Be,QAAS,CAAEE,KAAM,MAAM,GAAIH,IAAK,QAASF,OAAQ,OAASH,KAAM,MAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,MAASH,KAAM,OAC3K,CAAER,MAAO,WAAYD,MAAO,eAAsBe,QAAS,CAAEE,KAAM,SAAUH,IAAK,OAASF,OAAQ,OAASH,KAAM,KAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,MAASH,KAAM,OAC3K,CAAER,MAAO,cAAeD,MAAO,kBAAmBe,QAAS,CAAEE,KAAM,OAAUH,IAAK,OAASF,OAAQ,MAASH,KAAM,GAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,MAASH,KAAM,QAC3K,CAAER,MAAO,cAAeD,MAAO,kBAAmBe,QAAS,CAAEE,KAAM,SAAUH,IAAK,OAASF,OAAQ,OAASH,KAAM,GAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,OAASH,KAAM,MAC3K,CAAER,MAAO,cAAeD,MAAO,kBAAmBe,QAAS,CAAEE,KAAM,SAAUH,IAAK,OAASF,OAAQ,OAASH,KAAM,GAASD,SAAU,CAAEM,IAAK,EAAQF,OAAQ,MAASH,KAAM,MAItK,EAAAc,OAAAA,C,sjBC/ET,IAiBA,2B,8CAkBA,QAlBqB,OACnB,YAAA6E,OAAA,WACE,IAAIuD,EAAI2B,KAAK1L,MAEb,GAAc,MAAX+J,EAAEpJ,MAAe,OAAO,KAG3B,IAAIgL,EAA0B,iBAAZ5B,EAAEpJ,MAAsBiL,WAAW7B,EAAEpJ,OAASoJ,EAAEpJ,MAG9DG,EAAyB,MAAdiJ,EAAEjJ,UAAkC+K,MAAd9B,EAAEjJ,SAAwB,EAAIiJ,EAAEjJ,SAGrE,OAAO6K,EAAIG,oBAAeD,EAAW,CACnCE,aAAa,EACbC,sBAAuBlL,EACvBmL,sBAAuBnL,GAC3B,EACF,EAlBA,CAjBA,QAiB2BuI,WAoBlB,EAAA3I,OAAAA,C,0FCrCT,cACA,UAeS,EAAAgF,eATc,SAAC1F,GACtB,IAAMkM,EAAY,EAAAvK,OAAO0J,WAAW/E,MAAK,SAAA/B,GAAK,OAAAA,EAAEnB,KAAOpD,EAAMsD,IAAf,IAG9C,OAAI4I,EAEG,gCAAGA,EAAUZ,MAFE,gCAAGtL,EAAMsD,KAGjC,C,2FCdA,cAEA,UAEA,SACA,UACA,UAyCS,EAAAqC,gBAlCe,SAAC3F,GAEvB,IAkBMkM,EAAY,EAAAvK,OAAO0J,WAAW/E,MAAK,SAAA/B,GAAK,OAAAA,EAAEnB,KAAOpD,EAAMsD,IAAf,IAE9C,IAAI4I,EAAW,OAAOlM,EAAMW,MAE5B,OAAOuL,EAAUX,MACf,IAAK,cACH,OAAO,uBAAK5E,MAAO,CAACwF,QAAS,OAAQC,cAAe,MAAOC,WAAY,SAAUC,IAAK,QAAQ,gBAAC,EAAA/L,UAAS,CAACC,MAfjF,SAACG,GAC3B,OAAOA,GACL,KAAK,EAAG,OAAO,EAAAM,0BACf,KAAK,EAAG,OAAO,EAAAF,eACf,KAAK,EAAG,OAAO,EAAAN,sBACf,QAAS,OAAO,EAAAW,mBAEpB,CAQoHmL,CAAoBvM,EAAMW,S,IAxBvH,SAACA,GACtB,OAAOA,GACL,KAAK,EAAG,MAAO,sBACf,KAAK,EAAG,MAAO,WACf,KAAK,EAAG,MAAO,kBACf,QAAS,MAAO,eAEpB,CAiByJ6L,CAAexM,EAAMW,QAC5K,IAAK,SACH,OAAO,gCAAE,gBAAC,EAAAD,OAAM,CAACC,MAAOX,EAAMW,OAASuL,EAAUT,OAASS,EAAUT,OAAS,GAAI3K,SAAU,I,IAAMoL,EAAUV,MAC7G,QACE,OAAOxL,EAAMW,MAEnB,C,4fC7CA,YACA,aACA,Y,gFCFA,cACA,UACA,UACA,SACA,SACA,UACA,UACA,UAwBS,EAAA+H,MAtBK,WACN,MAAsBU,EAAMqD,UAAS,GAApClJ,EAAM,KAAEmJ,EAAS,KAClB,EAAoBtD,EAAMqD,SAAS,MAAlCE,EAAK,KAAEC,EAAQ,KAEhBC,EAAe,WAAM,OAAAH,GAAU,EAAV,EACrBI,EAAc,SAACC,GAAc,OAAAH,EAASG,EAAT,EAGnC,OAAc,IAAXxJ,EAAyB,KAGf,OAAVoJ,EAAuB,gBAAC,EAAAK,aAAY,CAACC,SAAUJ,EAAcK,QAASJ,IAC5D,eAAVH,EAA+B,gBAAC,EAAAQ,gBAAe,CAACF,SAAUJ,EAAcK,QAASJ,IACvE,YAAVH,EAA4B,gBAAC,EAAAS,UAAS,CAACH,SAAUJ,EAAcK,QAASJ,IAC9D,YAAVH,EAA4B,gBAAC,EAAAU,UAAS,CAACJ,SAAUJ,EAAcK,QAASJ,IAC9D,cAAVH,EAA8B,gBAAC,EAAAW,eAAc,CAACL,SAAUJ,EAAcK,QAASJ,IACrE,eAAVH,EAA+B,gBAAC,EAAAY,gBAAe,CAACN,SAAUJ,EAAcK,QAASJ,IACvE,WAAVH,EAA2B,gBAAC,EAAAa,YAAW,CAACP,SAAUJ,EAAcK,QAASJ,IAErE,IACT,C,gOC7BA,cACA,UA8BMW,GAAW,cAbI,SAACzN,GACpB,OACE,uBAAKC,UAAWD,EAAMC,WACpB,gBAACyN,EAAK,CAAC3F,QAAS/H,EAAMiN,SAAU5M,MAAM,mBACpC,2BACE,uBAAKgK,UAAW,wBAGnBrK,EAAMwK,SAGb,GAEiB,CAAoB,olBAGG,OACG,OACN,OACS,8dAH1C,SAAAT,GAAK,OAAAA,EAAE1H,OAAQ,IAAAwI,KAAG,iCAAe,OAANd,EAAE1H,KAAxB,IACL,SAAA0H,GAAK,OAAAA,EAAE3H,QAAS,IAAAyI,KAAG,mCAAiB,OAAPd,EAAE3H,MAA1B,IACL,SAAA2H,GAAK,OAAAA,EAAE7H,MAAO,IAAA2I,KAAG,+BAAa,OAALd,EAAE7H,IAAtB,IACL,SAAA6H,GAAK,OAAAA,EAAE5H,SAAU,IAAA0I,KAAG,qCAAmB,OAARd,EAAE5H,OAA5B,IAoDA,EAAAsL,SAAAA,EAnBT,I,YAAMC,EAAQ,UAAO7N,IAAG,oe,kOCtExB,I,EAAA,UAgBM8N,GAAc,EAfpB,QAeoB,UALI,SAAC3N,GACvB,+BAAMC,UAAWD,EAAMC,UAAW8H,QAAS/H,EAAM+H,SAC9C/H,EAAMwK,SADT,GAIkB,CAAuB,2nBAkBlC,EAAAmD,YAAAA,C,iOClCT,I,EAAA,UAgBMC,GAAY,EAflB,QAekB,UARI,SAAC5N,GACrB,OACE,uBAAKC,UAAWD,EAAMC,WACpB,uBAAKoK,UAAW,sBAAerK,EAAMsI,QAG3C,GAEkB,CAAqB,mQAS9B,EAAAsF,UAAAA,C,gOCzBT,I,IAAA,UACA,UAuBMC,EAAQ,UAAOhO,IAAG,yOAUlBiO,GAAY,cAtBI,SAAC9N,GACrB,8BAAKC,UAAWD,EAAMC,WACpB,gBAAC4N,EAAK,KACJ,2BACE,uBAAKxD,UAAW,wBAGpB,qBAAGtC,QAAS/H,EAAM+H,SACf/H,EAAMwK,UAPX,GAqBgB,CAAqB,ukBAmB9B,EAAAsD,UAAAA,C,2FCrDT,cAEA,UACA,SACA,UAmBS,EAAAP,gBAZe,SAACvN,GACvB,OACE,gBAAC,EAAAyN,SAAQ,CAACtL,OAAO,OAAOE,KAAK,OAAO4K,SAAUjN,EAAMiN,UAClD,gDACA,yBAAG,yFACH,yB,aAAa,gBAAC,EAAAW,UAAS,CAACtF,KAAK,e,4CAC7B,kEACA,gBAAC,EAAAqF,YAAW,CAAC5F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,KAAd,GAAmB,UAGrD,C,uFCrBA,cAEA,UACA,SACA,UAkBS,EAAAM,YAXW,SAACxN,GACnB,OACE,gBAAC,EAAAyN,SAAQ,CAACvL,IAAI,OAAOE,MAAM,OAAO6K,SAAUjN,EAAMiN,UAChD,wCACA,yBAAG,+FACH,yB,gBAAgB,gBAAC,EAAAW,UAAS,CAACtF,KAAK,8B,mCAChC,gBAAC,EAAAqF,YAAW,CAAC5F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,KAAd,GAAmB,UAGrD,C,2FCpBA,cAEA,UACA,SAkBS,EAAAC,gBAXe,SAACnN,GACvB,OACE,gBAAC,EAAAyN,SAAQ,CAACtL,OAAO,OAAOE,KAAK,OAAO4K,SAAUjN,EAAMiN,UAClD,wCACA,yBAAG,0EACH,yB,8BAA8B,gC,QAC9B,gBAAC,EAAAU,YAAW,CAAC5F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,UAAd,GAAwB,YAG1D,C,0FCnBA,cAEA,UACA,SACA,UAkBS,EAAAI,eAXc,SAACtN,GACtB,OACE,gBAAC,EAAAyN,SAAQ,CAACtL,OAAO,OAAOE,KAAK,OAAO4K,SAAUjN,EAAMiN,UAClD,+CACA,yBAAG,oGACH,yB,aAAa,gBAAC,EAAAW,UAAS,CAACtF,KAAK,W,sCAC7B,gBAAC,EAAAqF,YAAW,CAAC5F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,KAAd,GAAmB,UAGrD,C,oFCpBA,cAEA,UACA,UACA,SAoBS,EAAAG,UAbS,SAACrN,GACjB,OACE,gBAAC,EAAAyN,SAAQ,CAACtL,OAAO,OAAOE,KAAK,OAAO4K,SAAUjN,EAAMiN,UAClD,kDACA,yBAAG,wHAEH,yBAAG,uC,QAAsB,iC,gCACzB,yB,aAAa,gBAAC,EAAAW,UAAS,CAACtF,KAAK,Y,0CAC7B,gBAAC,EAAAqF,YAAW,CAAC5F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,KAAd,GAAmB,UAGrD,C,wFCtBA,cAEA,UACA,SAqBS,EAAAF,aAbY,SAAChN,GACpB,OACE,gBAAC,EAAAyN,SAAQ,CAACtL,OAAO,OAAOE,KAAK,OAAO4K,SAAUjN,EAAMiN,UAClD,oCACA,yBAAG,yEACH,gBAAC,EAAAa,UAAS,CAAC/F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,aAAd,GAA2B,cACrD,gBAAC,EAAAY,UAAS,CAAC/F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,YAAd,GAA0B,qBACpD,gBAAC,EAAAY,UAAS,CAAC/F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,aAAd,GAA2B,sBACrD,gBAAC,EAAAY,UAAS,CAAC/F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,SAAd,GAAuB,cAGvD,C,oFCtBA,cAEA,UACA,UACA,SAkBS,EAAAE,UAXS,SAACpN,GACjB,OACE,gBAAC,EAAAyN,SAAQ,CAACtL,OAAO,OAAOE,KAAK,OAAO4K,SAAUjN,EAAMiN,UAClD,qCACA,yB,WAAW,gBAAC,EAAAW,UAAS,CAACtF,KAAK,W,QAAe,gBAAC,EAAAsF,UAAS,CAACtF,KAAK,Y,+BAC1D,0EACA,gBAAC,EAAAqF,YAAW,CAAC5F,QAAS,WAAM,OAAA/H,EAAMkN,QAAQ,UAAd,GAAwB,YAG1D,C,yUCpBA,cACA,UAGA,UAuBS,EAAA3E,kBAlBiB,SAACvI,GACzB,OACE,gBAAC,EAAA+N,cAAa,GAACC,KAAMhO,EAAME,KAASF,GACjCA,EAAMgL,WAAa,gBAAC,EAAAiD,MAAK,CACxBhI,GAAIjG,EAAMiG,GACVsF,KAAK,OACL2C,OAAQ,CAAEC,WAAYnO,EAAMuD,OAAS,UAAY,QACjD6K,MAAOpO,EAAMgL,YAEdhL,EAAMmL,WAAa,gBAAC,EAAA8C,MAAK,CACxB1C,KAAK,OACL2C,OAAQ,CAAEC,WAAYnO,EAAMuD,OAAS,UAAY,QACjD6K,MAAOpO,EAAMmL,YAIrB,C,yFCzBA,cACA,UACA,UAEA,UAyES,EAAA4C,cAnDa,SAAC/N,GAEf,MAAwBoJ,EAAMqD,UAAkB,GAA/C4B,EAAO,KAAEC,EAAU,KAEpB,EAAwBlF,EAAMqD,SAAoC,MAAjE8B,EAAO,KAAEC,EAAU,KAG1BpF,EAAMqF,WAAU,WACXzO,EAAMuD,QAAQmL,GACnB,GAAG,IAGHtF,EAAMqF,WAAU,WACXzO,EAAMuD,QAAQmL,GACnB,GAAG,CAAC1O,EAAMuD,SAEV,IAAMmL,EAAW,WACfJ,GAAW,GACX5K,OAAOiL,YAAW,WAChB,UAAMC,IAAI,eAAQ5O,EAAMgO,OACvBa,MAAK,SAAAC,GACJ,IAAMP,EAAqCO,EAAI3O,KAE5CH,EAAM+O,QACPR,EAAQzJ,SAASJ,SAAQ,SAAAC,GACvBA,EAAEW,WAAapC,OAAOmC,KAAKV,EAAEW,YAC1B0J,QAAO,SAAA5L,GAAO,OAACpD,EAAM+O,OAAOE,SAAS7L,EAAvB,IACd8L,QAAO,SAACC,EAAK/L,GAEZ,OADC+L,EAAY/L,GAAOuB,EAAEW,WAAWlC,GAC1B+L,CACT,GAAG,CAAC,EACR,IAEFb,GAAW,GACXE,EAAWD,EACb,GACF,GAvDsB,EAuDnB1E,KAAKuF,SAtDc,EAuDxB,EAEA,OACE,gCAGE,gBAAC,EAAAC,OAAM,CAACpJ,GAAIjG,EAAMgO,KAAMsB,YAAU,EAAC/D,KAAK,UAAUpL,KAAMoO,GACrDvO,EAAMwK,UAER6D,GAAW,gBAAC,EAAAkB,eAAc,CAAChL,GAAI,GAAIE,EAAG,GAAIlB,QAAM,IAGvD,C,+FC1EA,cAEA,0BAkCA,QAhCS,EAAA2H,gBAA6B,CAClC,aAAc,CACZ,OACA,CAAC,MAAO,eACL,EAAA9J,mBACH,EAAG,EAAAH,0BACH,EAAG,EAAAF,eACH,EAAG,EAAAN,uBAEL,eAAgB,CACd,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,EACA,KAIG,EAAA2K,wBAAqC,CAC1C,aAAc,CACZ,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,OACA,SAEF,aAAc,CACZ,OACA,CAAC,UAAW,CAAC,gBAAiB,UAAU,GACxC,EACA,IAIN,C,CAlCA,GAoCS,EAAAH,oBAAAA,C,GCtCLuE,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB7D,IAAjB8D,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CAGjDE,QAAS,CAAC,GAOX,OAHAE,EAAoBJ,GAAUK,KAAKF,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAGpEI,EAAOD,OACf,CAGAH,EAAoBO,EAAIF,EjCzBpBrQ,EAAW,GACfgQ,EAAoBQ,EAAI,CAACC,EAAQC,EAAUC,EAAIC,KAC9C,IAAGF,EAAH,CAMA,IAAIG,EAAeC,IACnB,IAASC,EAAI,EAAGA,EAAI/Q,EAASoH,OAAQ2J,IAAK,CAGzC,IAFA,IAAKL,EAAUC,EAAIC,GAAY5Q,EAAS+Q,GACpCC,GAAY,EACPC,EAAI,EAAGA,EAAIP,EAAStJ,OAAQ6J,MACpB,EAAXL,GAAsBC,GAAgBD,IAAanN,OAAOmC,KAAKoK,EAAoBQ,GAAGU,OAAOvN,GAASqM,EAAoBQ,EAAE7M,GAAK+M,EAASO,MAC9IP,EAASS,OAAOF,IAAK,IAErBD,GAAY,EACTJ,EAAWC,IAAcA,EAAeD,IAG7C,GAAGI,EAAW,CACbhR,EAASmR,OAAOJ,IAAK,GACrB,IAAIK,EAAIT,SACEvE,IAANgF,IAAiBX,EAASW,EAC/B,CACD,CACA,OAAOX,CAnBP,CAJCG,EAAWA,GAAY,EACvB,IAAI,IAAIG,EAAI/Q,EAASoH,OAAQ2J,EAAI,GAAK/Q,EAAS+Q,EAAI,GAAG,GAAKH,EAAUG,IAAK/Q,EAAS+Q,GAAK/Q,EAAS+Q,EAAI,GACrG/Q,EAAS+Q,GAAK,CAACL,EAAUC,EAAIC,EAqBjB,EkCzBdZ,EAAoBqB,EAAKjB,IACxB,IAAIkB,EAASlB,GAAUA,EAAOmB,WAC7B,IAAOnB,EAAiB,QACxB,IAAM,EAEP,OADAJ,EAAoBtF,EAAE4G,EAAQ,CAAEE,EAAGF,IAC5BA,CAAM,EjCNVpR,EAAWuD,OAAOgO,eAAkB/B,GAASjM,OAAOgO,eAAe/B,GAASA,GAASA,EAAa,UAQtGM,EAAoB0B,EAAI,SAASxQ,EAAOyQ,GAEvC,GADU,EAAPA,IAAUzQ,EAAQ+K,KAAK/K,IAChB,EAAPyQ,EAAU,OAAOzQ,EACpB,GAAoB,iBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPyQ,GAAazQ,EAAMqQ,WAAY,OAAOrQ,EAC1C,GAAW,GAAPyQ,GAAoC,mBAAfzQ,EAAMkO,KAAqB,OAAOlO,CAC5D,CACA,IAAI0Q,EAAKnO,OAAOoO,OAAO,MACvB7B,EAAoBoB,EAAEQ,GACtB,IAAIE,EAAM,CAAC,EACX7R,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAI6R,EAAiB,EAAPJ,GAAYzQ,EAAyB,iBAAX6Q,KAAyB9R,EAAeqG,QAAQyL,GAAUA,EAAU7R,EAAS6R,GACxHtO,OAAOuO,oBAAoBD,GAAS9M,SAAStB,GAASmO,EAAInO,GAAO,IAAOzC,EAAMyC,KAI/E,OAFAmO,EAAa,QAAI,IAAM,EACvB9B,EAAoBtF,EAAEkH,EAAIE,GACnBF,CACR,EkCxBA5B,EAAoBtF,EAAI,CAACyF,EAAS8B,KACjC,IAAI,IAAItO,KAAOsO,EACXjC,EAAoBkC,EAAED,EAAYtO,KAASqM,EAAoBkC,EAAE/B,EAASxM,IAC5EF,OAAO0O,eAAehC,EAASxM,EAAK,CAAEyO,YAAY,EAAMjD,IAAK8C,EAAWtO,IAE1E,ECHDqM,EAAoB1M,EAAI,IAAO+O,QAAQC,UCHvCtC,EAAoBuC,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOvG,MAAQ,IAAIwG,SAAS,cAAb,EAChB,CAAE,MAAOnP,GACR,GAAsB,iBAAXW,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB+L,EAAoBkC,EAAI,CAACxC,EAAKgD,IAAUjP,OAAOkP,UAAUC,eAAetC,KAAKZ,EAAKgD,GCClF1C,EAAoBoB,EAAKjB,IACH,oBAAX0C,QAA0BA,OAAOC,aAC1CrP,OAAO0O,eAAehC,EAAS0C,OAAOC,YAAa,CAAE5R,MAAO,WAE7DuC,OAAO0O,eAAehC,EAAS,aAAc,CAAEjP,OAAO,GAAO,E,MCA9D,IAAI6R,EAAkB,CACrB,IAAK,GAaN/C,EAAoBQ,EAAES,EAAK+B,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4BxS,KACvD,IAGIuP,EAAU+C,GAHTtC,EAAUyC,EAAaC,GAAW1S,EAGhBqQ,EAAI,EAC3B,GAAGL,EAAS2C,MAAM7M,GAAgC,IAAxBuM,EAAgBvM,KAAa,CACtD,IAAIyJ,KAAYkD,EACZnD,EAAoBkC,EAAEiB,EAAalD,KACrCD,EAAoBO,EAAEN,GAAYkD,EAAYlD,IAGhD,GAAGmD,EAAS,IAAI3C,EAAS2C,EAAQpD,EAClC,CAEA,IADGkD,GAA4BA,EAA2BxS,GACrDqQ,EAAIL,EAAStJ,OAAQ2J,IACzBiC,EAAUtC,EAASK,GAChBf,EAAoBkC,EAAEa,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOhD,EAAoBQ,EAAEC,EAAO,EAGjC6C,EAAqBC,KAA0B,oBAAIA,KAA0B,qBAAK,GACtFD,EAAmBrO,QAAQgO,EAAqBO,KAAK,KAAM,IAC3DF,EAAmBtN,KAAOiN,EAAqBO,KAAK,KAAMF,EAAmBtN,KAAKwN,KAAKF,G,KChDvFtD,EAAoByD,QAAKrH,ECGzB4D,EAAoBQ,OAAEpE,EAAW,CAAC,MAAM,IAAO4D,EAAoB,QACnE,IAAI0D,EAAsB1D,EAAoBQ,OAAEpE,EAAW,CAAC,MAAM,IAAO4D,EAAoB,QAC7F0D,EAAsB1D,EAAoBQ,EAAEkD,E","sources":["webpack://automap/webpack/runtime/chunk loaded","webpack://automap/webpack/runtime/create fake namespace object","webpack://automap/./src/app/Brick.tsx","webpack://automap/./src/app/MapView.tsx","webpack://automap/./src/app/Masonry.tsx","webpack://automap/./src/app/components/LayerButton.tsx","webpack://automap/./src/app/components/PianoKey.tsx","webpack://automap/./src/app/components/PianoKeyList.tsx","webpack://automap/./src/app/components/PopupBalloon.tsx","webpack://automap/./src/app/components/PopupBox.tsx","webpack://automap/./src/app/components/PopupTitle.tsx","webpack://automap/./src/app/components/Table.tsx","webpack://automap/./src/app/config/Colors.tsx","webpack://automap/./src/app/config/Config.tsx","webpack://automap/./src/app/formatters/Number.tsx","webpack://automap/./src/app/formatters/TranslatedName.tsx","webpack://automap/./src/app/formatters/TranslatedValue.tsx","webpack://automap/./src/app/formatters/index.ts","webpack://automap/./src/app/guide/Guide.tsx","webpack://automap/./src/app/guide/elements/GuideBox.tsx","webpack://automap/./src/app/guide/elements/GuideButton.tsx","webpack://automap/./src/app/guide/elements/GuideIcon.tsx","webpack://automap/./src/app/guide/elements/GuideLink.tsx","webpack://automap/./src/app/guide/guides/FullscreenGuide.tsx","webpack://automap/./src/app/guide/guides/LayersGuide.tsx","webpack://automap/./src/app/guide/guides/NavigationGuide.tsx","webpack://automap/./src/app/guide/guides/SatelliteGuide.tsx","webpack://automap/./src/app/guide/guides/TiltGuide.tsx","webpack://automap/./src/app/guide/guides/WelcomeGuide.tsx","webpack://automap/./src/app/guide/guides/ZoomGuide.tsx","webpack://automap/./src/app/layer/CustomizableLayer.tsx","webpack://automap/./src/app/layer/LoadableLayer.tsx","webpack://automap/./src/app/layer/PrebuiltExpressions.tsx","webpack://automap/webpack/bootstrap","webpack://automap/webpack/runtime/compat get default export","webpack://automap/webpack/runtime/define property getters","webpack://automap/webpack/runtime/ensure chunk","webpack://automap/webpack/runtime/global","webpack://automap/webpack/runtime/hasOwnProperty shorthand","webpack://automap/webpack/runtime/make namespace object","webpack://automap/webpack/runtime/jsonp chunk loading","webpack://automap/webpack/runtime/nonce","webpack://automap/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","import * as React from 'react';\r\nimport styled from 'styled-components';\r\nimport { IBrick } from './config/Config.Type';\r\nimport { Number } from './formatters';\r\nimport { LegendBox } from '@independent-software/mapbox-ext/controls/Legend/LegendBox';\r\nimport { COLOR_HIGHLY_SUITABLE, COLOR_MODERATELY_SUITABLE, COLOR_NOT_SUITABLE, COLOR_SUITABLE } from './config/Colors';\r\n\r\ninterface IProps {\r\n className?: string;\r\n data: IBrick;\r\n}\r\n\r\nconst BrickBase = (props: IProps) => {\r\n return (\r\n
\r\n \r\n \r\n {props.data.title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Offshore aquaculture
Highly suitable km²
Suitable km²
Moderately suitable km²
Onshore aquaculture
Highly suitable km²
Suitable km²
Moderately suitable km²
Not suitable km²
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst Title = styled.div`\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n height: 40px;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n background: white;\r\n border-top: solid 1px #aaa;\r\n font-weight: bold;\r\n transition: background-color ease-in-out 100ms;\r\n`\r\n\r\nconst Text = styled.div`\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n padding: 20px 20px;\r\n color: #333;\r\n transition: opacity ease-in-out 100ms;\r\n table {\r\n width: 100%;\r\n td:first-child {\r\n gap: 8px;\r\n display: flex;\r\n }\r\n td:last-child {\r\n text-align: right;\r\n }\r\n }\r\n`\r\n\r\nconst Brick = styled(BrickBase)`\r\n position: relative;\r\n display: flex;\r\n height: 100%;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n border-radius: 8px;\r\n border: solid 2px #eee;\r\n transition: border-color ease-in-out 100ms;\r\n user-select: none;\r\n img {\r\n flex-shrink: 0;\r\n min-width: 100%;\r\n min-height: 100%;\r\n object-fit: cover;\r\n transition: opacity ease-in-out 100ms;\r\n }\r\n ${Text} {\r\n opacity: 0;\r\n }\r\n &:hover {\r\n border-color: #888;\r\n ${Text} {\r\n opacity: 1;\r\n }\r\n ${Title} {\r\n background-color: #eee;\r\n }\r\n img {\r\n opacity: 0.35;\r\n }\r\n }\r\n`\r\n\r\nexport { Brick }\r\n\r\n","import * as React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\n\r\nimport { Config } from './config/Config';\r\n\r\nimport Map, { MapboxGeoJSONFeature, MapboxMap, MapLayerMouseEvent, Popup, ViewState, ViewStateChangeEvent } from 'react-map-gl';\r\n\r\nimport { PianoKey } from './components/PianoKey';\r\nimport { PianoKeyList } from './components/PianoKeyList';\r\nimport { Table } from './components/Table';\r\nimport { PopupBalloon } from './components/PopupBalloon';\r\nimport { PopupBox } from './components/PopupBox';\r\nimport { PopupTitle } from './components/PopupTitle';\r\nimport { LayerButton } from './components/LayerButton';\r\n\r\nimport { CustomizableLayer } from './layer/CustomizableLayer';\r\nimport { ILayer } from './config/Config.Type';\r\nimport { TranslatedName, TranslatedValue } from './formatters';\r\nimport { COLOR_HIGHLY_SUITABLE, COLOR_MODERATELY_SUITABLE, COLOR_NOT_SUITABLE, COLOR_SUITABLE } from './config/Colors';\r\n\r\n// Mapbox controls:\r\nimport { ScaleControl } from \"@independent-software/mapbox-ext/controls/ScaleControl\";\r\nimport { ZoomInButton } from \"@independent-software/mapbox-ext/controls/buttons/ZoomInButton\";\r\nimport { ZoomOutButton } from \"@independent-software/mapbox-ext/controls/buttons/ZoomOutButton\";\r\nimport { CompassButton } from \"@independent-software/mapbox-ext/controls/buttons/CompassButton\";\r\nimport { FullscreenButton } from \"@independent-software/mapbox-ext/controls/buttons/FullscreenButton\";\r\nimport { Legend } from \"@independent-software/mapbox-ext/controls/Legend\";\r\nimport { LegendBox } from \"@independent-software/mapbox-ext/controls/Legend/LegendBox\";\r\nimport { DarkSkin } from '@independent-software/mapbox-ext/types/Skin';\r\nimport { Guide } from './guide/Guide';\r\n\r\ninterface IState {\r\n viewState: ViewState;\r\n\r\n satellite: boolean;\r\n interactiveLayerIds: string[];\r\n\r\n hoverLatitude: number;\r\n hoverLongitude: number;\r\n hoverFeatures: MapboxGeoJSONFeature[];\r\n popup_horizontal: 'left' | 'right';\r\n popup_vertical: 'top' | 'bottom';\r\n\r\n layers: { [key:string]: ILayer };\r\n}\r\n\r\nclass MapView extends React.Component<{}, IState> {\r\n private map: MapboxMap = null;\r\n private hovered: MapboxGeoJSONFeature[] = [];\r\n\r\n state: IState = {\r\n viewState: {\r\n longitude: Config.longitude, \r\n latitude: Config.latitude, \r\n zoom: Config.minZoom,\r\n bearing: 0,\r\n pitch: 0,\r\n padding: { top: 0, bottom: 0, right: 0, left: 0 }\r\n },\r\n\r\n satellite: true,\r\n interactiveLayerIds: [],\r\n\r\n hoverLatitude: 0,\r\n hoverLongitude: 0,\r\n hoverFeatures: [],\r\n popup_horizontal: 'left',\r\n popup_vertical: 'top',\r\n\r\n layers: Config.layers\r\n };\r\n\r\n handleLoad = (e: mapboxgl.MapboxEvent) => {\r\n this.map = e.target;\r\n this.setState({\r\n interactiveLayerIds: Object.entries(Config.layers).map(([key, layer]) => key)\r\n });\r\n } \r\n\r\n handlePianoKey = (name: string) => {\r\n this.state.layers[name].active = !this.state.layers[name].active;\r\n this.setState({ layers: this.state.layers });\r\n }\r\n\r\n handleToggleSatellite = () => {\r\n this.setState({ satellite: !this.state.satellite });\r\n }\r\n\r\n //\r\n // Gets current window size.\r\n // Returns [width, height].\r\n // \r\n private getWindowSize = (): number[] => {\r\n const width = window.innerWidth || document.documentElement.clientWidth || \r\n document.body.clientWidth;\r\n const height = window.innerHeight|| document.documentElement.clientHeight|| \r\n document.body.clientHeight;\r\n return [width, height];\r\n }\r\n\r\n handleMouseMove = (e: MapLayerMouseEvent) => {\r\n // If source isn't yet loaded, MapGL throws an error:\r\n if(!this.map) return;\r\n\r\n const [width, height] = this.getWindowSize();\r\n const dx = e.point.x - width / 2;\r\n const dy = e.point.y - height / 2;\r\n this.setState({\r\n popup_horizontal: dx < 0 ? 'left' : 'right',\r\n popup_vertical: dy < 0 ? 'top' : 'bottom'\r\n });\r\n\r\n this.hovered.forEach(f => {\r\n this.map.setFeatureState(f, { hover: false });\r\n });\r\n\r\n this.hovered = e.features;\r\n this.hovered.forEach(f => {\r\n this.map.setFeatureState(f, { hover: true });\r\n });\r\n\r\n this.setState({\r\n hoverLatitude: e.lngLat.lat,\r\n hoverLongitude: e.lngLat.lng,\r\n hoverFeatures: e.features\r\n });\r\n } \r\n\r\n getLayerTable = (feature: MapboxGeoJSONFeature): React.ReactNode => {\r\n // Get all properties from Feature, and produce table rows:\r\n const rows: React.ReactNode[] = [];\r\n Object.keys(feature.properties).forEach((k, idx) => {\r\n rows.push(\r\n \r\n \r\n );\r\n });\r\n // Build and return table:\r\n return (\r\n \r\n \r\n {rows}\r\n \r\n
\r\n );\r\n }\r\n\r\n getPopupContent = (features: MapboxGeoJSONFeature[]): React.ReactNode => {\r\n // Which layers are in the features?\r\n let layerIDs: string[] = [];\r\n features.forEach(f => {\r\n features.forEach(f => {\r\n if(layerIDs.indexOf(f.layer.id) === -1) {\r\n layerIDs.push(f.layer.id);\r\n }\r\n });\r\n });\r\n\r\n // Build a popup box for each layer:\r\n const boxes = layerIDs.map((layerID, idx) => \r\n \r\n {Config.layers[layerID].name}\r\n {this.getLayerTable(features.find(f => f.layer.id == layerID))}\r\n \r\n );\r\n\r\n // Return popup boxes:\r\n return <>{boxes};\r\n }\r\n\r\n handleMove = (e: ViewStateChangeEvent) => {\r\n this.setState({\r\n viewState: e.viewState\r\n });\r\n } \r\n\r\n render = () => {\r\n return (\r\n 0 ? 'pointer' : 'auto'}\r\n logoPosition=\"bottom-left\"\r\n interactiveLayerIds={this.state.interactiveLayerIds}\r\n mapStyle={this.state.satellite ? Config.satelliteStyle : Config.greyStyle}\r\n scrollZoom={false}\r\n maxBounds={Config.max_bounds}\r\n minZoom={Config.minZoom}\r\n maxZoom={Config.maxZoom}\r\n onLoad={this.handleLoad}\r\n onMouseMove={this.handleMouseMove}\r\n onMove={this.handleMove}\r\n >\r\n {/* Map controls */}\r\n \r\n Toggle full screen}/>\r\n Toggle satellite layer} onClick={this.handleToggleSatellite}/>\r\n Zoom in}/>\r\n Zoom out}/>\r\n Reset bearing to north} visualizePitch/>\r\n \r\n {/* Piano keys */}\r\n \r\n {Object.entries(Config.layers).map(([key, layer]) => \r\n this.handlePianoKey(key)}/>\r\n )}\r\n \r\n\r\n {/* Layers */}\r\n {Object.entries(Config.layers).map(([key, layer]) => \r\n \r\n )}\r\n\r\n {/* Legend */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n {this.state.hoverFeatures.length > 0 &&\r\n \r\n \r\n {this.getPopupContent(this.hovered)}\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst node = document.getElementById('mapview') as Element;\r\nif(node) {\r\n const root = createRoot(node);\r\n root.render();\r\n}\r\n\r\n// Whenever webpack rebuilds the project, refresh the browser.\r\ndeclare let module: any;\r\nif (module.hot) {\r\n module.hot.accept(); \r\n}\r\n","import * as React from 'react';\r\nimport { createRoot } from 'react-dom/client';\r\nimport styled from 'styled-components';\r\nimport { Config } from './config/Config';\r\nimport { IBrick } from './config/Config.Type';\r\nimport { Brick } from './Brick';\r\n\r\ninterface IProps {\r\n className?: string;\r\n}\r\n\r\nconst MasonryBase = (props: IProps) => {\r\n return (\r\n
\r\n {Config.masonry.map((b: IBrick) =>\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nconst Masonry = styled(MasonryBase)`\r\n position: relative;\r\n width: 100%;\r\n display: grid;\r\n grid-template-columns: 1fr 1fr 1fr;\r\n grid-template-rows: repeat(${Math.ceil(Config.masonry.length / 3)}, 18rem);\r\n gap: 32px;\r\n @media (max-width: 940px) {\r\n grid-template-columns: 1fr;\r\n grid-template-rows: repeat(${Config.masonry.length}, 40vh);\r\n }\r\n`\r\n\r\nconst node = document.getElementById('masonry') as Element;\r\nif(node) {\r\n const root = createRoot(node);\r\n root.render();\r\n}\r\n","import * as React from 'react';\r\n\r\nimport { IMapButtonProps, MapButton } from '@independent-software/mapbox-ext/controls/buttons/MapButton';\r\nimport { DarkSkin } from '@independent-software/mapbox-ext/types/Skin';\r\n\r\ninterface ILayerButtonProps {\r\n active?: boolean;\r\n onClick: () => void;\r\n}\r\n\r\nconst LayerButton = (p: IMapButtonProps & ILayerButtonProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport { LayerButton }\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst WIDTH = 235;\r\n\r\ninterface IProps { \r\n className?: string;\r\n children?: React.ReactNode;\r\n /** SVG icon name. */\r\n icon: string;\r\n /** Text to display on piano key. */\r\n title: string;\r\n /** Is piano key currently active? */\r\n active?: boolean;\r\n /** Fired when piano key is clicked. */\r\n onClick?: () => void;\r\n}\r\n\r\nclass PianoKeyBase extends React.Component {\r\n render = () => {\r\n const p = this.props;\r\n return (\r\n \r\n
\r\n
\r\n \r\n {p.title}\r\n
\r\n {React.Children.count(p.children) > 0 && \r\n \r\n \r\n {p.children}\r\n \r\n } \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst PianoKeyHolder = styled('div')`\r\n position: relative;\r\n height: 47px;\r\n width: 0;\r\n`\r\n\r\nconst PianoKey = styled(PianoKeyBase)`\r\n position: absolute;\r\n right: ${p => p.active ? -(WIDTH - 29 - 30) : -(WIDTH - 25 - 30)}px;\r\n width: ${WIDTH}px;\r\n user-select: none;\r\n\r\n div.key {\r\n box-sizing: border-box;\r\n height: 36px;\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n cursor: pointer;\r\n border: solid 2px ${p => p.active ? \"#d3d3d3\" : \"#90ADBE\"};\r\n background-color: ${p => p.active ? \"#ffffff\" : \"#58A9DD\"};\r\n border-right: none;\r\n border-top-left-radius: 12px;\r\n border-bottom-left-radius: 12px;\r\n padding-left: 8px;\r\n color: ${p => p.active ? \"#505050\" : \"#ffffff\"}; \r\n svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: ${p => p.active ? \"#000000\" : \"#ffffff\"};\r\n margin-right: 28px;\r\n } \r\n }\r\n \r\n transition: right ease-in-out 250ms, background-color ease-in-out 150ms;\r\n &:hover {\r\n right: 0;\r\n }\r\n`\r\n\r\nconst Panel = styled('div')`\r\n position: absolute;\r\n left: 40px; \r\n top: 38px;\r\n width: 100%;\r\n color: #505050;\r\n`\r\n\r\nconst PanelContent = styled('div')`\r\n width: 100%;\r\n margin-top: 5px;\r\n background: white;\r\n border-radius: 8px;\r\n padding: 8px 12px 8px 12px;\r\n`\r\n\r\nexport { PianoKey }\r\n","import styled from 'styled-components';\r\n\r\nconst PianoKeyList = styled('div')`\r\n position: absolute;\r\n z-index: 9999;\r\n right: 0;\r\n top: 5vh;\r\n display: flex;\r\n flex-direction: column;\r\n`\r\n\r\nexport { PianoKeyList }\r\n","import * as React from 'react';\r\nimport styled, {css} from 'styled-components';\r\n\r\ninterface IProps {\r\n className?: string;\r\n children?: React.ReactNode;\r\n horizontal: 'left' | 'right';\r\n vertical: 'top' | 'bottom';\r\n}\r\n\r\nclass PopupBalloonBase extends React.Component {\r\n render = () => {\r\n const p = this.props;\r\n return (\r\n
\r\n {p.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst PopupBalloon = styled(PopupBalloonBase)`\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 5px;\r\n pointer-events: none;\r\n ${p => (p.vertical == \"bottom\" ) && css`\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n ${p.horizontal == \"right\" && css`right:16px;`}\r\n ${p.horizontal == \"left\" && css`left:16px;`}\r\n bottom: -4px;\r\n width: 0;\r\n height: 0;\r\n border-left: 20px solid transparent;\r\n border-right: 20px solid transparent;\r\n border-top: 20px solid #fff;\r\n }\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n ${p.horizontal == \"right\" && css`right:18px;`}\r\n ${p.horizontal == \"left\" && css`left:18px;`}\r\n bottom: -2px;\r\n width: 0;\r\n height: 0;\r\n border-left: 18px solid transparent;\r\n border-right: 18px solid transparent;\r\n border-top: 18px solid #333;\r\n }\r\n `}\r\n ${p => (p.vertical == \"top\") && css`\r\n &:before {\r\n content: '';\r\n position: absolute;\r\n ${p.horizontal == \"right\" && css`right:16px;`}\r\n ${p.horizontal == \"left\" && css`left:16px;`}\r\n top: -9px;\r\n width: 0;\r\n height: 0;\r\n border-left: 20px solid transparent;\r\n border-right: 20px solid transparent;\r\n border-bottom: 20px solid #fff;\r\n }\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n ${p.horizontal == \"right\" && css`right:18px;`}\r\n ${p.horizontal == \"left\" && css`left:18px;`}\r\n top: -7px;\r\n width: 0;\r\n height: 0;\r\n border-left: 18px solid transparent;\r\n border-right: 18px solid transparent;\r\n border-bottom: 18px solid #333;\r\n }\r\n `} \r\n`\r\n\r\nexport { PopupBalloon }\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface IProps {\r\n className?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nclass PopupBoxBase extends React.Component {\r\n render = () => {\r\n const p = this.props;\r\n return (\r\n
\r\n {p.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst PopupBox = styled(PopupBoxBase)`\r\n box-sizing: border-box;\r\n border: solid 1px #fff;\r\n border-radius: 4px;\r\n background: #333;\r\n padding: 10px;\r\n box-shadow: 2px 2px 2px rgb(0,0,0,0.5);\r\n`\r\n\r\nexport { PopupBox }\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface IProps {\r\n className?: string;\r\n children?: React.ReactNode;\r\n}\r\n\r\nclass PopupTitleBase extends React.Component {\r\n render = () => {\r\n const p = this.props;\r\n return (\r\n
\r\n {p.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst PopupTitle = styled(PopupTitleBase)`\r\n color: lightblue;\r\n font-weight: bold;\r\n font-size: 125%;\r\n padding-left: 1px;\r\n padding-bottom: 4px;\r\n text-shadow: 1px 1px 1px rgb(0,0,0,0.5);\r\n`\r\n\r\nexport { PopupTitle }\r\n","import styled from 'styled-components';\r\n\r\nconst Table = styled('table')`\r\n width: 100%;\r\n border-collapse: separate;\r\n\r\n td, th {\r\n padding: 0;\r\n margin: 0;\r\n text-align: left;\r\n height: 24px;\r\n max-height: 24px;\r\n white-space: nowrap;\r\n border: none;\r\n color: #fff;\r\n user-select: none;\r\n color: #eee;\r\n vertical-align: middle;\r\n }\r\n\r\n th {\r\n color: lightblue;\r\n }\r\n\r\n td:first-child {\r\n width: 130px;\r\n }\r\n\r\n td:last-child {\r\n font-weight: bold;\r\n color: #fff;\r\n }\r\n`\r\n\r\nexport { Table }\r\n","export const COLOR_NOT_SUITABLE = \"#DC1010\";\r\nexport const COLOR_MODERATELY_SUITABLE = \"#FF6D01\";\r\nexport const COLOR_SUITABLE = \"#128800\";\r\nexport const COLOR_HIGHLY_SUITABLE = \"#0cf600\";\r\n","import * as React from 'react';\r\nimport { IConfig } from './Config.Type';\r\nimport { PrebuiltExpressions } from '../layer/PrebuiltExpressions';\r\n\r\nconst Config: IConfig = {\r\n mapKey: \"pk.eyJ1IjoibG9uZ2xpbmVlbnZpcm9ubWVudCIsImEiOiJjbGF0cHF1ZWUwM2l0M3FwcDcyN3B1YXpmIn0.snFi9yTPEZ5lfQxE3h3Epg\",\r\n greyStyle: \"mapbox://styles/longlineenvironment/clatpsjsl003r15okdwsdclmi\",\r\n satelliteStyle: \"mapbox://styles/longlineenvironment/clb14ar2y00hw14oh9ii2zp05\",\r\n longitude: -24.05, \r\n latitude: 16.15, \r\n minZoom: 7,\r\n maxZoom: 14,\r\n max_bounds: [\r\n [-28.49, 12.97], // Southwest (lng/lat)\r\n [-17.31, 20.02] // Northeast (lng/lat)\r\n ],\r\n height: 75,\r\n layers: {\r\n 'offshore_aquaculture': {\r\n src: 'offshore_aquaculture.geojson',\r\n name: 'Offshore aquaculture',\r\n active: true,\r\n icon: 'icon-offshore-aquaculture',\r\n fillPaint: PrebuiltExpressions.FillSuitability,\r\n linePaint: PrebuiltExpressions.LineBlackGoldResponsive\r\n }, \r\n 'onshore_aquaculture': {\r\n src: 'onshore_aquaculture.geojson',\r\n name: 'Onshore aquaculture',\r\n active: false,\r\n icon: 'icon-inshore-aquaculture',\r\n fillPaint: PrebuiltExpressions.FillSuitability,\r\n linePaint: PrebuiltExpressions.LineBlackGoldResponsive\r\n },\r\n /* 'offshore_amberjack': {\r\n src: 'offshore_amberjack_vector.geojson',\r\n name: 'Amberjack',\r\n active: false,\r\n icon: 'icon-tilapia-suitability',\r\n fillPaint: PrebuiltExpressions.FillSuitability,\r\n linePaint: PrebuiltExpressions.LineBlackGoldResponsive\r\n } */\r\n },\r\n dictionary: [\r\n {\r\n key: 'suitability',\r\n text: 'Suitability',\r\n type: 'suitability'\r\n }, {\r\n key: 'island',\r\n text: 'Island',\r\n type: 'string'\r\n }, {\r\n key: 'area_km2',\r\n text: 'Area',\r\n unit: <>km²,\r\n type: 'number',\r\n factor: 1\r\n }, {\r\n key: 'area_ha', // Original is hectares, we convert to km2 using a factor.\r\n text: 'Area',\r\n unit: <>km²,\r\n type: 'number',\r\n factor: 0.01\r\n },\r\n ],\r\n masonry: [\r\n { title: \"Boa Vista\", image: \"boavista.jpg\", onshore: { none: 58394.16, low: 2757.32, medium: 1159.02, high: 83.64 }, offshore: { low: 0, medium: 1143.61, high: 4.08 }},\r\n { title: \"Brava\", image: \"brava.jpg\", onshore: { none: 6454.15, low: 64, medium: 0, high: 0 }, offshore: { low: 3.43, medium: 0, high: 0 }},\r\n { title: \"Fogo\", image: \"fogo.jpg\", onshore: { none: 140488.8, low: 41.65, medium: 0.99, high: 0 }, offshore: { low: 0, medium: 0, high: 0 }},\r\n { title: \"Maio\", image: \"maio.jpg\", onshore: { none: 21342.25, low: 4635.82, medium: 673.3, high: 18.04 }, offshore: { low: 210.33, medium: 0, high: 19.59 }},\r\n { title: \"Sal\", image: \"ilha-do-sal.jpg\", onshore: { none: 18913/14, low: 2183.98, medium: 564.85, high: 4.08 }, offshore: { low: 0, medium: 69.07, high: 2.08 }},\r\n { title: \"Santiago\", image: \"santiago.jpg\", onshore: { none: 889841.8, low: 908.08, medium: 147.68, high: 0.99 }, offshore: { low: 0, medium: 21.35, high: 1.73 }},\r\n { title: \"Santo Antão\", image: \"santo-antao.jpg\", onshore: { none: 232094, low: 230.77, medium: 17.68, high: 0 }, offshore: { low: 0, medium: 32.52, high: 17.44 }},\r\n { title: \"São Vicente\", image: \"sao-vicente.jpg\", onshore: { none: 24856.44, low: 808.62, medium: 498.18, high: 0 }, offshore: { low: 0, medium: 146.46, high: 0.18 }},\r\n { title: \"São Nicolau\", image: \"sao-nicolau.jpg\", onshore: { none: 67457.58, low: 380.24, medium: 151.87, high: 0 }, offshore: { low: 0, medium: 14.05, high: 0 }},\r\n ]\r\n}\r\n\r\nexport { Config }\r\n","import * as React from 'react';\r\n\r\ninterface INumberProps {\r\n /** @ignore */\r\n className?: string;\r\n children?: React.ReactNode;\r\n /** \r\n * Value to format. This can be a string or a number. \r\n */\r\n value: number | string;\r\n /** \r\n * Number of fractional digits. Defaults to `2`. \r\n * @default 2\r\n */\r\n decimals?: number;\r\n}\r\n\r\nclass Number extends React.Component {\r\n render() {\r\n let p = this.props;\r\n\r\n if(p.value == null) return null;\r\n\r\n // Make sure value is a number.\r\n let val = (typeof p.value === 'string') ? parseFloat(p.value) : p.value;\r\n\r\n // Get number of requested fraction digits:\r\n let decimals = p.decimals == null || p.decimals == undefined ? 2 : p.decimals;\r\n\r\n // Format number with requested fraction digits:\r\n return val.toLocaleString(undefined, { \r\n useGrouping: true, \r\n minimumFractionDigits: decimals, \r\n maximumFractionDigits: decimals });\r\n }\r\n}\r\n\r\nexport { Number };\r\n","import * as React from 'react';\r\nimport { Config } from '../config/Config';\r\n\r\ninterface IProps {\r\n name: string;\r\n}\r\n\r\nconst TranslatedName = (props: IProps) => {\r\n const attribute = Config.dictionary.find(x => x.key == props.name);\r\n\r\n // Does key exist? If not, return key.\r\n if(!attribute) return <>{props.name};\r\n \r\n return <>{attribute.text};\r\n}\r\n\r\nexport { TranslatedName }\r\n","import * as React from 'react';\r\n\r\nimport { LegendBox } from '@independent-software/mapbox-ext/controls/Legend/LegendBox';\r\n\r\nimport { Number } from '../formatters/Number';\r\nimport { Config } from '../config/Config';\r\nimport { COLOR_HIGHLY_SUITABLE, COLOR_MODERATELY_SUITABLE, COLOR_NOT_SUITABLE, COLOR_SUITABLE } from '../config/Colors';\r\n\r\ninterface IProps {\r\n name: string;\r\n value: any;\r\n}\r\n\r\nconst TranslatedValue = (props: IProps) => {\r\n\r\n const getSuitability = (value: number): string => {\r\n switch(value) {\r\n case 2: return \"Moderately suitable\";\r\n case 3: return \"Suitable\";\r\n case 4: return \"Highly suitable\";\r\n default: return \"Not suitable\";\r\n }\r\n }\r\n\r\n const getSuitabilityColor = (value: number): string => {\r\n switch(value) {\r\n case 2: return COLOR_MODERATELY_SUITABLE;\r\n case 3: return COLOR_SUITABLE;\r\n case 4: return COLOR_HIGHLY_SUITABLE;\r\n default: return COLOR_NOT_SUITABLE;\r\n } \r\n }\r\n\r\n const attribute = Config.dictionary.find(x => x.key == props.name);\r\n\r\n if(!attribute) return props.value;\r\n\r\n switch(attribute.type) {\r\n case 'suitability':\r\n return
{getSuitability(props.value)}
;\r\n case 'number':\r\n return <> {attribute.unit}\r\n default:\r\n return props.value;\r\n } \r\n}\r\n\r\nexport { TranslatedValue }\r\n","export * from './Number';\r\nexport * from './TranslatedName';\r\nexport * from './TranslatedValue';\r\n","import * as React from 'react';\r\nimport { WelcomeGuide } from './guides/WelcomeGuide';\r\nimport { NavigationGuide } from './guides/NavigationGuide';\r\nimport { ZoomGuide } from './guides/ZoomGuide';\r\nimport { TiltGuide } from './guides/TiltGuide';\r\nimport { SatelliteGuide } from './guides/SatelliteGuide';\r\nimport { FullscreenGuide } from './guides/FullscreenGuide';\r\nimport { LayersGuide } from './guides/LayersGuide';\r\n\r\nconst Guide = () => {\r\n const [active, setActive] = React.useState(true);\r\n const [stage, setStage] = React.useState(null);\r\n\r\n const handleCancel = () => setActive(false);\r\n const handleStage = (s: string) => setStage(s);\r\n\r\n // If guide is inactive, render nothing.\r\n if(active === false) return null;\r\n\r\n // Render guide page based on state.\r\n if(stage === null) return \r\n if(stage === 'navigation') return \r\n if(stage === 'zooming') return \r\n if(stage === 'tilting') return \r\n if(stage === 'satellite') return \r\n if(stage === 'fullscreen') return \r\n if(stage === 'layers') return \r\n\r\n return null;\r\n}\r\n\r\nexport { Guide }\r\n","import * as React from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\ninterface IProps {\r\n /** @ignore */\r\n className?: string;\r\n /** @ignore */\r\n children?: React.ReactNode; \r\n \r\n top?: string;\r\n left?: string;\r\n bottom?: string;\r\n right?: string;\r\n\r\n // Fired when cancel button is clicked.\r\n onCancel: () => void;\r\n}\r\n\r\nconst GuideBoxBase = (props: IProps) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {props.children}\r\n
\r\n );\r\n}\r\n\r\nconst GuideBox = styled(GuideBoxBase)`\r\n position: absolute;\r\n z-index: 1;\r\n ${p => p.left && css`left: ${p.left};`}\r\n ${p => p.right && css`right: ${p.right};`}\r\n ${p => p.top && css`top: ${p.top};`}\r\n ${p => p.bottom && css`bottom: ${p.bottom};`}\r\n\r\n width: 250px;\r\n\r\n user-select: none;\r\n font-size: 12px;\r\n\r\n background: #111;\r\n color: #fff;\r\n line-height: 18px;\r\n border-radius: 4px;\r\n padding: 16px 32px 16px 24px;\r\n\r\n h1 {\r\n font-size: 18px;\r\n margin-bottom: 6px;\r\n white-space: nowrap;\r\n line-height: 20px;\r\n color: #fff;\r\n font-weight: normal;\r\n }\r\n strong {\r\n font-weight: 500;\r\n }\r\n em {\r\n font-style: normal;\r\n color: gold;\r\n }\r\n p {\r\n margin-bottom: 6px;\r\n }\r\n`\r\n\r\nconst Cross = styled.div`\r\n position: absolute;\r\n right: 10px;\r\n top: 10px;\r\n width: 16px;\r\n height: 16px;\r\n cursor: pointer;\r\n svg {\r\n fill: #eee;\r\n width: 16px;\r\n height: 16px;\r\n }\r\n &:hover {\r\n svg { \r\n fill: #fff;\r\n }\r\n }\r\n`\r\n\r\nexport { GuideBox }\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface IProps {\r\n /** @ignore */\r\n className?: string;\r\n /** @ignore */\r\n children?: React.ReactNode;\r\n onClick: () => void;\r\n}\r\n\r\nconst GuideButtonBase = (props: IProps) => \r\n \r\n {props.children}\r\n \r\n\r\nconst GuideButton = styled(GuideButtonBase)`\r\n float: right;\r\n color: #37ACE3;\r\n border: solid 1px #37ACE3;\r\n border-radius: 4px;\r\n padding-left: 6px;\r\n padding-right: 6px;\r\n margin-left: 2px;\r\n margin-right: 2px;\r\n padding-top: 2px;\r\n padding-bottom: 2px;\r\n cursor: pointer;\r\n user-select: none;\r\n &:hover {\r\n background: #333;\r\n }\r\n`\r\n\r\nexport { GuideButton }\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface IProps {\r\n className?: string;\r\n icon: string;\r\n}\r\n\r\nconst GuideIconBase = (props: IProps) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst GuideIcon = styled(GuideIconBase)`\r\n width: 16px;\r\n height: 16px;\r\n fill: #fff;\r\n display: inline-block;\r\n margin-left: 3px;\r\n margin-right: 3px;\r\n`\r\n\r\nexport { GuideIcon }\r\n\r\n","import * as React from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface IProps {\r\n /** @ignore */\r\n className?: string;\r\n /** @ignore */\r\n children?: React.ReactNode;\r\n /** Fired when GuideLink is clicked. */\r\n onClick: () => void;\r\n}\r\n\r\nconst GuideLinkBase = (props: IProps) => \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n
\r\n\r\nconst Caret = styled.div`\r\n width: 10px;\r\n height: 16px;\r\n svg {\r\n fill: #39C5FF;\r\n width: 10px;\r\n height: 16px;\r\n }\r\n`\r\n\r\nconst GuideLink = styled(GuideLinkBase)`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n gap: 6px;\r\n margin-top: 2px;\r\n margin-bottom: 2px;\r\n\r\n a {\r\n color: #39C5FF;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n }\r\n a:hover {\r\n color: #49d5FF;\r\n text-decoration: none;\r\n }\r\n`\r\n\r\nexport { GuideLink }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideButton } from '../elements/GuideButton';\r\nimport { GuideIcon } from '../elements/GuideIcon';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst FullscreenGuide = (props: IProps) => {\r\n return (\r\n \r\n

Fullscreen display

\r\n

The map size can be increased to fill your browser window.

\r\n

Click the icon to toggle fullscreen display mode.

\r\n

Press ESC to disable fullscreen mode.

\r\n props.onStage(null)}>Finish\r\n
\r\n );\r\n}\r\n\r\nexport { FullscreenGuide }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideButton } from '../elements/GuideButton';\r\nimport { GuideIcon } from '../elements/GuideIcon';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst LayersGuide = (props: IProps) => {\r\n return (\r\n \r\n

Map layers

\r\n

The map can display different layers of aquaculture suitability.

\r\n

Use the tabs on the right to toggle layers.

\r\n props.onStage(null)}>Finish\r\n
\r\n );\r\n}\r\n\r\nexport { LayersGuide }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideButton } from '../elements/GuideButton';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst NavigationGuide = (props: IProps) => {\r\n return (\r\n \r\n

Navigation

\r\n

You can pan, zoom, rotate and tilt the map.

\r\n

Click and drag them map to pan it.

\r\n props.onStage('zooming')}>Continue\r\n
\r\n );\r\n}\r\n\r\nexport { NavigationGuide }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideButton } from '../elements/GuideButton';\r\nimport { GuideIcon } from '../elements/GuideIcon';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst SatelliteGuide = (props: IProps) => {\r\n return (\r\n \r\n

Satellite imagery

\r\n

The map can display eiter satellite imagery or vectorized landmasses.

\r\n

Click the icon to toggle satellite imagery.

\r\n props.onStage(null)}>Finish\r\n
\r\n );\r\n}\r\n\r\nexport { SatelliteGuide }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideIcon } from '../elements/GuideIcon';\r\nimport { GuideButton } from '../elements/GuideButton';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst TiltGuide = (props: IProps) => {\r\n return (\r\n \r\n

Rotating and tilting

\r\n

The map can be both rotated (changing its bearing) and tilted\r\n (changing the view's axis).

\r\n

Ctrl+click and drag to rotate and tilt the map.

\r\n

Click the icon to reset your view to due north.

\r\n props.onStage(null)}>Finish\r\n
\r\n );\r\n}\r\n\r\nexport { TiltGuide }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideLink } from '../elements/GuideLink';\r\nimport { GuideIcon } from '../elements/GuideIcon';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst WelcomeGuide = (props: IProps) => {\r\n return (\r\n \r\n

Hello!

\r\n

Let us help you get started with this map.

\r\n props.onStage('navigation')}>Navigation\r\n props.onStage('satellite')}>Satellite imagery\r\n props.onStage('fullscreen')}>Fullscreen display\r\n props.onStage('layers')}>Map layers\r\n
\r\n );\r\n}\r\n\r\nexport { WelcomeGuide }\r\n","import * as React from 'react';\r\n\r\nimport { GuideBox } from '../elements/GuideBox';\r\nimport { GuideIcon } from '../elements/GuideIcon';\r\nimport { GuideButton } from '../elements/GuideButton';\r\n\r\ninterface IProps {\r\n onCancel: () => void;\r\n onStage: (s: string) => void;\r\n}\r\n\r\nconst ZoomGuide = (props: IProps) => {\r\n return (\r\n \r\n

Zooming

\r\n

Use the and buttons to zoom in or out.

\r\n

You can also double-click the map to zoom in.

\r\n props.onStage('tilting')}>Continue\r\n
\r\n );\r\n}\r\n\r\nexport { ZoomGuide }\r\n","import * as React from 'react';\r\nimport { Layer } from 'react-map-gl';\r\n\r\nimport { ILayer } from '../config/Config.Type';\r\nimport { LoadableLayer } from './LoadableLayer';\r\n\r\n/**\r\n * A CustomizableLayer is a LoadableLayer that takes a layer specification.\r\n */\r\nconst CustomizableLayer = (props: ILayer & { id: string, active: boolean}) => {\r\n return (\r\n \r\n {props.fillPaint && }\r\n {props.linePaint && }\r\n \r\n )\r\n}\r\n\r\nexport { CustomizableLayer }\r\n","import * as React from 'react';\r\nimport axios from 'axios';\r\nimport { Source } from 'react-map-gl';\r\n\r\nimport { AnimatedLoader } from '@independent-software/mapbox-ext/controls/AnimatedLoader';\r\n\r\n// Loading delay is BASE + RANDOM.\r\nconst LOAD_DELAY_RANDOM = 0; // Random loading delay (ms)\r\nconst LOAD_DELAY_BASE = 0; // Base loading delay (ms)\r\n\r\ninterface IProps {\r\n /** @ignore */\r\n children?: React.ReactNode;\r\n /** GeoJSON file name. */\r\n path: string;\r\n /** Is layer currently active? */\r\n active: boolean;\r\n /** List of properties to ignore from GeoJSON data. */ \r\n ignore?: string[]\r\n}\r\n\r\n/**\r\n * Loads a geojson resource (path) from the server. onLoading is fired when\r\n * loading begins; onLoaded is fired when loading is complete. Renders a \r\n * Source which may contain Layer children.\r\n */\r\nconst LoadableLayer = (props: IProps) => {\r\n // Is the layer currently loading?\r\n const [loading, setLoading] = React.useState(false);\r\n // Layer's GeoJSON data:\r\n const [geojson, setGeojson] = React.useState(null);\r\n\r\n // Loading begins when component is first mounted.\r\n React.useEffect(() => {\r\n if(props.active) loadData();\r\n }, []);\r\n\r\n // Data is reloaded when active status changes.\r\n React.useEffect(() => {\r\n if(props.active) loadData();\r\n }, [props.active])\r\n\r\n const loadData = () => {\r\n setLoading(true);\r\n window.setTimeout(() => {\r\n axios.get(`data/${props.path}`)\r\n .then(res => {\r\n const geojson: GeoJSON.FeatureCollection = res.data;\r\n // Filter GeoJSON for ignored properties:\r\n if(props.ignore) {\r\n geojson.features.forEach(f => {\r\n f.properties = Object.keys(f.properties)\r\n .filter(key => !props.ignore.includes(key))\r\n .reduce((obj, key) => {\r\n (obj as any)[key] = f.properties[key];\r\n return obj;\r\n }, {});\r\n });\r\n }\r\n setLoading(false);\r\n setGeojson(geojson);\r\n });\r\n }, Math.random() * LOAD_DELAY_RANDOM + LOAD_DELAY_BASE);\r\n }\r\n\r\n return (\r\n <>\r\n {/* generateId creates an ID for each feature, since the source data\r\n does not have any IDs. This is required for hovering. */}\r\n \r\n {props.children}\r\n \r\n {loading && }\r\n \r\n );\r\n}\r\n\r\nexport { LoadableLayer }\r\n","import { FillPaint, LinePaint } from \"mapbox-gl\"\r\nimport { COLOR_HIGHLY_SUITABLE, COLOR_MODERATELY_SUITABLE, COLOR_NOT_SUITABLE, COLOR_SUITABLE } from \"../config/Colors\";\r\n\r\nclass PrebuiltExpressions {\r\n\r\n static FillSuitability: FillPaint = { \r\n 'fill-color': [\r\n 'step',\r\n ['get', 'suitability'],\r\n COLOR_NOT_SUITABLE,\r\n 2, COLOR_MODERATELY_SUITABLE,\r\n 3, COLOR_SUITABLE,\r\n 4, COLOR_HIGHLY_SUITABLE\r\n ],\r\n 'fill-opacity': [\r\n 'case',\r\n ['boolean', ['feature-state', 'hover'], false],\r\n 1,\r\n 0.5\r\n ]\r\n }\r\n\r\n static LineBlackGoldResponsive: LinePaint = {\r\n 'line-color': [\r\n 'case',\r\n ['boolean', ['feature-state', 'hover'], false],\r\n 'gold',\r\n 'black'\r\n ],\r\n 'line-width': [\r\n 'case',\r\n ['boolean', ['feature-state', 'hover'], false],\r\n 3,\r\n 1\r\n ]\r\n }\r\n\r\n}\r\n\r\nexport { PrebuiltExpressions }\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkautomap\"] = self[\"webpackChunkautomap\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [216], () => (__webpack_require__(4828)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [216], () => (__webpack_require__(1734)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","Title","div","Text","Brick","props","className","src","data","image","title","colSpan","LegendBox","color","COLOR_HIGHLY_SUITABLE","Number","value","offshore","high","decimals","COLOR_SUITABLE","medium","COLOR_MODERATELY_SUITABLE","low","onshore","COLOR_NOT_SUITABLE","none","map","hovered","state","viewState","longitude","Config","latitude","zoom","minZoom","bearing","pitch","padding","top","bottom","right","left","satellite","interactiveLayerIds","hoverLatitude","hoverLongitude","hoverFeatures","popup_horizontal","popup_vertical","layers","handleLoad","e","target","setState","Object","entries","key","handlePianoKey","name","active","handleToggleSatellite","getWindowSize","window","innerWidth","document","documentElement","clientWidth","body","innerHeight","clientHeight","handleMouseMove","width","height","dx","point","x","dy","y","forEach","f","setFeatureState","hover","features","lngLat","lat","lng","getLayerTable","feature","rows","keys","properties","k","idx","push","TranslatedName","TranslatedValue","Table","getPopupContent","layerIDs","indexOf","layer","id","boxes","layerID","PopupBox","PopupTitle","find","handleMove","render","mapboxAccessToken","mapKey","style","cursor","length","logoPosition","mapStyle","satelliteStyle","greyStyle","scrollZoom","maxBounds","max_bounds","maxZoom","onLoad","onMouseMove","onMove","ScaleControl","FullscreenButton","skin","DarkSkin","hint","LayerButton","onClick","ZoomInButton","ZoomOutButton","CompassButton","visualizePitch","PianoKeyList","PianoKey","icon","CustomizableLayer","Legend","label","Guide","Popup","offset","closeButton","anchor","maxWidth","closeOnClick","PopupBalloon","horizontal","vertical","React","Component","node","getElementById","createRoot","MapView","Masonry","masonry","b","Math","ceil","p","MapButton","viewBox","xmlns","d","PianoKeyHolder","xlinkHref","Children","count","children","Panel","PanelContent","PianoKeyBase","PopupBalloonBase","css","PopupBoxBase","PopupTitleBase","fillPaint","PrebuiltExpressions","FillSuitability","linePaint","LineBlackGoldResponsive","dictionary","text","type","unit","factor","this","val","parseFloat","undefined","toLocaleString","useGrouping","minimumFractionDigits","maximumFractionDigits","attribute","display","flexDirection","alignItems","gap","getSuitabilityColor","getSuitability","useState","setActive","stage","setStage","handleCancel","handleStage","s","WelcomeGuide","onCancel","onStage","NavigationGuide","ZoomGuide","TiltGuide","SatelliteGuide","FullscreenGuide","LayersGuide","GuideBox","Cross","GuideButton","GuideIcon","Caret","GuideLink","LoadableLayer","path","Layer","layout","visibility","paint","loading","setLoading","geojson","setGeojson","useEffect","loadData","setTimeout","get","then","res","ignore","filter","includes","reduce","obj","random","Source","generateId","AnimatedLoader","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","a","getPrototypeOf","t","mode","ns","create","def","current","getOwnPropertyNames","definition","o","defineProperty","enumerable","Promise","resolve","g","globalThis","Function","prop","prototype","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","nc","__webpack_exports__"],"sourceRoot":""}