{"version":3,"file":"react-app-c2db7dacfa91942baac9.js","mappings":"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CACI,YAAa,yBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,6BACpB,CACJ,CACJ,EACA,CACI,YAAa,yBACb,YAAa,gBACb,QAAS,CACL,CACI,MAAOA,EAAS,4BACpB,CACJ,CACJ,EACA,CACI,YAAa,6BACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,0BACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,0BACb,YAAa,kBACb,QAAS,CAAC,CAAE,MAAOA,EAAS,mBAAoB,CAAC,CACrD,EACA,CACI,YAAa,YACb,QAAS,CACL,CACI,MAAOA,EAAS,cACpB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,WACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,gBACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,kBACb,QAAS,CACL,CACI,MAAOA,EAAS,mBACpB,EACA,CACI,UAAW,EACf,EACA,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,oBACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,4BACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,MACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,MACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,eACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,WACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,OACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,EACA,CACI,WAAY,IAChB,EACA,CACI,UAAW,EACf,EACA,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,gBACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,gBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,eACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,eACb,YAAa,gBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,eACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,aACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,aACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,UACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,QACb,QAAS,CACL,CACI,MAAOA,EAAS,UACpB,EACA,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,QACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,CACJ,C,qCCrVA,OAAO,eAAejG,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMiG,EAAW,EAAQ,KAAkC,EAC3DjG,EAAA,QAAkB,CACd,CACI,YAAa,iBACb,YAAa,gBACb,QAAS,CACL,CACI,MAAOiG,EAAS,oBACpB,EACA,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,YAAa,kBACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,6BACpB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,YAAa,cACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,YAAa,qBACb,QAAS,CACL,CACI,MAAOA,EAAS,WACpB,CACJ,CACJ,EACA,CACI,YAAa,yBACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,yBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,6BACpB,CACJ,CACJ,EACA,CACI,YAAa,yBACb,YAAa,kBACb,QAAS,CACL,CACI,MAAOA,EAAS,4BACpB,CACJ,CACJ,EACA,CACI,YAAa,0BACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,0BACb,YAAa,kBACb,QAAS,CAAC,CAAE,MAAOA,EAAS,mBAAoB,CAAC,CACrD,EACA,CACI,YAAa,YACb,QAAS,CACL,CACI,MAAOA,EAAS,cACpB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,WACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,gBACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,kBACb,QAAS,CACL,CACI,MAAOA,EAAS,mBACpB,EACA,CACI,UAAW,GACf,EACA,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,qBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,EACA,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,oBACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,8BACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,4BACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,MACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,MACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,iBACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,eACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,WACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,OACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,EACA,CACI,WAAY,IAChB,EACA,CACI,UAAW,EACf,EACA,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,gBACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,gBACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,gBACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,eACb,QAAS,CACL,CACI,WAAY,YAChB,CACJ,CACJ,EACA,CACI,YAAa,eACb,YAAa,gBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,eACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,aACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,aACb,YAAa,mBACb,QAAS,CACL,CACI,MAAOA,EAAS,SACpB,CACJ,CACJ,EACA,CACI,YAAa,UACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,QACb,QAAS,CACL,CACI,MAAOA,EAAS,UACpB,EACA,CACI,WAAY,IAChB,CACJ,CACJ,EACA,CACI,YAAa,QACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,EACA,CACI,YAAa,oBACb,YAAa,SACb,QAAS,CACL,CACI,WAAY,KAChB,CACJ,CACJ,CACJ,C,qCCxXA,IAAIK,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,cAAgB,OACxB,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzCu5C,EAAmB,EAAQ,KAA+B,EAC1DC,EAAqBviD,EAAgB,EAAQ,KAAiC,CAAC,EAC/E+iB,EAAe,EAAQ,KAAoB,EAC3CD,EAAiB,EAAQ,KAAgB,EACzC0/B,EAAqB,2CACrBC,EAA2B,CAC7B,KAAM,OAAO,SAAS,IAC1B,EACMC,EAAgB,CAAC,CAAE,SAAAt/B,EAAU,QAAAu/B,CAAQ,IAAM,CAC7C,MAAMp/B,KAAoBpjB,EAAQ,QAAQ,IAAI,EACxC,CAAE,EAAAiH,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5C,CAAE,cAAA65C,EAAe,MAAAngC,CAAM,KAAQ8/B,EAAmB,SAAS,OAAO,SAAS,KAAMC,CAAkB,EACnG,CAACh/B,EAAWC,CAAY,KAAQtjB,EAAQ,UAAUsiD,CAAwB,KAC5EtiD,EAAQ,WAAW,IAAM,CACrBsiB,EACAkgC,EAAQlgC,CAAK,EAGbgB,EAAcO,GAAkB,OAAO,OAAO,OAAO,OAAO,CAAC,EAAGA,CAAY,EAAG,CAAE,KAAM4+B,CAAc,CAAC,CAAE,CAEhH,EAAG,CAACA,EAAengC,EAAOkgC,CAAO,CAAC,EAClC,MAAM7+B,EAAqBC,GAAU,CACjC,KAAM,CAAE,KAAArhB,EAAM,MAAA+O,CAAM,EAAIsS,EAAM,OAC9BN,EAAcO,GAAkB,OAAO,OAAO,OAAO,OAAO,CAAC,EAAGA,CAAY,EAAG,CAAE,CAACthB,CAAI,EAAG+O,CAAM,CAAC,CAAE,CACtG,EACMwS,EAAgBF,GAAU,CAC5BX,EAASI,CAAS,KACd8+B,EAAiB,gBAAgB9+B,EAAU,IAAI,EACnDC,EAAag/B,CAAwB,CACzC,EACA,OAAQtiD,EAAQ,QAAQ,cAAc,OAAQ,CAAE,SAAU8jB,CAAa,EACnE9jB,EAAQ,QAAQ,cAAc2iB,EAAe,YAAa,CAAE,UAAW,gBAAiB,EACpF3iB,EAAQ,QAAQ,cAAc4iB,EAAa,WAAY,CAAE,cAAeQ,EAAe,MAAOC,EAAU,KAAM,SAAUM,EAAmB,KAAM,OAAQ,KAAM,MAAO,CAAC,EACvK3jB,EAAQ,QAAQ,cAAc2iB,EAAe,WAAY,CAAE,KAAM,SAAU,aAAc1b,EAAE,wBAAwB,CAAE,EAAGA,EAAE,wBAAwB,CAAC,CAAC,CAAC,CACjK,EACAlH,EAAQ,cAAgBwiD,C,qCCjExB,IAAI1iD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,UAAYA,EAAQ,aAAeA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,cAAgBA,EAAQ,eAAiBA,EAAQ,WAAaA,EAAQ,aAAe,OACpL,MAAMgG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEmG,EAAW,EAAQ,KAA+B,EAClD0C,EAAU,EAAQ,KAAsB,EACxC6M,EAAiB,EAAQ,KAAiC,EAC1Dia,EAAezpB,EAAoB,QAAQ;AAAA,sBAC3BC,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpCjG,EAAQ,aAAeyvB,EACvB,MAAMkC,EAAiB3rB,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKnDhG,EAAQ,eAAiB2xB,EACzB,MAAMgxB,EAAc38C,EAAoB,QAAQ;AAAA;AAAA;AAAA,EAIhDhG,EAAQ,YAAc2iD,EACtB,MAAMv8C,KAAmBJ,EAAoB,SAASwP,EAAe,MAAM;AAAA,sBACrDvP,EAAS,IAAI;AAAA,WACxBA,EAAS,KAAK;AAAA;AAAA;AAAA,WAGd0C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShC3I,EAAQ,aAAeoG,EACvB,MAAMw8C,KAAoB58C,EAAoB,SAASwP,EAAe,MAAM;AAAA,WACjEvP,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA,WAIhB0C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYhC3I,EAAQ,cAAgB4iD,EACxB,MAAMC,EAAY78C,EAAoB,QAAQ;AAAA;AAAA;AAAA,sBAGxBC,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtCjG,EAAQ,UAAY6iD,EACpB,MAAMC,KAAiB98C,EAAoB,SAASwP,EAAe,MAAM;AAAA,sBACnDvP,EAAS,IAAI;AAAA,WACxBA,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzBjG,EAAQ,WAAa8iD,EACrB,MAAMC,EAAc/8C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMhDhG,EAAQ,YAAc+iD,C,qCCzFtB,IAAIjjD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,QAAUA,EAAQ,MAAQA,EAAQ,UAAYA,EAAQ,WAAaA,EAAQ,SAAWA,EAAQ,YAAcA,EAAQ,oBAAsBA,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,YAAcA,EAAQ,OAASA,EAAQ,kBAAoBA,EAAQ,mBAAqBA,EAAQ,qBAAuBA,EAAQ,cAAgBA,EAAQ,cAAgBA,EAAQ,eAAiBA,EAAQ,iBAAmBA,EAAQ,cAAgBA,EAAQ,iBAAmBA,EAAQ,OAASA,EAAQ,WAAaA,EAAQ,sBAAwBA,EAAQ,aAAeA,EAAQ,WAAa,OACrkB,MAAMG,EAAqB,EAAQ,KAAkB,EAC/C+jB,EAAkBpkB,EAAgB,EAAQ,KAAe,CAAC,EAC1DkG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEmG,EAAW,EAAQ,KAAkC,EACrD0C,EAAU,EAAQ,KAAyB,EAC3C4M,EAAuB,EAAQ,KAAgD,EAC/EtL,EAAe,EAAQ,KAA2B,EAClD+4C,KAA0Bh9C,EAAoB,SAASke,EAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAmB5Dje,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAWzB0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAMvC3I,EAAQ,oBAAsBgjD,EAC9B,MAAMC,EAAgBj9C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOvC2C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAShC3I,EAAQ,cAAgBijD,EACxB,MAAMC,EAAoBl9C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKtDhG,EAAQ,kBAAoBkjD,EAC5B,MAAMC,EAAqBn9C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKvDhG,EAAQ,mBAAqBmjD,EAC7B,MAAMC,KAAkBp9C,EAAoB,SAASiE,EAAa,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQzDtB,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,YAAcojD,EACtB,MAAMC,EAAcr9C,EAAoB,QAAQ;AAAA;AAAA;AAAA,EAIhDhG,EAAQ,YAAcqjD,EACtB,MAAMC,EAAat9C,EAAoB,QAAQ;AAAA;AAAA;AAAA,WAGpCC,EAAS,OAAO;AAAA,EAE3BjG,EAAQ,WAAasjD,EACrB,MAAMC,EAAwBv9C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK1DhG,EAAQ,sBAAwBujD,EAChC,MAAMC,EAAex9C,EAAoB,QAAQ;AAAA;AAAA;AAAA,EAIjDhG,EAAQ,aAAewjD,EACvB,MAAMC,EAAaz9C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,sBAIxBwB,GAAUA,EAAM,MAAM;AAAA;AAAA;AAAA,EAI7CxH,EAAQ,WAAayjD,EACrB,MAAMC,EAAW19C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,sBAItBwB,GAAUA,EAAM,MAAM;AAAA;AAAA;AAAA,EAI7CxH,EAAQ,SAAW0jD,EACnB,MAAMC,EAAmB39C,EAAoB,QAAQ;AAAA;AAAA,WAE1C2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAMrC3I,EAAQ,iBAAmB2jD,EAC3B,MAAMC,EAAuB59C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKnCwB,GAAWA,EAAM,UAAY,WAAa,YAAa;AAAA,EAE7ExH,EAAQ,qBAAuB4jD,EAC/B,MAAMxyC,EAAQpL,EAAoB,QAAQ;AAAA;AAAA;AAAA,EAI1ChG,EAAQ,MAAQoR,EAChB,MAAM+sB,EAAYn4B,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK9ChG,EAAQ,UAAYm+B,EACpB,MAAM93B,KAAaL,EAAoB,SAASuP,EAAqB,YAAY;AAAA,WACtEtP,EAAS,OAAO;AAAA,sBACLA,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWtCjG,EAAQ,OAASqG,EACjB,MAAMy8C,KAAiB98C,EAAoB,SAAS7F,EAAmB,IAAI;AAAA,sBACrD8F,EAAS,IAAI;AAAA,WACxBA,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAcHA,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAW3B0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKrC3I,EAAQ,WAAa8iD,EACrB,MAAMF,EAAgB58C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAavC2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,cAAgB4iD,EACxB,MAAMx+B,KAAiBpe,EAAoB,SAASke,EAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAQnDje,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYtCjG,EAAQ,WAAaokB,EACrB,MAAMiL,EAAUrpB,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,WAKjC2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,QAAUqvB,EAClB,MAAMw0B,EAAS79C,EAAoB,QAAQ;AAAA;AAAA,EAG3ChG,EAAQ,OAAS6jD,EACjB,MAAMC,EAAgB99C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQlDhG,EAAQ,cAAgB8jD,EACxB,MAAMC,EAAiB/9C,EAAoB,QAAQ;AAAA,aACrCwB,GAAWA,EAAM,WAAa,OAAS,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5DxH,EAAQ,eAAiB+jD,EACzB,MAAMC,EAAmBh+C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKrDhG,EAAQ,iBAAmBgkD,EAC3B,MAAM1zC,EAActK,EAAoB,QAAQ;AAAA,eACjC,CAAC,CAAE,SAAAqK,CAAS,IAAOA,EAAW,iBAAmB,MAAO;AAAA;AAAA,EAGvErQ,EAAQ,YAAcsQ,C,qCC/RtB,IAAIhK,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,oBAAsB,OAC9B,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzCo7C,EAAwBnkD,EAAgB,EAAQ,IAA8C,CAAC,EAC/FmG,EAAW,EAAQ,KAAkC,EACrDgD,EAA2BnJ,EAAgB,EAAQ,KAA0C,CAAC,EAC9FokD,EAAU,EAAQ,KAAgC,EAClD78C,EAAIP,EAAa,EAAQ,KAA6B,CAAC,EACvDq9C,EAAgBrkD,EAAgB,EAAQ,KAA2B,CAAC,EACpEkjD,EAAsB/iD,EAAQ,QAAQ,KAAK,CAAC,CAAE,QAAA6hB,EAAS,YAAAzf,EAAa,SAAAM,CAAS,IAAM,CAErF,MAAMyhD,KAAmBnkD,EAAQ,aAAcuH,GACpCvH,EAAQ,QAAQ,cAAcoH,EAAE,oBAAqB,OAAO,OAAO,CAAC,EAAGG,CAAK,CAAC,EACrF,CAAC,CAAC,EACC6B,KAAeJ,EAAyB,SAAS,EACjD,CAAE,EAAA/B,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5C,CAACgI,EAAWC,CAAY,KAAQ7Q,EAAQ,UAAU,EAAI,EACtDokD,KAAmBpkD,EAAQ,aAAa,KAC1C6Q,EAAa,EAAK,EAClBgR,EAAQ,EAED,IAAM,CACTnf,EAAW,IACf,GACD,CAACmf,CAAO,CAAC,EACNwiC,KAAuBrkD,EAAQ,SAAS,KAAO,CACjD,YAAAoC,EACA,SAAAM,EACA,UAAAkO,EACA,aAAAC,CACJ,GAAI,CAACzO,EAAaM,EAAUkO,CAAS,CAAC,EACtC,OAAQ5Q,EAAQ,QAAQ,cAAcmkD,EAAc,CAAE,KAAM,GAAM,MAAO,GAAM,OAAQ,GAAM,aAAc,CACnG,OAAQ,EACR,OAAQ,EACR,OAAQ/6C,EAAW,SAAW,SAC9B,aAAc,aAAapD,EAAS,OAAO,EAC/C,EAAG,aAAc,CAAE,OAAQ,CAAE,EAAG,QAASo+C,EAAc,qBAAsB,EAAM,EAAIhiC,GAAWpiB,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAC1JA,EAAQ,QAAQ,cAAckkD,EAAc,QAAS,OAAO,OAAO,CAAC,EAAGG,CAAgB,CAAC,EACxFzzC,GAAc5Q,EAAQ,QAAQ,cAAcikD,EAAQ,MAAO,CAAE,SAAUvhD,EAAU,YAAaN,EAAa,eAAgB,GAAO,kBAAmB,IAAK,CAAC,EAC3J,CAACgH,GAAapJ,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,CAAE,QAASgb,CAAM,EAC1EpiB,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKgkD,EAAsB,QAAS,IAAK/8C,EAAE,iBAAiB,CAAE,CAAC,CAAC,CAAE,CAAE,CACvH,CAAC,EACDlH,EAAQ,oBAAsBgjD,C,oCCrE9B,IAAI18C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzC07C,EAAiBzkD,EAAgB,EAAQ,KAA0C,CAAC,EACpFuV,EAAqBvV,EAAgB,EAAQ,KAA8C,CAAC,EAC5FwV,EAAiBxV,EAAgB,EAAQ,KAA0C,CAAC,EACpF2V,EAAsB,EAAQ,IAA8D,EAC5FC,EAAwB,EAAQ,KAAgE,EAChGyF,EAAe,EAAQ,KAAiC,EACxD3C,EAAqB,EAAQ,KAAuC,EACpEtC,EAAqB,EAAQ,GAAuC,EACpEvN,EAAU,EAAQ,KAA4B,EAC9C0I,EAAoB,EAAQ,KAAsC,EAClEpI,EAA2BnJ,EAAgB,EAAQ,KAA6C,CAAC,EACjG,EAAIgH,EAAa,EAAQ,KAA8B,CAAC,EACxDq8C,EAAqB,CAAC,CAAE,gBAAAqB,EAAiB,WAAA1xC,EAAY,SAAA+qB,EAAU,SAAAl7B,EAAU,yBAAA2b,CAA0B,IAAM,CAC3G,KAAM,CAAE,oBAAA9C,EAAqB,aAAA6X,CAAa,KAAQ7a,EAAmB,cAAc,EAC7E,CAAE,EAAAtR,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CQ,KAAeJ,EAAyB,SAASN,EAAQ,YAAY,YAAY,EACjF8/B,EAAkB,IAAI,gBAAgBpV,EAAa,SAAS,CAAC,EAC7D,CAAE,oBAAAyK,EAAqB,oBAAAC,EAAqB,aAAAxH,CAAa,EAAIsH,EAC7DpsB,EAAMqsB,GAAwB,KAAyCA,EAAsB0mB,EAAgB,oBAC7G3yC,EAAMksB,GAAwB,KAAyCA,EAAsBymB,EAAgB,oBAC7GC,EAAMluB,GAAiB,KAAkCA,EAAeiuB,EAAgB,aACxFtmB,KAAahoB,EAAmB,UAAUzE,EAAKI,EAAK4yC,CAAG,GACzDhzC,IAAQ,KACRI,IAAQ,MACRJ,IAAQ,MACRI,IAAQ,IACZ,OAAA42B,EAAgB,IAAIjwB,EAAmB,eAAe,qBAAsBgD,CAAmB,EAC/FitB,EAAgB,IAAIjwB,EAAmB,eAAe,oBAAqB2C,EAAa,aAAa,YAAY,EACzGlb,EAAQ,QAAQ,cAAc,EAAE,mBAAoB,KACxDA,EAAQ,QAAQ,cAAc,EAAE,QAAS,KACrCA,EAAQ,QAAQ,cAAc,EAAE,YAAa,KAAMukD,EAAgB,KAAK,EACxEvkD,EAAQ,QAAQ,cAAc,EAAE,YAAa,KAAMukD,EAAgB,OAAO,EAC1EvkD,EAAQ,QAAQ,cAAc,EAAE,WAAY,KAAMukD,EAAgB,UAAU,CAAC,EACjFvkD,EAAQ,QAAQ,cAAc,EAAE,QAAS,KACrCi+B,EAAUj+B,EAAQ,QAAQ,cAAc,EAAE,OAAQ,KAAMiH,EAAE,4BAA4B,CAAC,EAAMjH,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACjJA,EAAQ,QAAQ,cAAc,EAAE,sBAAuB,KACnDA,EAAQ,QAAQ,cAAc,EAAE,WAAY,CAAE,UAAcoR,EAAkB,kBAAkByB,EAAY2xC,CAAG,CAAE,CAAC,EAClHv9C,EAAE,kCAAkC,EACpCjH,EAAQ,QAAQ,cAAc,EAAE,aAAc,KAAMwkD,CAAG,EACvDD,EAAgB,UAAU,EAC9BvkD,EAAQ,QAAQ,cAAc,EAAE,qBAAsB,CAAE,UAAa,EAAM,EACvEA,EAAQ,QAAQ,cAAc,MAAO,KACjCA,EAAQ,QAAQ,cAAc,EAAE,SAAU,CAAE,UAAcoR,EAAkB,kBAAkByB,EAAYrB,CAAG,CAAE,CAAC,EAChHvK,EAAE,8BAA8B,EAChCjH,EAAQ,QAAQ,cAAc,EAAE,MAAO,KAAMwR,CAAG,CAAC,EACrDxR,EAAQ,QAAQ,cAAc,MAAO,KACjCA,EAAQ,QAAQ,cAAc,EAAE,SAAU,CAAE,UAAcoR,EAAkB,kBAAkByB,EAAYjB,CAAG,CAAE,CAAC,EAChH3K,EAAE,8BAA8B,EAChCjH,EAAQ,QAAQ,cAAc,EAAE,MAAO,KAAM4R,CAAG,CAAC,CAAC,CAAC,EAC/D5R,EAAQ,QAAQ,cAAc,EAAE,UAAW,KACvCukD,EAAgB,UAChB,MACAA,EAAgB,OAAO,CAAC,EAChCvkD,EAAQ,QAAQ,cAAc,EAAE,iBAAkB,KAC9Cqe,GAA6Bre,EAAQ,QAAQ,cAAc,EAAE,WAAY,CAAE,GAAI,0BAA0B0C,CAAQ,IAAI8lC,EAAgB,SAAS,CAAC,EAAG,EAC9Ip/B,EAAW,GAAKnC,EAAE,8BAA8B,EAChDjH,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKskD,EAAe,QAAS,IAAKr9C,EAAE,kCAAkC,CAAE,CAAC,CAAC,EACrHjH,EAAQ,QAAQ,cAAcyV,EAAsB,oBAAqB,CAAE,OAAQzV,EAAQ,QAAQ,cAAc,EAAE,OAAQ,CAAE,kBAAmBiH,EAAE,iCAAiC,CAAE,EAC7KjH,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKqV,EAAe,QAAS,IAAKpO,EAAE,iCAAiC,CAAE,CAAC,CAAC,EAAG,yBAA0BoX,EAA0B,YAAa,CAACkmC,EAAgB,SAAS,EAAG,WAAY,GAAM,SAAW5uC,GAAa,CAAE,EAAG,cAAe,EAAM,CAAC,EAC9R3V,EAAQ,QAAQ,cAAcwV,EAAoB,kBAAmB,CAAE,OAAQxV,EAAQ,QAAQ,cAAc,EAAE,OAAQ,CAAE,aAAciH,EAAE,2BAA2B,CAAE,EAC9JjH,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKoV,EAAmB,QAAS,IAAKnO,EAAE,wBAAwB,CAAE,CAAC,CAAC,EAAG,WAAY,EAAK,CAAC,CAAC,CAAC,CACtJ,EACAlH,EAAA,QAAkBmjD,C,qCC3FlB,IAAI78C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzC67C,EAAmB5kD,EAAgB,EAAQ,KAA4C,CAAC,EACxFu5B,EAAU,EAAQ,KAAsB,EACxCvwB,EAAU,EAAQ,KAA4B,EAC9CoN,EAAqB,EAAQ,GAAuC,EACpE7E,EAAoB,EAAQ,KAAsC,EAClEhK,EAAIP,EAAa,EAAQ,KAA8B,CAAC,EACxDo8C,EAAoB,CAAC,CAAE,iBAAAnyC,EAAkB,UAAAF,EAAW,gBAAA2zC,EAAiB,WAAA1xC,EAAY,SAAA+qB,EAAU,SAAAx0B,CAAU,IAAM,CAC7G,KAAM,CAAE,EAAAnC,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CiE,KAAgBhE,EAAQ,gBAAgBuwB,EAAQ,eAAe,EAC/D,CAAE,oBAAAyE,EAAqB,oBAAAC,EAAqB,aAAAxH,CAAa,EAAIsH,EAC7DK,KAAahoB,EAAmB,UAAU4nB,EAAqBC,EAAqBxH,CAAY,EACtG,OAAQt2B,EAAQ,QAAQ,cAAcoH,EAAE,kBAAmB,KACvDpH,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,CAAE,QAAS0J,CAAiB,EACvE9Q,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,KAC9CpH,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,CAAE,IAAKq9C,EAAiB,QAAS,IAAKx9C,EAAE,wBAAwB,EAAG,SAAY2J,EAAW,QAASE,CAAiB,CAAC,EAClK9Q,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,KAAMm9C,EAAgB,KAAK,CAAC,EAC7EvkD,EAAQ,QAAQ,cAAcoH,EAAE,QAAS,KAAM62B,EAAUj+B,EAAQ,QAAQ,cAAcoH,EAAE,OAAQ,KAAMH,EAAE,4BAA4B,CAAC,EAAMjH,EAAQ,QAAQ,cAAcoH,EAAE,sBAAuB,KAC/LpH,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,CAAE,UAAcgK,EAAkB,kBAAkByB,EAAYyjB,CAAY,CAAE,CAAC,EAC3HrvB,EAAE,kCAAkC,EACpCjH,EAAQ,QAAQ,cAAcoH,EAAE,aAAc,KAAMkvB,CAAY,EAChEiuB,EAAgB,UAAU,CAAE,CAAC,EACrCvkD,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,WAAcwJ,CAAU,EACtE5Q,EAAQ,QAAQ,cAAcoH,EAAE,QAAS,KACrCpH,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,KAAMm9C,EAAgB,OAAO,EAC1EvkD,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,KAAMm9C,EAAgB,UAAU,CAAC,EACjFvkD,EAAQ,QAAQ,cAAcoH,EAAE,QAAS,KACrC62B,EAAUj+B,EAAQ,QAAQ,cAAcoH,EAAE,OAAQ,KAAMH,EAAE,4BAA4B,CAAC,EAAMjH,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACjJA,EAAQ,QAAQ,cAAcoH,EAAE,qBAAsB,CAAE,UAAagC,CAAS,EAC1EpJ,EAAQ,QAAQ,cAAc,MAAO,KACjCA,EAAQ,QAAQ,cAAcoH,EAAE,SAAU,CAAE,UAAcgK,EAAkB,kBAAkByB,EAAYgrB,CAAmB,CAAE,CAAC,EAChI52B,EAAE,8BAA8B,EAChCjH,EAAQ,QAAQ,cAAcoH,EAAE,MAAO,KAAMy2B,CAAmB,CAAC,EACrE79B,EAAQ,QAAQ,cAAc,MAAO,KACjCA,EAAQ,QAAQ,cAAcoH,EAAE,SAAU,CAAE,UAAcgK,EAAkB,kBAAkByB,EAAYirB,CAAmB,CAAE,CAAC,EAChI72B,EAAE,8BAA8B,EAChCjH,EAAQ,QAAQ,cAAcoH,EAAE,MAAO,KAAM02B,CAAmB,CAAC,CAAC,CAAC,EAC/E99B,EAAQ,QAAQ,cAAcoH,EAAE,UAAW,KACvCm9C,EAAgB,UAChB,MACAA,EAAgB,OAAO,CAAC,CAAC,CAAC,CAC9C,EACAxkD,EAAA,QAAkBkjD,C,qCCtElB,IAAI58C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvCmN,EAAyB,EAAQ,KAA2C,EAC5EnL,EAAU,EAAQ,KAA4B,EAC9CwwB,EAA0B,EAAQ,KAA4C,EAC9E7mB,EAAmB,EAAQ,KAAqC,EAChEyI,EAAY,EAAQ,KAA8B,EAClDjS,EAA2BnJ,EAAgB,EAAQ,KAA6C,CAAC,EACjGuH,EAAIP,EAAa,EAAQ,KAA8B,CAAC,EACxD69C,EAAuB7kD,EAAgB,EAAQ,IAAsB,CAAC,EACtE8kD,EAAsB9kD,EAAgB,EAAQ,KAAqB,CAAC,EACpE+kD,EAAc,CAAC,CAAE,YAAAxiD,EAAa,SAAAM,EAAU,UAAAkO,EAAW,aAAAC,CAAc,IAAM,CACzE,MAAMwN,KAA+Bre,EAAQ,SAAS,IAAMoC,IAAgB6Y,EAAU,aAAa,MAAO,CAAC7Y,CAAW,CAAC,EACjHgH,KAAeJ,EAAyB,SAAS,EACjDu7C,KAAsB17C,EAAQ,gBAAgBwV,EAC9CrK,EAAuB,2BACvBqlB,EAAwB,2BAA2B,EACnDuE,KAAe/0B,EAAQ,gBAAgBwV,EAA2BrK,EAAuB,oBAAsBqlB,EAAwB,oBAAoB,EAC3JxmB,KAAiBhK,EAAQ,gBAAgB2J,EAAiB,gBAAgB,EAC1E1B,EAAmB,IAAMD,EAAa,CAACD,CAAS,EAChDi0C,EAAc,CAChB,gBAAAN,EACA,WAAA1xC,EACA,SAAA+qB,CACJ,EACA,OAAIx0B,EACQpJ,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,KACnDpH,EAAQ,QAAQ,cAAc2kD,EAAoB,QAAS,OAAO,OAAO,CAAC,EAAGE,EAAa,CAAE,iBAAkB/zC,EAAkB,UAAWF,EAAW,SAAUxH,CAAS,CAAC,CAAC,CAAC,EAE5KpJ,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,KACnDpH,EAAQ,QAAQ,cAAc0kD,EAAqB,QAAS,OAAO,OAAO,CAAC,EAAGG,EAAa,CAAE,yBAA0BxmC,EAA0B,SAAU3b,CAAS,CAAC,CAAC,CAAC,CAC/K,EACA3C,EAAA,QAAkBC,EAAQ,QAAQ,KAAK4kD,CAAW,C,qCC1DlD,IAAIv+C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIqF,EAAgB,MAAQ,KAAK,cAAiB,SAAS,EAAG9L,EAAS,CACnE,QAASmH,KAAK,EAAOA,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKnH,EAASmH,CAAC,GAAGb,EAAgBtG,EAAS,EAAGmH,CAAC,CAC5H,EACA,OAAO,eAAenH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D8L,EAAa,EAAQ,KAAuB,EAAG9L,CAAO,C,qCCftD,IAAIsG,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzCk8C,EAA0BjlD,EAAgB,EAAQ,KAAgD,CAAC,EACnGklD,EAAoBllD,EAAgB,EAAQ,KAA0C,CAAC,EACvFmlD,EAAmBnlD,EAAgB,EAAQ,KAAyC,CAAC,EACrFolD,EAAqBplD,EAAgB,EAAQ,KAA2C,CAAC,EACzFqlD,EAAuBrlD,EAAgB,EAAQ,KAA6C,CAAC,EAC7FslD,EAAwBtlD,EAAgB,EAAQ,KAA8C,CAAC,EAC/Fqb,EAAe,EAAQ,KAA8B,EACrD3C,EAAqB,EAAQ,KAAoC,EACjEnR,EAAIP,EAAa,EAAQ,KAA4B,CAAC,EACtDu+C,EAAoB,CAAC,CAAE,YAAAC,EAAa,WAAAC,EAAY,WAAAC,EAAY,eAAAC,EAAgB,YAAAC,EAAa,UAAAC,CAAW,IAAM,CAC5G,KAAM,CAAE,EAAAz+C,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5C,CAAC+8C,EAAWC,CAAY,KAAQ5lD,EAAQ,UAAU,EAAK,EACvD,CAAE,oBAAAub,CAAoB,KAAQhD,EAAmB,cAAc,EAC/DstC,EAActqC,IAAwBL,EAAa,aAAa,iBAElElb,EAAQ,WAAW,IAAM,CACzB,IAAIguC,EACJ,OAAI2X,IACA3X,EAAa,YAAY,IAAM,CACvBqX,EAAcC,EAAa,EAC3BC,EAAW,EAGXK,EAAa,EAAK,CAE1B,EAAG,GAAG,GAEH,IAAM,CACL5X,GACA,cAAcA,CAAU,CAChC,CACJ,EAAG,CAAC2X,EAAWN,EAAaC,EAAYC,CAAU,CAAC,KAC/CvlD,EAAQ,WAAW,IAAM,CACrB6lD,GACAD,EAAa,EAAI,CAEzB,EAAG,CAACC,CAAW,CAAC,EAChB,MAAMC,KAAsB9lD,EAAQ,aAAa,IAAM,CACnD4lD,EAAcjI,GAAS,CAACA,CAAI,CAChC,EAAG,CAAC,CAAC,EACL,OAAQ39C,EAAQ,QAAQ,cAAcoH,EAAE,2BAA4B,KAChEpH,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,CAAE,QAASq+C,EAAa,SAAUJ,IAAgB,CAAE,EAClGrlD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKilD,EAAmB,QAAS,IAAKh+C,EAAE,qBAAqB,CAAE,CAAC,CAAC,EAC5GjH,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,CAAE,QAASo+C,EAAgB,SAAUH,IAAgB,CAAE,EACrGrlD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKklD,EAAqB,QAAS,IAAKj+C,EAAE,uBAAuB,CAAE,CAAC,CAAC,EAChHjH,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,CAAE,QAAS0+C,CAAgB,EACzE9lD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAK2lD,EAAYZ,EAAkB,QAAUC,EAAiB,QAAS,IAAK/9C,EAAE,mBAAmB,CAAE,CAAC,CAAC,EAChJjH,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,CAAE,QAASm+C,EAAY,SAAUF,IAAgBC,EAAa,CAAE,EAC9GtlD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKmlD,EAAsB,QAAS,IAAKl+C,EAAE,wBAAwB,CAAE,CAAC,CAAC,EAClHjH,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,CAAE,QAASs+C,EAAW,SAAUL,IAAgBC,EAAa,CAAE,EAC7GtlD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAK8kD,EAAwB,QAAS,IAAK79C,EAAE,0BAA0B,CAAE,CAAC,CAAC,CAAC,CAC/H,EACAlH,EAAA,QAAkBqlD,C,oCCjFlB,IAAI/+C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAM6N,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CG,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvCkH,EAAe,EAAQ,IAA8B,EACrD/E,EAA2BnJ,EAAgB,EAAQ,KAA0C,CAAC,EAC9FuH,EAAIP,EAAa,EAAQ,KAA4B,CAAC,EACtDk/C,EAAW,CAAC,CAAE,YAAAV,EAAa,WAAAC,EAAY,WAAAU,EAAY,aAAAC,CAAc,IAAM,CACzE,MAAM78C,KAAeJ,EAAyB,SAAS,GAAG,EACpDk9C,KAAqBlmD,EAAQ,QAAQ,IAAI,EACzC,CAAC6+B,EAAYsnB,CAAa,KAAQnmD,EAAQ,UAAU,EAAK,EACzD,CAAComD,EAAcC,CAAe,KAAQrmD,EAAQ,UAAU,IAAI,EAC5DsmD,KAAyBtmD,EAAQ,SAAS,KAC/B6+B,GAAcunB,IAAiB,KAAOA,EAAef,IAClDC,EAAa,GAAM,IACpC,CAACD,EAAaC,EAAYzmB,EAAYunB,CAAY,CAAC,EAChDG,KAAgCvmD,EAAQ,aAAcwmD,GAAY,CACpE,GAAI,CAACN,EAAe,QAChB,MAAO,GACX,MAAMO,EAAkBP,EAAe,QAAQ,sBAAsB,EAE/DQ,GADmBF,EAAUC,EAAgB,MACZA,EAAgB,MAAS,IAC1DE,EAAc,KAAK,MAAOD,EAAa,KAAQpB,EAAa,EAAE,EACpE,OAAO,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAa,EAAGqB,CAAW,CAAC,CAC5D,EAAG,CAACrB,CAAU,CAAC,EACTx7C,KAAkB9J,EAAQ,aAAcL,GAAM,CAChD,IAAI6mD,EACA,YAAa7mD,EACb6mD,EAAU7mD,EAAE,QAAQ,CAAC,EAAE,QAGvB6mD,EAAU7mD,EAAE,QAEhB,MAAMgnD,EAAcJ,EAA0BC,CAAO,EACrDP,EAAaU,CAAW,CAC5B,EAAG,CAACJ,EAA2BN,CAAY,CAAC,EACtCW,KAAkB5mD,EAAQ,aAAc4jB,GAAU,CACpDA,EAAM,eAAe,EACrBA,EAAM,OAAO,kBAAkBA,EAAM,SAAS,EAC9CuiC,EAAc,EAAI,CACtB,EAAG,CAAC,CAAC,EACCU,KAAiB7mD,EAAQ,aAAcL,GAAM,CAC/C,GAAI,CAACk/B,EACD,OACJl/B,EAAE,eAAe,EACjB,MAAM6mD,EAAU7mD,EAAE,QACZgnD,EAAcJ,EAA0BC,CAAO,EACrDH,EAAgBM,CAAW,EAC3BV,EAAaU,CAAW,CAC5B,EAAG,CAAC9nB,EAAY0nB,EAA2BN,CAAY,CAAC,EAClDjgB,KAAgBhmC,EAAQ,aAAc4jB,GAAU,CAClDA,EAAM,eAAe,EACjBib,GAAcunB,IAAiB,MAC/BH,EAAaG,CAAY,EAE7BxiC,EAAM,OAAO,sBAAsBA,EAAM,SAAS,EAClDuiC,EAAc,EAAK,EACnBE,EAAgB,IAAI,CACxB,EAAG,CAACxnB,EAAYunB,EAAcH,CAAY,CAAC,EACrCa,KAAuB9mD,EAAQ,aAAcL,GAAM,CACrDA,EAAE,eAAe,EACjBwmD,EAAc,EAAI,CACtB,EAAG,CAAC,CAAC,EACCY,KAAsB/mD,EAAQ,aAAcL,GAAM,CACpD,GAAKk/B,IAELl/B,EAAE,eAAe,EACbA,EAAE,QAAQ,OAAS,GAAG,CACtB,MAAM6mD,EAAU7mD,EAAE,QAAQ,CAAC,EAAE,QACvBgnD,EAAcJ,EAA0BC,CAAO,EACrDH,EAAgBM,CAAW,EAC3BV,EAAaU,CAAW,CAC5B,CACJ,EAAG,CAAC9nB,EAAY0nB,EAA2BN,CAAY,CAAC,EAClDe,KAAqBhnD,EAAQ,aAAa,IAAM,CAC9C6+B,GAAcunB,IAAiB,MAC/BH,EAAaG,CAAY,EAE7BD,EAAc,EAAK,EACnBE,EAAgB,IAAI,CACxB,EAAG,CAACxnB,EAAYunB,EAAcH,CAAY,CAAC,KACvCjmD,EAAQ,WAAW,KACf6+B,EACIz1B,GACA,SAAS,iBAAiB,YAAa29C,EAAiB,CACpD,QAAS,EACb,CAAC,EACD,SAAS,iBAAiB,WAAYC,CAAc,IAGpD,OAAO,iBAAiB,cAAeH,EAAY,CAC/C,QAAS,EACb,CAAC,EACD,OAAO,iBAAiB,YAAa7gB,CAAS,GAI9C58B,GACA,SAAS,oBAAoB,YAAa29C,CAAe,EACzD,SAAS,oBAAoB,WAAYC,CAAc,IAGvD,OAAO,oBAAoB,cAAeH,CAAU,EACpD,OAAO,oBAAoB,YAAa7gB,CAAS,GAGlD,IAAM,CACL58B,GACA,SAAS,oBAAoB,YAAa29C,CAAe,EACzD,SAAS,oBAAoB,WAAYC,CAAc,IAGvD,OAAO,oBAAoB,cAAeH,CAAU,EACpD,OAAO,oBAAoB,YAAa7gB,CAAS,EAEzD,GACD,CACCnH,EACAz1B,EACA29C,EACAC,EACAH,EACA7gB,CACJ,CAAC,EACD,MAAM8G,EAAmBkZ,EAAWX,CAAW,EACzC4B,KAAkBjnD,EAAQ,SAAS,OAC1B4N,EAAS,SAASk/B,EAAkB/+B,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,EAAE,EACvH,CAAC++B,CAAgB,CAAC,EACfoa,KAAkBlnD,EAAQ,SAAS,OAC1B4N,EAAS,SAASk/B,EAAkB/+B,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,IAAI,EACzH,CAAC++B,CAAgB,CAAC,EACfqa,EAAiBnB,EAAW,CAAC,EAC7BoB,EAAgBpB,EAAWA,EAAW,OAAS,CAAC,EAChDqB,KAAyBrnD,EAAQ,SAAS,OACjC4N,EAAS,SAASu5C,EAAgBp5C,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,IAAI,EACvH,CAACo5C,CAAc,CAAC,EACbG,KAAyBtnD,EAAQ,SAAS,OACjC4N,EAAS,SAASu5C,EAAgBp5C,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,eAAe,EAClI,CAACo5C,CAAc,CAAC,EACbI,KAAwBvnD,EAAQ,SAAS,OAChC4N,EAAS,SAASw5C,EAAer5C,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,IAAI,EACtH,CAACq5C,CAAa,CAAC,EACZI,KAAwBxnD,EAAQ,SAAS,OAChC4N,EAAS,SAASw5C,EAAer5C,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,eAAe,EACjI,CAACq5C,CAAa,CAAC,EACZK,EAAgBptC,GAAU,CAC5B,MAAMqtC,EAAgBrtC,GAASirC,EAAa,GAAM,IAElD,OAAOgB,GAAsBoB,EADd,EAEnB,EACA,OAAQ1nD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAAOoJ,EAgBMpJ,EAAQ,QAAQ,cAAcoH,EAAE,oBAAqB,KAC9HpH,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,CAAE,IAAK8+C,EAAgB,UAAW,eAAgB,aAAevmD,GAAM,CAC5GA,EAAE,eAAe,EACjBmK,EAAYnK,CAAC,CACjB,EAAG,cAAeinD,CAAY,EAC9B5mD,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,MAAO,CAAE,MAAO,GAAGk/C,CAAkB,GAAI,EAAG,YAAeznB,CAAW,CAAC,EACzH7+B,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,CAAE,UAAak/C,EAAoB,aAAcQ,EAAkB,cAAeF,EAAa,YAAe/nB,CAAW,CAAC,EACvK7+B,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,KAAM4+C,EAAW,IAAI,CAACnI,EAAGxjC,IAAU,CAC5E,MAAMgsB,EAAYhsB,GAASirC,EAAa,GAAM,IAC9C,OAAQtlD,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,CAAE,IAAKiT,EAAO,UAAaotC,EAAaptC,CAAK,EAAG,WAAcA,IAAUgrC,EAAa,UAAahf,EAAU,YAAexH,CAAW,CAAC,CAC/L,CAAC,CAAC,CAAC,CAAC,EA1BuE7+B,EAAQ,QAAQ,cAAcoH,EAAE,qBAAsB,KACrIpH,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,KAC3CpH,EAAQ,QAAQ,cAAcoH,EAAE,KAAM,KAAMigD,CAAkB,EAC9DrnD,EAAQ,QAAQ,cAAcoH,EAAE,KAAM,KAAMkgD,CAAkB,CAAC,EACnEtnD,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,CAAE,IAAK8+C,EAAgB,YAAap8C,EAAa,aAAcA,EAAa,cAAeA,CAAY,EAChJ9J,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,MAAO,CAAE,MAAO,GAAGk/C,CAAkB,GAAI,EAAG,YAAeznB,CAAW,CAAC,EACzH7+B,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,CAAE,UAAak/C,EAAoB,YAAeznB,EAAY,cAAe+nB,CAAY,EAClI5mD,EAAQ,QAAQ,cAAcoH,EAAE,QAAS,KACrCpH,EAAQ,QAAQ,cAAc,OAAQ,KAAMknD,CAAW,EACvDlnD,EAAQ,QAAQ,cAAc,OAAQ,KAAMinD,CAAW,CAAC,CAAC,EACjEjnD,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,KAAM4+C,EAAW,IAAI,CAACnI,EAAGxjC,IAAU,CAC5E,MAAMgsB,EAAYhsB,GAASirC,EAAa,GAAM,IAC9C,OAAQtlD,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,CAAE,IAAKiT,EAAO,UAAaotC,EAAaptC,CAAK,EAAG,WAAcA,IAAUgrC,EAAa,YAAexmB,EAAY,UAAawH,CAAS,CAAC,CAC/L,CAAC,CAAC,CAAC,EACPrmC,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,KAC3CpH,EAAQ,QAAQ,cAAcoH,EAAE,KAAM,KAAMmgD,CAAiB,EAC7DvnD,EAAQ,QAAQ,cAAcoH,EAAE,KAAM,KAAMogD,CAAiB,CAAC,CAAC,CAUzD,CAClB,EACAznD,EAAA,QAAkBgmD,C,qCC3MlB,IAAI1/C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzCC,EAAU,EAAQ,KAAyB,EAC3CmhC,EAAuB,EAAQ,KAAsC,EACrEC,EAAmB,EAAQ,KAAkC,EAC7D0d,EAAc,EAAQ,KAA6B,EACnDvgD,EAAIP,EAAa,EAAQ,KAA4B,CAAC,EACtD+gD,EAAmB,IAAM,CAC3B,MAAMtrB,KAAgBzzB,EAAQ,gBAAgBmhC,EAAqB,wBAAwB,EACrF,CAAE,EAAA/iC,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CS,KAAeR,EAAQ,gBAAgB,EACvCg/C,EAAqBvrB,GAAc,CACrCjzB,KAAa4gC,EAAiB,uBAAuB3N,CAAS,CAAC,CACnE,EACA,OAAQt8B,EAAQ,QAAQ,cAAcoH,EAAE,0BAA2B,KAC/DpH,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,KAAMH,EAAE,2BAA2B,CAAC,EACpFjH,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,CAAE,UAAak1B,IAAcqrB,EAAY,WAAW,SAAU,QAAS,IAAME,EAAkBF,EAAY,WAAW,QAAQ,CAAE,EAAG1gD,EAAE,6BAA6B,CAAC,EACpNjH,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,CAAE,UAAak1B,IAAcqrB,EAAY,WAAW,OAAQ,QAAS,IAAME,EAAkBF,EAAY,WAAW,MAAM,CAAE,EAAG1gD,EAAE,2BAA2B,CAAC,EAC9MjH,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,CAAE,UAAak1B,IAAcqrB,EAAY,WAAW,OAAQ,QAAS,IAAME,EAAkBF,EAAY,WAAW,MAAM,CAAE,EAAG1gD,EAAE,2BAA2B,CAAC,CAAC,CACvN,EACAlH,EAAA,QAAkB6nD,C,qCC/ClB,IAAI/nD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,QAAUA,EAAQ,QAAUA,EAAQ,eAAiBA,EAAQ,0BAA4BA,EAAQ,gBAAkBA,EAAQ,eAAiBA,EAAQ,kBAAoBA,EAAQ,KAAOA,EAAQ,YAAcA,EAAQ,WAAaA,EAAQ,WAAaA,EAAQ,YAAcA,EAAQ,eAAiBA,EAAQ,YAAcA,EAAQ,2BAA6BA,EAAQ,iBAAmBA,EAAQ,oBAAsBA,EAAQ,oBAAsBA,EAAQ,qBAAuBA,EAAQ,cAAgBA,EAAQ,KAAOA,EAAQ,cAAgBA,EAAQ,UAAY,OACljB,MAAMkkB,EAAkBpkB,EAAgB,EAAQ,KAAe,CAAC,EAC1DkG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEmG,EAAW,EAAQ,KAAkC,EACrD0C,EAAU,EAAQ,KAAyB,EAC3Co/C,KAAqB/hD,EAAoB,SAASke,EAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAkBlEvb,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvC3I,EAAQ,eAAiB+nD,EACzB,MAAMnF,EAAgB58C,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAWvC2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAM1BA,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhC3I,EAAQ,cAAgB4iD,EACxB,MAAMx+B,KAAiBpe,EAAoB,SAASke,EAAgB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAQnDje,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,kCAKJA,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlDjG,EAAQ,WAAaokB,EACrB,MAAM4jC,EAAYhiD,EAAoB,QAAQ;AAAA;AAAA,WAEnCC,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOhB0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,UAAYgoD,EACpB,MAAM34B,EAAUrpB,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,WAKjC2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,QAAUqvB,EAClB,MAAM44B,EAAoBjiD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMhCC,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA,gCAIJA,EAAS,OAAO;AAAA,WACrC0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASrC3I,EAAQ,kBAAoBioD,EAC5B,MAAMC,EAAmBliD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKrDhG,EAAQ,iBAAmBkoD,EAC3B,MAAMC,EAA6BniD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMpD2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKrC3I,EAAQ,2BAA6BmoD,EACrC,MAAMC,EAAuBpiD,EAAoB,QAAQ;AAAA;AAAA,WAE9C2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrC3I,EAAQ,qBAAuBooD,EAC/B,MAAMC,EAAsBriD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQ7C2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,oBAAsBqoD,EAC9B,MAAMC,EAActiD,EAAoB,QAAQ;AAAA;AAAA;AAAA,sBAG1BC,EAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQ3B0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKrC3I,EAAQ,YAAcsoD,EACtB,MAAMC,EAAiBviD,EAAoB,QAAQ;AAAA;AAAA,sBAE7BC,EAAS,MAAM;AAAA;AAAA,sBAEf,CAAC,CAAE,YAAAuiD,CAAY,IAAOA,EAAc,QAAU,MAAO;AAAA;AAAA;AAAA,WAGhE7/C,EAAQ,MAAM,YAAY;AAAA;AAAA,wBAEb1C,EAAS,MAAM;AAAA;AAAA;AAAA;AAAA,EAKvCjG,EAAQ,eAAiBuoD,EACzB,MAAME,EAAcziD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOrC2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrC3I,EAAQ,YAAcyoD,EACtB,MAAMC,EAAa1iD,EAAoB,QAAQ;AAAA,UACrC,CAAC,CAAE,UAAA2iD,CAAU,IAAM,GAAGA,CAAS,GAAG;AAAA;AAAA;AAAA;AAAA,sBAItB,CAAC,CAAE,UAAAj4B,CAAU,IAAOA,EAAYzqB,EAAS,OAASA,EAAS,KAAM;AAAA;AAAA;AAAA,MAGjF,CAAC,CAAE,YAAAuiD,CAAY,IAAOA,EAAc,QAAU,MAAO;AAAA,WAChD7/C,EAAQ,MAAM,YAAY;AAAA;AAAA,wBAEb,CAAC,CAAE,UAAA+nB,CAAU,IAAOA,EAAYzqB,EAAS,OAASA,EAAS,OAAQ;AAAA;AAAA,EAG3FjG,EAAQ,WAAa0oD,EACrB,MAAME,EAAgB5iD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,WAKvCC,EAAS,OAAO;AAAA;AAAA;AAAA,EAI3BjG,EAAQ,cAAgB4oD,EACxB,MAAMC,EAAsB7iD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKlCC,EAAS,UAAU;AAAA;AAAA,WAE9BA,EAAS,MAAM;AAAA;AAAA;AAAA;AAAA,WAIf0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,oBAAsB6oD,EAC9B,MAAM9vB,EAAO/yB,EAAoB,QAAQ;AAAA;AAAA,WAE9B2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKrC3I,EAAQ,KAAO+4B,EACf,MAAMD,EAAO9yB,EAAoB,QAAQ;AAAA;AAAA;AAAA,WAG9B2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKrC3I,EAAQ,KAAO84B,EACf,MAAMgwB,EAAc9iD,EAAoB,QAAQ;AAAA;AAAA;AAAA,UAGtC,CAAC,CAAE,UAAA2iD,CAAU,IAAM,GAAGA,CAAS,GAAG;AAAA;AAAA;AAAA,sBAGtB1iD,EAAS,MAAM;AAAA;AAAA;AAAA,qBAGhB,CAAC,CAAE,YAAAuiD,CAAY,IAAOA,EAAc,QAAU,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQ/D7/C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,EAIrC3I,EAAQ,YAAc8oD,EACtB,MAAMC,EAAU/iD,EAAoB,QAAQ;AAAA;AAAA,sBAEtBC,EAAS,MAAM;AAAA,WAC1BA,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAqBLA,EAAS,MAAM;AAAA;AAAA,EAGnCjG,EAAQ,QAAU+oD,EAClB,MAAMC,EAA4BhjD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQnD2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,wBAKb1C,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtCjG,EAAQ,0BAA4BgpD,EACpC,MAAMC,EAAkBjjD,EAAoB,QAAQ;AAAA;AAAA;AAAA,sBAG9BC,EAAS,KAAK;AAAA,WACzB,CAAC,CAAE,UAAAyqB,CAAU,IAAOA,EAAYzqB,EAAS,OAASA,EAAS,OAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WASnE0C,EAAQ,MAAM,YAAY;AAAA,wBACb,CAAC,CAAE,UAAA+nB,CAAU,IAAOA,EAAYzqB,EAAS,OAASA,EAAS,KAAM;AAAA,aAC5E,CAAC,CAAE,UAAAyqB,CAAU,IAAOA,EAAYzqB,EAAS,MAAQA,EAAS,OAAQ;AAAA;AAAA,0BAErDA,EAAS,MAAM;AAAA,eAC1BA,EAAS,KAAK;AAAA;AAAA;AAAA,EAI7BjG,EAAQ,gBAAkBipD,EAC1B,MAAMC,EAAiBljD,EAAoB,QAAQ;AAAA;AAAA,WAExC2C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,aAGxB1C,EAAS,OAAO;AAAA;AAAA,EAG7BjG,EAAQ,eAAiBkpD,C,qCCvXzB,IAAI5iD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqB,OAC7B,MAAM6N,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CG,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzCsgD,EAA6BrpD,EAAgB,EAAQ,KAAmD,CAAC,EACzGgJ,EAAU,EAAQ,KAAyB,EAC3CohC,EAAmB,EAAQ,KAAkC,EAC7Dl8B,EAAe,EAAQ,IAA8B,EACrDi8B,EAAuB,EAAQ,KAAsC,EACrEmf,EAAwB,EAAQ,KAAuC,EACvE9nC,EAAwB,EAAQ,IAAuC,EACvE+nC,EAAsBvpD,EAAgB,EAAQ,KAAqB,CAAC,EACpEwpD,EAAaxpD,EAAgB,EAAQ,IAAY,CAAC,EAClDuH,EAAIP,EAAa,EAAQ,KAA4B,CAAC,EACtDyiD,EAAqBzpD,EAAgB,EAAQ,KAAoB,CAAC,EAClE0pD,EAAqBvpD,EAAQ,QAAQ,KAAK,CAAC,CAAE,QAAA6hB,CAAQ,IAAM,CAC7D,KAAM,CAAC2nC,EAAmBC,CAAoB,KAAQzpD,EAAQ,UAAU,EAAK,EACvE,CAACqlD,EAAaqE,CAAc,KAAQ1pD,EAAQ,UAAU,CAAC,EACvD6M,KAAgBhE,EAAQ,gBAAgBmhC,EAAqB,wBAAwB,EACrF2f,KAAqB9gD,EAAQ,gBAAgBmhC,EAAqB,mBAAmB,EACrF1N,KAAgBzzB,EAAQ,gBAAgBmhC,EAAqB,wBAAwB,EACrF0K,KAAiB10C,EAAQ,QAAQ,IAAI,EACrCqJ,KAAeR,EAAQ,gBAAgB,EACvC,CAAE,EAAA5B,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CghD,KAAqB5pD,EAAQ,aAAa,IAAM,CAClD0pD,EAAe,CAAC,EAChBrgD,KAAa4gC,EAAiB,qBAAqB,EAAE,CAAC,CAC1D,EAAG,CAAC5gC,CAAQ,CAAC,EACPwgD,KAAyB7pD,EAAQ,SAAS,OACjCmpD,EAAsB,kBAAkBQ,EAAgBrtB,CAAS,EAC7E,CAACqtB,EAAgBrtB,CAAS,CAAC,KAC1Bt8B,EAAQ,WAAW,IAAM,CACzB0pD,EAAe,CAAC,EACZG,EAAmB,OAAS,GAC5BxgD,KAAa4gC,EAAiB,qBAAqB4f,EAAmB,CAAC,CAAC,CAAC,CAEjF,EAAG,CAACvtB,EAAWutB,EAAoBxgD,CAAQ,CAAC,EAC5C,MAAM+6C,KAAmBpkD,EAAQ,aAAa,IAAM,CAChD4pD,EAAe,EACf/nC,EAAQ,CACZ,EAAG,CAACA,EAAS+nC,CAAc,CAAC,EACtBE,KAAqB9pD,EAAQ,aAAa,IAAM,CAClD,GAAIqlD,EAAcwE,EAAmB,OAAS,EAAG,CAC7C,MAAME,EAAW1E,EAAc,EAC/BqE,EAAeK,CAAQ,EACvB1gD,KAAa4gC,EAAiB,qBAAqB4f,EAAmBE,CAAQ,CAAC,CAAC,CACpF,CACJ,EAAG,CAAC1E,EAAawE,EAAoBxgD,CAAQ,CAAC,EACxC2gD,KAAyBhqD,EAAQ,aAAa,IAAM,CACtD,GAAIqlD,EAAc,EAAG,CACjB,MAAM4E,EAAW5E,EAAc,EAC/BqE,EAAeO,CAAQ,EACvB5gD,KAAa4gC,EAAiB,qBAAqB4f,EAAmBI,CAAQ,CAAC,CAAC,CACpF,CACJ,EAAG,CAAC5E,EAAawE,EAAoBxgD,CAAQ,CAAC,EACxC6gD,KAAsBlqD,EAAQ,aAAa,IAAM,CACnD0pD,EAAe,CAAC,EAChBrgD,KAAa4gC,EAAiB,qBAAqB4f,EAAmB,CAAC,CAAC,CAAC,CAC7E,EAAG,CAACA,EAAoBxgD,CAAQ,CAAC,EAC3B8gD,KAAoBnqD,EAAQ,aAAa,IAAM,CACjD,MAAMoqD,EAAYP,EAAmB,OAAS,EAC9CH,EAAeU,CAAS,EACxB/gD,KAAa4gC,EAAiB,qBAAqB4f,EAAmBO,CAAS,CAAC,CAAC,CACrF,EAAG,CAACP,EAAoBxgD,CAAQ,CAAC,EAC3BghD,KAAuBrqD,EAAQ,aAAcsqD,GAAY,CAC3DZ,EAAeY,CAAO,EACtBjhD,KAAa4gC,EAAiB,qBAAqB4f,EAAmBS,CAAO,CAAC,CAAC,CACnF,EAAG,CAACT,EAAoBxgD,CAAQ,CAAC,EAC3BkhD,KAAyBvqD,EAAQ,aAAc4jB,GAAU,CAE3D,MAAM4mC,EADgB5mC,EAAM,OACM,QAAQ,iBAAiB,EACvD8wB,EAAW,SACX,CAACA,EAAW,QAAQ,SAAS9wB,EAAM,MAAM,GACzC,CAAC4mC,GACDf,EAAqB,EAAI,CAEjC,EAAG,CAAC/U,CAAU,CAAC,KACXrzB,EAAsB,qBAAqBmoC,EAAmBC,CAAoB,KAClFzpD,EAAQ,WAAW,KACnB,SAAS,iBAAiB,YAAauqD,CAAkB,EAClD,IAAM,CACT,SAAS,oBAAoB,YAAaA,CAAkB,CAChE,GACD,CAACA,CAAkB,CAAC,KACnBvqD,EAAQ,WAAW,IACZ,IAAM,CAETqJ,KAAa4gC,EAAiB,qBAAqB,EAAE,CAAC,CAC1D,EACD,CAAC5gC,CAAQ,CAAC,EACb,MAAMyjC,EAAmB+c,EAAmBxE,CAAW,EACjD4B,KAAkBr5C,EAAS,SAASk/B,EAAkB/+B,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,eAAe,EAC1Im5C,KAAkBt5C,EAAS,SAASk/B,EAAkB/+B,EAAa,WAAW,YAAY,EAAE,OAAOA,EAAa,WAAW,IAAI,EACrI,OAAQ/N,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAC5D,CAAC6M,GAAc7M,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,KAAM,GAAM,MAAO,GAAM,OAAQ,GAAM,aAAc,CAAE,OAAQ,EAAG,OAAQ,CAAE,EAAG,aAAc,CAAE,OAAQ,CAAE,EAAG,QAASg9C,EAAc,qBAAsB,EAAM,EAC5NpkD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAK00C,CAAW,EACnD10C,EAAQ,QAAQ,cAAcoH,EAAE,kBAAmB,KAC/CpH,EAAQ,QAAQ,cAAcoH,EAAE,oBAAqB,KACjDpH,EAAQ,QAAQ,cAAcoH,EAAE,KAAM,KAAM6/C,CAAW,EACvDjnD,EAAQ,QAAQ,cAAcoH,EAAE,KAAM,KAAM8/C,CAAW,CAAC,EAC5DlnD,EAAQ,QAAQ,cAAcopD,EAAoB,QAAS,CAAE,YAAa/D,EAAa,WAAYwE,EAAmB,OAAQ,WAAYC,EAAgB,eAAgBE,EAAoB,YAAaE,EAAiB,UAAWC,CAAc,CAAC,EACtPnqD,EAAQ,QAAQ,cAAcqpD,EAAW,QAAS,CAAE,YAAahE,EAAa,WAAYwE,EAAmB,OAAQ,WAAYA,EAAoB,aAAcQ,CAAiB,CAAC,CAAC,EAC1LrqD,EAAQ,QAAQ,cAAcspD,EAAmB,QAAS,IAAI,EAC9DtpD,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,CAAE,QAASg9C,CAAa,EACnEpkD,EAAQ,QAAQ,cAAc,MAAO,CAAE,IAAKkpD,EAA2B,QAAS,IAAKjiD,EAAE,iBAAiB,CAAE,CAAC,CAAC,CAAC,CAAC,EAC1HuiD,GAAsBxpD,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,CAAE,KAAM,EAAK,EAC3EpH,EAAQ,QAAQ,cAAcoH,EAAE,UAAW,KAAMH,EAAE,oBAAoB,CAAC,CAAC,CAAE,CACvF,CAAC,EACDlH,EAAQ,mBAAqBwpD,C,qCCvI7B,IAAIljD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIqF,EAAgB,MAAQ,KAAK,cAAiB,SAAS,EAAG9L,EAAS,CACnE,QAASmH,KAAK,EAAOA,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKnH,EAASmH,CAAC,GAAGb,EAAgBtG,EAAS,EAAGmH,CAAC,CAC5H,EACA,OAAO,eAAenH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D8L,EAAa,EAAQ,KAAsB,EAAG9L,CAAO,C,qCCfrD,IAAIF,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,oBAAsB,OAC9B,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1CkG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEmK,EAAe,EAAQ,KAA2B,EAClDygD,EAAmB1kD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO/C2kD,EAAsB,CAAC,CAAE,QAAAxpC,CAAS,IAC5BlhB,EAAQ,QAAQ,cAAcyqD,EAAkB,KACpDzqD,EAAQ,QAAQ,cAAcgK,EAAa,GAAI,KAAMkX,CAAO,CAAC,EAErEnhB,EAAQ,oBAAsB2qD,C,qCCnB9B,IAAI7qD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkBA,EAAQ,WAAa,OAC/C,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzC7C,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEmG,EAAW,EAAQ,KAAkC,EACrD2c,EAAiB,EAAQ,KAAiB,EAC1CgoC,EAAa,CAAC,CAAE,cAAAvnC,EAAe,MAAA9R,EAAO,SAAAtJ,EAAU,KAAAzF,EAAM,KAAA+wB,CAAM,IAAM,CACpE,KAAM,CAAE,EAAArsB,CAAE,KAAQ2B,EAAgB,gBAAgB,EAClD,OAAQ5I,EAAQ,QAAQ,cAAc2iB,EAAe,UAAW,CAAE,KAAM2Q,EAAM,KAAM/wB,EAAM,IAAK6gB,EAAe,MAAO9R,EAAO,SAAUtJ,EAAU,YAAaf,EAAE,kCAAkC,CAAE,CAAC,CACxM,EACAlH,EAAQ,WAAa4qD,EACrB,MAAMC,EAAkB7kD,EAAoB,QAAQ;AAAA,WACzCC,EAAS,MAAM;AAAA,EAE1BjG,EAAQ,gBAAkB6qD,C,qCClB1B,IAAI/qD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkB,OAC1B,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzC5C,EAAW,EAAQ,KAAqC,EACxD6kD,EAAkB,CAAC,CAAE,MAAA5a,EAAQjqC,EAAS,QAAS,MAAAwC,EAAQ,GAAI,OAAA+pC,EAAS,EAAI,IAAM,CAChF,KAAM,CAAE,EAAAtrC,CAAE,KAAQ2B,EAAgB,gBAAgB,EAClD,OAAQ5I,EAAQ,QAAQ,cAAc,MAAO,CAAE,MAAOwI,EAAO,OAAQ+pC,EAAQ,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,aAActrC,EAAE,sCAAsC,CAAE,EAC1MjH,EAAQ,QAAQ,cAAc,OAAQ,CAAE,EAAG,2HAA4H,OAAQiwC,EAAO,YAAa,MAAO,cAAe,QAAS,eAAgB,OAAQ,CAAC,CAAC,CACpQ,EACAlwC,EAAQ,gBAAkB8qD,C,qCCb1B,IAAIhrD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,wBAA0B,OAElC,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzC5C,EAAW,EAAQ,KAAqC,EACxD8kD,EAA0B,CAAC,CAAE,MAAA7a,EAAQjqC,EAAS,QAAS,MAAAwC,EAAQ,GAAI,OAAA+pC,EAAS,EAAI,IAAM,CACxF,KAAM,CAAE,EAAAtrC,CAAE,KAAQ2B,EAAgB,gBAAgB,EAClD,OAAQ5I,EAAQ,QAAQ,cAAc,MAAO,CAAE,MAAOwI,EAAO,OAAQ+pC,EAAQ,QAAS,YAAa,KAAM,OAAQ,MAAO,6BAA8B,aAActrC,EAAE,8CAA8C,CAAE,EAClNjH,EAAQ,QAAQ,cAAc,OAAQ,CAAE,EAAG,oDAAqD,OAAQiwC,EAAO,YAAa,MAAO,cAAe,QAAS,eAAgB,OAAQ,CAAC,EACpLjwC,EAAQ,QAAQ,cAAc,OAAQ,CAAE,EAAG,gDAAiD,OAAQiwC,EAAO,YAAa,MAAO,cAAe,QAAS,eAAgB,OAAQ,CAAC,CAAC,CACzL,EACAlwC,EAAQ,wBAA0B+qD,C,qCCflC,IAAIjrD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,YAAc,OACtB,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzCC,EAAU,EAAQ,KAAyB,EAC3C2J,EAAmB,EAAQ,KAAkC,EAC7Du4C,EAAoB,EAAQ,KAAyB,EACrD3hB,EAAoB,EAAQ,KAAmB,EAC/C4hB,EAAc,CAAC,CAAE,QAAA1/C,EAAU89B,EAAkB,uBAAuB,SAAU,gBAAA6hB,EAAiB,qBAAAC,EAAuB,GAAO,gBAAAC,EAAkB,EAAO,IAAM,CAC9J,KAAM,CAAE,EAAAlkD,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CS,KAAeR,EAAQ,gBAAgB,EACvCuiD,EAAyBnkD,EAAE,0CAA0C,EACrEokD,EAAuBJ,GAAmBG,EAC1CE,EAAkB,IAAM,CAC1BjiD,KAAamJ,EAAiB,qBAAqB,CAAC,CACxD,EACA,OAAQxS,EAAQ,QAAQ,cAAcopC,EAAkB,gBAAiB,CAAE,QAAS99B,EAAS,WAAY+/C,EAAsB,qBAAsBH,EAAsB,gBAAiBC,EAAiB,cAAeJ,EAAkB,gBAAiB,QAASO,CAAgB,CAAC,CAC7R,EACAvrD,EAAQ,YAAcirD,C,qCCrBtB,IAAI3kD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACA,OAAO,eAAe/G,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,uBAAyBA,EAAQ,gBAAkB,OAC3D,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvCqJ,EAASrJ,EAAa,EAAQ,KAAkC,CAAC,EACjEO,EAAIP,EAAa,EAAQ,KAAkC,CAAC,EAClE,IAAI0kD,GACH,SAAUA,EAAwB,CAC/BA,EAAuB,SAAc,WACrCA,EAAuB,aAAkB,cAC7C,GAAGA,IAA2BxrD,EAAQ,uBAAyBwrD,EAAyB,CAAC,EAAE,EAC3F,MAAMC,EAAkB,CAAC,CAAE,QAAAlgD,EAAUigD,EAAuB,SAAU,WAAAE,EAAY,qBAAAP,EAAuB,GAAO,gBAAAC,EAAkB,GAAO,cAAAO,EAAe,QAAAjhD,CAAS,IAAM,CACnK,MAAMkhD,EAAYR,EAAkBj7C,EAAO,SAAW,OAChD07C,EAAkBT,EAAkBj7C,EAAO,SAAWA,EAAO,QAC7D27C,KAAoB7rD,EAAQ,SAAS,IACnCsL,IAAYigD,EAAuB,aAC3BvrD,EAAQ,QAAQ,cAAcoH,EAAE,uBAAwB,KAAM8jD,EAAwBlrD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAClJyrD,EACAzrD,EAAQ,QAAQ,cAAc0rD,EAAe,CAAE,MAAOC,CAAU,CAAC,CAAC,EAAM3rD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAChIA,EAAQ,QAAQ,cAAc0rD,EAAe,CAAE,MAAOC,CAAU,CAAC,EACjEF,CAAU,CAAE,EAEbzrD,EAAQ,QAAQ,cAAc0rD,EAAe,CAAE,MAAOC,CAAU,CAAC,EACzE,CAACrgD,EAAS4/C,EAAsBO,EAAYC,EAAeC,CAAS,CAAC,EACxE,OAAQ3rD,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,CAAE,QAASqD,EAAS,MAAO,CAAE,MAAOmhD,CAAgB,EAAG,SAAYtgD,CAAQ,EAAGugD,CAAa,CACxJ,EACA9rD,EAAQ,gBAAkByrD,C,qCChD1B,IAAInlD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACA,OAAO,eAAe/G,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,0BAA4B,OACpC,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzCC,EAAU,EAAQ,KAAyB,EAC3CiF,EAA0B,EAAQ,KAAyC,EAC3E0E,EAAmB,EAAQ,KAAkC,EAC7D0I,EAAe,EAAQ,KAA8B,EACrD3C,EAAqB,EAAQ,KAAoC,EACjEuzC,EAAqC,EAAQ,KAAoD,EACjGC,EAA4B,EAAQ,KAAiC,EACrE3iB,EAAoB,EAAQ,KAAmB,EAC/C4iB,EAA4B,CAAC,CAAE,QAAA1gD,EAAU89B,EAAkB,uBAAuB,SAAU,8BAAA6iB,EAA+B,qBAAAf,EAAuB,GAAO,gBAAAC,EAAkB,GAAO,gBAAAe,CAAiB,IAAM,CAC3M,MAAM7iD,KAAeR,EAAQ,gBAAgB,EACvC,CAAE,UAAAgM,EAAW,oBAAA0G,CAAoB,KAAQhD,EAAmB,cAAc,EAC1E,CAAE,EAAAtR,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CujD,KAAmBtjD,EAAQ,gBAAiBU,GAAUA,EAAM,YAAY,EACxE6iD,KAAkBvjD,EAAQ,gBAAiBU,GAAUA,EAAM,WAAW,EACtE8iD,KAA2BxjD,EAAQ,gBAAgBiF,EAAwB,0BAA0B,EACrGw+C,EAAoBrlD,EAAE,wDAAwD,EAC9EslD,EAAiBhxC,IAAwBL,EAAa,aAAa,aACnEsxC,KAAyBxsD,EAAQ,SAAS,OACjC8rD,EAAmC,uBAAuBK,EAAcC,EAAav3C,CAAS,EAC1G,CAACs3C,EAAcC,EAAav3C,CAAS,CAAC,EACnC43C,KAAmBzsD,EAAQ,SAAS,IAAM,CAC5C,IAAIqH,EAAI8O,EACR,MAAMu2C,EAASH,EAAiBF,EAAuBG,EACjDh7C,GAAOnK,EAAKqlD,GAAW,KAA4B,OAASA,EAAO,OAAS,MAAQrlD,IAAO,OAASA,EAAK,KACzGuK,GAAOuE,EAAKu2C,GAAW,KAA4B,OAASA,EAAO,OAAS,MAAQv2C,IAAO,OAASA,EAAK,KAC/G,OAAO3E,IAAQ,MAAQI,IAAQ,KAAO,CAAE,IAAAJ,EAAK,IAAAI,CAAI,EAAI,IACzD,EAAG,CAAC26C,EAAgBC,EAAoBH,CAAoB,CAAC,EACvDM,EAAuB,IAAM,CAC/B,GAAI,CAACF,EAAc,CACfP,EAAgBjlD,EAAE,+CAA+C,CAAC,EAClE,QAAQ,MAAM,mDAAmD,EACjE,WAAW,IAAMilD,EAAgB,EAAE,EAAG,GAAI,EAC1C,MACJ,CACA,KAAM,CAAE,IAAA16C,EAAK,IAAAI,CAAI,EAAI66C,EACrB,GAAIj7C,IAAQI,EAAK,CACbs6C,EAAgBjlD,EAAE,uCAAuC,CAAC,EAC1D,QAAQ,MAAM,4FAA4F,EAC1G,WAAW,IAAMilD,EAAgB,EAAE,EAAG,GAAI,EAC1C,MACJ,CACA,MAAMr5C,KAAiBi5C,EAAmC,4BAA4Bt6C,EAAKI,CAAG,EAC9FvI,KAAamJ,EAAiB,wBAAwBK,CAAU,CAAC,CACrE,EACM44C,EAAaQ,GAAiCK,EACpD,OAAQtsD,EAAQ,QAAQ,cAAcopC,EAAkB,gBAAiB,CAAE,QAAS99B,EAAS,WAAYmgD,EAAY,qBAAsBP,EAAsB,gBAAiBC,EAAiB,cAAeY,EAA0B,wBAAyB,QAASY,CAAqB,CAAC,CACxS,EACA5sD,EAAQ,0BAA4BisD,C,qCC1EpC,IAAI3lD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,QAAUA,EAAQ,MAAQA,EAAQ,0BAA4BA,EAAQ,qBAAuBA,EAAQ,uBAAyBA,EAAQ,wBAA0BA,EAAQ,8BAAgCA,EAAQ,gBAAkBA,EAAQ,gBAAkBA,EAAQ,4BAA8BA,EAAQ,gBAAkBA,EAAQ,WAAaA,EAAQ,kBAAoBA,EAAQ,mBAAqBA,EAAQ,sBAAwBA,EAAQ,qBAAuBA,EAAQ,YAAcA,EAAQ,eAAiBA,EAAQ,aAAeA,EAAQ,iBAAmBA,EAAQ,oBAAsBA,EAAQ,SAAW,OACnmB,MAAMgG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEqQ,EAASrJ,EAAa,EAAQ,KAA+B,CAAC,EAC9D6B,EAAU,EAAQ,KAAsB,EACxC6M,EAAiB,EAAQ,KAAiC,EAC1D6zB,EAAoB,EAAQ,KAAoC,EAChEH,EAAkBljC,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,IAK/CwB,GAAUA,EAAM,mBACjB;AAAA;AAAA,GAED;AAAA,EAEHxH,EAAQ,gBAAkBkpC,EAC1B,MAAM2jB,EAAW7mD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAM7ChG,EAAQ,SAAW6sD,EACnB,MAAMC,EAA8B9mD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhEhG,EAAQ,4BAA8B8sD,EACtC,MAAMC,EAAiB/mD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM9CwB,GAAUA,EAAM,mBACjB;AAAA;AAAA;AAAA,GAGD;AAAA;AAAA,YAESmB,EAAQ,MAAM,MAAM;AAAA,MACzBnB,GAAUA,EAAM,mBACnB;AAAA;AAAA,GAED;AAAA;AAAA;AAAA,YAGSmB,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjC3I,EAAQ,eAAiB+sD,EACzB,MAAMtB,KAAsBzlD,EAAoB,SAASwP,EAAe,MAAM;AAAA;AAAA,gBAE9DrF,EAAO,OAAO;AAAA;AAAA,WAEnBA,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOdxH,EAAQ,MAAM,OAAO;AAAA;AAAA,MAEzBnB,GAAUA,EAAM,WAAa6hC,EAAkB,uBAAuB,UACzE;AAAA;AAAA;AAAA,OAGG;AAAA;AAAA;AAAA,WAGI1gC,EAAQ,MAAM,YAAY;AAAA;AAAA,MAE9BnB,GAAUA,EAAM,WAAa6hC,EAAkB,uBAAuB,UACzE;AAAA;AAAA;AAAA,OAGG;AAAA;AAAA;AAAA,WAGI1gC,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAW/B3I,EAAQ,gBAAkByrD,EAC1B,MAAMuB,KAAwBhnD,EAAoB,SAASwP,EAAe,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOrE7M,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,WAI1BA,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA,EAK/B3I,EAAQ,kBAAoBgtD,EAC5B,MAAMC,EAAyBjnD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMhD2C,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,EAM/B3I,EAAQ,uBAAyBitD,EACjC,MAAMC,EAA0BlnD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMjD2C,EAAQ,MAAM,SAAS;AAAA;AAAA;AAAA,WAGvBA,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,wBAA0BktD,EAClC,MAAMC,EAAgCnnD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOvD2C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,8BAAgCmtD,EACxC,MAAMlB,KAAgCjmD,EAAoB,SAASwP,EAAe,MAAM;AAAA;AAAA,gBAExErF,EAAO,OAAO;AAAA;AAAA,WAEnBA,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAOdxH,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAKrBA,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAM1BA,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA,EAI/B3I,EAAQ,0BAA4BisD,EACpC,MAAMmB,EAAuBpnD,EAAoB,QAAQ;AAAA;AAAA;AAAA,WAG9CmK,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOzBnQ,EAAQ,qBAAuBotD,EAC/B,MAAMntC,EAAmBja,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,WAK1C2C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAMrBA,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA,EAI/B3I,EAAQ,iBAAmBigB,EAC3B,MAAMotC,EAAarnD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAczCmK,EAAO,QAAQ,IAAK3I,GAAUA,EAAM,cAAc;AAAA,MAClD2I,EAAO,SAAS,IAAK3I,GAAUA,EAAM,cAAc;AAAA,MACnD2I,EAAO,SAAS,IAAK3I,GAAUA,EAAM,eAAe;AAAA,MACpD2I,EAAO,SAAS,IAAK3I,GAAUA,EAAM,eAAe;AAAA,MACpD2I,EAAO,SAAS,IAAK3I,GAAUA,EAAM,cAAc;AAAA,MACnD2I,EAAO,MAAM,IAAK3I,GAAUA,EAAM,cAAc;AAAA,MAChD2I,EAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAiCDA,EAAO,OAAO;AAAA,oBACZA,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBA0DhBA,EAAO,KAAK;AAAA,oBACVA,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAQtBxH,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA,IAI5BnB,GAAUA,EAAM,mBACjB;AAAA;AAAA;AAAA;AAAA;AAAA,GAKD;AAAA,EAEHxH,EAAQ,WAAaqtD,EACrB,MAAMC,EAAsBtnD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAYlCmK,EAAO,mBAAmB;AAAA;AAAA;AAAA,WAGrCA,EAAO,QAAQ;AAAA;AAAA,YAEdxH,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA,YAIpBA,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAgBTwH,EAAO,MAAM;AAAA,yBACZA,EAAO,MAAM;AAAA,wBACdA,EAAO,iBAAiB;AAAA,aACnCA,EAAO,OAAO;AAAA;AAAA;AAAA,EAI3BnQ,EAAQ,oBAAsBstD,EAC9B,MAAMC,EAAcvnD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,WAKrCmK,EAAO,OAAO;AAAA;AAAA;AAAA,WAGb3I,GAAWA,EAAM,QAAU,MAAQ,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA,sBAKhC2I,EAAO,OAAO;AAAA;AAAA;AAAA,YAGvB3I,GAAUA,EAAM,QAAUA,EAAM,QACvC,UACA,MAAM;AAAA,YACCA,GAAWA,EAAM,QAAUA,EAAM,QAAU,UAAY,MAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAY5DA,GAAUA,EAAM,QAAUA,EAAM,QAAU,UAAY,UAAU;AAAA,cAChEA,GAAUA,EAAM,QAAUA,EAAM,QAAU,UAAY,eAAe;AAAA,cACrEA,GAAUA,EAAM,QAAUA,EAAM,QAAU,UAAY,kBAAkB;AAAA;AAAA;AAAA,wBAG/D2I,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA,oBAIf3I,GAAUA,EAAM,UAC/B,cACAA,EAAM,UACF2I,EAAO,OACPA,EAAO,OAAO;AAAA;AAAA,QAEf3I,GAAWA,EAAM,UAAY2I,EAAO,QAAU,aAAc;AAAA;AAAA;AAAA,WAG1DxH,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhC3I,EAAQ,YAAcutD,EACtB,MAAMC,EAAexnD,EAAoB,QAAQ;AAAA,WACtCmK,EAAO,MAAM;AAAA;AAAA,sBAEFA,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WASvBxH,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAMrC3I,EAAQ,aAAewtD,EACvB,MAAMC,EAAQznD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAM/BmK,EAAO,OAAO;AAAA;AAAA,EAGzBnQ,EAAQ,MAAQytD,EAChB,MAAMC,EAAkB1nD,EAAoB,QAAQ;AAAA;AAAA,EAGpDhG,EAAQ,gBAAkB0tD,EAC1B,MAAMr+B,EAAUrpB,EAAoB,QAAQ;AAAA;AAAA;AAAA,EAI5ChG,EAAQ,QAAUqvB,EAClB,MAAMs+B,EAAwB3nD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1DhG,EAAQ,sBAAwB2tD,EAChC,MAAMC,EAAuB5nD,EAAoB,QAAQ;AAAA;AAAA;AAAA,sBAGnCmK,EAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAalCnQ,EAAQ,qBAAuB4tD,EAC/B,MAAMC,EAAqB7nD,EAAoB,QAAQ;AAAA;AAAA;AAAA,WAG5CmK,EAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASzBnQ,EAAQ,mBAAqB6tD,C,qCCtiB7B,IAAIvnD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,uBAAyB,OACjC,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzCsS,EAAe,EAAQ,KAA2B,EAClD3C,EAAqB,EAAQ,KAAiC,EAC9DvP,EAA2BnJ,EAAgB,EAAQ,KAAuC,CAAC,EAC3FguD,EAAgB,EAAQ,KAAgC,EACxDC,EAA8B,EAAQ,KAA8C,EACpF1mD,EAAIP,EAAa,EAAQ,KAA+B,CAAC,EACzDknD,EAAoBluD,EAAgB,EAAQ,KAAmB,CAAC,EAChEmuD,EAAyB,CAAC,CAAE,mBAAAC,EAAoB,gBAAAhD,EAAiB,iCAAAiD,EAAkC,8BAAAjC,EAA+B,qBAAAf,EAAuB,GAAO,iBAAAiD,EAAmB,GAAO,cAAAC,EAAgB,GAAO,iBAAAC,EAAmB,GAAO,gBAAAlD,EAAkB,EAAO,IAAM,CAC5Q,KAAM,CAAC5nC,EAAcC,CAAe,KAAQxjB,EAAQ,UAAU,EAAE,EAC1D,CAAE,EAAAiH,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CQ,KAAeJ,EAAyB,SAAS,EACjD,CAAE,WAAA/G,EAAY,oBAAAsZ,CAAoB,KAAQhD,EAAmB,cAAc,EAC3E+1C,EAAqC/yC,IAAwBL,EAAa,aAAa,WACzFK,IAAwBL,EAAa,aAAa,gBAClDlb,EAAQ,WAAW,IAAM,CACzB,GAAIujB,EAAc,CACd,MAAM0K,EAAQ,WAAW,IAAM,CAC3BzK,EAAgB,EAAE,CACtB,EAAG,GAAI,EACP,MAAO,IAAM,aAAayK,CAAK,CACnC,CACJ,EAAG,CAAC1K,CAAY,CAAC,EACjB,MAAMgrC,EAAe,IAAOvuD,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,CAAE,kBAAqB+mD,CAAiB,EACjH5qC,GAAgBvjB,EAAQ,QAAQ,cAAcoH,EAAE,aAAc,KAAMmc,CAAY,EAChFvjB,EAAQ,QAAQ,cAAc+tD,EAAkB,QAAS,CAAE,iBAAkBI,EAAkB,iBAAkBE,EAAkB,gBAAiB7qC,EAAiB,mCAAoC8qC,CAAmC,CAAC,CAAC,EAClP,OAAQtuD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAAMoJ,GAAYglD,EAAiBpuD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACvJuuD,EAAa,EACbvuD,EAAQ,QAAQ,cAAcoH,EAAE,8BAA+B,KAC3DpH,EAAQ,QAAQ,cAAcoH,EAAE,kBAAmB,IAAI,EACvD,CAAC6kD,GAAiCjsD,EAAQ,QAAQ,cAAcoH,EAAE,kBAAmB,IAAI,EACzF8mD,GAAqCluD,EAAQ,QAAQ,cAAc8tD,EAA4B,0BAA2B,CAAE,QAASI,EAAkC,gBAAiB1qC,EAAiB,8BAA+ByoC,CAA8B,CAAC,EACvQgC,GAAuBjuD,EAAQ,QAAQ,cAAc6tD,EAAc,YAAa,CAAE,QAASI,EAAoB,gBAAiBhD,EAAiB,qBAAsBC,EAAsB,gBAAiBC,CAAgB,CAAC,CAAE,CAAC,EAAMnrD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACpSA,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,KAC9CpH,EAAQ,QAAQ,cAAcoH,EAAE,qBAAsB,KAAMH,EAAE,kCAAkC,CAAC,EACjGsnD,EAAa,EACbvuD,EAAQ,QAAQ,cAAcoH,EAAE,MAAO,KACnC,IACAnF,EACA,GAAG,CAAC,EACZjC,EAAQ,QAAQ,cAAcoH,EAAE,wBAAyB,KACrD6mD,GAAuBjuD,EAAQ,QAAQ,cAAc6tD,EAAc,YAAa,CAAE,QAASI,EAAoB,gBAAiBhD,EAAiB,qBAAsBC,EAAsB,gBAAiBC,CAAgB,CAAC,EAC/NmD,GAAuCtuD,EAAQ,QAAQ,cAAc8tD,EAA4B,0BAA2B,CAAE,gBAAiBtqC,CAAgB,CAAC,CAAE,CAAC,CAAE,CACjL,EACAzjB,EAAQ,uBAAyBiuD,C,qCCzEjC,IAAI3nD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIC,EAAU,MAAQ,KAAK,QAAW,SAAUC,EAAGrH,EAAG,CAClD,IAAIsH,EAAI,CAAC,EACT,QAASC,KAAKF,EAAO,OAAO,UAAU,eAAe,KAAKA,EAAGE,CAAC,GAAKvH,EAAE,QAAQuH,CAAC,EAAI,IAC9ED,EAAEC,CAAC,EAAIF,EAAEE,CAAC,GACd,GAAIF,GAAK,MAAQ,OAAO,OAAO,uBAA0B,WACrD,QAASG,EAAI,EAAGD,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,EAAID,EAAE,OAAQC,IAC3DxH,EAAE,QAAQuH,EAAEC,CAAC,CAAC,EAAI,GAAK,OAAO,UAAU,qBAAqB,KAAKH,EAAGE,EAAEC,CAAC,CAAC,IACzEF,EAAEC,EAAEC,CAAC,CAAC,EAAIH,EAAEE,EAAEC,CAAC,CAAC,GAE5B,OAAOF,CACX,EACIpH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAM8kB,EAAWhlB,EAAgB,EAAQ,KAAQ,CAAC,EAC5CG,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvCqJ,EAASrJ,EAAa,EAAQ,KAA+B,CAAC,EAC9DgC,EAAU,EAAQ,KAAsB,EACxC2J,EAAmB,EAAQ,KAA+B,EAC1Dg8C,EAA2B,EAAQ,KAAuC,EAC1EC,EAA6B,EAAQ,KAAyC,EAC9EC,EAA+B,EAAQ,KAA2C,EAClF1lD,EAA2BnJ,EAAgB,EAAQ,KAAuC,CAAC,EAC3FuH,EAAIP,EAAa,EAAQ,KAA+B,CAAC,EACzD8nD,EAAyB,EACzBC,EAAkB,CAAC,CAAE,iBAAAT,EAAkB,iBAAAE,EAAkB,gBAAA7qC,EAAiB,mCAAA8qC,CAAoC,IAAM,CACtH,MAAMO,KAAgB7uD,EAAQ,QAAQ,IAAI,EACpCo6B,KAAsBvxB,EAAQ,gBAAgB2J,EAAiB,gBAAgB,EAC/Es8C,KAAkBjmD,EAAQ,gBAAgB2J,EAAiB,iBAAiB,EAC5E,CAACu8C,EAAiBC,CAAkB,KAAQhvD,EAAQ,UAAUo6B,CAAe,EAC7E,CAAC60B,EAAaC,CAAc,KAAQlvD,EAAQ,UAAU,IAAI,EAC1D,CAAC+Y,EAAYC,CAAa,KAAQhZ,EAAQ,UAAU,EAAE,EACtDmvD,KAAqBtmD,EAAQ,gBAAiBU,GAAUA,EAAM,UAAU,cAAc,EACtFH,KAAeJ,EAAyB,SAAS,EACjDK,KAAeR,EAAQ,gBAAgB,EACvCumD,EAAY,CACd,IAAKl/C,EAAO,SACZ,IAAKA,EAAO,UACZ,OAAQA,EAAO,UACf,KAAMA,EAAO,OACb,IAAKA,EAAO,MAChB,EACMm/C,KAAsCrvD,EAAQ,SAAS,IAAM6kB,EAAS,QAAQ,SAAU2zB,GAAWnvC,KAAamJ,EAAiB,wBAAwBgmC,CAAM,CAAC,EAAG,GAAG,EAAG,CAACnvC,CAAQ,CAAC,KACrLrJ,EAAQ,WAAW,IAAM,CACpB6kB,EAAS,QAAQ,QAAQuV,EAAiB20B,CAAe,GAC1DC,EAAmB50B,CAAe,CAE1C,EAAG,CAACA,CAAe,CAAC,KAChBp6B,EAAQ,WAAW,IAAM,CACpB6kB,EAAS,QAAQ,QAAQuV,EAAiB20B,CAAe,GAC1DM,EAAgCN,CAAe,CAEvD,EAAG,CAACA,EAAiBM,CAA+B,CAAC,EACrD,MAAMC,KAA+BtvD,EAAQ,aAAa,IAAM,CAC5D,GAAI6uD,EAAU,QAAS,CACnB,MAAMU,EAAgB,iBAAiBV,EAAU,OAAO,EAClDrmD,GAAQqmD,EAAU,QAAQ,YAC5B,WAAWU,EAAc,WAAW,EACpC,WAAWA,EAAc,YAAY,EACzClmD,KAAamJ,EAAiB,mBAAmBhK,EAAK,CAAC,CAC3D,CACJ,EAAG,CAACa,CAAQ,CAAC,KACTrJ,EAAQ,iBAAiB,IAAM,CAC/BsvD,EAAyB,EACzB,MAAM92B,EAAe,IAAM,CACvB,WAAW82B,EAA0B,GAAG,CAC5C,EACA,cAAO,iBAAiB,SAAU92B,CAAY,EACvC,IAAM,CACT,OAAO,oBAAoB,SAAUA,CAAY,CACrD,CACJ,EAAG,CAAC82B,EAA0BhB,CAAkC,CAAC,EACjE,KAAM,CAAE,gBAAAkB,EAAiB,iBAAAC,EAAkB,mBAAAC,EAAoB,mBAAAC,EAAoB,kBAAAC,CAAmB,KAAQpB,EAAyB,sBAAsBQ,EAAoBh2C,EAAek2C,EAAgB1rC,EAAiBurC,EAAiBF,EAAWI,EAAal2C,EAAY+1C,CAAW,KAC7R9uD,EAAQ,WAAW,KACnB,SAAS,iBAAiB,QAAS2vD,CAAkB,EAC9C,IAAM,CACT,SAAS,oBAAoB,QAASA,CAAkB,CAC5D,GACD,CAACA,CAAkB,CAAC,EACvB,MAAME,KAAkC7vD,EAAQ,aAAa,IAAM,CAC/D,GAAI6uD,EAAU,QAAS,CACnB,KAAM,CAAE,IAAAr9C,EAAK,IAAAC,GAAK,OAAAC,GAAQ,KAAAC,GAAM,IAAAC,EAAI,EAAIm9C,EAClCe,MAAepB,EAA6B,wBAAwBj9C,GAAKD,EAAKI,GAAKk9C,EAAa1lD,CAAQ,EACxG2mD,MAAkBrB,EAA6B,wBAAwBh9C,GAAQF,EAAKI,GAAKk9C,EAAa1lD,CAAQ,EAC9G4mD,KAAgBtB,EAA6B,wBAAwB/8C,GAAMH,EAAKI,GAAKk9C,EAAa1lD,CAAQ,EAC1G6mD,GAAoB,CACtB,IAAKH,GACL,OAAQC,GACR,KAAMC,CACV,EACA3mD,KAAamJ,EAAiB,sBAAsBy9C,EAAiB,CAAC,CAC1E,CACJ,EAAG,CAAClB,EAAiBD,EAAa1lD,EAAUC,CAAQ,CAAC,KACjDrJ,EAAQ,iBAAiB,IAAM,CAC/B6vD,EAA4B,CAChC,EAAG,CAACd,EAAiBD,EAAae,CAA2B,CAAC,EAC9D,KAAM,CAAE,IAAAr+C,EAAK,IAAAI,CAAI,EAAIm9C,EAAiBmB,EAASnpD,EAAOgoD,EAAiB,CAAC,MAAO,KAAK,CAAC,EAC/EoB,EAAY,OAAO,QAAQD,CAAM,EACjCE,EAAoB,CAACC,EAAc/+C,GAAOg/C,GAAgB,CAAC,IAAOtwD,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,CAAE,UAAW,UAAW,KAAM,SAAU,MAAO6nD,IAAgBoB,EAAet3C,EAAazH,GAAM,SAAS,EAAG,QAAS,IAAMm+C,EAAiBY,CAAY,EAAG,OAAQ,IAAMb,EAAgBa,EAAct3C,CAAU,EAAG,MAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAGu3C,EAAa,EAAG,CAAE,OAAQ,EAAG,WAAYD,IAAiB,MAAQ,QAAU/+C,KAAUM,EAAM,MAAQ,QAAS,KAAMy+C,IAAiB,MACve,OACA,MAAO3B,EAA6B,wBAAwBp9C,GAAOE,EAAKI,EAAKk9C,EAAa1lD,CAAQ,CAAC,KAAM,MAAOinD,IAAiB,MAAQ,QAAU,MAAO,CAAC,EAAG,SAAW1wD,IAAMqZ,EAAcrZ,GAAE,OAAO,KAAK,EAAG,aAAc0wD,IAAiB,OAASA,IAAiB,MAC3Q,OACCzsC,OAAc6qC,EAA2B,kBAAkB4B,EAActB,EAAiBD,EAAaE,EAAoBh2C,EAAewK,CAAe,EAAE,CAAE,QAAS,CAAC,CAAE,QAASI,GAAM,QAAQ,CAAC,EAAE,OAAQ,CAAC,CAAE,CAAC,EAAG,YAAaysC,IAAiB,OAASA,IAAiB,MAC3Q,UACI5B,EAA2B,iBAAiB4B,EAActB,EAAiBD,EAAaE,EAAoBh2C,EAAewK,CAAe,EAAG,UAAW6sC,IAAiB,OAASA,IAAiB,MACvM,OACAX,EAAmBW,CAAY,EAAG,QAAWA,IAAiB,MAAO,OAAUA,IAAiB,KAAM,CAAC,EAC3GE,GAAsB,IAAOvwD,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACvF,CAACmuD,GAAoBiC,EAAkB,MAAO5+C,CAAG,EACjD2+C,EAAU,IAAI,CAAC,CAACE,EAAc/+C,EAAK,IAAOtR,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,CAAE,IAAKqwD,CAAa,EAClHrwD,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,CAAE,IAAKoK,EAAK,IAAKI,EAAK,eAAkBu9C,EAAe,IAAK,gBAAmBA,EAAe,OAAQ,eAAkBA,EAAe,KAAM,aAAgBL,EAAa,KAAM,QAAS,MAAOx9C,GAAO,SAAU,GAAM,kBAAqB68C,CAAiB,CAAC,EAC1S,CAACA,GACGiC,EAAkBC,EAAc/+C,GAAO,CACnC,OAAQ,EACR,WAAYA,KAAUE,GAAOF,KAAUM,EAAM+8C,EACvC,MACA,QACN,KAAMr9C,KAAUM,GAAON,KAAUM,EAAM+8C,EACjC,OACA,MAAOD,EAA6B,wBAAwBp9C,GAAOE,EAAKI,EAAKk9C,EAAa1lD,CAAQ,CAAC,KACzG,MAAOkI,KAAUM,GAAON,KAAUM,EAAM+8C,EAClC,MACA,MACV,CAAC,CAAC,CAAE,EACZ,CAACR,GAAoBiC,EAAkB,MAAOx+C,CAAG,EACjDu8C,GACIgC,EAAU,IAAI,CAAC,CAACE,EAAc/+C,EAAK,IAAOtR,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,CAAE,IAAKqwD,CAAa,EAClHrwD,EAAQ,QAAQ,cAAcoH,EAAE,sBAAuB,CAAE,MAAO,CACxD,KAAM,MAAOsnD,EAA6B,wBAAwBp9C,GAAOE,EAAKI,EAAKk9C,EAAa1lD,CAAQ,CAAC,IAC7G,EAAG,aAAcinD,IAAiB,OAASA,IAAiB,MACtD,OACCzsC,OAAc6qC,EAA2B,kBAAkB4B,EAActB,EAAiBD,EAAaE,EAAoBh2C,EAAewK,CAAe,EAAE,CAAE,QAAS,CAAC,CAAE,QAASI,GAAM,QAAQ,CAAC,EAAE,OAAQ,CAAC,CAAE,CAAC,EAAG,YAAaysC,IAAiB,OAASA,IAAiB,MAC3Q,UACI5B,EAA2B,iBAAiB4B,EAActB,EAAiBD,EAAaE,EAAoBh2C,EAAewK,CAAe,EAAG,UAAWksC,EAAmBW,CAAY,CAAE,EACnMrwD,EAAQ,QAAQ,cAAcoH,EAAE,qBAAsB,IAAI,EAC1DpH,EAAQ,QAAQ,cAAcoH,EAAE,mBAAoB,KAAMkK,EAAK,CAAC,CAAC,CAAE,CAAC,EAC9Ek/C,GAAuB,IAAOxwD,EAAQ,QAAQ,cAAcoH,EAAE,4BAA6B,KAC7FpH,EAAQ,QAAQ,cAAcoH,EAAE,oBAAqB,CAAE,UAAW,UAAW,KAAM,SAAU,KAAM,EAAG,MAAO6nD,IAAgB,MAAQl2C,EAAavH,EAAI,SAAS,EAAG,QAAS,IAAMi+C,EAAiB,KAAK,EAAG,OAAQ,IAAMD,EAAgB,MAAOz2C,CAAU,EAAG,SAAWpZ,GAAMqZ,EAAcrZ,EAAE,OAAO,KAAK,EAAG,UAAW+vD,EAAmB,KAAK,CAAE,CAAC,EAClV1vD,EAAQ,QAAQ,cAAcoH,EAAE,SAAU,CAAE,MAAO,CAAE,WAAYgoD,EAAU,GAAO,CAAE,CAAC,EACrFe,EAAU,IAAI,CAAC,CAACE,EAAc/+C,EAAK,IAAOtR,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,CAAE,IAAKqwD,CAAa,EAClHrwD,EAAQ,QAAQ,cAAcoH,EAAE,oBAAqB,CAAE,UAAW,UAAW,KAAM,SAAU,KAAM,EAAG,MAAO6nD,IAAgBoB,EAAet3C,EAAazH,GAAM,SAAS,EAAG,QAAS,IAAMm+C,EAAiBY,CAAY,EAAG,OAAQ,IAAMb,EAAgBa,EAAct3C,CAAU,EAAG,SAAWpZ,IAAMqZ,EAAcrZ,GAAE,OAAO,KAAK,EAAG,UAAW+vD,EAAmBW,CAAY,CAAE,CAAC,EAChXrwD,EAAQ,QAAQ,cAAcoH,EAAE,SAAU,CAAE,MAAO,CAAE,WAAYgoD,EAAUiB,CAAY,CAAE,CAAE,CAAC,CAAC,CAAE,EACnGrwD,EAAQ,QAAQ,cAAcoH,EAAE,oBAAqB,CAAE,UAAW,UAAW,KAAM,SAAU,KAAM,EAAG,MAAO6nD,IAAgB,MAAQl2C,EAAanH,EAAI,SAAS,EAAG,QAAS,IAAM69C,EAAiB,KAAK,EAAG,OAAQ,IAAMD,EAAgB,MAAOz2C,CAAU,EAAG,SAAWpZ,GAAMqZ,EAAcrZ,EAAE,OAAO,KAAK,EAAG,UAAW+vD,EAAmB,KAAK,CAAE,CAAC,CAAC,EACvV,OAAQ1vD,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,IAAKynD,EAAW,QAAUjrC,GAAU,CAACyqC,GAAoBuB,EAAkBhsC,CAAK,EAAG,aAAeA,GAAU,CAACyqC,GAAoBuB,EAAkBhsC,CAAK,EAAG,kBAAqBuqC,EAAkB,kBAAqBE,CAAiB,EAAGA,EAAmBmC,GAAqB,EAAID,GAAoB,CAAC,CAC1W,EACAxwD,EAAA,QAAkB6uD,C,qCCzKlB,IAAIvoD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIqF,EAAgB,MAAQ,KAAK,cAAiB,SAAS,EAAG9L,EAAS,CACnE,QAASmH,KAAK,EAAOA,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKnH,EAASmH,CAAC,GAAGb,EAAgBtG,EAAS,EAAGmH,CAAC,CAC5H,EACA,OAAO,eAAenH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D8L,EAAa,EAAQ,KAAyB,EAAG9L,CAAO,C,mCCfxD,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,KAAOA,EAAQ,MAAQ,OAC/B,MAAM0wD,EAAO,OACb1wD,EAAQ,KAAO0wD,EACf,MAAMC,EAAQ,QACd3wD,EAAQ,MAAQ2wD,C,mCCLhB,OAAO,eAAe3wD,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,SAAWA,EAAQ,aAAeA,EAAQ,mBAAqBA,EAAQ,mBAAqB,OACpG,MAAM4wD,EAAqB,CACvB,IAAK,kBACL,IAAK,kBACT,EACA5wD,EAAQ,mBAAqB4wD,EAC7B,MAAMC,EAAiB,CACnB,eAAgB,CACZ,SAAU,IACV,OAAQ,CACJ,MAAO,WACP,MAAO,UACP,KAAM,oBACN,KAAM,kBACV,CACJ,EACA,gBAAiB,CACb,SAAU,IACV,OAAQ,CACJ,MAAO,WACP,MAAO,UACP,KAAM,oBACN,KAAM,kBACV,CACJ,EACA,gBAAiB,CACb,SAAU,IACV,OAAQ,CACJ,MAAO,WACP,MAAO,UACP,KAAM,oBACN,KAAM,kBACV,CACJ,EACA,QAAS,CACL,SAAU,IACV,OAAQ,CACJ,MAAO,WACP,MAAO,UACP,KAAM,WACN,KAAM,SACV,CACJ,CACJ,EACMC,EAAgB,IAAM,CACxB,MAAMroD,EAAQ,OAAO,WACrB,OAAQ,OAAO,KAAKooD,CAAc,EAAE,KAAME,GAAetoD,GAASooD,EAAeE,CAAU,EAAE,QAAQ,GAAK,SAC9G,EAEMC,GADsB,IAAMH,EAAeC,EAAc,CAAC,EAAE,QACnB,EAC/C9wD,EAAQ,mBAAqBgxD,EAC7B,MAAMC,EAAe,EACrBjxD,EAAQ,aAAeixD,EACvB,MAAMC,EAAW,EACjBlxD,EAAQ,SAAWkxD,C,mCCvDnB,OAAO,eAAelxD,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,KAAO,OACf,MAAMmxD,EAAa,yBACbC,EAAU,2EACVC,EAAM,yEACNC,EAAU,iCAEVC,EAAQ,GAAGJ,CAAU,SACrBK,EAAU,GAAGL,CAAU,WACvBM,EAAa,GAAGN,CAAU,cAC1B7xD,EAAM,IACNoyD,EAAO,GAAGP,CAAU,QACpBQ,EAAS,GAAGR,CAAU,UACtBS,EAAQ,GAAGT,CAAU,eACrBU,EAAS,GAAGV,CAAU,UACtBW,EAAW,IAEXC,EAAc,GAAGP,CAAO,gBACxBQ,EAAoB,GAAGR,CAAO,gBAC9BS,EAAM,GAAGT,CAAO,OAChBU,EAAa,GAAGV,CAAO,eACvBW,EAAgB,GAAGX,CAAO,cAC1BY,EAAwB,GAAGZ,CAAO,2BAClCa,EAAU,GAAGd,CAAK,WACxBvxD,EAAQ,KAAO,CACX,WAAAmxD,EACA,QAAAC,EACA,IAAAC,EACA,QAAAC,EACA,MAAAC,EACA,QAAAC,EACA,WAAAC,EACA,IAAAnyD,EACA,KAAAoyD,EACA,OAAAC,EACA,MAAAC,EACA,OAAAC,EACA,YAAAE,EACA,kBAAAC,EACA,IAAAC,EACA,WAAAC,EACA,cAAAC,EACA,QAAAE,EACA,SAAAP,EACA,sBAAAM,CACJ,C,qCC7CA,IAAItyD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,0BAA4B,OACpC,MAAMC,EAAU,EAAQ,KAAO,EACzBE,EAAqB,EAAQ,KAAkB,EAC/Cid,EAAS,EAAQ,KAAe,EAChCtU,EAAU,EAAQ,KAAgB,EAClCgF,EAA8B,EAAQ,KAAoC,EAC1EqN,EAAe,EAAQ,KAAqB,EAC5C3C,EAAqB,EAAQ,KAA2B,EACxDvP,EAA2BnJ,EAAgB,EAAQ,KAAiC,CAAC,EACrFwyD,EAA4B,IAAM,CACpC,MAAMrqB,KAAe9nC,EAAmB,aAAa,EAC/CkJ,KAAeJ,EAAyB,SAAS,EACjDK,KAAeR,EAAQ,gBAAgB,EACvC,CAAE,oBAAA0S,EAAqB,qBAAAqB,EAAsB,aAAAwW,CAAa,KAAQ7a,EAAmB,cAAc,EAoBzG,SAnBiCvY,EAAQ,aAAa,IAAM,CACpDub,IAAwBL,EAAa,aAAa,cAClD7R,KAAawE,EAA4B,uBAAuB,CAAC,EAErE,MAAM26B,EAAkB,IAAI,gBAAgBpV,EAAa,SAAS,CAAC,EACnEoV,EAAgB,IAAIjwB,EAAmB,eAAe,qBAAsBgD,CAAmB,EAC/FitB,EAAgB,IAAIjwB,EAAmB,eAAe,oBAAqBqE,CAAoB,EAC3FxT,IACAo/B,EAAgB,OAAOjwB,EAAmB,eAAe,QAAQ,EACjEiwB,EAAgB,OAAOjwB,EAAmB,eAAe,SAAS,GAEtEyvB,EAAS,GAAG7qB,EAAO,KAAK,QAAQ,IAAIqrB,EAAgB,SAAS,CAAC,EAAE,CACpE,EAAG,CACCjtB,EACAysB,EACAprB,EACAwW,EACAhqB,CACJ,CAAC,CAEL,EACArJ,EAAQ,0BAA4BsyD,C,qCCvCpC,OAAO,eAAetyD,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,qBAAuB,OAC/B,MAAM8kB,EAAW,EAAQ,KAAQ,EAC3B7kB,EAAU,EAAQ,KAAO,EACzBsyD,EAAuB,CAACC,EAAY58B,IAAgB,IAClD31B,EAAQ,WAAW,IAAM,CACzB,MAAMwyD,EAAmBD,EAAW,QACpC,GAAIC,EAAkB,CAClB,MAAMC,KAAyB5tC,EAAS,UAAWwhB,GAAa,CAC5D,aAAa,QAAQ,6BAA8BA,EAAS,SAAS,CAAC,CAC1E,EAAG,GAAG,EACAqsB,KAAqB7tC,EAAS,UAAU,IAAM,CAChD,KAAM,CAAE,UAAA8tC,EAAW,aAAAC,EAAc,aAAAC,CAAa,EAAIL,EAC7BG,EAAYE,GAAgBD,EAAe,IAE5Dj9B,EAAY,CAEpB,EAAG,GAAG,EACAm9B,EAAW,IAAM,CACnB,KAAM,CAAE,UAAAH,CAAU,EAAIH,EACtBC,EAAmBE,CAAS,EAC5BD,EAAe,CACnB,EACMK,EAAgB,aAAa,QAAQ,4BAA4B,EACvE,OAAIA,GACA,sBAAsB,IAAM,CACxBP,EAAiB,UAAY,SAASO,CAAa,CACvD,CAAC,EAELP,EAAiB,iBAAiB,SAAUM,EAAU,CAAE,QAAS,EAAK,CAAC,EAChE,IAAM,CACTN,EAAiB,oBAAoB,SAAUM,CAAQ,EACvDL,EAAmB,OAAO,EAC1BC,EAAe,OAAO,CAC1B,CACJ,CACJ,EAAG,CAACH,EAAY58B,CAAW,CAAC,CAChC,EACA51B,EAAQ,qBAAuBuyD,C,qCCtC/B,IAAIzyD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,UAAY,OACpB,MAAMizD,EAAYnzD,EAAgB,EAAQ,KAAS,CAAC,EAC9C+I,EAAkB,EAAQ,KAAe,EACzCqqD,EAAqBpzD,EAAgB,EAAQ,KAAuB,CAAC,EAC3EE,EAAQ,UAAY,CAChB,GAAI,CACA,YAAakzD,EAAmB,OACpC,CACJ,EACAD,EAAU,QAAQ,IAAIpqD,EAAgB,gBAAgB,EAAE,KAAK,CACzD,IAAK,KACL,UAAW7I,EAAQ,SACvB,CAAC,EACDA,EAAA,QAAkBizD,EAAU,O,oCCjB5B,IAAInzD,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,MAAQA,EAAQ,mBAAqBA,EAAQ,0BAA4BA,EAAQ,yBAA2BA,EAAQ,gBAAkBA,EAAQ,qBAAuBA,EAAQ,cAAgBA,EAAQ,qBAAuBA,EAAQ,QAAUA,EAAQ,eAAiBA,EAAQ,aAAeA,EAAQ,mBAAqB,OACnU,MAAMgG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClEmG,EAAW,EAAQ,KAA4B,EAC/CgE,EAAe,EAAQ,KAAmC,EAC1D4U,EAAiB,EAAQ,IAAgD,EACzElW,EAAU,EAAQ,KAAmB,EACrCwqD,EAAqBntD,EAAoB,QAAQ;AAAA;AAAA;AAAA,sBAGjCC,EAAS,OAAO;AAAA;AAAA,WAE3B0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA,WAG1BkW,EAAe,aAAa;AAAA;AAAA,EAGvC7e,EAAQ,mBAAqBmzD,EAC7B,MAAMC,EAAuBptD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAO9C2C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,qBAAuBozD,EAC/B,MAAM7iD,KAAcvK,EAAoB,SAASiE,EAAa,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,WAKrDtB,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAKrC3I,EAAQ,QAAUuQ,EAClB,MAAMk9C,EAAQznD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAU1ChG,EAAQ,MAAQytD,EAChB,MAAMC,EAAkB1nD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAQzC2C,EAAQ,MAAM,MAAM;AAAA;AAAA;AAAA,EAI/B3I,EAAQ,gBAAkB0tD,EAC1B,MAAM2F,KAA+BrtD,EAAoB,SAAS0nD,CAAe;AAAA;AAAA,EAGjF1tD,EAAQ,yBAA2BqzD,EACnC,MAAM7pB,EAAqBxjC,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAMjCC,EAAS,KAAK;AAAA;AAAA,WAEzB0C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAKrBA,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,IAIhCnB,GAAUA,EAAM,WAAa,6BAA6B;AAAA,EAE/DxH,EAAQ,mBAAqBwpC,EAC7B,MAAM8pB,EAA4BttD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ9DhG,EAAQ,0BAA4BszD,EACpC,MAAM9F,EAAexnD,EAAoB,QAAQ;AAAA,WACtCC,EAAS,MAAM;AAAA;AAAA,sBAEJA,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WASzB0C,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,EAMrC3I,EAAQ,aAAewtD,EACvB,MAAM+F,EAAgBvtD,EAAoB,QAAQ;AAAA;AAAA,WAEvC2C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,cAAgBuzD,EACxB,MAAMC,EAAiBxtD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAM7BC,EAAS,KAAK;AAAA;AAAA,WAEzB0C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,WAKrBA,EAAQ,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,IAKhCnB,GAAUA,EAAM,WAAa,6BAA6B;AAAA,EAE/DxH,EAAQ,eAAiBwzD,EACzB,MAAMC,EAAuBztD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,WAK9CC,EAAS,OAAO;AAAA,EAE3BjG,EAAQ,qBAAuByzD,C,qCC5J/B,IAAIntD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,aAAe,OACvB,MAAMwS,EAAoB1S,EAAgB,EAAQ,KAAiB,CAAC,EAC9DG,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzC6qD,EAAa,EAAQ,KAAqC,EAC1DC,EAAkB,EAAQ,KAAmD,EAC7EnnD,EAAiB1M,EAAgB,EAAQ,KAA+D,CAAC,EACzG8zD,EAA6B,EAAQ,KAAqD,EAC1F1P,EAAU,EAAQ,KAAwC,EAC1D2P,EAAyB/zD,EAAgB,EAAQ,KAAuD,CAAC,EACzGg0D,EAAah0D,EAAgB,EAAQ,KAA2C,CAAC,EACjFguD,EAAgB,EAAQ,KAA+E,EACvGzkB,EAAoB,EAAQ,KAAmF,EAC/G0kB,EAA8B,EAAQ,KAA6F,EACnI95C,EAAyB,EAAQ,KAAkC,EACnEiK,EAAqB,EAAQ,KAA8B,EAC3DpV,EAAU,EAAQ,KAAmB,EACrCgF,EAA8B,EAAQ,KAAuC,EAC7E2E,EAAmB,EAAQ,KAA4B,EACvDyI,EAAY,EAAQ,KAAqB,EACzCsB,EAAsB,EAAQ,KAA+B,EAC7DhE,EAAqB,EAAQ,KAA8B,EAC3DtC,EAAqB,EAAQ,GAA8B,EAC3DjN,EAA2BnJ,EAAgB,EAAQ,KAAoC,CAAC,EACxFspC,EAA0B,EAAQ,KAAwE,EAC1G/hC,EAAIP,EAAa,EAAQ,IAAsB,CAAC,EAChDitD,EAAe,CAAC,CAAE,SAAAxsD,CAAS,IAAM,CACnC,IAAID,EAAI8O,EACR,MAAM9M,KAAeR,EAAQ,gBAAgB,EACvCO,KAAeJ,EAAyB,SAAS,EACjD,CAAE,EAAA/B,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5C+T,KAA2BJ,EAAoB,2BAA2B,EAC1E,CAAE,WAAAta,EAAY,SAAAS,CAAS,KAAQ6V,EAAmB,cAAc,EAChEw0B,KAAsBlkC,EAAQ,gBAAgBmL,EAAuB,eAAe,EACpF7F,KAAyBtF,EAAQ,gBAAgBgF,EAA4B,UAAU,EACvF,CAAE,UAAAlL,EAAW,QAAAC,CAAQ,KAAQiG,EAAQ,gBAAgBmL,EAAuB,0BAA0B,EACtGnH,KAAgBhE,EAAQ,gBAAgBmL,EAAuB,eAAe,EAC9EimB,KAAsBj6B,EAAQ,QAAQ,IAAI,EAC1C,CAAE,iBAAA+zD,EAAkB,iBAAAC,CAAiB,KAAQ/9C,EAAmB,YAAYtT,EAAWC,CAAO,EAC9F,CAAC2gB,GAAcC,EAAe,KAAQxjB,EAAQ,UAAU,EAAE,EAC1D,CAACi0D,EAAoBC,EAAqB,KAAQl0D,EAAQ,UAAU,EAAK,EAEzE,CAAC4M,GAAmBoD,EAAoB,KAAQhQ,EAAQ,UAAU,IAAI,EACtEm0D,IAAqBhmD,EAAmB,KAAK,OAAS,GAAKtB,IAC7DnK,GACAqqC,EAAgB,OAAO,UACrBj4B,IAAiBqB,GAAM9O,EAAK0lC,EAAgB,OAAO,WAAa,MAAQ1lC,IAAO,OAASA,EAAK0lC,EAAgB,OAAO,cAAgB,MAAQ52B,IAAO,OAASA,KAAS5D,EAAkB,SAAS,EAAE,OAAO,YAAY,KACvNvS,EAAQ,WAAW,IAAM,CACrB0C,GAAY,CAACqqC,EAAgB,aAAa,QAC1C1jC,KAAa4U,EAAmB,sBAAsBvb,CAAQ,CAAC,CAEvE,EAAG,CAACA,EAAU2G,EAAU0jC,EAAgB,aAAa,MAAM,CAAC,KACxD/sC,EAAQ,WAAW,IAAM,CACrB+sC,EAAgB,QAChB1jC,KAAamJ,EAAiB,4BAA4Bu6B,EAAgB,MAAM,CAAC,CAEzF,EAAG,CAACA,EAAgB,OAAQ1jC,CAAQ,CAAC,KACjCrJ,EAAQ,WAAW,IAAM,CACrB,CAACi0D,GACDvxD,GACAqqC,EAAgB,OAAO,WACvBj4B,KACAzL,KAAawE,EAA4B,sBAAsB,CAC3D,GAAInL,EACJ,UAAWqqC,EAAgB,OAAO,UAClC,QAASj4B,EACb,CAAC,CAAC,EACFo/C,GAAsB,EAAI,EAElC,EAAG,CACCD,EACAvxD,EACAqqC,EAAgB,OAAO,UACvBj4B,GACAzL,CACJ,CAAC,KACGrJ,EAAQ,WAAW,KACnB,OAAO,iBAAiB,WAAY2c,CAAoB,EACjD,IAAM,OAAO,oBAAoB,WAAYA,CAAoB,GACzE,CAACA,CAAoB,CAAC,EACzB,MAAMrP,GAAkBC,GAAc,CAClCyC,GAAqBzC,CAAS,CAClC,EACM6mD,EAAoB,IAAOp0D,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,UAAagC,CAAS,EACrGpJ,EAAQ,QAAQ,cAAcuM,EAAe,QAAS,CAAE,eAAgB,GAAM,UAAWvM,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,KAAMH,EAAE,2BAA2B,CAAC,EAAG,kBAAmBjH,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACpPA,EAAQ,QAAQ,cAAcoH,EAAE,qBAAsB,KAAMH,EAAE,4BAA4B,CAAC,EAC3FjH,EAAQ,QAAQ,cAAc6zD,EAAW,QAAS,CAAE,IAAK55B,EAAiB,QAAS85B,EAAkB,QAASC,CAAiB,CAAC,EAChIh0D,EAAQ,QAAQ,cAAcikD,EAAQ,MAAO,CAAE,SAAU,OAAOvhD,CAAQ,EAAG,YAAauY,EAAU,aAAa,MAAO,eAAgB,GAAM,gBAAiBgf,EAAiB,kBAAmBrtB,GAAmB,WAAYU,EAAe,CAAC,EAChPtN,EAAQ,QAAQ,cAAc4zD,EAAuB,QAAS,IAAI,CAAC,CAAE,CAAC,CAAC,EAC7ES,GAA2B,IAAOr0D,EAAQ,QAAQ,cAAcoH,EAAE,mBAAoB,CAAE,UAAagC,CAAS,EAChHpJ,EAAQ,QAAQ,cAAcuM,EAAe,QAAS,CAAE,UAAWvM,EAAQ,QAAQ,cAAcoH,EAAE,gBAAiB,KAC5GH,EAAE,4BAA4B,EAC9BjH,EAAQ,QAAQ,cAAcoH,EAAE,MAAO,KACnC,IACAnF,EACA,GAAG,EACP,CAACmH,GAAapJ,EAAQ,QAAQ,cAAcoH,EAAE,0BAA2B,KACrEpH,EAAQ,QAAQ,cAAc6tD,EAAc,YAAa,CAAE,QAASzkB,EAAkB,uBAAuB,aAAc,qBAAsB,EAAK,CAAC,EACvJppC,EAAQ,QAAQ,cAAc8tD,EAA4B,0BAA2B,CAAE,QAAS1kB,EAAkB,uBAAuB,aAAc,qBAAsB,GAAM,gBAAiB5lB,EAAgB,CAAC,CAAC,CAAE,EAAG,kBAAmBpa,EAAYpJ,EAAQ,QAAQ,cAAcmpC,EAAwB,uBAAwB,CAAE,mBAAoBC,EAAkB,uBAAuB,aAAc,gBAAiBniC,EAAE,mCAAmC,EAAG,iBAAkB,GAAM,8BAA+BA,EAAE,iDAAiD,EAAG,iCAAkCmiC,EAAkB,uBAAuB,YAAa,CAAC,EAAMppC,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,KAC7sBmc,IAAgBvjB,EAAQ,QAAQ,cAAcoH,EAAE,aAAc,KAAMmc,EAAY,EAChFvjB,EAAQ,QAAQ,cAAcmpC,EAAwB,uBAAwB,CAAE,cAAe,EAAK,CAAC,CAAC,CAAG,CAAC,CAAC,EACjHmrB,GAAqB,IAAOt0D,EAAQ,QAAQ,cAAcoH,EAAE,eAAgB,CAAE,UAAagC,CAAS,EACtGpJ,EAAQ,QAAQ,cAAcuM,EAAe,QAAS,CAAE,UAAWvM,EAAQ,QAAQ,cAAcoH,EAAE,yBAA0B,KACrHH,EAAE,2BAA2B,EAC7BjH,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KACpDA,EAAQ,QAAQ,cAAc4zD,EAAuB,QAAS,IAAI,EAClE5zD,EAAQ,QAAQ,cAAc6zD,EAAW,QAAS,CAAE,IAAK55B,EAAiB,QAAS85B,EAAkB,QAASC,CAAiB,CAAC,CAAC,CAAC,EAAG,kBAAmBh0D,EAAQ,QAAQ,cAAcikD,EAAQ,MAAO,CAAE,SAAUvhD,EAAU,YAAauY,EAAU,aAAa,MAAO,eAAgB,GAAM,gBAAiBgf,EAAiB,kBAAmBrtB,GAAmB,WAAYU,EAAe,CAAC,CAAE,CAAC,CAAC,EACpZ,OAAQtN,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAC5DsH,EACAtH,EAAQ,QAAQ,cAAcoH,EAAE,mBAAoB,KAChDpH,EAAQ,QAAQ,cAAcoH,EAAE,qBAAsB,KAClDpH,EAAQ,QAAQ,cAAc2zD,EAA2B,yBAA0B,IAAI,EACvFvqD,GAAYgrD,EAAkB,EAC9BC,GAAyB,EACzBF,GAAqBn0D,EAAQ,QAAQ,cAAcyzD,EAAW,SAAU,CAAE,SAAU/wD,EAAU,gBAAiBqqC,EAAgB,OAAO,UAAW,gBAAiBj4B,GAAe,WAAYxH,GAAgB,kBAAmBV,EAAkB,CAAC,EAAM5M,EAAQ,QAAQ,cAAc0zD,EAAgB,cAAe,IAAI,EAC1T,CAACtqD,GAAYkrD,GAAmB,CAAC,CAAC,CAAC,CACnD,EACAv0D,EAAQ,aAAe+zD,C,qCChJvB,IAAIj0D,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,QAAU,OAClB,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1CsY,EAAsB,EAAQ,KAA2B,EACzDo8C,EAAe,EAAQ,KAAkD,EACzEC,EAAQ,EAAQ,KAAoC,EACpDC,EAAuB,EAAQ,KAAgC,EAC/DzrD,EAA2BnJ,EAAgB,EAAQ,KAAoC,CAAC,EACxF60D,EAAmB,0CACnBC,EAAU,CAAC,CAAE,SAAArtD,CAAS,IAAM,CAC9B,MAAM8B,KAAeJ,EAAyB,SAAS,EACvD,OAAQhJ,EAAQ,QAAQ,cAAcmY,EAAoB,YAAa,CAAE,OAAQu8C,EAAkB,OAAQ,IAAM,QAAQ,IAAI,sBAAsB,CAAE,EACjJptD,EACA,CAAC8B,GAAYpJ,EAAQ,QAAQ,cAAcu0D,EAAa,WAAY,IAAI,EACxEv0D,EAAQ,QAAQ,cAAcy0D,EAAqB,mBAAoB,IAAI,EAC3Ez0D,EAAQ,QAAQ,cAAcw0D,EAAM,IAAK,IAAI,CAAC,CACtD,EACAz0D,EAAQ,QAAU40D,C,qCCpBlB,IAAItuD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIqF,EAAgB,MAAQ,KAAK,cAAiB,SAAS,EAAG9L,EAAS,CACnE,QAASmH,KAAK,EAAOA,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKnH,EAASmH,CAAC,GAAGb,EAAgBtG,EAAS,EAAGmH,CAAC,CAC5H,EACA,OAAO,eAAenH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D8L,EAAa,EAAQ,KAAW,EAAG9L,CAAO,C,qCCf1C,IAAIF,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,YAAcA,EAAQ,MAAQA,EAAQ,iBAAmBA,EAAQ,cAAgB,OACzF,MAAMgG,EAAsBlG,EAAgB,EAAQ,KAAmB,CAAC,EAClE+0D,EAAgB7uD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMlDhG,EAAQ,cAAgB60D,EACxB,MAAMC,EAAmB9uD,EAAoB,QAAQ;AAAA;AAAA,EAGrDhG,EAAQ,iBAAmB80D,EAC3B,MAAM3qD,EAAQnE,EAAoB,QAAQ;AAAA;AAAA;AAAA,EAI1ChG,EAAQ,MAAQmK,EAChB,MAAMunB,EAAc1rB,EAAoB,QAAQ;AAAA;AAAA,EAGhDhG,EAAQ,YAAc0xB,C,qCCzBtB,IAAI5xB,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,aAAe,OACvB,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzCksD,EAAuB,EAAQ,KAAsB,EACrDC,EAAe,CAAC,CAAE,SAAAztD,CAAS,IAAM,CACnC,KAAM,CAAE,EAAAL,CAAE,KAAQ2B,EAAgB,gBAAgB,EAClD,OAAQ5I,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAC5DsH,EACAtH,EAAQ,QAAQ,cAAc80D,EAAqB,cAAe,KAC9D90D,EAAQ,QAAQ,cAAc80D,EAAqB,iBAAkB,KACjE90D,EAAQ,QAAQ,cAAc80D,EAAqB,MAAO,KAAM7tD,EAAE,qBAAqB,CAAC,EACxFjH,EAAQ,QAAQ,cAAc80D,EAAqB,YAAa,KAC5D7tD,EAAE,sBAAsB,EACxB,GAAG,CAAC,CAAC,CAAC,CAC1B,EACAlH,EAAQ,aAAeg1D,C,qCCnBvB,IAAI1uD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIqF,EAAgB,MAAQ,KAAK,cAAiB,SAAS,EAAG9L,EAAS,CACnE,QAASmH,KAAK,EAAOA,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKnH,EAASmH,CAAC,GAAGb,EAAgBtG,EAAS,EAAGmH,CAAC,CAC5H,EACA,OAAO,eAAenH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D8L,EAAa,EAAQ,KAAgB,EAAG9L,CAAO,C,qCCf/C,IAAIsG,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACA,OAAO,eAAe/G,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,MAAQA,EAAQ,cAAgBA,EAAQ,IAAMA,EAAQ,YAAcA,EAAQ,iBAAmBA,EAAQ,WAAa,OAC5H,MAAMgG,EAAsBc,EAAa,EAAQ,KAAmB,CAAC,EAC/Db,EAAW,EAAQ,KAA4B,EAC/CuP,EAAiB,EAAQ,KAA4C,EACrE7M,EAAU,EAAQ,KAAmB,EACrCssD,KAAkBjvD,EAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWtCkvD,EAAMlvD,EAAoB,QAAQ;AAAA;AAAA;AAAA,eAGzBivD,CAAW;AAAA,qBACL,CAAC,CAAE,MAAAE,CAAM,IAAMA,CAAK;AAAA,EAEzCn1D,EAAQ,IAAMk1D,EACd,MAAML,EAAgB7uD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUlDhG,EAAQ,cAAgB60D,EACxB,MAAMC,EAAmB9uD,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAO1CC,EAAS,OAAO;AAAA;AAAA;AAAA,WAGhB0C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,iBAAmB80D,EAC3B,MAAM3qD,EAAQnE,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,WAI/BC,EAAS,OAAO;AAAA;AAAA,WAEhB0C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,MAAQmK,EAChB,MAAMunB,EAAc1rB,EAAoB,QAAQ;AAAA;AAAA;AAAA;AAAA,WAIrC2C,EAAQ,MAAM,OAAO;AAAA;AAAA;AAAA,EAIhC3I,EAAQ,YAAc0xB,EACtB,MAAMoxB,KAAiB98C,EAAoB,SAASwP,EAAe,MAAM;AAAA,sBACnDvP,EAAS,IAAI;AAAA,WACxBA,EAAS,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQzBjG,EAAQ,WAAa8iD,C,qCCvGrB,IAAIx8C,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAAS,EAAGE,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAe,EAAGC,EAAIC,CAAI,CACrC,EAAM,SAAS,EAAGH,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3B,EAAEC,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAAS,EAAGC,EAAG,CAC3F,OAAO,eAAe,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOA,CAAE,CAAC,CACtE,EAAK,SAAS,EAAGA,EAAG,CAChB,EAAE,QAAaA,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,aAAe,OACvB,MAAMC,EAAU6G,EAAa,EAAQ,KAAO,CAAC,EACvC+B,EAAkB,EAAQ,KAAe,EACzC1I,EAAqB,EAAQ,KAAkB,EAC/CkH,EAAIP,EAAa,EAAQ,KAAsB,CAAC,EAChDsuD,EAAUt1D,EAAgB,EAAQ,KAAS,CAAC,EAC5Cu1D,EAAgB,IAChBC,EAAe,CAAC,CAAE,SAAA/tD,CAAS,IAAM,CACnC,KAAM,CAAE,EAAAL,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5Co/B,KAAe9nC,EAAmB,aAAa,EACrD,SAAIF,EAAQ,WAAW,IAAM,CACzB,MAAMiuB,EAAQ,WAAW,IAAM,CAC3B+Z,EAASotB,CAAa,CAC1B,EAAG,GAAK,EACR,MAAO,IAAM,aAAannC,CAAK,CACnC,EAAG,CAAC+Z,CAAQ,CAAC,EACLhoC,EAAQ,QAAQ,cAAcA,EAAQ,QAAQ,SAAU,KAC5DsH,EACAtH,EAAQ,QAAQ,cAAcoH,EAAE,cAAe,KAC3CpH,EAAQ,QAAQ,cAAcoH,EAAE,iBAAkB,KAC9CpH,EAAQ,QAAQ,cAAcm1D,EAAQ,QAAS,IAAI,EACnDn1D,EAAQ,QAAQ,cAAcoH,EAAE,YAAa,KACzCH,EAAE,sBAAsB,EACxB,GAAG,EACPjH,EAAQ,QAAQ,cAAcoH,EAAE,WAAY,CAAE,QAAS,IAAM4gC,EAASotB,CAAa,CAAE,EAAGnuD,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CACnI,EACAlH,EAAQ,aAAes1D,C,qCCrDvB,IAAIhvD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAUH,EAAgB,EAAQ,KAAO,CAAC,EAC1C+I,EAAkB,EAAQ,KAAe,EACzCxB,EAAIP,EAAa,EAAQ,KAAsB,CAAC,EAChDyuD,EAAU,IAAM,CAClB,KAAM,CAAE,EAAAruD,CAAE,KAAQ2B,EAAgB,gBAAgB,EAClD,OAAQ5I,EAAQ,QAAQ,cAAcoH,EAAE,MAAO,KAC3CH,EAAE,qBAAqB,EACvBjH,EAAQ,QAAQ,cAAcoH,EAAE,IAAK,CAAE,MAAO,IAAK,EAAG,GAAG,EACzDpH,EAAQ,QAAQ,cAAcoH,EAAE,IAAK,CAAE,MAAO,MAAO,EAAG,GAAG,EAC3DpH,EAAQ,QAAQ,cAAcoH,EAAE,IAAK,CAAE,MAAO,MAAO,EAAG,GAAG,CAAC,CACpE,EACArH,EAAA,QAAkBu1D,C,qCCtClB,IAAIjvD,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIqF,EAAgB,MAAQ,KAAK,cAAiB,SAAS,EAAG9L,EAAS,CACnE,QAASmH,KAAK,EAAOA,IAAM,WAAa,CAAC,OAAO,UAAU,eAAe,KAAKnH,EAASmH,CAAC,GAAGb,EAAgBtG,EAAS,EAAGmH,CAAC,CAC5H,EACA,OAAO,eAAenH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D8L,EAAa,EAAQ,KAAgB,EAAG9L,CAAO,C,qCCf/C,IAAIsH,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,cAAgBA,EAAQ,QAAUA,EAAQ,WAAa,OAC/D,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCC,EAAe,CACjB,eAAgB,KAChB,YAAa,KACb,QAAS,GACT,QAAS,EACb,EACMC,KAAmBF,EAAU,aAAa,CAC5C,KAAM,UACN,aAAAC,EACA,SAAU,CACN,WAAY,CAACjsD,EAAOmsD,IAAW,CAC3BnsD,EAAM,eAAiBmsD,EAAO,OAClC,EACA,QAAS,CAACnsD,EAAOmsD,IAAW,CACxBnsD,EAAM,YAAcmsD,EAAO,OAC/B,EACA,cAAe,CAACnsD,EAAOmsD,IAAW,CAC9BnsD,EAAM,QAAUmsD,EAAO,OAC3B,CACJ,CACJ,CAAC,EACDruD,EAAKouD,EAAa,QAAS11D,EAAQ,WAAasH,EAAG,WAAYtH,EAAQ,QAAUsH,EAAG,QAAStH,EAAQ,cAAgBsH,EAAG,cACxHtH,EAAA,QAAkB01D,EAAa,O,qCC1B/B,IAAIn+C,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACInQ,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,2BAA6BA,EAAQ,yBAA2BA,EAAQ,wBAA0BA,EAAQ,cAAgBA,EAAQ,kBAAoB,OAC9J,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,aAAc,GACd,WAAY,CAAC,EACb,OAAQ,OACR,MAAO,IACX,EACAz1D,EAAQ,qBAAwBw1D,EAAU,kBAAkB,2BAA4B,CAACn0D,EAAS,CAAE,gBAAA20D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACrK,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,cAAcx0D,CAAO,CAAC,GACvF,IACpB,OACOkhB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,oBACR,SAAUszC,EAAe,cAAc,cAAcx0D,CAAO,CAChE,CACJ,EACA,SAAI00D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACF,MAAMC,KAAoBV,EAAU,aAAa,CAC7C,KAAM,WACN,aAAAC,EACA,SAAU,CACN,cAAgBjsD,GAAU,CACtBA,EAAM,WAAa,CAAC,CACxB,EACA,wBAAwBA,EAAOmsD,EAAQ,CACnCnsD,EAAM,aAAemsD,EAAO,OAChC,CACJ,EACA,cAAgBQ,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,kBAAkB,QAAUwJ,GAAU,CACvDA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,kBAAkB,UAAW,CAACwJ,EAAOmsD,IAAW,CACjEnsD,EAAM,OAAS,YACfA,EAAM,WAAamsD,EAAO,QAC1BnsD,EAAM,aAAe,GACrBA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,kBAAkB,SAAU,CAACwJ,EAAOmsD,IAAW,CAChEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,EACpEnsD,EAAM,aAAe,EACzB,CAAC,CACL,CACJ,CAAC,EACDlC,EAAK4uD,EAAc,QAASl2D,EAAQ,cAAgBsH,EAAG,cAAetH,EAAQ,wBAA0BsH,EAAG,wBAC3GtH,EAAA,QAAkBk2D,EAAc,QAChC,MAAME,EAA4B5sD,GAAUA,EAAM,SAAS,WAC3DxJ,EAAQ,yBAA2Bo2D,EACnC,MAAMC,EAA8B7sD,GAAUA,EAAM,SAAS,aAC7DxJ,EAAQ,2BAA6Bq2D,C,qCC5ErC,IAAI9+C,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqBA,EAAQ,cAAgB,OACrD,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,KAAM,CACF,YAAa,CAAC,EACd,MAAO,EACX,EACA,OAAQ,OACR,MAAO,IACX,EACAz1D,EAAQ,iBAAoBw1D,EAAU,kBAAkB,wBAAyB,CAACc,EAAa,CAAE,gBAAAN,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAClK,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,kBAAkBS,EAAY,YAAaA,EAAY,KAAK,CAAC,GAC9H,IACpB,OACO/zC,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,gBACR,SAAUszC,EAAe,cAAc,kBAAkBS,EAAY,YAAaA,EAAY,KAAK,CACvG,CACJ,EACA,SAAIP,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACFj2D,EAAQ,sBAAyBw1D,EAAU,aAAa,CACpD,KAAM,UACN,aAAAC,EACA,SAAU,CAAC,EACX,cAAgBU,GAAY,CACxBA,EAAQ,QAAQn2D,EAAQ,cAAc,UAAW,CAACwJ,EAAOmsD,IAAW,CAChEnsD,EAAM,OAAS,YACfA,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,MAAQ,IAClB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,cAAc,SAAU,CAACwJ,EAAOmsD,IAAW,CAC/DnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,EACpEnsD,EAAM,KAAOisD,EAAa,IAC9B,CAAC,CACL,CACJ,CAAC,EACDz1D,EAAA,QAAkBA,EAAQ,mBAAmB,O,qCC3D7C,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,+BAAiCA,EAAQ,8BAAgCA,EAAQ,mCAAqCA,EAAQ,0BAA4BA,EAAQ,wBAA0BA,EAAQ,gCAAkCA,EAAQ,+BAAiC,OACvR,MAAMu2D,EAAa,EAAQ,KAAU,EAC/Bt7C,EAAwB,EAAQ,KAAuB,EACvDu7C,EAAkChtD,GAAUA,EAAM,cAAc,eACtExJ,EAAQ,+BAAiCw2D,EACzC,MAAMC,EAAmCjtD,GAAUA,EAAM,cAAc,gBACvExJ,EAAQ,gCAAkCy2D,EAC1C,MAAMC,EAAsCltD,GAAUA,EAAM,cAAc,SAAW,YACrFxJ,EAAQ,mCAAqC02D,EAC7C,MAAMC,EAA4BntD,GAAUA,EAAM,cAC5CotD,KAAoCL,EAAW,gBAAgB,CAACI,CAAwB,EAAIE,GAAuBA,EAAmB,uBAAuB,EACnK72D,EAAQ,8BAAgC42D,EACxC,MAAME,KAAqCP,EAAW,gBAAgB,CAACI,CAAwB,EAAIE,GAAuBA,EAAmB,wBAAwB,EACrK72D,EAAQ,+BAAiC82D,EACzC,MAAMC,EAAwBrhC,GAAaA,EAAS,IAAI,CAAC,CAAE,GAAAj2B,EAAI,MAAA+K,EAAO,qBAAAmK,EAAsB,eAAAqiD,EAAgB,aAAAC,EAAc,SAAA3gB,EAAU,UAAAC,EAAW,QAAA2gB,EAAS,uBAAAC,CAAwB,IAAM,CAClL,MAAMC,EAAcF,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC,GAAK,CAAC,EACzD,MAAO,CACH,GAAAz3D,EACA,MAAA+K,EACA,YAAa4sD,GAAgB,KAAiC,OAASA,EAAY,aAAe,GAClG,qBAAAziD,EACA,UAAWqiD,EACX,QAASC,EACT,aAAcE,GAA0BxiD,EACxC,MAAO,CACH,IAAK2hC,EACL,IAAKC,EACL,SAAU6gB,EAAY,GAAG,SAAS,GAAK,GAC3C,EACA,SAAUA,EAAY,IAAM,CAChC,CACJ,CAAC,EACKC,KAA2Bd,EAAW,gBAAgB,CACxDC,EACAC,EACA,CAAC3Y,EAAGvqB,IAASA,CACjB,EAAG,CAAC+jC,EAAgBC,EAAiBhkC,IAC1BA,IAAStY,EAAsB,mBAAmB,OACnDq8C,EACAC,CACT,EACKC,KAAsCjB,EAAW,gBAAgB,CAACc,CAAoB,EAAI3hC,GAAaqhC,EAAqBrhC,CAAQ,CAAC,EACrI+hC,KAAgClB,EAAW,gBAAgB,CAACiB,CAA+B,EAAIE,GAC1FA,EAAoB,IAAI,CAAC,CAAE,GAAAj4D,EAAI,MAAA+K,EAAO,WAAAvI,EAAY,qBAAA0S,EAAsB,aAAA4hB,EAAc,UAAA3zB,EAAW,QAAAC,EAAS,MAAAs+B,CAAO,KAAO,CAC3H,GAAA1hC,EACA,MAAA+K,EACA,WAAAvI,EACA,UAAAW,EACA,QAAAC,EACA,qBAAA8R,EACA,aAAA4hB,EACA,MAAA4K,CACJ,EAAE,CACL,EACDnhC,EAAQ,0BAA4By3D,EACpC,MAAME,KAA8BpB,EAAW,gBAAgB,CAACiB,CAA+B,EAAIE,GACxFA,EAAoB,IAAI,CAAC,CAAE,GAAAj4D,EAAI,MAAA+K,EAAO,WAAAvI,EAAY,aAAAs0B,EAAc,UAAA3zB,EAAW,QAAAC,EAAS,SAAAF,CAAU,KAAO,CACxG,GAAAlD,EACA,MAAA+K,EACA,WAAAvI,EACA,aAAAs0B,EACA,UAAA3zB,EACA,QAAAC,EACA,SAAAF,CACJ,EAAE,CACL,EACD3C,EAAQ,wBAA0B23D,C,qCCnElC,IAAIpgD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,cAAgBA,EAAQ,0BAA4BA,EAAQ,yBAA2B,OAC/F,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClD96C,EAAwB,EAAQ,KAAuB,EACvDw6C,EAAe,CACjB,uBAAwB,EACxB,eAAgB,CAAC,EACjB,gBAAiB,CAAC,EAClB,wBAAyB,GACzB,yBAA0B,GAC1B,OAAQ,OACR,MAAO,IACX,EACMmC,EAA0B,CAACrkC,EAAMskC,OACxBrC,EAAU,kBAAkB,iBAAiBjiC,EAAK,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,CAAC,gBAAiB,CAACukC,EAAc,CAAE,gBAAA9B,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACvM,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIiC,EAASC,EAAa,OAAO,CAAC,GAClE,IACpB,OACOv1C,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,QAAQgR,EAAK,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,CAAC,gBAC5D,SAAUskC,EAASC,EAAa,OAAO,CAC3C,CACJ,EACA,SAAI/B,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,EAAG,CACA,UAAW,CAACnY,EAAG,CAAE,SAAAia,CAAS,IAAM,CAC5B,KAAM,CAAE,cAAAC,CAAc,EAAID,EAAS,EACnC,OAAOC,EAAc,SAAW,SACpC,CACJ,CAAC,EAELh4D,EAAQ,yBAA2B43D,EAAwB38C,EAAsB,mBAAmB,OAAQ46C,EAAe,cAAc,wBAAwB,EACjK71D,EAAQ,0BAA4B43D,EAAwB38C,EAAsB,mBAAmB,QAAS46C,EAAe,cAAc,yBAAyB,EACpK,MAAMoC,KAAyBzC,EAAU,aAAa,CAClD,KAAM,gBACN,aAAAC,EACA,SAAU,CACN,cAAcjsD,EAAO,CACjBA,EAAM,uBAAyB,EAC/BA,EAAM,eAAiB,CAAC,EACxBA,EAAM,gBAAkB,CAAC,EACzBA,EAAM,wBAA0B,GAChCA,EAAM,yBAA2B,GACjCA,EAAM,OAAS,OACfA,EAAM,MAAQ,IAClB,CACJ,EACA,cAAgB2sD,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,yBAAyB,QAAUwJ,GAAU,CAC9DA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,yBAAyB,UAAW,CAACwJ,EAAOmsD,IAAW,CACxEnsD,EAAM,OAAS,YACfA,EAAM,eAAiBmsD,EAAO,QAAQ,SACtCnsD,EAAM,uBAAyBmsD,EAAO,QAAQ,uBAC9CnsD,EAAM,wBAA0B,GAChCA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,yBAAyB,SAAU,CAACwJ,EAAOmsD,IAAW,CACvEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,CACxE,CAAC,EACDQ,EACK,QAAQn2D,EAAQ,0BAA0B,QAAUwJ,GAAU,CAC/DA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,0BAA0B,UAAW,CAACwJ,EAAOmsD,IAAW,CACzE,IAAIruD,EACJkC,EAAM,OAAS,YACfA,EAAM,gBAAoB,GAAAlC,EAAKquD,EAAO,QAAU,MAAQruD,IAAO,SAAkBA,EAAG,IAAI,aAClF,CAAC,GAAGkC,EAAM,gBAAiB,GAAGmsD,EAAO,QAAQ,QAAQ,EACrDA,EAAO,QAAQ,SACrBnsD,EAAM,uBAAyBmsD,EAAO,QAAQ,uBAC9CnsD,EAAM,yBAA2B,GACjCA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,0BAA0B,SAAU,CAACwJ,EAAOmsD,IAAW,CACxEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,CACxE,CAAC,CACL,CACJ,CAAC,EACD31D,EAAQ,cAAgBi4D,EAAmB,QAAQ,cACnDj4D,EAAA,QAAkBi4D,EAAmB,O,qCC1GrC,IAAIn4D,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,wBAA0BA,EAAQ,2BAA6BA,EAAQ,sBAAwBA,EAAQ,oBAAsBA,EAAQ,wBAA0BA,EAAQ,yBAA2BA,EAAQ,iCAAmCA,EAAQ,gBAAkBA,EAAQ,gBAAkBA,EAAQ,uBAAyB,OAC1U,MAAMw1D,EAAY,EAAQ,KAAkB,EACtC3nD,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CkO,EAAe,EAAQ,IAAqB,EAC5CkqD,EAAkB,EAAQ,KAAwB,EAClDhiD,EAAqB,EAAQ,GAA2B,EACxDiiD,EAAyB3uD,GACpBA,EAAM,YAAY,KAE7BxJ,EAAQ,sBAAwBm4D,EAChC,MAAMC,EAAqB5uD,GAAUA,EAAM,YACrC6uD,KAA0B7C,EAAU,gBAAgB,CAAC4C,CAAiB,EAAI/L,GAAgB,CAC5F,KAAM,CAAE,wBAAAiM,EAAyB,oBAAAx6B,EAAqB,oBAAAC,CAAqB,EAAIsuB,EACzE56C,KAAUyE,EAAmB,cAAc4nB,CAAmB,EAC9D,KAAK,MAAMA,CAAmB,EAC9B,KACAjsB,KAAUqE,EAAmB,cAAc6nB,CAAmB,EAC9D,KAAK,MAAMA,CAAmB,EAC9B,KACA0mB,KAAUvuC,EAAmB,cAAcoiD,CAAuB,EAClE,KAAK,MAAMA,CAAuB,EAClC,KACN,MAAO,CACH,oBAAqB7mD,EACrB,oBAAqBI,EACrB,aAAc4yC,CAClB,CACJ,CAAC,EACDzkD,EAAQ,oBAAsBq4D,EAC9B,MAAME,EAA0B/uD,GAAU,CACtC,KAAM,CAAE,oBAAAgvD,CAAoB,EAAIL,EAAsB3uD,CAAK,EAC3D,SAAW0uD,EAAgB,mBAAmBM,CAAmB,CACrE,EACMC,KAAiCjD,EAAU,gBAAgB,CAAC2C,EAAuBI,CAAsB,EAAG,CAACvrB,EAAiB0rB,IAAqB,CACrJ,KAAM,CAAE,MAAO/jD,EAAsB,KAAAiC,CAAK,EAAI8hD,GAAoB,CAAC,EAC7D9jD,KAA+B/G,EAAS,SAAS+I,CAAI,EAAE,OAAO,OAAO,EACrEnC,EAAa5G,EAAS,QACvB,IAAIm/B,EAAgB,OAAO,OAAO,EAClC,OAAO,kBAAkB,EACxBpqC,EAAYiL,EAAS,QACtB,IAAIm/B,EAAgB,OAAO,SAAS,EACpC,OAAOh/B,EAAa,WAAW,YAAY,EAC1CnL,EAAUgL,EAAS,QACpB,IAAIm/B,EAAgB,OAAO,OAAO,EAClC,OAAOh/B,EAAa,WAAW,YAAY,EAC1C6G,EAASm4B,EAAgB,OAAO,OAChC,CAAE,IAAAv7B,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAI,EAAIm7B,EAAgB,OAClD2rB,EAA4B,CAC9B,GAAG3rB,EAAgB,mBACvB,EAAE,KAAK,CAACz9B,EAAGC,OAAU3B,EAAS,SAAS2B,EAAE,IAAI,EAAE,QAAQ,KAAQ3B,EAAS,SAAS0B,EAAE,IAAI,EAAE,QAAQ,CAAC,EAC5FqpD,EAAsBD,EAA0B,CAAC,EACjDE,EAAqBD,EACrB,OAAOA,EAAoB,KAAK,EAChC,EACAE,EAAaH,EAA0B,OAAS,EAChD9qD,EAAS,QAAQ,IAAI,KAAK,IAAI,GAAG8qD,EAA0B,IAAKnyD,GAAM,OAAOA,EAAE,IAAI,CAAC,CAAC,CAAC,KAClFqH,EAAS,SAAS,EACtBkrD,EAAwBJ,EAA0B,OAAQnyD,MAAUqH,EAAS,SAAS,OAAOrH,EAAE,IAAI,CAAC,EAAE,OAAOsyD,EAAY,KAAK,CAAC,EAC/H/6B,EAAsB,KAAK,IAAI,GAAGg7B,EAAsB,IAAKvyD,GAAMA,EAAE,KAAK,CAAC,EAC3Es3B,EAAsB,KAAK,IAAI,GAAGi7B,EAAsB,IAAKvyD,GAAMA,EAAE,KAAK,CAAC,EACjF,OAAO,OAAO,OAAO,OAAO,OAAO,CAAC,EAAGwmC,EAAgB,MAAM,EAAG,CAAE,qBAAAr4B,EAC9D,yBAAAC,EACA,WAAAH,EACA,OAAAI,EACA,IAAApD,EACA,IAAAC,EACA,OAAAC,EACA,KAAAC,EACA,IAAAC,EACA,oBAAAisB,EACA,oBAAAC,EAAqB,aAAc86B,EAAoB,UAAAj2D,EACvD,QAAAC,EAAS,SAAUmqC,EAAgB,OAAO,SAAU,UAAWA,EAAgB,OAAO,SAAU,CAAC,CACzG,CAAC,EACDhtC,EAAQ,2BAA6By4D,EACrC,MAAMO,EAA2BxvD,GAAUA,EAAM,YAAY,OAC7DxJ,EAAQ,wBAA0Bg5D,EAClC,MAAMC,EAA0BzvD,GAAUA,EAAM,YAChDxJ,EAAQ,uBAAyBi5D,EACjCj5D,EAAQ,mBAAsBw1D,EAAU,gBAAgB,CAACx1D,EAAQ,sBAAsB,EAAIqsD,GAAgBA,EAAY,IAAI,EAC3HrsD,EAAQ,mBAAsBw1D,EAAU,gBAAgB,CAACx1D,EAAQ,sBAAsB,EAAIqsD,GAAgBA,EAAY,SAAS,EAChIrsD,EAAQ,oCAAuCw1D,EAAU,gBAAgB,CAACx1D,EAAQ,sBAAsB,EAAIqsD,GAAgBA,EAAY,qBAAqB,EAC7JrsD,EAAQ,4BAA+Bw1D,EAAU,gBAAgB,CAC7Dx1D,EAAQ,uBACR,CAACk5D,EAAQv2D,IAAaA,CAC1B,EAAG,CAAC0pD,EAAa1pD,IACNA,EAAW0pD,EAAY,KAAK,cAAgB,CAAC,EAAI,CAAC,CAC5D,EACDrsD,EAAQ,2BAA8Bw1D,EAAU,gBAAgB,CAC3DhsD,GAAUA,EAAM,YAAY,kBAC7B,CAACs0C,EAAGn7C,IAAaA,CACrB,EAAG,CAAC6/B,EAAmB7/B,IAAa6/B,EAAkB7/B,CAAQ,GAAK,CAAC,CAAC,C,qCC9FrE,IAAI4U,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACInQ,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,uBAAyBA,EAAQ,wBAA0BA,EAAQ,eAAiBA,EAAQ,8BAAgCA,EAAQ,yBAA2BA,EAAQ,wBAA0BA,EAAQ,2BAA6BA,EAAQ,yBAA2BA,EAAQ,sBAAwBA,EAAQ,+BAAiCA,EAAQ,sBAAwBA,EAAQ,kBAAoBA,EAAQ,qBAAuB,OACrb,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9Ct8B,EAAc,EAAQ,KAAoB,EAC1Cu8B,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,KAAM,CACF,OAAQ,CACJ,MAAO,GACP,QAAS,GACT,WAAY,GACZ,WAAY,GACZ,WAAY,GACZ,gBAAiB,GACjB,OAAQ,GACR,UAAW,EACX,UAAW,GACX,QAAS,GACT,IAAK,EACL,IAAK,EACL,OAAQ,EACR,KAAM,EACN,IAAK,EACL,SAAU,EACV,UAAW,CACf,EACA,aAAc,CAAC,EACf,oBAAqB,CAAC,EACtB,sBAAuB,CAAC,CAC5B,EACA,iBAAkB,KAClB,oBAAqB,KACrB,oBAAqB,KACrB,wBAAyB,KACzB,OAAQ,OACR,MAAO,KACP,UAAW,GACX,sBAAuBl8B,EAAY,eAAe,IAClD,aAAc,CAAC,EACf,kBAAmB,CAAC,CACxB,EACAv5B,EAAQ,wBAA2Bw1D,EAAU,kBAAkB,sBAAuB,CAAC/1D,EAAI,CAAE,gBAAAu2D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAC9J,GAAI,CAEA,OADiB,MAAMq+C,EAAY,UAAU,IAAIC,EAAe,cAAc,qBAAqBp2D,CAAE,CAAC,GACtF,IACpB,OACO8iB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,uBACR,SAAUszC,EAAe,cAAc,qBAAqBp2D,CAAE,CAClE,CACJ,EACA,SAAIs2D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACFj2D,EAAQ,qBAAwBw1D,EAAU,kBAAkB,gCAAiC,CAACh0D,EAAQ,CAAE,gBAAAw0D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACzK,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,kBAAkBr0D,EAAO,SAAUA,EAAO,UAAWA,EAAO,OAAO,CAAC,GACrI,IACpB,OACO+gB,EAAO,CACV,OAAOyzC,KAAoBF,EAAkB,iBAAiBvzC,CAAK,CAAC,CACxE,CACJ,CAAC,CAAC,EACFviB,EAAQ,yBAA4Bw1D,EAAU,kBAAkB,oCAAqC,CAAC,CAAE,SAAA7yD,EAAU,MAAA+/B,EAAO,IAAAC,CAAI,EAAG,CAAE,SAAAo1B,CAAS,IAAMxgD,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAG5L,OAFcwgD,EAAS,EACK,YAAY,kBAAkBp1D,CAAQ,GAAK,CAAC,GACnD,KAAMg9B,GAAUA,EAAM,OAAS+C,GAAS/C,EAAM,KAAOgD,CAAG,CACjF,CAAC,CAAC,EACF,MAAMw2B,KAAuB3D,EAAU,aAAa,CAChD,KAAM,cACN,aAAAC,EACA,SAAU,CACN,+BAA+BjsD,EAAOmsD,EAAQ,CAC1C,KAAM,CAAE,IAAAlkD,EAAK,IAAAI,CAAI,EAAI8jD,EAAO,QAGtByD,GAFe5vD,EAAM,KAAK,cAAgB,CAAC,GAER,OAAQhD,GAAMA,EAAE,MAAQiL,GAAOjL,EAAE,MAAQqL,CAAG,EACrF,GAAIunD,EAAoB,OAAS,EAAG,CAEhC,KAAM,CAAE,IAAKC,EAAU,IAAKC,EAAU,IAAA5gB,CAAK,EAAI0gB,EAAoB,OAAO,CAAC91B,EAAKpC,KAAiB,CAC7F,IAAK,KAAK,IAAIoC,EAAI,IAAKpC,EAAY,KAAK,EACxC,IAAK,KAAK,IAAIoC,EAAI,IAAKpC,EAAY,KAAK,EACxC,IAAKoC,EAAI,IAAMpC,EAAY,KAC/B,GAAI,CACA,IAAKk4B,EAAoB,CAAC,EAAE,MAC5B,IAAKA,EAAoB,CAAC,EAAE,MAC5B,IAAK,CACT,CAAC,EACD5vD,EAAM,oBAAsB6vD,EAC5B7vD,EAAM,oBAAsB8vD,EAC5B9vD,EAAM,wBAA0BkvC,EAAM0gB,EAAoB,MAC9D,MAEI5vD,EAAM,oBAAsB,KAC5BA,EAAM,oBAAsB,KAC5BA,EAAM,wBAA0B,IAExC,EACA,sBAAsBA,EAAO,CACzB,OAAOisD,CACX,EACA,yBAAyBjsD,EAAOmsD,EAAQ,CACpCnsD,EAAM,sBAAwBmsD,EAAO,QACrC,aAAa,QAAQ,wBAAyBA,EAAO,OAAO,CAChE,EACA,2BAA2BnsD,EAAO,CAC9BA,EAAM,sBAAwB+vB,EAAY,eAAe,IACzD,aAAa,QAAQ,wBAAyBA,EAAY,eAAe,GAAG,CAChF,EACA,wBAAwB/vB,EAAOmsD,EAAQ,CACnCnsD,EAAM,KAAK,aAAe,CAAC,CAC/B,EACA,yBAAyBA,EAAOmsD,EAAQ,CACpC,KAAM,CAAE,aAAA96B,CAAa,EAAI86B,EAAO,QAC1B4D,EAAuB/vD,EAAM,KAAK,cAAgB,CAAC,EACnDgwD,EAAc,IAAI,IAAID,EAAqB,IAAK/yD,GAAM,CAACA,EAAE,KAAMA,CAAC,CAAC,CAAC,EACxEq0B,EAAa,QAASqG,GAAgB,CAC7Bs4B,EAAY,IAAIt4B,EAAY,IAAI,GACjCs4B,EAAY,IAAIt4B,EAAY,KAAMA,CAAW,CAErD,CAAC,EACD13B,EAAM,KAAK,aAAe,MAAM,KAAKgwD,EAAY,OAAO,CAAC,EAAE,KAAK,CAACjqD,EAAGC,IAAMD,EAAE,KAAOC,EAAE,IAAI,CAC7F,EACA,8BAA8BhG,EAAO,CACjCA,EAAM,oBAAsB,KAC5BA,EAAM,oBAAsB,KAC5BA,EAAM,wBAA0B,IACpC,EACA,eAAiBA,GAAU,CACvBA,EAAM,sBAAwB+vB,EAAY,eAAe,IACzD,aAAa,QAAQ,wBAAyBA,EAAY,eAAe,GAAG,CAChF,EACA,wBAAyB,CAAC/vB,EAAOmsD,IAAW,CACxC,KAAM,CAAE,SAAAhzD,EAAU,MAAA+/B,EAAO,IAAAC,CAAI,EAAIgzB,EAAO,QACnCnsD,EAAM,kBAAkB7G,CAAQ,IACjC6G,EAAM,kBAAkB7G,CAAQ,EAAI,CAAC,GAEzC6G,EAAM,kBAAkB7G,CAAQ,EAAE,KAAK,CAAE,MAAA+/B,EAAO,IAAAC,CAAI,CAAC,CACzD,EACA,uBAAwB,CAACn5B,EAAOmsD,IAAW,CACvC,MAAMhzD,EAAWgzD,EAAO,QACpBnsD,EAAM,kBAAkB7G,CAAQ,IAChC6G,EAAM,kBAAkB7G,CAAQ,EAAI,CAAC,EAE7C,CACJ,EACA,cAAgBwzD,GAAY,CACxBA,EAAQ,QAAQn2D,EAAQ,qBAAqB,QAAUwJ,GAAU,CAC7DA,EAAM,OAAS,UACfA,EAAM,MAAQ,KACdA,EAAM,UAAY,EACtB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,qBAAqB,UAAW,CAACwJ,EAAOmsD,IAAW,CACvEnsD,EAAM,OAAS,YACfA,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,UAAY,GAClBA,EAAM,MAAQ,IAClB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,qBAAqB,SAAU,CAACwJ,EAAOmsD,IAAW,CACtEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAC5B,QAAS,wCACb,EACAnsD,EAAM,KAAOisD,EAAa,KAC1BjsD,EAAM,UAAY,EACtB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,kBAAkB,QAAUwJ,GAAU,CAC1DA,EAAM,OAAS,UACfA,EAAM,MAAQ,KACdA,EAAM,UAAY,EACtB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,kBAAkB,UAAW,CAACwJ,EAAOmsD,IAAW,CACpE,IAAIruD,EAAI8O,EAAIqjD,EAAIC,EAAIC,EAAIC,EAIxB,GAHApwD,EAAM,OAAS,YACfA,EAAM,MAAQ,KACG,QAAQ4M,GAAM9O,EAAKquD,EAAO,QAAU,MAAQruD,IAAO,OAAS,OAASA,EAAG,OAAS,MAAQ8O,IAAO,OAAS,OAASA,EAAG,QAAQ,EAChI,CACV,MAAMmjD,EAAuB/vD,EAAM,KAAK,cAAgB,CAAC,EACnDgwD,EAAc,IAAI,IAAID,EAAqB,IAAK/yD,GAAM,CAACA,EAAE,KAAMA,CAAC,CAAC,CAAC,EAQxE,GAPAmvD,EAAO,QAAQ,QAASz0B,GAAgB,CAC/Bs4B,EAAY,IAAIt4B,EAAY,IAAI,GACjCs4B,EAAY,IAAIt4B,EAAY,KAAMA,CAAW,CAErD,CAAC,EACD13B,EAAM,KAAK,aAAe,MAAM,KAAKgwD,EAAY,OAAO,CAAC,EAAE,KAAK,CAACjqD,EAAGC,IAAMD,EAAE,KAAOC,EAAE,IAAI,EAErFhG,EAAM,KAAK,aAAa,OAAS,EAAG,CAEpC,MAAM5G,EAAY,QAAQ82D,GAAMD,EAAK9D,EAAO,QAAU,MAAQ8D,IAAO,OAAS,OAASA,EAAG,OAAS,MAAQC,IAAO,OAAS,OAASA,EAAG,SAAS,EAC1I72D,EAAU,QAAQ+2D,GAAMD,EAAKhE,EAAO,QAAU,MAAQgE,IAAO,OAAS,OAASA,EAAG,OAAS,MAAQC,IAAO,OAAS,OAASA,EAAG,OAAO,EAEtIR,EAAsB5vD,EAAM,KAAK,aAAa,OAAQhD,GAAMA,EAAE,MAAQ5D,GAAa4D,EAAE,MAAQ3D,CAAO,EAC1G,GAAIu2D,EAAoB,OAAS,EAAG,CAEhC,KAAM,CAAE,IAAKC,EAAU,IAAKC,EAAU,IAAA5gB,CAAK,EAAI0gB,EAAoB,OAAO,CAAC91B,EAAKpC,KAAiB,CAC7F,IAAK,KAAK,IAAIoC,EAAI,IAAKpC,EAAY,KAAK,EACxC,IAAK,KAAK,IAAIoC,EAAI,IAAKpC,EAAY,KAAK,EACxC,IAAKoC,EAAI,IAAMpC,EAAY,KAC/B,GAAI,CACA,IAAKk4B,EAAoB,CAAC,EAAE,MAC5B,IAAKA,EAAoB,CAAC,EAAE,MAC5B,IAAK,CACT,CAAC,EACD5vD,EAAM,oBAAsB6vD,EAC5B7vD,EAAM,oBAAsB8vD,EAC5B9vD,EAAM,wBAA0BkvC,EAAM0gB,EAAoB,MAC9D,CACJ,CACJ,CACJ,CAAC,EACDjD,EAAQ,QAAQn2D,EAAQ,kBAAkB,SAAU,CAACwJ,EAAOmsD,IAAW,CACnEnsD,EAAM,OAAS,WACfA,EAAM,MAAQ,CACV,QAAUmsD,EAAO,OAASA,EAAO,MAAM,SACnC,8CACR,CACJ,CAAC,EACDQ,EAAQ,QAAQn2D,EAAQ,2BAA6BwJ,GAAU,CAC3DA,EAAM,sBAAwB+vB,EAAY,eAAe,GAC7D,CAAC,CACL,CACJ,CAAC,EACDjyB,EAAK6xD,EAAiB,QAASn5D,EAAQ,+BAAiCsH,EAAG,+BAAgCtH,EAAQ,sBAAwBsH,EAAG,sBAAuBtH,EAAQ,yBAA2BsH,EAAG,yBAA0BtH,EAAQ,2BAA6BsH,EAAG,2BAA4BtH,EAAQ,wBAA0BsH,EAAG,wBAAyBtH,EAAQ,yBAA2BsH,EAAG,yBAA0BtH,EAAQ,8BAAgCsH,EAAG,8BAA+BtH,EAAQ,eAAiBsH,EAAG,eAAgBtH,EAAQ,wBAA0BsH,EAAG,wBAAyBtH,EAAQ,uBAAyBsH,EAAG,uBAC/nBtH,EAAA,QAAkBm5D,EAAiB,O,qCCjPnC,OAAO,eAAen5D,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,eAAiBA,EAAQ,eAAiB,OAClD,MAAME,EAAgB,EAAQ,KAAa,EAC3CF,EAAQ,eAAiBE,EAAc,YACvCF,EAAQ,eAAiBE,EAAc,W,qCCJvC,IAAIJ,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkB,OAC1B,MAAMw1D,EAAY,EAAQ,KAAkB,EACtC9e,EAAiB52C,EAAgB,EAAQ,KAAgB,CAAC,EAC1DykB,EAAkBzkB,EAAgB,EAAQ,KAAiB,CAAC,EAC5D6iB,EAAuB7iB,EAAgB,EAAQ,KAAsB,CAAC,EACtE8J,EAAuB9J,EAAgB,EAAQ,KAAsB,CAAC,EACtEoe,EAAqBpe,EAAgB,EAAQ,KAAoB,CAAC,EAClEiqC,EAAwBjqC,EAAgB,EAAQ,KAAuB,CAAC,EACxEwpB,EAAqB,EAAQ,KAAoB,EACvD,OAAO,eAAetpB,EAAS,kBAAmB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOspB,EAAmB,eAAiB,CAAE,CAAE,EACxI,MAAMzf,EAAa/J,EAAgB,EAAQ,KAAY,CAAC,EAClDkqC,EAAwBlqC,EAAgB,EAAQ,KAAuB,CAAC,EACxEiJ,EAAwBjJ,EAAgB,EAAQ,KAAuB,CAAC,EACxEqe,EAAsBre,EAAgB,EAAQ,KAAqB,CAAC,EACpEgO,EAA8BhO,EAAgB,EAAQ,KAA6B,CAAC,EACpFkJ,EAA4BlJ,EAAgB,EAAQ,KAA2B,CAAC,EAChF4xC,EAAmB5xC,EAAgB,EAAQ,KAAkB,CAAC,EAC9DomB,EAAiBpmB,EAAgB,EAAQ,KAAgB,CAAC,EAC1Dmb,EAAwBnb,EAAgB,EAAQ,KAAuB,CAAC,EACxE2S,EAAmB3S,EAAgB,EAAQ,KAAkB,CAAC,EAC9DoqC,EAAmBpqC,EAAgB,EAAQ,KAAkB,CAAC,EAC9D+5D,KAAYrE,EAAU,gBAAgB,CACxC,QAAS,CACL,QAAS9e,EAAe,QACxB,SAAUnyB,EAAgB,QAC1B,cAAe3a,EAAqB,QACpC,YAAasU,EAAmB,QAChC,eAAgB6rB,EAAsB,QACtC,IAAKlgC,EAAW,QAChB,eAAgBmgC,EAAsB,QACtC,eAAgBjhC,EAAsB,QACtC,aAAcoV,EAAoB,QAClC,qBAAsBrQ,EAA4B,QAClD,mBAAoB9E,EAA0B,QAC9C,UAAW0oC,EAAiB,QAC5B,QAASxrB,EAAe,QACxB,QAASvD,EAAqB,QAC9B,cAAe1H,EAAsB,QACrC,UAAWxI,EAAiB,QAC5B,UAAWy3B,EAAiB,OAChC,CACJ,CAAC,EACDlqC,EAAA,QAAkB65D,C,qCC9ClB,OAAO,eAAe75D,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,oCAAsCA,EAAQ,0BAA4BA,EAAQ,2BAA6BA,EAAQ,yBAA2B,OAC1J,MAAMu2D,EAAa,EAAQ,KAAU,EAC/BuD,EAA6BtwD,GAAUA,EAAM,eACnDxJ,EAAQ,0BAA4B85D,EACpC,MAAMC,EAAuCvwD,GAAUA,EAAM,eAAe,SAAW,YACvFxJ,EAAQ,oCAAsC+5D,EAC9C,MAAMC,EAA8Bj+C,MAAkBw6C,EAAW,gBAAgB,CAACuD,CAAyB,EAAIhwC,IAC1F/N,EACX+N,EAAoB,sBACpBA,EAAoB,sBACV,IAAI,CAAC,CAAE,GAAArqB,EAAI,qBAAAkV,EAAsB,MAAAnK,EAAO,eAAAwsD,EAAgB,aAAAC,EAAc,QAAAC,EAAS,uBAAAC,CAAwB,IAAM,CACzH,MAAMC,EAAcF,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC,EACnD,MAAO,CACH,GAAAz3D,EACA,MAAA+K,EACA,WAAY4sD,EAAY,WACxB,UAAWJ,EACX,QAASC,EACT,aAAcE,GAA0BxiD,EACxC,qBAAAA,CACJ,CACJ,CAAC,CACJ,EACD3U,EAAQ,2BAA6Bg6D,EACrC,MAAMC,EAA4Bl+C,MAAkBw6C,EAAW,gBAAgB,CAACuD,CAAyB,EAAIhwC,IACxF/N,EACX+N,EAAoB,sBACpBA,EAAoB,sBACV,IAAI,CAAC,CAAE,GAAArqB,EAAI,MAAA+K,EAAO,eAAAwsD,EAAgB,aAAAC,EAAc,QAAAC,EAAS,uBAAAC,EAAwB,qBAAAxiD,CAAsB,IAAM,CACzH,MAAMyiD,EAAcF,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC,EACnD,MAAO,CACH,GAAAz3D,EACA,MAAA+K,EACA,WAAY4sD,EAAY,WACxB,aAAcD,GAA0BxiD,EACxC,UAAWqiD,EACX,QAASC,EACT,SAAUG,EAAY,EAC1B,CACJ,CAAC,CACJ,EACDp3D,EAAQ,yBAA2Bi6D,C,qCC1CnC,IAAI1iD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,2BAA6BA,EAAQ,0BAA4B,OACzE,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClD96C,EAAwB,EAAQ,KAAuB,EACvDw6C,EAAe,CACjB,uBAAwB,EACxB,qBAAsB,CAAC,EACvB,sBAAuB,CAAC,EACxB,OAAQ,OACR,MAAO,IACX,EACMmC,EAA0B,CAACrkC,EAAMskC,OACxBrC,EAAU,kBAAkB,iBAAiBjiC,EAAK,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,CAAC,gBAAiB,CAACukC,EAAc,CAAE,gBAAA9B,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACvM,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIiC,EAASC,EAAa,OAAO,CAAC,GAClE,IACpB,OACOv1C,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,QAAQgR,EAAK,OAAO,CAAC,EAAE,YAAY,EAAIA,EAAK,MAAM,CAAC,CAAC,gBAC5D,SAAUskC,EAASC,EAAa,OAAO,CAC3C,CACJ,EACA,SAAI/B,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,EAAG,CACA,UAAW,CAACnY,EAAG,CAAE,SAAAia,CAAS,IAAM,CAC5B,KAAM,CAAE,cAAAC,CAAc,EAAID,EAAS,EACnC,OAAOC,EAAc,SAAW,SACpC,CACJ,CAAC,EAELh4D,EAAQ,0BAA4B43D,EAAwB38C,EAAsB,mBAAmB,OAAQ46C,EAAe,cAAc,wBAAwB,EAClK71D,EAAQ,2BAA6B43D,EAAwB38C,EAAsB,mBAAmB,QAAS46C,EAAe,cAAc,yBAAyB,EACrK,MAAMqE,KAA0B1E,EAAU,aAAa,CACnD,KAAM,iBACN,aAAAC,EACA,SAAU,CAAC,EACX,cAAgBU,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,0BAA0B,QAAUwJ,GAAU,CAC/DA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,0BAA0B,UAAW,CAACwJ,EAAOmsD,IAAW,CACzEnsD,EAAM,OAAS,YACfA,EAAM,qBAAuBmsD,EAAO,QAAQ,SAC5CnsD,EAAM,uBAAyBmsD,EAAO,QAAQ,uBAC9CnsD,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,0BAA0B,SAAU,CAACwJ,EAAOmsD,IAAW,CACxEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,CACxE,CAAC,EACI,QAAQ31D,EAAQ,2BAA2B,QAAUwJ,GAAU,CAChEA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,2BAA2B,UAAW,CAACwJ,EAAOmsD,IAAW,CAC1EnsD,EAAM,OAAS,YACfA,EAAM,sBAAwBmsD,EAAO,QAAQ,SAC7CnsD,EAAM,uBAAyBmsD,EAAO,QAAQ,uBAC9CnsD,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,2BAA2B,SAAU,CAACwJ,EAAOmsD,IAAW,CACzEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,CACxE,CAAC,CACL,CACJ,CAAC,EACD31D,EAAA,QAAkBk6D,EAAoB,O,qCCvFtC,OAAO,eAAel6D,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkBA,EAAQ,4BAA8B,OAChE,MAAMw1D,EAAY,EAAQ,KAAkB,EACtC2E,EAA4B3wD,GAAUA,EAAM,YAAY,SAAW,UACnE4wD,EAA8B5wD,GAAUA,EAAM,cAAc,SAAW,UACvE6wD,EAA+B7wD,GAAUA,EAAM,eAAe,SAAW,UAC/ExJ,EAAQ,4BAA8Bq6D,EACtC,MAAMC,EAA6B9wD,GAAUA,EAAM,aAAa,SAAW,UACrE+wD,EAA0B/wD,GAAUA,EAAM,UAAU,SAAW,UAC/DgxD,EAAyBhxD,GAAUA,EAAM,SAAS,SAAW,UACnExJ,EAAQ,mBAAsBw1D,EAAU,gBAAgB,CACpD2E,EACAC,EACAp6D,EAAQ,4BACRs6D,EACAC,EACAC,CACJ,EAAG,CAACC,EAAoBC,EAAsBxoB,EAAuByoB,EAAqBC,EAAkBC,IACjG,GAAQJ,GACXC,GACAxoB,GACAyoB,GACAC,GACAC,EACP,C,qCCxBD,IAAIvzD,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,2BAA6BA,EAAQ,oBAAsBA,EAAQ,oBAAsBA,EAAQ,mBAAqBA,EAAQ,wBAA0BA,EAAQ,SAAWA,EAAQ,iBAAmBA,EAAQ,iBAAmBA,EAAQ,gBAAkBA,EAAQ,aAAe,OAC1R,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCsF,EAAe,EAAQ,KAAiD,EACxEhxB,EAAgB,EAAQ,KAAsB,EACpD9pC,EAAQ,aAAe,CACnB,aAAc,GACd,cAAe,KACf,MAAO86D,EAAa,OACpB,SAAUhxB,EAAc,mBACxB,qBAAsB,EAC1B,EACA,MAAMixB,KAAevF,EAAU,aAAa,CACxC,KAAM,MACN,aAAcx1D,EAAQ,aACtB,SAAU,CACN,gBAAgBwJ,EAAOmsD,EAAQ,CAC3BnsD,EAAM,aAAemsD,EAAO,OAChC,EACA,iBAAiBnsD,EAAOmsD,EAAQ,CAC5BnsD,EAAM,cAAgBmsD,EAAO,OACjC,EACA,iBAAiBnsD,EAAOmsD,EAAQ,CAC5BnsD,EAAM,SAAWmsD,EAAO,OAC5B,EACA,SAASnsD,EAAOmsD,EAAQ,CACpBnsD,EAAM,MAAQmsD,EAAO,OACzB,EACA,wBAAwBnsD,EAAOmsD,EAAQ,CACnCnsD,EAAM,qBAAuBmsD,EAAO,OACxC,CACJ,CACJ,CAAC,EACDruD,EAAKyzD,EAAS,QAAS/6D,EAAQ,gBAAkBsH,EAAG,gBAAiBtH,EAAQ,iBAAmBsH,EAAG,iBAAkBtH,EAAQ,iBAAmBsH,EAAG,iBAAkBtH,EAAQ,SAAWsH,EAAG,SAAUtH,EAAQ,wBAA0BsH,EAAG,wBAC1OtH,EAAA,QAAkB+6D,EAAS,QAC3B,MAAMC,EAAsBxxD,GAAUA,EAAM,IAAI,aAChDxJ,EAAQ,mBAAqBg7D,EAC7B,MAAMC,EAAuBzxD,GAAUA,EAAM,IAAI,cACjDxJ,EAAQ,oBAAsBi7D,EAC9B,MAAMC,EAAuB1xD,GAAUA,EAAM,IAAI,SACjDxJ,EAAQ,oBAAsBk7D,EAC9B,MAAMC,EAA8B3xD,GAAUA,EAAM,IAAI,qBACxDxJ,EAAQ,2BAA6Bm7D,C,qCC3CrC,IAAI7zD,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqBA,EAAQ,oBAAsBA,EAAQ,qBAAuBA,EAAQ,uBAAyBA,EAAQ,gBAAkBA,EAAQ,kBAAoB,OACjL,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCC,EAAe,CACjB,UAAW,GACX,aAAc,EACd,cAAe,CACnB,EACM2F,KAA0B5F,EAAU,aAAa,CACnD,KAAM,iBACN,aAAAC,EACA,SAAU,CACN,kBAAmB,CAACjsD,EAAOmsD,IAAW,CAClCnsD,EAAM,UAAYmsD,EAAO,OAC7B,EACA,gBAAiB,CAACnsD,EAAOmsD,IAAW,CAChCnsD,EAAM,aAAemsD,EAAO,QAC5BnsD,EAAM,cAAgB,CAC1B,EACA,uBAAyBA,GAAU,CAC/BA,EAAM,eAAiB,EACnBA,EAAM,eAAiBA,EAAM,eAC7BA,EAAM,UAAY,GAE1B,CACJ,CACJ,CAAC,EACDlC,EAAK8zD,EAAoB,QAASp7D,EAAQ,kBAAoBsH,EAAG,kBAAmBtH,EAAQ,gBAAkBsH,EAAG,gBAAiBtH,EAAQ,uBAAyBsH,EAAG,uBACtKtH,EAAA,QAAkBo7D,EAAoB,QACtC,MAAMC,EAAwB7xD,GAAUA,EAAM,eAAe,UAC7DxJ,EAAQ,qBAAuBq7D,EAC/B,MAAMC,EAAuB9xD,GAAUA,EAAM,eAAe,cAC5DxJ,EAAQ,oBAAsBs7D,EAC9B,MAAMC,EAAsB/xD,GAAUA,EAAM,eAAe,aAC3DxJ,EAAQ,mBAAqBu7D,C,qCCnC7B,OAAO,eAAev7D,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,8BAAgCA,EAAQ,0BAA4BA,EAAQ,2BAA6BA,EAAQ,yBAA2BA,EAAQ,qCAAuC,OACnM,MAAMu2D,EAAa,EAAQ,KAAU,EAC/BiF,EAA6BhyD,GAAUA,EAAM,eACnDxJ,EAAQ,0BAA4Bw7D,EACpC,MAAMC,EAAwC3mD,MAAkByhD,EAAW,gBAAgB,CAACiF,CAAyB,EAAIE,GAAuB,CAC5I,MAAMC,EAA0BD,EAAmB,SAAS,KAAM5lC,GAAY,OAAOA,EAAQ,EAAE,IAAM,OAAOhhB,CAAS,CAAC,EAChH8mD,EAASD,GAA4B,KAA6C,OAASA,EAAwB,QAAQ,OAAO,KAAKA,GAA4B,KAA6C,OAASA,EAAwB,OAAO,EAAE,CAAC,CAAC,EAClQ,MAAO,CACH,CACI,IAAKA,GAA4B,KAA6C,OAASA,EAAwB,KAAO,EACtH,sBAAuBC,GAAW,KAA4B,OAASA,EAAO,eAAiB,EAC/F,MAAO,CACH,KAAMA,GAAW,KAA4B,OAASA,EAAO,gBAAkB,EAC/E,KAAMA,GAAW,KAA4B,OAASA,EAAO,iBAAmB,EAChF,YAAaA,GAAW,KAA4B,OAASA,EAAO,YACpE,aAAcA,GAAW,KAA4B,OAASA,EAAO,aACrE,YAAaA,GAAW,KAA4B,OAASA,EAAO,YACpE,aAAcA,GAAW,KAA4B,OAASA,EAAO,aACrE,UAAWA,GAAW,KAA4B,OAASA,EAAO,GAAG,SAAS,IAAM,GACxF,CACJ,CACJ,CACJ,CAAC,EACD57D,EAAQ,qCAAuCy7D,EAC/C,MAAMI,KAAiCtF,EAAW,gBAAgB,CAACiF,CAAyB,EAAIvxC,GAAwBA,EAAoB,SAAS,IAAI,CAAC,CAAE,GAAAxqB,EAAI,QAAAy3D,CAAQ,IAAM,CAC1K,MAAME,EAAcF,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC,EACnD,MAAO,CACH,GAAAz3D,EACA,qBAAsB23D,EAAY,aAClC,MAAO,CACH,IAAKA,EAAY,cACjB,IAAKA,EAAY,eACjB,YAAaA,EAAY,YACzB,aAAcA,EAAY,aAC1B,YAAaA,EAAY,YACzB,aAAcA,EAAY,aAC1B,SAAUA,EAAY,GAAG,SAAS,CACtC,CACJ,CACJ,CAAC,CAAC,EACFp3D,EAAQ,2BAA6B67D,EACrC,MAAMC,KAA+BvF,EAAW,gBAAgB,CAACiF,CAAyB,EAAIvxC,GAAwBA,EAAoB,SAAS,IAAI,CAAC,CAAE,GAAAxqB,EAAI,MAAA+K,EAAO,eAAAwsD,EAAgB,aAAAC,EAAc,QAAAC,CAAQ,IAAM,CAC7M,MAAME,EAAcF,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC,EACnD,MAAO,CACH,GAAAz3D,EACA,MAAA+K,EACA,WAAY4sD,EAAY,WACxB,aAAcA,EAAY,aAC1B,UAAWJ,EACX,QAASC,EACT,SAAUG,EAAY,EAC1B,CACJ,CAAC,CAAC,EACFp3D,EAAQ,yBAA2B87D,EACnC,MAAMC,KAAoCxF,EAAW,gBAAgB,CAACiF,CAAyB,EAAIvxC,GAAwBA,EAAoB,SAAS,IAAI,CAAC,CAAE,GAAAxqB,EAAI,QAAAy3D,CAAQ,IACnJA,EAAQ,OAAO,KAAKA,CAAO,EAAE,CAAC,CAAC,EAChC,EACtB,CAAC,EACFl3D,EAAQ,8BAAgC+7D,C,qCC3DxC,IAAIxkD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,oBAAsBA,EAAQ,oBAAsB,OAC5D,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,uBAAwB,EACxB,SAAU,CAAC,EACX,OAAQ,OACR,MAAO,IACX,EACAz1D,EAAQ,uBAA0Bw1D,EAAU,kBAAkB,+BAAgC,CAACsC,EAAc,CAAE,gBAAA9B,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAChL,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,oBAAoBiC,EAAa,OAAO,CAAC,GAC1G,IACpB,OACOv1C,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,sBACR,SAAUszC,EAAe,cAAc,oBAAoBiC,EAAa,OAAO,CACnF,CACJ,EACA,SAAI/B,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,EAAG,CACA,UAAW,CAACnY,EAAG,CAAE,SAAAia,CAAS,IAAM,CAC5B,KAAM,CAAE,eAAAiE,CAAe,EAAIjE,EAAS,EACpC,OAAOiE,EAAe,SAAW,SACrC,CACJ,CAAC,EACD,MAAMC,KAA0BzG,EAAU,aAAa,CACnD,KAAM,iBACN,aAAAC,EACA,SAAU,CACN,oBAAsBjsD,GAAU,CAC5BA,EAAM,SAAW,CAAC,EAClBA,EAAM,uBAAyB,EAC/BA,EAAM,MAAQ,IAClB,CACJ,EACA,cAAgB2sD,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,oBAAoB,QAAUwJ,GAAU,CACzDA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,oBAAoB,UAAW,CAACwJ,EAAOmsD,IAAW,CACnE,IAAIruD,EACJkC,EAAM,OAAS,YACfA,EAAM,MAAQ,KACT,GAAAlC,EAAKquD,EAAO,QAAU,MAAQruD,IAAO,SAAkBA,EAAG,IAAI,aAC/DkC,EAAM,SAAW,CAAC,GAAGA,EAAM,SAAU,GAAGmsD,EAAO,QAAQ,QAAQ,EAG/DnsD,EAAM,SAAWmsD,EAAO,QAAQ,SAEpCnsD,EAAM,uBAAyBmsD,EAAO,QAAQ,sBAClD,CAAC,EACI,QAAQ31D,EAAQ,oBAAoB,SAAU,CAACwJ,EAAOmsD,IAAW,CAClEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAC5B,QAAS,2BACb,CACJ,CAAC,CACL,CACJ,CAAC,EACD31D,EAAQ,oBAAsBi8D,EAAoB,QAAQ,oBAC1Dj8D,EAAA,QAAkBi8D,EAAoB,O,qCClFtC,IAAIn8D,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,yBAA2BA,EAAQ,4BAA8BA,EAAQ,yBAA2BA,EAAQ,uBAAyBA,EAAQ,qBAAuB,OAC5K,MAAMw1D,EAAY,EAAQ,KAAkB,EACtC3nD,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CoW,EAAqB,EAAQ,GAA2B,EACxDqT,EAA4B,EAAQ,KAA2B,EAC/DpL,EAAsB,EAAQ,KAAqB,EACnD+9C,EAA0B1yD,GAAUA,EAAM,aAAa,KAC7DxJ,EAAQ,uBAAyBk8D,EACjC,MAAMC,KAA+B3G,EAAU,gBAAgB,CAAC0G,CAAsB,EAAIE,GAAsBA,EAAkB,aAAa,IAAI,CAAC,CAAE,KAAAr7B,EAAM,MAAAxvB,EAAO,SAAA+kC,EAAU,UAAAC,CAAU,EAAGj8B,KAAW,CACjM,GAAIA,EACJ,qBAAsB/I,EACtB,KAAAwvB,EACA,MAAO,CACH,IAAKuV,EACL,IAAKC,EACL,SAAU6lB,EAAkB,SAAS,SAAS,CAClD,EACA,MAAOA,EAAkB,KAC7B,EAAE,CAAC,EACHp8D,EAAQ,yBAA2Bm8D,EACnC,MAAME,KAAkC7G,EAAU,gBAAgB,CAAC0G,EAAwB3yC,EAA0B,yBAAyB,EAAG,CAACmxB,EAAkBghB,IAAuB,CACvL,MAAM39B,EAAsB,KAAK,IAAI,GAAG2c,EAAiB,aAAa,IAAKl0C,GAAMA,EAAE,KAAK,CAAC,EACnFs3B,EAAsB,KAAK,IAAI,GAAG4c,EAAiB,aAAa,IAAKl0C,GAAMA,EAAE,KAAK,CAAC,EACnF81D,EAAgBZ,EAAmB,SAAS,KAAM5lC,GAAYA,EAAQ,KAAO4kB,EAAiB,EAAE,EAChG6hB,EAAoBD,GAAkB,KAAmC,OAASA,EAAc,QAAQ,OAAO,KAAKA,EAAc,OAAO,EAAE,CAAC,CAAC,EAC7I3lC,EAAsB2lC,GAAkB,MAA4CA,EAAc,eAClGzuD,EAAS,QAAQ,IAAIyuD,EAAc,cAAc,EAAE,OAAO,kBAAkB,EAC5En+C,EAAoB,aAAa,KAAK,UACtC0Y,EAAoBylC,GAAkB,MAA4CA,EAAc,aAChGzuD,EAAS,QAAQ,IAAIyuD,EAAc,YAAY,EAAE,OAAO,kBAAkB,EAC1En+C,EAAoB,aAAa,KAAK,QAC5C,MAAO,CACH,cAAeo+C,GAAsB,KAAuC,OAASA,EAAkB,eACnGp+C,EAAoB,aAAa,KAAK,aAC1C,QAAS0Y,EACT,oBAAAkH,EACA,oBAAAD,EACA,QAAS4c,EAAiB,SAC1B,WAAYA,EAAiB,WAC7B,UAAWA,EAAiB,GAC5B,UAAW/jB,EACX,MAAO+jB,EAAiB,MACxB,WAAYA,EAAiB,UACjC,CACJ,CAAC,EACD16C,EAAQ,4BAA8Bq8D,EACtC,MAAMG,EAA4BhzD,GAAUA,EAAM,aAAa,OAC/DxJ,EAAQ,yBAA2Bw8D,EACnC,MAAMC,EAAwBjzD,GAAUA,EAAM,aACxCkzD,KAA2BlH,EAAU,gBAAgB,CAACiH,CAAoB,EAAI/hB,GAAqB,CACrG,KAAM,CAAE,wBAAA4d,EAAyB,oBAAAx6B,EAAqB,oBAAAC,CAAqB,EAAI2c,EACzEjpC,KAAUyE,EAAmB,cAAc4nB,CAAmB,EAC9D,KAAK,MAAMA,CAAmB,EAC9B,KACAjsB,KAAUqE,EAAmB,cAAc6nB,CAAmB,EAC9D,KAAK,MAAMA,CAAmB,EAC9B,KACA0mB,KAAUvuC,EAAmB,cAAcoiD,CAAuB,EAClE,KAAK,MAAMA,CAAuB,EAClC,KACN,MAAO,CACH,oBAAqB7mD,EACrB,oBAAqBI,EACrB,aAAc4yC,CAClB,CACJ,CAAC,EACDzkD,EAAQ,qBAAuB08D,C,qCCtE/B,IAAInlD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACInQ,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,kCAAoCA,EAAQ,+BAAiCA,EAAQ,iCAAmCA,EAAQ,+BAAiCA,EAAQ,uBAAyBA,EAAQ,gCAAkCA,EAAQ,kBAAoBA,EAAQ,sBAAwBA,EAAQ,aAAe,OACvU,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9Ct8B,EAAc,EAAQ,KAAoB,EAC1Cu8B,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EACxD/1D,EAAQ,aAAe,CACnB,KAAM,CACF,aAAc,EACd,QAAS,GACT,GAAI,EACJ,YAAa,EACb,aAAc,EACd,aAAc,CAAC,EACf,YAAa,EACb,aAAc,EACd,MAAO,CAAC,EACR,WAAY,GACZ,WAAY,GACZ,cAAe,EACf,eAAgB,EAChB,UAAW,GACX,SAAU,EACV,MAAO,GACP,SAAU,EACd,EACA,oBAAqB,EACrB,oBAAqB,EACrB,wBAAyB,EACzB,OAAQ,OACR,MAAO,KACP,UAAW,GACX,sBAAuBu5B,EAAY,gBAAgB,GACvD,EACAv5B,EAAQ,yBAA4Bw1D,EAAU,kBAAkB,uBAAwB,CAAC/1D,EAAI,CAAE,gBAAAu2D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAChK,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,sBAAsBp2D,CAAE,CAAC,GAC1F,IACpB,OACO8iB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,wBACR,SAAUszC,EAAe,cAAc,sBAAsBp2D,CAAE,CACnE,CACJ,EACA,SAAIs2D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACFj2D,EAAQ,qBAAwBw1D,EAAU,aAAa,CACnD,KAAM,eACN,aAAcx1D,EAAQ,aACtB,SAAU,CACN,gCAAgCwJ,EAAOmsD,EAAQ,CAC3C,KAAM,CAAE,IAAAlkD,EAAK,IAAAI,CAAI,EAAI8jD,EAAO,QAC5B,IAAI9yD,EAAUgP,EACVjP,EAAY6O,EAChB,MAAMgnC,EAASjvC,EAAM,KAAK,aACrB,OAAQ03B,GAAgBA,EAAY,MAAQt+B,GAAas+B,EAAY,MAAQr+B,CAAO,EACpF,IAAK2D,GAAMA,EAAE,KAAK,EACjBq5B,EAAS4Y,EAAO,OAAS,EAAI,KAAK,IAAI,GAAGA,CAAM,EAAI,EACnD3Y,EAAS2Y,EAAO,OAAS,EAAI,KAAK,IAAI,GAAGA,CAAM,EAAI,EACnDkkB,EAASlkB,EAAO,OAAS,EACzBA,EAAO,OAAO,CAACC,EAAKnnC,IAAUmnC,EAAMnnC,EAAO,CAAC,EAAIknC,EAAO,OACvD,EACNjvC,EAAM,oBAAsBq2B,EAC5Br2B,EAAM,oBAAsBs2B,EAC5Bt2B,EAAM,wBAA0BmzD,CACpC,EACA,uBAAuBnzD,EAAO,CAC1B,OAAOxJ,EAAQ,YACnB,EACA,+BAA+BwJ,EAAOmsD,EAAQ,CAC1CnsD,EAAM,sBAAwBmsD,EAAO,QACrC,aAAa,QAAQ,8BAA+BA,EAAO,OAAO,CACtE,EACA,iCAAiCnsD,EAAO,CACpCA,EAAM,sBAAwB+vB,EAAY,gBAAgB,IAC1D,aAAa,QAAQ,8BAA+BA,EAAY,gBAAgB,GAAG,CACvF,EACA,+BAAiC/vB,GAAU,CACvCA,EAAM,oBAAsB,KAC5BA,EAAM,oBAAsB,KAC5BA,EAAM,wBAA0B,IACpC,CACJ,EACA,cAAgB2sD,GAAY,CACxBA,EAAQ,QAAQn2D,EAAQ,sBAAsB,QAAUwJ,GAAU,CAC9DA,EAAM,OAAS,UACfA,EAAM,MAAQ,KACdA,EAAM,UAAY,EACtB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,sBAAsB,UAAW,CAACwJ,EAAOmsD,IAAW,CACxEnsD,EAAM,OAAS,YACfA,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,MAAQ,KACdA,EAAM,UAAY,EACtB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,sBAAsB,SAAU,CAACwJ,EAAOmsD,IAAW,CACvEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,EACpEnsD,EAAM,KAAOxJ,EAAQ,aAAa,KAClCwJ,EAAM,UAAY,EACtB,CAAC,CACL,CACJ,CAAC,EACDlC,EAAKtH,EAAQ,kBAAkB,QAASA,EAAQ,gCAAkCsH,EAAG,gCAAiCtH,EAAQ,uBAAyBsH,EAAG,uBAAwBtH,EAAQ,+BAAiCsH,EAAG,+BAAgCtH,EAAQ,iCAAmCsH,EAAG,iCAAkCtH,EAAQ,+BAAiCsH,EAAG,+BAC1XtH,EAAA,QAAkBA,EAAQ,kBAAkB,QAC5C,MAAM48D,EAAqCpzD,GAAUA,EAAM,aAAa,sBACxExJ,EAAQ,kCAAoC48D,C,qCC5H5C,IAAIrlD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,sBAAwBA,EAAQ,WAAaA,EAAQ,kBAAoBA,EAAQ,qBAAuB,OAChH,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,KAAM,CAAC,EACP,OAAQ,OACR,MAAO,IACX,EACAz1D,EAAQ,wBAA2Bw1D,EAAU,kBAAkB,+BAAgC,CAAC,CAAE,GAAA/1D,EAAI,UAAA6B,EAAW,QAAAC,CAAQ,EAAG,CAAE,gBAAAy0D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAC/L,GAAI,CAEA,OADiB,MAAMq+C,EAAY,UAAU,IAAIC,EAAe,cAAc,+BAA+Bp2D,EAAI6B,EAAWC,CAAO,CAAC,GACpH,IACpB,OACOghB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,uBACR,SAAUszC,EAAe,cAAc,+BAA+Bp2D,EAAI6B,EAAWC,CAAO,CAChG,CACJ,EACA,SAAIw0D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACFj2D,EAAQ,qBAAwBw1D,EAAU,aAAa,CACnD,KAAM,uBACN,aAAAC,EACA,SAAU,CACN,sBAAwBjsD,GAAU,CAC9BA,EAAM,KAAO,CAAC,EACdA,EAAM,OAAS,OACfA,EAAM,MAAQ,IAClB,CACJ,EACA,cAAgB2sD,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,qBAAqB,UAAW,CAACwJ,EAAOmsD,IAAW,CACpEnsD,EAAM,OAAS,YACfA,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,KAAK,KAAK,CAAC+F,EAAGC,IAAM,IAAI,KAAKD,EAAE,IAAI,EAAE,QAAQ,EAAI,IAAI,KAAKC,EAAE,IAAI,EAAE,QAAQ,CAAC,EACjFhG,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,qBAAqB,SAAU,CAACwJ,EAAOmsD,IAAW,CACnEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAAE,QAAS,wBAAyB,EACpEnsD,EAAM,KAAO,CAAC,CAClB,CAAC,CACL,CACJ,CAAC,EACDxJ,EAAA,QAAkBA,EAAQ,kBAAkB,QAC5C,MAAM68D,EAAcrzD,GAAUA,EAAM,qBACpCxJ,EAAQ,WAAa68D,EACrB78D,EAAQ,sBAAwBA,EAAQ,kBAAkB,QAAQ,qB,qCCnElE,IAAIF,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,8BAAgCA,EAAQ,2BAA6BA,EAAQ,wBAA0BA,EAAQ,mBAAqB,OAC5I,MAAMw1D,EAAY,EAAQ,KAAkB,EACtC1wC,EAAW,EAAQ,KAAQ,EAC3BjX,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CkO,EAAe,EAAQ,IAAqB,EAC5C8uD,EAAiB,EACjBC,EAAiCnmD,GAAS,CAC5C,MAAM2d,EAAO3d,EAAK,KAAK,EACjBhJ,EAAQgJ,EAAK,MAAM,EACnBomD,KAA0BnvD,EAAS,SAAS,CAAC0mB,EAAM3mB,CAAK,CAAC,EAC1D,QAAQ,OAAO,EACf,QAAQ,MAAM,EACbqvD,KAAyBpvD,EAAS,SAAS,CAAC0mB,EAAM3mB,CAAK,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,MAAM,EAC3F,MAAO,CAAE,oBAAAovD,EAAqB,mBAAAC,CAAmB,CACrD,EACMC,EAA0B,CAACtmD,EAAMrF,KAC5B,CACH,KAAMqF,EAAK,OAAO,YAAY,EAC9B,UAAWA,EAAK,OAAO,GAAG,EAC1B,MAAArF,CACJ,GAEE4rD,EAAkB,CAACvmD,EAAM4hD,IAAwB,CACnD,MAAM4E,EAAe5E,EAAoB,KAAM5+C,GAASA,EAAK,OAAShD,CAAI,EAC1E,OAAOwmD,EAAeA,EAAa,MAAQ,IAC/C,EACMC,KAAsCv4C,EAAS,SAAS,CAAClX,EAAO4qD,IAAwB,CAC1F,GAAI,CAAC5qD,GAAS,CAACA,EAAM,QAAQ,GAAK,CAAC4qD,EAC/B,MAAM,IAAI,MAAM,gBAAgB,EAEpC,KAAM,CAAE,oBAAAwE,EAAqB,mBAAAC,CAAmB,EAAIF,EAA8BnvD,CAAK,EACvF,IAAIs5C,EAAc8V,EAAoB,MAAM,EAC5C,MAAMnqD,EAAQ,CAAC,EACf,KAAOq0C,GAAe+V,GAAoB,CACtC,MAAMhqD,EAAO,CAAC,EACd,QAAS7L,EAAI,EAAGA,EAAI01D,EAAgB11D,IAAK,CAErC,MAAMmK,EADiB21C,EAAY,OAAOt5C,EAAO,OAAO,EAElDuvD,EAAgBjW,EAAY,OAAO,YAAY,EAAGsR,CAAmB,EACrE,KACNvlD,EAAK,KAAKiqD,EAAwBhW,EAAY,MAAM,EAAG31C,CAAK,CAAC,EAC7D21C,EAAY,IAAI,EAAG,KAAK,CAC5B,CACAr0C,EAAM,KAAKI,CAAI,CACnB,CACA,MAAMhB,EAAiBY,EAAM,CAAC,EAAE,IAAKK,MAAYrF,EAAS,SAASqF,EAAI,IAAI,EAAE,OAAO,MAAM,EAAE,UAAU,EAAG,CAAC,CAAC,EAC3G,MAAO,CACH,UAAWtF,EAAM,OAAO,MAAM,EAC9B,eAAAqE,EACA,MAAAY,CACJ,CACJ,EAAG,CAACjF,EAAO4qD,IAAwB,GAAG5qD,EAAM,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU4qD,CAAmB,CAAC,EAAE,EAChG8E,KAA2Bx4C,EAAS,SAAS,CAAC0zC,EAAqBl3D,EAAWC,IAAY,CAC5F,GAAI,CAACi3D,GAAuB,CAACl3D,GAAa,CAACC,EACvC,MAAO,CAAC,EACZ,MAAMg8D,KAAkB1vD,EAAS,SAASvM,EAAW0M,EAAa,WAAW,EAAE,EAAE,QAAQ,KAAK,EACxF2B,KAAgB9B,EAAS,SAAStM,EAASyM,EAAa,WAAW,EAAE,EAAE,MAAM,KAAK,EACxF,OAAOwqD,EAAoB,OAAQroB,MACRtiC,EAAS,SAASsiC,EAAQ,KAAMniC,EAAa,WAAW,OAAO,EACpE,UAAUuvD,EAAa5tD,EAAW,MAAO,IAAI,CAClE,CACL,EAAG,CAAC6oD,EAAqBl3D,EAAWC,IAAY,GAAGD,CAAS,IAAIC,CAAO,IAAIi3D,EAAoB,MAAM,EAAE,EACjGgF,EAA6Bh0D,GACxBA,EAAM,qBAAqB,KAEhCi0D,KAAoCjI,EAAU,gBAAgB,CAChEgI,EACA,CAACtE,EAAQ53D,EAAWC,KAAa,CAC7B,UAAAD,EACA,QAAAC,CACJ,EACJ,EAAG,CAACm8D,EAAc,CAAE,UAAAp8D,EAAW,QAAAC,CAAQ,IAAM,CACzC,MAAMo8D,EAAc,CAAC,EACrB,GAAI,EAAED,GAAiB,MAA2CA,EAAa,SAAW,CAACp8D,GAAa,CAACC,EACrG,OAAOo8D,EAEX,MAAMhuD,KAAgB9B,EAAS,SAAStM,EAASyM,EAAa,WAAW,EAAE,EAC3E,GAAI,CAAC2B,EAAU,QAAQ,EACnB,OAAOguD,EAEX,MAAMC,EAAcN,EAAqBI,EAAcp8D,EAAWC,CAAO,EACnEs8D,EAAuBluD,EAAU,MAAM,EAAE,MAAM,OAAO,EACtDmuD,EAAoBD,EAAqB,MAAM,EAAE,SAAS,EAAG,OAAO,EACpEE,EAAmBF,EAAqB,MAAM,EAAE,SAAS,EAAG,OAAO,EACzE,GAAI,CAACA,EAAqB,QAAQ,GAC9B,CAACC,EAAkB,QAAQ,GAC3B,CAACC,EAAiB,QAAQ,EAC1B,OAAOJ,EAEX,MAAMK,EAAc,CAChBD,EACAD,EACAD,CACJ,EACA,GAAI,CACA,OAAOG,EAAY,IAAKpwD,GAAUyvD,EAAgCzvD,EAAOgwD,CAAW,CAAC,CACzF,OACOr7C,EAAO,CACV,eAAQ,MAAM,kCAAmCA,CAAK,EAC/Co7C,CACX,CACJ,CAAC,EACD39D,EAAQ,8BAAgCy9D,EACxC,MAAMQ,KAAiCzI,EAAU,gBAAgBgI,EAA4BE,GAAiB,CAC1G,GAAI,CAACA,GAAgBA,EAAa,SAAW,EACzC,MAAO,CAAE,IAAK,KAAM,IAAK,IAAK,EAElC,MAAMjlB,EAASilB,EAAa,IAAKQ,GAAUA,EAAM,KAAK,EAChDzsD,EAAM,KAAK,IAAI,GAAGgnC,CAAM,EACxB5mC,EAAM,KAAK,IAAI,GAAG4mC,CAAM,EAC9B,MAAO,CAAE,IAAAhnC,EAAK,IAAAI,CAAI,CACtB,CAAC,EACD7R,EAAQ,2BAA6Bi+D,EACrC,MAAME,KAA8B3I,EAAU,gBAAgB,CAACgI,CAAyB,EAAIE,GAAiB,CACzG,MAAMC,EAAc,CAAC,EACrB,GAAI,EAAED,GAAiB,MAA2CA,EAAa,QAC3E,OAAOC,EAGX,MAAM55B,KAAUl2B,EAAS,SAAS,EAC5BtM,EAAUwiC,EAAI,OAAO/1B,EAAa,WAAW,EAAE,EAC/C1M,EAAYyiC,EAAI,MAAM,EAAE,SAAS,EAAG,QAAQ,EAAE,OAAO/1B,EAAa,WAAW,EAAE,EAC/E4vD,EAAcN,EAAqBI,EAAcp8D,EAAWC,CAAO,EACnE68D,EAAcr6B,EAAI,MAAM,EAAE,QAAQ,OAAO,EACzCs6B,EAAcD,EAAY,MAAM,EAAE,SAAS,EAAG,OAAO,EAErDJ,EAAc,CADDI,EAAY,MAAM,EAAE,SAAS,EAAG,OAAO,EACzBC,EAAaD,CAAW,EACzD,GAAI,CACA,OAAOJ,EAAY,IAAKpwD,GAAUyvD,EAAgCzvD,EAAOgwD,CAAW,CAAC,CACzF,OACOr7C,EAAO,CACV,eAAQ,MAAM,kCAAmCA,CAAK,EAC/Co7C,CACX,CACJ,CAAC,EACD39D,EAAQ,wBAA0Bm+D,EAClC,MAAMG,KAAyB9I,EAAU,gBAAgB,CACrDgI,EACA,CAACtE,EAAQ53D,EAAWC,IAAYD,GAAaC,EAAU,GAAGD,CAAS,IAAIC,CAAO,GAAK,EACvF,EAAG,CAACm8D,EAAca,IAAY,CAC1B,MAAMZ,EAAc,CAAC,EACrB,GAAI,EAAED,GAAiB,MAA2CA,EAAa,SAAW,CAACa,EACvF,OAAOZ,EAEX,KAAM,CAACr8D,EAAWC,CAAO,EAAIg9D,EAAQ,MAAM,GAAG,EAC9C,GAAI,CAACj9D,GAAa,CAACC,EACf,OAAOo8D,EAEX,MAAMhuD,KAAgB9B,EAAS,SAAStM,EAASyM,EAAa,WAAW,EAAE,EAC3E,GAAI,CAAC2B,EAAU,QAAQ,EACnB,OAAOguD,EAEX,MAAMC,EAAcN,EAAqBI,EAAcp8D,EAAWC,CAAO,EACnEs8D,EAAuBluD,EAAU,MAAM,EAAE,MAAM,OAAO,EACtDmuD,EAAoBD,EAAqB,MAAM,EAAE,SAAS,EAAG,OAAO,EACpEE,EAAmBF,EAAqB,MAAM,EAAE,SAAS,EAAG,OAAO,EACzE,GAAI,CAACA,EAAqB,QAAQ,GAC9B,CAACC,EAAkB,QAAQ,GAC3B,CAACC,EAAiB,QAAQ,EAC1B,OAAOJ,EAEX,MAAMK,EAAc,CAChBD,EACAD,EACAD,CACJ,EACA,GAAI,CACA,OAAOG,EAAY,IAAKpwD,GAAUyvD,EAAgCzvD,EAAOgwD,CAAW,CAAC,CACzF,OACOr7C,EAAO,CACV,eAAQ,MAAM,kCAAmCA,CAAK,EAC/Co7C,CACX,CACJ,CAAC,EACD39D,EAAQ,mBAAqBs+D,C,qCClL7B,OAAO,eAAet+D,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,sBAAwB,OAChC,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCC,EAAe,CACjB,mBAAoB,EACxB,EACM+I,KAA8BhJ,EAAU,aAAa,CACvD,KAAM,qBACN,aAAAC,EACA,SAAU,CACN,sBAAsBjsD,EAAOmsD,EAAQ,CACjCnsD,EAAM,mBAAqBmsD,EAAO,OACtC,CACJ,CACJ,CAAC,EACD31D,EAAQ,sBAAwBw+D,EAAwB,QAAQ,sBAChEx+D,EAAA,QAAkBw+D,EAAwB,O,qCChB1C,IAAIjnD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,uBAAyBA,EAAQ,oBAAsBA,EAAQ,gBAAkBA,EAAQ,mBAAqB,OACtH,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,QAAS,GACT,MAAO,IACX,EACAz1D,EAAQ,sBAAyBw1D,EAAU,kBAAkB,+BAAgC,CAACh0D,EAAQ,CAAE,gBAAAw0D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACzK,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,mBAAmBr0D,CAAM,CAAC,GAC3F,IACpB,OACO+gB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,qBACR,SAAUszC,EAAe,cAAc,mBAAmBr0D,CAAM,CACpE,CACJ,EACA,SAAIu0D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACF,MAAMwI,KAAqBjJ,EAAU,aAAa,CAC9C,KAAM,YACN,aAAAC,EACA,SAAU,CACN,gBAAkBjsD,GAAU,CACxBA,EAAM,KAAO,MACjB,CACJ,EACA,cAAgB2sD,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,mBAAmB,QAAUwJ,GAAU,CACxDA,EAAM,QAAU,GAChBA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,mBAAmB,UAAW,CAACwJ,EAAOmsD,IAAW,CAClEnsD,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,QAAU,GAChBA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,mBAAmB,SAAU,CAACwJ,EAAOmsD,IAAW,CACjEnsD,EAAM,MAAQmsD,EAAO,SAAW,CAC5B,QAAS,2BACb,EACAnsD,EAAM,QAAU,EACpB,CAAC,CACL,CACJ,CAAC,EACDxJ,EAAQ,gBAAkBy+D,EAAe,QAAQ,gBACjDz+D,EAAA,QAAkBy+D,EAAe,QACjC,MAAMC,EAAuBl1D,GAAUA,EAAM,UAAU,KACvDxJ,EAAQ,oBAAsB0+D,EAC9B,MAAMC,EAA0Bn1D,GAAUA,EAAM,UAAU,QAC1DxJ,EAAQ,uBAAyB2+D,C,qCCtEjC,IAAIpnD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,iBAAmBA,EAAQ,cAAgBA,EAAQ,aAAe,OAC1E,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,QAAS,CAAC,EACV,mBAAoB,OACpB,MAAO,IACX,EACAz1D,EAAQ,gBAAmBw1D,EAAU,kBAAkB,UAAW,CAACnzD,EAAa,CAAE,gBAAA2zD,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACnJ,MAAMqnD,EAAyBv8D,EAAY,CAAC,EAAE,YAAY,EAAIA,EAAY,MAAM,CAAC,EACjF,GAAI,CAEA,OADiB,MAAMuzD,EAAY,aAAa,IAAIC,EAAe,cAAc,aAAa+I,CAAsB,CAAC,GACrG,IACpB,OACOr8C,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,eACR,SAAUszC,EAAe,cAAc,aAAa+I,CAAsB,CAC9E,CACJ,EACA,SAAI7I,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACF,MAAM4I,KAAmBrJ,EAAU,aAAa,CAC5C,KAAM,UACN,aAAAC,EACA,SAAU,CAAC,EACX,cAAgBU,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,aAAa,QAAUwJ,GAAU,CAClDA,EAAM,mBAAqB,UAC3BA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,aAAa,UAAW,CAACwJ,EAAOmsD,IAAW,CAC5DnsD,EAAM,mBAAqB,YAC3BA,EAAM,QAAUmsD,EAAO,QACvBnsD,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,aAAa,SAAU,CAACwJ,EAAOmsD,IAAW,CAC3DnsD,EAAM,mBAAqB,WAC3BA,EAAM,MAAQmsD,EAAO,SAAW,CAC5B,QAAS,wBACb,CACJ,CAAC,CACL,CACJ,CAAC,EACKmJ,EAAiBt1D,GAAUA,EAAM,QAAQ,QAC/CxJ,EAAQ,cAAgB8+D,EACxB9+D,EAAQ,oBAAuBw1D,EAAU,gBAAgB,CAACx1D,EAAQ,aAAa,EAAI8mB,GAAY,CAC3F,MAAMgE,EAAahE,EAAQ,IAAKwH,GAAWA,EAAO,eAAe,EAEjE,OADyBxD,EAAW,OAAO,CAACxE,EAAWhM,IAAUwQ,EAAW,QAAQxE,CAAS,IAAMhM,CAAK,CAE5G,CAAC,EACDta,EAAA,QAAkB6+D,EAAa,O,qCCtE/B,IAAItnD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACInQ,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,uBAAyBA,EAAQ,UAAYA,EAAQ,qBAAuBA,EAAQ,0BAA4BA,EAAQ,yBAA2BA,EAAQ,6BAA+BA,EAAQ,4BAA8BA,EAAQ,0BAA4BA,EAAQ,+BAAiCA,EAAQ,0BAA4BA,EAAQ,4BAA8BA,EAAQ,wBAA0BA,EAAQ,6BAA+BA,EAAQ,4BAA8BA,EAAQ,gCAAkCA,EAAQ,+BAAiCA,EAAQ,WAAaA,EAAQ,gBAAkBA,EAAQ,UAAYA,EAAQ,eAAiBA,EAAQ,mBAAqB,OAC1rB,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EACxD,IAAIgJ,GACH,SAAUA,EAAoB,CAC3BA,EAAmB,OAAY,SAC/BA,EAAmB,QAAa,SACpC,GAAGA,IAAuB/+D,EAAQ,mBAAqB++D,EAAqB,CAAC,EAAE,EAC/E,MAAMtJ,EAAe,CACjB,UAAW,CAAC,EACZ,KAAM,CAAC,EACP,qBAAsB,OACtB,gBAAiB,OACjB,eAAgB,KAChB,UAAW,KACX,yBAA0B,GAC1B,0BAA2B,GAC3B,sBAAuB,GACvB,uBAAwB,GACxB,kBAAmBsJ,EAAmB,OACtC,oBAAqB,EACzB,EACA/+D,EAAQ,kBAAqBw1D,EAAU,kBAAkB,yBAA0B,CAACh0D,EAAQ,CAAE,gBAAAw0D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAC/J,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,eAAer0D,CAAM,CAAC,GACvF,IACpB,OACO+gB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,iBACR,SAAUszC,EAAe,cAAc,eAAer0D,CAAM,CAChE,CACJ,EACA,SAAIu0D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACFj2D,EAAQ,aAAgBw1D,EAAU,kBAAkB,oBAAqB,CAACh0D,EAAQ,CAAE,gBAAAw0D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACrJ,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,UAAUr0D,CAAM,CAAC,GAClF,IACpB,OACO+gB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,YACR,SAAUszC,EAAe,cAAc,UAAUr0D,CAAM,CAC3D,CACJ,EACA,SAAIu0D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACF,MAAM+I,KAAyBxJ,EAAU,aAAa,CAClD,KAAM,gBACN,aAAAC,EACA,SAAU,CACN,4BAA6B,CAACjsD,EAAOmsD,IAAW,CAC5CnsD,EAAM,yBAA2BmsD,EAAO,OAC5C,EACA,6BAA8B,CAACnsD,EAAOmsD,IAAW,CAC7CnsD,EAAM,0BAA4BmsD,EAAO,OAC7C,EACA,yBAA0B,CAACnsD,EAAOmsD,IAAW,CACzCnsD,EAAM,sBAAwBmsD,EAAO,OACzC,EACA,0BAA2B,CAACnsD,EAAOmsD,IAAW,CAC1CnsD,EAAM,uBAAyBmsD,EAAO,OAC1C,EACA,qBAAsB,CAACnsD,EAAOmsD,IAAW,CACrCnsD,EAAM,kBAAoBmsD,EAAO,OACrC,EACA,UAAYnsD,GAAU,CAClBA,EAAM,KAAO,CAAC,CAClB,EACA,uBAAwB,CAACA,EAAOmsD,IAAW,CACvCnsD,EAAM,oBAAsBmsD,EAAO,OACvC,CACJ,EACA,cAAgBQ,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,eAAe,QAAUwJ,GAAU,CACpDA,EAAM,qBAAuB,UAC7BA,EAAM,eAAiB,IAC3B,CAAC,EACI,QAAQxJ,EAAQ,eAAe,UAAW,CAACwJ,EAAOmsD,IAAW,CAC9DnsD,EAAM,qBAAuB,YAC7BA,EAAM,UAAYmsD,EAAO,QACzBnsD,EAAM,eAAiB,IAC3B,CAAC,EACI,QAAQxJ,EAAQ,eAAe,SAAU,CAACwJ,EAAOmsD,IAAW,CAC7DnsD,EAAM,qBAAuB,WAC7BA,EAAM,UAAY,CAAC,EACnBA,EAAM,eAAiBmsD,EAAO,SAAW,CACrC,QAAS,wBACb,CACJ,CAAC,EACI,QAAQ31D,EAAQ,UAAU,QAAUwJ,GAAU,CAC/CA,EAAM,gBAAkB,UACxBA,EAAM,UAAY,IACtB,CAAC,EACI,QAAQxJ,EAAQ,UAAU,UAAW,CAACwJ,EAAOmsD,IAAW,CACzDnsD,EAAM,gBAAkB,YACxBA,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,UAAY,IACtB,CAAC,EACI,QAAQxJ,EAAQ,UAAU,SAAU,CAACwJ,EAAOmsD,IAAW,CACxDnsD,EAAM,gBAAkB,WACxBA,EAAM,KAAO,CAAC,EACdA,EAAM,UAAYmsD,EAAO,SAAW,CAChC,QAAS,wBACb,CACJ,CAAC,CACL,CACJ,CAAC,EACKsJ,EAAmBz1D,GAAUA,EAAM,cAAc,UACvDxJ,EAAQ,gBAAkBi/D,EAC1B,MAAMC,EAAc11D,GAAUA,EAAM,cAAc,KAClDxJ,EAAQ,WAAak/D,EACrB,MAAMC,EAAkC31D,GAAUA,EAAM,cAAc,yBACtExJ,EAAQ,+BAAiCm/D,EACzC,MAAMC,EAAmC51D,GAAUA,EAAM,cAAc,0BACvExJ,EAAQ,gCAAkCo/D,EAC1C,MAAMC,EAA+B71D,GAAUA,EAAM,cAAc,sBACnExJ,EAAQ,4BAA8Bq/D,EACtC,MAAMC,EAAgC91D,GAAUA,EAAM,cAAc,uBACpExJ,EAAQ,6BAA+Bs/D,EACvC,MAAMC,EAA2B/1D,GAAUA,EAAM,cAAc,kBAC/DxJ,EAAQ,wBAA0Bu/D,EAClC,MAAMC,EAA+Bh2D,GAAUA,EAAM,cAAc,oBAAsBu1D,EAAmB,QAC5G/+D,EAAQ,4BAA8Bw/D,EACtC,MAAMC,EAA6Bj2D,GAAUA,EAAM,cAAc,kBAAoB,UACrFxJ,EAAQ,0BAA4By/D,EACpC,MAAMC,EAAkCl2D,GAAUA,EAAM,cAAc,uBAAyB,UAC/FxJ,EAAQ,+BAAiC0/D,EACzC,MAAMC,EAA6Bn2D,GAAUA,EAAM,cAAc,oBACjExJ,EAAQ,0BAA4B2/D,EACpCr4D,EAAK03D,EAAmB,QAASh/D,EAAQ,4BAA8BsH,EAAG,4BAA6BtH,EAAQ,6BAA+BsH,EAAG,6BAA8BtH,EAAQ,yBAA2BsH,EAAG,yBAA0BtH,EAAQ,0BAA4BsH,EAAG,0BAA2BtH,EAAQ,qBAAuBsH,EAAG,qBAAsBtH,EAAQ,UAAYsH,EAAG,UAAWtH,EAAQ,uBAAyBsH,EAAG,uBAC/atH,EAAA,QAAkBg/D,EAAmB,O,qCC7JrC,IAAIznD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACInQ,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,qBAAuBA,EAAQ,kBAAoBA,EAAQ,qBAAuBA,EAAQ,iBAAmBA,EAAQ,wBAA0BA,EAAQ,kBAAoBA,EAAQ,qBAAuBA,EAAQ,kBAAoBA,EAAQ,uBAAyBA,EAAQ,2BAA6BA,EAAQ,oBAAsBA,EAAQ,eAAiBA,EAAQ,gBAAkBA,EAAQ,aAAe,OAC5Z,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CC,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EACxD/1D,EAAQ,aAAe,CACnB,cAAe,CACX,IAAK,EACL,IAAK,EACL,OAAQ,EACR,KAAM,EACN,IAAK,CACT,EACA,OAAQ,OACR,YAAa,EACb,eAAgB,CACZ,IAAK,EACL,OAAQ,EACR,KAAM,CACV,EACA,aAAc,GACd,MAAO,IACX,EACAA,EAAQ,mBAAsBw1D,EAAU,kBAAkB,qBAAsB,CAACn0D,EAAS,CAAE,gBAAA20D,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAC7J,GAAI,CAEA,OADiB,MAAMq+C,EAAY,aAAa,IAAIC,EAAe,cAAc,gBAAgBx0D,CAAO,CAAC,GACzF,IACpB,OACOkhB,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,kBACR,SAAUszC,EAAe,cAAc,gBAAgBx0D,CAAO,CAClE,CACJ,EACA,SAAI00D,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,CAAC,EACFj2D,EAAQ,kBAAqBw1D,EAAU,aAAa,CAChD,KAAM,YACN,aAAc,OAAO,OAAO,CAAC,EAAGx1D,EAAQ,YAAY,EACpD,cAAgBm2D,GAAY,CACxBA,EACK,QAAQn2D,EAAQ,gBAAgB,QAAUwJ,GAAU,CACrDA,EAAM,OAAS,UACfA,EAAM,MAAQ,IAClB,CAAC,EACI,QAAQxJ,EAAQ,gBAAgB,UAAW,CAACwJ,EAAOmsD,IAAW,CAC/DnsD,EAAM,OAAS,YACfA,EAAM,MAAQ,KACdA,EAAM,cAAc,IAAM,OAAOmsD,EAAO,QAAQ,CAAC,CAAC,EAClDnsD,EAAM,cAAc,IAAM,OAAOmsD,EAAO,QAAQ,CAAC,CAAC,EAClDnsD,EAAM,cAAc,OAAS,OAAOmsD,EAAO,QAAQ,CAAC,CAAC,EACrDnsD,EAAM,cAAc,KAAO,OAAOmsD,EAAO,QAAQ,CAAC,CAAC,EACnDnsD,EAAM,cAAc,IAAM,OAAOmsD,EAAO,QAAQ,CAAC,CAAC,EAC7CnsD,EAAM,aACPA,EAAM,WAAa,OAAO,OAAO,CAAC,EAAGA,EAAM,aAAa,EAEhE,CAAC,EACI,QAAQxJ,EAAQ,gBAAgB,SAAU,CAACwJ,EAAOmsD,IAAW,CAC9DnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAC5B,QAAS,2BACb,CACJ,CAAC,CACL,EACA,SAAU,CACN,oBAAsBnsD,GAAU,CAC5BA,EAAM,WAAa,OAAO,OAAO,CAAC,EAAGA,EAAM,aAAa,CAC5D,EACA,2BAA4B,CAACA,EAAO,CAAE,QAAS,CAAE,IAAAiI,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAI,CAAE,IAAM,CACjFrI,EAAM,cAAgB,CAAE,IAAAiI,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAI,CACxD,EACA,uBAAwB,CAACrI,EAAO,CAAE,QAAS,CAAE,IAAAiI,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAI,CAAE,IAAM,CAC7ErI,EAAM,WAAa,CAAE,IAAAiI,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAI,CACrD,EACA,kBAAmB,CAACrI,EAAOmsD,IAAW,CAClCnsD,EAAM,YAAcmsD,EAAO,OAC/B,EACA,qBAAsB,CAACnsD,EAAOmsD,IAAW,CACrCnsD,EAAM,eAAiBmsD,EAAO,OAClC,EACA,kBAAoBnsD,GAAU,CAC1BA,EAAM,aAAe,EACzB,CACJ,CACJ,CAAC,EACDlC,EAAKtH,EAAQ,eAAe,QAASA,EAAQ,oBAAsBsH,EAAG,oBAAqBtH,EAAQ,2BAA6BsH,EAAG,2BAA4BtH,EAAQ,uBAAyBsH,EAAG,uBAAwBtH,EAAQ,kBAAoBsH,EAAG,kBAAmBtH,EAAQ,qBAAuBsH,EAAG,qBAAsBtH,EAAQ,kBAAoBsH,EAAG,kBACpWtH,EAAA,QAAkBA,EAAQ,eAAe,QACzC,MAAM4/D,EAA2Bp2D,GAAUA,EAAM,UAAU,cAC3DxJ,EAAQ,wBAA0B4/D,EAClC,MAAMC,EAAoBr2D,GAAUA,EAAM,UAAU,YAAcA,EAAM,UAAU,cAClFxJ,EAAQ,iBAAmB6/D,EAC3B,MAAMC,EAAwBt2D,GAAUA,EAAM,UAAU,WACxDxJ,EAAQ,qBAAuB8/D,EAC/B,MAAMC,EAAqBv2D,GAAUA,EAAM,UAAU,YACrDxJ,EAAQ,kBAAoB+/D,EAC5B,MAAMC,EAAwBx2D,GAAUA,EAAM,UAAU,eACxDxJ,EAAQ,qBAAuBggE,C,mCCjH/B,OAAO,eAAehgE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,yBAA2BA,EAAQ,yBAA2BA,EAAQ,uBAAyBA,EAAQ,oBAAsB,OACrI,MAAMigE,EAAuBz2D,GAAUA,EAAM,UAAU,KACvDxJ,EAAQ,oBAAsBigE,EAC9B,MAAMC,EAA0B12D,GAAUA,EAAM,UAAU,iBAC1DxJ,EAAQ,uBAAyBkgE,EACjC,MAAMC,EAA4B32D,GAAUA,EAAM,UAAU,UAC5DxJ,EAAQ,yBAA2BmgE,EACnC,MAAMC,EAA4B52D,GAAUA,EAAM,UAAU,mBAC5DxJ,EAAQ,yBAA2BogE,C,qCCTnC,IAAI7oD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACInQ,EACJ,OAAO,eAAetH,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,sBAAwBA,EAAQ,oBAAsBA,EAAQ,mBAAqB,OAC3F,MAAMw1D,EAAY,EAAQ,KAAkB,EACtCI,EAAc,EAAQ,KAAkB,EACxCC,EAAiB,EAAQ,KAAqB,EAC9CjO,EAAc,EAAQ,KAAoB,EAC1CkO,EAAoB,EAAQ,IAA0B,EACtDC,EAAkB,EAAQ,KAAwB,EAClDN,EAAe,CACjB,KAAM,CAAC,EACP,OAAQ,OACR,MAAO,KACP,UAAW,GACX,iBAAkB,KAClB,mBAAoB7N,EAAY,WAAW,QAC/C,EACA5nD,EAAQ,sBAAyBw1D,EAAU,kBAAkB,sBAAuB,CAACsC,EAAc,CAAE,gBAAA9B,CAAgB,IAAMz+C,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACtK,GAAI,CAEA,OADiB,MAAMq+C,EAAY,UAAU,IAAIC,EAAe,cAAc,mBAAmBiC,EAAa,OAAO,CAAC,GACtG,IACpB,OACOv1C,EAAO,CAEV,MAAM0zC,EAAW,CACb,WAFgBH,EAAkB,iBAAiBvzC,CAAK,EAGxD,eAAgB,CACZ,OAAQ,qBACR,SAAUszC,EAAe,cAAc,mBAAmBiC,EAAa,OAAO,CAClF,CACJ,EACA,SAAI/B,EAAgB,UAAUxzC,EAAO0zC,CAAQ,EACtCD,EAAgBC,CAAQ,CACnC,CACJ,CAAC,EAAG,CACA,UAAW,CAACnY,EAAG,CAAE,SAAAia,CAAS,IAAM,CAC5B,KAAM,CAAE,UAAAsI,CAAU,EAAItI,EAAS,EAC/B,GAAIsI,EAAU,SAAW,UACrB,MAAO,EAEf,CACJ,CAAC,EACD,MAAMC,KAAqB9K,EAAU,aAAa,CAC9C,KAAM,YACN,aAAAC,EACA,SAAU,CACN,oBAAoBjsD,EAAOmsD,EAAQ,CAC/BnsD,EAAM,iBAAmBmsD,EAAO,OACpC,EACA,sBAAsBnsD,EAAOmsD,EAAQ,CACjCnsD,EAAM,mBAAqBmsD,EAAO,OACtC,CACJ,EACA,cAAgBQ,GAAY,CACxBA,EAAQ,QAAQn2D,EAAQ,mBAAmB,QAAUwJ,GAAU,CAC3DA,EAAM,OAAS,UACfA,EAAM,UAAY,GAClBA,EAAM,MAAQ,IAClB,CAAC,EACD2sD,EAAQ,QAAQn2D,EAAQ,mBAAmB,UAAW,CAACwJ,EAAOmsD,IAAW,CACrEnsD,EAAM,OAAS,YACfA,EAAM,KAAOmsD,EAAO,QACpBnsD,EAAM,UAAY,GAClB,MAAMy8C,EAAa,OAAO,KAAK0P,EAAO,OAAO,EACzC1P,EAAW,OAAS,IACpBz8C,EAAM,iBAAmBy8C,EAAWA,EAAW,OAAS,CAAC,EAEjE,CAAC,EACDkQ,EAAQ,QAAQn2D,EAAQ,mBAAmB,SAAU,CAACwJ,EAAOmsD,IAAW,CACpEnsD,EAAM,OAAS,WACfA,EAAM,MAAQmsD,EAAO,SAAW,CAC5B,QAAS,2BACb,EACAnsD,EAAM,UAAY,EACtB,CAAC,CACL,CACJ,CAAC,EACDlC,EAAKg5D,EAAe,QAAStgE,EAAQ,oBAAsBsH,EAAG,oBAAqBtH,EAAQ,sBAAwBsH,EAAG,sBACtHtH,EAAA,QAAkBsgE,EAAe,O,kCCvFjC,OAAO,eAAetgE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,WAAa,OACrB,IAAIugE,GACH,SAAUA,EAAY,CACnBA,EAAW,QAAa,aACxBA,EAAW,kBAAuB,mBAClCA,EAAW,GAAQ,aACnBA,EAAW,aAAkB,mBAC7BA,EAAW,qBAA0B,sBACrCA,EAAW,gBAAqB,QAChCA,EAAW,kBAAuB,WAClCA,EAAW,KAAU,UACrBA,EAAW,aAAkB,oBAC7BA,EAAW,yBAA8B,yBAC7C,GAAGA,IAAevgE,EAAQ,WAAaugE,EAAa,CAAC,EAAE,C,mCCdvD,OAAO,eAAevgE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,YAAcA,EAAQ,aAAeA,EAAQ,eAAiBA,EAAQ,0BAA4BA,EAAQ,yBAA2B,OAC7I,MAAMwgE,EAAe,CACjB,MAAO,QACP,OAAQ,QACZ,EACAxgE,EAAQ,aAAewgE,EACvB,MAAMC,EAAiB,CACnB,SAAU,WACV,iBAAkB,mBAClB,MAAO,QACP,mBAAoB,qBACpB,YAAa,cACb,YAAa,aACjB,EACAzgE,EAAQ,eAAiBygE,EACzB,MAAMC,EAA4B,CAC9BD,EAAe,SACfA,EAAe,mBACfA,EAAe,YACfA,EAAe,WACnB,EACAzgE,EAAQ,0BAA4B0gE,EACpC,MAAMC,EAA2B,CAC7BF,EAAe,SACfA,EAAe,iBACfA,EAAe,MACfA,EAAe,mBACfA,EAAe,WACnB,EACAzgE,EAAQ,yBAA2B2gE,EACnC,MAAMC,EAAc,CAChB,kBAAmB,aACvB,EACA5gE,EAAQ,YAAc4gE,C,mCClCtB,OAAO,eAAe5gE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,SAAWA,EAAQ,UAAY,OACvC,MAAM6gE,EAAY,CACd,QAAS,UACT,UAAW,YACX,QAAS,UACT,OAAQ,QACZ,EACA7gE,EAAQ,UAAY6gE,EACpB,IAAIC,GACH,SAAUA,EAAU,CACjBA,EAAS,IAAS,MAClBA,EAAS,UAAe,YACxBA,EAAS,QAAa,UACtBA,EAAS,OAAY,QACzB,GAAGA,IAAa9gE,EAAQ,SAAW8gE,EAAW,CAAC,EAAE,C,mCCfjD,OAAO,eAAe9gE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,aAAeA,EAAQ,iBAAmBA,EAAQ,aAAe,OACzEA,EAAQ,aAAe,CACnB,mBAAoB,CAChB,aAAc,gBACd,aAAc,eACd,YAAa,cACb,gBAAiB,mBACjB,kBAAmB,oBACnB,iBAAkB,iBACtB,EACA,SAAU,aACV,iBAAkB,iBAClB,MAAO,mBACP,YAAa,YACb,YAAa,kBACjB,EACAA,EAAQ,iBAAmB,CACvB,SAAUA,EAAQ,aAAa,SAC/B,iBAAkBA,EAAQ,aAAa,iBACvC,MAAOA,EAAQ,aAAa,MAC5B,mBAAoB,CAChB,OAAQ,CACJA,EAAQ,aAAa,mBAAmB,aACxCA,EAAQ,aAAa,mBAAmB,aACxCA,EAAQ,aAAa,mBAAmB,WAC5C,EACA,MAAO,CACHA,EAAQ,aAAa,mBAAmB,aACxCA,EAAQ,aAAa,mBAAmB,aACxCA,EAAQ,aAAa,mBAAmB,YACxCA,EAAQ,aAAa,mBAAmB,eAC5C,CACJ,EACA,YAAaA,EAAQ,aAAa,YAClC,YAAaA,EAAQ,aAAa,WACtC,EACAA,EAAQ,aAAe,CACnB,IAAK,MACL,WAAY,YAChB,C,mCCxCA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkBA,EAAQ,eAAiB,OACnD,IAAI+gE,GACH,SAAUA,EAAgB,CACvBA,EAAe,KAAU,OACzBA,EAAe,IAAS,MACxBA,EAAe,KAAU,OACzBA,EAAe,MAAW,QAC1BA,EAAe,OAAY,QAC/B,GAAGA,IAAmB/gE,EAAQ,eAAiB+gE,EAAiB,CAAC,EAAE,EACnE,IAAIC,GACH,SAAUA,EAAiB,CACxBA,EAAgB,YAAiB,cACjCA,EAAgB,KAAU,OAC1BA,EAAgB,IAAS,KAC7B,GAAGA,IAAoBhhE,EAAQ,gBAAkBghE,EAAkB,CAAC,EAAE,C,mCCftE,OAAO,eAAehhE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,WAAa,OACrB,IAAIihE,GACH,SAAUA,EAAY,CACnBA,EAAW,SAAc,UACzBA,EAAW,OAAY,QACvBA,EAAW,OAAY,OAC3B,GAAGA,IAAejhE,EAAQ,WAAaihE,EAAa,CAAC,EAAE,C,mCCPvD,OAAO,eAAejhE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,aAAe,OACvB,IAAIkhE,GACH,SAAUA,EAAc,CACrBA,EAAa,aAAkB,gBAC/BA,EAAa,aAAkB,iBAC/BA,EAAa,YAAiB,eAC9BA,EAAa,cAAmB,kBAChCA,EAAa,QAAa,WAC1BA,EAAa,UAAe,aAC5BA,EAAa,gBAAqB,oBAClCA,EAAa,cAAmB,gBACpC,GAAGA,IAAiBlhE,EAAQ,aAAekhE,EAAe,CAAC,EAAE,C,mCCZ7D,OAAO,eAAelhE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,OAASA,EAAQ,QAAUA,EAAQ,IAAMA,EAAQ,IAAM,OAE/D,MAAMmhE,EAAM,CAAC3+D,EAAM+O,EAAO6rB,EAAU,CAAC,IAAM,CACvCA,EAAU,OAAO,OAAO,CAAE,KAAM,GAAI,EAAGA,CAAO,EAC1CA,EAAQ,mBAAmB,OAC3BA,EAAQ,QAAUA,EAAQ,QAAQ,YAAY,GAElD,IAAIgkC,EAAgB,mBAAmB5+D,CAAI,EAAI,IAAM,mBAAmB+O,CAAK,EAC7E,QAAS8vD,KAAajkC,EAAS,CAC3BgkC,GAAiB,KAAOC,EACxB,IAAIC,EAAclkC,EAAQikC,CAAS,EAC/BC,IAAgB,KAChBF,GAAiB,IAAME,EAE/B,CACA,SAAS,OAASF,CACtB,EACAphE,EAAQ,IAAMmhE,EAEd,MAAMI,EAAO/+D,GAAS,CAClB,MAAMg/D,EAAU,SAAS,OAAO,MAAM,IAAI,OAAO,WAC7Ch/D,EAAK,QAAQ,+BAAgC,MAAM,EACnD,UAAU,CAAC,EACf,OAAOg/D,EAAU,mBAAmBA,EAAQ,CAAC,CAAC,EAAI,IACtD,EACAxhE,EAAQ,IAAMuhE,EAEd,MAAME,EAAWj/D,GAAS,CACtB,MAAM+O,KAAYvR,EAAQ,KAAKwC,CAAI,EACnC,OAAO+O,EAAQ,KAAK,MAAMA,CAAK,EAAI,IACvC,EACAvR,EAAQ,QAAUyhE,EAElB,MAAMC,EAAUl/D,GAAS,IACjBxC,EAAQ,KAAKwC,EAAM,GAAI,CACvB,UAAW,EACf,CAAC,CACL,EACAxC,EAAQ,OAAS0hE,C,mCCvCjB,OAAO,eAAe1hE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,eAAiB,OACzB,MAAM2hE,EAAkBC,GAAS,CAC7B,MAAMC,EAAaD,EACnB,GAAI,UAAU,WAAa,UAAU,UAAU,UAC3C,UAAU,UACL,UAAUC,CAAU,EACpB,KAAK,IAAM,CACZ,QAAQ,IAAI,aAAa,CAC7B,CAAC,EACI,MAAOt/C,GAAU,CAClB,QAAQ,MAAM,uBAAwBA,CAAK,CAC/C,CAAC,MAEA,CAED,MAAMu/C,EAAY,SAAS,cAAc,OAAO,EAChDA,EAAU,MAAM,SAAW,WAC3BA,EAAU,MAAM,KAAO,UACvBA,EAAU,MAAQD,EAClB,SAAS,KAAK,YAAYC,CAAS,EACnCA,EAAU,OAAO,EACjB,SAAS,YAAY,MAAM,EAC3B,SAAS,KAAK,YAAYA,CAAS,EACnCA,EAAU,QAAWliE,GAAM,CACvB,QAAQ,IAAIA,EAAE,QAAQ,CAC1B,CACJ,CACJ,EACAI,EAAQ,eAAiB2hE,C,qCC7BzB,IAAI7hE,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkB,OAC1B,MAAM6N,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CiiE,EAAmBhvD,GAAY,CAEjC,GAAI,CAACA,GAAWA,IAAY,eACxB,OAAO,KAAK,IAAI,EAEpB,GAAI,CAEA,MAAMvF,EAAYK,EAAS,QAAQ,IAAIkF,EAAS,kBAAkB,EAAE,QAAQ,EAC5E,OAAI,MAAMvF,CAAS,GACf,QAAQ,KAAK,yBAAyBuF,CAAO,uBAAuB,EAC7D,KAAK,IAAI,GAEbvF,CACX,OACO+U,EAAO,CACV,eAAQ,KAAK,+BAA+BxP,CAAO,wBAAyBwP,CAAK,EAC1E,KAAK,IAAI,CACpB,CACJ,EACAviB,EAAQ,gBAAkB+hE,C,mCCzB1B,OAAO,eAAe/hE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqB,OAC7B,MAAMgiE,EAAsBhoD,GAAY,CACpC,IAAI1S,EAAI8O,EAAIqjD,EAEZ,MAAMwI,EADgBjoD,EAAQ,CAAC,EAAE,MACC,CAAC,EAC7BkoD,EAAWloD,EAAQ,CAAC,EAAE,SAAS,SAE/BmoD,EAAoBC,GAAgB,CACtC,OAAQA,EAAa,CACjB,IAAK,KACD,OAAO,IAAI,OAAO,KAAK,aAAa,CAAE,IAAK,MAAO,IAAK,OAAQ,EAC/D,CAAE,IAAK,MAAO,IAAK,MAAO,CAC1B,EACJ,IAAK,KACD,OAAO,IAAI,OAAO,KAAK,aAAa,CAAE,IAAK,MAAO,IAAK,KAAM,EAAG,CAAE,IAAK,MAAO,IAAK,GAAM,CAAC,EAC9F,IAAK,KACD,OAAO,IAAI,OAAO,KAAK,aAAa,CAAE,IAAK,GAAM,IAAK,IAAO,EAC7D,CAAE,IAAK,GAAM,IAAK,GAAM,CAAC,EAE7B,QACI,OAAOF,CACf,CACJ,EAEMG,EAAkB74D,GAAU,CAC9B,OAAQA,EAAO,CACX,IAAK,KACD,OAAO,IAAI,OAAO,KAAK,aAAa,CAAE,IAAK,MAAO,IAAK,OAAQ,EAAG,CAAE,IAAK,MAAO,IAAK,OAAQ,CAAC,EAClG,IAAK,KACD,OAAO,IAAI,OAAO,KAAK,aAAa,CAAE,IAAK,MAAO,IAAK,OAAQ,EAAG,CAAE,IAAK,KAAM,IAAK,MAAO,CAAC,EAChG,IAAK,KACD,OAAO,IAAI,OAAO,KAAK,aAAa,CAAE,IAAK,MAAO,IAAK,OAAQ,EAAG,CAAE,IAAK,MAAO,IAAK,OAAQ,CAAC,EAClG,QACI,OAAO04D,CACf,CACJ,EACA,OAAQD,EAAa,CAEjB,IAAK,iBACL,IAAK,UACL,IAAK,aACL,IAAK,gBACL,IAAK,OACD,MAAO,CACH,KAAM,GACN,OAAQC,CACZ,EAEJ,IAAK,QACL,IAAK,eACD,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,EAEJ,IAAK,aACL,IAAK,MACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,gBACL,IAAK,cACL,IAAK,OACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,iBACL,IAAK,oBACL,IAAK,aACL,IAAK,UACL,IAAK,mBACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,oBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,eACL,IAAK,kBACL,IAAK,cACL,IAAK,MACL,IAAK,YACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,WACL,IAAK,mBACL,IAAK,gBACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,qBACL,IAAK,eACL,IAAK,0BACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,gBACL,IAAK,SACL,IAAK,eACL,IAAK,gBACL,IAAK,iBACL,IAAK,SACL,IAAK,eACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,kBACL,IAAK,UACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,aACL,IAAK,qBACL,IAAK,UACL,IAAK,SACL,IAAK,mBACL,IAAK,aACL,IAAK,gBACL,IAAK,MACL,IAAK,UACL,IAAK,QACL,IAAK,cACL,IAAK,sBACL,IAAK,sBACL,IAAK,sBACL,IAAK,sBACL,IAAK,sBACL,IAAK,iBACL,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,aACL,IAAK,kBACL,IAAK,MACL,IAAK,cACD,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,EAEJ,IAAK,UACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,gBACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,qBACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,kBACL,IAAK,mBACL,IAAK,UACL,IAAK,qBACL,IAAK,OACL,IAAK,oBACL,IAAK,WACL,IAAK,cACD,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,EAEJ,IAAK,WACL,IAAK,cACL,IAAK,qBACL,IAAK,qBACD,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,EAEJ,IAAK,8BACL,IAAK,8BACL,IAAK,8BACL,IAAK,8BACL,IAAK,8BACD,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,EAEJ,IAAK,8BACD,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,EAEJ,IAAK,8BAED,KADiB56D,EAAK0S,EAAQ,CAAC,EAAE,mBAAmB,KAAMsoD,GAAcA,EAAU,MAAM,SAAS,SAAS,CAAC,KAAO,MAAQh7D,IAAO,OAAS,OAASA,EAAG,cACtI,KAAM,CAClB,MAAMkC,GAAS4M,EAAK4D,EAAQ,CAAC,EAAE,mBAAmB,KAAMsoD,GAAcA,EAAU,MAAM,SAAS,6BAA6B,CAAC,KAAO,MAAQlsD,IAAO,OAAS,OAASA,EAAG,WACxK,OAAQ5M,EAAO,CACX,IAAK,KACL,IAAK,KACL,IAAK,KACD,MAAO,CACH,KAAM,EACN,OAAQ64D,EAAe74D,CAAK,CAChC,EACJ,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACD,MAAO,CACH,KAAM,EACN,OAAQ04D,CACZ,EACJ,QACI,MAAO,CACH,KAAM,EACN,OAAQA,CACZ,CACR,CACJ,CACA,MAAO,CACH,KAAM,EACN,OAAQA,CACZ,EAEJ,IAAK,UACD,MAAME,GAAe3I,EAAKz/C,EAAQ,CAAC,EAAE,mBAAmB,KAAMsoD,GAAcA,EAAU,MAAM,SAAS,SAAS,CAAC,KAAO,MAAQ7I,IAAO,OAAS,OAASA,EAAG,WAC1J,OAAQ2I,EAAa,CACjB,IAAK,KACL,IAAK,KACD,MAAO,CACH,KAAM,EACN,OAAQD,EAAiBC,CAAW,CACxC,EACJ,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACD,MAAO,CACH,KAAM,EACN,OAAQD,EAAiBC,CAAW,CACxC,EACJ,IAAK,KACL,IAAK,KACD,MAAO,CACH,KAAM,EACN,OAAQD,EAAiBC,CAAW,CACxC,EACJ,QACI,MAAO,CACH,KAAM,EACN,OAAQF,CACZ,CACR,CAEJ,IAAK,cACL,IAAK,kBACL,IAAK,YACD,MAAO,CACH,KAAM,EACN,OAAQA,CACZ,EAEJ,IAAK,aACD,MAAO,CACH,KAAM,EACN,OAAQA,CACZ,EAEJ,QACI,MAAO,CACH,KAAM,GACN,OAAQA,CACZ,CACR,CACJ,EACAliE,EAAQ,mBAAqBgiE,C,qCCpS7B,IAAIliE,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,iBAAmB,OAC3B,MAAM6N,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CkO,EAAe,EAAQ,IAAqB,EAC5C45C,EAAc,EAAQ,KAAoB,EAC1C2a,EAAmB,CAACtc,EAAY1pB,IAAc,CAChD,MAAMwH,EAAMl2B,EAAS,QAAQ,IAAI,EACjC,IAAIjL,EACJ,OAAQ25B,EAAW,CACf,KAAKqrB,EAAY,WAAW,SACxBhlD,EAAYmhC,EAAI,MAAM,EAAE,SAAS,GAAI,OAAO,EAC5C,MACJ,KAAK6jB,EAAY,WAAW,OACxBhlD,EAAYmhC,EAAI,MAAM,EAAE,SAAS,EAAG,MAAM,EAC1C,MACJ,KAAK6jB,EAAY,WAAW,OACxBhlD,EAAYmhC,EAAI,MAAM,EAAE,SAAS,EAAG,MAAM,EAC1C,MACJ,QACInhC,EAAYmhC,EAAI,MAAM,EAAE,SAAS,GAAI,OAAO,EAC5C,KACR,CACA,MAAMy+B,EAAW,OAAO,KAAKvc,CAAU,EAClC,OAAQz4C,GACeK,EAAS,QAAQ,IAAIL,EAAWQ,EAAa,WAAW,wBAAwB,EACjF,QAAQpL,CAAS,CAC3C,EACI,KAAK,CAAC2M,EAAGC,IAAM3B,EAAS,QACxB,IAAI0B,EAAGvB,EAAa,WAAW,wBAAwB,EACvD,KAAKH,EAAS,QAAQ,IAAI2B,EAAGxB,EAAa,WAAW,wBAAwB,CAAC,CAAC,EACpF,OAAIw0D,EAAS,SAAW,EACb,OAAO,KAAKvc,CAAU,EAAE,KAAK,CAAC12C,EAAGC,IAAM3B,EAAS,QAClD,IAAI0B,EAAGvB,EAAa,WAAW,wBAAwB,EACvD,KAAKH,EAAS,QAAQ,IAAI2B,EAAGxB,EAAa,WAAW,wBAAwB,CAAC,CAAC,EAEjFw0D,CACX,EACAxiE,EAAQ,iBAAmBuiE,C,qCCxC3B,OAAO,eAAeviE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqB,OAC7B,MAAMC,EAAU,EAAQ,KAAO,EACzBwiE,EAAmB,kBACnBC,EAAmB7+C,GAAU,CAC3BA,EAAM,MAAQ,QACd,SAAS,KAAK,UAAU,IAAI4+C,CAAgB,EAC5C,OAAO,oBAAoB,UAAmCC,CAAe,EAC7E,OAAO,iBAAiB,YAAuCC,CAAiB,EAExF,EACMA,EAAoB,IAAM,CAC5B,SAAS,KAAK,UAAU,OAAOF,CAAgB,EAC/C,OAAO,oBAAoB,YAAuCE,CAAiB,EACnF,OAAO,iBAAiB,UAAmCD,CAAe,CAC9E,EACME,EAAqB,QACnB3iE,EAAQ,WAAW,KACnB,OAAO,iBAAiB,UAAmCyiE,CAAe,EACnE,IAAM,CACT,OAAO,oBAAoB,UAAmCA,CAAe,EAC7E,OAAO,oBAAoB,YAAuCC,CAAiB,CACvF,GACD,CAAC,CAAC,EACE,MAEX3iE,EAAQ,mBAAqB4iE,C,qCC1B7B,IAAIrrD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACA,OAAO,eAAezX,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqB,OAC7B,MAAMwY,EAAqB,EAAQ,KAAoB,EACjDy4C,EAAe,GACf4R,EAAqB,CAACvjE,EAAK4Z,IAAiB3B,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CAC7F,GAAI,CAUA,MAAM8B,EAAO,MATI,MAAM,MAAM,kGAA8F,CACvH,OAAQ,OACR,QAAS,CACL,eAAgB,kBACpB,EACA,KAAM,KAAK,UAAU,CACjB,WAAY,EAChB,CAAC,CACL,CAAC,GAC2B,KAAK,EACjC,GAAIA,EAAK,SAAU,CACf,KAAM,CAAE,IAAAY,EAAK,IAAAC,CAAI,EAAIb,EAAK,SAC1B,OAAAH,EAAa,CACT,CACI,IAAKV,EAAmB,eAAe,cACvC,MAAO,KAAK,UAAU,CAAE,IAAAyB,EAAK,IAAAC,CAAI,CAAC,CACtC,EACA,CACI,IAAK1B,EAAmB,eAAe,YACvC,MAAOy4C,EAAa,SAAS,CACjC,CACJ,CAAC,EACD3xD,GAAQ,MAAkCA,EAAI,QAAQ2xD,CAAY,EAClE3xD,GAAQ,MAAkCA,EAAI,MAAM,CAAE,IAAA2a,EAAK,IAAAC,CAAI,CAAC,EACzD,CAAE,IAAAD,EAAK,IAAAC,CAAI,CACtB,CACA,OAAO,IACX,OACOqI,EAAO,CACV,OAAO,IACX,CACJ,CAAC,EACDviB,EAAQ,mBAAqB6iE,C,mCC/C7B,OAAO,eAAe7iE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,wBAA0B,OAClC,MAAM8iE,EAA0B,CAACxjE,EAAKyjE,IAAW,CAC7C,MAAMvqB,EAAU,IAAI,OAAO,KAAK,YAChCA,EAAQ,OAAOl5C,CAAG,EAClB,MAAM0jE,EAAoBxqB,EAAQ,cAAc,EAChD,GAAI,CAACwqB,EACD,MAAM,IAAI,MAAM,6BAA6B,EAEjD,MAAM7hC,EAAQ6hC,EAAkB,2BAA2BD,CAAM,EACjE,GAAI,CAAC5hC,EACD,MAAM,IAAI,MAAM,wCAAwC,EAE5D,OAAOA,CACX,EACAnhC,EAAQ,wBAA0B8iE,C,kCCflC,OAAO,eAAe9iE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,gBAAkB,OAC1B,MAAMijE,EAAsB1gD,GAAU,OAAOA,GAAU,UACnDA,IAAU,MACV,YAAaA,GACb,OAAOA,EAAM,SAAY,SACvB2gD,EAAsBC,GAAe,CACvC,GAAIF,EAAmBE,CAAU,EAC7B,OAAOA,EACX,GAAI,CACA,OAAO,IAAI,MAAM,KAAK,UAAUA,CAAU,CAAC,CAC/C,OACO77D,EAAI,CACP,OAAO,IAAI,MAAM,OAAO67D,CAAU,CAAC,CACvC,CACJ,EACMC,EAAmB7gD,GACd2gD,EAAmB3gD,CAAK,EAAE,QAErCviB,EAAQ,gBAAkBojE,C,qCCnB1B,OAAO,eAAepjE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,oBAAsBA,EAAQ,sBAAwB,OAC9D,MAAMu5B,EAAc,EAAQ,KAAoB,EAC1C8pC,EAAwB,CAAC9mC,EAAWje,IAA6B,CACnE,GAAIA,EACA,OAAQie,EAAW,CACf,KAAKhD,EAAY,eAAe,IAC5B,MAAO,GACX,KAAKA,EAAY,eAAe,KAC5B,MAAO,GACX,KAAKA,EAAY,eAAe,MAC5B,MAAO,GACX,KAAKA,EAAY,eAAe,OAC5B,MAAO,GACX,QACI,MAAO,EACf,KAGA,QAAQgD,EAAW,CACf,KAAKhD,EAAY,gBAAgB,YAC7B,MAAO,GACX,KAAKA,EAAY,gBAAgB,KAC7B,MAAO,GACX,KAAKA,EAAY,gBAAgB,IAC7B,MAAO,GACX,QACI,MAAO,EACf,CAER,EACAv5B,EAAQ,sBAAwBqjE,EAChC,MAAMC,EAAsB,CAAChpD,EAAOgE,IAA6B,CAC7D,GAAIA,EACA,OAAQhE,EAAO,CACX,IAAK,GACD,OAAOif,EAAY,eAAe,IACtC,IAAK,GACD,OAAOA,EAAY,eAAe,KACtC,IAAK,GACD,OAAOA,EAAY,eAAe,MACtC,IAAK,GACD,OAAOA,EAAY,eAAe,OACtC,QACI,OAAOA,EAAY,eAAe,GAC1C,KAGA,QAAQjf,EAAO,CACX,IAAK,GACD,OAAOif,EAAY,gBAAgB,YACvC,IAAK,GACD,OAAOA,EAAY,gBAAgB,KACvC,IAAK,GACD,OAAOA,EAAY,gBAAgB,IACvC,QACI,OAAOA,EAAY,gBAAgB,GAC3C,CAER,EACAv5B,EAAQ,oBAAsBsjE,C,kCC5D9B,OAAO,eAAetjE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,SAASujE,EAAUC,EAAKC,EAAS,CAC7BD,EAAMA,EAAI,QAAQ,IAAK,EAAE,EACzB,IAAIE,EAAI,SAASF,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACpCG,EAAI,SAASH,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACpCh0D,EAAI,SAASg0D,EAAI,UAAU,EAAG,CAAC,EAAG,EAAE,EACxC,MAAO,QAAQE,CAAC,KAAKC,CAAC,KAAKn0D,CAAC,KAAKi0D,CAAO,GAC5C,CACAzjE,EAAA,QAAkBujE,C,qCCRlB,IAAIj9D,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACA,OAAO,eAAe/G,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,iBAAmB,OAC3B,MAAM4jE,EAAS98D,EAAa,EAAQ,KAAe,CAAC,EAC9C+8D,EAAmB,IAAM,CAC3B,IAAIC,EACJ,OAAQ,OAAO,SAAS,SAAU,CAC9B,IAAK,4BACDA,EAAoB,aACpB,MACJ,IAAK,iBACDA,EAAoB,eACpB,MACJ,IAAK,gBACDA,EAAoB,UACpB,MACJ,QACIA,EAAoB,aACpB,KACR,CAEIF,EAAO,KAAK,CACR,YAAaE,EACb,IAAK,kGACL,aAAc,CACVF,EAAO,0BAA0B,EACjCA,EAAO,kBAAkB,CAC7B,EACA,iBAAkB,EAClB,wBAAyB,CAAC,4BAA4B,EACtD,yBAA0B,GAC1B,yBAA0B,CAC9B,CAAC,CAET,EACA5jE,EAAQ,iBAAmB6jE,C,mCCzD3B,OAAO,eAAe7jE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,kBAAoB,OAC5B,MAAM+jE,EAAqBC,GAAU,CACjC,GAAIA,EAAM,SAAW,EACjB,OACJ,MAAMC,EAAc,CAAC,GAAGD,CAAK,EAAE,KAAK,CAACz0D,EAAGC,IAAM,IAAI,KAAKD,EAAE,IAAI,EAAE,QAAQ,EAAI,IAAI,KAAKC,EAAE,IAAI,EAAE,QAAQ,CAAC,EACrG,OAAOy0D,EAAYA,EAAY,OAAS,CAAC,CAC7C,EACAjkE,EAAQ,kBAAoB+jE,C,qCCR5B,IAAIz9D,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACA,OAAO,eAAe/G,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,SAAWA,EAAQ,SAAWA,EAAQ,SAAW,OACzD,MAAM4jE,EAAS98D,EAAa,EAAQ,KAAe,CAAC,EAC9CgvD,EAAoB,EAAQ,IAA0B,EAC5D,IAAIoO,GACH,SAAUA,EAAU,CACjBA,EAAS,KAAU,OACnBA,EAAS,QAAa,UACtBA,EAAS,MAAW,QACpBA,EAAS,MAAW,QACpBA,EAAS,MAAW,OACxB,GAAGA,IAAalkE,EAAQ,SAAWkkE,EAAW,CAAC,EAAE,EACjD,MAAMC,EAA0BC,GAAU,CACtC,OAAQA,EAAO,CACX,KAAKF,EAAS,KACV,MAAO,OACX,KAAKA,EAAS,QACV,MAAO,UACX,KAAKA,EAAS,MACV,MAAO,QACX,KAAKA,EAAS,MACV,MAAO,QACX,KAAKA,EAAS,MACV,MAAO,QACX,QACI,MAAO,MACf,CACJ,EACMG,EAAW,CAAC,CAAE,QAAAljD,EAAS,MAAAijD,EAAQF,EAAS,IAAM,IAAM,CACtD,MAAMI,EAAgBH,EAAuBC,CAAK,EAClDR,EAAO,eAAeziD,EAASmjD,CAAa,CAChD,EACAtkE,EAAQ,SAAWqkE,EACnB,MAAME,EAAW,CAAChiD,EAAOiiD,EAAU,CAAC,IAAM,CACtC,MAAMhhD,KAAmBsyC,EAAkB,iBAAiBvzC,CAAK,EAC3DkiD,EAAa,IAAI,MAAMjhD,CAAY,EACzCogD,EAAO,iBAAiBa,EAAY,CAChC,MAAO,OAAO,OAAO,CAAC,EAAGD,CAAO,CACpC,CAAC,CACL,EACAxkE,EAAQ,SAAWukE,C,qCC/DnB,OAAO,eAAevkE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAU,EAAQ,KAAO,EACzBykE,EAAuB,CAACplE,EAAKqlE,IAAkB,IAC7C1kE,EAAQ,WAAW,IAAM,CACzB,GAAIX,EACA,cAAO,QAAQqlE,CAAa,EAAE,QAAQ,CAAC,CAACC,EAAWC,CAAO,IAAM,CAC5DvlE,EAAI,YAAYslE,EAAWC,CAAO,CACtC,CAAC,EAEM,IAAM,CACLvlE,GACA,OAAO,KAAKqlE,CAAa,EAAE,QAASC,GAAc,CAC9C,OAAO,KAAK,MAAM,eAAetlE,EAAKslE,CAAS,CACnD,CAAC,CAET,CAER,EAAG,CAACtlE,EAAKqlE,CAAa,CAAC,CAC3B,EACA3kE,EAAA,QAAkB0kE,C,qCCnBlB,IAAIp+D,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,aAAeA,EAAQ,eAAiB,OAChD,MAAM8kB,EAAW,EAAQ,KAAQ,EAC3B7kB,EAAU,EAAQ,KAAO,EACzBE,EAAqB,EAAQ,KAAkB,EAC/C4kB,EAAqB,EAAQ,KAAyD,EACtFkC,EAAiB,EAAQ,IAAqD,EAC9EkB,EAAsB,EAAQ,KAA0D,EACxF2yC,EAAe,EAAQ,KAAiD,EACxE//C,EAAa,EAAQ,KAAmB,EACxC+uB,EAAgB,EAAQ,KAAsB,EAC9ChhC,EAAU,EAAQ,KAAgB,EAClC2J,EAAmB,EAAQ,KAAyB,EACpDyI,EAAY,EAAQ,KAAkB,EACtCqM,EAAY,EAAQ,KAAkB,EACtCpM,EAAe,EAAQ,KAAqB,EAC5ClS,EAA2BnJ,EAAgB,EAAQ,KAAiC,CAAC,EACrFqqC,EAAUrjC,EAAa,EAAQ,KAAW,CAAC,EAC3Cqf,EAAc,EAAQ,KAAa,EACzC,IAAI2+C,GACH,SAAUA,EAAgB,CACvBA,EAAe,UAAe,YAC9BA,EAAe,WAAgB,aAC/BA,EAAe,WAAgB,aAC/BA,EAAe,UAAe,YAC9BA,EAAe,cAAmB,gBAClCA,EAAe,oBAAyB,sBACxCA,EAAe,YAAiB,cAChCA,EAAe,gBAAqB,kBACpCA,EAAe,SAAc,WAC7BA,EAAe,SAAc,WAC7BA,EAAe,SAAc,WAC7BA,EAAe,MAAW,QAC1BA,EAAe,QAAa,UAC5BA,EAAe,gBAAqB,kBACpCA,EAAe,OAAY,SAC3BA,EAAe,eAAoB,iBACnCA,EAAe,qBAA0B,uBACzCA,EAAe,aAAkB,eACjCA,EAAe,WAAgB,aAC/BA,EAAe,UAAe,YAC9BA,EAAe,YAAiB,cAChCA,EAAe,SAAc,WAC7BA,EAAe,aAAkB,eACjCA,EAAe,aAAkB,eACjCA,EAAe,gBAAqB,kBACpCA,EAAe,cAAmB,gBAClCA,EAAe,aAAkB,eACjCA,EAAe,WAAgB,aAC/BA,EAAe,UAAe,YAC9BA,EAAe,KAAU,OACzBA,EAAe,SAAc,WAC7BA,EAAe,OAAY,QAC/B,GAAGA,IAAmB9kE,EAAQ,eAAiB8kE,EAAiB,CAAC,EAAE,EACnE,MAAMC,EAAe,IAAM,CACvB,MAAM14B,KAAwBvjC,EAAQ,gBAAgB2J,EAAiB,uBAAuB,EACxFu8C,KAAsBlmD,EAAQ,gBAAgB2J,EAAiB,gBAAgB,EAC/EpJ,KAAeJ,EAAyB,SAAS,EACjD,CAACoqB,EAAc2xC,CAAe,KAAQ7kE,EAAmB,iBAAiB,EAC1E8kE,KAAehlE,EAAQ,aAAa,CAACsrB,GAAO25C,KAAiB,CAC/D,MAAMC,EAAch7B,EAAQ,IAAI5e,EAAK,EACrC,OAAI8H,EAAa,IAAI9H,EAAK,EACf8H,EAAa,IAAI9H,EAAK,EAExB45C,IAAgB,KACdA,EAGAD,EAEf,EAAG,CAAC7xC,EAAc2xC,CAAe,CAAC,EAC5B9rD,KAAmBjZ,EAAQ,aAAcuB,IAAW,CACtD,MAAMinC,GAAkB,IAAI,gBAAgBpV,EAAa,SAAS,CAAC,EACnE7xB,GAAO,QAAQ,CAAC,CAAE,IAAAiB,EAAK,MAAA8O,EAAM,IAAM,CAC/Bk3B,GAAgB,IAAIhmC,EAAK8O,EAAK,CAClC,CAAC,EACDyzD,EAAgB,IAAIv8B,GAAgB,SAAS,CAAC,EAAE,CACpD,EAAG,CAACpV,EAAc2xC,CAAe,CAAC,EAC5Bx4C,EAAY,WAAWy4C,EAASH,EAAe,UAAWh7B,EAAc,mBAAmB,KAAK,SAAS,CAAC,CAAC,EAC3Grd,EAAa,WAAWw4C,EAASH,EAAe,WAAYh7B,EAAc,mBAAmB,MAAM,SAAS,CAAC,CAAC,EAC9Gpd,EAAa,WAAWu4C,EAASH,EAAe,WAAYh7B,EAAc,mBAAmB,MAAM,SAAS,CAAC,CAAC,EAC9Gvd,EAAY,WAAW04C,EAASH,EAAe,UAAWh7B,EAAc,mBAAmB,KAAK,SAAS,CAAC,CAAC,EAC3GuB,KAAoBprC,EAAQ,SAAS,IAAM,KAAK,MAAMglE,EAASH,EAAe,cAAe,KAAK,UAAUh7B,EAAc,kBAAkB,CAAC,CAAC,EAAG,CAACzW,CAAY,CAAC,EAC/J7X,EAAsBypD,EAASH,EAAe,oBAAqB3pD,EAAa,aAAa,OAAO,EACpGmwB,EAAc,WAAW25B,EAASH,EAAe,YAAah7B,EAAc,aAAa,SAAS,CAAC,CAAC,EACpG3nC,EAAW8iE,EAASH,EAAe,SAAU/pD,EAAW,KAAK,EAC7D4N,EAAc,IAAI,KAAK,EAAE,YAAY,EACrChE,EAAW,SAASsgD,EAASH,EAAe,SAAU//C,EAAmB,gBAAgB,SAAS,CAAC,CAAC,EACpGymB,EAAQ,SAASy5B,EAASH,EAAe,MAAO,KAAK,CAAC,EACtDr5B,KAAkBxrC,EAAQ,aAAcmlE,IAAa,CACvDlsD,EAAa,CAAC,CAAE,IAAK4rD,EAAe,MAAO,MAAOM,GAAS,SAAS,CAAE,CAAC,CAAC,CAC5E,EAAG,CAAClsD,CAAY,CAAC,EACX8uB,EAAYi9B,EAASH,EAAe,QAAShK,EAAa,YAAY,CAAC,EAAE,SAAS,GACpFA,EAAa,YAAY,CAAC,EAAE,UAC1Bj0C,EAAkBo+C,EAASH,EAAe,gBAAiB5pD,EAAU,eAAe,kBAAkB,EACtGywB,EAAS,SAASs5B,EAASH,EAAe,OAAQ,GAAG,CAAC,EACtDp5B,KAAmBzrC,EAAQ,aAAcolE,IAAc,CACzDnsD,EAAa,CACT,CAAE,IAAK4rD,EAAe,OAAQ,MAAOO,GAAU,SAAS,CAAE,CAC9D,CAAC,CACL,EAAG,CAACnsD,CAAY,CAAC,EACXqyB,EAAkB,SAAS05B,EAASH,EAAe,gBAAiB,GAAG,CAAC,EACxE/4B,MAA4B9rC,EAAQ,aAAcqlE,IAAuB,CAC3EpsD,EAAa,CACT,CACI,IAAK4rD,EAAe,gBACpB,MAAOQ,GAAmB,SAAS,CACvC,CACJ,CAAC,CACL,EAAG,CAACpsD,CAAY,CAAC,EACX0yB,MAAqB3rC,EAAQ,SAAS,IAAM,KAAK,MAAMglE,EAASH,EAAe,eAAgB,KAAK,UAAUh7B,EAAc,kBAAkB,CAAC,CAAC,EAAG,CAACzW,CAAY,CAAC,EACjKxW,EAAuBooD,EAASH,EAAe,qBAAsB3pD,EAAa,aAAa,OAAO,EACtG+J,MAAiCjlB,EAAQ,aAAcslE,IAAiC,CAC1FrsD,EAAa,CACT,CACI,IAAK4rD,EAAe,qBACpB,MAAOS,EACX,CACJ,CAAC,CACL,EAAG,CAACrsD,CAAY,CAAC,EACX2yB,GAAe,WAAWo5B,EAASH,EAAe,aAAch7B,EAAc,aAAa,SAAS,CAAC,CAAC,EACtG7nC,GAAagjE,EAASH,EAAe,WAAYv9C,EAAU,aAAa,mBAAmB,eAAe,EAC1GzS,GAAYmwD,EAASH,EAAe,UAAW,IAAI,IAAM,KACzD,SAASG,EAASH,EAAe,UAAW,GAAG,CAAC,EAChD,KACAziE,MAAkBpC,EAAQ,SAAS,IAAMglE,EAASH,EAAe,YAAa5pD,EAAU,aAAa,KAAK,EAAG,CAACmY,CAAY,CAAC,EAC3HC,MAAwBrzB,EAAQ,aAAc6sB,IAAwB,CACxE5T,EAAa,CACT,CAAE,IAAK4rD,EAAe,YAAa,MAAOh4C,EAAoB,EAC9D,CACI,IAAKg4C,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOz7D,EAAW8R,EAAa,aAAa,YAAcA,EAAa,aAAa,OACxF,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,gBACpB,MAAO5pD,EAAU,eAAe,kBACpC,EACA,CACI,IAAK4pD,EAAe,WACpB,MAAOh4C,KAAwB5R,EAAU,aAAa,MAChDqM,EAAU,aAAa,mBAAmB,gBAC1CA,EAAU,aAAa,mBAAmB,YACpD,EACA,CACI,IAAKu9C,EAAe,WACpB,MAAO5pD,EAAU,YAAY,iBACjC,EACA,CACI,IAAK4pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,KACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO/pD,EAAW,KACtB,EACA,CAAE,IAAK+pD,EAAe,SAAU,MAAO/pD,EAAW,IAAK,EACvD,CACI,IAAK+pD,EAAe,SACpB,SAAW38C,EAAoB,uBAAwBA,EAAoB,kBAAkB,EAAE,CAAC,CAAC,EAAE,SAAS,CAChH,EACA,CACI,IAAK28C,EAAe,OACpB,SAAW38C,EAAoB,iBAAkBA,EAAoB,kBAAkB,EAAE,CAAC,CAAC,EAAE,SAAS,CAC1G,CACJ,CAAC,CACL,EAAG,CAAC3M,EAAqBtC,CAAY,CAAC,EAChC9W,KAAenC,EAAQ,SAAS,IAAM,CACxC,MAAMulE,GAAcP,EAASH,EAAe,SAAU/pD,EAAW,IAAI,EACrE,OAAI1Y,KAAgB6Y,EAAU,aAAa,OAChC,GAEJsqD,KAAgBzqD,EAAW,IACtC,EAAG,CAACsY,EAAchxB,EAAW,CAAC,EACxBgmB,MAAqBpoB,EAAQ,aAAcwlE,IAAgB,CACzDpjE,KAAgB6Y,EAAU,aAAa,SACvCuqD,GAAc,IAElBvsD,EAAa,CACT,CACI,IAAK4rD,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOz7D,EACD8R,EAAa,aAAa,YAC1BK,IAAwBL,EAAa,aAAa,aAC9CA,EAAa,aAAa,aAC1BA,EAAa,aAAa,OACxC,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,SAAW38C,EAAoB,oBAAoBQ,CAAW,EAAE,SAAS,CAC7E,EACA,CACI,IAAKm8C,EAAe,OACpB,SAAW38C,EAAoB,cAAcQ,CAAW,EAAE,SAAS,CACvE,EACA,CAAE,IAAKm8C,EAAe,SAAU,MAAOW,GAAY,SAAS,CAAE,CAClE,CAAC,CACL,EAAG,CAACpjE,GAAa6W,EAAcyP,CAAW,CAAC,EACrChmB,GAAWsiE,EAASH,EAAe,SAAU,IAAI,IAAM,KACvD,SAASG,EAASH,EAAe,SAAU,GAAG,CAAC,EAC/C,KACApjE,EAAOujE,EAASH,EAAe,KAAM,EAAE,EACvCh5B,MAAwB7rC,EAAQ,SAAS,KAAO,CAClD,IAAK,WAAWglE,EAASH,EAAe,aAAcz4B,EAAkB,IAAI,SAAS,CAAC,CAAC,EACvF,IAAK,WAAW44B,EAASH,EAAe,aAAcz4B,EAAkB,IAAI,SAAS,CAAC,CAAC,EACvF,OAAQ,WAAW44B,EAASH,EAAe,gBAAiBz4B,EAAkB,OAAO,SAAS,CAAC,CAAC,EAChG,KAAM,WAAW44B,EAASH,EAAe,cAAez4B,EAAkB,KAAK,SAAS,CAAC,CAAC,EAC1F,IAAK,WAAW44B,EAASH,EAAe,aAAcz4B,EAAkB,IAAI,SAAS,CAAC,CAAC,CAC3F,GAAI,CAACA,CAAiB,CAAC,EACjBtqC,GAAWkjE,EAASH,EAAe,YAAc38C,EAAoB,uBAAwBA,EAAoB,kBAAkB,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EACnJnmB,GAASijE,EAASH,EAAe,UAAY38C,EAAoB,iBAAkBA,EAAoB,kBAAkB,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EACzIjmB,GAAa+iE,EAASH,EAAe,WAAY5pD,EAAU,YAAY,iBAAiB,EACxFzZ,GAAYwjE,EAASH,EAAe,UAAW,EAAE,KACnD7kE,EAAQ,WAAW,IAAM,CACzB,MAAM2tB,GAAc,IAAI,gBAAgByF,EAAa,SAAS,CAAC,EAE/DzF,GAAY,IAAIk3C,EAAe,aAAc9V,EAAgB,IAAI,SAAS,CAAC,EAC3EA,EAAgB,MAAQ,GACpBphC,GAAY,IAAIk3C,EAAe,aAAc9V,EAAgB,IAAI,SAAS,CAAC,EAC/EA,EAAgB,SAAW,GACvBphC,GAAY,IAAIk3C,EAAe,gBAAiB9V,EAAgB,OAAO,SAAS,CAAC,EACrFA,EAAgB,OAAS,GACrBphC,GAAY,IAAIk3C,EAAe,cAAe9V,EAAgB,KAAK,SAAS,CAAC,EACjFA,EAAgB,MAAQ,GACpBphC,GAAY,IAAIk3C,EAAe,aAAc9V,EAAgB,IAAI,SAAS,CAAC,EAC/E0W,GAAmB93C,EAAW,CAClC,EAAG,CAACohC,CAAe,CAAC,EACpB,MAAMzzC,MAAuBtb,EAAQ,aAAc0lE,IAAoB,CACnEzsD,EAAa,CACT,CACI,IAAK4rD,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOa,EACX,CACJ,CAAC,CACL,EAAG,CAACtyC,CAAY,CAAC,EACXhV,MAAoCpe,EAAQ,aAAa,IAAM,CACjE,MAAM2lE,GAA4B,CAACv8D,GAAYwT,IAAyB1B,EAAa,aAAa,aAC5FA,EAAa,aAAa,QAC1B0B,EACN3D,EAAa,CACT,CAAE,IAAK4rD,EAAe,UAAW,MAAO,EAAG,EAC3C,CAAE,IAAKA,EAAe,SAAU,MAAO,EAAG,EAC1C,CACI,IAAKA,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOc,EACX,CACJ,CAAC,CACL,EAAG,CAACvyC,EAAcxW,EAAsBrB,EAAqBtC,CAAY,CAAC,EACpEwL,MAAgBzkB,EAAQ,aAAa,CAACwC,GAAK8O,KAAU,CAEnD2H,EADA7P,EACa,CACT,CACI,IAAK5G,GACL,MAAO8O,EACX,CACJ,EAGa,CACT,CACI,IAAK9O,GACL,MAAO8O,EACX,EACA,CACI,IAAKuzD,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOtpD,IAAwBL,EAAa,aAAa,aACnDA,EAAa,aAAa,aAC1BA,EAAa,aAAa,OACpC,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,CACJ,CA1BC,CA4BT,EAAG,CAACzxC,CAAY,CAAC,EACXpK,MAA0BhpB,EAAQ,aAAckC,IAAa,CAE3D+W,EADA7P,EACa,CACT,CACI,IAAKy7D,EAAe,SACpB,MAAO3iE,EACX,EACA,CAAE,IAAK2iE,EAAe,UAAW,MAAO,EAAG,CAC/C,EAGa,CACT,CACI,IAAKA,EAAe,SACpB,MAAO3iE,EACX,EACA,CAAE,IAAK2iE,EAAe,UAAW,MAAO,EAAG,EAC3C,CACI,IAAKA,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOtpD,IAAwBL,EAAa,aAAa,aACnDA,EAAa,aAAa,aAC1BA,EAAa,aAAa,OACpC,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,CACJ,CA3BC,CA6BT,EAAG,CAACzxC,CAAY,CAAC,EACX/K,MAAiBroB,EAAQ,aAAc4lE,IAAiB,CAC1D3sD,EAAa,CACT,CACI,IAAK4rD,EAAe,qBACpB,MAAOz7D,EAAWwT,EAAuBrB,CAC7C,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOz7D,EACD8R,EAAa,aAAa,YAC1BK,IAAwBL,EAAa,aAAa,aAC9CA,EAAa,aAAa,aAC1BA,EAAa,aAAa,OACxC,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,SAAW38C,EAAoB,oBAAoB09C,EAAY,EAAE,SAAS,CAC9E,EACA,CACI,IAAKf,EAAe,OACpB,SAAW38C,EAAoB,cAAc09C,EAAY,EAAE,SAAS,CACxE,CACJ,CAAC,CACL,EAAG,CAAC19C,EAAoB,mBAAoB3M,EAAqB2M,EAAoB,aAAcjP,CAAY,CAAC,EAC1GwsD,MAAyBzlE,EAAQ,gBAAiB6kB,EAAS,UAAWtjB,IAAW,CACnFwjE,EAAgBxjE,EAAM,CAC1B,EAAG,GAAG,EAAG,CAACwjE,CAAe,CAAC,EACpBj5C,MAAyB9rB,EAAQ,aAAa,CAACisB,GAAmBpF,KAAY,CAChF,MAAMC,KAAiBZ,EAAY,WAAW+F,GAAmBpF,GAASzkB,EAAW,EAC/EyjE,GAAe,CACjB,CACI,IAAKhB,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOz7D,EACD8R,EAAa,aAAa,YAC1BK,IAAwBL,EAAa,aAAa,aAC9CA,EAAa,aAAa,aAC1BA,EAAa,aAAa,OACxC,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,gBACpB,MAAO54C,EACX,EACA,CACI,IAAK44C,EAAe,WACpB,MAAO/9C,EAAW,UACtB,EACA,CACI,IAAK+9C,EAAe,WACpB,MAAO/9C,EAAW,UACtB,CACJ,EACA7N,EAAa4sD,EAAY,EACrB3jE,IAAa4Y,EAAW,MACxBgM,EAAW,WAAW,WAAWQ,EAAU,aAAa,UAAU,GAClErO,EAAa,CACT,GAAG4sD,GACH,CACI,IAAKhB,EAAe,SACpB,MAAO/pD,EAAW,KACtB,CACJ,CAAC,CAET,EAAG,CAAC7B,EAAciN,EAAY,SAAS,CAAC,EAClC0I,MAAsB5uB,EAAQ,aAAa,CAACouB,GAAgBvH,KAAY,CAC1E,MAAMg/C,EAAe,CACjB,CACI,IAAKhB,EAAe,qBACpB,MAAOtpD,CACX,EACA,CACI,IAAKspD,EAAe,oBACpB,MAAOz7D,EACD8R,EAAa,aAAa,YAC1BK,IAAwBL,EAAa,aAAa,aAC9CA,EAAa,aAAa,aAC1BA,EAAa,aAAa,OACxC,EACA,CACI,IAAK2pD,EAAe,UACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,SACpB,MAAO,EACX,EACA,CACI,IAAKA,EAAe,WACpB,MAAOz2C,EACX,EACA,CACI,IAAKy2C,EAAe,WACpB,SAAW79C,EAAe,qBAAqBoH,GAAgBvH,EAAO,CAC1E,CACJ,EACA5N,EAAa4sD,CAAY,EACrB3jE,IAAa4Y,EAAW,MACxBsT,GAAe,WAAW9G,EAAU,aAAa,UAAU,GAC3DrO,EAAa,CACT,GAAG4sD,EACH,CACI,IAAKhB,EAAe,SACpB,MAAO/pD,EAAW,KACtB,CACJ,CAAC,CAET,EAAG,CAAC7B,EAAc+N,EAAe,mBAAmB,CAAC,EACrD,MAAO,CACH,UAAAuF,EACA,WAAAC,EACA,WAAAC,EACA,UAAAH,EACA,cAAA8e,EACA,oBAAA7vB,EACA,YAAA8vB,EACA,gBAAAC,EACA,iBAAAhwB,GACA,SAAAoJ,EACA,SAAAviB,EACA,SAAAD,EACA,MAAAqpC,EACA,UAAAxD,EACA,gBAAAnhB,EACA,OAAA8kB,EACA,eAAAC,GACA,qBAAA/uB,EACA,2BAAAqI,GACA,aAAA2mB,GACA,8BAAAxtB,GACA,WAAApc,GACA,UAAA6S,GACA,YAAAzS,GACA,kBAAAixB,GACA,UAAA5O,GACA,aAAAxL,EACA,SAAAvW,GACA,kBAAAmpC,GACA,aAAAzY,EACA,KAAA3xB,EACA,SAAAK,GACA,OAAAC,GACA,WAAAsmB,GACA,WAAApmB,GACA,sBAAA6pC,GACA,YAAAN,EACA,aAAAC,EACA,eAAArjB,GACA,oBAAAY,GACA,gBAAA4F,GACA,UAAAptB,GACA,mBAAAsqB,EACJ,CACJ,EACA/rB,EAAQ,aAAe+kE,C,mCC3iBvB,IAAIjlE,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqBA,EAAQ,WAAaA,EAAQ,aAAeA,EAAQ,SAAWA,EAAQ,0BAA4B,OAChI,MAAM6N,EAAW/N,EAAgB,EAAQ,KAAQ,CAAC,EAC5CkO,EAAe,EAAQ,IAAqB,EAC5C+3D,EAA6BlrC,GAAiB,CAChD,GAAIA,EAAa,SAAW,EACxB,MAAO,CAAE,IAAK,EAAG,IAAK,EAAG,IAAK,CAAE,EAEpC,MAAM4d,EAAS5d,EAAa,IAAKr0B,GAAMA,EAAE,KAAK,EACxCiL,EAAM,KAAK,MAAM,KAAK,IAAI,GAAGgnC,CAAM,CAAC,EACpC5mC,EAAM,KAAK,MAAM,KAAK,IAAI,GAAG4mC,CAAM,CAAC,EACpCgM,EAAM,KAAK,MAAMhM,EAAO,OAAO,CAACC,EAAKnnC,IAAUmnC,EAAMnnC,EAAO,CAAC,EAAIknC,EAAO,MAAM,EACpF,MAAO,CAAE,IAAAhnC,EAAK,IAAAI,EAAK,IAAA4yC,CAAI,CAC3B,EACAzkD,EAAQ,0BAA4B+lE,EACpC,MAAMC,EAAW,IAAIvtB,IACVA,EAAO,KAAMlnC,GAChBA,GAAU,MACVA,IAAU,KACVA,IAAU,MACV,MAAMA,CAAK,CAAC,EAEpBvR,EAAQ,SAAWgmE,EACnB,MAAMC,EAAgB10D,GACXA,GAAU,MAA+B,SAASA,CAAK,EAElEvR,EAAQ,aAAeimE,EACvB,MAAMC,EAAa,CAAC9nC,EAASC,IAAY,CACrC,MAAM8nC,EAAcplC,GAAS,CACzB,GAAI,CAACA,EACD,MAAO,CAAE,KAAM,KAAM,KAAM,IAAK,EAEpC,MAAMnyB,KAAiBf,EAAS,SAASkzB,EAAMlzB,EAAS,QAAQ,QAAQ,EAExE,GAAI,CAACe,EAAW,QAAQ,EACpB,MAAO,CAAE,KAAM,KAAM,KAAM,IAAK,EAEpC,MAAMw3D,EAAax3D,EAAW,OAAOZ,EAAa,WAAW,EAAE,EACzDq4D,EAAaz3D,EAAW,OAAOZ,EAAa,WAAW,iBAAiB,EAC9E,MAAO,CAAE,KAAMo4D,EAAY,KAAMC,CAAW,CAChD,EACA,MAAO,CACH,iBAAkBF,EAAW/nC,CAAO,EACpC,iBAAkB+nC,EAAW9nC,CAAO,CACxC,CACJ,EACAr+B,EAAQ,WAAakmE,EACrB,MAAMI,EAAqB,CAAC70D,EAAKI,EAAKwvB,EAAmB,KAAU,CAE/D,GAAI,IAAKrhC,EAAQ,cAAcyR,CAAG,GAAK,IAAKzR,EAAQ,cAAc6R,CAAG,EACjE,MAAO,CACH,iBAAkB,CAAE,KAAM,KAAM,KAAM,IAAK,EAC3C,iBAAkB,CAAE,KAAM,KAAM,KAAM,IAAK,CAC/C,EAGJ,MAAM00D,EAAU14D,EAAS,QAAQ,IAAI4D,CAAG,EAClC+0D,EAAU34D,EAAS,QAAQ,IAAIgE,CAAG,EAExC,GAAI,CAAC00D,EAAQ,QAAQ,GAAK,CAACC,EAAQ,QAAQ,EACvC,MAAO,CACH,iBAAkB,CAAE,KAAM,KAAM,KAAM,IAAK,EAC3C,iBAAkB,CAAE,KAAM,KAAM,KAAM,IAAK,CAC/C,EAGJ,MAAMC,EAAUF,EAAQ,OAAOC,EAAS,KAAK,EAEvCE,EAAeH,EAAQ,OAAOA,EAAQ,MAAM,EAAE,QAAQ,KAAK,CAAC,EAE5DI,EAAaH,EAAQ,OAAOA,EAAQ,MAAM,EAAE,MAAM,KAAK,CAAC,EAC9D,MAAO,CACH,iBAAkB,CACd,KAAMD,EAAQ,OAAOv4D,EAAa,WAAW,EAAE,EAC/C,KAAMqzB,GAAoBolC,GAAWC,EAC/B,WACAH,EAAQ,OAAOv4D,EAAa,WAAW,iBAAiB,CAClE,EACA,iBAAkB,CACd,KAAMw4D,EAAQ,OAAOx4D,EAAa,WAAW,EAAE,EAC/C,KAAMqzB,GAAoBolC,GAAWE,EAC/B,WACAH,EAAQ,OAAOx4D,EAAa,WAAW,iBAAiB,CAClE,CACJ,CACJ,EACAhO,EAAQ,mBAAqBsmE,C,mCCzF7B,OAAO,eAAetmE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,YAAcA,EAAQ,MAAQ,OACtC,MAAM4mE,EAAQ,CAIV,YAAa,QACb,OAAQ,QACR,aAAc,QACd,UAAW,SACX,QAAS,SACT,gBAAiB,SACjB,cAAe,SACf,aAAc,SACd,YAAa,QACjB,EACA5mE,EAAQ,MAAQ,CACZ,YAAa,eAAe4mE,EAAM,WAAW,IAC7C,OAAQ,eAAeA,EAAM,MAAM,IACnC,aAAc,eAAeA,EAAM,YAAY,IAC/C,UAAW,eAAeA,EAAM,SAAS,IACzC,QAAS,eAAeA,EAAM,OAAO,IACrC,gBAAiB,eAAeA,EAAM,eAAe,IACrD,cAAe,eAAeA,EAAM,aAAa,IACjD,aAAc,eAAeA,EAAM,YAAY,IAC/C,YAAa,eAAeA,EAAM,WAAW,GACjD,EACA5mE,EAAQ,YAAc,CAClB,YAAa,IACb,OAAQ,IACR,aAAc,IACd,UAAW,KACX,QAAS,KACT,gBAAiB,KACjB,cAAe,KACf,aAAc,KACd,YAAa,IACjB,C,qCCrCA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,mBAAqB,OAC7B,MAAMC,EAAU,EAAQ,KAAO,EACzB2J,EAAuB,EAAQ,KAA6B,EAC5Dd,EAAU,EAAQ,KAAgB,EAClCC,EAAwB,EAAQ,KAA8B,EAC9D89D,EAAqB,CAACl7B,EAAQ7vB,EAAc4vB,EAAcK,EAAuB1qC,EAASirC,EAA8BC,EAA6BxwB,IAAc,CACrK,MAAMzS,KAAeR,EAAQ,gBAAgB,EA0C7C,SAzC4B7I,EAAQ,aAAa,IAAM,CACnD,MAAM6mE,EAAkBhrD,EAAa,OAASwwB,EACxCy6B,EAAyBhrD,GAAaD,EAAa,OAASywB,EAClE,GAAIu6B,EAAiB,CACjB,MAAMzB,EAAY15B,EAAS7vB,EAAa,OACxC4vB,EAAa25B,CAAS,EACtB,MAAMv3B,EAAiB,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,KAAK,MAAMzsC,CAAO,CAAC,EAAG,CAAE,OAAQgkE,CAAU,CAAC,EAClG/7D,KAAaP,EAAsB,qBAAqB,CACpD,QAAS,KAAK,UAAU+kC,CAAc,EACtC,aAAc,EAClB,CAAC,CAAC,EACG,OAAO,EACP,KAAM5sC,GAAa,CACpB,MAAM8lE,EAAuBlrD,EAAa,OAAS5a,EAAS,SAAS,OACrE6qC,EAAsBi7B,CAAoB,CAC9C,CAAC,CACL,CACA,GAAID,EAAwB,CACxB,MAAM1B,EAAY15B,EAAS7vB,EAAa,OACxC4vB,EAAa25B,CAAS,EACtB,MAAMv3B,EAAiB,OAAO,OAAO,OAAO,OAAO,CAAC,EAAG,KAAK,MAAMzsC,CAAO,CAAC,EAAG,CAAE,OAAQgkE,CAAU,CAAC,EAClG/7D,KAAaM,EAAqB,2BAA2B,CACzD,QAAS,KAAK,UAAUkkC,CAAc,EACtC,aAAc,EAClB,CAAC,CAAC,EACG,OAAO,EACP,KAAM5sC,GAAa,CACpB,MAAM8lE,EAAuBlrD,EAAa,OAAS5a,EAAS,SAAS,OACrE6qC,EAAsBi7B,CAAoB,CAC9C,CAAC,CACL,CACJ,EAAG,CACCr7B,EACA7vB,EAAa,OACbwwB,EACAZ,EACApiC,EACAjI,EACAkrC,EACAxwB,CACJ,CAAC,CAEL,EACA/b,EAAQ,mBAAqB6mE,C,qCCnD7B,OAAO,eAAe7mE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,UAAY,OACpB,MAAMkb,EAAY,EAAQ,KAAkB,EACtCqM,EAAY,EAAQ,KAAkB,EACtC0/C,EAAY,CAAC/6C,EAAmBpF,EAASzkB,IAAgB,CAC3D,MAAM6kE,EAAY,CAAC5gD,EAAWrkB,IACF6kB,EAAQ,OAAQlN,GAASA,EAAK,kBAAoB0M,IACrE,CAACrkB,GAAc2X,EAAK,aAAe3X,EAAW,EAC5B,CAAC,EAE5B,IAAIA,EAAa,GACjB,OAAQiqB,EAAmB,CACvB,KAAKhR,EAAU,eAAe,mBAC1BjZ,EACII,IAAgB6Y,EAAU,aAAa,MACjCqM,EAAU,aAAa,mBAAmB,gBAC1CA,EAAU,aAAa,mBAAmB,aACpD,MACJ,KAAKrM,EAAU,eAAe,SAC1BjZ,EAAaslB,EAAU,aAAa,SACpC,MACJ,KAAKrM,EAAU,eAAe,iBAC1BjZ,EAAaslB,EAAU,aAAa,iBACpC,MACJ,KAAKrM,EAAU,eAAe,MAC1BjZ,EAAaslB,EAAU,aAAa,MACpC,MACJ,KAAKrM,EAAU,eAAe,YAC1BjZ,EAAaslB,EAAU,aAAa,YACpC,MACJ,KAAKrM,EAAU,eAAe,YAC1BjZ,EAAaslB,EAAU,aAAa,YACpC,MACJ,QACI,MAAO,CACH,WAAY2/C,EAAUh7C,CAAiB,EAAE,WACzC,WAAYg7C,EAAUh7C,CAAiB,EAAE,UAC7C,CACR,CACA,MAAMoC,EAAS44C,EAAUh7C,EAAmBjqB,CAAU,EACtD,OAAKqsB,EAOE,CACH,WAAYA,EAAO,WACnB,WAAYA,EAAO,UACvB,GATI,QAAQ,KAAK,kCAAkCpC,CAAiB,eAAejqB,CAAU,EAAE,EACpF,CACH,WAAY,iBACZ,WAAY,KAChB,EAMR,EACAjC,EAAQ,UAAYinE,C,qCCpDpB,IAAI3gE,EAAmB,MAAQ,KAAK,kBAAqB,OAAO,OAAU,SAASC,EAAGC,EAAGC,EAAGC,EAAI,CACxFA,IAAO,SAAWA,EAAKD,GAC3B,IAAIE,EAAO,OAAO,yBAAyBH,EAAGC,CAAC,GAC3C,CAACE,IAAS,QAASA,EAAO,CAACH,EAAE,WAAaG,EAAK,UAAYA,EAAK,iBAClEA,EAAO,CAAE,WAAY,GAAM,IAAK,UAAW,CAAE,OAAOH,EAAEC,CAAC,CAAG,CAAE,GAE9D,OAAO,eAAeF,EAAGG,EAAIC,CAAI,CACrC,EAAM,SAASJ,EAAGC,EAAGC,EAAGC,EAAI,CACpBA,IAAO,SAAWA,EAAKD,GAC3BF,EAAEG,CAAE,EAAIF,EAAEC,CAAC,CACf,GACIG,EAAsB,MAAQ,KAAK,qBAAwB,OAAO,OAAU,SAASL,EAAGM,EAAG,CAC3F,OAAO,eAAeN,EAAG,UAAW,CAAE,WAAY,GAAM,MAAOM,CAAE,CAAC,CACtE,EAAK,SAASN,EAAGM,EAAG,CAChBN,EAAE,QAAaM,CACnB,GACIC,EAAgB,MAAQ,KAAK,cAAiB,SAAU/G,EAAK,CAC7D,GAAIA,GAAOA,EAAI,WAAY,OAAOA,EAClC,IAAIgH,EAAS,CAAC,EACd,GAAIhH,GAAO,KAAM,QAAS0G,KAAK1G,EAAS0G,IAAM,WAAa,OAAO,UAAU,eAAe,KAAK1G,EAAK0G,CAAC,GAAGH,EAAgBS,EAAQhH,EAAK0G,CAAC,EACvI,OAAAG,EAAmBG,EAAQhH,CAAG,EACvBgH,CACX,EACIjH,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,iBAAmBA,EAAQ,4BAA8B,OACjE,MAAMmQ,EAASrJ,EAAa,EAAQ,KAAyB,CAAC,EACxDwP,EAAaxW,EAAgB,EAAQ,IAAY,CAAC,EAClDqnE,EAAqBnY,GAAoB,CAC3C,CACI,IAAKA,EAAgB,IAAM,EAC3B,MAAO7+C,EAAO,KACd,YAAaA,EAAO,IACxB,EACA,CACI,IAAK6+C,EAAgB,IACrB,MAAO7+C,EAAO,SACd,YAAaA,EAAO,QACxB,EACA,CACI,IAAK6+C,EAAgB,OACrB,MAAO7+C,EAAO,UACd,YAAaA,EAAO,SACxB,EACA,CACI,IAAK6+C,EAAgB,KACrB,MAAO7+C,EAAO,UACd,YAAaA,EAAO,SACxB,EACA,CACI,IAAK6+C,EAAgB,IACrB,MAAO7+C,EAAO,OACd,YAAaA,EAAO,MACxB,EACA,CAAE,IAAK,IAAU,MAAOA,EAAO,KAAM,YAAaA,EAAO,OAAQ,CACrE,EACMi3D,EAAmB,CAACpY,EAAiBz9C,EAAO81D,IAAa,CAC3D,MAAMC,EAAe,cACrB,GAAI/1D,IAAU,GAAK,CAACA,EAChB,OAAO+1D,EACX,QAAS3nC,KAASwnC,EAAkBnY,CAAe,EAC/C,GAAI,OAAOz9C,CAAK,GAAK,OAAOouB,EAAM,GAAG,EACjC,OAAO0nC,EAAW1nC,EAAM,YAAcA,EAAM,MAGpD,OAAO2nC,CACX,EACAtnE,EAAQ,iBAAmBonE,EAC3B,MAAMG,EAA+Br3B,GAAU,CAC3C,OAAQA,EAAO,CACX,KAAK//B,EAAO,SACR,MAAO,8BAA+BmG,EAAW,SAASnG,EAAO,KAAM,EAAG,CAAC,eAAgBmG,EAAW,SAASnG,EAAO,KAAM,GAAI,CAAC,aAAaA,EAAO,QAAQ,GACjK,KAAKA,EAAO,OACR,MAAO,8BAA+BmG,EAAW,SAASnG,EAAO,YAAa,EAAG,CAAC,gBAAiBmG,EAAW,SAASnG,EAAO,YAAa,CAAC,CAAC,aAAaA,EAAO,MAAM,GAC3K,KAAKA,EAAO,UACR,MAAO,8BAA+BmG,EAAW,SAASnG,EAAO,aAAc,EAAG,CAAC,cAAemG,EAAW,SAASnG,EAAO,aAAc,CAAC,CAAC,aAAaA,EAAO,SAAS,GAC9K,KAAKA,EAAO,UACR,MAAO,8BAA+BmG,EAAW,SAASnG,EAAO,KAAM,EAAG,CAAC,eAAgBmG,EAAW,SAASnG,EAAO,MAAO,CAAC,CAAC,aAAaA,EAAO,SAAS,GAChK,QACI,MAAO,8BAA+BmG,EAAW,SAASnG,EAAO,QAAS,EAAG,CAAC,cAAemG,EAAW,SAASnG,EAAO,QAAS,CAAC,CAAC,aAAaA,EAAO,OAAO,EACtK,CACJ,EACAnQ,EAAQ,4BAA8BunE,C,qCCpFtC,OAAO,eAAevnE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,qBAAuB,OAC/B,MAAM8kB,EAAW,EAAQ,KAAQ,EAC3B7kB,EAAU,EAAQ,KAAO,EACzB4I,EAAkB,EAAQ,KAAe,EACzC3I,EAAgB,EAAQ,KAAa,EACrCuS,EAAmB,EAAQ,KAAyB,EACpD+0D,EAAuB,CAACvY,EAAoBh2C,EAAek2C,EAAgB1rC,EAAiBurC,EAAiBF,EAAWI,EAAal2C,EAAY+1C,IAAgB,CAEnK,KAAM,CAAE,EAAA7nD,CAAE,KAAQ2B,EAAgB,gBAAgB,EAC5CwjC,KAAwBnsC,EAAc,aAAauS,EAAiB,uBAAuB,EAC3Fg1D,EAAe,CAACC,EAAUj2D,EAAKI,IAC1B61D,GAAYj2D,GAAOi2D,GAAY71D,KAEtC5R,EAAQ,WAAW,IAAM,CACrBivD,IAAgB,MAChBj2C,EAAc+1C,EAAgBE,CAAW,EAAE,SAAS,CAAC,CAE7D,EAAG,CAACA,EAAaF,EAAiB/1C,CAAa,CAAC,EAChD,MAAM0uD,EAA+B,CAACrX,EAAcsX,IAAgB,CAChEnkD,EAAgB,EAAE,EAClBwrC,EAAoB4Y,GAAgB,OAAO,OAAO,OAAO,OAAO,CAAC,EAAGA,CAAU,EAAG,CAAE,CAACvX,CAAY,EAAGsX,CAAY,CAAC,CAAE,CACtH,EACME,EAAyB,CAACrlE,EAAK8O,IAAU,CAC3C,KAAM,CAAE,IAAAE,EAAK,IAAAC,EAAK,OAAAC,EAAQ,KAAAC,EAAM,IAAAC,CAAI,EAAIm9C,EACxC,OAAQvsD,EAAK,CACT,IAAK,MACD,OAAO8O,GAASG,EACpB,IAAK,MACD,OAAOH,GAASI,GAAUJ,GAASE,EACvC,IAAK,SACD,OAAOF,GAASG,GAAOH,GAASK,EACpC,IAAK,OACD,OAAOL,GAASI,GAAUJ,GAASM,EACvC,IAAK,MACD,OAAON,GAASK,EACpB,QACI,MAAO,EACf,CACJ,EACMgS,EAAoB,CAAC0sC,EAAc/+C,IAAU,CAC/C,MAAMw2D,EAAex2D,EAAM,KAAK,EAChC,GAAIw2D,IAAiB,GAAI,CACrB9uD,EAAc,EAAE,EAChBwK,EAAgBvc,EAAE,yCAAyC,CAAC,EAC5D,MACJ,CACA+R,EAAc8uD,CAAY,EAC1B,MAAMH,EAAc,OAAOG,CAAY,EACnCzX,IAAiB,OAASA,IAAiB,MACtCmX,EAAaG,EAAa,KAAW,GAAQ,EAO1CtX,IAAiB,MACbsX,GAAe5Y,EAAgB,IAC/BvrC,EAAgBvc,EAAE,iDAAkD,CAChE,SAAU8nD,EAAgB,GAC9B,CAAC,CAAC,EAEI8Y,EAAuBxX,EAAcsX,CAAW,EAItDD,EAA6BrX,EAAcsX,CAAW,EAHtDnkD,EAAgBvc,EAAE,2CAA2C,CAAC,EAM7DopD,IAAiB,QAClBsX,GAAe5Y,EAAgB,IAC/BvrC,EAAgBvc,EAAE,8CAA+C,CAC7D,SAAU8nD,EAAgB,GAC9B,CAAC,CAAC,EAEI8Y,EAAuBxX,EAAcsX,CAAW,EAItDD,EAA6BrX,EAAcsX,CAAW,EAHtDnkD,EAAgBvc,EAAE,2CAA2C,CAAC,GA1BtEuc,EAAgBvc,EAAE,0CAA2C,CACzD,SAAU8nD,EAAgB,IAC1B,SAAUA,EAAgB,GAC9B,CAAC,CAAC,EAgCDyY,EAAaG,EAAa5Y,EAAgB,IAAKA,EAAgB,GAAG,EAM7D8Y,EAAuBxX,EAAcsX,CAAW,EAItDD,EAA6BrX,EAAcsX,CAAW,EAHtDnkD,EAAgBvc,EAAE,2CAA2C,CAAC,EAN9Duc,EAAgBvc,EAAE,0CAA2C,CACzD,SAAU8nD,EAAgB,IAC1B,SAAUA,EAAgB,GAC9B,CAAC,CAAC,CASd,EACMgZ,KAAiCljD,EAAS,UAAUlB,EAAmB,GAAiB,EAgE9F,MAAO,CACH,kBA1BkB,CAAC0sC,EAAc/+C,IAAU,CAC3C0H,EAAc1H,CAAK,EACnBqS,EAAkB0sC,EAAc/+C,CAAK,CACzC,EAwBI,gBAjEoB,CAAC++C,EAAct3C,IAAe,CAClDgvD,EAA2B,MAAM,EACjC7Y,EAAe,IAAI,EACnBvrC,EAAkB0sC,EAAct3C,CAAU,CAC9C,EA8DI,iBA7DsBs3C,GAAiB,CACvCr3C,EAAc+1C,EAAgBsB,CAAY,EAAE,SAAS,CAAC,EACtDnB,EAAemB,CAAY,EAC3B0X,EAA2B,OAAO,CACtC,EA0DI,mBAlDwB1X,GAAkBzsC,GAAU,CACpD,GAAIA,EAAM,MAAQ,QACd5K,EAAc4K,EAAM,cAAc,KAAK,EACvCD,EAAkB0sC,EAAczsC,EAAM,cAAc,KAAK,UAEpDA,EAAM,MAAQ,WACnBA,EAAM,MAAQ,YAA0C,CACxDA,EAAM,eAAe,EACrB,IAAI6jD,EACJ,MAAM1vD,EAAO6L,EAAM,SAAW,GAAK,EAC7BpV,EAAYoV,EAAM,MAAQ,UAAuC,EAAI,GAC3E6jD,EAAW,WAAW1uD,CAAU,EAAIhB,EAAOvJ,EAC3CmV,EAAkB0sC,EAAcoX,EAAS,SAAS,CAAC,CACvD,CACJ,EAqCI,mBA1DwB7jD,GAAU,CAC9BirC,EAAU,SACV,CAACA,EAAU,QAAQ,SAASjrC,EAAM,MAAM,GACxCqrC,IAAgB,MAChBC,EAAe,IAAI,CAE3B,EAqDI,gBArCoB,IAAM,CAC1B6Y,EAA2B,OAAO,EAClC/Y,EAAmB5iB,CAAiB,EACpCpzB,EAAc,EAAE,EAChBk2C,EAAe,IAAI,CACvB,EAiCI,kBA5BuBtrC,GAAU,CACjC,GAAIirC,EAAU,SAAWI,IAAgB,KAAM,CAC3C,MAAM1sC,EAAOssC,EAAU,QAAQ,sBAAsB,EAE/CmZ,GADU,YAAapkD,EAAQA,EAAM,QAAQ,CAAC,EAAE,QAAUA,EAAM,SAC7CrB,EAAK,KACxB0lD,EAAa,KAAK,MAAOD,EAASlZ,GAAgBC,EAAgB,IAAMA,EAAgB,KAC1FA,EAAgB,GAAG,EACjBmZ,EAAY,CACd,IAAK,KAAK,IAAID,EAAalZ,EAAgB,GAAG,EAC9C,OAAQ,KAAK,IAAIkZ,EAAalZ,EAAgB,MAAM,EACpD,KAAM,KAAK,IAAIkZ,EAAalZ,EAAgB,IAAI,CACpD,EACMoZ,EAAe,OAAO,KAAKD,CAAS,EAAE,OAAO,CAAC54D,EAAGC,IAAO24D,EAAU54D,CAAC,EAAI44D,EAAU34D,CAAC,EAAID,EAAIC,CAAE,EAClG,GAAK44D,IAAiB,QAAUF,GAAclZ,EAAgB,KACzDoZ,IAAiB,OAASF,GAAclZ,EAAgB,IACzD,OAEJ,MAAMqZ,EAAqB,OAAO,OAAO,OAAO,OAAO,CAAC,EAAGrZ,CAAe,EAAG,CAAE,CAACoZ,CAAY,EAAGF,CAAW,CAAC,EAC3GjZ,EAAmBoZ,CAAkB,CACzC,CACJ,CASA,CACJ,EACAroE,EAAQ,qBAAuBwnE,C,qCC9K/B,OAAO,eAAexnE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,iBAAmBA,EAAQ,gBAAkBA,EAAQ,gBAAkBA,EAAQ,cAAgBA,EAAQ,gBAAkB,OACjI,MAAM2uD,EAA+B,EAAQ,KAA8B,EACrE2Z,EAAkB,CAAChY,EAAciY,EAAQC,EAAYxZ,EAAiBD,EAAaE,EAAoBh2C,IAAmBwvD,GAAc,CAE1I,MAAMC,EAAeD,EAAU,QAAUF,EAGnCI,KAAoBha,EAA6B,0BAA0B6Z,EAAYxZ,EAAgB,IAAKA,EAAgB,GAAG,EACjI0Z,EAAe3Z,EAEnB,IAAI6Z,EAAoB,KAAK,MAAM5Z,EAAgB,IAC/C2Z,GAAiB3Z,EAAgB,IAAMA,EAAgB,IAAI,EAE/D,MAAM6Z,EAAgC,KAAK,IAAI,KAAK,IAAID,EAAmB5Z,EAAgB,GAAG,EAAGA,EAAgB,GAAG,EACpH,IAAI8Z,EAAgB,OAAO,OAAO,CAAC,EAAG9Z,CAAe,EACjD+Z,EAAeF,EAInB,OAHAE,EAAe,KAAK,IAAIA,EAAc/Z,EAAgB,GAAG,EACzD+Z,EAAe,KAAK,IAAIA,EAAc/Z,EAAgB,GAAG,EACzD/1C,EAAc8vD,EAAa,SAAS,CAAC,EAC7BzY,EAAc,CAClB,IAAK,MACGyY,GAAgB/Z,EAAgB,QAChCA,EAAgB,SAAWA,EAAgB,MAC3C8Z,EAAc,OAAS,KAAK,IAAIC,EAAe,EAAG/Z,EAAgB,GAAG,GAErE+Z,GAAgB/Z,EAAgB,MAChCA,EAAgB,OAASA,EAAgB,MACzC8Z,EAAc,KAAO,KAAK,IAAIC,EAAe,EAAG/Z,EAAgB,GAAG,GAEvE,MACJ,IAAK,SACG+Z,GAAgB/Z,EAAgB,KAChCA,EAAgB,MAAQA,EAAgB,MACxC8Z,EAAc,IAAM,KAAK,IAAIC,EAAe,EAAG/Z,EAAgB,GAAG,GAElE+Z,EAAe/Z,EAAgB,MAC/BA,EAAgB,OAASA,EAAgB,MACzC8Z,EAAc,KAAO,KAAK,IAAIC,EAAe,EAAG/Z,EAAgB,GAAG,GAEvE,MACJ,IAAK,OACG+Z,GAAgB/Z,EAAgB,QAChCA,EAAgB,SAAWA,EAAgB,MAC3C8Z,EAAc,OAAS,KAAK,IAAIC,EAAe,EAAG/Z,EAAgB,GAAG,GAErE+Z,GAAgB/Z,EAAgB,KAChCA,EAAgB,MAAQA,EAAgB,MACxC8Z,EAAc,IAAM,KAAK,IAAIC,EAAe,EAAG/Z,EAAgB,GAAG,GAEtE,KACR,CACA8Z,EAAcxY,CAAY,EAAIyY,EAC9B9Z,EAAmB6Z,CAAa,CACpC,EACA9oE,EAAQ,gBAAkBsoE,EAC1B,MAAMppC,EAAiB8pC,GAAgB,IAAM,CACzC,SAAS,oBAAoB,YAAaA,CAAW,EACrD,SAAS,oBAAoB,YAAaA,CAAW,EACrD,SAAS,oBAAoB,aAAehpE,EAAQ,eAAegpE,CAAW,CAAC,EAC/E,SAAS,oBAAoB,cAAgBhpE,EAAQ,eAAegpE,CAAW,CAAC,CACpF,EACAhpE,EAAQ,cAAgBk/B,EACxB,MAAM8nB,EAAkB,CAACsJ,EAAciY,EAAQC,EAAYxZ,EAAiBD,EAAaE,EAAoBh2C,EAAewK,IAAqBglD,GAAc,CAC3J,MAAMQ,EAAQR,EAAU,QAAQ,CAAC,EAC3BhiB,EAAUwiB,EAAM,QACtBhwD,EAAcwtC,EAAQ,SAAS,CAAC,KAC5BzmD,EAAQ,iBAAiBswD,EAAciY,EAAQC,EAAYxZ,EAAiBD,EAAaE,EAAoBh2C,CAAa,EAAE,CAC5H,QAASgwD,EAAM,OACnB,CAAC,CACL,EACAjpE,EAAQ,gBAAkBgnD,EAC1B,MAAMkiB,EAAkB,CAAC5Y,EAActB,EAAiBD,EAAaE,EAAoBh2C,EAAewK,IAAqBI,GAAU,CAC/H,SAAS,yBAAyB,aAClC,SAAS,cAAc,KAAK,EAEhCJ,EAAgB,EAAE,EAClB,MAAM8kD,EAAS1kD,EAAM,QACf2kD,EAAaxZ,EAAgBsB,CAAY,EACzC0Y,KAAkBhpE,EAAQ,iBAAiBswD,EAAciY,EAAQC,EAAYxZ,EAAiBD,EAAaE,EAAoBh2C,CAAa,EAClJ,SAAS,iBAAiB,YAAa+vD,CAAW,EAClD,SAAS,iBAAiB,aAAehpE,EAAQ,eAAegpE,CAAW,CAAC,CAChF,EACAhpE,EAAQ,gBAAkBkpE,EAC1B,MAAMniB,EAAmB,CAACuJ,EAActB,EAAiBD,EAAaE,EAAoBh2C,EAAewK,IAAqBI,GAAU,CAChI,SAAS,yBAAyB,aAClC,SAAS,cAAc,KAAK,EAEhCJ,EAAgB,EAAE,EAClB,MAAM8kD,EAAS1kD,EAAM,QAAQ,CAAC,EAAE,QAC1B2kD,EAAaxZ,EAAgBsB,CAAY,EAC/Cr3C,EAAcsvD,EAAO,SAAS,CAAC,EAC/B,MAAMS,KAAkBhpE,EAAQ,iBAAiBswD,EAAciY,EAAQC,EAAYxZ,EAAiBD,EAAaE,EAAoBh2C,EAAewK,CAAe,EACnKxK,EAAcuvD,EAAW,SAAS,CAAC,EACnC,SAAS,iBAAiB,YAAaQ,CAAW,EAClD,SAAS,iBAAiB,cAAgBhpE,EAAQ,eAAegpE,CAAW,CAAC,CACjF,EACAhpE,EAAQ,iBAAmB+mD,C,mCCjG3B,OAAO,eAAe/mD,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,uBAAyBA,EAAQ,yBAA2B,OACpE,MAAMmpE,EAA2B,CAAC53D,EAAOE,EAAKI,KACtBN,EAAQE,IAAQI,EAAMJ,GAG9CzR,EAAQ,yBAA2BmpE,EACnC,MAAMC,EAAyB,CAAC73D,EAAOE,EAAKI,EAAKpJ,EAAOY,IAAa,CACjE,MAAMs9C,EAAawiB,EAAyB53D,EAAOE,EAAKI,CAAG,EAGrDw3D,EAAqBhgE,EAAWZ,EAAQA,EAAQ,GACtD,OAAOk+C,EAAa0iB,CACxB,EACArpE,EAAQ,uBAAyBopE,C,mCCdjC,OAAO,eAAeppE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,6BAA+BA,EAAQ,+BAAiCA,EAAQ,wBAA0BA,EAAQ,uBAAyBA,EAAQ,sBAAwBA,EAAQ,wBAA0BA,EAAQ,4BAA8BA,EAAQ,yBAA2BA,EAAQ,yBAA2B,OACjUA,EAAQ,yBAA2B,IACnCA,EAAQ,yBAA2B,GAAKA,EAAQ,yBAChDA,EAAQ,4BAA8B,EAAIA,EAAQ,yBAClDA,EAAQ,wBAA0B,KAClCA,EAAQ,sBAAwB,GAAKA,EAAQ,wBAC7CA,EAAQ,uBAAyB,EAAIA,EAAQ,sBAC7CA,EAAQ,wBAA0B,GAAKA,EAAQ,sBAC/CA,EAAQ,+BAAiC,EAAIA,EAAQ,wBACrDA,EAAQ,6BAA+B,G,mCCVvC,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,sBAAwBA,EAAQ,2BAA6B,OACrE,MAAMspE,EAA6B,CAAC73D,EAAKI,IAAQ,CAC7C,MAAMmG,EAAO,KAAK,IAAI,KAAK,OAAOnG,EAAMJ,GAAO,CAAC,EAAG,CAAC,EAC9C83D,EAAe93D,EAAMuG,EACrBwxD,EAAkBD,EAAevxD,EACjCyxD,EAAgBD,EAAkBxxD,EAClC0xD,EAAe,KAAK,IAAID,EAAgBzxD,EAAMnG,CAAG,EACvD,MAAO,CACH,IAAAJ,EACA,IAAK83D,EACL,OAAQC,EACR,KAAMC,EACN,IAAKC,CACT,CACJ,EACA1pE,EAAQ,2BAA6BspE,EACrC,MAAMK,EAAwB,CAACvd,EAAcC,EAAav3C,IAAc,CACpE,GAAIs3C,EAAa,SAAW,aACxBA,EAAa,KAAK,KAAOt3C,GACzB,GAAIs3C,EAAa,sBAAwB,QACrCA,EAAa,sBAAwB,MACrCA,EAAa,sBAAwB,QACrCA,EAAa,sBAAwB,KAAM,CAC3C,MAAM36C,EAAM,KAAK,MAAM26C,EAAa,mBAAmB,EACjDv6C,EAAM,KAAK,KAAKu6C,EAAa,mBAAmB,EACtD,MAAO,CAAE,IAAA36C,EAAK,IAAAI,CAAI,CACtB,UAEKw6C,EAAY,SAAW,aAC5BA,EAAY,KAAK,OAAO,YAAcv3C,GAClCu3C,EAAY,sBAAwB,QACpCA,EAAY,sBAAwB,MACpCA,EAAY,sBAAwB,QACpCA,EAAY,sBAAwB,KAAM,CAC1C,MAAM56C,EAAM,KAAK,MAAM46C,EAAY,mBAAmB,EAChDx6C,EAAM,KAAK,KAAKw6C,EAAY,mBAAmB,EACrD,MAAO,CAAE,IAAA56C,EAAK,IAAAI,CAAI,CACtB,CAEJ,OAAO,IACX,EACA7R,EAAQ,sBAAwB2pE,C,oCC1ChC,OAAO,eAAe3pE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7DA,EAAQ,oBAAsB,OAC9B,MAAMC,EAAU,EAAQ,KAAO,EACzB2pE,EAAsB,CAAC3xC,EAAWC,IAAiB,IACjDj4B,EAAQ,WAAW,IAAM,CACzB,GAAIg4B,EAAW,CACX,MAAM/J,EAAQ,WAAW,IAAM,CAC3BgK,EAAa,EAAK,CACtB,EAAG,GAAI,EACP,MAAO,IAAM,aAAahK,CAAK,CACnC,CACJ,EAAG,CAAC+J,EAAWC,CAAY,CAAC,CAChC,EACAl4B,EAAQ,oBAAsB4pE,C,qCCb9B,OAAO,eAAe5pE,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMC,EAAU,EAAQ,KAAO,EACzB0I,EAAU,EAAQ,KAAS,EAC3BkhE,EAAyB,CAACC,EAAWnhE,EAAQ,YAAY,UAAY,CACvE,KAAM,CAACU,EAAUgc,CAAW,KAAQplB,EAAQ,UAAU,OAAO,YAAc6pE,CAAQ,EACnF,SAAI7pE,EAAQ,WAAW,IAAM,CACzB,MAAMw4B,EAAe,IAAM,CACvBpT,EAAY,OAAO,YAAcykD,CAAQ,CAC7C,EACA,cAAO,iBAAiB,SAAUrxC,CAAY,EACvC,IAAM,CACT,OAAO,oBAAoB,SAAUA,CAAY,CACrD,CACJ,EAAG,CAACqxC,CAAQ,CAAC,EACNzgE,CACX,EACArJ,EAAA,QAAkB6pE,C,qCChBlB,IAAItyD,EAAa,MAAQ,KAAK,WAAc,SAAUC,EAASC,EAAYC,EAAGC,EAAW,CACrF,SAASC,EAAMrG,EAAO,CAAE,OAAOA,aAAiBmG,EAAInG,EAAQ,IAAImG,EAAE,SAAUG,EAAS,CAAEA,EAAQtG,CAAK,CAAG,CAAC,CAAG,CAC3G,OAAO,IAAKmG,IAAMA,EAAI,UAAU,SAAUG,EAASC,EAAQ,CACvD,SAASC,EAAUxG,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,KAAKpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC1F,SAASqY,EAAS1G,EAAO,CAAE,GAAI,CAAEyG,EAAKL,EAAU,MAASpG,CAAK,CAAC,CAAG,OAAS3R,EAAG,CAAEkY,EAAOlY,CAAC,CAAG,CAAE,CAC7F,SAASoY,EAAKjR,EAAQ,CAAEA,EAAO,KAAO8Q,EAAQ9Q,EAAO,KAAK,EAAI6Q,EAAM7Q,EAAO,KAAK,EAAE,KAAKgR,EAAWE,CAAQ,CAAG,CAC7GD,GAAML,EAAYA,EAAU,MAAMH,EAASC,GAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CACxE,CAAC,CACL,EACI3X,EAAmB,MAAQ,KAAK,iBAAoB,SAAUC,EAAK,CACnE,OAAQA,GAAOA,EAAI,WAAcA,EAAM,CAAE,QAAWA,CAAI,CAC5D,EACA,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAK,CAAE,EAC7D,MAAMc,EAAUhB,EAAgB,EAAQ,KAAO,CAAC,EAC1CG,EAAU,EAAQ,KAAO,EACzB8pE,EAAmB,CAACC,EAAKC,IAAgB,CAC3C,KAAM,CAACvnB,EAAewnB,CAAgB,KAAQjqE,EAAQ,UAAU+pE,CAAG,EAC7D,CAACznD,EAAO4nD,CAAQ,KAAQlqE,EAAQ,UAAU,IAAI,EACpD,SAAIA,EAAQ,WAAW,IAAM,EACL,IAAMsX,EAAU,OAAQ,OAAQ,OAAQ,WAAa,CACrE,GAAI,CAACyyD,GAAO,CAACC,EAAa,CACtBE,EAAS,IAAI,MAAM,iCAAiC,CAAC,EACrD,MACJ,CACA,GAAI,CACA,MAAMjpE,EAAW,MAAMJ,EAAQ,QAAQ,KAAK,uCAAwC,CAAE,SAAUkpE,CAAI,EAAG,CACnG,QAAS,CACL,cAAe,UAAUC,CAAW,GACpC,eAAgB,kBACpB,CACJ,CAAC,EACDC,EAAiBhpE,EAAS,KAAK,IAAI,CACvC,OACOqhB,EAAO,CACV4nD,EAAS5nD,CAAK,CAClB,CACJ,CAAC,GACW,CAChB,EAAG,CAACynD,EAAKC,CAAW,CAAC,EACd,CAAE,cAAAvnB,EAAe,MAAAngC,CAAM,CAClC,EACAviB,EAAA,QAAkB+pE,C,o3bCzCdK,GAA2B,CAAC,EAGhC,SAASzqE,GAAoB0qE,EAAU,CAEtC,IAAIC,EAAeF,GAAyBC,CAAQ,EACpD,GAAIC,IAAiB,OACpB,OAAOA,EAAa,QAGrB,IAAIzqE,EAASuqE,GAAyBC,CAAQ,EAAI,CACjD,GAAIA,EACJ,OAAQ,GACR,QAAS,CAAC,CACX,EAGA,OAAAE,GAAoBF,CAAQ,EAAE,KAAKxqE,EAAO,QAASA,EAAQA,EAAO,QAASF,EAAmB,EAG9FE,EAAO,OAAS,GAGTA,EAAO,OACf,CAGAF,GAAoB,EAAI4qE,G,WC5BxB,IAAIC,EAAW,CAAC,EAChB7qE,GAAoB,EAAI,SAASoH,EAAQ0jE,EAAUC,EAAIC,EAAU,CAChE,GAAGF,EAAU,CACZE,EAAWA,GAAY,EACvB,QAAQvjE,EAAIojE,EAAS,OAAQpjE,EAAI,GAAKojE,EAASpjE,EAAI,CAAC,EAAE,CAAC,EAAIujE,EAAUvjE,IAAKojE,EAASpjE,CAAC,EAAIojE,EAASpjE,EAAI,CAAC,EACtGojE,EAASpjE,CAAC,EAAI,CAACqjE,EAAUC,EAAIC,CAAQ,EACrC,MACD,CAEA,QADIC,EAAe,IACVxjE,EAAI,EAAGA,EAAIojE,EAAS,OAAQpjE,IAAK,CAKzC,QAJIqjE,EAAWD,EAASpjE,CAAC,EAAE,CAAC,EACxBsjE,EAAKF,EAASpjE,CAAC,EAAE,CAAC,EAClBujE,EAAWH,EAASpjE,CAAC,EAAE,CAAC,EACxB2Q,EAAY,GACP8yD,EAAI,EAAGA,EAAIJ,EAAS,OAAQI,KAC/BF,EAAW,IAAWC,GAAgBD,IAAa,OAAO,KAAKhrE,GAAoB,CAAC,EAAE,MAAM,SAAS8C,EAAK,CAAE,OAAO9C,GAAoB,EAAE8C,CAAG,EAAEgoE,EAASI,CAAC,CAAC,CAAG,CAAC,EACjKJ,EAAS,OAAOI,IAAK,CAAC,GAEtB9yD,EAAY,GACT4yD,EAAWC,IAAcA,EAAeD,IAG7C,GAAG5yD,EAAW,CACbyyD,EAAS,OAAOpjE,IAAK,CAAC,EACtB,IAAIs8D,EAAIgH,EAAG,EACPhH,IAAM,SAAW38D,EAAS28D,EAC/B,CACD,CACA,OAAO38D,CACR,C,eC5BApH,GAAoB,EAAI,SAASE,EAAQ,CACxC,IAAIirE,EAASjrE,GAAUA,EAAO,WAC7B,UAAW,CAAE,OAAOA,EAAO,OAAY,EACvC,UAAW,CAAE,OAAOA,CAAQ,EAC7B,OAAAF,GAAoB,EAAEmrE,EAAQ,CAAE,EAAGA,CAAO,CAAC,EACpCA,CACR,C,eCPA,IAAIC,EAAW,OAAO,eAAiB,SAASC,EAAK,CAAE,OAAO,OAAO,eAAeA,CAAG,CAAG,EAAI,SAASA,EAAK,CAAE,OAAOA,EAAI,SAAW,EAChIC,EAOJtrE,GAAoB,EAAI,SAAS4R,EAAO25D,EAAM,CAG7C,GAFGA,EAAO,IAAG35D,EAAQ,KAAKA,CAAK,GAC5B25D,EAAO,GACP,OAAO35D,GAAU,UAAYA,IAC3B25D,EAAO,GAAM35D,EAAM,YACnB25D,EAAO,IAAO,OAAO35D,EAAM,MAAS,YAAY,OAAOA,EAE5D,IAAI45D,EAAK,OAAO,OAAO,IAAI,EAC3BxrE,GAAoB,EAAEwrE,CAAE,EACxB,IAAIC,EAAM,CAAC,EACXH,EAAiBA,GAAkB,CAAC,KAAMF,EAAS,CAAC,CAAC,EAAGA,EAAS,CAAC,CAAC,EAAGA,EAASA,CAAQ,CAAC,EACxF,QAAQM,EAAUH,EAAO,GAAK35D,EAAO,OAAO85D,GAAW,UAAY,CAAC,CAACJ,EAAe,QAAQI,CAAO,EAAGA,EAAUN,EAASM,CAAO,EAC/H,OAAO,oBAAoBA,CAAO,EAAE,QAAQ,SAAS5oE,EAAK,CAAE2oE,EAAI3oE,CAAG,EAAI,UAAW,CAAE,OAAO8O,EAAM9O,CAAG,CAAG,CAAG,CAAC,EAE5G,OAAA2oE,EAAI,QAAa,UAAW,CAAE,OAAO75D,CAAO,EAC5C5R,GAAoB,EAAEwrE,EAAIC,CAAG,EACtBD,CACR,C,eCxBAxrE,GAAoB,EAAI,SAASK,EAASsrE,EAAY,CACrD,QAAQ7oE,KAAO6oE,EACX3rE,GAAoB,EAAE2rE,EAAY7oE,CAAG,GAAK,CAAC9C,GAAoB,EAAEK,EAASyC,CAAG,GAC/E,OAAO,eAAezC,EAASyC,EAAK,CAAE,WAAY,GAAM,IAAK6oE,EAAW7oE,CAAG,CAAE,CAAC,CAGjF,C,eCPA9C,GAAoB,EAAK,UAAW,CACnC,GAAI,OAAO,YAAe,SAAU,OAAO,WAC3C,GAAI,CACH,OAAO,MAAQ,IAAI,SAAS,aAAa,EAAE,CAC5C,OAASC,EAAG,CACX,GAAI,OAAO,QAAW,SAAU,OAAO,MACxC,CACD,EAAG,C,eCPHD,GAAoB,IAAM,SAASE,EAAQ,CAC1C,OAAAA,EAAS,OAAO,OAAOA,CAAM,EACxBA,EAAO,WAAUA,EAAO,SAAW,CAAC,GACzC,OAAO,eAAeA,EAAQ,UAAW,CACxC,WAAY,GACZ,IAAK,UAAW,CACf,MAAM,IAAI,MAAM,0FAA4FA,EAAO,EAAE,CACtH,CACD,CAAC,EACMA,CACR,C,eCVAF,GAAoB,EAAI,SAASqrE,EAAKO,EAAM,CAAE,OAAO,OAAO,UAAU,eAAe,KAAKP,EAAKO,CAAI,CAAG,C,eCCtG5rE,GAAoB,EAAI,SAASK,EAAS,CACtC,OAAO,QAAW,aAAe,OAAO,aAC1C,OAAO,eAAeA,EAAS,OAAO,YAAa,CAAE,MAAO,QAAS,CAAC,EAEvE,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,CAC7D,C,eCNAL,GAAoB,IAAM,SAASE,EAAQ,CAC1C,OAAAA,EAAO,MAAQ,CAAC,EACXA,EAAO,WAAUA,EAAO,SAAW,CAAC,GAClCA,CACR,C,eCJAF,GAAoB,EAAI,S,eCKxB,IAAI6rE,EAAkB,CACrB,IAAK,CACN,EAYA7rE,GAAoB,EAAE,EAAI,SAAS8rE,EAAS,CAAE,OAAOD,EAAgBC,CAAO,IAAM,CAAG,EAGrF,IAAIC,EAAuB,SAASC,EAA4BtyD,EAAM,CACrE,IAAIoxD,EAAWpxD,EAAK,CAAC,EACjBuyD,EAAcvyD,EAAK,CAAC,EACpBwyD,EAAUxyD,EAAK,CAAC,EAGhBgxD,EAAUoB,EAASrkE,EAAI,EAC3B,GAAGqjE,EAAS,KAAK,SAAShrE,EAAI,CAAE,OAAO+rE,EAAgB/rE,CAAE,IAAM,CAAG,CAAC,EAAG,CACrE,IAAI4qE,KAAYuB,EACZjsE,GAAoB,EAAEisE,EAAavB,CAAQ,IAC7C1qE,GAAoB,EAAE0qE,CAAQ,EAAIuB,EAAYvB,CAAQ,GAGxD,GAAGwB,EAAS,IAAI9kE,EAAS8kE,EAAQlsE,EAAmB,CACrD,CAEA,IADGgsE,GAA4BA,EAA2BtyD,CAAI,EACzDjS,EAAIqjE,EAAS,OAAQrjE,IACzBqkE,EAAUhB,EAASrjE,CAAC,EACjBzH,GAAoB,EAAE6rE,EAAiBC,CAAO,GAAKD,EAAgBC,CAAO,GAC5ED,EAAgBC,CAAO,EAAE,CAAC,EAAE,EAE7BD,EAAgBC,CAAO,EAAI,EAE5B,OAAO9rE,GAAoB,EAAEoH,CAAM,CACpC,EAEI+kE,EAAqB,KAAK,uBAA4B,KAAK,wBAA6B,CAAC,EAC7FA,EAAmB,QAAQJ,EAAqB,KAAK,KAAM,CAAC,CAAC,EAC7DI,EAAmB,KAAOJ,EAAqB,KAAK,KAAMI,EAAmB,KAAK,KAAKA,CAAkB,CAAC,C,eClD1GnsE,GAAoB,GAAK,M,ICGzB,IAAIosE,GAAsBpsE,GAAoB,EAAE,OAAW,CAAC,GAAG,EAAG,UAAW,CAAE,OAAOA,GAAoB,KAAK,CAAG,CAAC,EACnHosE,GAAsBpsE,GAAoB,EAAEosE,EAAmB,C","sources":["webpack://aircasting/./app/javascript/packs/react-app.js","webpack://aircasting/./node_modules/moment-timezone/node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://aircasting/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://aircasting/./app/javascript/react/App.tsx","webpack://aircasting/./app/javascript/react/api/apiClient.ts","webpack://aircasting/./app/javascript/react/api/apiEndpoints.ts","webpack://aircasting/./app/javascript/react/assets/styles/colors.ts","webpack://aircasting/./app/javascript/react/assets/styles/global-styles.ts","webpack://aircasting/./app/javascript/react/components/atoms/ActionButton/ActionButton.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Button/Button.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Button/Button.tsx","webpack://aircasting/./app/javascript/react/components/atoms/CheckboxButton/CheckboxButton.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/CheckboxButton/CheckboxButton.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Loader/Loader.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Loader/Loader.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Loader/Spinner.tsx","webpack://aircasting/./app/javascript/react/components/atoms/RealtimeMapUpdatesButton/RealtimeMapUpdatesButton.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/RealtimeMapUpdatesButton/RealtimeMapUpdatesButton.tsx","webpack://aircasting/./app/javascript/react/components/atoms/RefreshMapButton/RefreshMapButton.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/RefreshMapButton/RefreshMapButton.tsx","webpack://aircasting/./app/javascript/react/components/atoms/ScrollButton/ScrollButton.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/ScrollButton/ScrollButton.tsx","webpack://aircasting/./app/javascript/react/components/atoms/SectionButton/SectionButton.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/SectionButton/SectionButton.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Toggle/Toggle.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Toggle/Toggle.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Typography/Typography.style.tsx","webpack://aircasting/./app/javascript/react/components/atoms/Typography/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/Calendar.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/Calendar.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/CalendarHook.ts","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/EmptyCalendar.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/HeaderToggle/HeaderToggle.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/HeaderToggle/HeaderToggle.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/Day/Day.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/Day/Day.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/Day/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/DayNamesHeader/DayNamesHeader.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/DayNamesHeader/DayNamesHeader.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/DayNamesHeader/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/Month/Month.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/Month/Month.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/Month/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/atoms/ScrollCalendarButton/ScrollCalendarButton.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Calendar/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/FixedStreamStationHeader.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/FixedStreamStationHeader.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/DataSource/DataSource.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/DataSource/DataSource.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/DataSource/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StationActionButtons/StationActionButtons.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StationActionButtons/StationActionButtons.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StationActionButtons/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StationName/StationName.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StationName/StationName.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StationName/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StreamUpdate/StreamUpdate.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StreamUpdate/StreamUpdate.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/StreamUpdate/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/ValueLabel/ValueLabel.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/ValueLabel/ValueLabel.tsx","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/atoms/ValueLabel/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/FixedStreamStationHeader/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/LocationSearch/LocationSearch.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/LocationSearch/LocationSearch.tsx","webpack://aircasting/./app/javascript/react/components/molecules/LocationSearch/index.ts","webpack://aircasting/./app/javascript/react/components/molecules/MapButtons/MapButton.tsx","webpack://aircasting/./app/javascript/react/components/molecules/MapButtons/MapButtons.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/MapButtons/MapButtons.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/BackButton.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/DesktopHeader.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/MobileHeader.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/NavList/NavItem.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/NavList/NavList.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/NavList/NavList.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/NavList/navItemsList.ts","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/Navbar.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Navbar/Navbar.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Popups/AlertComponent.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Popups/CopyLinkComponent.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Popups/ExportDataComponent.tsx","webpack://aircasting/./app/javascript/react/components/molecules/Popups/Popups.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/CrowdMapGridSize.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/CrowdmapToggle.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/CustomParameterFilter.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/CustomSensorFilter.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/DesktopSessionFilters.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/DormantToggle.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/FilterInfoPopup.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/IndoorOutdoorSwitch.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/MobileSessionFilters.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/ParameterFilter.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/ProfileNamesInput.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/SensorFilter.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/SessionFilters.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/SessionTypeToggle.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/TagsInput.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/YearPicker.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionFilters/YearPickerButtons.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/ExportButtonComponent.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/MobileSessionList/MobileSessionList.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/MobileSessionList/MobileSessionList.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/SessionsListTile/SessionListTile.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/SessionsListTile/SessionListTile.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/SessionsListView.style.tsx","webpack://aircasting/./app/javascript/react/components/molecules/SessionsListView/SessionsListView.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Graph/Graph.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Graph/Graph.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Graph/MeasurementComponent.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Graph/TimeRage.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Graph/chartEvents.ts","webpack://aircasting/./app/javascript/react/components/organisms/Graph/chartHooks/createGraphData.ts","webpack://aircasting/./app/javascript/react/components/organisms/Graph/chartHooks/updateRangeDisplay.ts","webpack://aircasting/./app/javascript/react/components/organisms/Graph/chartHooks/useChartUpdater.ts","webpack://aircasting/./app/javascript/react/components/organisms/Graph/chartHooks/useMeasurementsFetcher.ts","webpack://aircasting/./app/javascript/react/components/organisms/Graph/graphConfig.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/ControlPanel/ControlPanel.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/ControlPanel/ControlPanel.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Legend/Legend.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Legend/Legend.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Map.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Map.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterInfo/ClusterInfo.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterInfo/ClusterInfo.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterInfo/ClusterZoomIn/ClusterZoomIn.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterInfo/ClusterZoomIn/ClusterZoomIn.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterInfo/ClusterZoomIn/ZoomInIcon/ZoomInIcon.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterMarker/clusterCalculations.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/ClusterMarker/clusterOverlay.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/CrowdMapMarkers.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/CustomOverlays/CustomMarker.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/CustomOverlays/MapOverlay.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/CustomOverlays/customMarkerLabel.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/CustomOverlays/customMarkerOverlay.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/DormantMarkers.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/FixedMarkers.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/HoverMarker/HoverMarker.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/MobileMarkers.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/NotesPopover/NotesPopover.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/NotesPopover/NotesPopover.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/RectangleInfo/RectangleInfo.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/RectangleInfo/RectangleInfo.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/StreamMarkers.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/TimelapseMarkers.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/Markers/gridClusterAlgorithm.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Map/mapUtils/mapConfigs.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/mapUtils/mapStyles.ts","webpack://aircasting/./app/javascript/react/components/organisms/Map/mapUtils/mapStylesZoomedIn.ts","webpack://aircasting/./app/javascript/react/components/organisms/Modals/CopyLinkModal.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/Modals.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/SessionDetailsModal/SessionDetailsModal.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/SessionDetailsModal/SessionDetailsModal.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/SessionDetailsModal/SessionInfo/ModalDesktopHeader.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/SessionDetailsModal/SessionInfo/ModalMobileHeader.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/SessionDetailsModal/SessionInfo/SessionInfo.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/SessionDetailsModal/index.ts","webpack://aircasting/./app/javascript/react/components/organisms/Modals/TimelapseModal/NavigationButtons.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/TimelapseModal/TimeAxis.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/TimelapseModal/TimeRangeButtons.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/TimelapseModal/TimelapseComponent.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/TimelapseModal/TimelapseComponent.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/TimelapseModal/index.ts","webpack://aircasting/./app/javascript/react/components/organisms/Modals/atoms/ConfirmationMessage.tsx","webpack://aircasting/./app/javascript/react/components/organisms/Modals/atoms/ModalInput.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdButtons/Icons/ReturnArrowIcon.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdButtons/Icons/UniformDistributionIcon.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdButtons/ResetButton.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdButtons/ThresholdButton.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdButtons/UniformDistributionButton.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdConfigurator.style.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdConfigurator.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/ThresholdSlider.tsx","webpack://aircasting/./app/javascript/react/components/organisms/ThresholdConfigurator/index.ts","webpack://aircasting/./app/javascript/react/const/booleans.ts","webpack://aircasting/./app/javascript/react/const/coordinates.ts","webpack://aircasting/./app/javascript/react/const/urls.ts","webpack://aircasting/./app/javascript/react/hooks/useBackNavigation.tsx","webpack://aircasting/./app/javascript/react/hooks/useScrollEndListener.tsx","webpack://aircasting/./app/javascript/react/locales/i18n.tsx","webpack://aircasting/./app/javascript/react/pages/CalendarPage/CalendarPage.style.tsx","webpack://aircasting/./app/javascript/react/pages/CalendarPage/CalendarPage.tsx","webpack://aircasting/./app/javascript/react/pages/MapPage/MapPage.tsx","webpack://aircasting/./app/javascript/react/pages/MapPage/index.ts","webpack://aircasting/./app/javascript/react/pages/NotFoundPage/NotFoundPage.style.tsx","webpack://aircasting/./app/javascript/react/pages/NotFoundPage/NotFoundPage.tsx","webpack://aircasting/./app/javascript/react/pages/NotFoundPage/index.ts","webpack://aircasting/./app/javascript/react/pages/RedirectPage/RedirectPage.style.tsx","webpack://aircasting/./app/javascript/react/pages/RedirectPage/RedirectPage.tsx","webpack://aircasting/./app/javascript/react/pages/RedirectPage/Title.tsx","webpack://aircasting/./app/javascript/react/pages/RedirectPage/index.ts","webpack://aircasting/./app/javascript/react/store/clusterSlice.ts","webpack://aircasting/./app/javascript/react/store/crowdMapSlice.ts","webpack://aircasting/./app/javascript/react/store/exportSessionSlice.ts","webpack://aircasting/./app/javascript/react/store/fixedSessionsSelectors.ts","webpack://aircasting/./app/javascript/react/store/fixedSessionsSlice.ts","webpack://aircasting/./app/javascript/react/store/fixedStreamSelectors.ts","webpack://aircasting/./app/javascript/react/store/fixedStreamSlice.ts","webpack://aircasting/./app/javascript/react/store/hooks.ts","webpack://aircasting/./app/javascript/react/store/index.ts","webpack://aircasting/./app/javascript/react/store/indoorSessionsSelectors.ts","webpack://aircasting/./app/javascript/react/store/indoorSessionsSlice.ts","webpack://aircasting/./app/javascript/react/store/loadingSelectors.ts","webpack://aircasting/./app/javascript/react/store/mapSlice.ts","webpack://aircasting/./app/javascript/react/store/markersLoadingSlice.ts","webpack://aircasting/./app/javascript/react/store/mobileSessionsSelectors.ts","webpack://aircasting/./app/javascript/react/store/mobileSessionsSlice.ts","webpack://aircasting/./app/javascript/react/store/mobileStreamSelectors.ts","webpack://aircasting/./app/javascript/react/store/mobileStreamSlice.ts","webpack://aircasting/./app/javascript/react/store/movingCalendarStreamSlice.ts","webpack://aircasting/./app/javascript/react/store/movingStreamSelectors.ts","webpack://aircasting/./app/javascript/react/store/realtimeMapUpdatesSlice.ts","webpack://aircasting/./app/javascript/react/store/rectangleSlice.ts","webpack://aircasting/./app/javascript/react/store/sensorsSlice.ts","webpack://aircasting/./app/javascript/react/store/sessionFiltersSlice.ts","webpack://aircasting/./app/javascript/react/store/thresholdSlice.ts","webpack://aircasting/./app/javascript/react/store/timelapseSelectors.ts","webpack://aircasting/./app/javascript/react/store/timelapseSlice.ts","webpack://aircasting/./app/javascript/react/types/dateFormat.ts","webpack://aircasting/./app/javascript/react/types/filters.ts","webpack://aircasting/./app/javascript/react/types/map.ts","webpack://aircasting/./app/javascript/react/types/sensors.ts","webpack://aircasting/./app/javascript/react/types/timeRange.ts","webpack://aircasting/./app/javascript/react/types/timelapse.ts","webpack://aircasting/./app/javascript/react/types/userStates.ts","webpack://aircasting/./app/javascript/react/utils/cookies.ts","webpack://aircasting/./app/javascript/react/utils/copyCurrentUrl.ts","webpack://aircasting/./app/javascript/react/utils/dateParser.ts","webpack://aircasting/./app/javascript/react/utils/determineZoomLevel.ts","webpack://aircasting/./app/javascript/react/utils/filterTimelapseData.ts","webpack://aircasting/./app/javascript/react/utils/focusTabController.ts","webpack://aircasting/./app/javascript/react/utils/geolocation.ts","webpack://aircasting/./app/javascript/react/utils/getClusterPixelPosition.ts","webpack://aircasting/./app/javascript/react/utils/getErrorMessage.ts","webpack://aircasting/./app/javascript/react/utils/getTimeRange.ts","webpack://aircasting/./app/javascript/react/utils/hexToRGB.ts","webpack://aircasting/./app/javascript/react/utils/initializeSentry.ts","webpack://aircasting/./app/javascript/react/utils/lastArrayItem.ts","webpack://aircasting/./app/javascript/react/utils/logController.ts","webpack://aircasting/./app/javascript/react/utils/mapEventListeners.ts","webpack://aircasting/./app/javascript/react/utils/mapParamsHandler.ts","webpack://aircasting/./app/javascript/react/utils/measurementsCalc.ts","webpack://aircasting/./app/javascript/react/utils/media.ts","webpack://aircasting/./app/javascript/react/utils/scrollEnd.ts","webpack://aircasting/./app/javascript/react/utils/setSensor.ts","webpack://aircasting/./app/javascript/react/utils/thresholdColors.ts","webpack://aircasting/./app/javascript/react/utils/thresholdEventHandlers.ts","webpack://aircasting/./app/javascript/react/utils/thresholdGestureHandlers.ts","webpack://aircasting/./app/javascript/react/utils/thresholdThumbCalculations.ts","webpack://aircasting/./app/javascript/react/utils/timeRanges.ts","webpack://aircasting/./app/javascript/react/utils/uniformDistributionThresholdCalc.ts","webpack://aircasting/./app/javascript/react/utils/useAutoDismissAlert.ts","webpack://aircasting/./app/javascript/react/utils/useScreenSizeDetection.ts","webpack://aircasting/./app/javascript/react/utils/useShortenedLink.ts","webpack://aircasting/webpack/bootstrap","webpack://aircasting/webpack/runtime/chunk loaded","webpack://aircasting/webpack/runtime/compat get default export","webpack://aircasting/webpack/runtime/create fake namespace object","webpack://aircasting/webpack/runtime/define property getters","webpack://aircasting/webpack/runtime/global","webpack://aircasting/webpack/runtime/harmony module decorator","webpack://aircasting/webpack/runtime/hasOwnProperty shorthand","webpack://aircasting/webpack/runtime/make namespace object","webpack://aircasting/webpack/runtime/node module decorator","webpack://aircasting/webpack/runtime/publicPath","webpack://aircasting/webpack/runtime/jsonp chunk loading","webpack://aircasting/webpack/runtime/nonce","webpack://aircasting/webpack/startup"],"sourcesContent":["import React from \"react\";\nimport { createRoot } from \"react-dom/client\";\n\nimport { initializeSentry } from \"../react/utils/initializeSentry.ts\";\nimport { App } from \"../react/App.tsx\";\n\nimport \"../react/assets/styles/typography\";\n\ninitializeSentry();\n\nconst container = document.getElementById(\"react-app\");\nconst root = createRoot(container);\n\nroot.render();\n","var map = {\n\t\"./af\": 57246,\n\t\"./af.js\": 57246,\n\t\"./ar\": 80508,\n\t\"./ar-dz\": 67901,\n\t\"./ar-dz.js\": 67901,\n\t\"./ar-kw\": 27781,\n\t\"./ar-kw.js\": 27781,\n\t\"./ar-ly\": 13229,\n\t\"./ar-ly.js\": 13229,\n\t\"./ar-ma\": 47416,\n\t\"./ar-ma.js\": 47416,\n\t\"./ar-ps\": 21992,\n\t\"./ar-ps.js\": 21992,\n\t\"./ar-sa\": 93388,\n\t\"./ar-sa.js\": 93388,\n\t\"./ar-tn\": 86122,\n\t\"./ar-tn.js\": 86122,\n\t\"./ar.js\": 80508,\n\t\"./az\": 8876,\n\t\"./az.js\": 8876,\n\t\"./be\": 27626,\n\t\"./be.js\": 27626,\n\t\"./bg\": 71607,\n\t\"./bg.js\": 71607,\n\t\"./bm\": 4843,\n\t\"./bm.js\": 4843,\n\t\"./bn\": 14208,\n\t\"./bn-bd\": 91224,\n\t\"./bn-bd.js\": 91224,\n\t\"./bn.js\": 14208,\n\t\"./bo\": 66901,\n\t\"./bo.js\": 66901,\n\t\"./br\": 6149,\n\t\"./br.js\": 6149,\n\t\"./bs\": 74348,\n\t\"./bs.js\": 74348,\n\t\"./ca\": 44206,\n\t\"./ca.js\": 44206,\n\t\"./cs\": 85316,\n\t\"./cs.js\": 85316,\n\t\"./cv\": 61105,\n\t\"./cv.js\": 61105,\n\t\"./cy\": 10538,\n\t\"./cy.js\": 10538,\n\t\"./da\": 94337,\n\t\"./da.js\": 94337,\n\t\"./de\": 59219,\n\t\"./de-at\": 12583,\n\t\"./de-at.js\": 12583,\n\t\"./de-ch\": 50135,\n\t\"./de-ch.js\": 50135,\n\t\"./de.js\": 59219,\n\t\"./dv\": 99580,\n\t\"./dv.js\": 99580,\n\t\"./el\": 36611,\n\t\"./el.js\": 36611,\n\t\"./en-au\": 86576,\n\t\"./en-au.js\": 86576,\n\t\"./en-ca\": 44877,\n\t\"./en-ca.js\": 44877,\n\t\"./en-gb\": 26463,\n\t\"./en-gb.js\": 26463,\n\t\"./en-ie\": 79121,\n\t\"./en-ie.js\": 79121,\n\t\"./en-il\": 55288,\n\t\"./en-il.js\": 55288,\n\t\"./en-in\": 11465,\n\t\"./en-in.js\": 11465,\n\t\"./en-nz\": 83153,\n\t\"./en-nz.js\": 83153,\n\t\"./en-sg\": 3802,\n\t\"./en-sg.js\": 3802,\n\t\"./eo\": 5250,\n\t\"./eo.js\": 5250,\n\t\"./es\": 8442,\n\t\"./es-do\": 51736,\n\t\"./es-do.js\": 51736,\n\t\"./es-mx\": 13759,\n\t\"./es-mx.js\": 13759,\n\t\"./es-us\": 41475,\n\t\"./es-us.js\": 41475,\n\t\"./es.js\": 8442,\n\t\"./et\": 75294,\n\t\"./et.js\": 75294,\n\t\"./eu\": 4466,\n\t\"./eu.js\": 4466,\n\t\"./fa\": 66980,\n\t\"./fa.js\": 66980,\n\t\"./fi\": 92192,\n\t\"./fi.js\": 92192,\n\t\"./fil\": 9166,\n\t\"./fil.js\": 9166,\n\t\"./fo\": 27696,\n\t\"./fo.js\": 27696,\n\t\"./fr\": 241,\n\t\"./fr-ca\": 87916,\n\t\"./fr-ca.js\": 87916,\n\t\"./fr-ch\": 18298,\n\t\"./fr-ch.js\": 18298,\n\t\"./fr.js\": 241,\n\t\"./fy\": 18224,\n\t\"./fy.js\": 18224,\n\t\"./ga\": 66120,\n\t\"./ga.js\": 66120,\n\t\"./gd\": 88698,\n\t\"./gd.js\": 88698,\n\t\"./gl\": 33906,\n\t\"./gl.js\": 33906,\n\t\"./gom-deva\": 12409,\n\t\"./gom-deva.js\": 12409,\n\t\"./gom-latn\": 16723,\n\t\"./gom-latn.js\": 16723,\n\t\"./gu\": 33869,\n\t\"./gu.js\": 33869,\n\t\"./he\": 80564,\n\t\"./he.js\": 80564,\n\t\"./hi\": 3776,\n\t\"./hi.js\": 3776,\n\t\"./hr\": 73315,\n\t\"./hr.js\": 73315,\n\t\"./hu\": 35887,\n\t\"./hu.js\": 35887,\n\t\"./hy-am\": 17199,\n\t\"./hy-am.js\": 17199,\n\t\"./id\": 40440,\n\t\"./id.js\": 40440,\n\t\"./is\": 55046,\n\t\"./is.js\": 55046,\n\t\"./it\": 14347,\n\t\"./it-ch\": 54939,\n\t\"./it-ch.js\": 54939,\n\t\"./it.js\": 14347,\n\t\"./ja\": 52438,\n\t\"./ja.js\": 52438,\n\t\"./jv\": 13781,\n\t\"./jv.js\": 13781,\n\t\"./ka\": 94707,\n\t\"./ka.js\": 94707,\n\t\"./kk\": 15521,\n\t\"./kk.js\": 15521,\n\t\"./km\": 53025,\n\t\"./km.js\": 53025,\n\t\"./kn\": 53621,\n\t\"./kn.js\": 53621,\n\t\"./ko\": 2387,\n\t\"./ko.js\": 2387,\n\t\"./ku\": 18870,\n\t\"./ku-kmr\": 85114,\n\t\"./ku-kmr.js\": 85114,\n\t\"./ku.js\": 18870,\n\t\"./ky\": 809,\n\t\"./ky.js\": 809,\n\t\"./lb\": 27162,\n\t\"./lb.js\": 27162,\n\t\"./lo\": 42445,\n\t\"./lo.js\": 42445,\n\t\"./lt\": 13335,\n\t\"./lt.js\": 13335,\n\t\"./lv\": 41992,\n\t\"./lv.js\": 41992,\n\t\"./me\": 28206,\n\t\"./me.js\": 28206,\n\t\"./mi\": 14310,\n\t\"./mi.js\": 14310,\n\t\"./mk\": 10012,\n\t\"./mk.js\": 10012,\n\t\"./ml\": 55895,\n\t\"./ml.js\": 55895,\n\t\"./mn\": 6350,\n\t\"./mn.js\": 6350,\n\t\"./mr\": 53644,\n\t\"./mr.js\": 53644,\n\t\"./ms\": 37405,\n\t\"./ms-my\": 51000,\n\t\"./ms-my.js\": 51000,\n\t\"./ms.js\": 37405,\n\t\"./mt\": 51132,\n\t\"./mt.js\": 51132,\n\t\"./my\": 92113,\n\t\"./my.js\": 92113,\n\t\"./nb\": 2657,\n\t\"./nb.js\": 2657,\n\t\"./ne\": 31249,\n\t\"./ne.js\": 31249,\n\t\"./nl\": 87375,\n\t\"./nl-be\": 67934,\n\t\"./nl-be.js\": 67934,\n\t\"./nl.js\": 87375,\n\t\"./nn\": 42293,\n\t\"./nn.js\": 42293,\n\t\"./oc-lnc\": 16804,\n\t\"./oc-lnc.js\": 16804,\n\t\"./pa-in\": 97159,\n\t\"./pa-in.js\": 97159,\n\t\"./pl\": 3335,\n\t\"./pl.js\": 3335,\n\t\"./pt\": 10930,\n\t\"./pt-br\": 99343,\n\t\"./pt-br.js\": 99343,\n\t\"./pt.js\": 10930,\n\t\"./ro\": 90875,\n\t\"./ro.js\": 90875,\n\t\"./ru\": 83811,\n\t\"./ru.js\": 83811,\n\t\"./sd\": 89883,\n\t\"./sd.js\": 89883,\n\t\"./se\": 94959,\n\t\"./se.js\": 94959,\n\t\"./si\": 75250,\n\t\"./si.js\": 75250,\n\t\"./sk\": 23606,\n\t\"./sk.js\": 23606,\n\t\"./sl\": 83168,\n\t\"./sl.js\": 83168,\n\t\"./sq\": 20624,\n\t\"./sq.js\": 20624,\n\t\"./sr\": 4175,\n\t\"./sr-cyrl\": 73869,\n\t\"./sr-cyrl.js\": 73869,\n\t\"./sr.js\": 4175,\n\t\"./ss\": 22412,\n\t\"./ss.js\": 22412,\n\t\"./sv\": 38609,\n\t\"./sv.js\": 38609,\n\t\"./sw\": 9575,\n\t\"./sw.js\": 9575,\n\t\"./ta\": 51993,\n\t\"./ta.js\": 51993,\n\t\"./te\": 42008,\n\t\"./te.js\": 42008,\n\t\"./tet\": 55583,\n\t\"./tet.js\": 55583,\n\t\"./tg\": 35929,\n\t\"./tg.js\": 35929,\n\t\"./th\": 19728,\n\t\"./th.js\": 19728,\n\t\"./tk\": 57122,\n\t\"./tk.js\": 57122,\n\t\"./tl-ph\": 76735,\n\t\"./tl-ph.js\": 76735,\n\t\"./tlh\": 25956,\n\t\"./tlh.js\": 25956,\n\t\"./tr\": 83233,\n\t\"./tr.js\": 83233,\n\t\"./tzl\": 77394,\n\t\"./tzl.js\": 77394,\n\t\"./tzm\": 6426,\n\t\"./tzm-latn\": 98324,\n\t\"./tzm-latn.js\": 98324,\n\t\"./tzm.js\": 6426,\n\t\"./ug-cn\": 80978,\n\t\"./ug-cn.js\": 80978,\n\t\"./uk\": 28554,\n\t\"./uk.js\": 28554,\n\t\"./ur\": 79482,\n\t\"./ur.js\": 79482,\n\t\"./uz\": 87534,\n\t\"./uz-latn\": 2677,\n\t\"./uz-latn.js\": 2677,\n\t\"./uz.js\": 87534,\n\t\"./vi\": 89192,\n\t\"./vi.js\": 89192,\n\t\"./x-pseudo\": 35884,\n\t\"./x-pseudo.js\": 35884,\n\t\"./yo\": 69335,\n\t\"./yo.js\": 69335,\n\t\"./zh-cn\": 71018,\n\t\"./zh-cn.js\": 71018,\n\t\"./zh-hk\": 8720,\n\t\"./zh-hk.js\": 8720,\n\t\"./zh-mo\": 86061,\n\t\"./zh-mo.js\": 86061,\n\t\"./zh-tw\": 64225,\n\t\"./zh-tw.js\": 64225\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 11799;","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.App = void 0;\nrequire(\"./locales/i18n\");\nconst react_1 = __importDefault(require(\"react\"));\nconst react_redux_1 = require(\"react-redux\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst global_styles_1 = __importDefault(require(\"./assets/styles/global-styles\"));\nconst Navbar_1 = require(\"./components/molecules/Navbar/Navbar\");\nconst CalendarPage_1 = require(\"./pages/CalendarPage/CalendarPage\");\nconst MapPage_1 = require(\"./pages/MapPage\");\nconst NotFoundPage_1 = require(\"./pages/NotFoundPage\");\nconst RedirectPage_1 = require(\"./pages/RedirectPage\");\nconst index_1 = __importDefault(require(\"./store/index\"));\nconst NEW_MAP = \"/new_map\";\nconst router = (0, react_router_dom_1.createBrowserRouter)((0, react_router_dom_1.createRoutesFromElements)(react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/\", element: react_1.default.createElement(MapPage_1.MapPage, null,\n react_1.default.createElement(Navbar_1.Navbar, { isMapPage: true })) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"/fixed_stream\", element: react_1.default.createElement(CalendarPage_1.CalendarPage, null,\n react_1.default.createElement(Navbar_1.Navbar, { isMapPage: false })) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: \"*\", element: react_1.default.createElement(NotFoundPage_1.NotFoundPage, null,\n react_1.default.createElement(Navbar_1.Navbar, { isMapPage: false })) }),\n react_1.default.createElement(react_router_dom_1.Route, { path: NEW_MAP, element: react_1.default.createElement(RedirectPage_1.RedirectPage, null,\n react_1.default.createElement(Navbar_1.Navbar, { isMapPage: false })) }))));\nconst App = () => {\n return (react_1.default.createElement(react_redux_1.Provider, { store: index_1.default },\n react_1.default.createElement(global_styles_1.default, null),\n react_1.default.createElement(react_router_dom_1.RouterProvider, { router: router })));\n};\nexports.App = App;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.oldApiClient = exports.apiClient = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst humps_1 = require(\"humps\");\nconst apiClient = axios_1.default.create({\n baseURL: process.env.API_STREAM_URL,\n});\nexports.apiClient = apiClient;\nconst oldApiClient = axios_1.default.create({\n baseURL: process.env.API_BASE_URL,\n});\nexports.oldApiClient = oldApiClient;\napiClient.interceptors.response.use((response) => {\n response.data = (0, humps_1.camelizeKeys)(response.data);\n return response;\n});\noldApiClient.interceptors.response.use((response) => {\n response.data = (0, humps_1.camelizeKeys)(response.data);\n return response;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.API_ENDPOINTS = void 0;\nexports.API_ENDPOINTS = {\n exportSessionData: (sessionsIds, email) => {\n const sessionParams = sessionsIds\n .map((id) => `session_ids[]=${id}`)\n .join(\"&\");\n return `/sessions/export.json?${sessionParams}&email=${email}`;\n },\n fetchCrowdMap: (filters) => `/averages2.json?q=${filters}`,\n fetchActiveFixedSessions: (filters) => `/fixed/active/sessions2.json?q=${filters}`,\n fetchDormantFixedSessions: (filters) => `/fixed/dormant/sessions.json?q=${filters}`,\n fetchFixedStreamById: (id) => `/fixed_streams/${id}`,\n fetchMobileSessions: (filters) => `/mobile/sessions.json?q=${filters}`,\n fetchMobileStreamById: (id) => `/mobile/streams/${id}`,\n fetchRectangleData: (filters) => `/region.json?${filters}`,\n fetchSelectedDataRangeOfStream: (id, startDate, endDate) => `/stream_daily_averages?stream_id=${id}&start_date=${startDate}&end_date=${endDate}`,\n fetchThresholds: (filters) => `/thresholds/${filters}`,\n fetchUsernames: (params) => {\n const { usernames, tags, west, east, south, north, timeFrom, timeTo, sensorName, unitSymbol, isIndoor, isActive, sessionType, } = params;\n if (west === undefined ||\n east === undefined ||\n south === undefined ||\n north === undefined ||\n timeFrom === undefined ||\n timeTo === undefined ||\n sensorName === undefined ||\n unitSymbol === undefined ||\n isIndoor === undefined ||\n isActive === undefined ||\n tags === undefined) {\n throw new Error(\"Missing required parameters.\");\n }\n const query = {\n \"q[input]\": usernames || \"\",\n \"q[west]\": west,\n \"q[east]\": east,\n \"q[south]\": south,\n \"q[north]\": north,\n \"q[time_from]\": timeFrom,\n \"q[time_to]\": timeTo,\n \"q[sensor_name]\": sensorName,\n \"q[unit_symbol]\": unitSymbol,\n \"q[is_indoor]\": isIndoor,\n \"q[session_type]\": sessionType,\n \"q[is_dormant]\": !isActive,\n \"q[tags]\": tags || \"\",\n };\n function encodeParamName(name) {\n return name.replace(/[^A-Za-z0-9_\\[\\]]/g, encodeURIComponent);\n }\n const queryString = Object.keys(query)\n .map((key) => `${encodeParamName(key)}=${encodeURIComponent(String(query[key]))}`)\n .join(\"&\");\n const url = `/autocomplete/usernames?${queryString}`;\n return url;\n },\n fetchTags: (params) => {\n const { tags, west, east, south, north, timeFrom, timeTo, usernames, sensorName, unitSymbol, isIndoor, isActive, sessionType, } = params;\n if (west === undefined ||\n east === undefined ||\n south === undefined ||\n north === undefined ||\n timeFrom === undefined ||\n timeTo === undefined ||\n sensorName === undefined ||\n unitSymbol === undefined ||\n isIndoor === undefined ||\n isActive === undefined) {\n throw new Error(\"Missing required parameters.\");\n }\n const query = {\n \"q[input]\": tags || \"\",\n \"q[west]\": west,\n \"q[east]\": east,\n \"q[south]\": south,\n \"q[north]\": north,\n \"q[time_from]\": timeFrom,\n \"q[time_to]\": timeTo,\n \"q[usernames]\": usernames || \"\",\n \"q[sensor_name]\": sensorName,\n \"q[unit_symbol]\": unitSymbol,\n \"q[is_indoor]\": isIndoor,\n \"q[is_active]\": isActive,\n };\n function encodeParamName(name) {\n return name.replace(/[^A-Za-z0-9_\\[\\]]/g, encodeURIComponent);\n }\n const queryString = Object.keys(query)\n .map((key) => `${encodeParamName(key)}=${encodeURIComponent(String(query[key]))}`)\n .join(\"&\");\n const url = `/${sessionType}/autocomplete/tags?${queryString}`;\n return url;\n },\n fetchSensors: (sessionType) => `/sensors?session_type=${sessionType}Session`,\n fetchTimelapseData: (filters) => `/timelapse.json?q=${filters}`,\n fetchIndoorActiveSessions: (filters) => `/fixed/active/sessions2.json?q=${filters}`,\n fetchIndoorDormantSessions: (filters) => `/fixed/dormant/sessions.json?q=${filters}`,\n fetchMeasurements: (streamId, startTime, endTime) => `/measurements?stream_ids=${streamId}&start_time=${startTime}&end_time=${endTime}`,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.yellow200 = exports.yellow100 = exports.white = exports.waterColor = exports.theme = exports.textColor = exports.strokeColor = exports.royalPurple = exports.rose = exports.roadColor = exports.reservationFillColor = exports.red200 = exports.red100 = exports.provinceStrokeColor = exports.orange200 = exports.orange100 = exports.mobileStreamPath = exports.mint = exports.mapWater = exports.mapStroke = exports.mapLandscape = exports.mapLabels = exports.lightCrimson = exports.lightBlueInfo = exports.lightBlue = exports.landscapeColor = exports.internationalBorderFillColor = exports.grey = exports.green200 = exports.green100 = exports.grayStroke = exports.gray900 = exports.gray800 = exports.gray700 = exports.gray600 = exports.gray500 = exports.gray400 = exports.gray300 = exports.gray200 = exports.gray100 = exports.disabledGraphButton = exports.darkBlueTransparent = exports.darkBlue = exports.cta = exports.buildingStrokeColor = exports.blue = exports.black = exports.administrativeRegionTextColor = exports.acBlueTransparent = exports.acBlue = void 0;\nconst cta = \"#FFE651\";\nexports.cta = cta;\nconst theme = \"#00B2EF\";\nexports.theme = theme;\nconst white = \"#FFFFFF\";\nexports.white = white;\nconst gray100 = \"#F4F6F9\";\nexports.gray100 = gray100;\nconst gray200 = \"#C0C9D1\";\nexports.gray200 = gray200;\nconst gray300 = \"#7D858C\";\nexports.gray300 = gray300;\nconst gray400 = \"#3E4449\";\nexports.gray400 = gray400;\nconst gray500 = \"#C6CDD3\";\nexports.gray500 = gray500;\nconst gray600 = \"#AFB6BC\";\nexports.gray600 = gray600;\nconst gray700 = \"#CCC\";\nexports.gray700 = gray700;\nconst gray800 = \"#4C5660A1\";\nexports.gray800 = gray800;\nconst gray900 = \"#4C56601A\";\nexports.gray900 = gray900;\nconst mint = \"#81DBCB\";\nexports.mint = mint;\nconst blue = \"#00B3EF\";\nexports.blue = blue;\nconst acBlue = \"#00B2EF\";\nexports.acBlue = acBlue;\nconst acBlueTransparent = \"#CCF0FC\";\nexports.acBlueTransparent = acBlueTransparent;\nconst darkBlue = \"#5C81A5\";\nexports.darkBlue = darkBlue;\nconst darkBlueTransparent = \"#5c81a580\";\nexports.darkBlueTransparent = darkBlueTransparent;\nconst red100 = \"#E95F5F\";\nexports.red100 = red100;\nconst red200 = \"#CA3131\";\nexports.red200 = red200;\nconst orange100 = \"#FCA443\";\nexports.orange100 = orange100;\nconst orange200 = \"#E07D11\";\nexports.orange200 = orange200;\nconst yellow100 = \"#FFD960\";\nexports.yellow100 = yellow100;\nconst yellow200 = \"#D2A61A\";\nexports.yellow200 = yellow200;\nconst green100 = \"#96D788\";\nexports.green100 = green100;\nconst green200 = \"#41992E\";\nexports.green200 = green200;\nconst lightCrimson = \"#ED6B86\";\nexports.lightCrimson = lightCrimson;\nconst rose = \"#FF38B5\";\nexports.rose = rose;\nconst royalPurple = \"#7D3EBE\";\nexports.royalPurple = royalPurple;\nconst grey = \"#a0a2ad\";\nexports.grey = grey;\nconst black = \"#000\";\nexports.black = black;\nconst mapLabels = \"#acacac\";\nexports.mapLabels = mapLabels;\nconst mapLandscape = \"#f2f2f2\";\nexports.mapLandscape = mapLandscape;\nconst mapStroke = \"#c9c9c9\";\nexports.mapStroke = mapStroke;\nconst mapWater = \"#e0f1f9\";\nexports.mapWater = mapWater;\nconst mobileStreamPath = \"#cee6f1\";\nexports.mobileStreamPath = mobileStreamPath;\nconst disabledGraphButton = \"#a3a0a4\";\nexports.disabledGraphButton = disabledGraphButton;\nconst lightBlue = \"#9BCDDE\";\nexports.lightBlue = lightBlue;\nconst grayStroke = \"#DFE7F2\";\nexports.grayStroke = grayStroke;\nconst lightBlueInfo = \"#00b2ef1a\";\nexports.lightBlueInfo = lightBlueInfo;\n// Map styles colors\nconst reservationFillColor = \"#e8ede9\";\nexports.reservationFillColor = reservationFillColor;\nconst textColor = \"#acacac\";\nexports.textColor = textColor;\nconst strokeColor = \"#ffffff\";\nexports.strokeColor = strokeColor;\nconst administrativeRegionTextColor = \"#afafaf\";\nexports.administrativeRegionTextColor = administrativeRegionTextColor;\nconst internationalBorderFillColor = \"#4e5256\";\nexports.internationalBorderFillColor = internationalBorderFillColor;\nconst landscapeColor = \"#f2f2f2\";\nexports.landscapeColor = landscapeColor;\nconst buildingStrokeColor = \"#d9dce8\";\nexports.buildingStrokeColor = buildingStrokeColor;\nconst provinceStrokeColor = \"#5f6368\";\nexports.provinceStrokeColor = provinceStrokeColor;\nconst roadColor = \"#ffffff\";\nexports.roadColor = roadColor;\nconst waterColor = \"#e0f1f9\";\nexports.waterColor = waterColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst styled_components_1 = require(\"styled-components\");\nconst colors_1 = require(\"./colors\");\nconst pulseAnimation = (0, styled_components_1.keyframes) `\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(2.0);\n opacity: 0.5;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n`;\nconst GlobalStyles = (0, styled_components_1.createGlobalStyle) `\n *,\n *::before,\n *::after {\n margin: 0;\n padding: 0;\n box-sizing: inherit;\n }\n\n html {\n font-size: 62.5%; /* equivalent to 10px; 1rem = 10px; 10px/16px */\n }\n\n body, button {\n box-sizing: border-box;\n font-family: 'Roboto';\n line-height: 1;\n }\n\n html, body {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale !important;\n text-rendering: optimizeLegibility;\n background-color: ${colors_1.gray100};\n overscroll-behavior-y: contain; // Prevents the page from scrolling when the user scrolls past the top or bottom\n }\n\n H1, H2, H3, H4, H5, H6 {\n line-height: 1.2;\n color: ${colors_1.gray400};\n }\n\n body:not(.user-is-tabbing) .gm-style iframe + div {\n border: none !important;\n }\n\n // style for pulsating clusters\n .pulsating-marker {\n animation: ${(0, styled_components_1.css) `\n ${pulseAnimation} 2s infinite\n `};\n }\n .highcharts-navigator {\n display: none;\n }\n\n .highcharts-navigator-xaxis {\n display: none;\n }\n\n /* Scroll bar stylings */\n::-webkit-scrollbar {\n width: 9px;\n height: 10px;\n}\n\n::-webkit-scrollbar-track {\n background-color: transparent;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: #888;\n border-radius: 8px\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: #555\n}\n\n@-moz-document url-prefix() {\n html {\n scrollbar-width: thin;\n scrollbar-color: #888 #F0F0F0;\n }\n\n ::-webkit-scrollbar {\n width: 12px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: #888;;\n border-radius: 6px;\n border: 1px solid #F0F0F0;\n }\n\n ::-webkit-scrollbar-thumb:hover {\n background-color: #555;;\n }\n}\n`;\nexports.default = GlobalStyles;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionButton = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst ActionButton = styled_components_1.default.button `\n background-color: ${colors_1.white};\n border: none;\n border-radius: 10px;\n box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);\n padding: 16px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.3s, box-shadow 0.3s;\n width: 42px;\n height: 42px;\n margin-right: 5px;\n`;\nexports.ActionButton = ActionButton;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Button = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst Button = styled_components_1.default.button `\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.14px;\n height: 42px;\n border-radius: 5px;\n padding: 16px;\n align-items: center;\n gap: 10px;\n justify-content: flex-end;\n display: flex;\n border: 1px solid ${colors_1.gray200};\n background-color: transparent;\n cursor: pointer;\n`;\nexports.Button = Button;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Button = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./Button.style\"));\nconst Button = (_a) => {\n var { children } = _a, props = __rest(_a, [\"children\"]);\n return (react_1.default.createElement(S.Button, Object.assign({}, props), children));\n};\nexports.Button = Button;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RoundCheckbox = exports.Label = exports.ButtonContainer = exports.ButtonCheckboxContainer = exports.ButtonCheckbox = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst ButtonContainer = styled_components_1.default.div `\n color: ${(props) => props.$isActive && !props.$isColorStatic ? colors_1.blue : colors_1.gray400};\n display: flex;\n align-items: center;\n gap: 1rem;\n`;\nexports.ButtonContainer = ButtonContainer;\nconst Label = styled_components_1.default.span `\n display: inline-block;\n align-items: center;\n\n &::first-letter {\n text-transform: capitalize;\n }\n`;\nexports.Label = Label;\nconst ButtonCheckboxContainer = styled_components_1.default.label `\n position: relative;\n display: inline-block;\n width: 18px;\n height: 18px;\n`;\nexports.ButtonCheckboxContainer = ButtonCheckboxContainer;\nconst ButtonCheckbox = styled_components_1.default.input `\n opacity: 0;\n width: 18px;\n height: 18px;\n position: absolute;\n z-index: 2;\n cursor: pointer;\n\n &:checked + span {\n background-color: ${colors_1.white};\n border-color: ${colors_1.blue};\n }\n\n &:checked + span:after {\n opacity: 1;\n }\n`;\nexports.ButtonCheckbox = ButtonCheckbox;\nconst RoundCheckbox = styled_components_1.default.span `\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${colors_1.gray100};\n transition: 0.4s;\n border-radius: 50%;\n border: 1px solid ${colors_1.gray200};\n min-width: 18px;\n\n &:after {\n border: 2px solid ${colors_1.blue};\n border-top: none;\n border-right: none;\n content: \"\";\n height: 6px;\n left: 3px;\n opacity: 0;\n position: absolute;\n top: 4px;\n transform: rotate(-45deg);\n width: 12px;\n }\n`;\nexports.RoundCheckbox = RoundCheckbox;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CheckboxButton = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./CheckboxButton.style\"));\nconst CheckboxButton = ({ label, isChecked, onChange, staticColor = false, }) => {\n return (react_1.default.createElement(S.ButtonContainer, { \"$isActive\": isChecked, \"$isColorStatic\": staticColor },\n react_1.default.createElement(S.Label, null, label),\n react_1.default.createElement(S.ButtonCheckboxContainer, null,\n react_1.default.createElement(S.ButtonCheckbox, { type: \"checkbox\", checked: isChecked, onChange: () => onChange(!isChecked) }),\n react_1.default.createElement(S.RoundCheckbox, null))));\n};\nexports.CheckboxButton = CheckboxButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SpinnerWrapper = exports.SpinnerSvg = exports.Logo = exports.Loader = exports.Container = void 0;\nconst styled_components_1 = __importStar(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst Container = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100dvh;\n width: 100%;\n`;\nexports.Container = Container;\nconst fillAnimation = (0, styled_components_1.keyframes) `\n 0% {\n fill: ${colors_1.theme};\n }\n 50% {\n fill: transparent;\n }\n 100% {\n fill: ${colors_1.theme};\n }\n`;\nconst Loader = styled_components_1.default.div `\n height: fit-content;\n width: ${(props) => props.width};\n padding: 0px;\n display: flex;\n`;\nexports.Loader = Loader;\nconst Logo = styled_components_1.default.svg `\n width: 100%;\n height: 100%;\n\n path {\n fill: ${colors_1.theme};\n animation: ${fillAnimation} 2s infinite alternate;\n }\n`;\nexports.Logo = Logo;\nconst SpinnerWrapper = styled_components_1.default.div `\n position: absolute;\n right: 1rem;\n display: inline-block;\n width: 2rem;\n height: 2rem;\n`;\nexports.SpinnerWrapper = SpinnerWrapper;\nconst SpinnerSvg = styled_components_1.default.svg `\n animation: spin 1s linear infinite;\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\nexports.SpinnerSvg = SpinnerSvg;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Loader = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./Loader.style\"));\nconst Loader = ({ width = \"50px\" }) => (react_1.default.createElement(S.Container, null,\n react_1.default.createElement(S.Loader, { width: width },\n react_1.default.createElement(S.Logo, { viewBox: \"0 0 19 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n react_1.default.createElement(\"path\", { d: \"M15.5132 20.0739H10.8951L9.88775 23.1112H7.4082L11.8094 10.5349H14.6144L19.0001 23.1112H16.5205L15.5132 20.0739ZM14.8778 18.1123L13.2816 13.2558H13.1421L11.5459 18.1123H14.8778Z\" }),\n react_1.default.createElement(\"path\", { d: \"M11.8398 0V1.36045C6.04389 1.36045 1.31726 6.1853 1.31726 12.1017H0C0 5.42598 5.31552 0 11.8398 0Z\" }),\n react_1.default.createElement(\"path\", { d: \"M11.8403 2.73682V4.08145C7.50112 4.08145 3.98327 7.68822 3.98327 12.1018H2.66602C2.66602 6.9289 6.78825 2.73682 11.8403 2.73682Z\" }),\n react_1.default.createElement(\"path\", { d: \"M11.8393 5.63159V6.99204C9.06532 6.99204 6.81823 9.28582 6.81823 12.1175H5.50098C5.50098 8.5265 8.35245 5.63159 11.8393 5.63159Z\" })))));\nexports.Loader = Loader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Spinner = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst S = __importStar(require(\"./Loader.style\"));\nconst Spinner = () => (react_1.default.createElement(S.SpinnerWrapper, null,\n react_1.default.createElement(S.SpinnerSvg, { viewBox: \"0 0 50 50\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n react_1.default.createElement(\"circle\", { cx: \"25\", cy: \"25\", r: \"20\", stroke: colors_1.gray200, strokeWidth: \"5\", strokeLinecap: \"round\", strokeDasharray: \"80 30\" }))));\nexports.Spinner = Spinner;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RealtimeMapUpdatesButtonContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst RealtimeMapUpdatesButtonContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n height: 2.4rem;\n position: relative;\n background-color: ${colors_1.white};\n box-shadow: 2px 2px 4px 0px ${colors_1.gray900};\n border-radius: 0.5rem;\n padding: 0 0.9rem;\n\n @media ${media_1.media.smallDesktop} {\n font-size: 1.4rem;\n height: 4.2rem;\n padding: 0 1.6rem;\n border-radius: 1rem;\n }\n`;\nexports.RealtimeMapUpdatesButtonContainer = RealtimeMapUpdatesButtonContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RealtimeMapUpdatesButton = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_redux_1 = require(\"react-redux\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mobileSessionsSlice_1 = require(\"../../../store/mobileSessionsSlice\");\nconst realtimeMapUpdatesSlice_1 = require(\"../../../store/realtimeMapUpdatesSlice\");\nconst media_1 = require(\"../../../utils/media\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst CheckboxButton_1 = require(\"../CheckboxButton/CheckboxButton\");\nconst Toggle_1 = require(\"../Toggle/Toggle\");\nconst S = __importStar(require(\"./RealtimeMapUpdatesButton.style\"));\nconst RealtimeMapUpdatesButton = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const isMobile = (0, useScreenSizeDetection_1.default)(media_1.screenSizes.mobile);\n const dispatch = (0, hooks_1.useAppDispatch)();\n const realtimeMapUpdates = (0, react_redux_1.useSelector)((state) => state.realtimeMapUpdates.realtimeMapUpdates);\n (0, react_1.useEffect)(() => {\n realtimeMapUpdates && dispatch((0, mobileSessionsSlice_1.clearMobileSessions)());\n }, [realtimeMapUpdates, dispatch]);\n const handleRealtimeMapUpdatesChange = (isChecked) => {\n dispatch((0, realtimeMapUpdatesSlice_1.setRealtimeMapUpdates)(isChecked));\n };\n return (react_1.default.createElement(S.RealtimeMapUpdatesButtonContainer, null, isMobile ? (react_1.default.createElement(Toggle_1.Toggle, { labelLeft: t(\"navbar.realtimeMapUpdates\"), isChecked: realtimeMapUpdates, onChange: handleRealtimeMapUpdatesChange, variant: \"toggle\" })) : (react_1.default.createElement(CheckboxButton_1.CheckboxButton, { label: t(\"navbar.realtimeMapUpdates\"), isChecked: realtimeMapUpdates, onChange: handleRealtimeMapUpdatesChange, staticColor: true }))));\n};\nexports.RealtimeMapUpdatesButton = RealtimeMapUpdatesButton;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RefreshButton = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Button_1 = require(\"../Button/Button\");\nconst RefreshButton = (0, styled_components_1.default)(Button_1.Button) `\n border-radius: 5px;\n border: none;\n color: ${colors_1.white};\n background-color: ${colors_1.blue};\n font-size: 1.4rem;\n padding: 0 1rem;\n height: 2.4rem;\n\n @media ${media_1.media.smallDesktop} {\n border-radius: 10px;\n height: 4.2rem;\n }\n\n @media ${media_1.media.largeDesktop} {\n padding: 0 5rem;\n }\n`;\nexports.RefreshButton = RefreshButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RefreshMapButton = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst fixedSessionsSlice_1 = require(\"../../../store/fixedSessionsSlice\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst mobileSessionsSlice_1 = require(\"../../../store/mobileSessionsSlice\");\nconst S = __importStar(require(\"./RefreshMapButton.style\"));\nconst RefreshMapButton = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const handleClick = () => {\n dispatch((0, mobileSessionsSlice_1.clearMobileSessions)());\n dispatch((0, fixedSessionsSlice_1.cleanSessions)());\n dispatch((0, mapSlice_1.setFetchingData)(true));\n };\n return (react_1.default.createElement(S.RefreshButton, { onClick: handleClick }, t(\"navbar.refreshMap\")));\n};\nexports.RefreshMapButton = RefreshMapButton;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScrollButton = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst ScrollButton = styled_components_1.default.button `\n display: flex;\n align-items: center;\n border: none;\n justify-content: center;\n width: 32px;\n height: 40px;\n background-color: ${colors_1.gray100};\n\n @media ${media_1.media.desktop} {\n width: 40px;\n border-radius: 50%;\n border: 1px solid ${colors_1.gray200};\n background-color: white;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n`;\nexports.ScrollButton = ScrollButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScrollButton = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./ScrollButton.style\"));\nconst ScrollButton = (_a) => {\n var { children } = _a, props = __rest(_a, [\"children\"]);\n return (react_1.default.createElement(S.ScrollButton, Object.assign({}, props), children));\n};\nexports.ScrollButton = ScrollButton;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Title = exports.StyledSectionButton = exports.Image = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst Typography_1 = require(\"../Typography\");\nconst StyledSectionButton = styled_components_1.default.button `\n background-color: ${(props) => (props.$isActive ? colors_1.blue : colors_1.white)};\n border-radius: 1rem;\n box-shadow: 0 0.4rem 0.8rem rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: 1.6rem;\n height: 4.2rem;\n border: none;\n\n ${(props) => props.$isNotTimelapseButton &&\n `opacity: 0.7;\n pointer-events: none;`}\n\n ${(props) => props.$isDisabled &&\n `opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;`}\n\n @media (min-width: 390px) {\n padding: 0;\n }\n`;\nexports.StyledSectionButton = StyledSectionButton;\nconst Title = (0, styled_components_1.default)(Typography_1.H6) `\n text-transform: capitalize;\n ${(props) => props.$isActive && `color: ${colors_1.white};`}\n`;\nexports.Title = Title;\nconst Image = styled_components_1.default.img `\n width: 1.2rem;\n height: 1.2rem;\n margin-bottom: 0.25rem;\n ${(props) => props.$isActive &&\n `filter: invert(100%) sepia(37%) saturate(2%) hue-rotate(273deg) brightness(109%) contrast(101%);;`}\n`;\nexports.Image = Image;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SectionButton = void 0;\nconst React = __importStar(require(\"react\"));\nconst S = __importStar(require(\"./SectionButton.style\"));\nconst SectionButton = ({ image, title, alt, onClick, isNotTimelapseButton, isActive, isDisabled, }) => {\n return (React.createElement(S.StyledSectionButton, { onClick: onClick, \"$isNotTimelapseButton\": isNotTimelapseButton, \"$isActive\": isActive, \"$isDisabled\": isDisabled, className: \"active-overlay\" },\n React.createElement(S.Image, { src: image, alt: alt, \"$isActive\": isActive }),\n React.createElement(S.Title, { \"$isActive\": isActive }, title)));\n};\nexports.SectionButton = SectionButton;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToggleLabel = exports.ToggleInput = exports.ToggleContainer = exports.Slider = exports.Label = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst ToggleLabel = styled_components_1.default.label `\n position: relative;\n display: inline-block;\n width: 3.6rem;\n height: 1.8rem;\n\n @media ${media_1.media.mobile} {\n width: ${(props) => (props.$biggerMobileVersion ? \"3.6rem\" : \"2.5rem\")};\n height: ${(props) => (props.$biggerMobileVersion ? \"1.8rem\" : \"1.3rem\")};\n }\n`;\nexports.ToggleLabel = ToggleLabel;\nconst ToggleInput = styled_components_1.default.input `\n opacity: 0;\n width: 3.6rem;\n height: 1.8rem;\n z-index: 2;\n position: relative;\n\n &:checked + span:before {\n transform: translateX(1.8rem);\n\n @media ${media_1.media.mobile} {\n transform: ${(props) => props.$biggerMobileVersion\n ? \"translateX(1.8rem)\"\n : \"translateX(1.2rem)\"};\n }\n }\n\n @media ${media_1.media.mobile} {\n width: ${(props) => (props.$biggerMobileVersion ? \"3.6rem\" : \"2.5rem\")};\n height: ${(props) => (props.$biggerMobileVersion ? \"1.8rem\" : \"1.3rem\")};\n }\n`;\nexports.ToggleInput = ToggleInput;\nconst Slider = styled_components_1.default.span `\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${(props) => props.$variant === \"toggle\" && !props.$isActive ? colors_1.gray600 : colors_1.blue};\n transition: 0.4s;\n border-radius: 30px;\n z-index: 1;\n\n &:before {\n position: absolute;\n content: \"\";\n height: 1.4rem;\n width: 1.4rem;\n left: 0.2rem;\n bottom: 0.2rem;\n background-color: ${colors_1.white};\n transition: 0.4s;\n border-radius: 50%;\n\n @media ${media_1.media.mobile} {\n height: ${(props) => (props.$biggerMobileVersion ? \"1.4rem\" : \"0.9rem\")};\n width: ${(props) => (props.$biggerMobileVersion ? \"1.4rem\" : \"0.9rem\")};\n left: 0.18rem;\n bottom: 0.18rem;\n }\n }\n`;\nexports.Slider = Slider;\nconst Label = styled_components_1.default.span `\n color: ${(props) => (props.$isActive ? colors_1.blue : colors_1.gray400)};\n display: inline-block;\n align-items: center;\n gap: 1rem;\n\n &::first-letter {\n text-transform: capitalize;\n }\n`;\nexports.Label = Label;\nconst ToggleContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n gap: 1rem;\n z-index: 0;\n`;\nexports.ToggleContainer = ToggleContainer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Toggle = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst Toggle_style_1 = require(\"./Toggle.style\");\nconst Toggle = ({ isChecked, onChange, noLabel = false, labelLeft, labelRight, biggerMobileVersion = false, variant, }) => {\n const handleClick = () => {\n onChange(!isChecked);\n };\n return (react_1.default.createElement(Toggle_style_1.ToggleContainer, { onClick: handleClick },\n !noLabel && (react_1.default.createElement(Toggle_style_1.Label, { \"$isActive\": !isChecked && variant === \"switch\" }, labelLeft)),\n react_1.default.createElement(Toggle_style_1.ToggleLabel, { \"$biggerMobileVersion\": biggerMobileVersion },\n react_1.default.createElement(Toggle_style_1.ToggleInput, { type: \"checkbox\", checked: isChecked, onChange: handleClick, \"$biggerMobileVersion\": biggerMobileVersion }),\n react_1.default.createElement(Toggle_style_1.Slider, { \"$isActive\": isChecked, \"$variant\": variant, \"$biggerMobileVersion\": biggerMobileVersion })),\n variant === \"switch\" && labelRight && (react_1.default.createElement(Toggle_style_1.Label, { \"$isActive\": isChecked }, labelRight))));\n};\nexports.Toggle = Toggle;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.H6 = exports.H5 = exports.H4 = exports.H3 = exports.H2 = exports.H1 = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst H1 = styled_components_1.default.h1 `\n font-weight: 600;\n font-size: 28px;\n`;\nexports.H1 = H1;\nconst H2 = styled_components_1.default.h2 `\n font-weight: 600;\n font-size: 24px;\n text-transform: capitalize;\n`;\nexports.H2 = H2;\nconst H3 = styled_components_1.default.h3 `\n font-weight: ${(p) => (p.bold ? \"600\" : \"400\")};\n font-size: 18px;\n`;\nexports.H3 = H3;\nconst H4 = styled_components_1.default.h4 `\n font-weight: ${(p) => (p.$bold ? \"700\" : \"400\")};\n font-size: 14px;\n letter-spacing: 0.14px;\n`;\nexports.H4 = H4;\nconst H5 = styled_components_1.default.h5 `\n font-weight: ${(p) => (p.bold ? \"600\" : \"400\")};\n font-size: 12px;\n`;\nexports.H5 = H5;\nconst H6 = styled_components_1.default.h6 `\n font-weight: ${(p) => (p.bold ? \"500\" : \"400\")};\n font-size: 10px;\n text-transform: ${(p) => (p.uppercase ? \"uppercase\" : \"none\")};\n letter-spacing: ${(p) => (p.uppercase ? \"0.1px\" : \"normal\")};\n`;\nexports.H6 = H6;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Typography.style\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThreeMonths = exports.MobileSwipeContainer = exports.DesktopSwipeRightContainer = exports.DesktopSwipeLeftContainer = exports.DateField = exports.CalendarContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Typography_1 = require(\"../../atoms/Typography\");\nconst ThreeMonths = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n gap: 2rem;\n flex-wrap: wrap;\n\n @media (${media_1.media.desktop}) {\n flex-wrap: nowrap;\n }\n`;\nexports.ThreeMonths = ThreeMonths;\nconst MobileSwipeContainer = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: row;\n padding: 1.5rem 0;\n`;\nexports.MobileSwipeContainer = MobileSwipeContainer;\nconst DesktopSwipeLeftContainer = styled_components_1.default.div `\n position: absolute;\n display: flex;\n left: 3rem;\n top: 25rem;\n transform: translateY(-50%);\n`;\nexports.DesktopSwipeLeftContainer = DesktopSwipeLeftContainer;\nconst DesktopSwipeRightContainer = styled_components_1.default.div `\n position: absolute;\n display: flex;\n right: 3rem;\n top: 25rem;\n transform: translateY(-50%);\n`;\nexports.DesktopSwipeRightContainer = DesktopSwipeRightContainer;\nconst DateField = (0, styled_components_1.default)(Typography_1.H3) `\n display: flex;\n align-items: center;\n\n span {\n margin: 0 1.5rem;\n }\n`;\nexports.DateField = DateField;\nconst CalendarContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n padding: 1.5rem;\n background: ${colors_1.white};\n position: relative;\n\n @media (${media_1.media.desktop}) {\n padding: 3.5rem 10rem;\n }\n`;\nexports.CalendarContainer = CalendarContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Calendar = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst Month_1 = require(\"./atoms/Month\");\nconst ScrollCalendarButton_1 = require(\"./atoms/ScrollCalendarButton/ScrollCalendarButton\");\nconst S = __importStar(require(\"./Calendar.style\"));\nconst CalendarHook_1 = __importDefault(require(\"./CalendarHook\"));\nconst HeaderToggle_1 = __importDefault(require(\"./HeaderToggle/HeaderToggle\"));\nconst Calendar = ({ streamId, minCalendarDate, maxCalendarDate, onDayClick, selectedTimestamp, isLoading, }) => {\n const { threeMonthsData, dateReference, isLeftButtonDisabled, isRightButtonDisabled, handleLeftClick, handleRightClick, } = (0, CalendarHook_1.default)({ streamId, minCalendarDate, maxCalendarDate });\n const { t } = (0, react_i18next_1.useTranslation)();\n const isMobileView = (0, useScreenSizeDetection_1.default)();\n const sortedThreeMonthsData = (0, react_1.useMemo)(() => (isMobileView ? [...threeMonthsData].reverse() : threeMonthsData), [threeMonthsData, isMobileView]);\n // Use timestamp (number) instead of Date.\n const handleDayClick = (0, react_1.useCallback)((timestamp) => {\n if (timestamp === undefined || timestamp === null)\n return;\n if (selectedTimestamp !== null && timestamp === selectedTimestamp) {\n onDayClick(null);\n }\n else {\n onDayClick(timestamp);\n }\n }, [selectedTimestamp, onDayClick]);\n const MobileSwipeComponent = () => (react_1.default.createElement(S.MobileSwipeContainer, null,\n react_1.default.createElement(ScrollCalendarButton_1.ScrollCalendarButton, { disabled: isLeftButtonDisabled, direction: -1 /* MovesKeys.MOVE_BACKWARD */, handleClick: handleLeftClick }),\n react_1.default.createElement(S.DateField, null,\n react_1.default.createElement(\"span\", null, dateReference.firstVisibleDataPointDate),\n react_1.default.createElement(\"span\", null, \"-\"),\n react_1.default.createElement(\"span\", null, dateReference.lastVisibleDataPointDate)),\n react_1.default.createElement(ScrollCalendarButton_1.ScrollCalendarButton, { disabled: isRightButtonDisabled, direction: 1 /* MovesKeys.MOVE_FORWARD */, handleClick: handleRightClick })));\n const DesktopSwipeComponent = () => (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.DesktopSwipeLeftContainer, null,\n react_1.default.createElement(ScrollCalendarButton_1.ScrollCalendarButton, { disabled: isLeftButtonDisabled, direction: -1 /* MovesKeys.MOVE_BACKWARD */, handleClick: handleLeftClick })),\n react_1.default.createElement(S.DesktopSwipeRightContainer, null,\n react_1.default.createElement(ScrollCalendarButton_1.ScrollCalendarButton, { disabled: isRightButtonDisabled, direction: 1 /* MovesKeys.MOVE_FORWARD */, handleClick: handleRightClick }))));\n const CalendarContent = () => (react_1.default.createElement(react_1.default.Fragment, null,\n isMobileView && react_1.default.createElement(MobileSwipeComponent, null),\n react_1.default.createElement(S.ThreeMonths, null,\n !isMobileView && react_1.default.createElement(DesktopSwipeComponent, null),\n sortedThreeMonthsData.map((month) => (react_1.default.createElement(Month_1.Month, Object.assign({ key: month.monthName }, month, { onDayClick: handleDayClick, selectedTimestamp: selectedTimestamp })))))));\n return (sortedThreeMonthsData && (react_1.default.createElement(S.CalendarContainer, null,\n react_1.default.createElement(HeaderToggle_1.default, { titleText: t(\"calendarHeader.calendarTitle\"), startDate: dateReference.firstVisibleDataPointDate, endDate: dateReference.lastVisibleDataPointDate, componentToToggle: react_1.default.createElement(CalendarContent, null) }))));\n};\nexports.Calendar = Calendar;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst moment_1 = __importDefault(require(\"moment\"));\nconst react_1 = require(\"react\");\nconst react_redux_1 = require(\"react-redux\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst movingCalendarStreamSlice_1 = require(\"../../../store/movingCalendarStreamSlice\");\nconst movingStreamSelectors_1 = require(\"../../../store/movingStreamSelectors\");\nconst dateFormat_1 = require(\"../../../types/dateFormat\");\nconst useCalendarHook = ({ streamId, minCalendarDate, maxCalendarDate, }) => {\n const SEEN_MONTHS_NUMBER = 3;\n const dispatch = (0, hooks_1.useAppDispatch)();\n const [visibleDateRange, setVisibleDateRange] = (0, react_1.useState)({\n startDate: \"\",\n endDate: \"\",\n });\n const threeMonthsData = (0, hooks_1.useAppSelector)((state) => (0, movingStreamSelectors_1.selectCalendarData)(state, visibleDateRange.startDate, visibleDateRange.endDate));\n const movingCalendarData = (0, react_redux_1.useSelector)(movingCalendarStreamSlice_1.movingData);\n const [isRightButtonDisabled, setIsRightButtonDisabled] = (0, react_1.useState)(false);\n const [isLeftButtonDisabled, setIsLeftButtonDisabled] = (0, react_1.useState)(false);\n const [dateReference, setDateReference] = (0, react_1.useState)({\n currentStartDate: \"\",\n currentEndDate: \"\",\n firstVisibleDataPointDate: \"\",\n lastVisibleDataPointDate: \"\",\n direction: undefined,\n triggerDirectionUpdate: 0,\n });\n const updateMoveValue = (direction) => {\n setDateReference((prevState) => (Object.assign(Object.assign({}, prevState), { direction, triggerDirectionUpdate: prevState.triggerDirectionUpdate + 1 })));\n };\n const handleBackwardMovement = (dateMoment) => {\n setIsRightButtonDisabled(false);\n const newEndMoment = dateMoment.subtract(1, \"months\").endOf(\"month\");\n return newEndMoment;\n };\n const handleForwardMovement = (dateMoment) => {\n setIsLeftButtonDisabled(false);\n let newEndMoment = dateMoment.add(1, \"months\").endOf(\"month\");\n const maxEndDateMoment = (0, moment_1.default)(maxCalendarDate, dateFormat_1.DateFormat.default);\n if (newEndMoment.isAfter(maxEndDateMoment)) {\n newEndMoment = maxEndDateMoment;\n setIsRightButtonDisabled(true);\n }\n return newEndMoment;\n };\n const getFormattedDateRange = () => {\n const lastElementIdx = movingCalendarData.data.length - 1;\n const maxEndDate = movingCalendarData.data[lastElementIdx].date;\n const processedMaxEndDate = (0, moment_1.default)(maxEndDate, dateFormat_1.DateFormat.default).format(dateFormat_1.DateFormat.us);\n const firstElementIdx = 0;\n const firstDataPoint = movingCalendarData.data[firstElementIdx].date;\n const processedFirstDataPoint = (0, moment_1.default)(firstDataPoint, dateFormat_1.DateFormat.default).format(dateFormat_1.DateFormat.us);\n return {\n firstDate: processedFirstDataPoint,\n lastDate: processedMaxEndDate,\n lastDateNoFormat: maxEndDate,\n };\n };\n (0, react_1.useEffect)(() => {\n if (movingCalendarData.data.length > 0) {\n const sortedData = [...movingCalendarData.data].sort((a, b) => (0, moment_1.default)(a.date).valueOf() - (0, moment_1.default)(b.date).valueOf());\n const firstDate = (0, moment_1.default)(sortedData[0].date).format(dateFormat_1.DateFormat.us);\n const lastDate = (0, moment_1.default)(sortedData[sortedData.length - 1].date).format(dateFormat_1.DateFormat.us);\n // Initialize with the last 3 months of data\n const endMoment = (0, moment_1.default)(lastDate, dateFormat_1.DateFormat.us);\n const newStartDate = endMoment\n .clone()\n .date(1)\n .subtract(SEEN_MONTHS_NUMBER - 1, \"months\")\n .format(dateFormat_1.DateFormat.us);\n const newEndDate = endMoment.format(dateFormat_1.DateFormat.us);\n setVisibleDateRange({\n startDate: newStartDate,\n endDate: newEndDate,\n });\n // Disable right arrow if we're at the latest data\n const maxEndDateMoment = (0, moment_1.default)(maxCalendarDate, dateFormat_1.DateFormat.default);\n setIsRightButtonDisabled(endMoment.isSameOrAfter(maxEndDateMoment, \"day\"));\n setDateReference((prevState) => (Object.assign(Object.assign({}, prevState), { currentStartDate: newStartDate, currentEndDate: newEndDate, firstVisibleDataPointDate: newStartDate, lastVisibleDataPointDate: newEndDate })));\n }\n }, [movingCalendarData, maxCalendarDate]);\n (0, react_1.useEffect)(() => {\n if (!dateReference.currentEndDate || !dateReference.direction)\n return;\n const dateMoment = (0, moment_1.default)(dateReference.currentEndDate, dateFormat_1.DateFormat.us);\n let newEndMoment;\n switch (dateReference.direction) {\n case -1 /* MovesKeys.MOVE_BACKWARD */:\n newEndMoment = handleBackwardMovement(dateMoment);\n break;\n case 1 /* MovesKeys.MOVE_FORWARD */:\n newEndMoment = handleForwardMovement(dateMoment);\n break;\n default:\n console.error(\"Invalid direction value:\", dateReference.direction);\n return;\n }\n const newEndDate = newEndMoment.format(dateFormat_1.DateFormat.us);\n const newStartDate = newEndMoment\n .clone()\n .date(1)\n .subtract(SEEN_MONTHS_NUMBER - 1, \"months\")\n .format(dateFormat_1.DateFormat.us);\n const newStartDateMoment = (0, moment_1.default)(newStartDate, dateFormat_1.DateFormat.us).date(1);\n const minCalendarMoment = (0, moment_1.default)(minCalendarDate, dateFormat_1.DateFormat.default).date(1);\n if (newStartDateMoment.isBefore(minCalendarMoment)) {\n setIsLeftButtonDisabled(true);\n return;\n }\n setVisibleDateRange({\n startDate: newStartDate,\n endDate: newEndDate,\n });\n setDateReference((prevState) => (Object.assign(Object.assign({}, prevState), { currentStartDate: newStartDate, currentEndDate: newEndDate, firstVisibleDataPointDate: newStartDate, lastVisibleDataPointDate: newEndDate })));\n }, [dateReference.triggerDirectionUpdate]);\n return {\n threeMonthsData,\n dateReference,\n isLeftButtonDisabled,\n isRightButtonDisabled,\n handleLeftClick: () => updateMoveValue(-1 /* MovesKeys.MOVE_BACKWARD */),\n handleRightClick: () => updateMoveValue(1 /* MovesKeys.MOVE_FORWARD */),\n };\n};\nexports.default = useCalendarHook;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmptyCalendar = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst movingStreamSelectors_1 = require(\"../../../store/movingStreamSelectors\");\nconst Month_1 = require(\"./atoms/Month\");\nconst S = __importStar(require(\"./Calendar.style\"));\nconst HeaderToggle_1 = __importDefault(require(\"./HeaderToggle/HeaderToggle\"));\nconst EmptyCalendar = ({ onDayClick }) => {\n const threeMonthsData = (0, hooks_1.useAppSelector)(movingStreamSelectors_1.selectEmptyCalendarData);\n const { t } = (0, react_i18next_1.useTranslation)();\n const [selectedTimestamp, setSelectedTimestamp] = (0, react_1.useState)(null);\n const handleDayClick = (0, react_1.useCallback)((timestamp) => {\n setSelectedTimestamp(timestamp);\n onDayClick === null || onDayClick === void 0 ? void 0 : onDayClick(timestamp);\n }, [onDayClick]);\n const monthComponents = (0, react_1.useMemo)(() => {\n if (!threeMonthsData)\n return null;\n return threeMonthsData.map((month) => (react_1.default.createElement(Month_1.Month, Object.assign({ key: month.monthName }, month, { onDayClick: handleDayClick, selectedTimestamp: selectedTimestamp }))));\n }, [threeMonthsData, handleDayClick, selectedTimestamp]);\n if (!threeMonthsData)\n return null;\n return (react_1.default.createElement(S.CalendarContainer, null,\n react_1.default.createElement(HeaderToggle_1.default, { titleText: t(\"calendarHeader.calendarTitle\"), componentToToggle: react_1.default.createElement(S.ThreeMonths, null, monthComponents) })));\n};\nexports.EmptyCalendar = EmptyCalendar;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RotatedIcon = exports.Heading = exports.DateField = exports.Container = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors = __importStar(require(\"../../../../assets/styles/colors\"));\nconst media_1 = require(\"../../../../utils/media\");\nconst Typography_1 = require(\"../../../atoms/Typography\");\nconst Container = styled_components_1.default.div `\n display: flex;\n align-items: center;\n padding-bottom: ${({ $isCalendarPage, $rotated }) => $isCalendarPage && !$rotated ? \"10rem\" : \"1.25rem\"};\n\n @media ${media_1.media.smallDesktop} {\n justify-content: none;\n }\n`;\nexports.Container = Container;\nconst RotatedIcon = styled_components_1.default.img `\n margin-right: 10px;\n transform: ${({ $rotated }) => ($rotated ? \"rotate(180deg)\" : \"none\")};\n cursor: pointer;\n`;\nexports.RotatedIcon = RotatedIcon;\nconst Heading = (0, styled_components_1.default)(Typography_1.H1) `\n font-weight: 500;\n font-size: 22px;\n cursor: pointer;\n\n @media ${media_1.media.desktop} {\n display: flex;\n justify-content: space-between;\n width: 100%;\n cursor: auto;\n font-size: 28px;\n }\n`;\nexports.Heading = Heading;\nconst DateField = styled_components_1.default.div `\n display: none;\n\n @media ${media_1.media.desktop} {\n display: flex;\n align-items: center;\n font-size: 16px;\n color: ${colors.gray300};\n font-weight: 500;\n line-height: 1.2;\n\n span {\n margin: 0 0.6rem;\n }\n }\n`;\nexports.DateField = DateField;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst headerArrowIcon_svg_1 = __importDefault(require(\"../../../../assets/icons/headerArrowIcon.svg\"));\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../utils/useScreenSizeDetection\"));\nconst S = __importStar(require(\"./HeaderToggle.style\"));\nconst HeaderToggle = ({ titleText, startDate, endDate, componentToToggle, isCalendarPage, }) => {\n const [isVisible, setIsVisible] = (0, react_1.useState)(true);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const toggleVisibility = () => {\n setIsVisible(!isVisible);\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n isMobile && (react_1.default.createElement(S.Container, { \"$isCalendarPage\": isCalendarPage, \"$rotated\": !isVisible },\n react_1.default.createElement(S.RotatedIcon, { src: headerArrowIcon_svg_1.default, alt: t(\"headerToggle.arrowIcon\"), \"$rotated\": !isVisible, onClick: toggleVisibility }),\n react_1.default.createElement(S.Heading, { onClick: toggleVisibility }, titleText))),\n !isMobile && (react_1.default.createElement(S.Container, null,\n react_1.default.createElement(S.Heading, null,\n titleText,\n startDate && endDate && (react_1.default.createElement(S.DateField, null,\n react_1.default.createElement(\"span\", null, startDate),\n react_1.default.createElement(\"span\", null, \"-\"),\n react_1.default.createElement(\"span\", null, endDate)))))),\n isVisible && componentToToggle));\n};\nexports.default = HeaderToggle;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueContainer = exports.Value = exports.DayNumber = exports.Day = exports.CalendarCell = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../../utils/media\");\nconst CalendarCell = styled_components_1.default.div `\n flex: 1 0 auto;\n padding: 4px;\n aspect-ratio: 1;\n position: relative;\n height: calc(100% - 9px);\n width: calc(100% / 7 - 9px);\n max-width: calc(100% / 7 - 9px);\n min-width: 0;\n`;\nexports.CalendarCell = CalendarCell;\nconst Day = (0, styled_components_1.default)(CalendarCell) `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n text-align: center;\n margin: 0 0 0.6rem 0;\n background-color: ${(props) => props.$color};\n width: 100%;\n cursor: ${(props) => (props.$hasValue ? \"pointer\" : \"default\")};\n transition: all 0.2s ease-in-out;\n border: 2px solid transparent;\n\n ${(props) => props.$isSelected &&\n `\n border: 1px solid ${props.$borderColor || colors_1.gray400};\n box-shadow: 0 0 0 1px ${props.$borderColor || colors_1.gray400};\n `}\n ${(props) => props.$hasValue &&\n `\n &:hover {\n transform: scale(1.05);\n border: 2px solid ${props.$borderColor};\n }\n `}\n\n @media (${media_1.media.smallDesktop}) {\n border-radius: 5px;\n }\n`;\nexports.Day = Day;\nconst DayNumber = styled_components_1.default.span `\n font-size: 12px;\n text-align: end;\n display: ${(props) => (props.$isVisible ? \"block\" : \"none\")};\n color: ${(props) => (props.$isGrayedOut ? colors_1.gray100 : colors_1.gray400)};\n opacity: 50%;\n\n @media (${media_1.media.smallDesktop}) {\n font-size: 18px;\n }\n @media (${media_1.media.desktop}) {\n font-size: 10px;\n }\n`;\nexports.DayNumber = DayNumber;\nconst ValueContainer = styled_components_1.default.div `\n font-size: 3.8vw;\n font-weight: 600;\n text-align: start;\n display: ${(props) => (props.$isVisible ? \"block\" : \"none\")};\n color: ${colors_1.gray400};\n padding-top: 11%;\n position: relative;\n height: 100%;\n display: flex;\n align-items: flex-end;\n overflow: hidden;\n\n @media (${media_1.media.smallDesktop}) {\n font-size: 3.2vw;\n }\n @media (${media_1.media.desktop}) {\n font-size: 0.9vw;\n }\n`;\nexports.ValueContainer = ValueContainer;\nconst Value = styled_components_1.default.div `\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexports.Value = Value;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Day = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst thresholdColors_1 = require(\"../../../../../utils/thresholdColors\");\nconst S = __importStar(require(\"./Day.style\"));\nconst Day = ({ dayNumber, value, onClick, isSelected, min, low, middle, high, max, }) => {\n return (react_1.default.createElement(S.Day, { \"$isSelected\": isSelected, onClick: value !== null ? onClick : undefined, \"$color\": (0, thresholdColors_1.getColorForValue)({ min, low, middle, high, max }, value), \"$borderColor\": (0, thresholdColors_1.getColorForValue)({ min, low, middle, high, max }, value, true), \"$hasValue\": value !== null },\n react_1.default.createElement(S.DayNumber, { \"$isVisible\": true }, dayNumber),\n react_1.default.createElement(S.ValueContainer, { \"$isVisible\": true },\n react_1.default.createElement(S.Value, null, value !== null ? value : \"\"))));\n};\nexports.Day = Day;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Day\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DayNamesHeaderContainer = exports.DayName = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst media_1 = require(\"../../../../../utils/media\");\nconst Typography_1 = require(\"../../../../atoms/Typography\");\nconst DayNamesHeaderContainer = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n`;\nexports.DayNamesHeaderContainer = DayNamesHeaderContainer;\nconst DayName = (0, styled_components_1.default)(Typography_1.H4) `\n height: auto;\n width: 100%;\n text-align: center;\n text-transform: uppercase;\n font-size: 10px;\n margin-bottom: 15px;\n @media (${media_1.media.smallDesktop}) {\n font-size: 14px;\n }\n`;\nexports.DayName = DayName;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DayNamesHeader = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./DayNamesHeader.style\"));\nconst DayNamesHeader = ({ dayNamesHeader }) => {\n return (react_1.default.createElement(S.DayNamesHeaderContainer, null, dayNamesHeader.map((dayName) => (react_1.default.createElement(S.DayName, { key: dayName }, dayName)))));\n};\nexports.DayNamesHeader = DayNamesHeader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./DayNamesHeader\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MonthContent = exports.MonthName = exports.Month = exports.Week = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../../utils/media\");\nconst DAY_GAP = \"10px\";\nconst Week = styled_components_1.default.div `\n display: flex;\n gap: ${DAY_GAP};\n width: 100%;\n height: 100%;\n`;\nexports.Week = Week;\nconst Month = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n width: 100%;\n padding-bottom: 3rem;\n @media (${media_1.media.smallDesktop}) {\n padding-bottom: 0;\n }\n @media (${media_1.media.desktop}) {\n width: 33.33%;\n }\n`;\nexports.Month = Month;\nconst MonthName = styled_components_1.default.span `\n font-size: 16px;\n letter-spacing: 6px;\n text-transform: uppercase;\n font-weight: 500;\n color: ${colors_1.gray400};\n padding: 0.625rem;\n line-height: 100%;\n text-align: center;\n background-color: ${colors_1.gray100};\n margin-bottom: 2.5rem;\n\n @media (${media_1.media.smallDesktop}) {\n font-size: 24px;\n border-radius: 10px;\n letter-spacing: 0;\n text-transform: none;\n }\n`;\nexports.MonthName = MonthName;\nconst MonthContent = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n`;\nexports.MonthContent = MonthContent;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Month = void 0;\nconst moment_timezone_1 = __importDefault(require(\"moment-timezone\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst hooks_1 = require(\"../../../../../store/hooks\");\nconst thresholdSlice_1 = require(\"../../../../../store/thresholdSlice\");\nconst Day_1 = require(\"../Day\");\nconst DayNamesHeader_1 = require(\"../DayNamesHeader\");\nconst S = __importStar(require(\"./Month.style\"));\nconst Month = ({ monthName, dayNamesHeader, weeks, onDayClick, selectedTimestamp, }) => {\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n // Here we assume that each day object already has a date string in \"YYYY-MM-DD\" format.\n // This way we don’t rely on new Date() which uses the browser’s local timezone.\n const handleDayClick = (dateStr) => {\n if (!dateStr)\n return;\n // Parse the provided date string as UTC midnight.\n const convertedTimestamp = moment_timezone_1.default\n .utc(dateStr, \"YYYY-MM-DD\")\n .startOf(\"day\")\n .add(1, \"second\")\n .valueOf();\n onDayClick(convertedTimestamp);\n };\n return (react_1.default.createElement(S.Month, null,\n react_1.default.createElement(S.MonthName, null, monthName),\n react_1.default.createElement(S.MonthContent, null,\n react_1.default.createElement(DayNamesHeader_1.DayNamesHeader, { dayNamesHeader: dayNamesHeader }),\n weeks.map((week) => (react_1.default.createElement(S.Week, { key: week[0].date }, week.map((day) => {\n // Compute the UTC midnight timestamp for comparison.\n const dayTimestamp = moment_timezone_1.default\n .utc(day.date, \"YYYY-MM-DD\")\n .startOf(\"day\")\n .add(1, \"second\")\n .valueOf();\n return (react_1.default.createElement(Day_1.Day, Object.assign({ key: day.date }, day, thresholds, { \n // Use the day.date string directly.\n onClick: () => handleDayClick(day.date), isSelected: selectedTimestamp !== null &&\n dayTimestamp === selectedTimestamp })));\n })))))));\n};\nexports.Month = Month;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Month\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScrollCalendarButton = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst chevronLeftCircle_svg_1 = __importDefault(require(\"../../../../../assets/icons/chevronLeftCircle.svg\"));\nconst chevronRightCircle_svg_1 = __importDefault(require(\"../../../../../assets/icons/chevronRightCircle.svg\"));\nconst mobileChevronLeft_svg_1 = __importDefault(require(\"../../../../../assets/icons/mobileChevronLeft.svg\"));\nconst mobileChevronRight_svg_1 = __importDefault(require(\"../../../../../assets/icons/mobileChevronRight.svg\"));\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../../utils/useScreenSizeDetection\"));\nconst ScrollButton_1 = require(\"../../../../atoms/ScrollButton/ScrollButton\");\nconst ScrollCalendarButton = ({ direction, handleClick, disabled = false, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const icon = isMobile\n ? direction === -1 /* MovesKeys.MOVE_BACKWARD */\n ? mobileChevronLeft_svg_1.default\n : mobileChevronRight_svg_1.default\n : direction === -1 /* MovesKeys.MOVE_BACKWARD */\n ? chevronLeftCircle_svg_1.default\n : chevronRightCircle_svg_1.default;\n const altText = direction === -1 /* MovesKeys.MOVE_BACKWARD */\n ? t(\"calendarPage.backScrollButton\")\n : t(\"calendarPage.forwardScrollButton\");\n return (react_1.default.createElement(ScrollButton_1.ScrollButton, { onClick: handleClick, disabled: disabled },\n react_1.default.createElement(\"img\", { src: icon, alt: altText })));\n};\nexports.ScrollCalendarButton = ScrollCalendarButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Calendar\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Subtitle = exports.RowContainer = exports.HorizontalContainer = exports.GridContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Typography_1 = require(\"../../atoms/Typography\");\nconst HorizontalContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n gap: 10px;\n align-items: left;\n`;\nexports.HorizontalContainer = HorizontalContainer;\nconst RowContainer = styled_components_1.default.div `\n flex-direction: row;\n gap: 8px;\n\n @media ${media_1.media.desktop} {\n display: flex;\n align-items: flex-end;\n }\n`;\nexports.RowContainer = RowContainer;\nconst Subtitle = (0, styled_components_1.default)(Typography_1.H5) `\n display: inline;\n padding-right: 5px;\n\n @media ${media_1.media.desktop} {\n display: block;\n color: ${colors_1.gray300};\n text-transform: uppercase;\n width: 120px;\n font-size: 14px;\n }\n`;\nexports.Subtitle = Subtitle;\nconst GridContainer = styled_components_1.default.div `\n background: ${colors_1.gray100};\n padding: 6rem 2rem 5.5rem 2rem;\n display: grid;\n width: 100%;\n grid-gap: 10px;\n\n > :nth-child(1) {\n grid-area: valueLabel;\n }\n > :nth-child(2) {\n grid-area: headerName;\n align-self: center;\n }\n > :nth-child(3) {\n grid-area: profileSensor;\n }\n > :nth-child(4) {\n grid-area: updateOccurance;\n }\n > :nth-child(5) {\n grid-area: actionButtons;\n }\n\n grid-template-areas:\n \"valueLabel headerName\"\n \"valueLabel profileSensor\"\n \"valueLabel updateOccurance \"\n \"valueLabel actionButtons\";\n\n @media ${media_1.media.smallDesktop} {\n padding: 3.5rem 10rem;\n }\n\n @media ${media_1.media.desktop} {\n padding: 4.5rem 10rem;\n grid-template-columns: 0.2fr 1fr 1fr;\n align-items: center;\n column-gap: 70px;\n\n > :nth-child(1) {\n grid-area: valueLabel;\n }\n > :nth-child(2) {\n grid-area: headerName;\n }\n > :nth-child(3) {\n grid-area: profileSensor;\n }\n > :nth-child(4) {\n grid-area: updateOccurance;\n }\n > :nth-child(5) {\n grid-area: actionButtons;\n }\n\n grid-template-areas:\n \"valueLabel headerName profileSensor\"\n \"valueLabel headerName profileSensor\"\n \"valueLabel updateOccurance actionButtons\";\n }\n`;\nexports.GridContainer = GridContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FixedStreamStationHeader = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst react_1 = __importDefault(require(\"react\"));\nconst react_redux_1 = require(\"react-redux\");\nconst fixedStreamSelectors_1 = require(\"../../../store/fixedStreamSelectors\");\nconst dateFormat_1 = require(\"../../../types/dateFormat\");\nconst DataSource_1 = require(\"./atoms/DataSource\");\nconst StationActionButtons_1 = require(\"./atoms/StationActionButtons\");\nconst StationName_1 = require(\"./atoms/StationName\");\nconst StreamUpdate_1 = require(\"./atoms/StreamUpdate\");\nconst ValueLabel_1 = require(\"./atoms/ValueLabel\");\nconst S = __importStar(require(\"./FixedStreamStationHeader.style\"));\nconst FixedStreamStationHeader = () => {\n const { unitSymbol, title, profile, sensorName, lastUpdate, updateFrequency, lastMeasurementValue, lastMeasurementDateLabel, active, sessionId, startTime, endTime, } = (0, react_redux_1.useSelector)(fixedStreamSelectors_1.selectFixedStreamShortInfo);\n const streamEndTime = endTime !== null && endTime !== void 0 ? endTime : (0, moment_1.default)().format(dateFormat_1.DateFormat.default);\n return (react_1.default.createElement(S.GridContainer, null,\n react_1.default.createElement(ValueLabel_1.ValueLabel, { date: lastMeasurementDateLabel, value: lastMeasurementValue, unitSymbol: unitSymbol, isActive: active }),\n react_1.default.createElement(StationName_1.StationName, { stationName: title }),\n react_1.default.createElement(DataSource_1.DataSource, { profile: profile, sensorName: sensorName }),\n react_1.default.createElement(StreamUpdate_1.StreamUpdate, { lastUpdate: lastUpdate, updateFrequency: updateFrequency, startTime: startTime, endTime: streamEndTime }),\n react_1.default.createElement(StationActionButtons_1.StationActionButtons, { sessionId: sessionId })));\n};\nexports.FixedStreamStationHeader = FixedStreamStationHeader;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataDescription = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst media_1 = require(\"../../../../../utils/media\");\nconst Typography_1 = require(\"../../../../atoms/Typography\");\nconst DataDescription = (0, styled_components_1.default)(Typography_1.H4) `\n display: inline;\n font-weight: 500;\n text-transform: uppercase;\n\n @media ${media_1.media.desktop} {\n display: block;\n text-transform: none;\n font-size: 18px;\n font-weight: 400;\n }\n`;\nexports.DataDescription = DataDescription;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataSource = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst FixedStreamStationHeader_style_1 = require(\"../../FixedStreamStationHeader.style\");\nconst S = __importStar(require(\"./DataSource.style\"));\nconst DataSource = ({ profile, sensorName }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(FixedStreamStationHeader_style_1.HorizontalContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.RowContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.Subtitle, null, t(\"calendarHeader.profile\")),\n react_1.default.createElement(S.DataDescription, null, profile)),\n react_1.default.createElement(FixedStreamStationHeader_style_1.RowContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.Subtitle, null, t(\"calendarHeader.sensor\")),\n react_1.default.createElement(S.DataDescription, null, sensorName))));\n};\nexports.DataSource = DataSource;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./DataSource\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileButtons = exports.DesktopButtons = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst media_1 = require(\"../../../../../utils/media\");\nconst MobileButtons = styled_components_1.default.div `\n display: flex;\n gap: 24px;\n @media ${media_1.media.desktop} {\n display: none;\n }\n`;\nexports.MobileButtons = MobileButtons;\nconst DesktopButtons = styled_components_1.default.div `\n display: none;\n\n @media ${media_1.media.desktop} {\n display: flex;\n flex-wrap: wrap;\n gap: 20px;\n }\n`;\nexports.DesktopButtons = DesktopButtons;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StationActionButtons = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst copyLinkIcon_svg_1 = __importDefault(require(\"../../../../../assets/icons/copyLinkIcon.svg\"));\nconst download_svg_1 = __importDefault(require(\"../../../../../assets/icons/download.svg\"));\nconst ActionButton_style_1 = require(\"../../../../atoms/ActionButton/ActionButton.style\");\nconst Button_style_1 = require(\"../../../../atoms/Button/Button.style\");\nconst CopyLinkComponent_1 = require(\"../../../../molecules/Popups/CopyLinkComponent\");\nconst ExportDataComponent_1 = require(\"../../../../molecules/Popups/ExportDataComponent\");\nconst S = __importStar(require(\"./StationActionButtons.style\"));\nconst StationActionButtons = ({ sessionId }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.MobileButtons, null,\n react_1.default.createElement(ExportDataComponent_1.ExportDataComponent, { button: react_1.default.createElement(ActionButton_style_1.ActionButton, { onClick: () => { }, \"aria-labelledby\": t(\"calendarHeader.altExportSession\") },\n react_1.default.createElement(\"img\", { src: download_svg_1.default })), sessionsIds: [sessionId], isIconOnly: true, onSubmit: (formData) => { }, fixedSessionTypeSelected: true, isSessionList: false }),\n react_1.default.createElement(CopyLinkComponent_1.CopyLinkComponent, { button: react_1.default.createElement(ActionButton_style_1.ActionButton, { \"aria-label\": t(\"calendarHeader.altShareLink\") },\n react_1.default.createElement(\"img\", { src: copyLinkIcon_svg_1.default, alt: t(\"calendarHeader.altCopyIcon\") })), isIconOnly: true })),\n react_1.default.createElement(S.DesktopButtons, null,\n react_1.default.createElement(CopyLinkComponent_1.CopyLinkComponent, { button: react_1.default.createElement(Button_style_1.Button, { \"aria-label\": t(\"calendarHeader.altShareLink\") },\n t(\"calendarHeader.copyLink\"),\n react_1.default.createElement(\"img\", { src: copyLinkIcon_svg_1.default, alt: t(\"calendarHeader.altCopyIcon\") })), isIconOnly: false }),\n react_1.default.createElement(ExportDataComponent_1.ExportDataComponent, { button: react_1.default.createElement(Button_style_1.Button, { \"aria-labelledby\": t(\"calendarHeader.altExportSession\") },\n t(\"calendarHeader.exportSession\"),\n \" \",\n react_1.default.createElement(\"img\", { src: download_svg_1.default })), sessionsIds: [sessionId], isIconOnly: false, onSubmit: (formData) => { }, fixedSessionTypeSelected: true, isSessionList: false }))));\n};\nexports.StationActionButtons = StationActionButtons;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./StationActionButtons\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Label = exports.Heading = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../../utils/media\");\nconst Typography_1 = require(\"../../../../atoms/Typography\");\nconst Label = (0, styled_components_1.default)(Typography_1.H5) `\n padding-bottom: 10px;\n font-weight: 500;\n text-transform: uppercase;\n\n @media ${media_1.media.desktop} {\n color: ${colors_1.gray300};\n font-size: 14px;\n font-weight: 400;\n }\n`;\nexports.Label = Label;\nconst Heading = (0, styled_components_1.default)(Typography_1.H1) `\n font-weight: 500;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n\n @media ${media_1.media.desktop} {\n font-size: 28px;\n }\n`;\nexports.Heading = Heading;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StationName = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst FixedStreamStationHeader_style_1 = require(\"../../FixedStreamStationHeader.style\");\nconst S = __importStar(require(\"./StationName.style\"));\nconst StationName = ({ stationName }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(FixedStreamStationHeader_style_1.HorizontalContainer, null,\n react_1.default.createElement(S.Label, null, t(\"calendarHeader.stationLabel\")),\n react_1.default.createElement(S.Heading, null, stationName)));\n};\nexports.StationName = StationName;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./StationName\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RangeLabel = exports.FrequencyLabel = exports.DateLabel = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst media_1 = require(\"../../../../../utils/media\");\nconst Typography_1 = require(\"../../../../atoms/Typography\");\nconst DateLabel = (0, styled_components_1.default)(Typography_1.H5) `\n display: inline;\n font-weight: 600;\n text-transform: uppercase;\n\n @media ${media_1.media.desktop} {\n display: block;\n text-transform: none;\n font-weight: 400;\n font-size: 14px;\n }\n`;\nexports.DateLabel = DateLabel;\nconst FrequencyLabel = (0, styled_components_1.default)(Typography_1.H5) `\n display: inline;\n\n @media ${media_1.media.desktop} {\n display: block;\n font-size: 14px;\n }\n`;\nexports.FrequencyLabel = FrequencyLabel;\nconst RangeLabel = (0, styled_components_1.default)(Typography_1.H5) `\n display: inline;\n\n .hyphen-padding {\n padding: 0 8px;\n }\n\n @media ${media_1.media.desktop} {\n display: block;\n font-size: 14px;\n }\n`;\nexports.RangeLabel = RangeLabel;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamUpdate = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst measurementsCalc_1 = require(\"../../../../../utils/measurementsCalc\");\nconst FixedStreamStationHeader_style_1 = require(\"../../FixedStreamStationHeader.style\");\nconst S = __importStar(require(\"./StreamUpdate.style\"));\nconst StreamUpdate = ({ lastUpdate, updateFrequency, startTime, endTime, }) => {\n var _a, _b;\n const { t } = (0, react_i18next_1.useTranslation)();\n const formattedTime = (0, measurementsCalc_1.formatTime)(startTime, endTime);\n return (react_1.default.createElement(FixedStreamStationHeader_style_1.HorizontalContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.RowContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.Subtitle, null, t(\"calendarHeader.dateRange\")),\n react_1.default.createElement(S.RangeLabel, null, (_a = formattedTime.formattedMinTime) === null || _a === void 0 ? void 0 :\n _a.date,\n react_1.default.createElement(\"span\", { className: \"hyphen-padding\" }, \"-\"), (_b = formattedTime.formattedMaxTime) === null || _b === void 0 ? void 0 :\n _b.date)),\n react_1.default.createElement(FixedStreamStationHeader_style_1.RowContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.Subtitle, null, t(\"calendarHeader.updateFrequencyTitle\")),\n react_1.default.createElement(S.FrequencyLabel, null, updateFrequency)),\n react_1.default.createElement(FixedStreamStationHeader_style_1.RowContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_style_1.Subtitle, null, t(\"calendarHeader.lastUpdate\")),\n react_1.default.createElement(S.DateLabel, null, t(\"calendarHeader.localTime\", { lastUpdate: lastUpdate })))));\n};\nexports.StreamUpdate = StreamUpdate;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./StreamUpdate\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Header = exports.Label = exports.TextContainer = exports.ImageContainer = exports.Container = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst hexToRGB_1 = __importDefault(require(\"../../../../../utils/hexToRGB\"));\nconst media_1 = require(\"../../../../../utils/media\");\nconst Container = styled_components_1.default.div `\n background: ${(props) => props.$isActive\n ? props.$color\n : `linear-gradient(\n 241deg,\n ${(0, hexToRGB_1.default)(colors_1.gray100, 0.4)} -2.4%,\n ${(0, hexToRGB_1.default)(colors_1.gray100, 0.0)} 94.94%\n ), ${colors_1.gray300}`};\n display: flex;\n flex-direction: column;\n align-self: stretch;\n padding: 16px 12px;\n width: 111px;\n border-radius: 8px;\n\n @media ${media_1.media.desktop} {\n align-self: auto;\n flex-direction: row;\n justify-content: space-between;\n width: 290px;\n border-radius: 10px;\n padding: 34px 20px;\n }\n`;\nexports.Container = Container;\nconst ImageContainer = styled_components_1.default.img `\n height: 85px;\n width: 85px;\n\n @media ${media_1.media.desktop} {\n height: 115px;\n width: 115px;\n }\n`;\nexports.ImageContainer = ImageContainer;\nconst TextContainer = styled_components_1.default.div `\n text-align: left;\n padding-top: 16px;\n display: flex;\n flex-direction: column;\n color: white;\n\n @media ${media_1.media.desktop} {\n text-align: right;\n padding-top: 0;\n }\n`;\nexports.TextContainer = TextContainer;\nconst Label = styled_components_1.default.span `\n font-size: 12px;\n font-weight: 700;\n\n @media ${media_1.media.desktop} {\n font-size: 16px;\n font-weight: 400;\n }\n`;\nexports.Label = Label;\nconst Header = styled_components_1.default.span `\n font-size: 42px;\n font-weight: 700;\n\n @media ${media_1.media.desktop} {\n font-size: 72px;\n font-weight: 600;\n padding-bottom: 5px;\n }\n`;\nexports.Header = Header;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueLabel = void 0;\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_1 = __importDefault(require(\"react\"));\nconst broadCastLogo_svg_1 = __importDefault(require(\"../../../../../assets/icons/broadCastLogo.svg\"));\nconst thresholdColors_1 = require(\"../../../../../utils/thresholdColors\");\nconst S = __importStar(require(\"./ValueLabel.style\"));\nconst hooks_1 = require(\"../../../../../store/hooks\");\nconst thresholdSlice_1 = require(\"../../../../../store/thresholdSlice\");\nconst ValueLabel = ({ date, value, unitSymbol, isActive }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const averageValueColor = (0, thresholdColors_1.getColorForValue)(thresholds, value !== null && value !== void 0 ? value : -1000);\n const dataCardColor = (0, thresholdColors_1.getColorForCalendarDataCard)(averageValueColor);\n return (react_1.default.createElement(S.Container, { \"$isActive\": isActive, \"$color\": dataCardColor },\n react_1.default.createElement(S.ImageContainer, { src: broadCastLogo_svg_1.default, alt: t(\"stationValue.altLogo\") }),\n react_1.default.createElement(S.TextContainer, null,\n react_1.default.createElement(S.Label, null, t(\"stationValue.avgPlaceholder\", { date: date })),\n react_1.default.createElement(S.Header, null, value),\n react_1.default.createElement(S.Label, null, unitSymbol))));\n};\nexports.ValueLabel = ValueLabel;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ValueLabel\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./FixedStreamStationHeader\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SuggestionsList = exports.Suggestion = exports.SearchInput = exports.SearchContainer = exports.LocationSearchIcon = exports.LocationSearchButton = exports.Hr = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst searchIconGray_svg_1 = __importDefault(require(\"../../../assets/icons/searchIconGray.svg\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Suggestion = styled_components_1.default.li `\n cursor: pointer;\n padding: 0.5rem;\n font-size: 1.6rem;\n`;\nexports.Suggestion = Suggestion;\nconst SuggestionsList = styled_components_1.default.ul `\n background-color: ${(p) => (p.$displaySearchResults ? `${colors_1.white}` : `none`)};\n position: absolute;\n top: 20%;\n list-style: none;\n left: 0;\n border: none;\n border-radius: 20px;\n box-shadow: ${(p) => p.$displaySearchResults ? `2px 2px 4px 0px rgba(76, 86, 96, 0.1)` : `none`};\n padding: 30px 0 8px 8px;\n width: 19rem;\n z-index: 2;\n color: ${colors_1.gray400};\n\n @media ${media_1.media.smallMobile} {\n width: 20rem;\n }\n\n @media ${media_1.media.smallDesktop} {\n width: 26rem;\n }\n\n @media ${media_1.media.mediumDesktop} {\n padding: 10px 0 8px 8px;\n border-radius: 0px 0px 10px 10px;\n top: 100%;\n z-index: 1;\n }\n @media ${media_1.media.largeDesktop} {\n width: 36.8rem;\n }\n`;\nexports.SuggestionsList = SuggestionsList;\nconst SearchInput = styled_components_1.default.input `\n width: 19rem;\n height: 3.2rem;\n border-radius: ${(p) => p.$displaySearchResults ? `15px 15px 0px 0px` : `20px`};\n border: none;\n box-shadow: ${(p) => p.$displaySearchResults\n ? `0px 2px 0px 0px rgba(76, 86, 96, 0.1)`\n : `2px 2px 4px 0px rgba(76, 86, 96, 0.1)`};\n background: ${colors_1.white} url(${searchIconGray_svg_1.default}) 12px center no-repeat;\n background-size: 16px;\n font-size: 1.6rem;\n padding-left: 3.8rem;\n outline: none;\n z-index: 3;\n color: ${colors_1.gray400};\n\n @media ${media_1.media.smallMobile} {\n width: 20rem;\n }\n\n @media ${media_1.media.smallDesktop} {\n width: 26rem;\n }\n\n @media ${media_1.media.mediumDesktop} {\n height: 4.2rem;\n font-size: 1.6rem;\n padding: 0 1.6rem;\n border-radius: 50px;\n border: ${(p) => p.$displaySearchResults ? `none` : `1px solid ${colors_1.gray500}`};\n background: ${colors_1.white} url(${searchIconGray_svg_1.default}) 16px center no-repeat;\n background-size: 20px;\n padding-left: 4.8rem;\n box-shadow: none;\n }\n\n @media ${media_1.media.largeDesktop} {\n width: 36.8rem;\n }\n`;\nexports.SearchInput = SearchInput;\nconst LocationSearchButton = styled_components_1.default.button `\n background-color: ${colors_1.white};\n height: 4rem;\n border-radius: 50%;\n cursor: pointer;\n border: none;\n z-index: 2;\n\n @media ${media_1.media.mediumDesktop} {\n height: 4.2rem;\n background-color: transparent;\n }\n`;\nexports.LocationSearchButton = LocationSearchButton;\nconst LocationSearchIcon = styled_components_1.default.img `\n width: 4rem;\n height: 4rem;\n\n @media ${media_1.media.mediumDesktop} {\n width: 4.2rem;\n height: 4.2rem;\n }\n`;\nexports.LocationSearchIcon = LocationSearchIcon;\nconst SearchContainer = styled_components_1.default.div `\n position: relative;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 70vw;\n\n @media ${media_1.media.smallMobile} {\n gap: 1rem;\n }\n\n @media ${media_1.media.smallDesktop} {\n width: auto;\n }\n\n ${(props) => props.$isTimelapseView &&\n `opacity: 0.7;\n pointer-events: none;`}\n`;\nexports.SearchContainer = SearchContainer;\nconst Hr = styled_components_1.default.hr `\n visibility: hidden;\n\n @media ${media_1.media.mediumDesktop} {\n visibility: ${(p) => (p.$displaySearchResults ? `visible` : `hidden`)};\n border-top: 1px solid ${colors_1.gray500};\n width: 97%;\n }\n`;\nexports.Hr = Hr;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocationSearch = void 0;\nconst downshift_1 = require(\"downshift\");\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst use_places_autocomplete_1 = __importStar(require(\"use-places-autocomplete\"));\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst locationSearchIcon_svg_1 = __importDefault(require(\"../../../assets/icons/locationSearchIcon.svg\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst determineZoomLevel_1 = require(\"../../../utils/determineZoomLevel\");\nconst geolocation_1 = require(\"../../../utils/geolocation\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst S = __importStar(require(\"./LocationSearch.style\"));\nconst OK_STATUS = \"OK\";\nconst LocationSearch = ({ isTimelapseView }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const [items, setItems] = (0, react_1.useState)([]);\n const [selectedItem, setSelectedItem] = (0, react_1.useState)(null);\n const [inputValue, setInputValue] = (0, react_1.useState)(\"\");\n const { t } = (0, react_i18next_1.useTranslation)();\n const map = (0, react_google_maps_1.useMap)();\n const { setUrlParams } = (0, mapParamsHandler_1.useMapParams)();\n const { setValue, suggestions: { status, data }, clearSuggestions, } = (0, use_places_autocomplete_1.default)();\n const { isOpen, getMenuProps, getInputProps, highlightedIndex, getItemProps, } = (0, downshift_1.useCombobox)({\n onInputValueChange: ({ inputValue }) => {\n setValue(inputValue);\n setInputValue(inputValue);\n },\n items: data,\n itemToString(item) {\n return item ? item.description : \"\";\n },\n selectedItem,\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n setSelectedItem(newSelectedItem);\n handleSelect(newSelectedItem);\n },\n inputValue,\n });\n const displaySearchResults = isOpen && items.length > 0;\n const handleSelect = (item) => __awaiter(void 0, void 0, void 0, function* () {\n if (!item)\n return;\n setValue(item.description, false);\n clearSuggestions();\n const results = yield (0, use_places_autocomplete_1.getGeocode)({ address: item.description });\n const { lat, lng } = yield (0, use_places_autocomplete_1.getLatLng)(results[0]);\n const { zoom, bounds } = (0, determineZoomLevel_1.determineZoomLevel)(results);\n setUrlParams([\n {\n key: mapParamsHandler_1.UrlParamsTypes.currentCenter,\n value: JSON.stringify({ lat, lng }),\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.currentZoom,\n value: zoom.toString(),\n },\n ]);\n if (bounds && map) {\n map.fitBounds(bounds);\n }\n else {\n map === null || map === void 0 ? void 0 : map.setZoom(zoom);\n map === null || map === void 0 ? void 0 : map.panTo({ lat, lng });\n }\n setTimeout(() => {\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, 200);\n });\n const handleBrowserLocation = () => __awaiter(void 0, void 0, void 0, function* () {\n const location = yield (0, geolocation_1.getBrowserLocation)(map, setUrlParams);\n if (location) {\n setInputValue(\"\");\n setItems([]);\n setTimeout(() => {\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, 200);\n }\n else {\n console.log(t(\"map.locationError\"));\n }\n });\n (0, react_1.useEffect)(() => {\n if (status === OK_STATUS && data.length) {\n setItems(data);\n }\n }, [data, status]);\n return (react_1.default.createElement(S.SearchContainer, { \"$isTimelapseView\": isTimelapseView },\n react_1.default.createElement(S.SearchInput, Object.assign({ placeholder: t(\"map.searchPlaceholder\"), \"$displaySearchResults\": displaySearchResults }, getInputProps())),\n react_1.default.createElement(S.LocationSearchButton, { \"aria-label\": t(\"map.browserLocationButton\"), type: \"button\", onClick: handleBrowserLocation },\n react_1.default.createElement(S.LocationSearchIcon, { src: locationSearchIcon_svg_1.default, alt: t(\"map.searchIcon\") })),\n react_1.default.createElement(S.SuggestionsList, Object.assign({ \"$displaySearchResults\": displaySearchResults }, getMenuProps()),\n react_1.default.createElement(S.Hr, { \"$displaySearchResults\": displaySearchResults }),\n isOpen &&\n items.map((item, index) => (react_1.default.createElement(S.Suggestion, Object.assign({ key: item.place_id, \"$isHighlighted\": highlightedIndex === index }, getItemProps({ item, index })), item.description))))));\n};\nexports.LocationSearch = LocationSearch;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./LocationSearch\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapButton = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./MapButtons.style\"));\nconst MapButton = react_1.default.forwardRef(({ image, title, alt, onClick, isActive, isDisabled, className }, ref) => {\n return (react_1.default.createElement(S.MapButton, { onClick: onClick, \"$isActive\": isActive, \"$isDisabled\": isDisabled, className: className },\n react_1.default.createElement(S.Title, { \"$isActive\": isActive }, title),\n react_1.default.createElement(S.IconWrapper, { \"$src\": image, \"$isActive\": isActive, title: alt })));\n});\nexports.MapButton = MapButton;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Title = exports.MapButtonsWrapper = exports.MapButtons = exports.MapButton = exports.IconWrapper = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Typography_1 = require(\"../../atoms/Typography\");\nconst MapButtonsWrapper = styled_components_1.default.div `\n position: absolute;\n top: 10rem;\n z-index: 4;\n @media ${media_1.media.desktop} {\n left: 0;\n top: 8rem;\n }\n\n @media ${media_1.media.mediumDesktop} {\n top: 10rem;\n }\n`;\nexports.MapButtonsWrapper = MapButtonsWrapper;\nconst MapButtons = styled_components_1.default.div `\n display: flex;\n padding: 0rem 0rem 0rem 2rem;\n`;\nexports.MapButtons = MapButtons;\nconst MapButton = styled_components_1.default.button `\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props) => (props.$isActive ? colors_1.blue : colors_1.white)};\n border-radius: 10px;\n padding: 0.6rem 1.6rem;\n border: none;\n margin-right: 1rem;\n cursor: pointer;\n ${(props) => props.$isDisabled &&\n `opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;`}\n`;\nexports.MapButton = MapButton;\nconst Title = (0, styled_components_1.default)(Typography_1.H4) `\n color: ${(props) => (props.$isActive ? colors_1.white : colors_1.gray300)};\n margin-right: 0.8rem;\n`;\nexports.Title = Title;\nconst IconWrapper = styled_components_1.default.div `\n background-color: ${(props) => (props.$isActive ? colors_1.white : colors_1.gray300)};\n mask: url(${(props) => props.$src});\n mask-size: 100% 100%;\n width: 1.4rem;\n height: 1.4rem;\n`;\nexports.IconWrapper = IconWrapper;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapButtons = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst clockIcon_svg_1 = __importDefault(require(\"../../../assets/icons/clockIcon.svg\"));\nconst copyLinkIcon_svg_1 = __importDefault(require(\"../../../assets/icons/copyLinkIcon.svg\"));\nconst filterIcon_svg_1 = __importDefault(require(\"../../../assets/icons/filterIcon.svg\"));\nconst booleans_1 = require(\"../../../const/booleans\");\nconst fixedSessionsSelectors_1 = require(\"../../../store/fixedSessionsSelectors\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst CopyLinkComponent_1 = require(\"../../molecules/Popups/CopyLinkComponent\");\nconst DesktopSessionFilters_1 = require(\"../../molecules/SessionFilters/DesktopSessionFilters\");\nconst MapButton_1 = require(\"./MapButton\");\nconst S = __importStar(require(\"./MapButtons.style\"));\nvar ButtonTypes;\n(function (ButtonTypes) {\n ButtonTypes[\"FILTER\"] = \"filter\";\n ButtonTypes[\"TIMELAPSE\"] = \"timelapse\";\n ButtonTypes[\"COPY_LINK\"] = \"copyLink\";\n ButtonTypes[\"SHARE\"] = \"share\";\n})(ButtonTypes || (ButtonTypes = {}));\nconst MapButtons = () => {\n const { goToUserSettings, currentUserSettings, sessionType, isIndoor } = (0, mapParamsHandler_1.useMapParams)();\n const [activeButtons, setActiveButtons] = (0, react_1.useState)([\n ButtonTypes.FILTER,\n ]);\n const [activeCopyLinkButton, setActiveCopyLinkButton] = (0, react_1.useState)(false);\n const { t } = (0, react_i18next_1.useTranslation)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const fixedSessionsType = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectFixedSessionsType);\n const listSessions = (0, hooks_1.useAppSelector)((state) => (0, fixedSessionsSelectors_1.selectFixedSessionsList)(state, fixedSessionsType));\n const isDormant = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectIsDormantSessionsType);\n const showFilters = activeButtons.includes(ButtonTypes.FILTER);\n const isModalView = currentUserSettings === userStates_1.UserSettings.ModalView;\n const isTimelapseButtonVisible = !isModalView && sessionType === filters_1.SessionTypes.FIXED;\n const isTimelapseDisabled = listSessions.length === 0 || isDormant || isIndoor === booleans_1.TRUE;\n const isTimelapseButtonActive = activeButtons.includes(ButtonTypes.TIMELAPSE) &&\n currentUserSettings === userStates_1.UserSettings.TimelapseView;\n const filtersButtonClosed = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectFiltersButtonClosed);\n const handleCopyLinkClick = () => {\n setActiveCopyLinkButton(true);\n };\n const handleTimelapseClick = () => {\n if (activeButtons.includes(ButtonTypes.TIMELAPSE)) {\n setActiveButtons([]);\n goToUserSettings(userStates_1.UserSettings.MapView);\n }\n else {\n setActiveButtons([ButtonTypes.TIMELAPSE]);\n goToUserSettings(userStates_1.UserSettings.TimelapseView);\n }\n setActiveCopyLinkButton(false);\n };\n const handleFilterClick = () => {\n if (activeButtons.includes(ButtonTypes.FILTER)) {\n setActiveButtons([]);\n dispatch((0, sessionFiltersSlice_1.setFiltersButtonClosed)(true));\n }\n else {\n setActiveButtons([ButtonTypes.FILTER]);\n dispatch((0, sessionFiltersSlice_1.setFiltersButtonClosed)(false));\n if (currentUserSettings === userStates_1.UserSettings.CrowdMapView) {\n goToUserSettings(userStates_1.UserSettings.CrowdMapView);\n }\n if (currentUserSettings === userStates_1.UserSettings.TimelapseView) {\n goToUserSettings(userStates_1.UserSettings.MapView);\n }\n }\n setActiveCopyLinkButton(false);\n };\n (0, react_1.useEffect)(() => {\n if (currentUserSettings === userStates_1.UserSettings.TimelapseView) {\n setActiveButtons([ButtonTypes.TIMELAPSE]);\n }\n else {\n filtersButtonClosed\n ? setActiveButtons([])\n : setActiveButtons([ButtonTypes.FILTER]);\n }\n }, [currentUserSettings, filtersButtonClosed]);\n return (react_1.default.createElement(S.MapButtonsWrapper, null,\n react_1.default.createElement(S.MapButtons, null,\n react_1.default.createElement(MapButton_1.MapButton, { title: t(\"navbar.filter\"), image: filterIcon_svg_1.default, onClick: handleFilterClick, alt: t(\"navbar.altFilter\"), isActive: activeButtons.includes(ButtonTypes.FILTER), className: \"active-overlay\" }),\n isTimelapseButtonVisible && (react_1.default.createElement(MapButton_1.MapButton, { title: t(\"navbar.timelapse\"), image: clockIcon_svg_1.default, onClick: handleTimelapseClick, alt: t(\"navbar.altTimelapse\"), isActive: isTimelapseButtonActive, isDisabled: isTimelapseDisabled, className: \"active-overlay\" })),\n react_1.default.createElement(CopyLinkComponent_1.CopyLinkComponent, { button: react_1.default.createElement(MapButton_1.MapButton, { title: t(\"navbar.copyLink\"), image: copyLinkIcon_svg_1.default, onClick: handleCopyLinkClick, alt: t(\"navbar.altCopyLink\"), isActive: activeCopyLinkButton, className: \"active-overlay\" }), isIconOnly: false, showBelowButton: true, onOpen: handleCopyLinkClick, onClose: () => {\n setActiveCopyLinkButton(false);\n } })),\n showFilters && react_1.default.createElement(DesktopSessionFilters_1.DesktopSessionFilters, null)));\n};\nexports.MapButtons = MapButtons;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackButton = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst S = __importStar(require(\"./Navbar.style\"));\nconst useBackNavigation_1 = require(\"../../../hooks/useBackNavigation\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst userStates_1 = require(\"../../../types/userStates\");\nconst backArrowIcon_svg_1 = __importDefault(require(\"../../../assets/icons/backArrowIcon.svg\"));\nconst backArrowIconDesktop_svg_1 = __importDefault(require(\"../../../assets/icons/backArrowIconDesktop.svg\"));\nconst BackButton = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const handleCalendarGoBack = (0, useBackNavigation_1.useCalendarBackNavigation)();\n const { previousUserSettings } = (0, mapParamsHandler_1.useMapParams)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const icon = isMobile ? backArrowIcon_svg_1.default : backArrowIconDesktop_svg_1.default;\n const getButtonText = (0, react_1.useCallback)(() => {\n switch (previousUserSettings) {\n case userStates_1.UserSettings.SessionListView:\n return t(\"navbar.goBackToSessions\");\n case userStates_1.UserSettings.MapView:\n return t(\"navbar.goBackToMap\");\n case userStates_1.UserSettings.ModalView:\n return t(\"navbar.goBackToSession\");\n default:\n return t(\"navbar.goBackToMap\");\n }\n }, [previousUserSettings, t]);\n return (react_1.default.createElement(S.GoBack, { onClick: handleCalendarGoBack, \"aria-label\": t(\"navbar.mapPage\") },\n react_1.default.createElement(\"img\", { src: icon, alt: t(\"navbar.altGoBackIcon\"), \"aria-label\": t(\"navbar.goBackToSessions\") }),\n getButtonText()));\n};\nexports.BackButton = BackButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst aircasting_logo_nav_svg_1 = __importDefault(require(\"../../../../../assets/images/aircasting-logo-nav.svg\"));\nconst airCastingLogoMobile_svg_1 = __importDefault(require(\"../../../assets/icons/airCastingLogoMobile.svg\"));\nconst airbeamIcon_svg_1 = __importDefault(require(\"../../../assets/icons/airbeamIcon.svg\"));\nconst hamburger_svg_1 = __importDefault(require(\"../../../assets/icons/hamburger.svg\"));\nconst hamburgerMobile_svg_1 = __importDefault(require(\"../../../assets/icons/hamburgerMobile.svg\"));\nconst urls_1 = require(\"../../../const/urls\");\nconst media_1 = require(\"../../../utils/media\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst RealtimeMapUpdatesButton_1 = require(\"../../atoms/RealtimeMapUpdatesButton/RealtimeMapUpdatesButton\");\nconst RefreshMapButton_1 = require(\"../../atoms/RefreshMapButton/RefreshMapButton\");\nconst ControlPanel_1 = require(\"../../organisms/Map/ControlPanel/ControlPanel\");\nconst LocationSearch_1 = require(\"../LocationSearch\");\nconst BackButton_1 = require(\"./BackButton\");\nconst NavList_1 = __importDefault(require(\"./NavList/NavList\"));\nconst S = __importStar(require(\"./Navbar.style\"));\nconst DesktopHeader = ({ isMapPage, isTimelapseView, navMenuVisible, toggleMenuVisibility, t, }) => {\n const isSmallScreen = (0, useScreenSizeDetection_1.default)(media_1.screenSizes.hugeDesktop);\n const isTinyScreen = (0, useScreenSizeDetection_1.default)(media_1.screenSizes.mediumDesktop);\n const isExtraTinyScreen = (0, useScreenSizeDetection_1.default)(media_1.screenSizes.mediocreDesktop);\n return (react_1.default.createElement(S.DesktopContainer, { className: \"active-overlay\" },\n isMapPage ? (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.Container, null,\n isTinyScreen ? (react_1.default.createElement(S.SmallDesktopContainer, null,\n react_1.default.createElement(S.SmallDesktopMenuContainer, null,\n react_1.default.createElement(\"a\", { href: urls_1.urls.aircasting, \"aria-label\": t(\"navbar.sections.aircastingPage\") },\n react_1.default.createElement(\"img\", { alt: t(\"navbar.altLogo\"), src: airCastingLogoMobile_svg_1.default })),\n react_1.default.createElement(\"nav\", null,\n react_1.default.createElement(S.MenuButton, { onClick: toggleMenuVisibility },\n react_1.default.createElement(\"img\", { src: hamburgerMobile_svg_1.default, alt: t(\"navbar.altMenu\"), \"aria-label\": t(\"navbar.sections.openMenu\") })))),\n react_1.default.createElement(LocationSearch_1.LocationSearch, { isTimelapseView: isTimelapseView }))) : (react_1.default.createElement(S.SearchContainer, null,\n react_1.default.createElement(\"a\", { href: urls_1.urls.aircasting, \"aria-label\": t(\"navbar.sections.aircastingPage\") },\n react_1.default.createElement(S.AircastingLogo, { alt: t(\"navbar.altLogo\"), src: isSmallScreen ? airCastingLogoMobile_svg_1.default : aircasting_logo_nav_svg_1.default, \"$isSmallScreen\": isSmallScreen })),\n react_1.default.createElement(LocationSearch_1.LocationSearch, { isTimelapseView: isTimelapseView }))),\n react_1.default.createElement(S.MapControls, { \"$isTimelapseView\": isTimelapseView },\n react_1.default.createElement(RefreshMapButton_1.RefreshMapButton, null),\n react_1.default.createElement(RealtimeMapUpdatesButton_1.RealtimeMapUpdatesButton, null),\n react_1.default.createElement(ControlPanel_1.ControlPanel, null))))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(BackButton_1.BackButton, null),\n react_1.default.createElement(\"a\", { href: urls_1.urls.aircasting, \"aria-label\": t(\"navbar.sections.aircastingPage\") },\n react_1.default.createElement(S.AircastingLogo, { alt: t(\"navbar.altLogo\"), src: aircasting_logo_nav_svg_1.default })))),\n react_1.default.createElement(S.Container, null,\n !isExtraTinyScreen && (react_1.default.createElement(S.BuyCTA, { href: urls_1.urls.airbeamBuyNow, className: \"active-overlay\" },\n isSmallScreen ? \"\" : t(\"navbar.sections.getAirbeam\"),\n react_1.default.createElement(\"img\", { src: airbeamIcon_svg_1.default, alt: t(\"navbar.altAirbeamIcon\"), \"aria-label\": t(\"navbar.altAirbeamIcon\") }))),\n !isTinyScreen && (react_1.default.createElement(\"nav\", null,\n react_1.default.createElement(S.MenuButton, { onClick: toggleMenuVisibility, className: \"active-overlay\" },\n react_1.default.createElement(\"img\", { src: hamburger_svg_1.default, alt: t(\"navbar.altMenu\"), \"aria-label\": t(\"navbar.sections.openMenu\") }))))),\n react_1.default.createElement(NavList_1.default, { t: t, navMenuVisible: navMenuVisible, toggleMenuVisibility: toggleMenuVisibility })));\n};\nexports.default = DesktopHeader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileCalendarHeader = exports.MobileHeader = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst airCastingLogoMobile_svg_1 = __importDefault(require(\"../../../assets/icons/airCastingLogoMobile.svg\"));\nconst backArrowIcon_svg_1 = __importDefault(require(\"../../../assets/icons/backArrowIcon.svg\"));\nconst hamburgerMobile_svg_1 = __importDefault(require(\"../../../assets/icons/hamburgerMobile.svg\"));\nconst urls_1 = require(\"../../../const/urls\");\nconst fixedStreamSlice_1 = require(\"../../../store/fixedStreamSlice\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mobileStreamSlice_1 = require(\"../../../store/mobileStreamSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst RealtimeMapUpdatesButton_1 = require(\"../../atoms/RealtimeMapUpdatesButton/RealtimeMapUpdatesButton\");\nconst RefreshMapButton_1 = require(\"../../atoms/RefreshMapButton/RefreshMapButton\");\nconst ControlPanel_1 = require(\"../../organisms/Map/ControlPanel/ControlPanel\");\nconst LocationSearch_1 = require(\"../LocationSearch\");\nconst BackButton_1 = require(\"./BackButton\");\nconst S = __importStar(require(\"./Navbar.style\"));\nconst NavList_1 = __importDefault(require(\"./NavList/NavList\"));\nconst MobileHeader = ({ isTimelapseView, toggleMenuVisibility, navMenuVisible, t, }) => {\n const { currentUserSettings, previousUserSettings, revertUserSettingsAndResetIds, sessionType, } = (0, mapParamsHandler_1.useMapParams)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const handleGoingBack = () => {\n revertUserSettingsAndResetIds();\n fixedSessionTypeSelected\n ? dispatch((0, fixedStreamSlice_1.resetFixedStreamState)())\n : dispatch((0, mobileStreamSlice_1.resetMobileStreamState)());\n };\n return (react_1.default.createElement(S.MobileHeaderContainer, null, currentUserSettings === userStates_1.UserSettings.ModalView ? (react_1.default.createElement(S.GoBack, { onClick: () => handleGoingBack(), \"aria-label\": t(\"navbar.mapPage\") },\n react_1.default.createElement(\"img\", { src: backArrowIcon_svg_1.default, alt: t(\"navbar.altGoBackIcon\"), \"aria-label\": t(\"navbar.goBackToSessions\") }),\n previousUserSettings === userStates_1.UserSettings.SessionListView\n ? t(\"navbar.goBackToSessions\")\n : t(\"navbar.goBackToMap\"))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.MobileMenuContainer, { className: \"active-overlay\" },\n react_1.default.createElement(\"a\", { href: urls_1.urls.aircasting, \"aria-label\": t(\"navbar.sections.aircastingPage\") },\n react_1.default.createElement(\"img\", { alt: t(\"navbar.altLogo\"), src: airCastingLogoMobile_svg_1.default })),\n react_1.default.createElement(\"nav\", null,\n react_1.default.createElement(S.MenuButton, { onClick: toggleMenuVisibility },\n react_1.default.createElement(\"img\", { src: hamburgerMobile_svg_1.default, alt: t(\"navbar.altMenu\"), \"aria-label\": t(\"navbar.sections.openMenu\") })))),\n react_1.default.createElement(LocationSearch_1.LocationSearch, { isTimelapseView: isTimelapseView }),\n !isTimelapseView && (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(RefreshMapButton_1.RefreshMapButton, null),\n react_1.default.createElement(ControlPanel_1.ControlPanel, null),\n react_1.default.createElement(RealtimeMapUpdatesButton_1.RealtimeMapUpdatesButton, null))),\n navMenuVisible && (react_1.default.createElement(NavList_1.default, { t: t, navMenuVisible: navMenuVisible, toggleMenuVisibility: toggleMenuVisibility }))))));\n};\nexports.MobileHeader = MobileHeader;\nconst MobileCalendarHeader = ({ t }) => {\n return (react_1.default.createElement(S.MobileContainer, null,\n react_1.default.createElement(BackButton_1.BackButton, null)));\n};\nexports.MobileCalendarHeader = MobileCalendarHeader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst S = __importStar(require(\"./NavList.style\"));\nconst NavItem = ({ href, isNavTitle, isActive, children, subNav, }) => (react_1.default.createElement(S.ListItem, { \"$isActive\": isActive },\n isNavTitle ? (react_1.default.createElement(S.SubNavTitleLink, { href: href }, children)) : (react_1.default.createElement(S.NavItemLink, { href: href }, children)),\n subNav && (react_1.default.createElement(S.SubNav, null, subNav.map((item) => (react_1.default.createElement(NavItem, { key: item.href, href: item.href, isActive: window.location.pathname === item.href }, item.label)))))));\nexports.default = NavItem;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubNavTitleLink = exports.SubNav = exports.NavList = exports.NavItemLink = exports.NavHeader = exports.ListItem = exports.Link = exports.GoBack = exports.Container = exports.BuyCTAWhite = exports.Button = exports.BottomNavContainer = exports.AircastingLogo = void 0;\nconst styled_components_1 = __importStar(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../utils/media\");\nconst Navbar_style_1 = require(\"../Navbar.style\");\nconst AircastingLogo = styled_components_1.default.img `\n width: 152px;\n height: 43px;\n`;\nexports.AircastingLogo = AircastingLogo;\nconst Button = styled_components_1.default.button `\n border: none;\n background: none;\n cursor: pointer;\n`;\nexports.Button = Button;\nconst Container = styled_components_1.default.div `\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\nexports.Container = Container;\nconst NavList = styled_components_1.default.ul `\n background: ${colors_1.theme};\n list-style-type: none;\n font-weight: 400;\n font-family: Moderat, sans-serif;\n padding: 2.5rem 3.2rem;\n width: 100%;\n position: fixed;\n top: 0;\n bottom: 0;\n right: ${(p) => (p.$isVisible ? \"0\" : \"-35.2rem\")};\n z-index: 7;\n -webkit-font-smoothing: antialiased;\n line-height: 1.5;\n letter-spacing: 0.5px;\n overflow: scroll;\n\n ${(p) => p.$isVisible &&\n (0, styled_components_1.css) `\n right: 0;\n opacity: 1;\n transition: right 0.5s ease-out, opacity 0.5s ease-out;\n `}\n\n @media ${media_1.media.smallDesktop} {\n min-width: 35.2rem;\n width: auto;\n ${(p) => p.$isVisible &&\n (0, styled_components_1.css) `\n right: 0;\n transition: right 0.3s ease;\n `}\n }\n`;\nexports.NavList = NavList;\nconst SubNav = styled_components_1.default.ul `\n padding: 0.8rem 0 1.6rem 0;\n border-bottom: 1px solid ${colors_1.white};\n list-style-type: none;\n`;\nexports.SubNav = SubNav;\nconst NavHeader = styled_components_1.default.li `\n display: flex;\n justify-content: space-between;\n padding-bottom: 2.45rem;\n border-bottom: 1px solid ${colors_1.white};\n`;\nexports.NavHeader = NavHeader;\nconst ListItem = styled_components_1.default.li `\n border-bottom: none;\n opacity: ${(p) => (p.$isActive ? \"0.5\" : \"1\")};\n`;\nexports.ListItem = ListItem;\nconst SubNavTitleLink = styled_components_1.default.a `\n color: ${colors_1.white};\n font-size: 2.2rem;\n display: inline-block;\n padding: 0.5rem 0;\n text-decoration: none;\n\n &:hover {\n opacity: 0.5;\n }\n\n @media ${media_1.media.smallDesktop} {\n font-size: 1.8rem;\n }\n`;\nexports.SubNavTitleLink = SubNavTitleLink;\nconst NavItemLink = (0, styled_components_1.default)(SubNavTitleLink) `\n font-size: 1.9rem;\n padding: 0.5rem 0;\n\n @media ${media_1.media.smallDesktop} {\n font-size: 1.5rem;\n }\n`;\nexports.NavItemLink = NavItemLink;\nconst Link = (0, styled_components_1.default)(NavItemLink) `\n text-transform: uppercase;\n font-size: 1.3rem;\n`;\nexports.Link = Link;\nconst BottomNavContainer = (0, styled_components_1.default)(Container) `\n border-top: 1px solid ${colors_1.white};\n padding-top: 3.2rem;\n`;\nexports.BottomNavContainer = BottomNavContainer;\nconst BuyCTAWhite = (0, styled_components_1.default)(Navbar_style_1.BuyCTA) `\n background-color: transparent;\n border: 1px solid ${colors_1.white};\n color: ${colors_1.white};\n border-radius: 0px;\n font-weight: 400;\n padding: 1.8rem 2rem;\n font-size: 1.3rem;\n\n &:visited,\n &:link,\n &:active {\n color: ${colors_1.white};\n }\n\n &:hover {\n background-color: ${colors_1.white};\n color: ${colors_1.blue};\n }\n`;\nexports.BuyCTAWhite = BuyCTAWhite;\nconst GoBack = styled_components_1.default.a `\n text-transform: uppercase;\n text-decoration: none;\n font-weight: 600;\n font-size: 1.3rem;\n color: ${colors_1.darkBlue};\n display: flex;\n align-items: center;\n gap: 15px;\n line-height: 22px;\n`;\nexports.GoBack = GoBack;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst habitatMapLogo_svg_1 = __importDefault(require(\"../../../../assets/icons/habitatMapLogo.svg\"));\nconst iconNavClose_svg_1 = __importDefault(require(\"../../../../assets/icons/iconNavClose.svg\"));\nconst searchIcon_svg_1 = __importDefault(require(\"../../../../assets/icons/searchIcon.svg\"));\nconst urls_1 = require(\"../../../../const/urls\");\nconst NavItem_1 = __importDefault(require(\"./NavItem\"));\nconst S = __importStar(require(\"./NavList.style\"));\nconst navItemsList_1 = require(\"./navItemsList\");\nconst NavList = ({ t, navMenuVisible, toggleMenuVisibility, }) => (react_1.default.createElement(S.NavList, { \"$isVisible\": navMenuVisible },\n react_1.default.createElement(S.NavHeader, null,\n react_1.default.createElement(\"a\", { href: urls_1.urls.aircasting, \"aria-label\": t(\"navbar.sections.habitatMapPage\"), style: { display: \"flex\", alignItems: \"center\" } },\n react_1.default.createElement(\"img\", { src: habitatMapLogo_svg_1.default, alt: t(\"navbar.altHabitatMapLogo\") })),\n react_1.default.createElement(S.Button, { onClick: toggleMenuVisibility },\n react_1.default.createElement(\"img\", { src: iconNavClose_svg_1.default, \"aria-label\": t(\"navbar.altClose\"), alt: t(\"navbar.altClose\") }))),\n navItemsList_1.navItems.map((item) => {\n var _a;\n return (react_1.default.createElement(NavItem_1.default, { key: item.href, href: item.href, isNavTitle: item.isNavTitle, isActive: window.location.pathname === item.href, subNav: (_a = item.subNav) === null || _a === void 0 ? void 0 : _a.map((subItem) => (Object.assign(Object.assign({}, subItem), { label: t(subItem.label) }))) }, t(item.label)));\n }),\n react_1.default.createElement(S.BottomNavContainer, null,\n react_1.default.createElement(\"a\", { href: urls_1.urls.search },\n react_1.default.createElement(\"img\", { src: searchIcon_svg_1.default, alt: t(\"navbar.altSearch\"), \"aria-label\": t(\"navbar.altSearch\"), style: { width: \"30px\" } })),\n react_1.default.createElement(S.Link, { href: urls_1.urls.donate, style: { fontSize: \"1.2rem\" } }, t(\"navbar.sections.donate\")),\n react_1.default.createElement(S.BuyCTAWhite, { href: urls_1.urls.airbeamBuyNow }, t(\"navbar.sections.getAirbeam\")))));\nexports.default = NavList;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.navItems = void 0;\nconst urls_1 = require(\"../../../../const/urls\");\nexports.navItems = [\n {\n isNavTitle: true,\n href: urls_1.urls.airbeam,\n label: \"navbar.sections.airbeam\",\n subNav: [\n {\n href: urls_1.urls.userStories,\n label: \"navbar.sections.userStories\",\n },\n {\n href: urls_1.urls.airbeamHowItWorks,\n label: \"navbar.sections.howItWorks\",\n },\n {\n href: urls_1.urls.faq,\n label: \"navbar.sections.faq\",\n },\n {\n href: urls_1.urls.usersGuide,\n label: \"navbar.sections.usersGuide\",\n },\n {\n href: urls_1.urls.airbeamMiniUsersGuide,\n label: \"navbar.sections.airbeamMiniUsersGuide\",\n },\n {\n href: urls_1.urls.airbeamBuyNow,\n label: \"navbar.sections.airbeamBuyNow\",\n },\n ],\n },\n {\n isNavTitle: true,\n href: urls_1.urls.aircasting,\n label: \"navbar.sections.aircasting\",\n subNav: [\n {\n href: urls_1.urls.map,\n label: \"navbar.sections.maps\",\n },\n {\n href: urls_1.urls.android,\n label: \"navbar.sections.androidApp\",\n },\n {\n href: urls_1.urls.iOS,\n label: \"navbar.sections.iOSApp\",\n },\n {\n href: urls_1.urls.actions,\n label: \"navbar.sections.actions\",\n },\n ],\n },\n {\n isNavTitle: true,\n href: urls_1.urls.about,\n label: \"navbar.sections.about\",\n subNav: [\n {\n href: urls_1.urls.history,\n label: \"navbar.sections.history\",\n },\n {\n href: urls_1.urls.press,\n label: \"navbar.sections.press\",\n },\n ],\n },\n {\n isNavTitle: true,\n href: urls_1.urls.blog,\n label: \"navbar.sections.blog\",\n },\n];\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SmallDesktopMenuContainer = exports.SmallDesktopContainer = exports.SearchContainer = exports.NAVBAR_HEIGHT = exports.MobileMenuContainer = exports.MobileHeaderContainer = exports.MobileContainer = exports.MenuButton = exports.MapControls = exports.Header = exports.GoBackButtonContainer = exports.GoBack = exports.DesktopHeaderContainer = exports.DesktopContainer = exports.Container = exports.BuyCTAWhite = exports.BuyCTA = exports.Button = exports.BottomNavContainer = exports.AircastingLogo = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst NAVBAR_HEIGHT = \"7.8rem\";\nexports.NAVBAR_HEIGHT = NAVBAR_HEIGHT;\nconst Header = styled_components_1.default.header `\n display: flex;\n justify-content: space-between;\n align-items: center;\n background-color: transparent;\n z-index: 6;\n flex-wrap: wrap;\n position: absolute;\n\n @media ${media_1.media.desktop} {\n height: ${NAVBAR_HEIGHT};\n position: absolute;\n width: 100%;\n margin: 0 auto;\n top: 0;\n left: 0;\n }\n`;\nexports.Header = Header;\nconst MobileContainer = styled_components_1.default.div `\n display: flex;\n padding: 1.5rem 2rem;\n\n @media ${media_1.media.desktop} {\n display: none;\n }\n`;\nexports.MobileContainer = MobileContainer;\nconst DesktopContainer = styled_components_1.default.div `\n display: none;\n\n @media ${media_1.media.desktop} {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n padding: 2rem;\n flex-wrap: wrap;\n gap: 1rem;\n flex-direction: flex-reverse;\n }\n`;\nexports.DesktopContainer = DesktopContainer;\nconst SearchContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n border-radius: 10px;\n background-color: ${colors_1.white};\n padding: 1rem 1.5rem;\n gap: 2rem;\n`;\nexports.SearchContainer = SearchContainer;\nconst AircastingLogo = styled_components_1.default.img `\n width: ${({ $isSmallScreen }) => ($isSmallScreen ? \"3.5rem\" : \"15rem\")};\n height: 4.3rem;\n`;\nexports.AircastingLogo = AircastingLogo;\nconst MapControls = styled_components_1.default.div `\n display: flex;\n align-items: center;\n gap: 1.6rem;\n ${(props) => props.$isTimelapseView &&\n `opacity: 0.7;\n pointer-events: none;`}\n\n @media ${media_1.media.smallDesktop} {\n gap: 1rem;\n padding-left: 0.8rem;\n }\n\n @media ${media_1.media.desktop} {\n padding-left: 0.8rem;\n }\n\n @media ${media_1.media.largeDesktop} {\n padding-left: 3.6rem;\n }\n`;\nexports.MapControls = MapControls;\nconst Button = styled_components_1.default.button `\n border: none;\n background: none;\n`;\nexports.Button = Button;\nconst MenuButton = (0, styled_components_1.default)(Button) `\n background-color: transparent;\n display: flex;\n align-items: center;\n cursor: pointer;\n\n @media ${media_1.media.mediumDesktop} {\n background-color: ${colors_1.white};\n border-radius: 10px;\n box-shadow: 0px 4px 4px 0px rgba(76, 86, 96, 0.1);\n font-color: ${colors_1.gray400};\n padding: 1.2rem;\n width: 48px;\n height: 42px;\n }\n`;\nexports.MenuButton = MenuButton;\nconst BuyCTA = styled_components_1.default.a `\n background-color: ${colors_1.cta};\n text-transform: uppercase;\n font-weight: 400;\n font-size: 1.2rem;\n padding: 1.3rem 2rem;\n display: flex;\n align-items: center;\n letter-spacing: 0.14px;\n height: 42px;\n border-radius: 10px;\n gap: 8px;\n text-decoration: none;\n box-shadow: 0px 2px 2px 0px rgba(76, 86, 96, 0.15);\n\n &:visited,\n &:link,\n &:active {\n color: ${colors_1.gray400};\n }\n`;\nexports.BuyCTA = BuyCTA;\nconst Container = styled_components_1.default.div `\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n`;\nexports.Container = Container;\nconst BottomNavContainer = (0, styled_components_1.default)(Container) `\n padding-top: 3.2rem;\n`;\nexports.BottomNavContainer = BottomNavContainer;\nconst BuyCTAWhite = (0, styled_components_1.default)(BuyCTA) `\n background-color: transparent;\n border: 1px solid ${colors_1.white};\n color: ${colors_1.white};\n border-radius: 0px;\n font-weight: 400;\n padding: 1.8rem 2rem;\n font-size: 1.3rem;\n\n &:visited,\n &:link,\n &:active {\n color: ${colors_1.white};\n }\n\n &:hover {\n background-color: ${colors_1.white};\n color: ${colors_1.blue};\n }\n`;\nexports.BuyCTAWhite = BuyCTAWhite;\nconst GoBack = styled_components_1.default.a `\n text-decoration: none;\n font-weight: 400;\n font-size: 1.2rem;\n color: ${colors_1.gray400};\n display: flex;\n align-items: center;\n gap: 7px;\n line-height: 22px;\n box-shadow: 0px 2px 2px 0px rgba(76, 86, 96, 0.15);\n background-color: ${colors_1.white};\n padding: 0.5rem 1rem;\n border-radius: 5px;\n cursor: pointer;\n\n @media ${media_1.media.smallDesktop} {\n padding: 1.6rem;\n text-transform: uppercase;\n font-size: 1.4rem;\n height: 4.8rem;\n box-shadow: 0px 4px 4px 0px rgba(76, 86, 96, 0.1);\n justify-content: center;\n }\n`;\nexports.GoBack = GoBack;\nconst GoBackButtonContainer = styled_components_1.default.div `\n top: 8rem;\n left: 2rem;\n position: fixed;\n`;\nexports.GoBackButtonContainer = GoBackButtonContainer;\nconst DesktopHeaderContainer = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-direction: column;\n gap: 1.2rem;\n`;\nexports.DesktopHeaderContainer = DesktopHeaderContainer;\nconst SmallDesktopContainer = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n width: min-content;\n\n @media ${media_1.media.mediumDesktop} {\n display: none;\n }\n`;\nexports.SmallDesktopContainer = SmallDesktopContainer;\nconst SmallDesktopMenuContainer = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n height: 32px;\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n background-color: ${colors_1.white};\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n width: min-content;\n border-radius: 10px;\n\n @media ${media_1.media.mediumDesktop} {\n display: none;\n }\n`;\nexports.SmallDesktopMenuContainer = SmallDesktopMenuContainer;\nconst MobileMenuContainer = styled_components_1.default.div `\n width: 61px;\n height: 32px;\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n border-radius: 10px;\n background-color: ${colors_1.white};\n display: flex;\n justify-content: space-evenly;\n align-items: center;\n cursor: pointer;\n`;\nexports.MobileMenuContainer = MobileMenuContainer;\nconst MobileHeaderContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n flex-wrap: wrap;\n @media ${media_1.media.desktop} {\n display: none;\n }\n`;\nexports.MobileHeaderContainer = MobileHeaderContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Navbar = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst DesktopHeader_1 = __importDefault(require(\"./DesktopHeader\"));\nconst MobileHeader_1 = require(\"./MobileHeader\");\nconst S = __importStar(require(\"./Navbar.style\"));\nconst Navbar = ({ isMapPage }) => {\n const [navMenuVisible, setNavMenuVisible] = (0, react_1.useState)(false);\n const { t } = (0, react_i18next_1.useTranslation)();\n const { currentUserSettings } = (0, mapParamsHandler_1.useMapParams)();\n const isTimelapseView = currentUserSettings === userStates_1.UserSettings.TimelapseView;\n const toggleMenuVisibility = () => setNavMenuVisible(!navMenuVisible);\n return (react_1.default.createElement(S.Header, null,\n isMapPage ? (react_1.default.createElement(MobileHeader_1.MobileHeader, { isTimelapseView: isTimelapseView, toggleMenuVisibility: toggleMenuVisibility, navMenuVisible: navMenuVisible, t: t })) : (react_1.default.createElement(MobileHeader_1.MobileCalendarHeader, { t: t })),\n react_1.default.createElement(DesktopHeader_1.default, { isMapPage: isMapPage, isTimelapseView: isTimelapseView, navMenuVisible: navMenuVisible, toggleMenuVisibility: toggleMenuVisibility, t: t })));\n};\nexports.Navbar = Navbar;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AlertPopup = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst ConfirmationMessage_1 = require(\"../../organisms/Modals/atoms/ConfirmationMessage\");\nconst S = __importStar(require(\"./Popups.style\"));\nconst AlertPopup = ({ open, message, top, left, }) => {\n return (react_1.default.createElement(S.ConfirmationPopup, { open: open, closeOnDocumentClick: false, arrow: false, contentStyle: {\n width: \"180px\",\n top: `${top}px`,\n left,\n position: \"absolute\",\n } },\n react_1.default.createElement(ConfirmationMessage_1.ConfirmationMessage, { message: message })));\n};\nexports.AlertPopup = AlertPopup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CopyLinkComponent = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst useAutoDismissAlert_1 = require(\"../../../utils/useAutoDismissAlert\");\nconst CopyLinkModal_1 = require(\"../../organisms/Modals/CopyLinkModal\");\nconst ConfirmationMessage_1 = require(\"../../organisms/Modals/atoms/ConfirmationMessage\");\nconst S = __importStar(require(\"./Popups.style\"));\nconst CopyLinkPopup = (props) => {\n return react_1.default.createElement(S.SmallPopup, Object.assign({}, props));\n};\nconst CopyLinkComponent = ({ button, isIconOnly, showBelowButton, onOpen, onClose, }) => {\n const [showConfirmation, setShowConfirmation] = (0, react_1.useState)(false);\n const [buttonPosition, setButtonPosition] = (0, react_1.useState)({ top: 0, left: 0 });\n const buttonRef = (0, react_1.useRef)(null);\n const { t } = (0, react_i18next_1.useTranslation)();\n const handleCopySubmit = (formData, close) => {\n close();\n setShowConfirmation(true);\n onClose && onClose();\n };\n const handleCopyError = (error) => {\n console.error(\"Error copying link: \", error.message);\n alert(t(\"alert.linkShortenedFailed\"));\n };\n const rect = buttonRef.current && buttonRef.current.getBoundingClientRect();\n const updateButtonPosition = () => {\n if (buttonRef.current) {\n const rect = buttonRef.current.getBoundingClientRect();\n setButtonPosition({ top: rect.top, left: rect.left });\n }\n };\n (0, react_1.useEffect)(() => {\n updateButtonPosition();\n window.addEventListener(\"resize\", updateButtonPosition);\n return () => {\n window.removeEventListener(\"resize\", updateButtonPosition);\n };\n }, [buttonRef.current]);\n (0, useAutoDismissAlert_1.useAutoDismissAlert)(showConfirmation, setShowConfirmation);\n (0, react_1.useEffect)(() => {\n updateButtonPosition();\n }, [rect === null || rect === void 0 ? void 0 : rect.top, rect === null || rect === void 0 ? void 0 : rect.left]);\n return (react_1.default.createElement(S.WrapperButton, { ref: buttonRef },\n react_1.default.createElement(CopyLinkPopup, { trigger: button, position: `${showBelowButton ? \"bottom\" : \"top\"} center`, nested: true, arrow: true, closeOnDocumentClick: true, onOpen: onOpen, onClose: onClose, contentStyle: showBelowButton\n ? {\n top: buttonPosition.top + 35,\n left: buttonPosition.left - 40,\n position: \"absolute\",\n }\n : {} }, (close) => (react_1.default.createElement(CopyLinkModal_1.CopyLinkModal, { onSubmit: (formData) => handleCopySubmit(formData, close), onError: handleCopyError }))),\n showConfirmation && (react_1.default.createElement(S.ConfirmationPopup, { open: showConfirmation, closeOnDocumentClick: false, arrow: false, contentStyle: {\n top: `${showBelowButton\n ? buttonPosition.top + 35\n : buttonPosition.top - 45}px`,\n left: `${isIconOnly\n ? buttonPosition.left - 12\n : showBelowButton\n ? buttonPosition.left + 20\n : buttonPosition.left + 38}px`,\n position: \"absolute\",\n } },\n react_1.default.createElement(ConfirmationMessage_1.ConfirmationMessage, { message: t(\"copyLinkModal.confirmationMessage\") })))));\n};\nexports.CopyLinkComponent = CopyLinkComponent;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ExportDataComponent = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst downloadWhite_svg_1 = __importDefault(require(\"../../../assets/icons/downloadWhite.svg\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst exportSessionSlice_1 = require(\"../../../store/exportSessionSlice\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst useAutoDismissAlert_1 = require(\"../../../utils/useAutoDismissAlert\");\nconst Modals_style_1 = require(\"../../organisms/Modals/Modals.style\");\nconst ModalInput_1 = require(\"../../organisms/Modals/atoms/ModalInput\");\nconst AlertComponent_1 = require(\"./AlertComponent\");\nconst S = __importStar(require(\"./Popups.style\"));\nconst initialExportModalData = {\n email: \"\",\n};\nconst ExportDataPopup = (props) => {\n return react_1.default.createElement(S.ExportDataSmallPopup, Object.assign({}, props));\n};\nconst ExportDataComponent = ({ button, fixedSessionTypeSelected, sessionsIds, onSubmit, isIconOnly, isSessionList, open, }) => {\n const exportButtonRef = (0, react_1.useRef)(null);\n const focusInputRef = (0, react_1.useRef)(null);\n const [buttonPosition, setButtonPosition] = (0, react_1.useState)({ top: 0, left: 0 });\n const [formState, setFormState] = (0, react_1.useState)(initialExportModalData);\n const [showConfirmation, setShowConfirmation] = (0, react_1.useState)(false);\n const [errorMessage, setErrorMessage] = (0, react_1.useState)(null);\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const NO_SESSIONS = sessionsIds.length === 0;\n const validateEmail = (email) => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n };\n const handleInputChange = (event) => {\n const { name, value } = event.target;\n setFormState((prevFormData) => (Object.assign(Object.assign({}, prevFormData), { [name]: value })));\n };\n const handleSubmit = (event, close) => {\n event.preventDefault();\n if (!validateEmail(formState.email)) {\n setErrorMessage(t(\"exportDataModal.invalidEmailMessage\"));\n return;\n }\n dispatch((0, exportSessionSlice_1.exportSession)({ sessionsIds, email: formState.email }));\n onSubmit(formState);\n setFormState(initialExportModalData);\n setShowConfirmation(true);\n close();\n };\n const rect = exportButtonRef.current && exportButtonRef.current.getBoundingClientRect();\n const updateButtonPosition = () => {\n if (rect) {\n setButtonPosition({\n top: rect.top + window.scrollY,\n left: rect.left + window.scrollX,\n });\n }\n };\n (0, useAutoDismissAlert_1.useAutoDismissAlert)(showConfirmation, setShowConfirmation);\n (0, react_1.useEffect)(() => {\n updateButtonPosition();\n window.addEventListener(\"resize\", updateButtonPosition);\n return () => {\n window.removeEventListener(\"resize\", updateButtonPosition);\n };\n }, [rect === null || rect === void 0 ? void 0 : rect.top]);\n const calculatePopupLeftPosition = () => {\n if (isSessionList) {\n return `${buttonPosition.left - 185}px`;\n }\n else if (isIconOnly) {\n if (fixedSessionTypeSelected) {\n return `${buttonPosition.left - 60}px`;\n }\n else {\n return `${buttonPosition.left - 30}px`;\n }\n }\n else {\n return `${buttonPosition.left - 2}px`;\n }\n };\n const dynamicArrowStyle = fixedSessionTypeSelected\n ? {}\n : {\n left: `${isIconOnly ? \"32%\" : \"50%\"}`,\n borderColor: `transparent transparent ${colors_1.white} transparent`,\n borderWidth: \"0 10px 10px 10px\",\n borderStyle: \"solid\",\n };\n return (react_1.default.createElement(S.WrapperButton, { ref: exportButtonRef },\n react_1.default.createElement(ExportDataPopup, { open: open, trigger: button, position: isSessionList ? \"left center\" : \"top center\", nested: true, closeOnDocumentClick: true, offsetX: fixedSessionTypeSelected ? 0 : 40, arrowStyle: dynamicArrowStyle }, (close) => (react_1.default.createElement(\"form\", { onSubmit: (formData) => handleSubmit(formData, close) },\n react_1.default.createElement(Modals_style_1.FormWrapper, null,\n react_1.default.createElement(ModalInput_1.ModalInput, { focusInputRef: focusInputRef, value: formState.email, onChange: handleInputChange, name: \"email\", type: \"email\" }),\n react_1.default.createElement(Modals_style_1.BlueButton, { type: \"submit\", \"aria-label\": t(\"exportDataModal.exportButton\") },\n t(\"exportDataModal.exportButton\"),\n react_1.default.createElement(\"img\", { src: downloadWhite_svg_1.default, style: { width: \"1.5rem\" } }))),\n errorMessage && react_1.default.createElement(ModalInput_1.RedErrorMessage, null, errorMessage)))),\n showConfirmation && (react_1.default.createElement(AlertComponent_1.AlertPopup, { open: showConfirmation, message: t(\"exportDataModal.confirmationMessage\"), top: isSessionList ? buttonPosition.top - 35 : buttonPosition.top - 95, left: calculatePopupLeftPosition() }))));\n};\nexports.ExportDataComponent = ExportDataComponent;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WrapperButton = exports.SmallPopup = exports.ExportDataSmallPopup = exports.ConfirmationPopup = void 0;\nconst reactjs_popup_1 = __importDefault(require(\"reactjs-popup\"));\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst WrapperButton = styled_components_1.default.div `\n display: flex;\n position: relative;\n`;\nexports.WrapperButton = WrapperButton;\nconst SmallPopup = (0, styled_components_1.default)(reactjs_popup_1.default) `\n width: 100%;\n height: auto;\n\n &-overlay {\n }\n\n &-content {\n width: 200px;\n background-color: ${colors_1.white};\n opacity: 1;\n border-radius: 8px;\n position: relative;\n padding: 1rem;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n z-index: 6;\n display: flex;\n }\n`;\nexports.SmallPopup = SmallPopup;\nconst ExportDataSmallPopup = (0, styled_components_1.default)(SmallPopup) `\n &-content {\n width: 180px;\n }\n`;\nexports.ExportDataSmallPopup = ExportDataSmallPopup;\nconst ConfirmationPopup = (0, styled_components_1.default)(reactjs_popup_1.default) `\n &-content {\n background-color: ${colors_1.white};\n opacity: 1;\n border-radius: 8px;\n padding: 1rem;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n z-index: 1200;\n display: flex;\n }\n`;\nexports.ConfirmationPopup = ConfirmationPopup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CrowdMapGridSize = exports.defaultGridSize = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst crowdMapSlice_1 = require(\"../../../store/crowdMapSlice\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst gridSizes = [1, 10, 20, 30, 40];\nexports.defaultGridSize = 51 - gridSizes[2];\nconst CrowdMapGridSize = () => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { setFilter, gridSize } = (0, mapParamsHandler_1.useMapParams)();\n const handleGridSize = (0, react_1.useCallback)((size) => {\n setFilter(mapParamsHandler_1.UrlParamsTypes.gridSize, (51 - size).toString());\n setTimeout(() => {\n dispatch((0, crowdMapSlice_1.setFetchingCrowdMapData)(true));\n }, 200);\n }, [dispatch, gridSize, setFilter]);\n return (react_1.default.createElement(S.SectionButtonsContainer, null, gridSizes.map((size) => (react_1.default.createElement(S.SectionButton, { key: size, onClick: () => handleGridSize(size), \"$isActive\": gridSize === 51 - size }, size)))));\n};\nexports.CrowdMapGridSize = CrowdMapGridSize;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CrowdMapToggle = void 0;\nconst lodash_1 = require(\"lodash\");\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst Toggle_1 = require(\"../../atoms/Toggle/Toggle\");\nconst CrowdMapGridSize_1 = require(\"./CrowdMapGridSize\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst CrowdMapToggle = () => {\n const { currentUserSettings, goToUserSettings, previousUserSettings, setUrlParams, updatePreviousUserSettings, } = (0, mapParamsHandler_1.useMapParams)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const getInitialMobileState = () => window.matchMedia(\"(max-width: 1023px)\").matches;\n const getInitialCrowdMapState = () => {\n return getInitialMobileState()\n ? previousUserSettings === userStates_1.UserSettings.CrowdMapView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView;\n };\n const [isMobile, setIsMobile] = (0, react_1.useState)(getInitialMobileState);\n const [isCrowdMapActive, setIsCrowdMapActive] = (0, react_1.useState)(getInitialCrowdMapState);\n const [renderGridSize, setRenderGridSize] = (0, react_1.useState)(isCrowdMapActive);\n const isFiltersViewActive = currentUserSettings === userStates_1.UserSettings.FiltersView;\n (0, react_1.useEffect)(() => {\n const checkMobile = (0, lodash_1.debounce)(() => {\n const mobileState = window.matchMedia(\"(max-width: 1023px)\").matches;\n setIsMobile(mobileState);\n }, 200);\n window.addEventListener(\"resize\", checkMobile);\n return () => {\n window.removeEventListener(\"resize\", checkMobile);\n checkMobile.cancel();\n };\n }, []);\n (0, react_1.useEffect)(() => {\n const newCrowdMapState = isMobile\n ? previousUserSettings === userStates_1.UserSettings.CrowdMapView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView;\n if (newCrowdMapState !== isCrowdMapActive) {\n setIsCrowdMapActive(newCrowdMapState);\n }\n }, [currentUserSettings, previousUserSettings, isMobile, isCrowdMapActive]);\n const handleToggleClick = (0, react_1.useCallback)(() => {\n const newCheckedState = !isCrowdMapActive;\n if (isMobile && isFiltersViewActive) {\n updatePreviousUserSettings(newCheckedState ? userStates_1.UserSettings.CrowdMapView : userStates_1.UserSettings.MapView);\n }\n else {\n goToUserSettings(newCheckedState ? userStates_1.UserSettings.CrowdMapView : userStates_1.UserSettings.MapView);\n }\n if (newCheckedState) {\n setRenderGridSize(true);\n setIsCrowdMapActive(true);\n }\n else {\n setIsCrowdMapActive(false);\n setTimeout(() => setRenderGridSize(false), 500);\n }\n }, [\n isCrowdMapActive,\n isMobile,\n isFiltersViewActive,\n setUrlParams,\n goToUserSettings,\n ]);\n return (react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.ToggleSettingsContainer, { \"$isActive\": isCrowdMapActive },\n react_1.default.createElement(S.ToggleWrapper, { onClick: handleToggleClick },\n react_1.default.createElement(Toggle_1.Toggle, { isChecked: isCrowdMapActive, onChange: handleToggleClick, variant: \"toggle\", noLabel: true, biggerMobileVersion: true }),\n react_1.default.createElement(S.CrowdMapToggleText, null,\n t(\"filters.crowdMapLabel\"),\n \" \",\n react_1.default.createElement(S.CrowdMapToggleOnOff, null, isCrowdMapActive ? t(\"filters.on\") : t(\"filters.off\")))),\n renderGridSize && (react_1.default.createElement(S.CrowdMapGridSizeWrapper, { \"$isVisible\": isCrowdMapActive },\n t(\"filters.crowdMapGridCellSizeHeader\"),\n react_1.default.createElement(CrowdMapGridSize_1.CrowdMapGridSize, null)))),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.crowdMapInfo\" }))));\n};\nexports.CrowdMapToggle = CrowdMapToggle;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomParameterFilter = void 0;\nconst downshift_1 = require(\"downshift\");\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst checkmarkBlue_svg_1 = __importDefault(require(\"../../../assets/icons/checkmarkBlue.svg\"));\nconst chevronLeft_svg_1 = __importDefault(require(\"../../../assets/icons/chevronLeft.svg\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sensorsSlice_1 = require(\"../../../store/sensorsSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst setSensor_1 = require(\"../../../utils/setSensor\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst getParametersFilter = (inputValue) => {\n const lowerCasedInputValue = inputValue.toLowerCase();\n return (parameter) => !inputValue || parameter.toLowerCase().startsWith(lowerCasedInputValue);\n};\nconst CustomParameterFilter = ({ customParameters, sessionsCount = 0, onClose = () => { }, fetchableSessionsCount, }) => {\n const [filteredParameters, setFilteredParameters] = (0, react_1.useState)(customParameters);\n const [inputValue, setInputValue] = (0, react_1.useState)(\"\");\n const [selectedItem, setSelectedItem] = (0, react_1.useState)(\"\");\n const { setUrlParams, sessionType, currentUserSettings, measurementType } = (0, mapParamsHandler_1.useMapParams)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const { getInputProps, getMenuProps, getItemProps } = (0, downshift_1.useCombobox)({\n items: filteredParameters,\n inputValue,\n selectedItem,\n onInputValueChange: ({ inputValue }) => {\n setInputValue(inputValue);\n setFilteredParameters(customParameters.filter(getParametersFilter(inputValue)));\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (newSelectedItem) {\n const sensorData = (0, setSensor_1.setSensor)(newSelectedItem, sensors, sessionType);\n setUrlParams([\n {\n key: mapParamsHandler_1.UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.currentUserSettings,\n value: isMobile\n ? userStates_1.UserSettings.FiltersView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.measurementType,\n value: newSelectedItem,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.sensorName,\n value: sensorData.sensorName,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.unitSymbol,\n value: sensorData.unitSymbol,\n },\n ]);\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false));\n setTimeout(() => {\n dispatch((0, mapSlice_1.setFetchingData)(true));\n setSelectedItem(\"\");\n }, 200);\n }\n },\n });\n const goBack = () => {\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(true));\n dispatch((0, sessionFiltersSlice_1.setCustomParametersModalOpen)(false));\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.DesktopCustomParameters, null,\n react_1.default.createElement(S.Hr, null),\n react_1.default.createElement(S.CustomParameterWrapper, null,\n react_1.default.createElement(S.FiltersOptionHeading, null, t(\"filters.customParameters\")),\n react_1.default.createElement(S.CustomParametersListWrapper, null,\n react_1.default.createElement(S.CustomParametersInput, Object.assign({}, getInputProps({ value: inputValue }), { placeholder: t(\"filters.searchCustomParameters\") })),\n react_1.default.createElement(S.CustomParameterList, Object.assign({}, getMenuProps()), filteredParameters.map((item, index) => (react_1.default.createElement(\"li\", Object.assign({ key: index }, getItemProps({ item, index })),\n react_1.default.createElement(S.CustomParameter, null, item)))))))),\n react_1.default.createElement(S.MobileCustomParameters, null,\n react_1.default.createElement(S.ModalContent, null,\n react_1.default.createElement(S.Header, null,\n react_1.default.createElement(S.ChevronBackButton, { onClick: goBack },\n react_1.default.createElement(\"img\", { src: chevronLeft_svg_1.default })),\n react_1.default.createElement(S.HeaderTitle, null, t(\"filters.selectCustomParameter\"))),\n react_1.default.createElement(S.CustomParametersInput, Object.assign({}, getInputProps({ value: inputValue }), { placeholder: t(\"filters.searchCustomParameters\") }))),\n react_1.default.createElement(S.CustomParametersListWrapper, null,\n react_1.default.createElement(S.CustomParameterList, Object.assign({}, getMenuProps()), filteredParameters.map((item, index) => (react_1.default.createElement(S.CustomParameterItem, Object.assign({ key: index }, getItemProps({ item, index })),\n react_1.default.createElement(S.CustomParameter, { \"$isActive\": item === measurementType }, item),\n item === measurementType && react_1.default.createElement(\"img\", { src: checkmarkBlue_svg_1.default })))))),\n react_1.default.createElement(S.ButtonsWrapper, null,\n react_1.default.createElement(S.BackButton, { onClick: goBack }, t(\"filters.back\")),\n react_1.default.createElement(S.MinorShowSessionsButton, { onClick: onClose }, fixedSessionTypeSelected ? (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" (\",\n sessionsCount,\n \")\")) : (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" \",\n t(\"map.results\", {\n results: sessionsCount,\n fetchableSessionsCount,\n }))))))));\n};\nexports.CustomParameterFilter = CustomParameterFilter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomSensorFilter = void 0;\nconst downshift_1 = require(\"downshift\");\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst checkmarkBlue_svg_1 = __importDefault(require(\"../../../assets/icons/checkmarkBlue.svg\"));\nconst chevronLeft_svg_1 = __importDefault(require(\"../../../assets/icons/chevronLeft.svg\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sensorsSlice_1 = require(\"../../../store/sensorsSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst SensorFilter_1 = require(\"./SensorFilter\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst getSensorsFilter = (inputValue) => {\n const lowerCasedInputValue = inputValue.toLowerCase();\n return (sensorName) => !inputValue || sensorName.toLowerCase().startsWith(lowerCasedInputValue);\n};\nconst CustomSensorFilter = ({ customSensors, sessionsCount = 0, onClose = () => { }, fetchableSessionsCount, }) => {\n const [filteredSensors, setFilteredSensors] = (0, react_1.useState)(customSensors);\n const [inputValue, setInputValue] = (0, react_1.useState)(\"\");\n const [selectedItem, setSelectedItem] = (0, react_1.useState)(\"\");\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const { setUrlParams, currentUserSettings, sensorName, sessionType } = (0, mapParamsHandler_1.useMapParams)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const { getInputProps, getMenuProps, getItemProps } = (0, downshift_1.useCombobox)({\n items: filteredSensors,\n inputValue,\n selectedItem,\n onInputValueChange: ({ inputValue }) => {\n setInputValue(inputValue);\n setFilteredSensors(customSensors.filter(getSensorsFilter(inputValue)));\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (newSelectedItem) {\n setUrlParams([\n {\n key: mapParamsHandler_1.UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.currentUserSettings,\n value: isMobile\n ? userStates_1.UserSettings.FiltersView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.sensorName,\n value: newSelectedItem,\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.unitSymbol,\n value: (0, SensorFilter_1.getSensorUnitSymbol)(newSelectedItem, sensors),\n },\n ]);\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false));\n setTimeout(() => {\n dispatch((0, mapSlice_1.setFetchingData)(true));\n setSelectedItem(\"\");\n }, 200);\n }\n },\n });\n const goBack = () => {\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(true));\n dispatch((0, sessionFiltersSlice_1.setCustomSensorsModalOpen)(false));\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.DesktopCustomParameters, null,\n react_1.default.createElement(S.Hr, null),\n react_1.default.createElement(S.CustomParameterWrapper, null,\n react_1.default.createElement(S.FiltersOptionHeading, null, t(\"filters.customSensors\")),\n react_1.default.createElement(S.CustomParametersListWrapper, null,\n react_1.default.createElement(S.CustomParametersInput, Object.assign({}, getInputProps({ value: inputValue }), { placeholder: t(\"filters.searchCustomSensors\") })),\n react_1.default.createElement(S.CustomParameterList, Object.assign({}, getMenuProps()), filteredSensors.map((item, index) => (react_1.default.createElement(\"li\", Object.assign({ key: index }, getItemProps({ item, index })),\n react_1.default.createElement(S.CustomParameter, null, item)))))))),\n react_1.default.createElement(S.MobileCustomParameters, null,\n react_1.default.createElement(S.ModalContent, null,\n react_1.default.createElement(S.Header, null,\n react_1.default.createElement(S.ChevronBackButton, { onClick: goBack },\n react_1.default.createElement(\"img\", { src: chevronLeft_svg_1.default })),\n react_1.default.createElement(S.HeaderTitle, null, t(\"filters.selectCustomSensor\"))),\n react_1.default.createElement(S.CustomParametersInput, Object.assign({}, getInputProps({ value: inputValue }), { placeholder: t(\"filters.searchCustomSensors\") }))),\n react_1.default.createElement(S.CustomParametersListWrapper, null,\n react_1.default.createElement(S.CustomParameterList, Object.assign({}, getMenuProps()), filteredSensors.map((item, index) => (react_1.default.createElement(S.CustomParameterItem, Object.assign({ key: index }, getItemProps({ item, index })),\n react_1.default.createElement(S.CustomParameter, { \"$isActive\": item === sensorName }, item),\n item === sensorName && react_1.default.createElement(\"img\", { src: checkmarkBlue_svg_1.default })))))),\n react_1.default.createElement(S.ButtonsWrapper, null,\n react_1.default.createElement(S.BackButton, { onClick: goBack }, t(\"filters.back\")),\n react_1.default.createElement(S.MinorShowSessionsButton, { onClick: onClose }, fixedSessionTypeSelected ? (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" (\",\n sessionsCount,\n \")\")) : (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" \",\n t(\"map.results\", {\n results: sessionsCount,\n fetchableSessionsCount,\n }))))))));\n};\nexports.CustomSensorFilter = CustomSensorFilter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DesktopSessionFilters = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst filters_1 = require(\"../../../types/filters\");\nconst sensors_1 = require(\"../../../types/sensors\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst CrowdmapToggle_1 = require(\"./CrowdmapToggle\");\nconst DormantToggle_1 = require(\"./DormantToggle\");\nconst IndoorOutdoorSwitch_1 = require(\"./IndoorOutdoorSwitch\");\nconst ParameterFilter_1 = require(\"./ParameterFilter\");\nconst ProfileNamesInput_1 = require(\"./ProfileNamesInput\");\nconst SensorFilter_1 = require(\"./SensorFilter\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst SessionTypeToggle_1 = require(\"./SessionTypeToggle\");\nconst TagsInput_1 = require(\"./TagsInput\");\nconst YearPicker_1 = require(\"./YearPicker\");\nconst DesktopSessionFilters = () => {\n const { sessionType, sensorName } = (0, mapParamsHandler_1.useMapParams)();\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const airBeamSensorNameSelected = sensorName.startsWith(sensors_1.SensorPrefix.AIR);\n const govermentSensorNameSelected = sensorName.startsWith(sensors_1.SensorPrefix.GOVERNMENT);\n return (react_1.default.createElement(S.SessionFilters, null,\n react_1.default.createElement(SessionTypeToggle_1.SessionTypeToggle, null),\n react_1.default.createElement(ParameterFilter_1.DesktopParameterFilter, null),\n react_1.default.createElement(SensorFilter_1.DesktopSensorFilter, null),\n !govermentSensorNameSelected && (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(ProfileNamesInput_1.ProfileNamesInput, null),\n react_1.default.createElement(TagsInput_1.TagsInput, null))),\n fixedSessionTypeSelected && airBeamSensorNameSelected && (react_1.default.createElement(IndoorOutdoorSwitch_1.IndoorOutdoorSwitch, null)),\n fixedSessionTypeSelected && react_1.default.createElement(DormantToggle_1.DormantToggle, null),\n !fixedSessionTypeSelected && react_1.default.createElement(CrowdmapToggle_1.CrowdMapToggle, null),\n !fixedSessionTypeSelected && react_1.default.createElement(YearPicker_1.YearPicker, null)));\n};\nexports.DesktopSessionFilters = DesktopSessionFilters;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DormantToggle = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst fixedSessionsSelectors_1 = require(\"../../../store/fixedSessionsSelectors\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst Toggle_1 = require(\"../../atoms/Toggle/Toggle\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst YearPickerButtons_1 = require(\"./YearPickerButtons\");\nconst DormantToggle = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { isActive, updateIsActive, updateTime } = (0, mapParamsHandler_1.useMapParams)();\n const [isDormant, setIsDormant] = (0, react_1.useState)(false);\n const isDormantSessionsFetched = (0, hooks_1.useAppSelector)(fixedSessionsSelectors_1.selectIsDormantSessionsFetched);\n const isActiveSessionsFetched = (0, hooks_1.useAppSelector)(fixedSessionsSelectors_1.selectIsActiveSessionsFetched);\n const handleToggleClick = (0, react_1.useCallback)(() => {\n const newDormantState = !isDormant;\n setIsDormant(newDormantState);\n const currentYear = new Date().getFullYear();\n if (newDormantState === true) {\n updateIsActive(false);\n dispatch((0, sessionFiltersSlice_1.setFixedSessionsType)(sessionFiltersSlice_1.FixedSessionsTypes.DORMANT));\n }\n else {\n updateTime(currentYear);\n updateIsActive(true);\n dispatch((0, sessionFiltersSlice_1.setFixedSessionsType)(sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE));\n }\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, [\n isDormant,\n isDormantSessionsFetched,\n isActiveSessionsFetched,\n dispatch,\n updateIsActive,\n updateTime,\n ]);\n (0, react_1.useEffect)(() => {\n setIsDormant(!isActive);\n if (!isActive) {\n dispatch((0, sessionFiltersSlice_1.setFixedSessionsType)(sessionFiltersSlice_1.FixedSessionsTypes.DORMANT));\n }\n }, [isActive]);\n return (react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.ToggleSettingsContainer, { \"$isActive\": isDormant },\n react_1.default.createElement(S.ToggleWrapper, { onClick: handleToggleClick },\n react_1.default.createElement(Toggle_1.Toggle, { isChecked: isDormant, onChange: handleToggleClick, variant: \"toggle\", noLabel: true, biggerMobileVersion: true }),\n react_1.default.createElement(S.CrowdMapToggleText, null,\n t(\"filters.dormantToggleLabel\"),\n \" \",\n react_1.default.createElement(S.CrowdMapToggleOnOff, null, isDormant ? t(\"filters.on\") : t(\"filters.off\")))),\n isDormant && (react_1.default.createElement(S.CrowdMapGridSizeWrapper, { \"$isVisible\": isDormant },\n react_1.default.createElement(S.DormantYearPickerWrapper, null,\n t(\"filters.yearPickerHeader\"),\n react_1.default.createElement(YearPickerButtons_1.YearPickerButtons, null))))),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.dormantInfo\" }))));\n};\nexports.DormantToggle = DormantToggle;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilterInfoPopup = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst questionMark_svg_1 = __importDefault(require(\"../../../assets/icons/questionMark.svg\"));\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst InfoPopup = (props) => {\n return react_1.default.createElement(S.InfoPopup, Object.assign({}, props));\n};\nconst FilterInfoPopup = ({ filterTranslationLabel }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n return (react_1.default.createElement(InfoPopup, { trigger: react_1.default.createElement(S.InfoButton, null,\n react_1.default.createElement(S.InfoIcon, { src: questionMark_svg_1.default })), position: isMobile ? \"left center\" : \"right center\", repositionOnResize: true, keepTooltipInside: true, arrow: false, on: [\"hover\", \"focus\"], offsetX: isMobile ? 5 : 10 },\n react_1.default.createElement(S.Info, null, t(filterTranslationLabel))));\n};\nexports.FilterInfoPopup = FilterInfoPopup;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IndoorOutdoorSwitch = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst booleans_1 = require(\"../../../const/booleans\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst IndoorOutdoorSwitch = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const { isIndoor, updateIndoorFilters, setFilter } = (0, mapParamsHandler_1.useMapParams)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const isIndoorParameterInUrl = isIndoor === booleans_1.TRUE;\n const handleIndoorClick = () => {\n updateIndoorFilters(booleans_1.TRUE);\n dispatch((0, mapSlice_1.setFetchingData)(true));\n };\n const handleOutdoorClick = () => {\n setFilter(mapParamsHandler_1.UrlParamsTypes.isIndoor, booleans_1.FALSE);\n dispatch((0, mapSlice_1.setFetchingData)(true));\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.IndoorToggleHeading, null, t(\"filters.placementOfStations\")),\n react_1.default.createElement(S.SingleFilterWrapper, { \"$noMarginTop\": true },\n react_1.default.createElement(S.IndoorFilterWrapper, null,\n react_1.default.createElement(S.IndoorToggleWrapper, { \"$isIndoor\": isIndoorParameterInUrl },\n react_1.default.createElement(S.IndoorTab, { \"$isActive\": !isIndoorParameterInUrl, \"$isIndoor\": isIndoorParameterInUrl, onClick: handleOutdoorClick }, t(\"filters.outdoor\")),\n react_1.default.createElement(S.IndoorTab, { \"$isActive\": isIndoorParameterInUrl, \"$isIndoor\": isIndoorParameterInUrl, onClick: handleIndoorClick }, t(\"filters.indoor\"))),\n isIndoorParameterInUrl && (react_1.default.createElement(S.IndoorToggleInfoWrapper, null,\n react_1.default.createElement(S.IndoorToggleInfoText, null, t(\"filters.indoorMapInfo\"))))),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.indoorInfo\" }))));\n};\nexports.IndoorOutdoorSwitch = IndoorOutdoorSwitch;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileSessionFilters = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst booleans_1 = require(\"../../../const/booleans\");\nconst fixedSessionsSelectors_1 = require(\"../../../store/fixedSessionsSelectors\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst indoorSessionsSelectors_1 = require(\"../../../store/indoorSessionsSelectors\");\nconst loadingSelectors_1 = require(\"../../../store/loadingSelectors\");\nconst mobileSessionsSelectors_1 = require(\"../../../store/mobileSessionsSelectors\");\nconst sensorsSlice_1 = require(\"../../../store/sensorsSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst sensors_1 = require(\"../../../types/sensors\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst Loader_1 = require(\"../../atoms/Loader/Loader\");\nconst Legend_style_1 = require(\"../../organisms/Map/Legend/Legend.style\");\nconst Map_style_1 = require(\"../../organisms/Map/Map.style\");\nconst CrowdmapToggle_1 = require(\"./CrowdmapToggle\");\nconst CustomParameterFilter_1 = require(\"./CustomParameterFilter\");\nconst CustomSensorFilter_1 = require(\"./CustomSensorFilter\");\nconst DormantToggle_1 = require(\"./DormantToggle\");\nconst IndoorOutdoorSwitch_1 = require(\"./IndoorOutdoorSwitch\");\nconst ParameterFilter_1 = require(\"./ParameterFilter\");\nconst ProfileNamesInput_1 = require(\"./ProfileNamesInput\");\nconst SensorFilter_1 = require(\"./SensorFilter\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst SessionTypeToggle_1 = require(\"./SessionTypeToggle\");\nconst TagsInput_1 = require(\"./TagsInput\");\nconst YearPicker_1 = require(\"./YearPicker\");\nconst MobileSessionFilters = ({ onClose, fetchableSessionsCount, }) => {\n const indoorSessionsState = (0, hooks_1.useAppSelector)(indoorSessionsSelectors_1.selectIndoorSessionsState);\n const dormantFixedSessionsState = (0, hooks_1.useAppSelector)(fixedSessionsSelectors_1.selectDormantFixedSessionsState);\n const activeFixedSessionsState = (0, hooks_1.useAppSelector)(fixedSessionsSelectors_1.selectActiveFixedSessionsState);\n const mobileSessionsState = (0, hooks_1.useAppSelector)(mobileSessionsSelectors_1.selectMobileSessionsState);\n const basicParametersModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectBasicParametersModalOpen);\n const customParametersModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectCustomParametersModalOpen);\n const [isBasicParametersModalOpen, setIsBasicParametersModalOpen] = (0, react_1.useState)(basicParametersModalOpen);\n const [isCustomParametersModalOpen, setIsCustomParametersModalOpen] = (0, react_1.useState)(customParametersModalOpen);\n const basicSensorsModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectBasicSensorsModalOpen);\n const customSensorsModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectCustomSensorsModalOpen);\n const [isBasicSensorsModalOpen, setIsBasicSensorsModalOpen] = (0, react_1.useState)(basicParametersModalOpen);\n const [isCustomSensorsModalOpen, setIsCustomSensorsModalOpen] = (0, react_1.useState)(customParametersModalOpen);\n const { sessionType, measurementType, isIndoor, sensorName } = (0, mapParamsHandler_1.useMapParams)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const parameters = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectParameters);\n const customParameters = (0, ParameterFilter_1.filterCustomParameters)(parameters, sessionType);\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const customSensors = (0, SensorFilter_1.filterCustomSensors)(sensors, measurementType, sessionType);\n const selectorsLoading = (0, hooks_1.useAppSelector)(loadingSelectors_1.selectIsLoading);\n const isIndoorParameterInUrl = isIndoor === booleans_1.TRUE;\n const airBeamSensorNameSelected = sensorName.startsWith(sensors_1.SensorPrefix.AIR);\n const govermentSensorNameSelected = sensorName.startsWith(sensors_1.SensorPrefix.GOVERNMENT);\n const isFixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const isDormant = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectIsDormantSessionsType);\n const sessionsCount = (0, react_1.useMemo)(() => {\n switch (sessionType) {\n case filters_1.SessionTypes.FIXED:\n return isIndoorParameterInUrl\n ? isDormant\n ? indoorSessionsState.dormantIndoorSessions.length\n : indoorSessionsState.activeIndoorSessions.length\n : isDormant\n ? dormantFixedSessionsState.length\n : activeFixedSessionsState.length;\n case filters_1.SessionTypes.MOBILE:\n return mobileSessionsState.sessions.length;\n }\n }, [\n mobileSessionsState,\n sessionType,\n indoorSessionsState,\n dormantFixedSessionsState,\n activeFixedSessionsState,\n mobileSessionsState,\n sessionType,\n ]);\n (0, react_1.useEffect)(() => {\n setIsBasicParametersModalOpen(basicParametersModalOpen);\n setIsCustomParametersModalOpen(customParametersModalOpen);\n setIsBasicSensorsModalOpen(basicSensorsModalOpen);\n setIsCustomSensorsModalOpen(customSensorsModalOpen);\n }, [\n basicParametersModalOpen,\n customParametersModalOpen,\n basicSensorsModalOpen,\n customSensorsModalOpen,\n ]);\n return (react_1.default.createElement(S.MobileSessionFilters, null, isBasicParametersModalOpen ? (react_1.default.createElement(ParameterFilter_1.MobileDeviceParameterFilter, { customParameters: customParameters, sessionsCount: sessionsCount, onClose: onClose, fetchableSessionsCount: fetchableSessionsCount })) : isCustomParametersModalOpen ? (react_1.default.createElement(CustomParameterFilter_1.CustomParameterFilter, { customParameters: customParameters, sessionsCount: sessionsCount, onClose: onClose, fetchableSessionsCount: fetchableSessionsCount })) : isBasicSensorsModalOpen ? (react_1.default.createElement(SensorFilter_1.MobileDeviceSensorFilter, { customSensors: customSensors, sessionsCount: sessionsCount, onClose: onClose, fetchableSessionsCount: fetchableSessionsCount })) : isCustomSensorsModalOpen ? (react_1.default.createElement(CustomSensorFilter_1.CustomSensorFilter, { customSensors: customSensors, sessionsCount: sessionsCount, onClose: onClose, fetchableSessionsCount: fetchableSessionsCount })) : (react_1.default.createElement(react_1.default.Fragment, null,\n selectorsLoading && (react_1.default.createElement(Map_style_1.LoaderOverlay, null,\n react_1.default.createElement(Loader_1.Loader, null))),\n react_1.default.createElement(S.ModalContent, null,\n react_1.default.createElement(S.Header, null,\n react_1.default.createElement(Legend_style_1.CloseButton, { onClick: onClose }),\n react_1.default.createElement(S.HeaderTitle, null, t(\"filters.editFilters\"))),\n react_1.default.createElement(SessionTypeToggle_1.SessionTypeToggle, null),\n react_1.default.createElement(ParameterFilter_1.ParameterFilter, { isBasicOpen: isBasicParametersModalOpen }),\n react_1.default.createElement(SensorFilter_1.SensorFilter, { isBasicOpen: isBasicSensorsModalOpen }),\n !govermentSensorNameSelected && (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(ProfileNamesInput_1.ProfileNamesInput, null),\n react_1.default.createElement(TagsInput_1.TagsInput, null))),\n isFixedSessionTypeSelected && airBeamSensorNameSelected && (react_1.default.createElement(IndoorOutdoorSwitch_1.IndoorOutdoorSwitch, null)),\n isFixedSessionTypeSelected && react_1.default.createElement(DormantToggle_1.DormantToggle, null),\n !isFixedSessionTypeSelected && react_1.default.createElement(YearPicker_1.YearPicker, null),\n !isFixedSessionTypeSelected && react_1.default.createElement(CrowdmapToggle_1.CrowdMapToggle, null)),\n react_1.default.createElement(S.ShowSessionsButton, { onClick: onClose }, isFixedSessionTypeSelected ? (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" (\",\n sessionsCount,\n \")\")) : (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" \",\n t(\"map.results\", {\n results: sessionsCount,\n fetchableSessionsCount,\n }))))))));\n};\nexports.MobileSessionFilters = MobileSessionFilters;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileDeviceParameterFilter = exports.DesktopParameterFilter = exports.ParameterFilter = exports.filterCustomParameters = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst checkmarkBlue_svg_1 = __importDefault(require(\"../../../assets/icons/checkmarkBlue.svg\"));\nconst chevronLeft_svg_1 = __importDefault(require(\"../../../assets/icons/chevronLeft.svg\"));\nconst chevronRight_svg_1 = __importDefault(require(\"../../../assets/icons/chevronRight.svg\"));\nconst minus_svg_1 = __importDefault(require(\"../../../assets/icons/minus.svg\"));\nconst plus_svg_1 = __importDefault(require(\"../../../assets/icons/plus.svg\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sensorsSlice_1 = require(\"../../../store/sensorsSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst CustomParameterFilter_1 = require(\"./CustomParameterFilter\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst getBasicMeasurementTypes = (sessionType) => sessionType === filters_1.SessionTypes.FIXED\n ? filters_1.FixedBasicParameterTypes\n : filters_1.MobileBasicParameterTypes;\nconst filterCustomParameters = (parameters, sessionType) => {\n const basicParameters = getBasicMeasurementTypes(sessionType);\n return parameters.filter((param) => !basicParameters.includes(param));\n};\nexports.filterCustomParameters = filterCustomParameters;\nconst ParameterFilter = ({ isBasicOpen, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const { measurementType } = (0, mapParamsHandler_1.useMapParams)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const basicParametersModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectBasicParametersModalOpen);\n const handleShowParametersClick = () => {\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(!basicParametersModalOpen));\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false));\n };\n return (react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.SelectedOptionButton, { onClick: handleShowParametersClick, \"$isActive\": isBasicOpen },\n react_1.default.createElement(S.SelectedOptionHeadingWrapper, null,\n react_1.default.createElement(S.SelectedOptionHeading, { \"$isSelected\": isBasicOpen }, t(\"filters.parameter\")),\n react_1.default.createElement(S.SelectedOption, { \"$isSelected\": isBasicOpen }, measurementType)),\n react_1.default.createElement(S.ChevronIcon, { \"$src\": chevronRight_svg_1.default, \"$isActive\": isBasicOpen })),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.parameterInfo\" })));\n};\nexports.ParameterFilter = ParameterFilter;\nconst DesktopParameterFilter = () => {\n const [isBasicOpen, setIsBasicOpen] = (0, react_1.useState)(false);\n const [moreOpen, setMoreOpen] = (0, react_1.useState)(false);\n const { t } = (0, react_i18next_1.useTranslation)();\n const { measurementType, sessionType, setParameterParams } = (0, mapParamsHandler_1.useMapParams)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const parameters = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectParameters);\n const customParameters = (0, exports.filterCustomParameters)(parameters, sessionType);\n const basicParametersModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectBasicParametersModalOpen);\n const customParametersModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectCustomParametersModalOpen);\n const handleOnMoreClick = () => {\n setMoreOpen(!moreOpen);\n };\n const handleSelectParameter = (selectedParameter) => {\n setParameterParams(selectedParameter, sensors);\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false));\n dispatch((0, mapSlice_1.setFetchingData)(true));\n };\n (0, react_1.useEffect)(() => {\n setIsBasicOpen(basicParametersModalOpen);\n setMoreOpen(customParametersModalOpen);\n }, [basicParametersModalOpen, customParametersModalOpen]);\n return (react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(exports.ParameterFilter, { isBasicOpen: isBasicOpen }),\n !isMobile && isBasicOpen && (react_1.default.createElement(S.FiltersOptionsWrapper, null,\n react_1.default.createElement(S.BasicParameterWrapper, null,\n react_1.default.createElement(S.FiltersOptionHeading, null, t(\"filters.parameter\")),\n getBasicMeasurementTypes(sessionType).map((item, id) => (react_1.default.createElement(S.FiltersOptionButton, { \"$isSelected\": item === measurementType, key: id, onClick: () => handleSelectParameter(item) }, item))),\n customParameters.length > 0 && (react_1.default.createElement(S.SeeMoreButton, { onClick: () => setMoreOpen(!moreOpen) },\n react_1.default.createElement(S.SeeMoreSpan, null, t(`filters.${moreOpen ? \"seeLess\" : \"seeMore\"}`)),\n react_1.default.createElement(\"img\", { src: moreOpen ? minus_svg_1.default : plus_svg_1.default })))),\n moreOpen && (react_1.default.createElement(CustomParameterFilter_1.CustomParameterFilter, { customParameters: customParameters }))))));\n};\nexports.DesktopParameterFilter = DesktopParameterFilter;\nconst MobileDeviceParameterFilter = ({ customParameters, sessionsCount, onClose, fetchableSessionsCount, }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const { t } = (0, react_i18next_1.useTranslation)();\n const { measurementType, setParameterParams, sessionType } = (0, mapParamsHandler_1.useMapParams)();\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const handleSelectParameter = (0, react_1.useCallback)((selectedParameter) => {\n setParameterParams(selectedParameter, sensors);\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false));\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, [sensors]);\n const handleShowMoreClick = () => {\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false));\n dispatch((0, sessionFiltersSlice_1.setCustomParametersModalOpen)(true));\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.ModalContent, null,\n react_1.default.createElement(S.Header, null,\n react_1.default.createElement(S.ChevronBackButton, { onClick: () => dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false)) },\n react_1.default.createElement(\"img\", { src: chevronLeft_svg_1.default })),\n react_1.default.createElement(S.HeaderTitle, null, t(\"filters.selectParameter\"))),\n react_1.default.createElement(S.Description, null, t(\"filters.selectParameterDescription\")),\n react_1.default.createElement(S.BasicParameterButtonsWrapper, null, getBasicMeasurementTypes(sessionType).map((item, id) => (react_1.default.createElement(S.BasicParameterButton, { key: id, onClick: () => handleSelectParameter(item) },\n react_1.default.createElement(S.ButtonSpan, { \"$isActive\": item === measurementType }, item),\n item === measurementType && react_1.default.createElement(\"img\", { src: checkmarkBlue_svg_1.default }))))),\n customParameters.length > 0 && (react_1.default.createElement(S.GrayButton, { onClick: handleShowMoreClick }, t(\"filters.showCustomParameters\")))),\n react_1.default.createElement(S.ButtonsWrapper, null,\n react_1.default.createElement(S.BackButton, { onClick: () => dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false)) }, t(\"filters.back\")),\n react_1.default.createElement(S.MinorShowSessionsButton, { onClick: onClose }, fixedSessionTypeSelected ? (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" (\",\n sessionsCount,\n \")\")) : (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" \",\n t(\"map.results\", {\n results: sessionsCount,\n fetchableSessionsCount,\n })))))));\n};\nexports.MobileDeviceParameterFilter = MobileDeviceParameterFilter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProfileNamesInput = void 0;\nconst downshift_1 = require(\"downshift\");\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst booleans_1 = require(\"../../../const/booleans\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst Spinner_1 = require(\"../../atoms/Loader/Spinner\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst ProfileNamesInput = () => {\n const [items, setItems] = (0, react_1.useState)([\"\"]);\n const [inputValue, setInputValue] = (0, react_1.useState)(\"\");\n const [selectedItem, setSelectedItem] = (0, react_1.useState)(\"\");\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const { boundWest, boundEast, boundNorth, boundSouth, sensorName, sessionType, setFilter, tags, timeFrom, timeTo, unitSymbol, usernames, isIndoor, isActive, } = (0, mapParamsHandler_1.useMapParams)();\n const isFirstRender = (0, react_1.useRef)(true);\n const usernamesToSelect = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectUsernames);\n const isIndoorParameterInUrl = isIndoor === booleans_1.TRUE;\n const isUsernamesInputFetching = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectIsUsernamesInputFetching);\n const selectedSessionType = sessionType || filters_1.SessionTypes.FIXED;\n const preparedUnitSymbol = unitSymbol.replace(/\"/g, \"\");\n const tagsDecoded = tags && decodeURIComponent(tags);\n const getQueryParams = (usernames) => {\n return {\n tags: tagsDecoded,\n west: boundWest.toString(),\n east: boundEast.toString(),\n south: boundSouth.toString(),\n north: boundNorth.toString(),\n timeFrom: timeFrom,\n timeTo: timeTo,\n usernames: usernames,\n sensorName: sensorName,\n unitSymbol: preparedUnitSymbol,\n sessionType: selectedSessionType,\n isIndoor: isIndoor === booleans_1.TRUE,\n isActive: isActive,\n };\n };\n const getUsernamesToSelectFiltered = (usernamesToBeExcluded) => {\n return usernamesToBeExcluded\n ? usernamesToSelect.filter((username) => !usernamesToBeExcluded.includes(username))\n : usernamesToSelect;\n };\n const { isOpen, getMenuProps, getInputProps, getItemProps, reset } = (0, downshift_1.useCombobox)({\n items: items,\n inputValue,\n selectedItem,\n onInputValueChange: ({ inputValue }) => {\n setInputValue(inputValue);\n const usernamesToSelectFiltered = getUsernamesToSelectFiltered(decodedUsernamesArray);\n const filteredUsernames = inputValue\n ? usernamesToSelectFiltered.filter((username) => username.toLowerCase().startsWith(inputValue.toLowerCase()))\n : decodedUsernamesArray\n ? usernamesToSelect.filter((username) => !decodedUsernamesArray.includes(username))\n : usernamesToSelect;\n setItems(filteredUsernames);\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (newSelectedItem !== null &&\n !(decodedUsernamesArray === null || decodedUsernamesArray === void 0 ? void 0 : decodedUsernamesArray.includes(newSelectedItem))) {\n const decodedUsernames = usernames && decodeURIComponent(usernames);\n const selectedUsernames = decodedUsernames + \", \" + newSelectedItem;\n const urlEncodedString = encodeURIComponent(selectedUsernames);\n setFilter(mapParamsHandler_1.UrlParamsTypes.usernames, urlEncodedString.toString());\n reset();\n setSelectedItem(\"\");\n const usernamesToSelectFiltered = getUsernamesToSelectFiltered(decodedUsernamesArray);\n setItems(usernamesToSelectFiltered);\n }\n },\n });\n const handleOnInputClick = () => {\n const queryParams = getQueryParams(inputValue);\n dispatch((0, sessionFiltersSlice_1.fetchUsernames)(queryParams));\n };\n const decodedUsernamesArray = usernames &&\n decodeURIComponent(usernames)\n .split(\", \")\n .filter((el) => el !== \"\");\n const displaySearchResults = isOpen && items.length > 0;\n const handleOnClose = (itemToRemove) => {\n const usernamesUpdated = decodedUsernamesArray &&\n decodedUsernamesArray.filter((el) => el !== itemToRemove);\n const decodedUsernamesString = usernamesUpdated\n ? usernamesUpdated.join(\", \")\n : \"\";\n setFilter(mapParamsHandler_1.UrlParamsTypes.usernames, decodedUsernamesString.toString());\n const usernamesToSelectFiltered = getUsernamesToSelectFiltered(usernamesUpdated);\n setItems(usernamesToSelectFiltered);\n };\n (0, react_1.useEffect)(() => {\n const usernamesToSelectFiltered = getUsernamesToSelectFiltered(decodedUsernamesArray);\n setItems(usernamesToSelectFiltered);\n }, [usernamesToSelect]);\n (0, react_1.useEffect)(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n else {\n const timer = setTimeout(() => {\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, 200);\n return () => clearTimeout(timer);\n }\n }, [usernames, dispatch]);\n return (react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.InputWrapper, null,\n react_1.default.createElement(S.Input, Object.assign({ placeholder: t(\"filters.profileNames\") }, getInputProps({\n value: inputValue,\n onClick: handleOnInputClick,\n }), { disabled: isIndoorParameterInUrl })),\n isUsernamesInputFetching && react_1.default.createElement(Spinner_1.Spinner, null)),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.profileNamesInfo\" })),\n decodedUsernamesArray && decodedUsernamesArray.length > 0 && (react_1.default.createElement(S.SelectedItemsWrapper, null, decodedUsernamesArray.map((item, index) => (react_1.default.createElement(S.SelectedItemTile, { key: index },\n react_1.default.createElement(S.SelectedItem, null, item),\n react_1.default.createElement(S.CloseSelectedItemButton, { onClick: () => handleOnClose(item) })))))),\n react_1.default.createElement(S.SuggestionList, Object.assign({ \"$displaySearchResults\": displaySearchResults }, getMenuProps()), items.map((item, index) => (react_1.default.createElement(S.Suggestion, Object.assign({ key: index }, getItemProps({ item, index })), item))))));\n};\nexports.ProfileNamesInput = ProfileNamesInput;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileDeviceSensorFilter = exports.DesktopSensorFilter = exports.SensorFilter = exports.filterCustomSensors = exports.getSensorUnitSymbol = exports.getBasicSensors = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst checkmarkBlue_svg_1 = __importDefault(require(\"../../../assets/icons/checkmarkBlue.svg\"));\nconst chevronLeft_svg_1 = __importDefault(require(\"../../../assets/icons/chevronLeft.svg\"));\nconst chevronRight_svg_1 = __importDefault(require(\"../../../assets/icons/chevronRight.svg\"));\nconst minus_svg_1 = __importDefault(require(\"../../../assets/icons/minus.svg\"));\nconst plus_svg_1 = __importDefault(require(\"../../../assets/icons/plus.svg\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sensorsSlice_1 = require(\"../../../store/sensorsSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst sensors_1 = require(\"../../../types/sensors\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst CustomSensorFilter_1 = require(\"./CustomSensorFilter\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst getBasicSensors = (measurementType, sessionType) => {\n if (measurementType !== filters_1.ParameterTypes.PARTICULATE_MATTER) {\n for (const [key, value] of Object.entries(filters_1.ParameterTypes)) {\n if (value === measurementType) {\n return sensors_1.BasicSensorTypes[key].toString().split(\",\");\n }\n }\n }\n else {\n if (sessionType === filters_1.SessionTypes.FIXED) {\n return sensors_1.BasicSensorTypes.PARTICULATE_MATTER.FIXED.toString().split(\",\");\n }\n else if (sessionType === filters_1.SessionTypes.MOBILE) {\n return sensors_1.BasicSensorTypes.PARTICULATE_MATTER.MOBILE.toString().split(\",\");\n }\n }\n};\nexports.getBasicSensors = getBasicSensors;\nconst getSensorUnitSymbol = (selectedSensor, sensors) => {\n const sensor = sensors.find((el) => el.sensorName === selectedSensor);\n return (sensor === null || sensor === void 0 ? void 0 : sensor.unitSymbol) || \"\";\n};\nexports.getSensorUnitSymbol = getSensorUnitSymbol;\nconst filterCustomSensors = (sensors, measurementType, sessionType) => {\n const sensorsForMeasurementType = sensors.filter((sensor) => sensor.measurementType === measurementType);\n const basicSensors = (0, exports.getBasicSensors)(measurementType, sessionType);\n return sensorsForMeasurementType\n .filter((sensor) => !(basicSensors === null || basicSensors === void 0 ? void 0 : basicSensors.includes(sensor.sensorName)))\n .map((sensor) => sensor.sensorName);\n};\nexports.filterCustomSensors = filterCustomSensors;\nconst SensorFilter = ({ isBasicOpen }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const { sensorName } = (0, mapParamsHandler_1.useMapParams)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const basicSensorsModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectBasicSensorsModalOpen);\n const handleShowSensorClick = () => {\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(!basicSensorsModalOpen));\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false));\n };\n return (react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.SelectedOptionButton, { onClick: handleShowSensorClick, \"$isActive\": isBasicOpen },\n react_1.default.createElement(S.SelectedOptionHeadingWrapper, null,\n react_1.default.createElement(S.SelectedOptionHeading, { \"$isSelected\": isBasicOpen }, t(\"filters.sensor\")),\n react_1.default.createElement(S.SelectedOption, { \"$isSelected\": isBasicOpen }, sensorName)),\n react_1.default.createElement(S.ChevronIcon, { \"$src\": chevronRight_svg_1.default, \"$isActive\": isBasicOpen })),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.sensorInfo\" })));\n};\nexports.SensorFilter = SensorFilter;\nconst DesktopSensorFilter = () => {\n const [isBasicOpen, setIsBasicOpen] = (0, react_1.useState)(false);\n const [moreOpen, setMoreOpen] = (0, react_1.useState)(false);\n const { t } = (0, react_i18next_1.useTranslation)();\n const { measurementType, sessionType, sensorName, setSensorParams } = (0, mapParamsHandler_1.useMapParams)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const basicSensorsModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectBasicSensorsModalOpen);\n const customSensorsModalOpen = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectCustomSensorsModalOpen);\n const customSensors = (0, exports.filterCustomSensors)(sensors, measurementType, sessionType);\n const basicSensors = (0, exports.getBasicSensors)(measurementType, sessionType);\n const handleSelectSensor = (selectedSensor) => {\n setSensorParams(selectedSensor, sensors);\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false));\n dispatch((0, mapSlice_1.setFetchingData)(true));\n };\n (0, react_1.useEffect)(() => {\n setIsBasicOpen(basicSensorsModalOpen);\n setMoreOpen(customSensorsModalOpen);\n }, [basicSensorsModalOpen, customSensorsModalOpen]);\n return (react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(exports.SensorFilter, { isBasicOpen: isBasicOpen }),\n !isMobile && isBasicOpen && (react_1.default.createElement(S.FiltersOptionsWrapper, null,\n react_1.default.createElement(S.BasicParameterWrapper, null,\n react_1.default.createElement(S.FiltersOptionHeading, null, t(\"filters.sensor\")), basicSensors === null || basicSensors === void 0 ? void 0 :\n basicSensors.map((item, id) => (react_1.default.createElement(S.FiltersOptionButton, { onClick: () => handleSelectSensor(item), \"$isSelected\": item === sensorName, key: id }, item))),\n customSensors.length > 0 && (react_1.default.createElement(S.SeeMoreButton, { onClick: () => setMoreOpen(!moreOpen) },\n react_1.default.createElement(S.SeeMoreSpan, null, t(`filters.${moreOpen ? \"seeLess\" : \"seeMore\"}`)),\n react_1.default.createElement(\"img\", { src: moreOpen ? minus_svg_1.default : plus_svg_1.default })))),\n moreOpen && react_1.default.createElement(CustomSensorFilter_1.CustomSensorFilter, { customSensors: customSensors })))));\n};\nexports.DesktopSensorFilter = DesktopSensorFilter;\nconst MobileDeviceSensorFilter = ({ customSensors, sessionsCount, onClose, fetchableSessionsCount, }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const { measurementType, sessionType, sensorName, currentUserSettings, isIndoor, setSensorParams, } = (0, mapParamsHandler_1.useMapParams)();\n const sensors = (0, hooks_1.useAppSelector)(sensorsSlice_1.selectSensors);\n const basicSensors = (0, exports.getBasicSensors)(measurementType, sessionType);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const handleSelectSensor = (0, react_1.useCallback)((selectedSensor) => {\n setSensorParams(selectedSensor, sensors);\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false));\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, [\n sensors,\n isMobile,\n currentUserSettings,\n isIndoor,\n setSensorParams,\n dispatch,\n ]);\n const handleShowMoreClick = () => {\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false));\n dispatch((0, sessionFiltersSlice_1.setCustomSensorsModalOpen)(true));\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.ModalContent, null,\n react_1.default.createElement(S.Header, null,\n react_1.default.createElement(S.ChevronBackButton, { onClick: () => dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false)) },\n react_1.default.createElement(\"img\", { src: chevronLeft_svg_1.default })),\n react_1.default.createElement(S.HeaderTitle, null, t(\"filters.selectSensor\"))),\n react_1.default.createElement(S.Description, null, t(\"filters.selectSensorsDescription\")),\n react_1.default.createElement(S.BasicParameterButtonsWrapper, null, basicSensors === null || basicSensors === void 0 ? void 0 : basicSensors.map((item, id) => (react_1.default.createElement(S.BasicParameterButton, { key: id, onClick: () => handleSelectSensor(item) },\n react_1.default.createElement(S.ButtonSpan, { \"$isActive\": item === sensorName }, item),\n item === sensorName && react_1.default.createElement(\"img\", { src: checkmarkBlue_svg_1.default }))))),\n customSensors.length > 0 && (react_1.default.createElement(S.GrayButton, { onClick: handleShowMoreClick }, t(\"filters.showCustomSensors\")))),\n react_1.default.createElement(S.ButtonsWrapper, null,\n react_1.default.createElement(S.BackButton, { onClick: () => dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false)) }, t(\"filters.back\")),\n react_1.default.createElement(S.MinorShowSessionsButton, { onClick: onClose }, sessionType === filters_1.SessionTypes.FIXED ? (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" (\",\n sessionsCount,\n \")\")) : (react_1.default.createElement(react_1.default.Fragment, null,\n t(\"filters.showSessions\"),\n \" \",\n t(\"map.results\", {\n results: sessionsCount,\n fetchableSessionsCount,\n })))))));\n};\nexports.MobileDeviceSensorFilter = MobileDeviceSensorFilter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SeeMoreSpan = exports.SeeMoreButton = exports.SectionButtonsContainer = exports.SectionButton = exports.ModalContent = exports.MobileSessionFilters = exports.MobileCustomParameters = exports.MinorShowSessionsButton = exports.InputWrapper = exports.Input = exports.InfoPopup = exports.InfoIcon = exports.InfoButton = exports.Info = exports.IndoorToggleWrapper = exports.IndoorToggleInfoWrapper = exports.IndoorToggleInfoText = exports.IndoorToggleHeading = exports.IndoorTab = exports.IndoorFilterWrapper = exports.IconWrapper = exports.Hr = exports.HeaderTitle = exports.Header = exports.GrayButton = exports.FiltersOptionsWrapper = exports.FiltersOptionHeading = exports.FiltersOptionButton = exports.DormantYearPickerWrapper = exports.DesktopCustomParameters = exports.Description = exports.CustomParameterWrapper = exports.CustomParametersListWrapper = exports.CustomParametersInput = exports.CustomParameterSearch = exports.CustomParameterList = exports.CustomParameterItem = exports.CustomParameter = exports.CrowdMapToggleText = exports.CrowdMapToggleOnOff = exports.CrowdMapGridSizeWrapper = exports.CloseSelectedItemButton = exports.ChevronIcon = exports.ChevronBackButton = exports.ButtonsWrapper = exports.ButtonSpan = exports.BasicParameterWrapper = exports.BasicParameterButtonsWrapper = exports.BasicParameterButton = exports.BackButton = void 0;\nexports.YearPickerWrapper = exports.Wrapper = exports.ToggleWrapper = exports.ToggleSettingsContainer = exports.Tab = exports.SuggestionList = exports.Suggestion = exports.SingleFilterWrapper = exports.ShowSessionsButton = exports.SessionToggleWrapper = exports.SessionFilters = exports.SelectedOptionHeadingWrapper = exports.SelectedOptionHeading = exports.SelectedOptionButton = exports.SelectedOption = exports.SelectedItemTile = exports.SelectedItemsWrapper = exports.SelectedItem = void 0;\nconst styled_components_1 = __importStar(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Button_style_1 = require(\"../../atoms/Button/Button.style\");\nconst Typography_1 = require(\"../../atoms/Typography\");\nconst Legend_style_1 = require(\"../../organisms/Map/Legend/Legend.style\");\nconst LocationSearch_style_1 = require(\"../LocationSearch/LocationSearch.style\");\nconst Popups_style_1 = require(\"../Popups/Popups.style\");\nconst fadeIn = (0, styled_components_1.keyframes) `\n from {\n opacity: 0;\n transform: translateY(-1.5rem);\n max-height: 0;\n }\n to {\n opacity: 1;\n transform: translateY(0);\n max-height: 33rem;\n }\n`;\nconst fadeOut = (0, styled_components_1.keyframes) `\n from {\n opacity: 1;\n transform: translateY(0);\n max-height: 33rem;\n }\n to {\n opacity: 0;\n transform: translateY(-1.5rem);\n max-height: 0;\n }\n`;\nconst SessionFilters = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n position: absolute;\n padding: 0 0.9rem 1.6rem 0.9rem;\n margin: 0.8rem 0 0 2rem;\n width: 30rem;\n border-radius: 10px;\n background-color: ${colors_1.white};\n`;\nexports.SessionFilters = SessionFilters;\nconst Wrapper = styled_components_1.default.div `\n position: relative;\n`;\nexports.Wrapper = Wrapper;\nconst SingleFilterWrapper = styled_components_1.default.div `\n display: flex;\n align-items: center;\n margin-top: ${(props) => (props.$noMarginTop ? 0 : \"1.6rem\")};\n width: 100%;\n`;\nexports.SingleFilterWrapper = SingleFilterWrapper;\nconst SessionToggleWrapper = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n border-radius: 10px;\n height: 4.2rem;\n width: 100%;\n`;\nexports.SessionToggleWrapper = SessionToggleWrapper;\nconst Tab = styled_components_1.default.button `\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: 1rem 3rem;\n background-color: ${(props) => (props.$isActive ? colors_1.acBlue : colors_1.gray100)};\n border: none;\n text-transform: uppercase;\n font-size: 1.4rem;\n color: ${(props) => (props.$isActive ? colors_1.white : colors_1.gray300)};\n cursor: pointer;\n\n &:first-child {\n border-radius: 10px 0 0 10px;\n }\n\n &:nth-child(2) {\n border-radius: 0 10px 10px 0;\n }\n`;\nexports.Tab = Tab;\nconst IconWrapper = styled_components_1.default.div `\n margin-left: 0.8rem;\n background-color: ${(props) => (props.$isActive ? colors_1.white : colors_1.gray300)};\n mask: url(${(props) => props.$src});\n mask-size: 100% 100%;\n width: 2rem;\n height: 2rem;\n`;\nexports.IconWrapper = IconWrapper;\nconst MobileSessionFilters = (0, styled_components_1.default)(SessionFilters) `\n display: flex;\n flex-direction: column;\n overflow-x: hidden;\n bottom: 0;\n top: 0;\n z-index: 6;\n margin: 0;\n width: 100%;\n`;\nexports.MobileSessionFilters = MobileSessionFilters;\nconst ModalContent = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n position: sticky;\n background-color: ${colors_1.white};\n`;\nexports.ModalContent = ModalContent;\nconst Header = styled_components_1.default.div `\n display: flex;\n align-items: center;\n margin: 1.5rem 0;\n`;\nexports.Header = Header;\nconst HeaderTitle = styled_components_1.default.span `\n font-size: 1.6rem;\n margin-left: 1.2rem;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\nexports.HeaderTitle = HeaderTitle;\nconst ShowSessionsButton = (0, styled_components_1.default)(Button_style_1.Button) `\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n border: none;\n background-color: ${colors_1.acBlue};\n color: ${colors_1.white};\n font-size: 1.4rem;\n text-transform: uppercase;\n margin-top: 1rem;\n`;\nexports.ShowSessionsButton = ShowSessionsButton;\nconst InputWrapper = styled_components_1.default.div `\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n`;\nexports.InputWrapper = InputWrapper;\nconst Input = styled_components_1.default.input `\n border: 1px solid ${colors_1.gray200};\n border-radius: 5px;\n width: 100%;\n font-size: 1.6rem;\n padding: 1.2rem 1.6rem;\n\n &::placeholder {\n color: ${colors_1.gray600};\n text-transform: uppercase;\n }\n\n @media ${media_1.media.desktop} {\n font-size: 1.4rem;\n }\n`;\nexports.Input = Input;\nconst SuggestionList = styled_components_1.default.ul `\n max-height: 30rem;\n top: 6rem;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-top: 0.5rem;\n display: ${(p) => (p.$displaySearchResults ? \"block\" : \"none\")};\n position: absolute;\n background-color: ${colors_1.white};\n width: 100%;\n border: 1px solid ${colors_1.gray200};\n border-radius: 5px;\n z-index: 1;\n`;\nexports.SuggestionList = SuggestionList;\nconst Suggestion = styled_components_1.default.li `\n font-size: 1.6rem;\n cursor: pointer;\n padding: 0.5rem;\n list-style: none;\n`;\nexports.Suggestion = Suggestion;\nconst SelectedItemsWrapper = styled_components_1.default.div `\n display: flex;\n flex-wrap: wrap;\n margin-top: 1rem;\n`;\nexports.SelectedItemsWrapper = SelectedItemsWrapper;\nconst SelectedItemTile = styled_components_1.default.div `\n display: flex;\n align-items: center;\n width: fit-content;\n border: 1px solid ${colors_1.gray200};\n border-radius: 5px;\n padding: 0.5rem;\n margin: 0 0.5rem 0.5rem 0;\n`;\nexports.SelectedItemTile = SelectedItemTile;\nconst SelectedItem = styled_components_1.default.span `\n font-size: 1.4rem;\n margin-right: 0.5rem;\n color: ${colors_1.gray400};\n`;\nexports.SelectedItem = SelectedItem;\nconst CloseSelectedItemButton = (0, styled_components_1.default)(Legend_style_1.CloseButton) `\n width: 1rem;\n height: 1rem;\n`;\nexports.CloseSelectedItemButton = CloseSelectedItemButton;\nconst InfoButton = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n width: 1.8rem;\n height: 1.8rem;\n margin-left: 0.5rem;\n`;\nexports.InfoButton = InfoButton;\nconst InfoIcon = styled_components_1.default.img `\n width: 100%;\n height: 100%;\n`;\nexports.InfoIcon = InfoIcon;\nconst Info = styled_components_1.default.span `\n font-size: 1.4rem;\n color: ${colors_1.gray400};\n`;\nexports.Info = Info;\nconst InfoPopup = (0, styled_components_1.default)(Popups_style_1.SmallPopup) `\n &-content {\n border: 1px solid ${colors_1.gray200};\n width: 250px;\n }\n`;\nexports.InfoPopup = InfoPopup;\nconst CrowdMapGridSizeWrapper = styled_components_1.default.div `\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto auto;\n grid-gap: 0.4rem;\n justify-content: center;\n align-items: center;\n text-transform: uppercase;\n font-size: 1.4rem;\n color: ${colors_1.gray300};\n letter-spacing: 0.01em;\n\n overflow: hidden;\n max-height: ${({ $isVisible }) => ($isVisible ? \"33rem\" : \"0\")};\n animation: ${({ $isVisible }) => ($isVisible ? fadeIn : fadeOut)} 0.5s ease\n forwards;\n opacity: ${({ $isVisible }) => ($isVisible ? 1 : 0)};\n transform: ${({ $isVisible }) => $isVisible ? \"translateY(0)\" : \"translateY(-1.5rem)\"};\n transition: max-height 1s ease, opacity 0.5s ease, transform 0.5s ease;\n`;\nexports.CrowdMapGridSizeWrapper = CrowdMapGridSizeWrapper;\nconst SectionButtonsContainer = styled_components_1.default.div `\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n justify-content: space-between;\n grid-gap: 0.8rem;\n`;\nexports.SectionButtonsContainer = SectionButtonsContainer;\nconst SectionButton = (0, styled_components_1.default)(Button_style_1.Button) `\n display: flex;\n justify-content: center;\n align-items: center;\n text-transform: uppercase;\n border: none;\n background-color: ${(props) => (props.$isActive ? colors_1.acBlue : colors_1.gray100)};\n color: ${(props) => (props.$isActive ? colors_1.white : colors_1.gray300)};\n min-width: 3.8rem;\n transition: background-color 0.4s ease, color 0.3s ease;\n height: 25px;\n`;\nexports.SectionButton = SectionButton;\nconst ToggleSettingsContainer = styled_components_1.default.div `\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: auto auto;\n grid-gap: ${({ $isActive }) => ($isActive ? \"0.8rem\" : \"0\")};\n justify-content: center;\n align-items: center;\n border: 1px solid ${colors_1.gray200};\n min-height: 4.2rem;\n width: 100%;\n padding: 1.1rem 1.6rem;\n border-radius: 0.5rem;\n`;\nexports.ToggleSettingsContainer = ToggleSettingsContainer;\nconst ToggleWrapper = styled_components_1.default.div `\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: 0.8rem;\n align-items: center;\n font-size: 1.4rem;\n color: ${colors_1.gray600};\n width: 100%;\n`;\nexports.ToggleWrapper = ToggleWrapper;\nconst CrowdMapToggleText = styled_components_1.default.span `\n &::first-letter {\n text-transform: uppercase;\n }\n`;\nexports.CrowdMapToggleText = CrowdMapToggleText;\nconst CrowdMapToggleOnOff = styled_components_1.default.span `\n text-transform: uppercase;\n font-weight: 700;\n`;\nexports.CrowdMapToggleOnOff = CrowdMapToggleOnOff;\nconst SelectedOptionButton = (0, styled_components_1.default)(Button_style_1.Button) `\n width: 100%;\n display: flex;\n justify-content: space-between;\n padding: 0.6rem 1.6rem;\n background-color: ${(props) => props.$isActive && colors_1.acBlueTransparent};\n border-color: ${(props) => props.$isActive && colors_1.acBlue};\n`;\nexports.SelectedOptionButton = SelectedOptionButton;\nconst SelectedOptionHeadingWrapper = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n`;\nexports.SelectedOptionHeadingWrapper = SelectedOptionHeadingWrapper;\nconst SelectedOptionHeading = (0, styled_components_1.default)(Typography_1.H6) `\n text-transform: uppercase;\n color: ${(props) => (props.$isSelected ? colors_1.gray400 : colors_1.gray600)};\n opacity: ${(props) => props.$isSelected && 0.5};\n`;\nexports.SelectedOptionHeading = SelectedOptionHeading;\nconst SelectedOption = (0, styled_components_1.default)(Typography_1.H4) `\n color: ${(props) => (props.$isSelected ? colors_1.gray400 : colors_1.gray300)};\n`;\nexports.SelectedOption = SelectedOption;\nconst ChevronIcon = styled_components_1.default.img `\n width: 1rem;\n height: 2rem;\n background-color: ${(props) => (props.$isActive ? colors_1.acBlue : colors_1.gray300)};\n mask: url(${(props) => props.$src});\n mask-size: 100% 100%;\n`;\nexports.ChevronIcon = ChevronIcon;\nconst FiltersOptionsWrapper = (0, styled_components_1.default)(SessionFilters) `\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 1.6rem;\n margin: 0;\n z-index: 3;\n left: 105%;\n top: 1.6rem;\n border-top-left-radius: 0;\n width: fit-content;\n`;\nexports.FiltersOptionsWrapper = FiltersOptionsWrapper;\nconst FiltersOptionHeading = styled_components_1.default.span `\n font-size: 1.2rem;\n text-transform: uppercase;\n margin-bottom: 0.8rem;\n color: ${colors_1.gray300};\n`;\nexports.FiltersOptionHeading = FiltersOptionHeading;\nconst FiltersOptionButton = (0, styled_components_1.default)(Button_style_1.Button) `\n gap: 0;\n padding: 0.5rem 0.8rem;\n margin-bottom: 0.8rem;\n min-width: 12rem;\n height: 3rem;\n justify-content: flex-start;\n color: ${(props) => (props.$isSelected ? colors_1.acBlue : colors_1.gray300)};\n border: 1px solid ${colors_1.gray500};\n border-color: ${(props) => props.$isSelected && colors_1.lightBlue};\n font-size: 1.2rem;\n text-transform: capitalize;\n white-space: nowrap;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`;\nexports.FiltersOptionButton = FiltersOptionButton;\nconst SeeMoreButton = styled_components_1.default.button `\n display: flex;\n align-items: center;\n align-self: end;\n border: none;\n background-color: transparent;\n`;\nexports.SeeMoreButton = SeeMoreButton;\nconst SeeMoreSpan = styled_components_1.default.span `\n font-size: 1.2rem;\n color: ${colors_1.gray300};\n margin-right: 0.2rem;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\nexports.SeeMoreSpan = SeeMoreSpan;\nconst BasicParameterWrapper = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n`;\nexports.BasicParameterWrapper = BasicParameterWrapper;\nconst ChevronBackButton = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n margin-top: 0.3rem;\n`;\nexports.ChevronBackButton = ChevronBackButton;\nconst Description = styled_components_1.default.p `\n font-size: 1.2rem;\n line-height: 1.45rem;\n opacity: 50%;\n`;\nexports.Description = Description;\nconst ButtonsWrapper = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n position: sticky;\n height: 4.2rem;\n`;\nexports.ButtonsWrapper = ButtonsWrapper;\nconst BackButton = (0, styled_components_1.default)(Button_style_1.Button) `\n display: flex;\n justify-content: center;\n align-items: center;\n text-transform: uppercase;\n border: none;\n background-color: ${colors_1.gray100};\n color: ${colors_1.gray400};\n margin-right: 1rem;\n flex-grow: 2;\n`;\nexports.BackButton = BackButton;\nconst MinorShowSessionsButton = (0, styled_components_1.default)(ShowSessionsButton) `\n width: fit-content;\n flex-grow: 3;\n margin-top: 0;\n`;\nexports.MinorShowSessionsButton = MinorShowSessionsButton;\nconst BasicParameterButtonsWrapper = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n margin-top: 2rem;\n`;\nexports.BasicParameterButtonsWrapper = BasicParameterButtonsWrapper;\nconst BasicParameterButton = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n display: flex;\n justify-content: space-between;\n margin-bottom: 2.4rem;\n padding-right: 1rem;\n`;\nexports.BasicParameterButton = BasicParameterButton;\nconst ButtonSpan = (0, styled_components_1.default)(HeaderTitle) `\n color: ${(props) => (props.$isActive ? colors_1.acBlue : colors_1.gray400)};\n margin: 0;\n`;\nexports.ButtonSpan = ButtonSpan;\nconst GrayButton = (0, styled_components_1.default)(Button_style_1.Button) `\n display: flex;\n justify-content: center;\n align-items: center;\n text-transform: uppercase;\n border: none;\n background-color: ${colors_1.gray100};\n color: ${colors_1.gray400};\n width: 97%;\n align-self: center;\n`;\nexports.GrayButton = GrayButton;\nconst CustomParameterWrapper = styled_components_1.default.div ``;\nexports.CustomParameterWrapper = CustomParameterWrapper;\nconst CustomParametersListWrapper = styled_components_1.default.div `\n height: calc(100% - (10.5rem + 4.2rem + 1.6rem));\n\n @media (${media_1.media.desktop}) {\n height: auto;\n }\n`;\nexports.CustomParametersListWrapper = CustomParametersListWrapper;\nconst CustomParameterSearch = styled_components_1.default.div `\n display: flex;\n`;\nexports.CustomParameterSearch = CustomParameterSearch;\nconst CustomParametersInput = (0, styled_components_1.default)(LocationSearch_style_1.SearchInput) `\n height: 3.2rem;\n width: 100%;\n background-size: 2.2rem;\n font-size: 1.6rem;\n color: ${colors_1.gray300};\n padding: 1.8rem 4rem;\n margin-top: 0.8rem;\n background-position-x: 0.7rem;\n box-shadow: none;\n border-radius: 5px;\n border: 1px solid ${colors_1.gray300};\n\n @media (${media_1.media.desktop}) {\n height: 2.4rem;\n width: 21rem;\n background-size: 0.9rem;\n font-size: 1rem;\n padding: 0.5rem 2.4rem;\n background-position-x: 0.7rem;\n border: 1px solid ${colors_1.gray500};\n }\n`;\nexports.CustomParametersInput = CustomParametersInput;\nconst Hr = styled_components_1.default.hr `\n display: block;\n margin: 2rem 3rem;\n border: 1px solid ${colors_1.gray200};\n`;\nexports.Hr = Hr;\nconst CustomParameterList = styled_components_1.default.ul `\n list-style: none;\n display: grid;\n grid-template-columns: 1fr;\n column-gap: 0.5rem;\n overflow-y: auto;\n padding-top: 1.8rem;\n height: 100%;\n\n @media (${media_1.media.desktop}) {\n grid-template-columns: 1fr 1fr;\n max-height: 40rem;\n margin-top: 0.8rem;\n padding-top: 0;\n overflow-x: hidden;\n }\n`;\nexports.CustomParameterList = CustomParameterList;\nconst CustomParameterItem = styled_components_1.default.li `\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 2.2rem;\n padding-right: 1rem;\n`;\nexports.CustomParameterItem = CustomParameterItem;\nconst CustomParameter = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n color: ${(props) => (props.$isActive ? colors_1.acBlue : colors_1.gray400)};\n font-size: 1.6rem;\n text-align: left;\n white-space: nowrap;\n margin-bottom: 0.8rem;\n @media (${media_1.media.desktop}) {\n font-size: 1.2rem;\n color: ${colors_1.gray300};\n }\n`;\nexports.CustomParameter = CustomParameter;\nconst DesktopCustomParameters = styled_components_1.default.div `\n display: none;\n @media (${media_1.media.desktop}) {\n display: flex;\n }\n`;\nexports.DesktopCustomParameters = DesktopCustomParameters;\nconst MobileCustomParameters = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: space-between;\n @media (${media_1.media.desktop}) {\n display: none;\n }\n`;\nexports.MobileCustomParameters = MobileCustomParameters;\nconst IndoorToggleHeading = styled_components_1.default.span `\n font-size: 1rem;\n text-transform: uppercase;\n color: ${colors_1.gray600};\n margin-top: 1.6rem;\n`;\nexports.IndoorToggleHeading = IndoorToggleHeading;\nconst IndoorFilterWrapper = styled_components_1.default.div `\n width: 100%;\n`;\nexports.IndoorFilterWrapper = IndoorFilterWrapper;\nconst IndoorToggleWrapper = (0, styled_components_1.default)(SessionToggleWrapper) `\n border-radius: ${(props) => props.$isIndoor && \"10px 10px 0 0\"};\n margin-top: 0.5rem;\n`;\nexports.IndoorToggleWrapper = IndoorToggleWrapper;\nconst IndoorTab = (0, styled_components_1.default)(Tab) `\n &:first-child {\n border-radius: ${(props) => props.$isIndoor && \"10px 0 0 0\"};\n }\n\n &:nth-child(2) {\n border-radius: ${(props) => props.$isIndoor && \"0 10px 0px 0\"};\n }\n`;\nexports.IndoorTab = IndoorTab;\nconst IndoorToggleInfoWrapper = styled_components_1.default.div `\n padding: 0.8rem 1rem;\n border-radius: 0 0 10px 10px;\n background-color: ${colors_1.lightBlueInfo};\n`;\nexports.IndoorToggleInfoWrapper = IndoorToggleInfoWrapper;\nconst IndoorToggleInfoText = styled_components_1.default.span `\n font-size: 1.2rem;\n display: block;\n\n &:nth-child(2) {\n margin-top: 0.5rem;\n }\n`;\nexports.IndoorToggleInfoText = IndoorToggleInfoText;\nconst YearPickerWrapper = styled_components_1.default.div `\n border: 1px solid ${colors_1.gray200};\n border-radius: 0.5rem;\n color: ${colors_1.gray600};\n display: grid;\n font-size: 1rem;\n grid-gap: 0.4rem;\n letter-spacing: 0.01em;\n overflow: hidden;\n padding: 1.1rem 1.6rem;\n text-transform: uppercase;\n width: 100%;\n`;\nexports.YearPickerWrapper = YearPickerWrapper;\nconst DormantYearPickerWrapper = styled_components_1.default.div `\n border-top: 1px solid ${colors_1.gray200};\n border-bottom: none;\n border-left: none;\n border-right: none;\n border-radius: 0;\n padding: 0.8rem 0 0 0;\n font-size: 1rem;\n display: grid;\n grid-gap: 0.4rem;\n`;\nexports.DormantYearPickerWrapper = DormantYearPickerWrapper;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionTypeToggle = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst mobileIcon_svg_1 = __importDefault(require(\"../../../assets/icons/mobileIcon.svg\"));\nconst pin_svg_1 = __importDefault(require(\"../../../assets/icons/pin.svg\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst thresholdSlice_1 = require(\"../../../store/thresholdSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst SessionTypeToggle = () => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { searchParams, sessionType, updateSessionType } = (0, mapParamsHandler_1.useMapParams)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const handleClick = (0, react_1.useCallback)((type) => {\n dispatch((0, thresholdSlice_1.resetUserThresholds)());\n dispatch((0, sessionFiltersSlice_1.setBasicParametersModalOpen)(false));\n dispatch((0, sessionFiltersSlice_1.setCustomParametersModalOpen)(false));\n dispatch((0, sessionFiltersSlice_1.setBasicSensorsModalOpen)(false));\n dispatch((0, sessionFiltersSlice_1.setCustomSensorsModalOpen)(false));\n updateSessionType(type);\n dispatch((0, mapSlice_1.setFetchingData)(true));\n dispatch((0, sessionFiltersSlice_1.setFixedSessionsType)(sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE));\n }, [dispatch, searchParams, updateSessionType]);\n return (react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.SessionToggleWrapper, null,\n react_1.default.createElement(S.Tab, { \"$isActive\": sessionType === filters_1.SessionTypes.MOBILE, onClick: () => handleClick(filters_1.SessionTypes.MOBILE) },\n t(\"filters.mobileSessions\"),\n react_1.default.createElement(S.IconWrapper, { \"$src\": mobileIcon_svg_1.default, \"$isActive\": sessionType === filters_1.SessionTypes.MOBILE })),\n react_1.default.createElement(S.Tab, { \"$isActive\": sessionType === filters_1.SessionTypes.FIXED, onClick: () => handleClick(filters_1.SessionTypes.FIXED) },\n t(\"filters.fixedSessions\"),\n react_1.default.createElement(S.IconWrapper, { \"$src\": pin_svg_1.default, \"$isActive\": sessionType === filters_1.SessionTypes.FIXED }))),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.mobileFixedInfo\" })));\n};\nexports.SessionTypeToggle = SessionTypeToggle;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TagsInput = void 0;\nconst downshift_1 = require(\"downshift\");\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst booleans_1 = require(\"../../../const/booleans\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst Spinner_1 = require(\"../../atoms/Loader/Spinner\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst TagsInput = () => {\n const [items, setItems] = (0, react_1.useState)([\"\"]);\n const [inputValue, setInputValue] = (0, react_1.useState)(\"\");\n const [selectedItem, setSelectedItem] = (0, react_1.useState)(\"\");\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const { boundWest, boundEast, boundNorth, boundSouth, sensorName, sessionType, setFilter, tags, timeFrom, timeTo, unitSymbol, usernames, isIndoor, isActive, } = (0, mapParamsHandler_1.useMapParams)();\n const isFirstRender = (0, react_1.useRef)(true);\n const tagsToSelect = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectTags);\n const selectedSessionType = sessionType || filters_1.SessionTypes.FIXED;\n const isTagsInputFetching = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectIsTagsInputFetching);\n const preparedUnitSymbol = unitSymbol.replace(/\"/g, \"\");\n const usernamesDecoded = usernames && decodeURIComponent(usernames);\n const getQueryParams = (tags) => {\n return {\n tags: tags,\n west: boundWest.toString(),\n east: boundEast.toString(),\n south: boundSouth.toString(),\n north: boundNorth.toString(),\n timeFrom: timeFrom,\n timeTo: timeTo,\n usernames: usernamesDecoded,\n sensorName: sensorName,\n unitSymbol: preparedUnitSymbol,\n sessionType: selectedSessionType,\n isIndoor: isIndoor === booleans_1.TRUE,\n isActive: isActive,\n };\n };\n const getTagsToSelectFiltered = (tagsToBeExcluded) => {\n return tagsToBeExcluded\n ? tagsToSelect.filter((tag) => !tagsToBeExcluded.includes(tag))\n : tagsToSelect;\n };\n const { isOpen, getMenuProps, getInputProps, getItemProps, reset } = (0, downshift_1.useCombobox)({\n items: items,\n inputValue,\n selectedItem,\n onInputValueChange: ({ inputValue }) => {\n setInputValue(inputValue);\n const tagsToSelectFiltered = getTagsToSelectFiltered(decodedTagsArray);\n const filteredTags = inputValue\n ? tagsToSelectFiltered.filter((tag) => tag.toLowerCase().startsWith(inputValue.toLowerCase()))\n : decodedTagsArray\n ? tagsToSelect.filter((tag) => !decodedTagsArray.includes(tag))\n : tagsToSelect;\n setItems(filteredTags);\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (newSelectedItem !== null &&\n !(decodedTagsArray === null || decodedTagsArray === void 0 ? void 0 : decodedTagsArray.includes(newSelectedItem))) {\n const decodedTags = tags && decodeURIComponent(tags);\n const selectedTags = decodedTags + \", \" + newSelectedItem;\n const urlEncodedString = encodeURIComponent(selectedTags);\n setFilter(mapParamsHandler_1.UrlParamsTypes.tags, urlEncodedString.toString());\n reset();\n setSelectedItem(\"\");\n const tagsToSelectFiltered = getTagsToSelectFiltered(decodedTagsArray);\n setItems(tagsToSelectFiltered);\n }\n },\n });\n const handleOnInputClick = () => {\n const queryParams = getQueryParams(inputValue);\n dispatch((0, sessionFiltersSlice_1.fetchTags)(queryParams));\n };\n const decodedTagsArray = tags &&\n decodeURIComponent(tags)\n .split(\", \")\n .filter((el) => el !== \"\");\n const displaySearchResults = isOpen && items.length > 0;\n const handleOnClose = (itemToRemove) => {\n const tagsUpdated = decodedTagsArray && decodedTagsArray.filter((el) => el !== itemToRemove);\n const decodedTagsString = tagsUpdated ? tagsUpdated.join(\", \") : \"\";\n setFilter(mapParamsHandler_1.UrlParamsTypes.tags, decodedTagsString.toString());\n const tagsToSelectFiltered = getTagsToSelectFiltered(tagsUpdated);\n setItems(tagsToSelectFiltered);\n };\n (0, react_1.useEffect)(() => {\n const tagsToSelectFiltered = getTagsToSelectFiltered(decodedTagsArray);\n setItems(tagsToSelectFiltered);\n }, [tagsToSelect]);\n (0, react_1.useEffect)(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n const timer = setTimeout(() => {\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, 200);\n return () => clearTimeout(timer);\n }, [tags, dispatch]);\n return (react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.InputWrapper, null,\n react_1.default.createElement(S.Input, Object.assign({ placeholder: t(\"filters.tags\") }, getInputProps({\n value: inputValue,\n onClick: handleOnInputClick,\n }))),\n isTagsInputFetching && react_1.default.createElement(Spinner_1.Spinner, null)),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.tagNamesInfo\" })),\n decodedTagsArray && decodedTagsArray.length > 0 && (react_1.default.createElement(S.SelectedItemsWrapper, null, decodedTagsArray.map((item, index) => (react_1.default.createElement(S.SelectedItemTile, { key: index },\n react_1.default.createElement(S.SelectedItem, null, item),\n react_1.default.createElement(S.CloseSelectedItemButton, { onClick: () => handleOnClose(item) })))))),\n react_1.default.createElement(S.SuggestionList, Object.assign({ \"$displaySearchResults\": displaySearchResults }, getMenuProps()), items.map((item, index) => (react_1.default.createElement(S.Suggestion, Object.assign({ key: index }, getItemProps({ item, index })), item))))));\n};\nexports.TagsInput = TagsInput;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.YearPicker = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst FilterInfoPopup_1 = require(\"./FilterInfoPopup\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst YearPickerButtons_1 = require(\"./YearPickerButtons\");\nconst YearPicker = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(S.SingleFilterWrapper, null,\n react_1.default.createElement(S.YearPickerWrapper, null,\n t(\"filters.yearPickerHeader\"),\n react_1.default.createElement(YearPickerButtons_1.YearPickerButtons, null)),\n react_1.default.createElement(FilterInfoPopup_1.FilterInfoPopup, { filterTranslationLabel: \"filters.yearPickerInfo\" })));\n};\nexports.YearPicker = YearPicker;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.YearPickerButtons = exports.getLastFiveYears = exports.endOfTheYear = exports.beginningOfTheYear = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst S = __importStar(require(\"./SessionFilters.style\"));\nconst beginningOfTheYear = (year) => new Date(`${year}-01-01T00:00:00Z`).getTime() / 1000;\nexports.beginningOfTheYear = beginningOfTheYear;\nconst endOfTheYear = (year) => new Date(`${year}-12-31T23:59:59Z`).getTime() / 1000;\nexports.endOfTheYear = endOfTheYear;\nconst getLastFiveYears = () => {\n const currentYear = new Date().getFullYear();\n const years = [];\n for (let i = 0; i < 5; i++) {\n years.push(currentYear - i);\n }\n return years;\n};\nexports.getLastFiveYears = getLastFiveYears;\nconst YearPickerButtons = () => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { timeFrom, updateTime } = (0, mapParamsHandler_1.useMapParams)();\n const handleYear = (0, react_1.useCallback)((year) => {\n updateTime(year);\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }, [dispatch, updateTime]);\n const timestampToYear = (timestamp) => {\n const date = new Date(Number(timestamp) * 1000);\n return date.getUTCFullYear();\n };\n return (react_1.default.createElement(S.SectionButtonsContainer, null, (0, exports.getLastFiveYears)().map((year) => (react_1.default.createElement(S.SectionButton, { key: year, onClick: () => handleYear(year), \"$isActive\": timestampToYear(timeFrom) === year }, year)))));\n};\nexports.YearPickerButtons = YearPickerButtons;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// ExportButtonComponent.tsx\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst ExportDataComponent_1 = require(\"../Popups/ExportDataComponent\");\nconst S = __importStar(require(\"./SessionsListView.style\"));\nconst ExportButtonComponent = ({ NO_SESSIONS, EXCEEDS_LIMIT, sessionsIds, showExportPopup, handleExportClick, exportButtonRef, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n if (NO_SESSIONS || EXCEEDS_LIMIT) {\n return (react_1.default.createElement(\"div\", { ref: exportButtonRef },\n react_1.default.createElement(S.ExportSessionsButton, { onClick: handleExportClick, \"$hasSessions\": false }, t(\"map.exportButton\"))));\n }\n else {\n return (react_1.default.createElement(ExportDataComponent_1.ExportDataComponent, { button: react_1.default.createElement(S.ExportSessionsButton, { \"$hasSessions\": true }, t(\"map.exportButton\")), sessionsIds: sessionsIds, isIconOnly: true, onSubmit: (formData) => { }, fixedSessionTypeSelected: true, isSessionList: true, open: showExportPopup }));\n }\n};\nexports.default = ExportButtonComponent;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VerticalContainer = exports.Title = exports.SessionListStyled = exports.Overlay = exports.ImageButton = exports.Image = exports.HorizontalContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst Typography_1 = require(\"../../../atoms/Typography\");\nconst Overlay = styled_components_1.default.div `\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(255, 255, 255, 1);\n z-index: 500;\n display: flex;\n justify-content: center;\n align-items: flex-start;\n`;\nexports.Overlay = Overlay;\nconst ImageButton = styled_components_1.default.button `\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 0.625rem;\n`;\nexports.ImageButton = ImageButton;\nconst Image = styled_components_1.default.img `\n width: 2rem;\n height: 2rem;\n`;\nexports.Image = Image;\nconst Title = (0, styled_components_1.default)(Typography_1.H4) `\n text-align: left;\n font-weight: 400;\n font-size: 1.8rem;\n`;\nexports.Title = Title;\nconst HorizontalContainer = styled_components_1.default.div `\n width: 100%;\n display: flex;\n left: 0;\n align-items: center;\n padding: 0.5rem 1rem 2rem 1.5rem;\n gap: 1rem;\n`;\nexports.HorizontalContainer = HorizontalContainer;\nconst VerticalContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n margin-top: 1.25rem;\n max-height: 100%;\n padding-bottom: 2rem;\n`;\nexports.VerticalContainer = VerticalContainer;\nconst SessionListStyled = styled_components_1.default.div `\n width: 100%;\n overflow-y: auto;\n margin-left: 1.25rem;\n margin-right: 1.25rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n`;\nexports.SessionListStyled = SessionListStyled;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileSessionList = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst closeButton_svg_1 = __importDefault(require(\"../../../../assets/icons/closeButton.svg\"));\nconst useScrollEndListener_1 = require(\"../../../../hooks/useScrollEndListener\");\nconst SessionListTile_1 = require(\"../SessionsListTile/SessionListTile\");\nconst S = __importStar(require(\"./MobileSessionList.style\"));\nconst MobileSessionList = ({ sessions, onCellClick, onClose, onScrollEnd, fetchableSessionsCount, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const sessionListRef = (0, react_1.useRef)(null);\n const results = sessions.length;\n const handleClick = (id, streamId) => {\n if (onCellClick) {\n onCellClick(id, streamId);\n }\n };\n (0, useScrollEndListener_1.useScrollEndListener)(sessionListRef, onScrollEnd);\n return (react_1.default.createElement(S.Overlay, null,\n react_1.default.createElement(S.VerticalContainer, null,\n react_1.default.createElement(S.HorizontalContainer, null,\n react_1.default.createElement(S.ImageButton, { onClick: onClose },\n react_1.default.createElement(S.Image, { src: closeButton_svg_1.default, alt: t(\"map.altClose\") })),\n react_1.default.createElement(S.Title, null, t(\"map.mobileResults\", { results, fetchableSessionsCount }))),\n react_1.default.createElement(S.SessionListStyled, { ref: sessionListRef }, sessions.map((session) => (react_1.default.createElement(\"div\", { key: session.id },\n react_1.default.createElement(SessionListTile_1.SessionsListTile, { id: session.id, sessionName: session.sessionName, sensorName: session.sensorName, averageValue: session.averageValue, startTime: session.startTime, endTime: session.endTime, streamId: session.streamId, onClick: (id, streamId) => {\n handleClick(id, streamId);\n } }))))))));\n};\nexports.MobileSessionList = MobileSessionList;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Title = exports.Subtitle = exports.SessionListTile = exports.HorizontalSpacingContainer = exports.HorizontalGroup = exports.ColorDot = exports.ArrowImageContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../utils/media\");\nconst Typography_1 = require(\"../../../atoms/Typography\");\nconst SessionListTile = styled_components_1.default.div `\n cursor: pointer;\n background-color: ${colors_1.white};\n border-radius: 1rem;\n border: 1px solid ${colors_1.gray100};\n box-shadow: 0 0.4rem 0.8rem rgba(0, 0, 0, 0.1);\n padding: 0.5rem 1rem 0.5rem 1rem;\n margin-right: 0.9375rem;\n margin-left: 0.9375rem;\n box-sizing: border-box;\n\n @media (${media_1.media.desktop}) {\n margin-right: 0rem;\n margin-left: 0rem;\n width: 230px;\n }\n`;\nexports.SessionListTile = SessionListTile;\nconst HorizontalSpacingContainer = styled_components_1.default.div `\n display: flex;\n align-items: left;\n justify-content: space-between;\n margin-top: 0.5rem;\n margin-bottom: 0.8rem;\n`;\nexports.HorizontalSpacingContainer = HorizontalSpacingContainer;\nconst HorizontalGroup = styled_components_1.default.div `\n display: flex;\n align-items: left;\n`;\nexports.HorizontalGroup = HorizontalGroup;\nconst ColorDot = styled_components_1.default.span `\n display: inline-block;\n width: 16px;\n height: 16px;\n background-color: ${(props) => props.$color};\n border-radius: 50%;\n margin-right: 0.8rem;\n`;\nexports.ColorDot = ColorDot;\nconst Title = (0, styled_components_1.default)(Typography_1.H4) `\n text-align: left;\n font-weight: 500;\n margin-bottom: 0.8rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexports.Title = Title;\nconst Subtitle = (0, styled_components_1.default)(Typography_1.H5) `\n text-align: left;\n margin-bottom: 0.8rem;\n`;\nexports.Subtitle = Subtitle;\nconst ArrowImageContainer = styled_components_1.default.div `\n width: 1.5rem;\n height: 1.35rem;\n\n @media (${media_1.media.desktop}) {\n display: none;\n }\n`;\nexports.ArrowImageContainer = ArrowImageContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionsListTile = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst React = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_redux_1 = require(\"react-redux\");\nconst rightVector_svg_1 = __importDefault(require(\"../../../../assets/icons/rightVector.svg\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst sessionFiltersSlice_1 = require(\"../../../../store/sessionFiltersSlice\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst dateFormat_1 = require(\"../../../../types/dateFormat\");\nconst thresholdColors_1 = require(\"../../../../utils/thresholdColors\");\nconst S = __importStar(require(\"./SessionListTile.style\"));\nconst SessionsListTile = ({ id, sessionName, sensorName, averageValue, startTime, endTime, streamId, onClick, onMouseEnter, onMouseLeave, }) => {\n const thresholds = (0, react_redux_1.useSelector)(thresholdSlice_1.selectThresholds);\n const { t } = (0, react_i18next_1.useTranslation)();\n const [formattedStartDate, formattedStartTime] = (0, moment_1.default)(startTime, dateFormat_1.DateFormat.default_with_time)\n .format(dateFormat_1.DateFormat.us_with_time)\n .split(\" \");\n const [formattedEndDate, formattedEndTime] = (0, moment_1.default)(endTime, dateFormat_1.DateFormat.default_with_time)\n .format(dateFormat_1.DateFormat.us_with_time)\n .split(\" \");\n const handleClick = () => {\n if (onClick) {\n onClick(id, streamId);\n }\n };\n const handleMouseHover = () => {\n if (onMouseEnter) {\n onMouseEnter(id);\n }\n };\n const handleMouseLeave = () => {\n if (onMouseLeave) {\n onMouseLeave();\n }\n };\n const isDormant = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectIsDormantSessionsType);\n const dotColor = isDormant\n ? colors_1.gray300\n : (0, thresholdColors_1.getColorForValue)(thresholds, averageValue);\n return (React.createElement(S.SessionListTile, { onClick: handleClick, onMouseOver: handleMouseHover, onMouseLeave: handleMouseLeave },\n React.createElement(S.HorizontalSpacingContainer, null,\n React.createElement(S.HorizontalGroup, null,\n React.createElement(S.ColorDot, { \"$color\": dotColor }),\n typeof averageValue === \"number\" && (React.createElement(S.Subtitle, null,\n \"avg. \",\n averageValue))),\n React.createElement(S.ArrowImageContainer, null,\n React.createElement(\"img\", { src: rightVector_svg_1.default, alt: t(\"map.altDirect\") }))),\n React.createElement(S.Title, null, sessionName),\n React.createElement(S.Subtitle, null, sensorName),\n React.createElement(S.Subtitle, null,\n React.createElement(\"strong\", null, formattedStartDate),\n \" \",\n formattedStartTime,\n \" -\",\n \" \",\n React.createElement(\"strong\", null, formattedEndDate),\n \" \",\n formattedEndTime)));\n};\nexports.SessionsListTile = SessionsListTile;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionListViewStyle = exports.SessionListTitle = exports.SessionListInfoContainer = exports.SessionListContainer = exports.SessionInfoTile = exports.RotatedIcon = exports.ExportSessionsButton = exports.ExpandButton = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst SessionListTile_style_1 = require(\"./SessionsListTile/SessionListTile.style\");\nconst SessionListViewStyle = styled_components_1.default.div `\n position: fixed;\n top: 10.5rem;\n right: 1.25rem;\n border-radius: 0.5rem;\n box-sizing: border-box;\n padding-right: 0.8rem;\n width: 25rem;\n z-index: 1;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n`;\nexports.SessionListViewStyle = SessionListViewStyle;\nconst SessionListTitle = styled_components_1.default.span `\n text-transform: uppercase;\n font-weight: 400;\n font-size: 1.2rem;\n color: ${colors_1.gray400};\n align-items: center;\n\n &:nth-of-type(2) {\n margin-left: 0.3rem;\n }\n`;\nexports.SessionListTitle = SessionListTitle;\nconst SessionListInfoContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n gap: 0.5rem;\n`;\nexports.SessionListInfoContainer = SessionListInfoContainer;\nconst SessionListContainer = styled_components_1.default.div `\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n width: calc(100% + 1rem);\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding-bottom: 1rem;\n position: absolute;\n top: 5rem;\n max-height: calc(100vh - 22rem);\n\n &::-webkit-scrollbar-button:end:decrement {\n padding-bottom: 1rem;\n }\n`;\nexports.SessionListContainer = SessionListContainer;\nconst ExportSessionsButton = styled_components_1.default.button `\n background-color: transparent;\n color: ${colors_1.blue};\n border: none;\n font-size: 1.2rem;\n text-transform: uppercase;\n cursor: ${({ $hasSessions }) => ($hasSessions ? \"pointer\" : \"default\")};\n`;\nexports.ExportSessionsButton = ExportSessionsButton;\nconst SessionInfoTile = (0, styled_components_1.default)(SessionListTile_style_1.SessionListTile) `\n display: flex;\n gap: 0.5rem;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n cursor: default;\n`;\nexports.SessionInfoTile = SessionInfoTile;\nconst ExpandButton = styled_components_1.default.button `\n display: flex;\n align-items: center;\n background-color: transparent;\n border: none;\n cursor: pointer;\n`;\nexports.ExpandButton = ExpandButton;\nconst RotatedIcon = styled_components_1.default.img `\n transform: ${({ $rotated }) => ($rotated ? \"rotate(180deg)\" : \"none\")};\n width: 1.5rem;\n height: 1.5rem;\n margin-right: 0.3rem;\n`;\nexports.RotatedIcon = RotatedIcon;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionsListView = void 0;\nconst lodash_1 = require(\"lodash\"); // Ensure lodash is installed\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst toggleIconBlue_svg_1 = __importDefault(require(\"../../../assets/icons/toggleIconBlue.svg\"));\nconst useScrollEndListener_1 = require(\"../../../hooks/useScrollEndListener\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst useAutoDismissAlert_1 = require(\"../../../utils/useAutoDismissAlert\");\nconst AlertComponent_1 = require(\"../Popups/AlertComponent\");\nconst ExportButtonComponent_1 = __importDefault(require(\"./ExportButtonComponent\"));\nconst SessionListTile_1 = require(\"./SessionsListTile/SessionListTile\");\nconst S = __importStar(require(\"./SessionsListView.style\"));\nconst SESSIONS_LIMIT = 100;\nconst SessionsListView = ({ sessions, onCellClick, onCellMouseEnter, onCellMouseLeave, onScrollEnd, fetchableSessionsCount, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const results = sessions.length;\n const sessionsIds = sessions.map((session) => session.id);\n const exportButtonRef = (0, react_1.useRef)(null);\n const sessionListRef = (0, react_1.useRef)(null);\n const [buttonPosition, setButtonPosition] = (0, react_1.useState)({\n top: 0,\n left: 0,\n });\n const [showExportPopup, setShowExportPopup] = (0, react_1.useState)(false);\n const [showAlert, setShowAlert] = (0, react_1.useState)(false);\n const [alertMessage, setAlertMessage] = (0, react_1.useState)(\"\");\n const NO_SESSIONS = sessionsIds.length === 0;\n const EXCEEDS_LIMIT = sessionsIds.length > SESSIONS_LIMIT;\n const popupTopOffset = NO_SESSIONS ? -13 : -50;\n const memoizedSessions = (0, react_1.useMemo)(() => sessions, [sessions]);\n const dispatch = (0, hooks_1.useAppDispatch)();\n const sessionsListExpanded = (0, hooks_1.useAppSelector)(mapSlice_1.selectSessionsListExpanded);\n const updateButtonPosition = (0, react_1.useCallback)(() => {\n var _a;\n const rect = (_a = exportButtonRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n if (rect) {\n setButtonPosition({\n top: rect.top + window.scrollY,\n left: rect.left + window.scrollX,\n });\n }\n }, [exportButtonRef, sessions]);\n const debouncedUpdateButtonPosition = (0, react_1.useCallback)((0, lodash_1.debounce)(updateButtonPosition, 100), [updateButtonPosition]);\n (0, react_1.useLayoutEffect)(() => {\n updateButtonPosition();\n const handleResize = () => {\n debouncedUpdateButtonPosition();\n };\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n debouncedUpdateButtonPosition.cancel();\n };\n }, [updateButtonPosition, debouncedUpdateButtonPosition]);\n (0, useScrollEndListener_1.useScrollEndListener)(sessionListRef, onScrollEnd);\n (0, react_1.useEffect)(() => {\n // Clear saved scroll position when sessions list is collapsed\n if (!sessionsListExpanded) {\n localStorage.removeItem(\"sessionsListScrollPosition\");\n }\n }, [sessionsListExpanded]);\n const calculatePopupLeftPosition = () => {\n return `${buttonPosition.left - 185}px`;\n };\n const handleClick = (id, streamId) => {\n if (onCellClick) {\n onCellClick(id, streamId);\n }\n };\n const handleMouseEnter = (id) => {\n if (onCellMouseEnter) {\n onCellMouseEnter(id);\n }\n };\n const handleMouseLeave = () => {\n if (onCellMouseLeave) {\n onCellMouseLeave();\n }\n };\n const handleExportClick = () => {\n if (NO_SESSIONS) {\n setAlertMessage(t(\"exportDataModal.noResultsMessage\"));\n setShowAlert(true);\n }\n else if (EXCEEDS_LIMIT) {\n setAlertMessage(t(\"exportDataModal.sessionLimitMessage\", { limit: SESSIONS_LIMIT }));\n setShowAlert(true);\n }\n else {\n setShowExportPopup(true);\n }\n };\n const handleExpandClick = () => {\n dispatch((0, mapSlice_1.setSessionsListExpanded)(!sessionsListExpanded));\n };\n (0, useAutoDismissAlert_1.useAutoDismissAlert)(showAlert, setShowAlert);\n return (react_1.default.createElement(S.SessionListViewStyle, null,\n react_1.default.createElement(S.SessionInfoTile, null,\n react_1.default.createElement(S.SessionListInfoContainer, null,\n react_1.default.createElement(S.ExpandButton, { onClick: handleExpandClick },\n react_1.default.createElement(S.RotatedIcon, { src: toggleIconBlue_svg_1.default, alt: t(\"headerToggle.arrowIcon\"), \"$rotated\": !sessionsListExpanded }),\n react_1.default.createElement(S.SessionListTitle, null, t(\"map.listSessions\")),\n react_1.default.createElement(S.SessionListTitle, null, t(\"map.results\", { results, fetchableSessionsCount })))),\n react_1.default.createElement(ExportButtonComponent_1.default, { NO_SESSIONS: NO_SESSIONS, EXCEEDS_LIMIT: EXCEEDS_LIMIT, sessionsIds: sessionsIds, showExportPopup: showExportPopup, handleExportClick: handleExportClick, exportButtonRef: exportButtonRef })),\n sessionsListExpanded && (react_1.default.createElement(S.SessionListContainer, { ref: sessionListRef }, memoizedSessions.map((session) => (react_1.default.createElement(\"div\", { key: session.id },\n react_1.default.createElement(SessionListTile_1.SessionsListTile, { id: session.id, sessionName: session.sessionName, sensorName: session.sensorName, averageValue: session.averageValue, startTime: session.startTime, endTime: session.endTime, streamId: session.streamId, onClick: (id, streamId) => handleClick(id, streamId), onMouseEnter: (id) => handleMouseEnter(id), onMouseLeave: handleMouseLeave })))))),\n showAlert && (react_1.default.createElement(AlertComponent_1.AlertPopup, { open: showAlert, message: alertMessage, top: buttonPosition.top + popupTopOffset, left: calculatePopupLeftPosition() }))));\n};\nexports.SessionsListView = SessionsListView;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeRangeContainer = exports.TimeContainer = exports.Time = exports.MeasurementContainer = exports.Date = exports.Container = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Container = styled_components_1.default.div `\n width: 100%;\n position: relative;\n font-family: \"Roboto\", sans-serif;\n overflow: visible;\n\n /* Add explicit height for calendar page */\n height: ${(props) => (props.$isCalendarPage ? \"100%\" : \"auto\")};\n min-height: ${(props) => (props.$isCalendarPage ? \"200px\" : \"auto\")};\n display: flex;\n flex-direction: column;\n\n @media ${media_1.media.desktop} {\n width: ${(props) => (props.$isCalendarPage ? \"100%\" : \"80%\")};\n }\n\n .highcharts-container {\n overflow: visible;\n /* Ensure container fills available space */\n width: 100% !important;\n height: 100% !important;\n }\n\n .highcharts-root {\n overflow: visible;\n /* Ensure root fills available space */\n width: 100% !important;\n height: 100% !important;\n\n .highcharts-scrollbar {\n cursor: ${(props) => (props.$isLoading ? \"not-allowed\" : \"auto\")};\n pointer-events: ${(props) => (props.$isLoading ? \"none\" : \"auto\")};\n transform: ${(props) => props.$isMobile ? \"translate(0, 30px)\" : \"translate(0, 15px)\"};\n }\n\n .highcharts-container {\n overflow: visible;\n }\n\n .data-highcharts-chart {\n width: 100%;\n overflow: visible;\n }\n\n .highcharts-button .highcharts-reset-zoom {\n display: none;\n z-index: -1;\n }\n\n .custom-arrow {\n position: absolute;\n visibility: visible;\n }\n }\n`;\nexports.Container = Container;\nconst MeasurementContainer = styled_components_1.default.div `\n display: flex;\n width: 100%;\n gap: 1rem;\n justify-content: space-between;\n align-items: center;\n padding-right: 0.5rem;\n\n @media ${media_1.media.desktop} {\n justify-content: flex-end;\n padding-right: 0;\n }\n`;\nexports.MeasurementContainer = MeasurementContainer;\nconst TimeRangeContainer = styled_components_1.default.div `\n display: flex;\n width: calc(100% - 14rem);\n height: 4rem;\n gap: 1rem;\n color: ${colors_1.gray300};\n justify-content: center;\n align-items: center;\n font-weight: 300;\n position: absolute;\n top: 13.8rem;\n left: 6.5rem;\n z-index: 1;\n background-color: ${colors_1.gray100};\n @media ${media_1.media.desktop} {\n justify-content: flex-end;\n padding-right: 0;\n position: inherit;\n top: 0;\n left: 0;\n z-index: 0;\n background-color: transparent;\n width: 100%;\n height: auto;\n }\n\n .time-container {\n display: flex;\n gap: 0.5rem;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n @media ${media_1.media.desktop} {\n flex-direction: row;\n }\n }\n\n .date {\n font-size: 1.4rem;\n font-weight: 500;\n @media ${media_1.media.desktop} {\n font-size: 1.6rem;\n }\n }\n .time {\n font-size: 1rem;\n font-weight: 300;\n @media ${media_1.media.desktop} {\n font-size: 1.6rem;\n }\n }\n`;\nexports.TimeRangeContainer = TimeRangeContainer;\nconst Date = styled_components_1.default.div `\n font-size: 1.4rem;\n font-weight: 500;\n @media ${media_1.media.desktop} {\n font-size: 1.6rem;\n }\n`;\nexports.Date = Date;\nconst Time = styled_components_1.default.div `\n font-size: 1rem;\n font-weight: 300;\n @media ${media_1.media.desktop} {\n font-size: 1.6rem;\n }\n`;\nexports.Time = Time;\nconst TimeContainer = styled_components_1.default.div `\n display: flex;\n gap: 0.5rem;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n @media ${media_1.media.desktop} {\n flex-direction: row;\n }\n`;\nexports.TimeContainer = TimeContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Graph = void 0;\nconst highcharts_react_official_1 = __importDefault(require(\"highcharts-react-official\"));\nconst highstock_1 = __importDefault(require(\"highcharts/highstock\"));\nconst accessibility_1 = __importDefault(require(\"highcharts/modules/accessibility\"));\nconst no_data_to_display_1 = __importDefault(require(\"highcharts/modules/no-data-to-display\"));\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst store_1 = require(\"../../../store\");\nconst fixedStreamSelectors_1 = require(\"../../../store/fixedStreamSelectors\");\nconst fixedStreamSlice_1 = require(\"../../../store/fixedStreamSlice\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst mobileStreamSelectors_1 = require(\"../../../store/mobileStreamSelectors\");\nconst mobileStreamSlice_1 = require(\"../../../store/mobileStreamSlice\");\nconst thresholdSlice_1 = require(\"../../../store/thresholdSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst sensors_1 = require(\"../../../types/sensors\");\nconst timeRange_1 = require(\"../../../types/timeRange\");\nconst dateParser_1 = require(\"../../../utils/dateParser\");\nconst getTimeRange_1 = require(\"../../../utils/getTimeRange\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst timeRanges_1 = require(\"../../../utils/timeRanges\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst chartEvents_1 = require(\"./chartEvents\");\nconst createGraphData_1 = require(\"./chartHooks/createGraphData\");\nconst updateRangeDisplay_1 = require(\"./chartHooks/updateRangeDisplay\");\nconst useChartUpdater_1 = require(\"./chartHooks/useChartUpdater\");\nconst useMeasurementsFetcher_1 = require(\"./chartHooks/useMeasurementsFetcher\");\nconst S = __importStar(require(\"./Graph.style\"));\nconst graphConfig_1 = require(\"./graphConfig\");\n// Initialize No-Data and Accessibility modules.\n(0, no_data_to_display_1.default)(highstock_1.default);\n(0, accessibility_1.default)(highstock_1.default);\nconst Graph = (0, react_1.memo)(({ streamId, sessionType, isCalendarPage, rangeDisplayRef, selectedTimestamp, onDayClick, }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const graphRef = (0, react_1.useRef)(null);\n const chartComponentRef = (0, react_1.useRef)(null);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const thresholdsState = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const isLoading = (0, hooks_1.useAppSelector)(store_1.selectIsLoading);\n // Mobile vs. fixed stream info\n const mobileGraphData = (0, hooks_1.useAppSelector)(mobileStreamSelectors_1.selectMobileStreamPoints);\n const mobileStreamShortInfo = (0, hooks_1.useAppSelector)(mobileStreamSelectors_1.selectMobileStreamShortInfo);\n const fixedStreamShortInfo = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamShortInfo);\n // Last selected time range from Redux\n const fixedLastSelectedTimeRange = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectLastSelectedFixedTimeRange);\n const mobileLastSelectedTimeRange = (0, hooks_1.useAppSelector)(mobileStreamSlice_1.selectLastSelectedMobileTimeRange);\n const { unitSymbol, measurementType, isIndoor, sensorName } = (0, mapParamsHandler_1.useMapParams)();\n const isIndoorParameterInUrl = isIndoor === \"true\";\n const lastSelectedTimeRange = fixedSessionTypeSelected\n ? fixedLastSelectedTimeRange\n : mobileLastSelectedTimeRange || timeRange_1.MobileTimeRange.All;\n const startTime = (0, react_1.useMemo)(() => fixedSessionTypeSelected\n ? (0, dateParser_1.parseDateString)(fixedStreamShortInfo.startTime)\n : (0, dateParser_1.parseDateString)(mobileStreamShortInfo.startTime), [\n fixedSessionTypeSelected,\n fixedStreamShortInfo.startTime,\n mobileStreamShortInfo.startTime,\n ]);\n const endTime = (0, react_1.useMemo)(() => fixedSessionTypeSelected\n ? fixedStreamShortInfo.endTime\n ? (0, dateParser_1.parseDateString)(fixedStreamShortInfo.endTime)\n : Date.now()\n : mobileStreamShortInfo.endTime\n ? (0, dateParser_1.parseDateString)(mobileStreamShortInfo.endTime)\n : Date.now(), [\n fixedSessionTypeSelected,\n fixedStreamShortInfo.endTime,\n mobileStreamShortInfo.endTime,\n ]);\n const totalDuration = (0, react_1.useMemo)(() => endTime - startTime, [startTime, endTime]);\n const measurements = (0, hooks_1.useAppSelector)((state) => (0, fixedStreamSelectors_1.selectStreamMeasurements)(state, streamId));\n const isGovData = sensorName === null || sensorName === void 0 ? void 0 : sensorName.includes(sensors_1.SensorPrefix.GOVERNMENT);\n // Generate chart series data.\n const seriesData = (0, react_1.useMemo)(() => {\n return fixedSessionTypeSelected\n ? (0, createGraphData_1.createFixedSeriesData)(measurements)\n : (0, createGraphData_1.createMobileSeriesData)(mobileGraphData, true);\n }, [fixedSessionTypeSelected, measurements, mobileGraphData]);\n const chartData = seriesData;\n // Local override flag – when true, force computed selected index to -1.\n const [overrideRangeSelector, setOverrideRangeSelector] = (0, react_1.useState)(false);\n // Hooks to fetch & update chart data.\n const { fetchMeasurementsIfNeeded } = (0, useMeasurementsFetcher_1.useMeasurementsFetcher)(streamId, startTime, endTime, chartComponentRef, fixedSessionTypeSelected, rangeDisplayRef);\n const { updateChartData, lastTriggerRef } = (0, useChartUpdater_1.useChartUpdater)({\n chartComponentRef,\n seriesData,\n isLoading,\n fixedSessionTypeSelected,\n streamId,\n });\n const isFirstLoadRef = (0, react_1.useRef)(true);\n const lastRangeSelectorTriggerRef = (0, react_1.useRef)(null);\n const lastUpdateTimeRef = (0, react_1.useRef)(0);\n // If the last trigger was a mousewheel event—or if the override flag is true—we force the computed index to -1.\n const computedSelectedRangeIndex = (0, react_1.useMemo)(() => {\n if (selectedTimestamp)\n return -1;\n if (overrideRangeSelector)\n return -1;\n // So we combine it with our override flag.\n if (lastTriggerRef.current === \"mousewheel\")\n return -1;\n return (0, getTimeRange_1.getSelectedRangeIndex)(lastSelectedTimeRange, fixedSessionTypeSelected);\n }, [\n selectedTimestamp,\n overrideRangeSelector,\n lastSelectedTimeRange,\n fixedSessionTypeSelected,\n ]);\n const [selectedRangeIndex, setSelectedRangeIndex] = (0, react_1.useState)(computedSelectedRangeIndex);\n (0, react_1.useEffect)(() => {\n setSelectedRangeIndex(computedSelectedRangeIndex);\n }, [computedSelectedRangeIndex]);\n // Ref to track if a custom (calendar) day is selected.\n const isCalendarDaySelectedRef = (0, react_1.useRef)(!!selectedTimestamp);\n const lastProcessedTimestampRef = (0, react_1.useRef)(null);\n // When a calendar day is selected, mark the flag and fetch data.\n (0, react_1.useEffect)(() => {\n var _a, _b;\n if (!((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) || !selectedTimestamp)\n return;\n if (lastProcessedTimestampRef.current === selectedTimestamp)\n return;\n lastProcessedTimestampRef.current = selectedTimestamp;\n isCalendarDaySelectedRef.current = true;\n const selectedDayStart = selectedTimestamp;\n let selectedDayEnd = selectedDayStart + timeRanges_1.MILLISECONDS_IN_A_DAY - timeRanges_1.MILLISECONDS_IN_A_SECOND;\n const isFirstDay = selectedDayStart <= startTime;\n const isLastDay = selectedDayEnd >= endTime;\n let finalRangeStart = selectedDayStart;\n let finalRangeEnd = selectedDayEnd;\n if (isFirstDay)\n finalRangeStart = startTime;\n if (isLastDay)\n finalRangeEnd = endTime;\n finalRangeStart = Math.max(finalRangeStart, startTime);\n finalRangeEnd = Math.min(finalRangeEnd, endTime);\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, finalRangeStart, finalRangeEnd, true);\n if ((_b = chartComponentRef.current) === null || _b === void 0 ? void 0 : _b.chart) {\n chartComponentRef.current.chart.xAxis[0].setExtremes(finalRangeStart, finalRangeEnd, true, false, { trigger: \"calendarDay\" });\n }\n if (fixedSessionTypeSelected) {\n fetchMeasurementsIfNeeded(finalRangeStart, finalRangeEnd, false, true, \"calendarDay\");\n }\n }, [\n selectedTimestamp,\n fetchMeasurementsIfNeeded,\n rangeDisplayRef,\n startTime,\n endTime,\n fixedSessionTypeSelected,\n ]);\n const handleRangeSelectorClick = (0, react_1.useCallback)((selectedButton) => {\n var _a, _b;\n if (selectedButton === 0) {\n setSelectedRangeIndex(-1);\n }\n else {\n setSelectedRangeIndex(selectedButton);\n }\n lastRangeSelectorTriggerRef.current = selectedButton.toString();\n if ((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n const chart = chartComponentRef.current.chart;\n let timeRange;\n if (fixedSessionTypeSelected) {\n switch (selectedButton) {\n case 0:\n timeRange = timeRange_1.FixedTimeRange.Day;\n break;\n case 1:\n timeRange = timeRange_1.FixedTimeRange.Week;\n break;\n case 2:\n timeRange = timeRange_1.FixedTimeRange.Month;\n break;\n default:\n timeRange = timeRange_1.FixedTimeRange.Day;\n }\n dispatch((0, fixedStreamSlice_1.setLastSelectedTimeRange)(timeRange));\n }\n else {\n switch (selectedButton) {\n case 0:\n timeRange = timeRange_1.MobileTimeRange.FiveMinutes;\n break;\n case 1:\n timeRange = timeRange_1.MobileTimeRange.Hour;\n break;\n case 2:\n timeRange = timeRange_1.MobileTimeRange.All;\n break;\n default:\n timeRange = timeRange_1.MobileTimeRange.All;\n }\n dispatch((0, mobileStreamSlice_1.setLastSelectedMobileTimeRange)(timeRange));\n }\n const currentExtremes = chart.xAxis[0].getExtremes();\n const viewEnd = Math.min(currentExtremes.max || endTime, endTime);\n let rangeStart = viewEnd;\n let rangeEnd = viewEnd;\n if (!fixedSessionTypeSelected && timeRange === timeRange_1.MobileTimeRange.All) {\n rangeStart = startTime;\n rangeEnd = endTime;\n // Force a data fetch for the entire session when \"All\" is clicked\n if ((_b = chartComponentRef.current) === null || _b === void 0 ? void 0 : _b.chart) {\n const chart = chartComponentRef.current.chart;\n // First update UI to show the full range\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, rangeStart, rangeEnd, false);\n // Then fetch all data with our special trigger\n fetchMeasurementsIfNeeded(startTime, endTime, false, false, \"allButtonClicked\").then(() => {\n // Once complete, ensure we're showing the full range\n chart.xAxis[0].setExtremes(rangeStart, rangeEnd, true, false, {\n trigger: \"allButtonClicked\",\n });\n });\n return;\n }\n }\n else {\n switch (timeRange) {\n case timeRange_1.FixedTimeRange.Month:\n rangeStart = viewEnd - timeRanges_1.MILLISECONDS_IN_A_MONTH;\n break;\n case timeRange_1.FixedTimeRange.Week:\n rangeStart = viewEnd - timeRanges_1.MILLISECONDS_IN_A_WEEK;\n break;\n case timeRange_1.FixedTimeRange.Day:\n rangeStart = viewEnd - timeRanges_1.MILLISECONDS_IN_A_DAY;\n break;\n case timeRange_1.MobileTimeRange.FiveMinutes:\n rangeStart = viewEnd - timeRanges_1.MILLISECONDS_IN_A_5_MINUTES;\n break;\n case timeRange_1.MobileTimeRange.Hour:\n rangeStart = viewEnd - timeRanges_1.MILLISECONDS_IN_AN_HOUR;\n break;\n }\n }\n rangeStart = !isMobile ? Math.max(rangeStart, startTime) : rangeStart;\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, rangeStart, rangeEnd, false);\n if (fixedSessionTypeSelected) {\n fetchMeasurementsIfNeeded(rangeStart, rangeEnd, false, false, \"rangeSelectorButton\");\n }\n chart.xAxis[0].setExtremes(rangeStart, rangeEnd, true, false);\n }\n }, [\n fixedSessionTypeSelected,\n dispatch,\n onDayClick,\n rangeDisplayRef,\n startTime,\n endTime,\n fetchMeasurementsIfNeeded,\n isMobile,\n ]);\n (0, react_1.useEffect)(() => {\n if (!fixedSessionTypeSelected &&\n streamId &&\n startTime &&\n endTime &&\n mobileGraphData.length === 0 &&\n isFirstLoadRef.current) {\n fetchMeasurementsIfNeeded(startTime, endTime, false, false, \"initial\");\n }\n }, [\n fixedSessionTypeSelected,\n streamId,\n startTime,\n endTime,\n mobileGraphData,\n fetchMeasurementsIfNeeded,\n ]);\n const handleChartLoad = (0, react_1.useCallback)(function () {\n return __awaiter(this, void 0, void 0, function* () {\n chartEvents_1.handleLoad.call(this, isCalendarPage, isMobile);\n const chart = this;\n if (fixedSessionTypeSelected) {\n const twoDaysAgo = endTime - 2 * timeRanges_1.MILLISECONDS_IN_A_DAY;\n chart.xAxis[0].setExtremes(twoDaysAgo, endTime, true, false);\n }\n else {\n const sessionDuration = endTime - startTime;\n const defaultViewDuration = timeRanges_1.MILLISECONDS_IN_AN_HOUR;\n const viewStart = sessionDuration < defaultViewDuration\n ? startTime\n : Math.max(startTime, endTime - defaultViewDuration);\n chart.xAxis[0].setExtremes(viewStart, endTime, true, false);\n }\n isFirstLoadRef.current = false;\n });\n }, [isCalendarPage, isMobile, endTime, startTime, fixedSessionTypeSelected]);\n (0, react_1.useEffect)(() => {\n var _a;\n if (isMobile && ((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart)) {\n const chart = chartComponentRef.current.chart;\n let lastExtremes = chart.xAxis[0].getExtremes();\n let debounceTimer = null;\n const redrawHandler = () => {\n if (debounceTimer)\n clearTimeout(debounceTimer);\n debounceTimer = setTimeout(() => {\n const currentExtremes = chart.xAxis[0].getExtremes();\n if (currentExtremes.min !== lastExtremes.min ||\n currentExtremes.max !== lastExtremes.max) {\n lastExtremes = currentExtremes;\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, currentExtremes.min, currentExtremes.max, false);\n fetchMeasurementsIfNeeded(currentExtremes.min, currentExtremes.max, false, false, \"redraw\");\n }\n }, 150);\n };\n highstock_1.default.addEvent(chart, \"redraw\", redrawHandler);\n return () => {\n highstock_1.default.removeEvent(chart, \"redraw\", redrawHandler);\n if (debounceTimer)\n clearTimeout(debounceTimer);\n };\n }\n }, [\n isMobile,\n chartComponentRef,\n fetchMeasurementsIfNeeded,\n rangeDisplayRef,\n ]);\n const options = (0, react_1.useMemo)(() => {\n return {\n chart: Object.assign(Object.assign({}, (0, graphConfig_1.getChartOptions)(isCalendarPage, isMobile)), { events: { load: handleChartLoad } }),\n xAxis: (0, graphConfig_1.getXAxisOptions)(isMobile, fixedSessionTypeSelected, dispatch, isLoading, fetchMeasurementsIfNeeded, streamId, lastTriggerRef, lastUpdateTimeRef, onDayClick, rangeDisplayRef, startTime, endTime, isCalendarDaySelectedRef, \n // Pass the setter so that the mousewheel branch can hold the override longer.\n setOverrideRangeSelector),\n yAxis: (0, graphConfig_1.getYAxisOptions)(thresholdsState, isMobile),\n series: [\n Object.assign({}, (0, graphConfig_1.seriesOptions)(chartData)),\n ],\n tooltip: (0, graphConfig_1.getTooltipOptions)(measurementType, unitSymbol),\n plotOptions: (0, graphConfig_1.getPlotOptions)(fixedSessionTypeSelected, streamId, dispatch, isIndoorParameterInUrl, isGovData),\n rangeSelector: Object.assign(Object.assign({}, (0, graphConfig_1.getRangeSelectorOptions)(isMobile, fixedSessionTypeSelected, totalDuration, computedSelectedRangeIndex, isCalendarPage, t)), { buttons: fixedSessionTypeSelected\n ? [\n {\n type: \"day\",\n count: 1,\n text: t(\"graph.24Hours\"),\n events: {\n click: function () {\n onDayClick === null || onDayClick === void 0 ? void 0 : onDayClick(null);\n handleRangeSelectorClick(0);\n },\n },\n },\n {\n type: \"week\",\n count: 1,\n text: t(\"graph.oneWeek\"),\n events: {\n click: function () {\n onDayClick === null || onDayClick === void 0 ? void 0 : onDayClick(null);\n handleRangeSelectorClick(1);\n },\n },\n },\n {\n type: \"month\",\n count: 1,\n text: t(\"graph.oneMonth\"),\n events: {\n click: function () {\n onDayClick === null || onDayClick === void 0 ? void 0 : onDayClick(null);\n handleRangeSelectorClick(2);\n },\n },\n },\n ]\n : [\n {\n type: \"minute\",\n count: 5,\n text: t(\"graph.fiveMinutes\"),\n events: {\n click: function () {\n handleRangeSelectorClick(0);\n },\n },\n },\n {\n type: \"minute\",\n count: 60,\n text: t(\"graph.oneHour\"),\n events: {\n click: function () {\n handleRangeSelectorClick(1);\n },\n },\n },\n {\n type: \"all\",\n text: t(\"graph.all\"),\n events: {\n click: function () {\n handleRangeSelectorClick(2);\n },\n },\n },\n ], selected: selectedTimestamp\n ? undefined\n : lastTriggerRef.current === \"mousewheel\"\n ? undefined\n : selectedRangeIndex >= 0\n ? selectedRangeIndex\n : undefined }),\n scrollbar: (0, graphConfig_1.getScrollbarOptions)(isCalendarPage, isMobile),\n navigator: (0, graphConfig_1.getNavigatorOptions)(),\n responsive: (0, graphConfig_1.getResponsiveOptions)(thresholdsState, isMobile),\n legend: graphConfig_1.legendOption,\n noData: {\n style: { fontWeight: \"bold\", fontSize: \"15px\", color: colors_1.white },\n position: { align: \"center\", verticalAlign: \"middle\" },\n useHTML: true,\n text: \"No data available\",\n },\n };\n }, [\n isCalendarPage,\n isMobile,\n totalDuration,\n computedSelectedRangeIndex,\n t,\n fixedSessionTypeSelected,\n dispatch,\n isLoading,\n fetchMeasurementsIfNeeded,\n streamId,\n lastTriggerRef,\n lastUpdateTimeRef,\n startTime,\n endTime,\n thresholdsState,\n chartData,\n selectedTimestamp,\n selectedRangeIndex,\n onDayClick,\n measurementType,\n unitSymbol,\n isIndoor,\n ]);\n (0, react_1.useEffect)(() => {\n const applyStyles = () => {\n const graphElement = graphRef.current;\n if (graphElement) {\n graphElement.style.touchAction = \"pan-x\";\n const highchartsContainer = graphElement.querySelector(\".highcharts-container\");\n if (highchartsContainer) {\n highchartsContainer.style.overflow = \"visible\";\n }\n const highchartsChartContainer = graphRef.current.querySelector(\"[data-highcharts-chart]\");\n if (highchartsChartContainer) {\n highchartsChartContainer.style.overflow = \"visible\";\n }\n }\n };\n applyStyles();\n const observer = new MutationObserver(applyStyles);\n if (graphRef.current) {\n observer.observe(graphRef.current, { childList: true, subtree: true });\n }\n return () => {\n observer.disconnect();\n };\n }, []);\n (0, react_1.useEffect)(() => {\n var _a;\n if (((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) &&\n seriesData &&\n seriesData.length > 0) {\n setTimeout(() => {\n var _a;\n if ((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n chartComponentRef.current.chart.reflow();\n if (isCalendarPage) {\n const container = graphRef.current;\n if (container) {\n const currentHeight = container.style.height;\n container.style.height = \"auto\";\n container.offsetHeight;\n container.style.height = currentHeight;\n setTimeout(() => {\n var _a;\n if ((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n chartComponentRef.current.chart.reflow();\n }\n }, 100);\n }\n }\n }\n }, 200);\n }\n }, [isCalendarPage, seriesData]);\n (0, react_1.useEffect)(() => {\n if (isFirstLoadRef.current &&\n streamId &&\n startTime &&\n endTime &&\n endTime > startTime) {\n isFirstLoadRef.current = false;\n setTimeout(() => {\n fetchMeasurementsIfNeeded(startTime, endTime, true, false, \"initial\");\n }, 50);\n }\n }, [\n streamId,\n fixedSessionTypeSelected,\n startTime,\n endTime,\n fetchMeasurementsIfNeeded,\n ]);\n return (react_1.default.createElement(S.Container, { \"$isCalendarPage\": isCalendarPage, \"$isMobile\": isMobile, \"$isLoading\": isLoading, ref: graphRef }, seriesData && seriesData.length > 0 && (react_1.default.createElement(highcharts_react_official_1.default, { highcharts: highstock_1.default, constructorType: \"stockChart\", options: options, ref: chartComponentRef, immutable: false }))));\n});\nexports.Graph = Graph;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst fixedStreamSelectors_1 = require(\"../../../store/fixedStreamSelectors\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst thresholdSlice_1 = require(\"../../../store/thresholdSlice\");\nconst measurementsCalc_1 = require(\"../../../utils/measurementsCalc\");\nconst thresholdColors_1 = require(\"../../../utils/thresholdColors\");\nconst S = __importStar(require(\"../../organisms/Modals/SessionDetailsModal/SessionDetailsModal.style\"));\nconst Graph_style_1 = require(\"./Graph.style\");\nconst MeasurementComponent = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const extremes = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedExtremes);\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const { unitSymbol } = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamShortInfo);\n const { minMeasurementValue, maxMeasurementValue, averageValue } = extremes;\n const averageValueColor = (0, react_1.useMemo)(() => (0, thresholdColors_1.getColorForValue)(thresholds, averageValue), [thresholds, averageValue]);\n const minMeasurementValueColor = (0, react_1.useMemo)(() => (0, thresholdColors_1.getColorForValue)(thresholds, minMeasurementValue), [thresholds, minMeasurementValue]);\n const maxMeasurementValueColor = (0, react_1.useMemo)(() => (0, thresholdColors_1.getColorForValue)(thresholds, maxMeasurementValue), [thresholds, maxMeasurementValue]);\n const noData = (0, measurementsCalc_1.isNoData)(extremes.minMeasurementValue, extremes.maxMeasurementValue, extremes.averageValue);\n return (react_1.default.createElement(Graph_style_1.MeasurementContainer, null, noData ? (react_1.default.createElement(S.NoData, null, t(\"sessionDetailsModal.noData\"))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.AverageValueContainer, null,\n react_1.default.createElement(S.AverageDot, { \"$color\": averageValueColor }),\n t(\"sessionDetailsModal.averageValue\"),\n react_1.default.createElement(S.AverageValue, null, averageValue),\n unitSymbol),\n react_1.default.createElement(S.MinMaxValueContainer, { \"$isMobile\": false },\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(S.SmallDot, { \"$color\": minMeasurementValueColor }),\n t(\"sessionDetailsModal.minValue\"),\n react_1.default.createElement(S.Value, null, minMeasurementValue)),\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(S.SmallDot, { \"$color\": maxMeasurementValueColor }),\n t(\"sessionDetailsModal.maxValue\"),\n react_1.default.createElement(S.Value, null, maxMeasurementValue)))))));\n};\nexports.default = MeasurementComponent;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importStar(require(\"react\"));\nconst S = __importStar(require(\"./Graph.style\"));\nconst TimeRange = (0, react_1.forwardRef)(({ minTime, maxTime }, ref) => {\n const [shouldShowInitial, setShouldShowInitial] = (0, react_1.useState)(true);\n (0, react_1.useLayoutEffect)(() => {\n // Only check once on mount\n if (ref && \"current\" in ref && ref.current) {\n const hasContent = ref.current.childElementCount > 0;\n setShouldShowInitial(!hasContent);\n }\n }, []);\n return (react_1.default.createElement(S.TimeRangeContainer, { ref: ref }, shouldShowInitial && (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.TimeContainer, null,\n react_1.default.createElement(S.Date, null, minTime.date),\n react_1.default.createElement(S.Time, null, minTime.time)),\n \"-\",\n react_1.default.createElement(S.TimeContainer, null,\n react_1.default.createElement(S.Date, null, maxTime.date),\n react_1.default.createElement(S.Time, null, maxTime.time))))));\n});\nexports.default = TimeRange;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.onScrollbarRelease = exports.isDragging = exports.handleLoad = void 0;\nconst highstock_1 = __importDefault(require(\"highcharts/highstock\"));\nconst chevronLeftCircle_svg_1 = __importDefault(require(\"../../../assets/icons/chevronLeftCircle.svg\"));\nconst chevronRightCircle_svg_1 = __importDefault(require(\"../../../assets/icons/chevronRightCircle.svg\"));\nconst graphChevronLeft_svg_1 = __importDefault(require(\"../../../assets/icons/graphChevronLeft.svg\"));\nconst graphChevronRight_svg_1 = __importDefault(require(\"../../../assets/icons/graphChevronRight.svg\"));\nconst mobileChevronLeft_svg_1 = __importDefault(require(\"../../../assets/icons/mobileChevronLeft.svg\"));\nconst mobileChevronRight_svg_1 = __importDefault(require(\"../../../assets/icons/mobileChevronRight.svg\"));\nconst DIRECTION_LEFT = \"left\";\nconst DIRECTION_RIGHT = \"right\";\nlet onScrollbarRelease = null;\nexports.onScrollbarRelease = onScrollbarRelease;\nlet isDragging = false;\nexports.isDragging = isDragging;\nconst addScrollbarDragDetection = (chart) => {\n // Detect when the mouse is down on the scrollbar\n highstock_1.default.addEvent(chart.container, \"mousedown\", function (e) {\n var _a;\n const target = e === null || e === void 0 ? void 0 : e.target;\n const classNames = ((_a = target === null || target === void 0 ? void 0 : target.className) === null || _a === void 0 ? void 0 : _a.toString()) || \"\";\n if (classNames.includes(\"highcharts-scrollbar\") ||\n classNames.includes(\"highcharts-navigator\") ||\n classNames.includes(\"highcharts-navigator-handle\") ||\n classNames.includes(\"highcharts-navigator-mask\") ||\n classNames.includes(\"highcharts-navigator-track\") ||\n classNames.includes(\"highcharts-navigator-series\") ||\n (target === null || target === void 0 ? void 0 : target.closest(\".highcharts-scrollbar\")) ||\n (target === null || target === void 0 ? void 0 : target.closest(\".highcharts-navigator\"))) {\n exports.isDragging = isDragging = true;\n }\n });\n // Handle mouseup event\n const handleMouseUp = function () {\n if (isDragging) {\n exports.isDragging = isDragging = false;\n // Execute callback when scrollbar is released\n if (onScrollbarRelease) {\n onScrollbarRelease();\n }\n }\n };\n // Add mouseup listeners\n highstock_1.default.addEvent(document, \"mouseup\", handleMouseUp);\n highstock_1.default.addEvent(chart.container, \"mouseup\", handleMouseUp);\n highstock_1.default.addEvent(chart.container, \"mouseleave\", handleMouseUp);\n // \"Any\" type is because of a bug in highcharts. If you log chart you will see that is has a scroller propertie.\n if (chart.scroller) {\n highstock_1.default.addEvent(chart.scroller, \"mouseup\", handleMouseUp);\n }\n if (chart.navigator) {\n highstock_1.default.addEvent(chart.navigator, \"mouseup\", handleMouseUp);\n }\n};\nconst addNavigationArrows = (chart, isCalendarPage, isMobile) => {\n if (isMobile && !isCalendarPage) {\n return;\n }\n if (chart.renderer.boxWrapper.element.querySelectorAll(\".custom-arrow\").length >\n 0) {\n return;\n }\n let leftArrow;\n let rightArrow;\n const updateArrowStates = () => {\n const axis = chart.xAxis[0];\n const { min, max, dataMin, dataMax } = axis.getExtremes();\n leftArrow.css({\n cursor: min <= dataMin ? \"not-allowed\" : \"pointer\",\n opacity: min <= dataMin ? 0.5 : 1,\n });\n rightArrow.css({\n cursor: max >= dataMax ? \"not-allowed\" : \"pointer\",\n opacity: max >= dataMax ? 0.5 : 1,\n });\n };\n const move = (direction) => {\n const axis = chart.xAxis[0];\n const { min, max, dataMin, dataMax } = axis.getExtremes();\n const range = max - min;\n const moveAmount = range * 0.1;\n const newMin = direction === DIRECTION_LEFT\n ? Math.max(dataMin, min - moveAmount)\n : Math.min(dataMax - range, min + moveAmount);\n const newMax = direction === DIRECTION_LEFT\n ? Math.max(dataMin + range, max - moveAmount)\n : Math.min(dataMax, max + moveAmount);\n axis.setExtremes(newMin, newMax, true, false, { trigger: \"syncExtremes\" });\n updateArrowStates();\n };\n const toggleElements = (display) => {\n const elements = [\n \".highcharts-tooltip\",\n \".highcharts-point\",\n \".highcharts-crosshair\",\n \".highcharts-halo\",\n ];\n elements.forEach((selector) => {\n const element = chart.container.querySelector(selector);\n if (element)\n element.style.display = display;\n });\n };\n const createArrows = () => {\n const chartWidth = chart.chartWidth;\n const chartHeight = chart.chartHeight;\n // Remove existing arrows if any\n chart.renderer.boxWrapper.element\n .querySelectorAll(\".custom-arrow\")\n .forEach((el) => el.remove());\n const leftIcon = isMobile\n ? mobileChevronLeft_svg_1.default\n : isCalendarPage\n ? chevronLeftCircle_svg_1.default\n : graphChevronLeft_svg_1.default;\n const rightIcon = isMobile\n ? mobileChevronRight_svg_1.default\n : isCalendarPage\n ? chevronRightCircle_svg_1.default\n : graphChevronRight_svg_1.default;\n let iconSize = 48;\n let leftArrowX = 15;\n let rightArrowX = chartWidth - 118;\n let arrowY = chartHeight / 2;\n if (isMobile && isCalendarPage) {\n iconSize = 40;\n leftArrowX = 0;\n rightArrowX = chartWidth - 50;\n arrowY = -29;\n }\n else if (!isMobile && isCalendarPage) {\n iconSize = 46;\n leftArrowX = -70;\n rightArrowX = chartWidth + 25;\n arrowY = chartHeight / 2 - 24;\n }\n else if (!isMobile && !isCalendarPage) {\n iconSize = 48;\n leftArrowX = 15;\n rightArrowX = chartWidth - 118;\n arrowY = chartHeight / 2 - 24;\n }\n leftArrow = chart.renderer\n .image(leftIcon, leftArrowX, arrowY, iconSize, iconSize)\n .attr({ zIndex: 10, class: \"custom-arrow\" })\n .css({ cursor: \"pointer\" })\n .add();\n rightArrow = chart.renderer\n .image(rightIcon, rightArrowX, arrowY, iconSize, iconSize)\n .attr({ zIndex: 10, class: \"custom-arrow\" })\n .css({ cursor: \"pointer\" })\n .add();\n leftArrow.on(\"click\", () => {\n if (leftArrow.element.style.cursor !== \"not-allowed\") {\n move(DIRECTION_LEFT);\n }\n });\n rightArrow.on(\"click\", () => {\n if (rightArrow.element.style.cursor !== \"not-allowed\") {\n move(DIRECTION_RIGHT);\n }\n });\n leftArrow.on(\"mouseover\", () => toggleElements(\"none\"));\n leftArrow.on(\"mouseout\", () => toggleElements(\"block\"));\n rightArrow.on(\"mouseover\", () => toggleElements(\"none\"));\n rightArrow.on(\"mouseout\", () => toggleElements(\"block\"));\n updateArrowStates();\n highstock_1.default.addEvent(chart, \"redraw\", () => {\n updateArrowStates();\n leftArrow.attr({ x: leftArrowX, y: arrowY });\n rightArrow.attr({\n x: rightArrowX,\n y: arrowY,\n });\n });\n };\n createArrows();\n highstock_1.default.addEvent(chart, \"resize\", createArrows);\n};\nconst handleLoad = function (isCalendarPage, isMobile) {\n addNavigationArrows(this, isCalendarPage, isMobile);\n addScrollbarDragDetection(this);\n};\nexports.handleLoad = handleLoad;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMobileSeriesData = exports.createFixedSeriesData = exports.isValidMeasurement = void 0;\nconst isValidMeasurement = (m) => {\n return m.time !== undefined && m.value !== undefined;\n};\nexports.isValidMeasurement = isValidMeasurement;\nconst createFixedSeriesData = (measurements) => measurements === null || measurements === void 0 ? void 0 : measurements.filter(exports.isValidMeasurement).map(({ time, value }) => [time, value]).sort((a, b) => a[0] - b[0]);\nexports.createFixedSeriesData = createFixedSeriesData;\nconst createMobileSeriesData = (data, isGraphData) => data\n .map((measurement) => ({\n x: measurement.time,\n y: isGraphData && \"lastMeasurementValue\" in measurement\n ? measurement.lastMeasurementValue\n : measurement.value,\n position: {\n lat: isGraphData && \"point\" in measurement\n ? measurement.point.lat\n : measurement.latitude,\n lng: isGraphData && \"point\" in measurement\n ? measurement.point.lng\n : measurement.longitude,\n },\n}))\n .filter((point) => point.x !== undefined && point.y !== undefined)\n .sort((a, b) => a.x - b.x);\nexports.createMobileSeriesData = createMobileSeriesData;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.updateRangeDisplay = void 0;\nconst measurementsCalc_1 = require(\"../../../../utils/measurementsCalc\");\nconst updateRangeDisplay = (rangeDisplayRef, min, max, useFullDayFormat = false) => {\n if (!(rangeDisplayRef === null || rangeDisplayRef === void 0 ? void 0 : rangeDisplayRef.current))\n return;\n // Format times using measurement timestamps\n const formattedTime = (0, measurementsCalc_1.formatTimeExtremes)(min, max, useFullDayFormat);\n const htmlContent = `\n
\n ${formattedTime.formattedMinTime.date}\n ${formattedTime.formattedMinTime.time}\n
\n -\n
\n ${formattedTime.formattedMaxTime.date}\n ${formattedTime.formattedMaxTime.time}\n
\n `;\n // Create a function to update the DOM\n const updateDOM = () => {\n if (rangeDisplayRef.current) {\n // Clear existing content\n while (rangeDisplayRef.current.firstChild) {\n rangeDisplayRef.current.removeChild(rangeDisplayRef.current.firstChild);\n }\n // Create a temporary container\n const temp = document.createElement(\"div\");\n temp.innerHTML = htmlContent;\n // Move nodes from temp to the actual container\n while (temp.firstChild) {\n rangeDisplayRef.current.appendChild(temp.firstChild);\n }\n }\n };\n // Use double RAF to ensure DOM is ready and changes are batched\n requestAnimationFrame(() => {\n requestAnimationFrame(updateDOM);\n });\n};\nexports.updateRangeDisplay = updateRangeDisplay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useChartUpdater = void 0;\nconst react_1 = require(\"react\");\nconst fixedStreamSlice_1 = require(\"../../../../store/fixedStreamSlice\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst mobileStreamSlice_1 = require(\"../../../../store/mobileStreamSlice\");\nconst useChartUpdater = ({ chartComponentRef, seriesData, isLoading, fixedSessionTypeSelected, streamId, }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const lastSelectedTimeRange = (0, hooks_1.useAppSelector)((state) => fixedSessionTypeSelected\n ? state.fixedStream.lastSelectedTimeRange\n : state.mobileStream.lastSelectedTimeRange);\n const updateTimeoutRef = (0, react_1.useRef)(null);\n const lastTriggerRef = (0, react_1.useRef)(null);\n const hasInitializedRef = (0, react_1.useRef)(false);\n (0, react_1.useEffect)(() => {\n return () => {\n if (updateTimeoutRef.current) {\n clearTimeout(updateTimeoutRef.current);\n }\n };\n }, []);\n (0, react_1.useEffect)(() => {\n var _a;\n if (((_a = chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) &&\n seriesData &&\n seriesData.length > 0 &&\n streamId) {\n const chart = chartComponentRef.current.chart;\n if (chart.xAxis[0]) {\n const { min, max } = chart.xAxis[0].getExtremes();\n if (min !== undefined && max !== undefined) {\n setTimeout(() => {\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min,\n max,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min,\n max,\n }));\n }\n hasInitializedRef.current = true;\n }, 100);\n }\n }\n }\n }, [seriesData, isLoading, fixedSessionTypeSelected, streamId, dispatch]);\n const updateChartData = (0, react_1.useCallback)((chart, data) => {\n chart.series[0].setData(data, true, false, false);\n if (chart.xAxis[0]) {\n const { min, max } = chart.xAxis[0].getExtremes();\n if (min !== undefined && max !== undefined) {\n if (fixedSessionTypeSelected && streamId) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min,\n max,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min,\n max,\n }));\n }\n hasInitializedRef.current = true;\n }\n }\n }, [fixedSessionTypeSelected, streamId, dispatch]);\n (0, react_1.useEffect)(() => {\n return () => {\n dispatch((0, fixedStreamSlice_1.resetTimeRange)());\n if (fixedSessionTypeSelected && streamId) {\n dispatch((0, fixedStreamSlice_1.resetFixedMeasurementExtremes)());\n }\n else {\n dispatch((0, mobileStreamSlice_1.resetMobileMeasurementExtremes)());\n }\n };\n }, [fixedSessionTypeSelected, streamId, dispatch]);\n return {\n updateChartData,\n lastTriggerRef,\n };\n};\nexports.useChartUpdater = useChartUpdater;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useMeasurementsFetcher = void 0;\nconst react_1 = require(\"react\");\nconst fixedStreamSelectors_1 = require(\"../../../../store/fixedStreamSelectors\");\nconst fixedStreamSlice_1 = require(\"../../../../store/fixedStreamSlice\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst mobileStreamSlice_1 = require(\"../../../../store/mobileStreamSlice\");\nconst timeRanges_1 = require(\"../../../../utils/timeRanges\");\nconst updateRangeDisplay_1 = require(\"./updateRangeDisplay\");\nconst INITIAL_EDGE_FETCH_MONTHS = 1;\nconst MILLISECONDS_IN_TWO_SECONDS = 2 * timeRanges_1.MILLISECONDS_IN_A_SECOND;\nconst useMeasurementsFetcher = (streamId, sessionStartTime, sessionEndTime, chartComponentRef, fixedSessionTypeSelected, rangeDisplayRef) => {\n const isCurrentlyFetchingRef = (0, react_1.useRef)(false);\n const dispatch = (0, hooks_1.useAppDispatch)();\n const isFirstRender = (0, react_1.useRef)(true);\n const fetchAttemptsRef = (0, react_1.useRef)(0);\n const lastFetchTriggerRef = (0, react_1.useRef)(null);\n const pendingSetExtremesRef = (0, react_1.useRef)(null);\n const activeFetchesRef = (0, react_1.useRef)(0);\n const loadingTimeoutRef = (0, react_1.useRef)(null);\n const lastFetchedRangeRef = (0, react_1.useRef)(null);\n const lastUpdateTimeRef = (0, react_1.useRef)(0);\n const fetchedTimeRanges = (0, hooks_1.useAppSelector)((state) => streamId ? (0, fixedStreamSelectors_1.selectFetchedTimeRanges)(state, streamId) : []);\n const findMissingRanges = (start, end) => {\n if (!fetchedTimeRanges.length) {\n if (end - start > timeRanges_1.MILLISECONDS_IN_A_MONTH) {\n const chunks = [];\n let chunkEnd = end;\n while (chunkEnd > start) {\n const chunkStart = Math.max(start, chunkEnd - timeRanges_1.MILLISECONDS_IN_A_MONTH);\n chunks.push({\n start: chunkStart,\n end: chunkEnd,\n });\n chunkEnd = chunkStart;\n }\n return chunks;\n }\n return [{ start, end }];\n }\n const sortedRanges = [...fetchedTimeRanges].sort((a, b) => a.start - b.start);\n const mergedRanges = [];\n if (sortedRanges.length > 0) {\n let currentRange = Object.assign({}, sortedRanges[0]);\n for (let i = 1; i < sortedRanges.length; i++) {\n const nextRange = sortedRanges[i];\n if (nextRange.start <= currentRange.end + timeRanges_1.MILLISECONDS_IN_A_MINUTE) {\n currentRange.end = Math.max(currentRange.end, nextRange.end);\n }\n else {\n mergedRanges.push(currentRange);\n currentRange = Object.assign({}, nextRange);\n }\n }\n mergedRanges.push(currentRange);\n }\n const gaps = [];\n let currentStart = start;\n for (const range of mergedRanges) {\n if (currentStart < range.start) {\n const gapEnd = Math.min(range.start, end);\n if (gapEnd - currentStart > timeRanges_1.MILLISECONDS_IN_A_MINUTE * 5) {\n gaps.push({\n start: currentStart,\n end: gapEnd,\n });\n }\n }\n currentStart = Math.max(currentStart, range.end);\n }\n if (currentStart < end) {\n if (end - currentStart > timeRanges_1.MILLISECONDS_IN_A_MINUTE) {\n gaps.push({\n start: currentStart,\n end,\n });\n }\n }\n return gaps.reduce((acc, gap) => {\n if (gap.end - gap.start > timeRanges_1.MILLISECONDS_IN_A_MONTH) {\n let chunkEnd = gap.end;\n while (chunkEnd > gap.start) {\n const chunkStart = Math.max(gap.start, chunkEnd - timeRanges_1.MILLISECONDS_IN_A_MONTH);\n acc.push({\n start: chunkStart,\n end: chunkEnd,\n });\n chunkEnd = chunkStart;\n }\n }\n else {\n acc.push(gap);\n }\n return acc;\n }, []);\n };\n const updateExtremesAndDisplay = (start, end, trigger) => {\n var _a;\n if ((_a = chartComponentRef === null || chartComponentRef === void 0 ? void 0 : chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n const chart = chartComponentRef.current.chart;\n const effectiveTrigger = trigger && trigger !== \"none\"\n ? trigger\n : lastFetchTriggerRef.current || \"none\";\n chart.xAxis[0].setExtremes(start, end, true, false, {\n trigger: effectiveTrigger,\n });\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, start, end, effectiveTrigger === \"calendarDay\");\n }\n };\n const updateLoadingState = (increment) => {\n var _a;\n if (increment) {\n activeFetchesRef.current++;\n if ((_a = chartComponentRef === null || chartComponentRef === void 0 ? void 0 : chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n chartComponentRef.current.chart.showLoading(\"Loading data from server...\");\n }\n }\n else {\n activeFetchesRef.current = Math.max(0, activeFetchesRef.current - 1);\n if (activeFetchesRef.current === 0) {\n // Clear any existing timeout\n if (loadingTimeoutRef.current) {\n clearTimeout(loadingTimeoutRef.current);\n }\n // Set a new timeout to hide loading indicator after a delay\n loadingTimeoutRef.current = setTimeout(() => {\n var _a;\n if ((_a = chartComponentRef === null || chartComponentRef === void 0 ? void 0 : chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n chartComponentRef.current.chart.hideLoading();\n }\n loadingTimeoutRef.current = null;\n }, 500);\n }\n }\n };\n const fetchMeasurementsIfNeeded = (start, end, isEdgeFetch = false, isDaySelection = false, trigger) => __awaiter(void 0, void 0, void 0, function* () {\n var _a, _b;\n if (!streamId || isCurrentlyFetchingRef.current) {\n return;\n }\n // Guard against invalid time ranges\n if (start >= end || end - start < 1000) {\n return;\n }\n // Check if this exact range was just fetched recently\n const now = Date.now();\n if (lastFetchedRangeRef.current &&\n lastFetchedRangeRef.current.start === start &&\n lastFetchedRangeRef.current.end === end &&\n now - lastUpdateTimeRef.current < 500 &&\n trigger !== \"initial\") {\n return;\n }\n const boundedStart = Math.max(start, sessionStartTime);\n const boundedEnd = Math.min(end, sessionEndTime);\n // Additional guard for bounded range\n if (boundedStart >= boundedEnd) {\n return;\n }\n // Store this range as the last fetched range\n lastFetchedRangeRef.current = { start, end };\n lastUpdateTimeRef.current = now;\n // Add this specific check for the \"allButtonClicked\" trigger\n const isAllButtonClick = trigger === \"allButtonClicked\";\n // Special handling for \"all\" data request\n const totalSessionDuration = sessionEndTime - sessionStartTime;\n const isAllDataRequest = isAllButtonClick ||\n (trigger === \"rangeSelectorButton\" &&\n ((boundedEnd - boundedStart > timeRanges_1.MILLISECONDS_IN_A_MONTH / 2 &&\n boundedStart <= sessionStartTime + timeRanges_1.MILLISECONDS_IN_A_DAY &&\n boundedEnd >= sessionEndTime - timeRanges_1.MILLISECONDS_IN_A_DAY) ||\n boundedEnd - boundedStart > totalSessionDuration * 0.9)) ||\n (trigger === \"navigator\" &&\n boundedEnd - boundedStart > totalSessionDuration * 0.9);\n // Force fetch for initial loads and \"all\" data requests\n const shouldForceFetch = trigger === \"initial\" || isAllDataRequest || isAllButtonClick;\n // Find missing ranges first\n const missingRanges = findMissingRanges(boundedStart, boundedEnd);\n // Only show loading indicator if we have missing ranges to fetch or it's a forced fetch\n const shouldShowLoading = missingRanges.length > 0 || shouldForceFetch;\n if (!shouldShowLoading && !shouldForceFetch) {\n return;\n }\n try {\n isCurrentlyFetchingRef.current = true;\n if (shouldShowLoading) {\n updateLoadingState(true);\n }\n if (trigger === \"initial\" && !fixedSessionTypeSelected) {\n const result = yield dispatch((0, fixedStreamSlice_1.fetchMeasurements)({\n streamId: Number(streamId),\n startTime: Math.floor(boundedStart).toString(),\n endTime: Math.floor(boundedEnd).toString(),\n })).unwrap();\n if (result && result.length > 0) {\n dispatch((0, fixedStreamSlice_1.updateFetchedTimeRanges)({\n streamId,\n start: boundedStart,\n end: boundedEnd,\n }));\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min: boundedStart,\n max: boundedEnd,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min: boundedStart,\n max: boundedEnd,\n }));\n }\n }\n }\n else {\n // Special handling for \"all\" data request - fetch entire session in chunks\n if (isAllDataRequest || isAllButtonClick) {\n if (isAllButtonClick) {\n try {\n // Show a clear loading state\n if ((_a = chartComponentRef === null || chartComponentRef === void 0 ? void 0 : chartComponentRef.current) === null || _a === void 0 ? void 0 : _a.chart) {\n chartComponentRef.current.chart.showLoading(\"Loading all data...\");\n }\n // First, clear any existing tracked ranges for this stream\n // This ensures we'll fetch everything fresh\n if (streamId) {\n dispatch({\n type: \"fixedStream/clearFetchedTimeRanges\",\n payload: streamId,\n });\n }\n // Then fetch all data in chunks to ensure complete coverage\n const allRanges = [];\n let chunkStart = sessionStartTime;\n // Create chunks of reasonable size\n while (chunkStart < sessionEndTime) {\n const chunkEnd = Math.min(chunkStart + timeRanges_1.MILLISECONDS_IN_A_MONTH, sessionEndTime);\n allRanges.push({\n start: chunkStart,\n end: chunkEnd,\n });\n chunkStart = chunkEnd;\n }\n // Fetch all data sequentially to ensure order\n for (let i = 0; i < allRanges.length; i++) {\n const range = allRanges[i];\n const result = yield dispatch((0, fixedStreamSlice_1.fetchMeasurements)({\n streamId: Number(streamId),\n startTime: Math.floor(range.start).toString(),\n endTime: Math.floor(range.end).toString(),\n })).unwrap();\n if (result && result.length > 0) {\n dispatch((0, fixedStreamSlice_1.updateFetchedTimeRanges)({\n streamId,\n start: range.start,\n end: range.end,\n }));\n }\n }\n // After fetching all data, update measurement extremes for the entire session\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min: sessionStartTime,\n max: sessionEndTime,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min: sessionStartTime,\n max: sessionEndTime,\n }));\n }\n // After fetching all data, force extremes update to show everything\n if ((_b = chartComponentRef === null || chartComponentRef === void 0 ? void 0 : chartComponentRef.current) === null || _b === void 0 ? void 0 : _b.chart) {\n chartComponentRef.current.chart.xAxis[0].setExtremes(sessionStartTime, sessionEndTime, true, false);\n }\n // Skip the regular fetch logic since we've handled everything\n return;\n }\n catch (error) { }\n }\n }\n const visibleRange = boundedEnd - boundedStart;\n const fetchPadding = Math.min(visibleRange * 0.25, // 25% of the visible range\n timeRanges_1.MILLISECONDS_IN_A_DAY);\n const paddedStart = Math.max(sessionStartTime, boundedStart - fetchPadding);\n const paddedEnd = Math.min(sessionEndTime, boundedEnd + fetchPadding);\n const missingRanges = findMissingRanges(paddedStart, paddedEnd);\n if (missingRanges.length === 0) {\n if (pendingSetExtremesRef.current) {\n const { start, end } = pendingSetExtremesRef.current;\n updateExtremesAndDisplay(start, end, lastFetchTriggerRef.current || undefined);\n }\n return;\n }\n // Process all ranges in parallel for efficiency\n const fetchPromises = missingRanges.map((range, index) => __awaiter(void 0, void 0, void 0, function* () {\n let fetchStart = range.start;\n let fetchEnd = range.end;\n if (isDaySelection) {\n const paddedStart = Math.max(sessionStartTime, fetchStart - timeRanges_1.MILLISECONDS_IN_A_DAY * 2);\n const paddedEnd = Math.min(sessionEndTime, fetchEnd + timeRanges_1.MILLISECONDS_IN_A_DAY - MILLISECONDS_IN_TWO_SECONDS);\n if (paddedEnd - paddedStart > timeRanges_1.MILLISECONDS_IN_A_MONTH) {\n fetchStart = paddedEnd - timeRanges_1.MILLISECONDS_IN_A_MONTH;\n fetchEnd = paddedEnd;\n }\n else {\n fetchStart = paddedStart;\n fetchEnd = paddedEnd;\n }\n }\n else if (isEdgeFetch) {\n const baseRange = Math.min(timeRanges_1.MILLISECONDS_IN_A_MONTH * INITIAL_EDGE_FETCH_MONTHS, timeRanges_1.MILLISECONDS_IN_A_MONTH);\n const expansionFactor = Math.min(Math.pow(2, fetchAttemptsRef.current), timeRanges_1.MILLISECONDS_IN_A_MONTH / baseRange);\n const totalRange = Math.min(baseRange * expansionFactor, timeRanges_1.MILLISECONDS_IN_A_MONTH);\n fetchStart = Math.max(sessionStartTime, fetchStart - totalRange / 2);\n fetchEnd = Math.min(sessionEndTime, fetchEnd + totalRange / 2);\n }\n if (fetchEnd - fetchStart > timeRanges_1.MILLISECONDS_IN_A_MONTH) {\n fetchStart = fetchEnd - timeRanges_1.MILLISECONDS_IN_A_MONTH;\n }\n const result = yield dispatch((0, fixedStreamSlice_1.fetchMeasurements)({\n streamId: Number(streamId),\n startTime: Math.floor(fetchStart).toString(),\n endTime: Math.floor(fetchEnd).toString(),\n })).unwrap();\n if (result && result.length > 0) {\n dispatch((0, fixedStreamSlice_1.updateFetchedTimeRanges)({\n streamId,\n start: fetchStart,\n end: fetchEnd,\n }));\n }\n return { fetchStart, fetchEnd, resultLength: (result === null || result === void 0 ? void 0 : result.length) || 0 };\n }));\n // Wait for all fetches to complete before updating loading state\n if (fetchPromises.length > 0) {\n try {\n yield Promise.all(fetchPromises);\n // Update measurement extremes after fetches complete\n if (streamId) {\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min: boundedStart,\n max: boundedEnd,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min: boundedStart,\n max: boundedEnd,\n }));\n }\n }\n }\n catch (error) { }\n }\n if (pendingSetExtremesRef.current) {\n const { start, end } = pendingSetExtremesRef.current;\n requestAnimationFrame(() => {\n updateExtremesAndDisplay(start, end, lastFetchTriggerRef.current || undefined);\n });\n }\n if (isFirstRender.current) {\n isFirstRender.current = false;\n }\n }\n }\n catch (error) {\n console.error(\"Error in fetchMeasurementsIfNeeded\", error);\n }\n finally {\n isCurrentlyFetchingRef.current = false;\n pendingSetExtremesRef.current = null;\n if (shouldShowLoading) {\n updateLoadingState(false);\n }\n }\n });\n return { fetchMeasurementsIfNeeded };\n};\nexports.useMeasurementsFetcher = useMeasurementsFetcher;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.seriesOptions = exports.legendOption = exports.getYAxisOptions = exports.getXAxisOptions = exports.getTooltipOptions = exports.getScrollbarOptions = exports.getResponsiveOptions = exports.getRangeSelectorOptions = exports.getPlotOptions = exports.getNavigatorOptions = exports.getChartOptions = void 0;\nconst highstock_1 = __importDefault(require(\"highcharts/highstock\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst fixedStreamSlice_1 = require(\"../../../store/fixedStreamSlice\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst mobileStreamSlice_1 = require(\"../../../store/mobileStreamSlice\");\nconst timeRanges_1 = require(\"../../../utils/timeRanges\");\nconst updateRangeDisplay_1 = require(\"./chartHooks/updateRangeDisplay\");\nconst getScrollbarOptions = (isCalendarPage, isMobile) => {\n return {\n barBackgroundColor: colors_1.gray200,\n barBorderWidth: 0,\n button: {\n enabled: false,\n },\n height: isMobile ? 16 : 8,\n trackBackgroundColor: colors_1.gray100,\n trackBorderWidth: 0,\n autoHide: false,\n showFull: true,\n enabled: isMobile && isCalendarPage ? true : !isMobile,\n liveRedraw: true,\n minWidth: isMobile ? 30 : 8,\n rifleColor: colors_1.gray200,\n zIndex: 3,\n margin: 0,\n minimumRange: timeRanges_1.MILLISECONDS_IN_A_SECOND,\n };\n};\nexports.getScrollbarOptions = getScrollbarOptions;\nconst getXAxisOptions = (isMobile, fixedSessionTypeSelected, dispatch, isLoading, fetchMeasurementsIfNeeded, streamId, lastTriggerRef, lastUpdateTimeRef, onDayClick, rangeDisplayRef, sessionStartTime, sessionEndTime, isCalendarDaySelectedRef, setOverrideRangeSelector) => {\n let lastNavigatorEvent = null;\n let navigatorMouseUpHandler = null;\n let touchEndHandler = null;\n let cleanupTimeout = null;\n let handled = false;\n let isHandlingCalendarDay = false;\n let mouseWheelTimeout = null;\n let lastMouseWheelEvent = null;\n const removeEventHandlers = () => {\n if (navigatorMouseUpHandler) {\n window.removeEventListener(\"mouseup\", navigatorMouseUpHandler, true);\n navigatorMouseUpHandler = null;\n }\n if (touchEndHandler) {\n window.removeEventListener(\"touchend\", touchEndHandler, true);\n touchEndHandler = null;\n }\n if (cleanupTimeout) {\n clearTimeout(cleanupTimeout);\n cleanupTimeout = null;\n }\n lastNavigatorEvent = null;\n };\n const handleSetExtremes = (e, chart) => __awaiter(void 0, void 0, void 0, function* () {\n const effectiveTrigger = e.trigger !== \"none\" ? e.trigger : lastTriggerRef.current || \"none\";\n if (isHandlingCalendarDay && effectiveTrigger !== \"calendarDay\")\n return;\n if (effectiveTrigger === \"calendarDay\") {\n isHandlingCalendarDay = true;\n setTimeout(() => {\n isHandlingCalendarDay = false;\n }, 500);\n lastTriggerRef.current = effectiveTrigger;\n lastUpdateTimeRef.current = Date.now();\n if (e.min !== undefined &&\n e.max !== undefined &&\n !isNaN(e.min) &&\n !isNaN(e.max)) {\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, e.min, e.max, true);\n // Update measurement extremes whenever extremes change\n if (streamId) {\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min: e.min,\n max: e.max,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min: e.min,\n max: e.max,\n }));\n }\n }\n }\n return;\n }\n if (effectiveTrigger === \"mousewheel\") {\n setOverrideRangeSelector(true);\n lastMouseWheelEvent = e;\n const rangeSelector = chart.rangeSelector;\n if (rangeSelector === null || rangeSelector === void 0 ? void 0 : rangeSelector.buttons) {\n rangeSelector.buttons.forEach((button) => button.setState(0));\n rangeSelector.selected = undefined;\n }\n if (isCalendarDaySelectedRef === null || isCalendarDaySelectedRef === void 0 ? void 0 : isCalendarDaySelectedRef.current) {\n isCalendarDaySelectedRef.current = false;\n if (onDayClick)\n onDayClick(null);\n }\n lastTriggerRef.current = effectiveTrigger;\n lastUpdateTimeRef.current = Date.now();\n if (e.min !== undefined &&\n e.max !== undefined &&\n !isNaN(e.min) &&\n !isNaN(e.max)) {\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, e.min, e.max, false);\n if (streamId) {\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min: e.min,\n max: e.max,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min: e.min,\n max: e.max,\n }));\n }\n }\n }\n if (mouseWheelTimeout)\n clearTimeout(mouseWheelTimeout);\n mouseWheelTimeout = setTimeout(() => {\n if (lastMouseWheelEvent && streamId) {\n const visibleRange = lastMouseWheelEvent.max - lastMouseWheelEvent.min;\n const padding = visibleRange * 0.25;\n const now = Date.now();\n const fetchStart = Math.max(sessionStartTime || 0, lastMouseWheelEvent.min - padding);\n const fetchEnd = Math.min(sessionEndTime || now, lastMouseWheelEvent.max + padding);\n fetchMeasurementsIfNeeded(fetchStart, fetchEnd, false, false, \"mousewheel\").finally(() => {\n chart.hideLoading();\n });\n }\n else {\n chart.hideLoading();\n }\n setOverrideRangeSelector(false);\n mouseWheelTimeout = null;\n lastMouseWheelEvent = null;\n }, 1000);\n return;\n }\n if (effectiveTrigger === \"pan\" ||\n effectiveTrigger === \"zoom\" ||\n effectiveTrigger === \"rangeSelectorButton\") {\n if (e.min !== undefined &&\n e.max !== undefined &&\n !isNaN(e.min) &&\n !isNaN(e.max)) {\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, e.min, e.max, false);\n if (streamId) {\n if (fixedSessionTypeSelected) {\n dispatch((0, fixedStreamSlice_1.updateFixedMeasurementExtremes)({\n streamId,\n min: e.min,\n max: e.max,\n }));\n }\n else {\n dispatch((0, mobileStreamSlice_1.updateMobileMeasurementExtremes)({\n min: e.min,\n max: e.max,\n }));\n }\n }\n }\n }\n lastTriggerRef.current = effectiveTrigger;\n lastUpdateTimeRef.current = Date.now();\n if (e.min !== undefined &&\n e.max !== undefined &&\n !isNaN(e.min) &&\n !isNaN(e.max)) {\n (0, updateRangeDisplay_1.updateRangeDisplay)(rangeDisplayRef, e.min, e.max, effectiveTrigger === \"calendarDay\");\n }\n if (streamId &&\n (effectiveTrigger === \"rangeSelectorButton\" ||\n effectiveTrigger === \"pan\" ||\n effectiveTrigger === \"zoom\" ||\n effectiveTrigger === \"calendarDay\" ||\n effectiveTrigger === \"syncExtremes\" ||\n effectiveTrigger === \"navigator\")) {\n const visibleRange = e.max - e.min;\n const padding = visibleRange * 0.25;\n const now = Date.now();\n const fetchStart = Math.max(sessionStartTime || 0, e.min - padding);\n const fetchEnd = Math.min(sessionEndTime || now, e.max + padding);\n yield fetchMeasurementsIfNeeded(fetchStart, fetchEnd, false, false, effectiveTrigger);\n }\n });\n return {\n title: { text: undefined },\n showEmpty: false,\n showLastLabel: !isMobile,\n tickColor: colors_1.gray200,\n lineColor: colors_1.white,\n type: \"datetime\",\n labels: {\n enabled: true,\n overflow: \"justify\",\n step: 1,\n style: { fontSize: \"1.2rem\", fontFamily: \"Roboto\" },\n },\n crosshair: { color: colors_1.white, width: 2 },\n visible: true,\n minRange: timeRanges_1.MILLISECONDS_IN_A_SECOND,\n ordinal: false,\n min: fixedSessionTypeSelected ? sessionStartTime : null,\n max: fixedSessionTypeSelected ? sessionEndTime : null,\n events: {\n afterSetExtremes: function (e) {\n const chart = this.chart;\n const effectiveTrigger = e.trigger !== \"none\" ? e.trigger : lastTriggerRef.current || \"none\";\n if (isHandlingCalendarDay && effectiveTrigger !== \"calendarDay\")\n return;\n const rangeSelector = chart.rangeSelector;\n if (effectiveTrigger === \"mousewheel\" && (rangeSelector === null || rangeSelector === void 0 ? void 0 : rangeSelector.buttons)) {\n rangeSelector.buttons.forEach((button) => button.setState(0));\n }\n if (effectiveTrigger !== \"navigator\") {\n removeEventHandlers();\n handleSetExtremes(Object.assign(Object.assign({}, e), { trigger: effectiveTrigger }), chart);\n return;\n }\n lastNavigatorEvent = e;\n lastTriggerRef.current = \"navigator\";\n if (!navigatorMouseUpHandler && !touchEndHandler) {\n handled = false;\n const handleEnd = () => {\n if (handled)\n return;\n handled = true;\n if (lastNavigatorEvent && !isHandlingCalendarDay) {\n handleSetExtremes(lastNavigatorEvent, chart);\n }\n removeEventHandlers();\n };\n removeEventHandlers();\n navigatorMouseUpHandler = handleEnd;\n touchEndHandler = handleEnd;\n window.addEventListener(\"mouseup\", navigatorMouseUpHandler, true);\n window.addEventListener(\"touchend\", touchEndHandler, true);\n cleanupTimeout = setTimeout(() => {\n handleEnd();\n }, 8000);\n }\n },\n },\n };\n};\nexports.getXAxisOptions = getXAxisOptions;\nconst getYAxisOptions = (thresholdsState, isMobile = false) => {\n const min = Number(thresholdsState.min);\n const max = Number(thresholdsState.max);\n const low = Number(thresholdsState.low);\n const middle = Number(thresholdsState.middle);\n const high = Number(thresholdsState.high);\n const tickInterval = (max - min) / 4;\n return {\n title: {\n text: undefined,\n },\n endOnTick: false,\n startOnTick: true,\n tickColor: colors_1.gray200,\n lineColor: colors_1.white,\n opposite: true,\n tickWidth: 1,\n tickLength: isMobile ? 0 : 25,\n minorGridLineWidth: 0,\n showLastLabel: true,\n tickInterval: tickInterval,\n tickPosition: \"inside\",\n offset: isMobile ? 0 : 25,\n labels: {\n enabled: true,\n style: {\n fontFamily: \"Roboto\",\n fontSize: \"1.2rem\",\n align: \"right\",\n },\n },\n gridLineWidth: 0,\n minPadding: 0,\n min: min,\n max: max,\n plotBands: [\n {\n from: min,\n to: low,\n color: colors_1.green100,\n },\n {\n from: low,\n to: middle,\n color: colors_1.yellow100,\n },\n {\n from: middle,\n to: high,\n color: colors_1.orange100,\n },\n {\n from: high,\n to: max,\n color: colors_1.red100,\n },\n ],\n };\n};\nexports.getYAxisOptions = getYAxisOptions;\nconst getPlotOptions = (fixedSessionTypeSelected, streamId, dispatch, isIndoorParameterInUrl, isGovData) => {\n const handleMouseOver = function () {\n if (!isIndoorParameterInUrl) {\n const position = this.position;\n if (fixedSessionTypeSelected) {\n dispatch((0, mapSlice_1.setHoverStreamId)(streamId));\n }\n else {\n dispatch((0, mapSlice_1.setHoverPosition)(position));\n }\n }\n };\n const handleMouseOut = () => {\n if (!isIndoorParameterInUrl) {\n dispatch((0, mapSlice_1.setHoverStreamId)(null));\n dispatch((0, mapSlice_1.setHoverPosition)({ lat: 0, lng: 0 }));\n }\n };\n return {\n series: {\n lineWidth: 2,\n color: colors_1.blue,\n turboThreshold: 9999999,\n marker: {\n fillColor: colors_1.blue,\n lineWidth: 0,\n lineColor: colors_1.blue,\n radius: 3,\n },\n states: {\n hover: {\n halo: {\n attributes: {\n fill: colors_1.blue,\n \"stroke-width\": 2,\n },\n },\n },\n },\n dataGrouping: {\n enabled: true,\n units: isGovData\n ? [\n [\"hour\", [1, 2, 3, 4, 6, 8, 12]],\n [\"day\", [1]],\n ]\n : [\n [\"millisecond\", []],\n [\"second\", [2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 30, 40, 50]],\n [\"minute\", [1, 2, 3, 4, 5]],\n ],\n approximation: \"average\",\n },\n point: {\n events: {\n mouseOver: handleMouseOver,\n mouseOut: handleMouseOut,\n },\n },\n },\n };\n};\nexports.getPlotOptions = getPlotOptions;\nconst seriesOptions = (data) => ({\n type: \"spline\",\n color: colors_1.white,\n data: data,\n});\nexports.seriesOptions = seriesOptions;\nconst legendOption = {\n enabled: false,\n};\nexports.legendOption = legendOption;\nconst getResponsiveOptions = (thresholdsState, isMobile) => {\n return {\n rules: [\n {\n condition: {\n maxWidth: 1024,\n },\n chartOptions: {\n yAxis: getYAxisOptions(thresholdsState, isMobile),\n credits: {\n enabled: false,\n },\n },\n },\n ],\n };\n};\nexports.getResponsiveOptions = getResponsiveOptions;\nconst getTooltipOptions = (measurementType, unitSymbol) => ({\n enabled: true,\n formatter: function () {\n const dateStr = highstock_1.default.dateFormat(\"%m/%d/%Y\", Number(this.x));\n let s = `${dateStr} `;\n const pointData = this.points ? this.points[0] : this.point;\n const point = pointData;\n const series = point.series;\n if (series.hasGroupedData && series.currentDataGrouping) {\n if (series.currentDataGrouping.count === 1) {\n s += highstock_1.default.dateFormat(\"%H:%M:%S\", point.x) + \"\";\n }\n else {\n const groupingInfo = series.currentDataGrouping;\n const groupingDiff = groupingInfo.totalRange;\n const xLess = point.x;\n const xMore = point.x + groupingDiff;\n s += highstock_1.default.dateFormat(\"%H:%M:%S\", xLess) + \"-\";\n s += highstock_1.default.dateFormat(\"%H:%M:%S\", xMore - 1000) + \"\";\n }\n }\n else {\n s += highstock_1.default.dateFormat(\"%H:%M:%S\", point.x) + \"\";\n }\n s +=\n \"
\" +\n measurementType +\n \" = \" +\n Math.round(pointData.y || 0) +\n \" \" +\n unitSymbol;\n return s;\n },\n borderWidth: 0,\n style: {\n fontSize: \"1.2rem\",\n fontFamily: \"Roboto\",\n },\n});\nexports.getTooltipOptions = getTooltipOptions;\nconst getRangeSelectorOptions = (isMobile, fixedSessionTypeSelected, totalDuration, selectedRange, isCalendarPage, t) => {\n const baseMobileCalendarOptions = {\n enabled: true,\n buttonPosition: {\n align: \"center\",\n y: -85,\n },\n buttonTheme: {\n fill: \"none\",\n width: 80,\n height: 34,\n r: 20,\n stroke: \"none\",\n \"stroke-width\": 1,\n style: {\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"1.4rem\",\n color: colors_1.gray300,\n fontWeight: \"regular\",\n },\n states: {\n hover: {\n fill: colors_1.blue,\n style: {\n color: colors_1.white,\n },\n },\n select: {\n fill: colors_1.blue,\n style: {\n color: colors_1.white,\n fontWeight: \"bold\",\n },\n },\n disabled: {\n style: {\n color: colors_1.disabledGraphButton,\n cursor: \"default\",\n },\n },\n },\n },\n labelStyle: {\n display: \"none\",\n },\n buttonSpacing: 10,\n inputEnabled: false,\n };\n const baseOptions = {\n enabled: isMobile ? false : true,\n buttonPosition: {\n align: \"right\",\n x: -32,\n y: 50,\n },\n buttonTheme: {\n fill: \"rgba(255, 255, 255, 0.8)\",\n width: 90,\n r: 5,\n style: {\n fontFamily: \"Roboto, sans-serif\",\n fontSize: \"1.4rem\",\n color: colors_1.gray300,\n fontWeight: \"regular\",\n },\n states: {\n hover: {\n fill: colors_1.white,\n style: {\n color: colors_1.gray400,\n fontWeight: \"regular\",\n },\n },\n select: {\n fill: colors_1.white,\n style: {\n color: colors_1.gray400,\n fontWeight: \"regular\",\n },\n },\n },\n },\n labelStyle: {\n display: \"none\",\n },\n buttonSpacing: 10,\n inputEnabled: false,\n };\n if (isCalendarPage && isMobile) {\n return Object.assign(Object.assign({}, baseMobileCalendarOptions), { buttons: [\n { type: \"hour\", count: 24, text: t(\"graph.24Hours\") },\n totalDuration > timeRanges_1.MILLISECONDS_IN_A_WEEK\n ? { type: \"day\", count: 7, text: t(\"graph.oneWeek\") }\n : { type: \"all\", text: t(\"graph.oneWeek\") },\n totalDuration > timeRanges_1.MILLISECONDS_IN_A_MONTH\n ? { type: \"week\", count: 4, text: t(\"graph.oneMonth\") }\n : { type: \"all\", text: t(\"graph.oneMonth\") },\n ], allButtonsEnabled: true, selected: selectedRange });\n }\n else {\n if (fixedSessionTypeSelected) {\n return Object.assign(Object.assign({}, baseOptions), { buttons: [\n totalDuration < timeRanges_1.MILLISECONDS_IN_A_DAY\n ? { type: \"all\", text: t(\"graph.24Hours\") }\n : { type: \"hour\", count: 24 - 0, text: t(\"graph.24Hours\") },\n totalDuration > timeRanges_1.MILLISECONDS_IN_A_WEEK\n ? { type: \"day\", count: 7, text: t(\"graph.oneWeek\") }\n : { type: \"all\", text: t(\"graph.oneWeek\") },\n totalDuration > timeRanges_1.MILLISECONDS_IN_A_MONTH\n ? { type: \"week\", count: 4, text: t(\"graph.oneMonth\") }\n : { type: \"all\", text: t(\"graph.oneMonth\") },\n ], allButtonsEnabled: true, selected: selectedRange });\n }\n else {\n return Object.assign(Object.assign({}, baseOptions), { buttons: [\n totalDuration < timeRanges_1.MILLISECONDS_IN_A_5_MINUTES\n ? { type: \"all\", text: t(\"graph.fiveMinutes\") }\n : { type: \"minute\", count: 5, text: t(\"graph.fiveMinutes\") },\n totalDuration < timeRanges_1.MILLISECONDS_IN_AN_HOUR\n ? { type: \"all\", text: t(\"graph.oneHour\") }\n : { type: \"minute\", count: 60, text: t(\"graph.oneHour\") },\n { type: \"all\", text: t(\"graph.all\") },\n ], allButtonsEnabled: true, selected: selectedRange });\n }\n }\n};\nexports.getRangeSelectorOptions = getRangeSelectorOptions;\nconst getChartOptions = (isCalendarPage, isMobile) => {\n const zoomingConfig = {\n type: \"x\",\n resetButton: { theme: { style: { display: \"none\" } } },\n };\n const chartHeight = isCalendarPage || !isMobile ? 300 : 150;\n const chartMargin = isMobile\n ? isCalendarPage\n ? [5, 10, 5, 0]\n : [5, 0, 5, 0]\n : isCalendarPage\n ? [0, 30, 5, 0]\n : [0, 60, 5, 0];\n const scrollablePlotAreaConfig = { minWidth: 100, scrollPositionX: 1 };\n return {\n zooming: zoomingConfig,\n height: chartHeight,\n margin: chartMargin,\n animation: false,\n scrollablePlotArea: scrollablePlotAreaConfig,\n };\n};\nexports.getChartOptions = getChartOptions;\nconst getNavigatorOptions = () => {\n return {\n enabled: true,\n height: 0,\n };\n};\nexports.getNavigatorOptions = getNavigatorOptions;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ToggleContainer = exports.TerrainContainer = exports.SwitchLabel = exports.SwitchInput = exports.Slider = exports.SelectContainer = exports.Select = exports.Label = exports.ControlPanelContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst chevronDown_svg_1 = __importDefault(require(\"../../../../assets/icons/chevronDown.svg\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../utils/media\");\nconst ControlPanelContainer = styled_components_1.default.div `\n background: ${colors_1.white};\n cursor: auto;\n display: flex;\n font-size: 1.2rem;\n text-align: center;\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n border-radius: 5px;\n gap: 0.4rem;\n padding: 0.4rem 0.5rem;\n @media ${media_1.media.smallDesktop} {\n font-size: 1.5rem;\n gap: 1rem;\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n padding: 0;\n border-radius: 1rem;\n }\n`;\nexports.ControlPanelContainer = ControlPanelContainer;\nconst ToggleContainer = styled_components_1.default.div `\n display: none;\n @media ${media_1.media.smallDesktop} {\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n padding: 1.5rem 1rem;\n height: 4.2rem;\n }\n`;\nexports.ToggleContainer = ToggleContainer;\nconst SwitchLabel = styled_components_1.default.label `\n position: relative;\n display: inline-block;\n width: 36px;\n height: 18px;\n`;\nexports.SwitchLabel = SwitchLabel;\nconst SwitchInput = styled_components_1.default.input `\n opacity: 0;\n width: 36px;\n height: 18px;\n z-index: 2;\n position: relative;\n\n &:checked + span:before {\n transform: translateX(17px);\n }\n`;\nexports.SwitchInput = SwitchInput;\nconst Slider = styled_components_1.default.span `\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: ${colors_1.blue};\n transition: 0.4s;\n border-radius: 30px;\n z-index: 1;\n\n &:before {\n position: absolute;\n content: \"\";\n height: 14px;\n width: 14px;\n left: 2.5px;\n bottom: 2px;\n padding: 0.7rem 0;\n background-color: ${colors_1.white};\n transition: 0.4s;\n border-radius: 50%;\n }\n`;\nexports.Slider = Slider;\nconst Label = styled_components_1.default.span `\n color: ${(props) => (props.$isActive ? colors_1.blue : colors_1.gray400)};\n margin: 0 1rem;\n display: flex;\n align-items: center;\n gap: 1rem;\n`;\nexports.Label = Label;\nconst TerrainContainer = styled_components_1.default.div `\n display: none;\n @media ${media_1.media.smallDesktop} {\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n position: relative;\n border-left: 1px solid ${colors_1.gray200};\n padding: 0 1.6rem;\n }\n`;\nexports.TerrainContainer = TerrainContainer;\nconst SelectContainer = styled_components_1.default.div `\n display: flex;\n\n @media ${media_1.media.smallDesktop} {\n display: none;\n }\n`;\nexports.SelectContainer = SelectContainer;\nconst Select = styled_components_1.default.select `\n background-color: ${colors_1.white};\n border: none;\n outline: none;\n color: ${colors_1.gray400};\n padding: 0 1.2rem 0 0.5rem;\n font-size: 1.4rem;\n\n background: transparent;\n background-image: url(${chevronDown_svg_1.default});\n background-repeat: no-repeat;\n background-position-x: 100%;\n background-position-y: 5px;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n`;\nexports.Select = Select;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ControlPanel = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst map_1 = require(\"../../../../types/map\");\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst CheckboxButton_1 = require(\"../../../atoms/CheckboxButton/CheckboxButton\");\nconst Toggle_1 = require(\"../../../atoms/Toggle/Toggle\");\nconst S = __importStar(require(\"./ControlPanel.style\"));\nconst ControlPanel = () => {\n const { mapTypeId, searchParams } = (0, mapParamsHandler_1.useMapParams)();\n const navigate = (0, react_router_dom_1.useNavigate)();\n const isFirstRender = (0, react_1.useRef)(true);\n const { t } = (0, react_i18next_1.useTranslation)();\n const [viewMode, setViewMode] = (0, react_1.useState)(map_1.ViewMode.MAP);\n const [isTerrainChecked, setIsTerrainChecked] = (0, react_1.useState)(false);\n const [isLabelsChecked, setIsLabelsChecked] = (0, react_1.useState)(false);\n const updateURLParams = (param, value) => {\n const newSearchParams = new URLSearchParams(searchParams);\n newSearchParams.set(param, value);\n navigate({ search: newSearchParams.toString() }, { replace: true });\n };\n (0, react_1.useEffect)(() => {\n if (mapTypeId) {\n switch (mapTypeId) {\n case map_1.MapTypeId.SATELLITE:\n setViewMode(map_1.ViewMode.SATELLITE);\n setIsTerrainChecked(false);\n setIsLabelsChecked(false);\n break;\n case map_1.MapTypeId.HYBRID:\n setViewMode(map_1.ViewMode.SATELLITE);\n setIsTerrainChecked(false);\n setIsLabelsChecked(true);\n break;\n case map_1.MapTypeId.TERRAIN:\n setViewMode(map_1.ViewMode.MAP);\n setIsTerrainChecked(true);\n setIsLabelsChecked(false);\n break;\n default:\n setViewMode(map_1.ViewMode.MAP);\n setIsTerrainChecked(false);\n setIsLabelsChecked(false);\n }\n }\n }, []);\n (0, react_1.useEffect)(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n }\n else {\n updateURLParams(mapParamsHandler_1.UrlParamsTypes.mapType, mapTypeId);\n }\n }, [mapTypeId]);\n const handleViewModeChange = (newViewMode) => {\n let selectedMapTypeId = map_1.MapTypeId.ROADMAP;\n switch (newViewMode) {\n case map_1.ViewMode.SATELLITE:\n selectedMapTypeId = map_1.MapTypeId.HYBRID;\n setIsLabelsChecked(true);\n break;\n case map_1.ViewMode.MAP:\n selectedMapTypeId = isTerrainChecked\n ? map_1.MapTypeId.TERRAIN\n : map_1.MapTypeId.ROADMAP;\n setIsLabelsChecked(false);\n break;\n }\n setViewMode(newViewMode);\n updateURLParams(mapParamsHandler_1.UrlParamsTypes.mapType, selectedMapTypeId);\n };\n const handleTerrainChange = (isChecked) => {\n const newMapTypeId = isChecked ? map_1.MapTypeId.TERRAIN : map_1.MapTypeId.ROADMAP;\n setIsTerrainChecked(isChecked);\n if (viewMode === map_1.ViewMode.MAP) {\n updateURLParams(mapParamsHandler_1.UrlParamsTypes.mapType, newMapTypeId);\n }\n };\n const handleLabelsChange = (isChecked) => {\n const newMapTypeId = isChecked ? map_1.MapTypeId.HYBRID : map_1.MapTypeId.SATELLITE;\n setIsLabelsChecked(isChecked);\n if (viewMode === map_1.ViewMode.SATELLITE) {\n updateURLParams(mapParamsHandler_1.UrlParamsTypes.mapType, newMapTypeId);\n }\n };\n return (react_1.default.createElement(S.ControlPanelContainer, null,\n react_1.default.createElement(S.ToggleContainer, null,\n react_1.default.createElement(Toggle_1.Toggle, { isChecked: viewMode === map_1.ViewMode.SATELLITE, onChange: (isChecked) => handleViewModeChange(isChecked ? map_1.ViewMode.SATELLITE : map_1.ViewMode.MAP), labelLeft: t(\"map.mapLabel\"), labelRight: t(\"map.satelliteLabel\"), variant: \"switch\" })),\n viewMode === map_1.ViewMode.MAP && (react_1.default.createElement(S.TerrainContainer, null,\n react_1.default.createElement(CheckboxButton_1.CheckboxButton, { label: t(\"map.terrainLabel\"), isChecked: isTerrainChecked, onChange: handleTerrainChange }))),\n viewMode === map_1.ViewMode.SATELLITE && (react_1.default.createElement(S.TerrainContainer, null,\n react_1.default.createElement(CheckboxButton_1.CheckboxButton, { label: t(\"map.labelsLabel\"), isChecked: isLabelsChecked, onChange: handleLabelsChange }))),\n react_1.default.createElement(S.SelectContainer, null,\n react_1.default.createElement(S.Select, { value: mapTypeId, onChange: (e) => {\n const selectedMapTypeId = e.target.value;\n updateURLParams(mapParamsHandler_1.UrlParamsTypes.mapType, selectedMapTypeId);\n } },\n react_1.default.createElement(\"option\", { value: map_1.MapTypeId.ROADMAP }, t(\"map.mapViewLabel\")),\n react_1.default.createElement(\"option\", { value: map_1.MapTypeId.SATELLITE }, t(\"map.mapSatelliteLabel\")),\n react_1.default.createElement(\"option\", { value: map_1.MapTypeId.HYBRID }, t(\"map.mapHybridLabel\")),\n react_1.default.createElement(\"option\", { value: map_1.MapTypeId.TERRAIN }, t(\"map.mapTerrainLabel\"))))));\n};\nexports.ControlPanel = ControlPanel;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Title = exports.SliderContainer = exports.LegendContainer = exports.Header = exports.CloseButton = exports.ApplyButton = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst Button_style_1 = require(\"../../../atoms/Button/Button.style\");\nconst Typography_1 = require(\"../../../atoms/Typography\");\nconst LegendContainer = styled_components_1.default.div `\n display: grid;\n position: fixed;\n grid-template-rows: auto 1fr auto;\n gap: 2rem;\n bottom: 0;\n flex-direction: column;\n align-items: center;\n width: 100%;\n background-color: white;\n padding: 1.6rem;\n z-index: 2;\n`;\nexports.LegendContainer = LegendContainer;\nconst Header = styled_components_1.default.div `\n display: grid;\n justify-content: space-between;\n grid-template-columns: auto 1fr;\n gap: 1.6rem;\n width: 100%;\n min-height: 2.4rem;\n height: fit-content;\n align-items: center;\n`;\nexports.Header = Header;\nconst CloseButton = styled_components_1.default.button `\n margin: 0;\n padding: 0;\n border: 0;\n background: none;\n position: relative;\n width: 1.7rem;\n height: 1.7rem;\n\n &:before,\n &:after {\n content: \"\";\n position: absolute;\n top: (1.7rem - 0.1rem) / 2;\n left: 0;\n right: 0;\n height: 0.15rem;\n background: ${colors_1.gray400};\n }\n\n &:before {\n transform: rotate(45deg);\n }\n\n &:after {\n transform: rotate(-45deg);\n }\n\n span {\n display: block;\n }\n`;\nexports.CloseButton = CloseButton;\nconst Title = (0, styled_components_1.default)(Typography_1.H3) `\n display: inline;\n font-size: 1.6rem;\n line-height: 1.92rem;\n`;\nexports.Title = Title;\nconst SliderContainer = styled_components_1.default.div `\n display: grid;\n gap: 1.6rem;\n grid-template-rows: auto 1fr;\n width: 100%;\n`;\nexports.SliderContainer = SliderContainer;\nconst ApplyButton = (0, styled_components_1.default)(Button_style_1.Button) `\n background-color: ${colors_1.acBlue};\n color: ${colors_1.white};\n text-transform: uppercase;\n text-size: 1.4rem;\n border-radius: 0.5rem;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 3.6rem;\n border: none;\n`;\nexports.ApplyButton = ApplyButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Legend = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst ThresholdConfigurator_1 = require(\"../../ThresholdConfigurator\");\nconst ThresholdButton_1 = require(\"../../ThresholdConfigurator/ThresholdButtons/ThresholdButton\");\nconst S = __importStar(require(\"./Legend.style\"));\nconst Legend = ({ onClose }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(S.LegendContainer, null,\n react_1.default.createElement(S.Header, null,\n react_1.default.createElement(S.CloseButton, { onClick: onClose }),\n react_1.default.createElement(S.Title, null, t(\"map.legend.title\"))),\n react_1.default.createElement(S.SliderContainer, null,\n react_1.default.createElement(ThresholdConfigurator_1.ThresholdsConfigurator, { resetButtonVariant: ThresholdButton_1.ThresholdButtonVariant.TextWithIcon, resetButtonText: t(\"map.legend.resetRangesButton\"), useColorBoxStyle: true, useDarkBlueIcon: true })),\n react_1.default.createElement(S.ApplyButton, { onClick: onClose }, t(\"map.legend.applyButton\"))));\n};\nexports.Legend = Legend;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThresholdContainer = exports.MobileContainer = exports.MobileButtons = exports.LoaderOverlay = exports.IndoorOverlayInfo = exports.IndoorOvelay = exports.DesktopContainer = exports.ContainerStyle = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors = __importStar(require(\"../../../assets/styles/colors\"));\nconst media_1 = require(\"../../../utils/media\");\nconst ContainerStyle = {\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n};\nexports.ContainerStyle = ContainerStyle;\nconst DesktopContainer = styled_components_1.default.div `\n display: none;\n\n @media (${media_1.media.desktop}) {\n display: flex;\n }\n`;\nexports.DesktopContainer = DesktopContainer;\nconst MobileContainer = styled_components_1.default.div `\n @media (${media_1.media.desktop}) {\n display: none;\n }\n`;\nexports.MobileContainer = MobileContainer;\nconst MobileButtons = styled_components_1.default.div `\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n justify-items: center;\n align-items: center;\n gap: 0.4rem;\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n padding: 1rem 0.4rem;\n direction: rtl;\n z-index: ${(props) => (props.$isTimelapseView ? 3 : 2)};\n`;\nexports.MobileButtons = MobileButtons;\nconst ThresholdContainer = styled_components_1.default.div `\n display: grid;\n justify-content: center;\n flex-direction: column;\n position: fixed;\n\n grid-gap: 5rem;\n width: 100%;\n bottom: 0;\n z-index: 4;\n\n background-color: ${colors.white};\n box-shadow: 2px 2px 4px 0px ${colors.gray900};\n z-index: 4;\n\n @media (${media_1.media.mobile}) {\n height: 4.7rem;\n margin-bottom: 0;\n grid-template-columns: 1fr;\n z-index: 4;\n }\n\n @media (min-width: 769px) and (max-width: 1023px) {\n padding: 0.6rem 0.5rem 0.6rem 0;\n height: 4.7rem;\n grid-template-columns: 1fr auto;\n margin-bottom: 0;\n align-items: center;\n grid-gap: 0.5rem;\n z-index: 4;\n }\n\n @media (${media_1.media.desktop}) {\n padding: 1.6rem 4.1rem;\n height: 6.4rem;\n grid-template-columns: 1fr auto;\n margin-bottom: 0;\n }\n\n @media (${media_1.media.largeDesktop}) {\n padding: 1.6rem 4.1rem;\n height: 6.4rem;\n grid-template-columns: 1fr auto;\n margin-bottom: 0;\n }\n`;\nexports.ThresholdContainer = ThresholdContainer;\nconst LoaderOverlay = styled_components_1.default.div `\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, 0.5);\n z-index: 5;\n`;\nexports.LoaderOverlay = LoaderOverlay;\nconst IndoorOvelay = (0, styled_components_1.default)(LoaderOverlay) `\n z-index: 1;\n`;\nexports.IndoorOvelay = IndoorOvelay;\nconst IndoorOverlayInfo = styled_components_1.default.div `\n position: fixed;\n top: 50%;\n left: ${(props) => (props.$isMobile ? 0 : \"30%\")};\n right: ${(props) => (props.$isMobile ? 0 : \"30%\")};\n padding: 0 1rem;\n transform: \"translate(-50%, -50%)\";\n text-align: center;\n`;\nexports.IndoorOverlayInfo = IndoorOverlayInfo;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Map = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst clockIcon_svg_1 = __importDefault(require(\"../../../assets/icons/clockIcon.svg\"));\nconst filterIcon_svg_1 = __importDefault(require(\"../../../assets/icons/filterIcon.svg\"));\nconst mapLegend_svg_1 = __importDefault(require(\"../../../assets/icons/mapLegend.svg\"));\nconst pinImage_svg_1 = __importDefault(require(\"../../../assets/icons/pinImage.svg\"));\nconst booleans_1 = require(\"../../../const/booleans\");\nconst coordinates_1 = require(\"../../../const/coordinates\");\nconst store_1 = require(\"../../../store\");\nconst fixedSessionsSelectors_1 = require(\"../../../store/fixedSessionsSelectors\");\nconst fixedSessionsSlice_1 = require(\"../../../store/fixedSessionsSlice\");\nconst fixedStreamSelectors_1 = require(\"../../../store/fixedStreamSelectors\");\nconst fixedStreamSlice_1 = require(\"../../../store/fixedStreamSlice\");\nconst hooks_1 = require(\"../../../store/hooks\");\nconst indoorSessionsSelectors_1 = require(\"../../../store/indoorSessionsSelectors\");\nconst indoorSessionsSlice_1 = require(\"../../../store/indoorSessionsSlice\");\nconst mapSlice_1 = require(\"../../../store/mapSlice\");\nconst markersLoadingSlice_1 = require(\"../../../store/markersLoadingSlice\");\nconst mobileSessionsSelectors_1 = require(\"../../../store/mobileSessionsSelectors\");\nconst mobileSessionsSlice_1 = require(\"../../../store/mobileSessionsSlice\");\nconst mobileStreamSelectors_1 = require(\"../../../store/mobileStreamSelectors\");\nconst mobileStreamSlice_1 = require(\"../../../store/mobileStreamSlice\");\nconst sensorsSlice_1 = require(\"../../../store/sensorsSlice\");\nconst sessionFiltersSlice_1 = require(\"../../../store/sessionFiltersSlice\");\nconst thresholdSlice_1 = require(\"../../../store/thresholdSlice\");\nconst timelapseSelectors_1 = require(\"../../../store/timelapseSelectors\");\nconst timelapseSlice_1 = require(\"../../../store/timelapseSlice\");\nconst filters_1 = require(\"../../../types/filters\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst Cookies = __importStar(require(\"../../../utils/cookies\"));\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst scrollEnd_1 = require(\"../../../utils/scrollEnd\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst Loader_1 = require(\"../../atoms/Loader/Loader\");\nconst SectionButton_1 = require(\"../../atoms/SectionButton/SectionButton\");\nconst MobileSessionFilters_1 = require(\"../../molecules/SessionFilters/MobileSessionFilters\");\nconst MobileSessionList_1 = require(\"../../molecules/SessionsListView/MobileSessionList/MobileSessionList\");\nconst SessionsListView_1 = require(\"../../molecules/SessionsListView/SessionsListView\");\nconst SessionDetailsModal_1 = require(\"../../organisms/Modals/SessionDetailsModal\");\nconst TimelapseModal_1 = require(\"../../organisms/Modals/TimelapseModal\");\nconst ThresholdButton_1 = require(\"../../organisms/ThresholdConfigurator/ThresholdButtons/ThresholdButton\");\nconst ThresholdConfigurator_1 = require(\"../../organisms/ThresholdConfigurator/ThresholdConfigurator\");\nconst Legend_1 = require(\"./Legend/Legend\");\nconst S = __importStar(require(\"./Map.style\"));\nconst mapStyles_1 = __importDefault(require(\"./mapUtils/mapStyles\"));\nconst mapStylesZoomedIn_1 = __importDefault(require(\"./mapUtils/mapStylesZoomedIn\"));\nconst CrowdMapMarkers_1 = require(\"./Markers/CrowdMapMarkers\");\nconst DormantMarkers_1 = require(\"./Markers/DormantMarkers\");\nconst FixedMarkers_1 = require(\"./Markers/FixedMarkers\");\nconst MobileMarkers_1 = require(\"./Markers/MobileMarkers\");\nconst StreamMarkers_1 = require(\"./Markers/StreamMarkers\");\nconst TimelapseMarkers_1 = require(\"./Markers/TimelapseMarkers\");\nconst Map = () => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { boundEast, boundNorth, boundSouth, boundWest, currentCenter, currentUserSettings, currentZoom, fetchedSessions, goToUserSettings, isActive, isIndoor, limit, updateLimit, updateOffset, mapTypeId, measurementType, offset, previousCenter, previousUserSettings, previousZoom, revertUserSettingsAndResetIds, sensorName, sessionId, sessionType, streamId, searchParams, tags, timeFrom, timeTo, initialThresholds, unitSymbol, updateFetchedSessions, usernames, } = (0, mapParamsHandler_1.useMapParams)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const navigate = (0, react_router_dom_1.useNavigate)();\n const isFirstRender = (0, react_1.useRef)(true);\n const isFirstRenderForThresholds = (0, react_1.useRef)(true);\n const { t } = (0, react_i18next_1.useTranslation)();\n const isIndoorParameterInUrl = isIndoor === booleans_1.TRUE;\n // State\n const [mapInstance, setMapInstance] = (0, react_1.useState)(null);\n const [pulsatingSessionId, setPulsatingSessionId] = (0, react_1.useState)(null);\n // Selectors\n const defaultThresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectDefaultThresholds);\n const fetchableMobileSessionsCount = (0, hooks_1.useAppSelector)((state) => state.mobileSessions.fetchableSessionsCount);\n const fetchableFixedSessionsCount = (0, hooks_1.useAppSelector)((state) => state.fixedSessions.fetchableSessionsCount);\n const fetchingData = (0, hooks_1.useAppSelector)(mapSlice_1.selectFetchingData);\n const fixedSessionsType = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectFixedSessionsType);\n const fixedPoints = (0, hooks_1.useAppSelector)((state) => (0, fixedSessionsSelectors_1.selectFixedSessionsPoints)(state, fixedSessionsType));\n const fixedSessionsStatusFulfilled = (0, hooks_1.useAppSelector)(fixedSessionsSelectors_1.selectFixedSessionsStatusFulfilled);\n const selectorsLoading = (0, hooks_1.useAppSelector)(store_1.selectIsLoading);\n const markersLoading = (0, hooks_1.useAppSelector)(markersLoadingSlice_1.selectMarkersLoading);\n const mobilePoints = sessionId\n ? (0, hooks_1.useAppSelector)((0, mobileSessionsSelectors_1.selectMobileSessionPointsBySessionId)(sessionId))\n : (0, hooks_1.useAppSelector)(mobileSessionsSelectors_1.selectMobileSessionsPoints);\n const mobileStreamPoints = (0, hooks_1.useAppSelector)(mobileStreamSelectors_1.selectMobileStreamPoints);\n const realtimeMapUpdates = (0, hooks_1.useAppSelector)((state) => state.realtimeMapUpdates.realtimeMapUpdates);\n const timelapseData = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectTimelapseData);\n const currentTimestamp = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectCurrentTimestamp);\n const isDormant = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectIsDormantSessionsType);\n const tagsToSelect = (0, hooks_1.useAppSelector)(sessionFiltersSlice_1.selectTags);\n const fixedSessionTypeSelected = sessionType === filters_1.SessionTypes.FIXED;\n const listSessions = (0, hooks_1.useAppSelector)((state) => {\n if (fixedSessionTypeSelected) {\n if (isIndoorParameterInUrl) {\n return (0, indoorSessionsSelectors_1.selectIndoorSessionsList)(isDormant)(state);\n }\n else {\n return (0, fixedSessionsSelectors_1.selectFixedSessionsList)(state, fixedSessionsType);\n }\n }\n else {\n return (0, mobileSessionsSelectors_1.selectMobileSessionsList)(state);\n }\n });\n const fixedStreamData = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedData);\n const memoizedMapStyles = (0, react_1.useMemo)(() => mapStyles_1.default, []);\n // update fixed session type based on the URL)\n (0, react_1.useEffect)(() => {\n if (isActive) {\n if (fixedSessionsType !== sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE) {\n dispatch((0, sessionFiltersSlice_1.setFixedSessionsType)(sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE));\n }\n }\n else {\n if (fixedSessionsType !== sessionFiltersSlice_1.FixedSessionsTypes.DORMANT) {\n dispatch((0, sessionFiltersSlice_1.setFixedSessionsType)(sessionFiltersSlice_1.FixedSessionsTypes.DORMANT));\n }\n }\n }, [isActive, fixedSessionsType, dispatch]);\n const fetchableIndoorSessionsCount = listSessions.length;\n const fetchableSessionsCount = (0, react_1.useMemo)(() => {\n return sessionType === filters_1.SessionTypes.FIXED\n ? isIndoorParameterInUrl\n ? fetchableIndoorSessionsCount\n : fetchableFixedSessionsCount\n : fetchableMobileSessionsCount;\n }, [\n fetchableFixedSessionsCount,\n fetchableMobileSessionsCount,\n sessionType,\n fetchableIndoorSessionsCount,\n isIndoorParameterInUrl,\n ]);\n const memoizedTimelapseData = (0, react_1.useMemo)(() => timelapseData, [timelapseData]);\n const newSearchParams = new URLSearchParams(searchParams.toString());\n const preparedUnitSymbol = unitSymbol.replace(/\"/g, \"\");\n const encodedUnitSymbol = encodeURIComponent(preparedUnitSymbol);\n const sensorNamedDecoded = decodeURIComponent(sensorName);\n const tagsDecoded = tags && decodeURIComponent(tags);\n const usernamesDecoded = usernames && decodeURIComponent(usernames);\n const isTimelapseView = currentUserSettings === userStates_1.UserSettings.TimelapseView;\n const isTimelapseDisabled = listSessions.length === 0 || isDormant || isIndoorParameterInUrl;\n const zoomLevel = !Number.isNaN(currentZoom) ? Math.round(currentZoom) : 5;\n const filters = (0, react_1.useMemo)(() => JSON.stringify({\n time_from: timeFrom,\n time_to: timeTo,\n tags: tagsDecoded,\n usernames: usernamesDecoded,\n west: boundWest,\n east: boundEast,\n south: boundSouth,\n north: boundNorth,\n limit: limit,\n offset: offset,\n sensor_name: sensorNamedDecoded.toLowerCase(),\n measurement_type: measurementType,\n unit_symbol: encodedUnitSymbol,\n zoom_level: zoomLevel,\n is_indoor: isIndoorParameterInUrl,\n }), [\n boundEast,\n boundNorth,\n boundSouth,\n boundWest,\n encodedUnitSymbol,\n isIndoorParameterInUrl,\n limit,\n measurementType,\n offset,\n sensorNamedDecoded,\n tagsDecoded,\n timeFrom,\n timeTo,\n usernamesDecoded,\n zoomLevel,\n ]);\n const indoorSessionsFilters = (0, react_1.useMemo)(() => JSON.stringify({\n time_from: timeFrom,\n time_to: timeTo,\n tags: tagsDecoded,\n usernames: usernamesDecoded,\n is_indoor: true,\n sensor_name: sensorNamedDecoded.toLowerCase(),\n measurement_type: measurementType,\n unit_symbol: encodedUnitSymbol,\n }), [\n encodedUnitSymbol,\n measurementType,\n sensorNamedDecoded,\n tagsDecoded,\n timeFrom,\n timeTo,\n usernamesDecoded,\n ]);\n const thresholdFilters = (0, react_1.useMemo)(() => {\n return `${sensorName}?unit_symbol=${encodedUnitSymbol}`;\n }, [sensorName, encodedUnitSymbol]);\n const applyMapStylesBasedOnZoom = (mapInstance, mapStylesZoomedIn, defaultMapStyles) => {\n if (!mapInstance)\n return;\n const zoom = mapInstance.getZoom();\n if (zoom && zoom >= 5.5) {\n mapInstance.setOptions({\n styles: mapStylesZoomedIn,\n });\n }\n else {\n mapInstance.setOptions({\n styles: defaultMapStyles,\n });\n }\n };\n // Effects\n (0, react_1.useEffect)(() => {\n dispatch((0, sensorsSlice_1.fetchSensors)(sessionType));\n }, [sessionType]);\n (0, react_1.useEffect)(() => {\n tagsToSelect.length > 0 && dispatch((0, sessionFiltersSlice_1.resetTags)());\n }, [\n sensorName,\n sessionType,\n isIndoorParameterInUrl,\n encodedUnitSymbol,\n measurementType,\n timeFrom,\n timeTo,\n usernames,\n isActive,\n ]);\n (0, react_1.useEffect)(() => {\n const isFirstLoad = isFirstRender.current;\n if (isFirstLoad && fetchedSessions > 0 && !fixedSessionTypeSelected) {\n const originalLimit = limit;\n updateLimit(fetchedSessions);\n const updatedFilters = Object.assign(Object.assign({}, JSON.parse(filters)), { limit: fetchedSessions });\n // Save bounds in cookies when fetching sessions\n Cookies.set(\"mapBoundsEast\", boundEast.toString());\n Cookies.set(\"mapBoundsNorth\", boundNorth.toString());\n Cookies.set(\"mapBoundsSouth\", boundSouth.toString());\n Cookies.set(\"mapBoundsWest\", boundWest.toString());\n dispatch((0, mobileSessionsSlice_1.fetchMobileSessions)({ filters: JSON.stringify(updatedFilters) }))\n .unwrap()\n .then(() => {\n updateLimit(originalLimit);\n updateFetchedSessions(fetchedSessions);\n });\n isFirstRender.current = false;\n }\n else {\n if (fetchingData || isFirstLoad) {\n // Save bounds in cookies when fetching sessions\n Cookies.set(\"mapBoundsEast\", boundEast.toString());\n Cookies.set(\"mapBoundsNorth\", boundNorth.toString());\n Cookies.set(\"mapBoundsSouth\", boundSouth.toString());\n Cookies.set(\"mapBoundsWest\", boundWest.toString());\n if (fixedSessionTypeSelected) {\n if (isIndoorParameterInUrl) {\n if (isActive) {\n dispatch((0, indoorSessionsSlice_1.fetchActiveIndoorSessions)({ filters: indoorSessionsFilters })).unwrap();\n }\n else {\n dispatch((0, indoorSessionsSlice_1.fetchDormantIndoorSessions)({ filters: indoorSessionsFilters })).unwrap();\n }\n }\n else {\n if (isActive) {\n dispatch((0, fixedSessionsSlice_1.fetchActiveFixedSessions)({ filters })).unwrap();\n }\n else {\n dispatch((0, fixedSessionsSlice_1.fetchDormantFixedSessions)({ filters })).unwrap();\n }\n }\n }\n else {\n dispatch((0, mobileSessionsSlice_1.fetchMobileSessions)({ filters }))\n .unwrap()\n .then((response) => {\n updateFetchedSessions(response.sessions.length);\n });\n }\n isFirstRender.current = false;\n }\n }\n dispatch((0, mapSlice_1.setFetchingData)(false));\n }, [\n fetchingData,\n filters,\n fetchedSessions,\n limit,\n dispatch,\n fixedSessionTypeSelected,\n offset,\n updateFetchedSessions,\n ]);\n (0, react_1.useEffect)(() => {\n dispatch((0, thresholdSlice_1.fetchThresholds)(thresholdFilters));\n }, [thresholdFilters]);\n (0, react_1.useEffect)(() => {\n if (!isFirstRenderForThresholds.current) {\n dispatch((0, thresholdSlice_1.resetUserThresholds)());\n }\n // #DirtyButWorks :nervous-laugh: -> refactor when moving thresholds to url\n if (defaultThresholds.max !== 0) {\n isFirstRenderForThresholds.current = false;\n }\n }, [defaultThresholds]);\n (0, react_1.useEffect)(() => {\n if (isFirstRenderForThresholds.current) {\n dispatch((0, thresholdSlice_1.setUserThresholdValues)(initialThresholds));\n }\n // #DirtyButWorks :nervous-laugh: -> refactor when moving thresholds to url\n if (initialThresholds.max === 0) {\n isFirstRenderForThresholds.current = false;\n }\n }, [initialThresholds]);\n (0, react_1.useEffect)(() => {\n if (currentUserSettings !== userStates_1.UserSettings.ModalView) {\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.sessionId, \"\");\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.streamId, \"\");\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.isActive, isActive.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.sessionType, sessionType);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundEast, boundEast.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundNorth, boundNorth.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundSouth, boundSouth.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundWest, boundWest.toString());\n navigate(`?${newSearchParams.toString()}`);\n }\n !isFirstRender.current && setPreviousZoomOnTheMap();\n isMobile && setPreviousZoomInTheURL();\n isFirstRender.current = false;\n }, [currentUserSettings]);\n (0, react_1.useEffect)(() => {\n if (previousUserSettings === userStates_1.UserSettings.CalendarView) {\n const intervalId = setInterval(() => {\n setPreviousZoomOnTheMap();\n clearInterval(intervalId);\n }, 10);\n return () => clearInterval(intervalId);\n }\n }, [mapInstance, previousUserSettings]);\n (0, react_1.useEffect)(() => {\n if (streamId &&\n currentUserSettings === userStates_1.UserSettings.ModalView &&\n !fixedStreamData.measurements.length) {\n fixedSessionTypeSelected\n ? dispatch((0, fixedStreamSlice_1.fetchFixedStreamById)(streamId))\n : dispatch((0, mobileStreamSlice_1.fetchMobileStreamById)(streamId));\n }\n }, [\n streamId,\n currentUserSettings,\n fixedSessionTypeSelected,\n previousUserSettings,\n isIndoorParameterInUrl,\n ]);\n (0, react_1.useEffect)(() => {\n if (realtimeMapUpdates) {\n dispatch((0, fixedSessionsSlice_1.cleanSessions)());\n dispatch((0, mapSlice_1.setFetchingData)(true));\n }\n }, [\n boundEast,\n boundNorth,\n boundSouth,\n boundWest,\n realtimeMapUpdates,\n dispatch,\n ]);\n (0, react_1.useEffect)(() => {\n if (currentUserSettings === userStates_1.UserSettings.TimelapseView) {\n const storedBounds = {\n east: parseFloat(Cookies.get(\"mapBoundsEast\") || boundEast.toString()),\n north: parseFloat(Cookies.get(\"mapBoundsNorth\") || boundNorth.toString()),\n south: parseFloat(Cookies.get(\"mapBoundsSouth\") || boundSouth.toString()),\n west: parseFloat(Cookies.get(\"mapBoundsWest\") || boundWest.toString()),\n };\n const timelapseFilters = Object.assign(Object.assign({}, JSON.parse(filters)), { west: storedBounds.west, east: storedBounds.east, north: storedBounds.north, south: storedBounds.south });\n dispatch((0, timelapseSlice_1.fetchTimelapseData)({ filters: JSON.stringify(timelapseFilters) }));\n }\n }, [currentUserSettings, fixedPoints]);\n const handleScrollEnd = (0, scrollEnd_1.useHandleScrollEnd)(offset, listSessions, updateOffset, updateFetchedSessions, filters, fetchableMobileSessionsCount, fetchableFixedSessionsCount, isDormant);\n const handleMapIdle = (0, react_1.useCallback)((event) => {\n var _a;\n const map = event.map;\n if (!mapInstance) {\n setMapInstance(map);\n map.setOptions({\n clickableIcons: false,\n });\n }\n applyMapStylesBasedOnZoom(map, mapStylesZoomedIn_1.default, memoizedMapStyles);\n if (isFirstRender.current) {\n if (currentUserSettings === userStates_1.UserSettings.MapView) {\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.sessionType, sessionType);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.isActive, booleans_1.TRUE);\n map.setCenter(currentCenter);\n map.setZoom(currentZoom);\n }\n isFirstRender.current = false;\n }\n else {\n if ([userStates_1.UserSettings.MapView, userStates_1.UserSettings.CrowdMapView].includes(currentUserSettings)) {\n const currentCenter = JSON.stringify(((_a = map.getCenter()) === null || _a === void 0 ? void 0 : _a.toJSON()) || previousCenter);\n const currentZoom = (map.getZoom() || previousZoom).toString();\n const bounds = map === null || map === void 0 ? void 0 : map.getBounds();\n if (!bounds) {\n return;\n }\n const north = bounds.getNorthEast().lat();\n const south = bounds.getSouthWest().lat();\n const east = bounds.getNorthEast().lng();\n const west = bounds.getSouthWest().lng();\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundEast, east.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundNorth, north.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundSouth, south.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.boundWest, west.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.currentCenter, currentCenter);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.currentZoom, currentZoom);\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.boundEast, east.toString());\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.boundNorth, north.toString());\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.boundSouth, south.toString());\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.boundWest, west.toString());\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.currentCenter, currentCenter);\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.currentZoom, currentZoom);\n navigate(`?${newSearchParams.toString()}`);\n }\n }\n }, [currentUserSettings, mapInstance, searchParams, dispatch]);\n // ref to currentUserSettings to get the current value from URL\n const currentUserSettingsRef = (0, react_1.useRef)(currentUserSettings);\n (0, react_1.useEffect)(() => {\n currentUserSettingsRef.current = currentUserSettings;\n }, [currentUserSettings]);\n const handleMarkerClick = (selectedStreamId, id) => {\n if (currentUserSettings !== userStates_1.UserSettings.SessionListView) {\n setPreviousZoomInTheURL();\n }\n if (selectedStreamId) {\n fixedSessionTypeSelected\n ? dispatch((0, fixedStreamSlice_1.fetchFixedStreamById)(selectedStreamId))\n : dispatch((0, mobileStreamSlice_1.fetchMobileStreamById)(selectedStreamId));\n }\n if (isMobile) {\n if (fixedSessionTypeSelected) {\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.previousUserSettings, currentUserSettingsRef.current);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.currentUserSettings, userStates_1.UserSettings.CalendarView);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.sessionId, (id === null || id === void 0 ? void 0 : id.toString()) || \"\");\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.streamId, (selectedStreamId === null || selectedStreamId === void 0 ? void 0 : selectedStreamId.toString()) || \"\");\n navigate(`/fixed_stream?${newSearchParams.toString()}`, {\n replace: true,\n });\n return;\n }\n }\n if (!streamId) {\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.sessionId, (id === null || id === void 0 ? void 0 : id.toString()) || \"\");\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.streamId, (selectedStreamId === null || selectedStreamId === void 0 ? void 0 : selectedStreamId.toString()) || \"\");\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.previousUserSettings, currentUserSettingsRef.current);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.currentUserSettings, userStates_1.UserSettings.ModalView);\n navigate(`?${newSearchParams.toString()}`);\n }\n if (streamId) {\n revertUserSettingsAndResetIds();\n fixedSessionTypeSelected\n ? dispatch((0, fixedStreamSlice_1.resetFixedStreamState)())\n : dispatch((0, mobileStreamSlice_1.resetMobileStreamState)());\n }\n };\n const setPreviousZoomOnTheMap = () => {\n if ([userStates_1.UserSettings.MapView, userStates_1.UserSettings.CrowdMapView].includes(currentUserSettings) &&\n ![\n userStates_1.UserSettings.MapView,\n userStates_1.UserSettings.MapLegendView,\n userStates_1.UserSettings.FiltersView,\n userStates_1.UserSettings.CrowdMapView,\n userStates_1.UserSettings.TimelapseView,\n ].includes(previousUserSettings)) {\n if (mapInstance) {\n mapInstance.setCenter(previousCenter);\n mapInstance.setZoom(previousZoom);\n }\n }\n };\n const setPreviousZoomInTheURL = () => {\n var _a;\n const desktopCondition = !isMobile &&\n currentUserSettings !== userStates_1.UserSettings.ModalView &&\n previousUserSettings !== userStates_1.UserSettings.CalendarView;\n const mobileCondition = isMobile && currentUserSettings === userStates_1.UserSettings.MapView;\n const mobileConditionForSessionList = isMobile &&\n currentUserSettings === userStates_1.UserSettings.SessionListView &&\n previousUserSettings === userStates_1.UserSettings.MapView;\n if (mapInstance) {\n if (desktopCondition ||\n mobileCondition ||\n mobileConditionForSessionList) {\n const newCenter = (_a = mapInstance.getCenter()) === null || _a === void 0 ? void 0 : _a.toJSON();\n if (newCenter !== previousCenter) {\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.previousCenter, JSON.stringify(newCenter || currentCenter));\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.previousCenter, JSON.stringify(newCenter || currentCenter));\n }\n const newZoom = mapInstance === null || mapInstance === void 0 ? void 0 : mapInstance.getZoom();\n if (newZoom !== previousZoom) {\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.previousZoom, (newZoom === null || newZoom === void 0 ? void 0 : newZoom.toString()) || currentZoom.toString());\n Cookies.set(mapParamsHandler_1.UrlParamsTypes.previousZoom, (newZoom === null || newZoom === void 0 ? void 0 : newZoom.toString()) || currentZoom.toString());\n }\n navigate(`?${newSearchParams.toString()}`);\n }\n }\n };\n const handleMapZoomStyles = (0, react_1.useCallback)(() => {\n if (mapInstance) {\n applyMapStylesBasedOnZoom(mapInstance, mapStylesZoomedIn_1.default, memoizedMapStyles);\n }\n }, [mapInstance, memoizedMapStyles]);\n const handleZoomChanged = () => {\n if (mapInstance) {\n handleMapZoomStyles();\n }\n };\n const openFilters = () => {\n goToUserSettings(userStates_1.UserSettings.FiltersView);\n };\n const openTimelapse = () => {\n // Clear existing timelapse markers before switching views\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(\"\"));\n // Add a small delay to ensure markers are cleared before view changes\n setTimeout(() => {\n goToUserSettings(currentUserSettings === userStates_1.UserSettings.TimelapseView\n ? previousUserSettings\n : userStates_1.UserSettings.TimelapseView);\n }, 0);\n };\n const isTimelapseLoading = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectTimelapseIsLoading);\n const renderTimelapseMarkers = () => {\n if (currentUserSettings === userStates_1.UserSettings.TimelapseView &&\n currentTimestamp &&\n memoizedTimelapseData[currentTimestamp] &&\n !isTimelapseLoading) {\n return (react_1.default.createElement(TimelapseMarkers_1.TimelapseMarkers, { sessions: memoizedTimelapseData[currentTimestamp] }));\n }\n return null;\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n (selectorsLoading || markersLoading) && (react_1.default.createElement(S.LoaderOverlay, null,\n react_1.default.createElement(Loader_1.Loader, null))),\n isIndoorParameterInUrl && (react_1.default.createElement(S.IndoorOvelay, null,\n react_1.default.createElement(S.IndoorOverlayInfo, { \"$isMobile\": isMobile },\n react_1.default.createElement(\"h1\", null, t(\"filters.indoorMapOverlay\"))))),\n react_1.default.createElement(react_google_maps_1.Map, { mapTypeId: mapTypeId, defaultCenter: currentCenter, defaultZoom: currentZoom, gestureHandling: \"greedy\", disableDefaultUI: true, scaleControl: true, style: S.ContainerStyle, onIdle: handleMapIdle, minZoom: coordinates_1.MIN_ZOOM, isFractionalZoomEnabled: true, styles: memoizedMapStyles, onZoomChanged: handleZoomChanged, tilt: 0, reuseMaps: true },\n fixedSessionsStatusFulfilled &&\n fixedSessionTypeSelected &&\n !isActive &&\n !isIndoorParameterInUrl && (react_1.default.createElement(DormantMarkers_1.DormantMarkers, { sessions: fixedPoints, onMarkerClick: handleMarkerClick, selectedStreamId: streamId, pulsatingSessionId: pulsatingSessionId })),\n isTimelapseView\n ? renderTimelapseMarkers()\n : fixedSessionsStatusFulfilled &&\n fixedSessionTypeSelected &&\n !isIndoorParameterInUrl &&\n isActive && (react_1.default.createElement(FixedMarkers_1.FixedMarkers, { sessions: fixedPoints, onMarkerClick: handleMarkerClick, selectedStreamId: streamId, pulsatingSessionId: pulsatingSessionId })),\n !fixedSessionTypeSelected &&\n ([userStates_1.UserSettings.CrowdMapView].includes(currentUserSettings) ||\n ([userStates_1.UserSettings.CrowdMapView].includes(previousUserSettings) &&\n [userStates_1.UserSettings.MapLegendView].includes(currentUserSettings)) ? (react_1.default.createElement(CrowdMapMarkers_1.CrowdMapMarkers, { pulsatingSessionId: pulsatingSessionId, sessions: mobilePoints })) : (react_1.default.createElement(MobileMarkers_1.MobileMarkers, { sessions: mobilePoints, onMarkerClick: handleMarkerClick, selectedStreamId: streamId, pulsatingSessionId: pulsatingSessionId }))),\n streamId && !fixedSessionTypeSelected && (react_1.default.createElement(StreamMarkers_1.StreamMarkers, { sessions: mobileStreamPoints, unitSymbol: unitSymbol }))),\n (!isMobile ||\n (isMobile && currentUserSettings === userStates_1.UserSettings.ModalView)) && (react_1.default.createElement(S.ThresholdContainer, null,\n react_1.default.createElement(ThresholdConfigurator_1.ThresholdsConfigurator, { resetButtonVariant: ThresholdButton_1.ThresholdButtonVariant.IconOnly, isMobileOldStyle: isMobile && currentUserSettings === userStates_1.UserSettings.ModalView }))),\n currentUserSettings === userStates_1.UserSettings.ModalView && (react_1.default.createElement(SessionDetailsModal_1.SessionDetailsModal, { onClose: () => {\n revertUserSettingsAndResetIds();\n fixedSessionTypeSelected\n ? dispatch((0, fixedStreamSlice_1.resetFixedStreamState)())\n : dispatch((0, mobileStreamSlice_1.resetMobileStreamState)());\n }, sessionType: sessionType, streamId: streamId })),\n currentUserSettings === userStates_1.UserSettings.TimelapseView && (react_1.default.createElement(TimelapseModal_1.TimelapseComponent, { onClose: () => {\n goToUserSettings(previousUserSettings);\n } })),\n react_1.default.createElement(S.MobileContainer, null,\n currentUserSettings !== userStates_1.UserSettings.ModalView &&\n currentUserSettings !== userStates_1.UserSettings.FiltersView && (react_1.default.createElement(S.MobileButtons, { \"$isTimelapseView\": isTimelapseView },\n react_1.default.createElement(SectionButton_1.SectionButton, { title: t(\"map.listSessions\"), image: pinImage_svg_1.default, alt: t(\"map.altListSessions\"), onClick: () => goToUserSettings(userStates_1.UserSettings.SessionListView), isNotTimelapseButton: isTimelapseView, isActive: currentUserSettings === userStates_1.UserSettings.SessionListView }),\n react_1.default.createElement(SectionButton_1.SectionButton, { title: t(\"map.legendTile\"), image: mapLegend_svg_1.default, alt: t(\"map.altlegendTile\"), onClick: () => goToUserSettings(userStates_1.UserSettings.MapLegendView), isNotTimelapseButton: isTimelapseView, isActive: currentUserSettings === userStates_1.UserSettings.MapLegendView }),\n fixedSessionTypeSelected && (react_1.default.createElement(SectionButton_1.SectionButton, { title: t(\"map.timelapsTile\"), image: clockIcon_svg_1.default, alt: t(\"map.altTimelapstile\"), onClick: openTimelapse, isNotTimelapseButton: false, isActive: currentUserSettings === userStates_1.UserSettings.TimelapseView, isDisabled: isTimelapseDisabled })),\n react_1.default.createElement(SectionButton_1.SectionButton, { title: t(\"filters.filters\"), image: filterIcon_svg_1.default, alt: t(\"filters.altFiltersIcon\"), onClick: openFilters, isNotTimelapseButton: false }))),\n currentUserSettings === userStates_1.UserSettings.MapLegendView && (react_1.default.createElement(Legend_1.Legend, { onClose: () => goToUserSettings(previousUserSettings) })),\n currentUserSettings === userStates_1.UserSettings.SessionListView && isMobile && (react_1.default.createElement(MobileSessionList_1.MobileSessionList, { sessions: listSessions.map((session) => ({\n id: session.id,\n sessionName: session.title,\n sensorName: session.sensorName,\n averageValue: session.averageValue,\n startTime: session.startTime,\n endTime: session.endTime,\n streamId: session.streamId,\n })), onCellClick: (id, streamId) => {\n handleMarkerClick(streamId, id);\n }, onClose: () => [userStates_1.UserSettings.CrowdMapView].includes(previousUserSettings)\n ? goToUserSettings(userStates_1.UserSettings.CrowdMapView)\n : goToUserSettings(userStates_1.UserSettings.MapView), onScrollEnd: handleScrollEnd, fetchableSessionsCount: fetchableSessionsCount })),\n currentUserSettings === userStates_1.UserSettings.FiltersView && (react_1.default.createElement(MobileSessionFilters_1.MobileSessionFilters, { onClose: () => [userStates_1.UserSettings.CrowdMapView].includes(previousUserSettings)\n ? goToUserSettings(userStates_1.UserSettings.CrowdMapView)\n : goToUserSettings(userStates_1.UserSettings.MapView), fetchableSessionsCount: fetchableSessionsCount }))),\n [userStates_1.UserSettings.MapView, userStates_1.UserSettings.CrowdMapView].includes(currentUserSettings) &&\n !isMobile && (react_1.default.createElement(S.DesktopContainer, null,\n react_1.default.createElement(SessionsListView_1.SessionsListView, { sessions: listSessions.map((session) => ({\n id: session.id,\n sessionName: session.title,\n sensorName: session.sensorName,\n averageValue: session.averageValue,\n startTime: session.startTime,\n endTime: session.endTime,\n streamId: session.streamId,\n })), onCellClick: (id, streamId) => {\n setPulsatingSessionId(null);\n handleMarkerClick(streamId, id);\n }, onCellMouseEnter: (id) => {\n setPulsatingSessionId(id);\n }, onCellMouseLeave: () => {\n setPulsatingSessionId(null);\n }, onScrollEnd: handleScrollEnd, fetchableSessionsCount: fetchableSessionsCount })))));\n};\nexports.Map = Map;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShadowCircle = exports.MobileDataContainer = exports.MobileClusterInfoText = exports.MobileClusterInfoColorText = exports.DataContainer = exports.ClusterInfoText = exports.ClusterInfoDataAndZoomIn = exports.ClusterInfoContainer = exports.ClusterInfoColorText = exports.ClusterInfoBoldText = exports.ClusterCircle = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst ClusterInfoContainer = styled_components_1.default.div `\n display: grid;\n position: absolute;\n gap: 0.5rem;\n width: fit-content;\n z-index: 100;\n\n top: ${(props) => `${props.$top}px`};\n left: ${(props) => `${props.$left}px`};\n padding: ${(props) => (props.$loading ? \"0.1rem 0\" : \"0\")};\n height: ${(props) => (props.$isMobile ? \"auto\" : \"2.8rem\")};\n ${(props) => props.$isMobile\n ? props.$loading\n ? \"transform: translate(-12%, -45%);\"\n : \"transform: translate(-15%, -45%);\"\n : props.$loading\n ? \"transform: translate(-15%, -50%);\"\n : \"transform: translate(-6%, -52%);\"}\n\n opacity: ${(props) => (props.$visible ? 1 : 0)};\n transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;\n`;\nexports.ClusterInfoContainer = ClusterInfoContainer;\nconst ShadowCircle = styled_components_1.default.div `\n width: ${(props) => (props.$isMobile ? \"5rem\" : \"5rem\")};\n height: ${(props) => (props.$isMobile ? \"5rem\" : \"5rem\")};\n position: absolute;\n border-radius: 50%;\n z-index: 10;\n background: radial-gradient(\n circle at center,\n ${(props) => props.$color} 0%,\n ${(props) => props.$color} 30%,\n transparent 100%\n );\n filter: blur(5px);\n pointer-events: none;\n\n ${(props) => props.$isMobile\n ? \"transform: translate(-15%, -10%);\"\n : \"transform: translate(-20%, -25%);\"}\n`;\nexports.ShadowCircle = ShadowCircle;\nconst DataContainer = styled_components_1.default.div `\n display: flex;\n height: 2.8rem;\n border-radius: 1.5rem;\n padding: 0.5rem;\n box-shadow: 0.125rem 0.125rem 0.25rem 0 rgba(76, 86, 96, 0.1);\n align-items: center;\n gap: 0.25rem;\n pointer-events: auto;\n border: 1px solid ${(props) => props.$color};\n background-color: ${colors_1.white};\n`;\nexports.DataContainer = DataContainer;\nconst ClusterInfoDataAndZoomIn = styled_components_1.default.div `\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0.5rem;\n pointer-events: auto;\n z-index: 20;\n`;\nexports.ClusterInfoDataAndZoomIn = ClusterInfoDataAndZoomIn;\nconst ClusterCircle = styled_components_1.default.div `\n width: ${(props) => (props.$loading ? \"1rem\" : \"2rem\")};\n height: ${(props) => (props.$loading ? \"1rem\" : \"2rem\")};\n border-radius: 50%;\n background-color: ${(props) => props.$color};\n pointer-events: none;\n`;\nexports.ClusterCircle = ClusterCircle;\nconst ClusterInfoText = styled_components_1.default.div `\n color: ${colors_1.gray400};\n font-size: 1.4rem;\n font-weight: 400;\n pointer-events: none;\n white-space: nowrap;\n`;\nexports.ClusterInfoText = ClusterInfoText;\nconst ClusterInfoBoldText = styled_components_1.default.span `\n color: ${colors_1.gray400};\n font-weight: 700;\n font-size: 1.4rem;\n pointer-events: none;\n white-space: nowrap;\n`;\nexports.ClusterInfoBoldText = ClusterInfoBoldText;\nconst ClusterInfoColorText = styled_components_1.default.span `\n color: ${(props) => props.$color};\n font-size: 1.4rem;\n font-weight: 400;\n pointer-events: none;\n white-space: nowrap;\n`;\nexports.ClusterInfoColorText = ClusterInfoColorText;\nconst MobileDataContainer = (0, styled_components_1.default)(DataContainer) `\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: flex-start;\n border-radius: 2rem;\n gap: 0.8rem;\n height: auto;\n padding: 0.6rem 1.6rem;\n z-index: 20;\n pointer-events: auto;\n`;\nexports.MobileDataContainer = MobileDataContainer;\nconst MobileClusterInfoText = (0, styled_components_1.default)(ClusterInfoText) `\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.2rem;\n`;\nexports.MobileClusterInfoText = MobileClusterInfoText;\nconst MobileClusterInfoColorText = (0, styled_components_1.default)(ClusterInfoColorText) `\n font-weight: bold;\n`;\nexports.MobileClusterInfoColorText = MobileClusterInfoColorText;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClusterInfoLoading = exports.ClusterInfo = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst mapParamsHandler_1 = require(\"../../../../../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../../utils/useScreenSizeDetection\"));\nconst ClusterInfo_style_1 = require(\"./ClusterInfo.style\");\nconst ClusterZoomIn_1 = require(\"./ClusterZoomIn/ClusterZoomIn\");\nconst ClusterInfo = ({ color, average, numberOfSessions, handleZoomIn, position, visible, }) => {\n const { unitSymbol } = (0, mapParamsHandler_1.useMapParams)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(ClusterInfo_style_1.ClusterInfoContainer, { \"$color\": color, \"$top\": position.top, \"$left\": position.left, \"$isMobile\": isMobile, \"$visible\": visible },\n react_1.default.createElement(ClusterInfo_style_1.ShadowCircle, { \"$color\": color, \"$isMobile\": isMobile }),\n isMobile ? (react_1.default.createElement(ClusterInfo_style_1.MobileDataContainer, { \"$color\": color },\n react_1.default.createElement(ClusterInfo_style_1.MobileClusterInfoText, null,\n react_1.default.createElement(ClusterInfo_style_1.MobileClusterInfoColorText, { \"$color\": color },\n numberOfSessions,\n \" \",\n t(\"map.clusterInfo.stations\")), average === null || average === void 0 ? void 0 :\n average.toFixed(0),\n \" \",\n ` ${unitSymbol} ${t(\"map.clusterInfo.average\")}`),\n react_1.default.createElement(ClusterZoomIn_1.ClusterZoomIn, { handleZoomIn: handleZoomIn, color: color }))) : (react_1.default.createElement(ClusterInfo_style_1.ClusterInfoDataAndZoomIn, null,\n react_1.default.createElement(ClusterInfo_style_1.DataContainer, { \"$color\": color },\n react_1.default.createElement(ClusterInfo_style_1.ClusterCircle, { \"$color\": color }),\n react_1.default.createElement(ClusterInfo_style_1.ClusterInfoText, null,\n react_1.default.createElement(ClusterInfo_style_1.ClusterInfoColorText, { \"$color\": color },\n numberOfSessions,\n \" \",\n t(\"map.clusterInfo.stations\")),\n \" - \",\n react_1.default.createElement(ClusterInfo_style_1.ClusterInfoBoldText, null, average === null || average === void 0 ? void 0 : average.toFixed(0)),\n ` ${unitSymbol} ${t(\"map.clusterInfo.average\")}`)),\n react_1.default.createElement(ClusterZoomIn_1.ClusterZoomIn, { handleZoomIn: handleZoomIn }))))));\n};\nexports.ClusterInfo = ClusterInfo;\nconst ClusterInfoLoading = ({ position, visible }) => {\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const { t } = (0, react_i18next_1.useTranslation)();\n return isMobile ? (react_1.default.createElement(ClusterInfo_style_1.ClusterInfoContainer, { \"$color\": colors_1.grey, \"$top\": position.top, \"$left\": position.left, \"$isMobile\": isMobile, \"$visible\": visible, \"$loading\": true },\n react_1.default.createElement(ClusterInfo_style_1.MobileDataContainer, { \"$color\": colors_1.grey },\n react_1.default.createElement(ClusterInfo_style_1.MobileClusterInfoText, null, `${t(\"map.rectangleInfo.loading\")}`)))) : (react_1.default.createElement(ClusterInfo_style_1.ClusterInfoContainer, { \"$color\": colors_1.grey, \"$top\": position.top, \"$left\": position.left, \"$isMobile\": isMobile, \"$visible\": visible, \"$loading\": true },\n react_1.default.createElement(ClusterInfo_style_1.ClusterInfoDataAndZoomIn, null,\n react_1.default.createElement(ClusterInfo_style_1.DataContainer, { \"$color\": colors_1.grey },\n react_1.default.createElement(ClusterInfo_style_1.ClusterCircle, { \"$color\": colors_1.grey, \"$loading\": true }),\n react_1.default.createElement(ClusterInfo_style_1.ClusterInfoColorText, { \"$color\": colors_1.grey }, `${t(\"map.rectangleInfo.loading\")}`)))));\n};\nexports.ClusterInfoLoading = ClusterInfoLoading;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZoomInContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../../assets/styles/colors\");\nconst ZoomInContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) => (props.$isMobile ? \"2.8rem\" : \"4.2rem\")};\n height: 2.8rem;\n border-radius: 25px;\n background-color: ${colors_1.white};\n cursor: pointer;\n ${(props) => !props.$isMobile && `box - shadow: 2px 2px 4px 0px ${colors_1.gray900};`}\n z-index: 100;\n`;\nexports.ZoomInContainer = ZoomInContainer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClusterZoomIn = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../../../utils/useScreenSizeDetection\"));\nconst ClusterZoomIn_style_1 = require(\"./ClusterZoomIn.style\");\nconst ZoomInIcon_1 = require(\"./ZoomInIcon/ZoomInIcon\");\nconst ClusterZoomIn = ({ handleZoomIn, color }) => {\n const isMobile = (0, useScreenSizeDetection_1.default)();\n return (react_1.default.createElement(ClusterZoomIn_style_1.ZoomInContainer, { onClick: handleZoomIn, onTouchEnd: handleZoomIn, \"$isMobile\": isMobile },\n react_1.default.createElement(ZoomInIcon_1.ZoomInIcon, { color: color })));\n};\nexports.ClusterZoomIn = ClusterZoomIn;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ZoomInIcon = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst colors_1 = require(\"../../../../../../../assets/styles/colors\");\nconst ZoomInIcon = ({ color }) => (react_1.default.createElement(\"svg\", { width: \"20\", height: \"20\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-label\": \"Zoom in\" },\n react_1.default.createElement(\"path\", { d: \"M19 19L13.8033 13.8033M13.8033 13.8033C15.1605 12.4461 16 10.5711 16 8.5C16 4.35786 12.6421 1 8.5 1C4.35786 1 1 4.35786 1 8.5C1 12.6421 4.35786 16 8.5 16C10.5711 16 12.4461 15.1605 13.8033 13.8033ZM8.5 5.5V11.5M11.5 8.5H5.5\", stroke: color ? `${color}` : `${colors_1.gray400}`, strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\nexports.ZoomInIcon = ZoomInIcon;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClusterSize = exports.calculateClusterAverage = void 0;\nconst calculateClusterAverage = (markers) => {\n const sum = markers.reduce((acc, marker) => {\n return acc + Number(marker.value || 0);\n }, 0);\n return sum / markers.length;\n};\nexports.calculateClusterAverage = calculateClusterAverage;\nconst getClusterSize = (markers) => {\n return markers.length;\n};\nexports.getClusterSize = getClusterSize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClusterOverlay = void 0;\nclass ClusterOverlay extends google.maps.OverlayView {\n constructor(cluster, color, shouldPulse, map, onClick) {\n super();\n this.div = null;\n this.handleClick = (event) => {\n event.stopPropagation();\n this.onClick(event, this.cluster);\n };\n this.cluster = cluster;\n this.position = cluster.position;\n this.color = color;\n this.shouldPulse = shouldPulse;\n this.map = map;\n this.onClick = onClick;\n this.setMap(map);\n }\n onAdd() {\n this.div = document.createElement(\"div\");\n this.div.style.position = \"absolute\";\n this.div.style.transform = \"translate(-50%, -100%)\";\n this.div.style.cursor = \"pointer\";\n this.div.style.display = \"flex\";\n this.div.style.alignItems = \"center\";\n this.div.style.justifyContent = \"center\";\n this.div.style.borderRadius = \"50%\";\n this.div.style.width = \"30px\";\n this.div.style.height = \"30px\";\n this.div.style.backgroundColor = \"transparent\";\n this.div.style.border = \"none\";\n this.div.style.color = \"transparent\";\n this.div.style.zIndex = \"1\";\n this.applyStyles();\n this.div.addEventListener(\"click\", this.handleClick);\n const panes = this.getPanes();\n if (panes) {\n if (this.shouldPulse) {\n panes.floatPane.appendChild(this.div);\n }\n else {\n panes.overlayMouseTarget.appendChild(this.div);\n }\n }\n }\n draw() {\n if (!this.div)\n return;\n const overlayProjection = this.getProjection();\n const point = overlayProjection.fromLatLngToDivPixel(this.position);\n if (point) {\n const offsetX = -14;\n const offsetY = -14;\n this.div.style.left = `${point.x + offsetX}px`;\n this.div.style.top = `${point.y + offsetY}px`;\n this.div.style.transform = \"none\";\n }\n }\n onRemove() {\n if (this.div && this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n this.div.removeEventListener(\"click\", this.handleClick);\n this.div = null;\n }\n }\n applyStyles() {\n if (!this.div)\n return;\n this.div.innerHTML = \"\";\n const outerCircle = document.createElement(\"div\");\n outerCircle.style.width = \"28px\";\n outerCircle.style.height = \"28px\";\n outerCircle.style.borderRadius = \"50%\";\n outerCircle.style.border = `1px solid ${this.color}`;\n outerCircle.style.backgroundColor = \"transparent\";\n outerCircle.style.display = \"flex\";\n outerCircle.style.alignItems = \"center\";\n outerCircle.style.justifyContent = \"center\";\n const innerCircle = document.createElement(\"div\");\n innerCircle.style.width = \"14px\";\n innerCircle.style.height = \"14px\";\n innerCircle.style.borderRadius = \"50%\";\n innerCircle.style.backgroundColor = this.color;\n innerCircle.style.display = \"flex\";\n innerCircle.style.alignItems = \"center\";\n innerCircle.style.justifyContent = \"center\";\n outerCircle.appendChild(innerCircle);\n this.div.appendChild(outerCircle);\n if (this.shouldPulse) {\n const animationName = `pulse-animation-${this.cluster.id}`;\n const styleSheetId = `cluster-overlay-styles-${this.cluster.id}`;\n if (!document.getElementById(styleSheetId)) {\n const styleSheet = document.createElement(\"style\");\n styleSheet.type = \"text/css\";\n styleSheet.id = styleSheetId;\n styleSheet.innerText = `\n @keyframes ${animationName} {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(2);\n opacity: 0.7;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n }\n `;\n document.head.appendChild(styleSheet);\n }\n this.div.style.animation = `${animationName} 2s infinite`;\n this.div.style.zIndex = \"2\";\n }\n else {\n this.div.style.animation = \"\";\n }\n }\n updatePane() {\n if (!this.div)\n return;\n const panes = this.getPanes();\n if (panes) {\n if (this.div.parentElement) {\n this.div.parentElement.removeChild(this.div);\n }\n if (this.shouldPulse) {\n panes.floatPane.appendChild(this.div);\n }\n else {\n panes.overlayLayer.appendChild(this.div);\n }\n }\n }\n setShouldPulse(shouldPulse) {\n if (this.shouldPulse !== shouldPulse) {\n this.shouldPulse = shouldPulse;\n this.updatePane();\n this.applyStyles();\n }\n }\n}\nexports.ClusterOverlay = ClusterOverlay;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CrowdMapMarkers = void 0;\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = __importStar(require(\"react\"));\nconst crowdMapSlice_1 = require(\"../../../../store/crowdMapSlice\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst loadingSelectors_1 = require(\"../../../../store/loadingSelectors\");\nconst markersLoadingSlice_1 = require(\"../../../../store/markersLoadingSlice\");\nconst mobileSessionsSelectors_1 = require(\"../../../../store/mobileSessionsSelectors\");\nconst rectangleSlice_1 = require(\"../../../../store/rectangleSlice\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst mapEventListeners_1 = __importDefault(require(\"../../../../utils/mapEventListeners\"));\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst thresholdColors_1 = require(\"../../../../utils/thresholdColors\");\nconst CustomMarker_1 = require(\"./CustomOverlays/CustomMarker\");\nconst MapOverlay_1 = __importDefault(require(\"./CustomOverlays/MapOverlay\"));\nconst RectangleInfo_1 = require(\"./RectangleInfo/RectangleInfo\");\nconst CrowdMapMarkers = ({ pulsatingSessionId, sessions }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const map = (0, react_google_maps_1.useMap)();\n const { boundEast, boundNorth, boundSouth, boundWest, currentZoom, gridSize, measurementType, sensorName, tags, timeFrom, timeTo, unitSymbol, usernames, } = (0, mapParamsHandler_1.useMapParams)();\n const crowdMapRectangles = (0, hooks_1.useAppSelector)(crowdMapSlice_1.selectCrowdMapRectangles);\n const fetchingCrowdMapData = (0, hooks_1.useAppSelector)(crowdMapSlice_1.selectFetchingCrowdMapData);\n const mobileSessionsLoading = (0, hooks_1.useAppSelector)(loadingSelectors_1.selectMobileSessionsLoading);\n const mobileSessionsStreamIds = (0, hooks_1.useAppSelector)(mobileSessionsSelectors_1.selectMobileSessionsStreamIds);\n const rectangleData = (0, hooks_1.useAppSelector)(rectangleSlice_1.selectRectangleData);\n const rectangleLoading = (0, hooks_1.useAppSelector)(rectangleSlice_1.selectRectangleLoading);\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const preparedUnitSymbol = unitSymbol.replace(/\"/g, \"\");\n const encodedUnitSymbol = encodeURIComponent(preparedUnitSymbol);\n const gridSizeX = (x) => {\n const width = window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth;\n const height = window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight;\n return (Math.round(x) * width) / height;\n };\n const filters = (0, react_1.useMemo)(() => JSON.stringify({\n east: boundEast,\n grid_size_x: gridSizeX(gridSize),\n grid_size_y: gridSize,\n measurement_type: measurementType,\n north: boundNorth,\n sensor_name: sensorName,\n south: boundSouth,\n stream_ids: mobileSessionsStreamIds,\n tags: tags,\n time_from: timeFrom,\n time_to: timeTo,\n unit_symbol: encodedUnitSymbol,\n usernames: usernames,\n west: boundWest,\n zoom: currentZoom,\n }), [\n gridSize,\n measurementType,\n mobileSessionsStreamIds,\n sensorName,\n tags,\n timeFrom,\n timeTo,\n unitSymbol,\n usernames,\n currentZoom,\n ]);\n const rectanglesRef = (0, react_1.useRef)([]);\n const [rectanglePoint, setRectanglePoint] = (0, react_1.useState)(null);\n const crowdMapRectanglesLength = crowdMapRectangles.length;\n const displayedSession = sessions.find((session) => session.id === pulsatingSessionId);\n const displayedSessionMarkerRef = (0, react_1.useRef)(null);\n const cleanupMarker = () => {\n if (displayedSessionMarkerRef.current) {\n displayedSessionMarkerRef.current.setMap(null);\n displayedSessionMarkerRef.current = null;\n }\n };\n (0, react_1.useEffect)(() => {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(true));\n }, [crowdMapRectanglesLength, tags, usernames, dispatch]);\n (0, react_1.useEffect)(() => {\n if (!mobileSessionsLoading || fetchingCrowdMapData) {\n setRectanglePoint(null); // Clear rectanglePoint when fetching new data\n dispatch((0, crowdMapSlice_1.clearCrowdMap)());\n dispatch((0, crowdMapSlice_1.fetchCrowdMapData)(filters));\n }\n }, [dispatch, fetchingCrowdMapData, mobileSessionsLoading, currentZoom]);\n const handleRectangleClick = (rectangleBounds) => {\n const rectangleBoundEast = rectangleBounds.getNorthEast().lng();\n const rectangleBoundWest = rectangleBounds.getSouthWest().lng();\n const rectangleBoundNorth = rectangleBounds.getNorthEast().lat();\n const rectangleBoundSouth = rectangleBounds.getSouthWest().lat();\n dispatch((0, rectangleSlice_1.clearRectangles)());\n setRectanglePoint({\n lat: rectangleBoundNorth,\n lng: rectangleBoundEast,\n });\n const rectangleFilters = {\n west: rectangleBoundWest.toString(),\n east: rectangleBoundEast.toString(),\n south: rectangleBoundSouth.toString(),\n north: rectangleBoundNorth.toString(),\n time_from: timeFrom,\n time_to: timeTo,\n grid_size_x: gridSizeX(gridSize).toString(),\n grid_size_y: gridSize.toString(),\n tags: tags || \"\",\n usernames: usernames || \"\",\n sensor_name: sensorName,\n measurement_type: measurementType,\n unit_symbol: encodeURIComponent(unitSymbol),\n stream_ids: mobileSessionsStreamIds.join(\",\"),\n };\n setTimeout(() => {\n const queryString = new URLSearchParams(rectangleFilters).toString();\n dispatch((0, rectangleSlice_1.fetchRectangleData)(queryString));\n }, 100);\n };\n (0, react_1.useEffect)(() => {\n if (!mobileSessionsLoading && crowdMapRectanglesLength > 0) {\n const newRectangles = crowdMapRectangles.map((rectangle) => {\n const newRectangle = new google.maps.Rectangle({\n bounds: new google.maps.LatLngBounds(new google.maps.LatLng(rectangle.south, rectangle.west), new google.maps.LatLng(rectangle.north, rectangle.east)),\n clickable: true,\n fillColor: (0, thresholdColors_1.getColorForValue)(thresholds, rectangle.value),\n fillOpacity: 0.6,\n map: map,\n strokeWeight: 0,\n });\n google.maps.event.addListener(newRectangle, \"click\", () => {\n const rectangleBounds = newRectangle.getBounds();\n if (rectangleBounds) {\n handleRectangleClick(rectangleBounds);\n }\n });\n return newRectangle;\n });\n rectanglesRef.current.push(...newRectangles);\n }\n // Cleanup function to remove rectangles on unmount\n return () => {\n rectanglesRef.current.forEach((rectangle) => rectangle.setMap(null));\n rectanglesRef.current = [];\n };\n }, [\n crowdMapRectangles,\n dispatch,\n gridSize,\n map,\n measurementType,\n mobileSessionsLoading,\n mobileSessionsStreamIds,\n sensorName,\n tags,\n thresholds,\n timeFrom,\n timeTo,\n unitSymbol,\n usernames,\n ]);\n (0, react_1.useEffect)(() => {\n map &&\n map.addListener(\"zoom_changed\", () => {\n dispatch((0, rectangleSlice_1.clearRectangles)());\n setRectanglePoint(null); // Clear rectanglePoint when zoom changes\n });\n }, [dispatch, map]);\n (0, mapEventListeners_1.default)(map, {\n click: () => {\n dispatch((0, rectangleSlice_1.clearRectangles)());\n setRectanglePoint(null); // Clear rectanglePoint when map is clicked\n },\n touchend: () => {\n dispatch((0, rectangleSlice_1.clearRectangles)());\n setRectanglePoint(null);\n },\n dragstart: () => {\n dispatch((0, rectangleSlice_1.clearRectangles)());\n setRectanglePoint(null);\n },\n });\n (0, react_1.useEffect)(() => {\n if (rectanglesRef.current.length >= crowdMapRectanglesLength) {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n }\n }, [crowdMapRectanglesLength, dispatch, rectanglesRef.current.length]);\n // Manage displayed session marker\n (0, react_1.useEffect)(() => {\n if (displayedSession && map) {\n cleanupMarker();\n const position = displayedSession.point;\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, displayedSession.lastMeasurementValue);\n const marker = new CustomMarker_1.CustomMarker(position, color, \"\", 12);\n marker.setMap(map);\n displayedSessionMarkerRef.current = marker;\n return cleanupMarker;\n }\n else {\n cleanupMarker();\n }\n }, [displayedSession, map, thresholds]);\n return (react_1.default.createElement(react_1.default.Fragment, null, rectanglePoint && (react_1.default.createElement(MapOverlay_1.default, { position: rectanglePoint }, rectangleLoading || !rectangleData ? (react_1.default.createElement(RectangleInfo_1.RectangleInfoLoading, null)) : (react_1.default.createElement(RectangleInfo_1.RectangleInfo, { color: (0, thresholdColors_1.getColorForValue)(thresholds, rectangleData.average), rectangleData: rectangleData }))))));\n};\nexports.CrowdMapMarkers = CrowdMapMarkers;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomMarker = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_dom_1 = require(\"react-dom\");\nconst client_1 = require(\"react-dom/client\");\nconst react_redux_1 = require(\"react-redux\");\nconst index_1 = __importDefault(require(\"../../../../../store/index\"));\nconst NotesPopover_1 = require(\"../NotesPopover/NotesPopover\");\nclass CustomMarker extends google.maps.OverlayView {\n constructor(position, color, title, size = 12, clickableAreaSize = 20, paneName = \"overlayMouseTarget\", notes = [], content, onClick) {\n super();\n this.div = null;\n this.pulsating = false;\n this.zIndex = 0;\n this.noteContainers = new Map();\n this.notesPopover = null;\n this.position = new google.maps.LatLng(position);\n this.color = color;\n this.title = title;\n this.size = size;\n this.content = content;\n this.onClick = onClick;\n this.clickableAreaSize = clickableAreaSize;\n this.paneName = paneName;\n this.notes = notes;\n }\n onAdd() {\n this.div = document.createElement(\"div\");\n this.div.style.position = \"absolute\";\n this.div.style.cursor = \"pointer\";\n this.div.title = this.title;\n this.div.style.width = `${this.clickableAreaSize}px`;\n this.div.style.height = `${this.clickableAreaSize}px`;\n const innerDiv = document.createElement(\"div\");\n innerDiv.style.width = `${this.size}px`;\n innerDiv.style.height = `${this.size}px`;\n innerDiv.style.borderRadius = \"50%\";\n innerDiv.style.backgroundColor = this.color;\n innerDiv.style.position = \"absolute\";\n innerDiv.style.top = \"50%\";\n innerDiv.style.left = \"50%\";\n innerDiv.style.transform = \"translate(-50%, -50%)\";\n this.div.appendChild(innerDiv);\n if (this.content) {\n this.root = (0, client_1.createRoot)(this.div);\n this.root.render(react_1.default.createElement(react_redux_1.Provider, { store: index_1.default }, this.content));\n }\n if (this.onClick) {\n this.div.addEventListener(\"click\", this.onClick);\n }\n if (this.pulsating) {\n this.div.classList.add(\"pulsating-marker\");\n }\n if (this.notes && this.notes.length > 0) {\n const noteContainer = document.createElement(\"div\");\n noteContainer.setAttribute(\"data-note-container\", \"marker\");\n noteContainer.style.position = \"absolute\";\n noteContainer.style.top = \"-35px\";\n noteContainer.style.left = \"0px\";\n const root = (0, client_1.createRoot)(noteContainer);\n root.render(react_1.default.createElement(react_redux_1.Provider, { store: index_1.default },\n react_1.default.createElement(NotesPopover_1.NotesPopover, { notes: this.notes })));\n this.div.appendChild(noteContainer);\n this.noteContainers.set(\"marker\", root);\n }\n const panes = this.getPanes();\n const pane = panes ? panes[this.paneName] : null;\n pane && pane.appendChild(this.div);\n }\n draw() {\n if (!this.div)\n return;\n const overlayProjection = this.getProjection();\n const position = overlayProjection.fromLatLngToDivPixel(this.position);\n if (position) {\n const offsetX = this.clickableAreaSize / 2;\n const offsetY = this.clickableAreaSize / 2;\n this.div.style.left = `${position.x - offsetX}px`;\n this.div.style.top = `${position.y - offsetY}px`;\n }\n }\n onRemove() {\n setTimeout(() => {\n var _a;\n if (this.div) {\n if (this.onClick) {\n this.div.removeEventListener(\"click\", this.onClick);\n }\n (_a = this.div.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(this.div);\n this.div = null;\n }\n // Clean up note containers\n this.noteContainers.forEach((root) => {\n try {\n root.unmount();\n }\n catch (e) {\n console.warn(\"Error unmounting note container:\", e);\n }\n });\n this.noteContainers.clear();\n }, 0);\n }\n setPosition(position) {\n this.position =\n position instanceof google.maps.LatLng\n ? position\n : new google.maps.LatLng(position.lat, position.lng);\n this.draw();\n }\n setColor(color) {\n this.color = color;\n if (this.div) {\n const innerDiv = this.div.firstChild;\n if (innerDiv) {\n innerDiv.style.backgroundColor = color;\n }\n }\n }\n setTitle(title) {\n this.title = title;\n if (this.div) {\n this.div.title = title;\n }\n }\n setSize(size) {\n this.size = size;\n if (this.div) {\n const innerDiv = this.div.firstChild;\n if (innerDiv) {\n innerDiv.style.width = `${size}px`;\n innerDiv.style.height = `${size}px`;\n }\n }\n }\n setClickableAreaSize(size) {\n this.clickableAreaSize = size;\n if (this.div) {\n this.div.style.width = `${size}px`;\n this.div.style.height = `${size}px`;\n this.draw();\n }\n }\n getPosition() {\n return this.position;\n }\n getContent() {\n return this.content;\n }\n setContent(content) {\n this.content = content;\n if (this.div) {\n if (!this.root) {\n this.root = (0, client_1.createRoot)(this.div);\n }\n (0, react_dom_1.unstable_batchedUpdates)(() => {\n this.root.render(react_1.default.createElement(react_redux_1.Provider, { store: index_1.default }, this.content));\n });\n }\n }\n setZIndex(zIndex) {\n this.zIndex = zIndex;\n if (this.div) {\n this.div.style.zIndex = zIndex.toString();\n }\n }\n setPulsating(pulsating) {\n this.pulsating = pulsating;\n if (this.div) {\n if (this.pulsating) {\n this.div.classList.add(\"pulsating-marker\");\n }\n else {\n this.div.classList.remove(\"pulsating-marker\");\n }\n }\n }\n isPulsating() {\n return this.pulsating;\n }\n setNotes(notes) {\n this.notes = notes;\n // Schedule cleanup and update for next tick\n setTimeout(() => {\n // Clean up existing note containers\n this.noteContainers.forEach((root) => {\n try {\n root.unmount();\n }\n catch (e) {\n console.warn(\"Error unmounting note container:\", e);\n }\n });\n this.noteContainers.clear();\n // Only add new note container if there are notes at this marker's position\n if (this.notes && this.notes.length > 0 && this.div) {\n const noteContainer = document.createElement(\"div\");\n noteContainer.setAttribute(\"data-note-container\", \"marker\");\n noteContainer.style.position = \"absolute\";\n noteContainer.style.top = \"-45px\";\n noteContainer.style.left = \"15px\";\n const root = (0, client_1.createRoot)(noteContainer);\n root.render(react_1.default.createElement(react_redux_1.Provider, { store: index_1.default },\n react_1.default.createElement(NotesPopover_1.NotesPopover, { notes: this.notes })));\n this.div.appendChild(noteContainer);\n this.noteContainers.set(\"marker\", root);\n }\n this.draw();\n }, 0);\n }\n clearNotes() {\n // Clear all note containers in one batch\n this.noteContainers.forEach((root) => {\n root.unmount();\n });\n this.noteContainers.clear();\n // Remove note elements\n if (this.div) {\n const noteElements = this.div.querySelectorAll(\"[data-note-container]\");\n noteElements.forEach((el) => el.remove());\n }\n if (this.notesPopover) {\n this.notesPopover.remove();\n this.notesPopover = null;\n }\n }\n cleanup() {\n this.setMap(null);\n // Batch cleanup operations\n if (this.div) {\n if (this.onClick) {\n this.div.removeEventListener(\"click\", this.onClick);\n }\n // Clear notes first\n this.clearNotes();\n // Remove main div\n if (this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n }\n this.div = null;\n }\n }\n}\nexports.CustomMarker = CustomMarker;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = require(\"react\");\nconst react_dom_1 = __importDefault(require(\"react-dom\"));\nconst MapOverlay = ({ position, children }) => {\n const map = (0, react_google_maps_1.useMap)();\n const overlayRef = (0, react_1.useRef)(null);\n const containerElementRef = (0, react_1.useRef)(null);\n (0, react_1.useEffect)(() => {\n if (!map)\n return;\n class CustomOverlay extends google.maps.OverlayView {\n constructor() {\n super(...arguments);\n this.div = null;\n }\n onAdd() {\n this.div = document.createElement(\"div\");\n this.div.style.position = \"absolute\";\n containerElementRef.current = this.div;\n const panes = this.getPanes();\n panes === null || panes === void 0 ? void 0 : panes.overlayMouseTarget.appendChild(this.div);\n }\n draw() {\n if (!this.div)\n return;\n const overlayProjection = this.getProjection();\n const point = overlayProjection.fromLatLngToDivPixel(new google.maps.LatLng(position));\n if (point) {\n this.div.style.left = `${point.x}px`;\n this.div.style.top = `${point.y}px`;\n this.div.style.transform = \"translate(-50%, -100%)\";\n }\n }\n onRemove() {\n var _a;\n if (this.div) {\n (_a = this.div.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(this.div);\n this.div = null;\n containerElementRef.current = null;\n }\n }\n }\n overlayRef.current = new CustomOverlay();\n overlayRef.current.setMap(map);\n return () => {\n var _a;\n (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.setMap(null);\n overlayRef.current = null;\n };\n }, [map, position]);\n return containerElementRef.current\n ? react_dom_1.default.createPortal(children, containerElementRef.current)\n : null;\n};\nexports.default = MapOverlay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LabelOverlay = void 0;\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nclass LabelOverlay extends google.maps.OverlayView {\n constructor(position, color, value, unitSymbol, isSelected, onClick, zIndex = 1000) {\n super();\n this.div = null;\n this.position = position;\n this.color = color;\n this.value = value;\n this.unitSymbol = unitSymbol;\n this.isSelected = isSelected;\n this.onClick = onClick;\n this.zIndex = zIndex;\n }\n onAdd() {\n this.div = document.createElement(\"div\");\n this.div.style.position = \"absolute\";\n this.div.style.transform = \"translate(-13%, 0)\";\n this.div.style.cursor = \"pointer\";\n this.div.style.zIndex = \"3\";\n this.applyStyles();\n this.div.addEventListener(\"click\", this.onClick);\n const panes = this.getPanes();\n panes && panes.overlayMouseTarget.appendChild(this.div);\n }\n draw() {\n if (!this.div)\n return;\n const overlayProjection = this.getProjection();\n const pos = overlayProjection.fromLatLngToDivPixel(this.position);\n if (pos) {\n this.div.style.left = `${pos.x}px`;\n this.div.style.top = `${pos.y}px`;\n }\n }\n onRemove() {\n if (this.div) {\n this.div.removeEventListener(\"click\", this.onClick);\n if (this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n }\n this.div = null;\n }\n }\n update(isSelected, color, value, unitSymbol) {\n this.isSelected = isSelected;\n this.color = color;\n this.value = value;\n this.unitSymbol = unitSymbol;\n this.applyStyles();\n }\n setZIndex(zIndex) {\n this.zIndex = zIndex;\n this.applyStyles();\n }\n applyStyles() {\n if (!this.div)\n return;\n this.div.innerHTML = \"\";\n const labelContainer = document.createElement(\"div\");\n labelContainer.style.display = \"flex\";\n labelContainer.style.backgroundColor = colors_1.white;\n labelContainer.style.borderRadius = \"10px\";\n labelContainer.style.padding = \"0 6px 0 4px\";\n labelContainer.style.height = \"20px\";\n labelContainer.style.boxShadow = \"0 2px 4px rgba(0, 0, 0, 0.1)\";\n labelContainer.style.border = this.isSelected\n ? `1px solid ${this.color}`\n : \"none\";\n labelContainer.style.position = \"relative\";\n labelContainer.style.transform = \"translateY(-10px)\";\n labelContainer.style.whiteSpace = \"nowrap\";\n labelContainer.style.alignItems = \"center\";\n labelContainer.style.justifyContent = \"center\";\n labelContainer.style.cursor = \"pointer\";\n labelContainer.style.zIndex = this.zIndex.toString();\n const circle = document.createElement(\"div\");\n circle.style.width = \"12px\";\n circle.style.height = \"12px\";\n circle.style.borderRadius = \"50%\";\n circle.style.backgroundColor = this.color;\n circle.style.marginRight = \"6px\";\n circle.style.flexShrink = \"0\";\n const textElement = document.createElement(\"span\");\n textElement.style.fontSize = \"12px\";\n textElement.style.fontWeight = \"400\";\n textElement.style.fontFamily = \"Roboto, Arial, sans-serif\";\n textElement.style.letterSpacing = \"0.14px\";\n textElement.style.color = colors_1.gray400;\n textElement.innerText = `${Math.round(this.value)} ${this.unitSymbol}`;\n textElement.style.alignSelf = \"center\";\n labelContainer.appendChild(circle);\n labelContainer.appendChild(textElement);\n this.div.appendChild(labelContainer);\n labelContainer.style.boxShadow = \"0 2px 6px rgba(0, 0, 0, 0.15)\";\n }\n getDiv() {\n return this.div;\n }\n}\nexports.LabelOverlay = LabelOverlay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomMarkerOverlay = void 0;\nclass CustomMarkerOverlay extends google.maps.OverlayView {\n constructor(position, color, isSelected, shouldPulse) {\n super();\n this.div = null;\n this.position = position;\n this.color = color;\n this.isSelected = isSelected;\n this.shouldPulse = shouldPulse;\n }\n getIsSelected() {\n return this.isSelected;\n }\n getShouldPulse() {\n return this.shouldPulse;\n }\n getColor() {\n return this.color;\n }\n setColor(color) {\n this.color = color;\n this.update();\n }\n onAdd() {\n this.div = document.createElement(\"div\");\n this.div.style.position = \"absolute\";\n this.div.style.transform = \"translate(-50%, -50%)\";\n this.div.style.pointerEvents = \"none\";\n this.div.style.cursor = \"none\";\n this.applyStyles();\n const panes = this.getPanes();\n panes && panes.overlayLayer.appendChild(this.div);\n }\n setIsSelected(isSelected) {\n this.isSelected = isSelected;\n this.update();\n }\n setShouldPulse(shouldPulse) {\n this.shouldPulse = shouldPulse;\n this.update();\n }\n update() {\n if (this.div) {\n this.applyStyles();\n }\n }\n draw() {\n if (!this.div)\n return;\n const overlayProjection = this.getProjection();\n const pos = overlayProjection.fromLatLngToDivPixel(this.position);\n if (pos) {\n this.div.style.left = `${pos.x}px`;\n this.div.style.top = `${pos.y}px`;\n }\n }\n onRemove() {\n if (this.div && this.div.parentNode) {\n this.div.parentNode.removeChild(this.div);\n this.div = null;\n }\n }\n applyStyles() {\n if (!this.div)\n return;\n const size = this.isSelected ? 44 : 36;\n const blurValue = this.isSelected ? 0 : 3;\n const opacityValue = this.isSelected ? 0.4 : 0.8;\n this.div.style.width = `${size}px`;\n this.div.style.height = `${size}px`;\n this.div.style.borderRadius = \"50%\";\n this.div.style.backgroundColor = this.color;\n this.div.style.opacity = `${opacityValue}`;\n this.div.style.filter = `blur(${blurValue}px)`;\n this.div.style.transition = \"transform 0.3s ease-out\";\n if (this.shouldPulse) {\n this.div.style.animation = `pulse-animation 2s infinite`;\n }\n else {\n this.div.style.animation = \"\";\n }\n }\n}\nexports.CustomMarkerOverlay = CustomMarkerOverlay;\nconst styleSheetId = \"custom-marker-overlay-styles\";\nif (!document.getElementById(styleSheetId)) {\n const styleSheet = document.createElement(\"style\");\n styleSheet.type = \"text/css\";\n styleSheet.id = styleSheetId;\n styleSheet.innerText = `\n @keyframes pulse-animation {\n 0% {\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n 50% {\n transform: translate(-50%, -50%) scale(1.6);\n opacity: 0.8;\n }\n 100% {\n transform: translate(-50%, -50%) scale(1);\n opacity: 1;\n }\n }\n `;\n document.head.appendChild(styleSheet);\n}\n","\"use strict\";\n\"use client\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DormantMarkers = void 0;\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = __importStar(require(\"react\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst fixedStreamSelectors_1 = require(\"../../../../store/fixedStreamSelectors\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../../store/mapSlice\");\nconst markersLoadingSlice_1 = require(\"../../../../store/markersLoadingSlice\");\nconst CustomMarker_1 = require(\"./CustomOverlays/CustomMarker\");\nconst HoverMarker_1 = __importDefault(require(\"./HoverMarker/HoverMarker\"));\nconst ZOOM_FOR_SELECTED_SESSION = 15;\nconst CLICKABLE_AREA_SIZE = 20;\nconst DormantMarkers = ({ sessions, onMarkerClick, selectedStreamId, pulsatingSessionId, }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const hoverStreamId = (0, hooks_1.useAppSelector)(mapSlice_1.selectHoverStreamId);\n const fixedStreamStatus = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamStatus);\n const fixedStreamData = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamData);\n const markerRefs = (0, react_1.useRef)(new Map());\n const map = (0, react_google_maps_1.useMap)();\n const [hoverPosition, setHoverPosition] = (0, react_1.useState)(null);\n const memoizedSessions = (0, react_1.useMemo)(() => sessions, [sessions]);\n const centerMapOnMarker = (0, react_1.useCallback)((position) => {\n if (map && selectedStreamId) {\n map.setCenter(position);\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n }, [map, selectedStreamId]);\n const createMarker = (0, react_1.useCallback)((session) => {\n const position = session.point;\n const color = colors_1.gray300;\n const title = \"\";\n const size = 12;\n const shouldPulse = session.id === pulsatingSessionId;\n const marker = new CustomMarker_1.CustomMarker(position, color, title, size, CLICKABLE_AREA_SIZE, undefined, undefined, undefined, () => {\n onMarkerClick(Number(session.point.streamId), Number(session.id));\n centerMapOnMarker(position);\n hideOtherMarkers(session.point.streamId);\n });\n marker.setPulsating(shouldPulse);\n marker.setMap(map);\n return marker;\n }, [map, onMarkerClick, centerMapOnMarker, pulsatingSessionId]);\n const hideOtherMarkers = (0, react_1.useCallback)((selectedStreamId) => {\n markerRefs.current.forEach((marker, streamId) => {\n if (streamId !== selectedStreamId) {\n marker.setMap(null);\n }\n });\n }, []);\n const showAllMarkers = (0, react_1.useCallback)(() => {\n markerRefs.current.forEach((marker) => {\n marker.setMap(map);\n });\n }, [map]);\n (0, react_1.useEffect)(() => {\n if (!map)\n return;\n sessions.forEach((session) => {\n const markerId = session.point.streamId;\n let marker = markerRefs.current.get(markerId);\n if (!marker) {\n marker = createMarker(session);\n markerRefs.current.set(markerId, marker);\n }\n else {\n marker.setPosition(session.point);\n marker.setPulsating(session.id === pulsatingSessionId);\n }\n });\n const sessionStreamIds = new Set(sessions.map((s) => s.point.streamId));\n markerRefs.current.forEach((marker, markerId) => {\n if (!sessionStreamIds.has(markerId)) {\n marker.setMap(null);\n markerRefs.current.delete(markerId);\n }\n });\n return () => {\n markerRefs.current.forEach((marker) => marker.setMap(null));\n markerRefs.current.clear();\n };\n }, [sessions, map, createMarker, pulsatingSessionId]);\n (0, react_1.useEffect)(() => {\n const handleSelectedStreamId = (streamId) => {\n if (!streamId || fixedStreamStatus === \"PENDING\" /* StatusEnum.Pending */) {\n showAllMarkers();\n return;\n }\n const { latitude, longitude } = fixedStreamData.stream;\n if (latitude && longitude) {\n const fixedStreamPosition = { lat: latitude, lng: longitude };\n centerMapOnMarker(fixedStreamPosition);\n hideOtherMarkers(streamId.toString());\n }\n else {\n console.error(`Stream ID ${streamId} not found or missing latitude/longitude in fixedStream data.`);\n }\n };\n handleSelectedStreamId(selectedStreamId);\n }, [\n selectedStreamId,\n fixedStreamData,\n fixedStreamStatus,\n centerMapOnMarker,\n hideOtherMarkers,\n showAllMarkers,\n ]);\n (0, react_1.useEffect)(() => {\n if (hoverStreamId) {\n const hoveredSession = memoizedSessions.find((session) => Number(session.point.streamId) === hoverStreamId);\n if (hoveredSession) {\n setHoverPosition(hoveredSession.point);\n }\n }\n else {\n setHoverPosition(null);\n }\n }, [hoverStreamId, memoizedSessions]);\n (0, react_1.useEffect)(() => {\n if (markerRefs.current.size >= sessions.length) {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n }\n }, [dispatch, sessions.length]);\n return hoverPosition ? react_1.default.createElement(HoverMarker_1.default, { position: hoverPosition }) : null;\n};\nexports.DormantMarkers = DormantMarkers;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FixedMarkers = void 0;\nconst markerclusterer_1 = require(\"@googlemaps/markerclusterer\");\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = __importStar(require(\"react\"));\nconst clusterSlice_1 = require(\"../../../../store/clusterSlice\");\nconst fixedStreamSelectors_1 = require(\"../../../../store/fixedStreamSelectors\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../../store/mapSlice\");\nconst markersLoadingSlice_1 = require(\"../../../../store/markersLoadingSlice\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst getClusterPixelPosition_1 = require(\"../../../../utils/getClusterPixelPosition\");\nconst mapEventListeners_1 = __importDefault(require(\"../../../../utils/mapEventListeners\"));\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst thresholdColors_1 = require(\"../../../../utils/thresholdColors\");\nconst ClusterInfo_1 = require(\"./ClusterInfo/ClusterInfo\");\nconst userStates_1 = require(\"../../../../types/userStates\");\nconst HoverMarker_1 = __importDefault(require(\"./HoverMarker/HoverMarker\"));\nconst clusterCalculations_1 = require(\"./ClusterMarker/clusterCalculations\");\nconst clusterOverlay_1 = require(\"./ClusterMarker/clusterOverlay\");\nconst customMarkerLabel_1 = require(\"./CustomOverlays/customMarkerLabel\");\nconst customMarkerOverlay_1 = require(\"./CustomOverlays/customMarkerOverlay\");\nconst gridClusterAlgorithm_1 = require(\"./gridClusterAlgorithm\");\nconst ZOOM_FOR_SELECTED_SESSION = 15;\nfunction FixedMarkers({ sessions, onMarkerClick, selectedStreamId, pulsatingSessionId, onClusterClick, }) {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { unitSymbol, currentUserSettings } = (0, mapParamsHandler_1.useMapParams)();\n const map = (0, react_google_maps_1.useMap)();\n // Redux selectors\n const hoverStreamId = (0, hooks_1.useAppSelector)(mapSlice_1.selectHoverStreamId);\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const clusterVisible = (0, hooks_1.useAppSelector)((state) => state.cluster.visible);\n const fixedStreamData = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamData);\n const fixedStreamStatus = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamStatus);\n const clusterAverage = (0, hooks_1.useAppSelector)((state) => state.cluster.clusterAverage);\n const clusterSize = (0, hooks_1.useAppSelector)((state) => state.cluster.clusterSize);\n // Refs\n const clustererRef = (0, react_1.useRef)(null);\n const markerRefs = (0, react_1.useRef)(new Map());\n const markerOverlays = (0, react_1.useRef)(new Map());\n const labelOverlays = (0, react_1.useRef)(new Map());\n const clusterOverlaysRef = (0, react_1.useRef)(new Map());\n const previousZoomRef = (0, react_1.useRef)(null);\n const initialCenterRef = (0, react_1.useRef)(false);\n // State variables\n const [hoverPosition, setHoverPosition] = (0, react_1.useState)(null);\n const [selectedCluster, setSelectedCluster] = (0, react_1.useState)(null);\n const [clusterPosition, setClusterPosition] = (0, react_1.useState)(null);\n const [clusterDataLoading, setClusterDataLoading] = (0, react_1.useState)(false);\n // Memoized values\n const memoizedSessions = (0, react_1.useMemo)(() => sessions, [sessions]);\n const isLoading = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectIsLoading);\n // Refs for event handlers\n const onMarkerClickRef = (0, react_1.useRef)(onMarkerClick);\n (0, react_1.useEffect)(() => {\n onMarkerClickRef.current = onMarkerClick;\n initialCenterRef.current = false;\n }, [onMarkerClick]);\n // Utility functions\n const centerMapOnMarker = (0, react_1.useCallback)((position) => {\n if (map) {\n map.panTo(position);\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n }, [map]);\n const handleClusterClickInternal = (0, react_1.useCallback)((event, cluster) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n dispatch((0, clusterSlice_1.setVisibility)(false));\n if (map) {\n const pixelPosition = (0, getClusterPixelPosition_1.getClusterPixelPosition)(map, cluster.position);\n setClusterPosition({ top: pixelPosition.y, left: pixelPosition.x });\n }\n setClusterDataLoading(true);\n setSelectedCluster(cluster);\n if (cluster.markers) {\n const average = (0, clusterCalculations_1.calculateClusterAverage)(cluster.markers);\n dispatch((0, clusterSlice_1.setAverage)(average));\n dispatch((0, clusterSlice_1.setSize)(((_a = cluster.markers) === null || _a === void 0 ? void 0 : _a.length) || 0));\n }\n setClusterDataLoading(false);\n dispatch((0, clusterSlice_1.setVisibility)(true));\n onClusterClick === null || onClusterClick === void 0 ? void 0 : onClusterClick(cluster);\n }), [dispatch, map, onClusterClick]);\n const handleClusteringEnd = (0, react_1.useCallback)(() => {\n var _a;\n const currentZoom = (_a = map === null || map === void 0 ? void 0 : map.getZoom()) !== null && _a !== void 0 ? _a : null;\n if (currentZoom === previousZoomRef.current) {\n return;\n }\n previousZoomRef.current = currentZoom;\n markerRefs.current.forEach((marker) => {\n marker.clustered = false;\n });\n const clusters = clustererRef.current &&\n // @ts-ignore - clusters\n clustererRef.current.clusters;\n clusterOverlaysRef.current.forEach((overlay) => {\n overlay.setMap(null);\n });\n clusterOverlaysRef.current.clear();\n if (!clusters)\n return;\n const bounds = map === null || map === void 0 ? void 0 : map.getBounds();\n clusters.forEach((cluster) => {\n if (cluster.markers &&\n cluster.markers.length > 1 &&\n (bounds === null || bounds === void 0 ? void 0 : bounds.contains(cluster.position))) {\n cluster.markers.forEach((marker) => {\n marker.clustered = true;\n });\n const markers = cluster.markers;\n const values = markers.map((marker) => marker.value || 0);\n const average = values.reduce((sum, value) => sum + value, 0) / values.length;\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, average);\n const hasPulsatingSession = pulsatingSessionId !== null &&\n markers.some((marker) => marker.sessionId === pulsatingSessionId);\n const overlay = new clusterOverlay_1.ClusterOverlay(cluster, color, hasPulsatingSession, map, handleClusterClickInternal);\n const clusterKey = `${cluster.position\n .lat()\n .toFixed(6)}_${cluster.position.lng().toFixed(6)}`;\n clusterOverlaysRef.current.set(clusterKey, overlay);\n }\n });\n }, [map, thresholds, pulsatingSessionId, handleClusterClickInternal]);\n const customRenderer = {\n render: ({ position }) => {\n return new google.maps.Marker({\n position,\n visible: false,\n });\n },\n };\n const createMarker = (0, react_1.useCallback)((session) => {\n const marker = new google.maps.Marker({\n position: session.point,\n icon: {\n url: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAEklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==\",\n },\n zIndex: Number(google.maps.Marker.MAX_ZINDEX) + 1,\n });\n marker.value = session.averageValue;\n marker.sessionId = session.id;\n marker.userData = { streamId: session.point.streamId };\n marker.clustered = false;\n marker.addListener(\"click\", () => {\n onMarkerClickRef.current(Number(session.point.streamId), Number(session.id));\n centerMapOnMarker(session.point);\n });\n return marker;\n }, [centerMapOnMarker]);\n const handleMapInteraction = (0, react_1.useCallback)(() => {\n dispatch((0, clusterSlice_1.setVisibility)(false));\n setSelectedCluster(null);\n setClusterPosition(null);\n }, [dispatch]);\n const handleBoundsChanged = (0, react_1.useCallback)(() => {\n if (selectedCluster && map) {\n const pixelPosition = (0, getClusterPixelPosition_1.getClusterPixelPosition)(map, selectedCluster.position);\n setClusterPosition({ top: pixelPosition.y, left: pixelPosition.x });\n }\n }, [map, selectedCluster]);\n (0, mapEventListeners_1.default)(map, {\n click: handleMapInteraction,\n touchend: handleMapInteraction,\n dragstart: handleMapInteraction,\n bounds_changed: handleBoundsChanged,\n });\n const handleZoomIn = (0, react_1.useCallback)(() => {\n var _a;\n if (map && selectedCluster) {\n const bounds = new google.maps.LatLngBounds();\n (_a = selectedCluster.markers) === null || _a === void 0 ? void 0 : _a.forEach((marker) => {\n const position = \"getPosition\" in marker ? marker.getPosition() : marker.position;\n if (position) {\n bounds.extend(position);\n }\n });\n map.fitBounds(bounds);\n map.panToBounds(bounds);\n google.maps.event.addListenerOnce(map, \"idle\", () => {\n const currentZoom = map.getZoom();\n if (currentZoom !== undefined) {\n map.setZoom(Math.max(currentZoom - 1, 0));\n }\n });\n handleMapInteraction();\n setSelectedCluster(null);\n dispatch((0, clusterSlice_1.setVisibility)(false));\n }\n }, [map, selectedCluster, handleMapInteraction, dispatch]);\n const updateClusterOverlays = (0, react_1.useCallback)(() => {\n clusterOverlaysRef.current.forEach((overlay) => {\n const cluster = overlay.cluster;\n const markers = cluster.markers;\n const hasPulsatingSession = pulsatingSessionId !== null &&\n markers.some((marker) => marker.sessionId === pulsatingSessionId);\n overlay.setShouldPulse(hasPulsatingSession);\n });\n }, [pulsatingSessionId]);\n const isMarkerInViewport = (0, react_1.useCallback)((marker) => {\n if (!map)\n return false;\n const bounds = map.getBounds();\n return bounds ? bounds.contains(marker.getPosition()) : false;\n }, [map]);\n const updateMarkerOverlays = (0, react_1.useCallback)(() => {\n const bounds = map === null || map === void 0 ? void 0 : map.getBounds();\n markerRefs.current.forEach((marker, streamId) => {\n var _a;\n const isVisible = bounds ? bounds.contains(marker.getPosition()) : false;\n const isSelected = ((_a = marker.userData) === null || _a === void 0 ? void 0 : _a.streamId) === (selectedStreamId === null || selectedStreamId === void 0 ? void 0 : selectedStreamId.toString());\n const shouldPulse = marker.sessionId === pulsatingSessionId && !marker.clustered;\n const newColor = (0, thresholdColors_1.getColorForValue)(thresholds, marker.value);\n const existingOverlay = markerOverlays.current.get(streamId);\n const existingLabelOverlay = labelOverlays.current.get(streamId);\n const position = marker.getPosition();\n if (marker.clustered || !isVisible) {\n if (existingOverlay) {\n existingOverlay.setMap(null);\n markerOverlays.current.delete(streamId);\n }\n if (existingLabelOverlay) {\n existingLabelOverlay.setMap(null);\n labelOverlays.current.delete(streamId);\n }\n }\n else {\n // Ensure overlays are present and updated\n if (!existingOverlay) {\n const overlay = new customMarkerOverlay_1.CustomMarkerOverlay(position, newColor, isSelected, shouldPulse);\n overlay.setMap(map);\n markerOverlays.current.set(streamId, overlay);\n }\n else {\n existingOverlay.setIsSelected(isSelected);\n existingOverlay.setShouldPulse(shouldPulse);\n existingOverlay.setColor(newColor);\n existingOverlay.update();\n }\n if (!existingLabelOverlay) {\n const labelOverlay = new customMarkerLabel_1.LabelOverlay(position, newColor, marker.value, unitSymbol, isSelected, () => {\n onMarkerClickRef.current(Number(marker.userData.streamId), Number(marker.sessionId));\n if (position) {\n centerMapOnMarker({ lat: position.lat(), lng: position.lng() });\n }\n });\n labelOverlay.setMap(map);\n labelOverlays.current.set(streamId, labelOverlay);\n }\n else {\n existingLabelOverlay.update(isSelected, newColor, marker.value, unitSymbol);\n }\n }\n });\n }, [\n map,\n selectedStreamId,\n pulsatingSessionId,\n thresholds,\n unitSymbol,\n centerMapOnMarker,\n isLoading,\n ]);\n (0, react_1.useEffect)(() => {\n if (fixedStreamStatus === \"PENDING\" /* StatusEnum.Pending */)\n return;\n if (selectedStreamId === null) {\n if (!clustererRef.current && map) {\n const algorithm = new gridClusterAlgorithm_1.CustomAlgorithm();\n clustererRef.current = new markerclusterer_1.MarkerClusterer({\n map,\n markers: [],\n renderer: customRenderer,\n algorithm,\n });\n clustererRef.current.addListener(\"clusteringend\", handleClusteringEnd);\n }\n // Create markers for all sessions if they don't exist\n memoizedSessions.forEach((session) => {\n if (!markerRefs.current.has(session.point.streamId)) {\n const marker = createMarker(session);\n markerRefs.current.set(session.point.streamId, marker);\n }\n });\n // Ensure clusterer is properly initialized and has all markers\n if (clustererRef.current) {\n const allMarkers = Array.from(markerRefs.current.values());\n clustererRef.current.clearMarkers();\n clustererRef.current.addMarkers(allMarkers);\n clustererRef.current.render();\n }\n updateMarkerOverlays();\n updateClusterOverlays();\n }\n else {\n if (fixedStreamData === null || fixedStreamData === void 0 ? void 0 : fixedStreamData.stream) {\n const { latitude, longitude } = fixedStreamData.stream;\n if (latitude && longitude) {\n const fixedStreamPosition = { lat: latitude, lng: longitude };\n // Only center on first render\n if (!initialCenterRef.current) {\n centerMapOnMarker(fixedStreamPosition);\n initialCenterRef.current = true;\n }\n if (clustererRef.current) {\n clustererRef.current.clearMarkers();\n clustererRef.current.setMap(null);\n clustererRef.current = null;\n }\n markerRefs.current.forEach((marker, streamIdKey) => {\n if (streamIdKey !== selectedStreamId.toString()) {\n marker.setMap(null);\n markerRefs.current.delete(streamIdKey);\n const markerOverlay = markerOverlays.current.get(streamIdKey);\n if (markerOverlay) {\n markerOverlay.setMap(null);\n markerOverlays.current.delete(streamIdKey);\n }\n const labelOverlay = labelOverlays.current.get(streamIdKey);\n if (labelOverlay) {\n labelOverlay.setMap(null);\n labelOverlays.current.delete(streamIdKey);\n }\n }\n });\n const selectedMarker = markerRefs.current.get(selectedStreamId.toString());\n if (!selectedMarker) {\n const session = memoizedSessions.find((session) => session.point.streamId === selectedStreamId.toString());\n if (session) {\n const newMarker = createMarker(session);\n markerRefs.current.set(session.point.streamId, newMarker);\n newMarker.setMap(map);\n const newOverlay = new customMarkerOverlay_1.CustomMarkerOverlay(new google.maps.LatLng(latitude, longitude), (0, thresholdColors_1.getColorForValue)(thresholds, session.averageValue), true, false);\n newOverlay.setMap(map);\n markerOverlays.current.set(session.point.streamId, newOverlay);\n const newLabelOverlay = new customMarkerLabel_1.LabelOverlay(new google.maps.LatLng(latitude, longitude), (0, thresholdColors_1.getColorForValue)(thresholds, session.averageValue), session.averageValue, unitSymbol, true, () => {\n onMarkerClickRef.current(Number(session.point.streamId), Number(session.id));\n centerMapOnMarker(fixedStreamPosition);\n });\n newLabelOverlay.setMap(map);\n labelOverlays.current.set(session.point.streamId, newLabelOverlay);\n }\n }\n clusterOverlaysRef.current.forEach((overlay) => overlay.setMap(null));\n clusterOverlaysRef.current.clear();\n }\n }\n }\n }, [\n selectedStreamId,\n fixedStreamStatus,\n fixedStreamData,\n map,\n customRenderer,\n handleClusteringEnd,\n updateMarkerOverlays,\n updateClusterOverlays,\n memoizedSessions,\n createMarker,\n thresholds,\n unitSymbol,\n centerMapOnMarker,\n ]);\n (0, react_1.useEffect)(() => {\n if (!map || !clustererRef.current)\n return;\n const bounds = map.getBounds();\n const updatedMarkers = [];\n const markersToRemove = [];\n memoizedSessions.forEach((session) => {\n let marker = markerRefs.current.get(session.point.streamId);\n if (!marker) {\n marker = createMarker(session);\n markerRefs.current.set(session.point.streamId, marker);\n if (bounds === null || bounds === void 0 ? void 0 : bounds.contains(marker.getPosition())) {\n updatedMarkers.push(marker);\n }\n }\n else {\n marker.setPosition(session.point);\n marker.value = session.averageValue;\n marker.sessionId = session.id;\n }\n });\n // Identify markers to remove\n markerRefs.current.forEach((marker, streamId) => {\n if (!sessions.some((session) => session.point.streamId === streamId)) {\n markersToRemove.push(marker);\n markerRefs.current.delete(streamId);\n }\n });\n // Remove markers no longer in the sessions array\n if (markersToRemove.length > 0) {\n clustererRef.current.removeMarkers(markersToRemove);\n markersToRemove.forEach((marker) => marker.setMap(null));\n }\n // Add new markers\n if (updatedMarkers.length > 0) {\n clustererRef.current.addMarkers(updatedMarkers);\n }\n // Remove overlays for removed markers\n markersToRemove.forEach((marker) => {\n const streamId = marker.userData.streamId;\n const overlay = markerOverlays.current.get(streamId);\n if (overlay) {\n overlay.setMap(null);\n markerOverlays.current.delete(streamId);\n }\n const labelOverlay = labelOverlays.current.get(streamId);\n if (labelOverlay) {\n labelOverlay.setMap(null);\n labelOverlays.current.delete(streamId);\n }\n marker.setMap(null);\n });\n // Force clusterer update\n clustererRef.current.render();\n updateMarkerOverlays();\n updateClusterOverlays();\n }, [\n sessions,\n map,\n createMarker,\n thresholds,\n unitSymbol,\n pulsatingSessionId,\n updateMarkerOverlays,\n updateClusterOverlays,\n memoizedSessions,\n isLoading,\n ]);\n (0, react_1.useEffect)(() => {\n if (clustererRef.current) {\n clustererRef.current.addListener(\"clusteringend\", () => {\n markerRefs.current.forEach((marker) => {\n marker.clustered = false;\n });\n const clusters = clustererRef.current &&\n // @ts-ignore - clusters\n clustererRef.current.clusters;\n clusterOverlaysRef.current.forEach((overlay) => {\n overlay.setMap(null);\n });\n clusterOverlaysRef.current.clear();\n if (!clusters)\n return;\n clusters.forEach((cluster) => {\n if (cluster.markers && cluster.markers.length > 1) {\n cluster.markers.forEach((marker) => {\n marker.clustered = true;\n });\n const markers = cluster.markers;\n const values = markers.map((marker) => marker.value || 0);\n const average = values.reduce((sum, value) => sum + value, 0) / values.length;\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, average);\n const hasPulsatingSession = pulsatingSessionId !== null &&\n markers.some((marker) => marker.sessionId === pulsatingSessionId);\n const overlay = new clusterOverlay_1.ClusterOverlay(cluster, color, hasPulsatingSession, map, handleClusterClickInternal);\n const clusterKey = `${cluster.position\n .lat()\n .toFixed(6)}_${cluster.position.lng().toFixed(6)}`;\n clusterOverlaysRef.current.set(clusterKey, overlay);\n }\n });\n });\n }\n }, [\n map,\n thresholds,\n sessions,\n pulsatingSessionId,\n handleClusterClickInternal,\n isLoading,\n ]);\n (0, react_1.useEffect)(() => {\n updateMarkerOverlays();\n updateClusterOverlays();\n }, [\n pulsatingSessionId,\n selectedStreamId,\n sessions,\n updateMarkerOverlays,\n updateClusterOverlays,\n ]);\n (0, react_1.useEffect)(() => {\n if (hoverStreamId) {\n const hoveredSession = memoizedSessions.find((session) => Number(session.point.streamId) === hoverStreamId);\n if (hoveredSession) {\n setHoverPosition(hoveredSession.point);\n }\n }\n else {\n setHoverPosition(null);\n }\n }, [hoverStreamId, memoizedSessions]);\n (0, react_1.useEffect)(() => {\n if (markerRefs.current.size >= memoizedSessions.length) {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n }\n }, [dispatch, sessions.length, memoizedSessions.length]);\n // Add cleanup function\n const clearAllMarkersAndClusters = (0, react_1.useCallback)(() => {\n // Clear clusterer\n if (clustererRef.current) {\n clustererRef.current.clearMarkers();\n clustererRef.current.setMap(null);\n clustererRef.current = null;\n }\n // Clear all marker overlays\n markerOverlays.current.forEach((overlay) => {\n overlay.setMap(null);\n });\n markerOverlays.current.clear();\n // Clear all label overlays\n labelOverlays.current.forEach((overlay) => {\n overlay.setMap(null);\n });\n labelOverlays.current.clear();\n // Clear all cluster overlays\n clusterOverlaysRef.current.forEach((overlay) => {\n overlay.setMap(null);\n });\n clusterOverlaysRef.current.clear();\n // Clear all markers\n markerRefs.current.forEach((marker) => {\n marker.setMap(null);\n });\n markerRefs.current.clear();\n // Reset state\n setSelectedCluster(null);\n setClusterPosition(null);\n setHoverPosition(null);\n // Reset the initial center ref\n initialCenterRef.current = false;\n }, []);\n // Watch for mode changes using currentUserSettings\n const previousUserSettingsRef = (0, react_1.useRef)(null);\n (0, react_1.useEffect)(() => {\n const currentMode = currentUserSettings;\n const previousMode = previousUserSettingsRef.current;\n // Clear markers when switching to/from timelapse view\n if (previousMode &&\n ((previousMode === userStates_1.UserSettings.TimelapseView &&\n currentMode !== userStates_1.UserSettings.TimelapseView) ||\n (previousMode !== userStates_1.UserSettings.TimelapseView &&\n currentMode === userStates_1.UserSettings.TimelapseView))) {\n clearAllMarkersAndClusters();\n }\n previousUserSettingsRef.current = currentMode;\n // Cleanup on unmount\n return () => {\n clearAllMarkersAndClusters();\n };\n }, []);\n (0, react_1.useEffect)(() => {\n if (clustererRef.current && map) {\n // Force re-clustering\n clustererRef.current.render();\n handleClusteringEnd();\n }\n }, [map === null || map === void 0 ? void 0 : map.getZoom(), currentUserSettings, handleClusteringEnd]);\n (0, react_1.useEffect)(() => {\n if (map) {\n const listener = map.addListener(\"idle\", updateMarkerOverlays);\n return () => {\n google.maps.event.removeListener(listener);\n };\n }\n }, [map, updateMarkerOverlays]);\n return (react_1.default.createElement(react_1.default.Fragment, null,\n hoverPosition && react_1.default.createElement(HoverMarker_1.default, { position: hoverPosition }),\n clusterPosition &&\n selectedCluster &&\n (clusterDataLoading ? (react_1.default.createElement(ClusterInfo_1.ClusterInfoLoading, { position: clusterPosition, visible: true })) : (react_1.default.createElement(ClusterInfo_1.ClusterInfo, { color: (0, thresholdColors_1.getColorForValue)(thresholds, clusterAverage), average: clusterAverage, numberOfSessions: clusterSize, handleZoomIn: handleZoomIn, position: clusterPosition, visible: clusterVisible })))));\n}\nexports.FixedMarkers = FixedMarkers;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = require(\"react\");\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst CustomMarker_1 = require(\"../CustomOverlays/CustomMarker\");\nconst HoverMarker = ({ position }) => {\n const map = (0, react_google_maps_1.useMap)();\n const markerRef = (0, react_1.useRef)(null);\n const HOVER_MARKER_Z_INDEX = 3;\n (0, react_1.useEffect)(() => {\n if (!map || !position)\n return;\n if (!markerRef.current) {\n markerRef.current = new CustomMarker_1.CustomMarker(position, `${colors_1.blue}`, \"Hover Marker\", 16, 20, \"floatPane\", undefined, undefined);\n markerRef.current.setMap(map);\n markerRef.current.setZIndex(HOVER_MARKER_Z_INDEX);\n }\n else {\n markerRef.current.setPosition(position);\n markerRef.current.setZIndex(HOVER_MARKER_Z_INDEX);\n }\n return () => {\n if (markerRef.current) {\n markerRef.current.setMap(null);\n markerRef.current = null;\n }\n };\n }, [map, position]);\n return null;\n};\nexports.default = HoverMarker;\n","\"use strict\";\n\"use client\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileMarkers = void 0;\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = require(\"react\");\nconst react_redux_1 = require(\"react-redux\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst markersLoadingSlice_1 = require(\"../../../../store/markersLoadingSlice\");\nconst mobileStreamSelectors_1 = require(\"../../../../store/mobileStreamSelectors\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst thresholdColors_1 = require(\"../../../../utils/thresholdColors\");\nconst CustomMarker_1 = require(\"./CustomOverlays/CustomMarker\");\nconst customMarkerLabel_1 = require(\"./CustomOverlays/customMarkerLabel\");\nconst customMarkerOverlay_1 = require(\"./CustomOverlays/customMarkerOverlay\");\nconst MobileMarkers = ({ sessions, onMarkerClick, selectedStreamId, pulsatingSessionId, }) => {\n const DISTANCE_THRESHOLD = 21;\n const ZOOM_FOR_SELECTED_SESSION = 16;\n const LAT_DIFF_SMALL = 0.00001;\n const LAT_DIFF_MEDIUM = 0.0001;\n const LAT_ADJUST_SMALL = 0.005;\n const BASE_Z_INDEX = 1;\n const OVERLAY_Z_INDEX = 2;\n const map = (0, react_google_maps_1.useMap)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const thresholds = (0, react_redux_1.useSelector)(thresholdSlice_1.selectThresholds);\n const { unitSymbol } = (0, mapParamsHandler_1.useMapParams)();\n const mobileStreamData = (0, react_redux_1.useSelector)(mobileStreamSelectors_1.selectMobileStreamData);\n const mobileStreamStatus = (0, react_redux_1.useSelector)(mobileStreamSelectors_1.selectMobileStreamStatus);\n const markerRefs = (0, react_1.useRef)(new Map());\n const markerOverlays = (0, react_1.useRef)(new Map());\n const labelOverlays = (0, react_1.useRef)(new Map());\n const [selectedMarkerKey, setSelectedMarkerKey] = (0, react_1.useState)(null);\n const onMarkerClickRef = (0, react_1.useRef)(onMarkerClick);\n (0, react_1.useEffect)(() => {\n onMarkerClickRef.current = onMarkerClick;\n }, [onMarkerClick]);\n const areMarkersTooClose = (0, react_1.useCallback)((marker1, marker2) => {\n var _a;\n if (!map)\n return false;\n const zoom = (_a = map.getZoom()) !== null && _a !== void 0 ? _a : 0;\n const latDiff = marker1.lat - marker2.lat;\n const lngDiff = marker1.lng - marker2.lng;\n const distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);\n const pixelSize = Math.pow(2, -zoom);\n const distanceInPixels = distance / pixelSize;\n return distanceInPixels < DISTANCE_THRESHOLD;\n }, [map]);\n const centerMapOnBounds = (0, react_1.useCallback)((minLatitude, maxLatitude, minLongitude, maxLongitude) => {\n if (map && !selectedMarkerKey) {\n const latDiff = maxLatitude - minLatitude;\n const lngDiff = maxLongitude - minLongitude;\n if (latDiff < LAT_DIFF_SMALL && lngDiff < LAT_DIFF_SMALL) {\n const centerLat = (maxLatitude + minLatitude) / 2;\n const centerLng = (maxLongitude + minLongitude) / 2;\n map.setCenter({ lat: centerLat, lng: centerLng });\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n else {\n let adjustedLat;\n if (latDiff >= 0 && latDiff < LAT_DIFF_SMALL) {\n adjustedLat = minLatitude - LAT_ADJUST_SMALL;\n }\n else if (latDiff >= LAT_DIFF_SMALL && latDiff < LAT_DIFF_MEDIUM) {\n adjustedLat = minLatitude - latDiff * 2;\n }\n else {\n adjustedLat = minLatitude - latDiff;\n }\n const bounds = new google.maps.LatLngBounds(new google.maps.LatLng(adjustedLat, minLongitude), new google.maps.LatLng(maxLatitude, maxLongitude));\n map.fitBounds(bounds);\n if (latDiff === 0) {\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n }\n setSelectedMarkerKey(null);\n }\n }, [map, selectedMarkerKey]);\n const centerMapOnMarker = (0, react_1.useCallback)((position) => {\n if (map && !selectedMarkerKey) {\n map.setCenter(position);\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n setSelectedMarkerKey(null);\n }, [map, selectedMarkerKey]);\n const createMarker = (0, react_1.useCallback)((session) => {\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, session.lastMeasurementValue);\n const shouldPulse = session.id === pulsatingSessionId;\n const size = 12;\n const marker = new CustomMarker_1.CustomMarker(session.point, color, \"\", size, size, \"overlayMouseTarget\", undefined, undefined, () => {\n const isCurrentlySelected = selectedStreamId === Number(session.point.streamId);\n onMarkerClickRef.current(isCurrentlySelected ? null : Number(session.point.streamId), isCurrentlySelected ? null : Number(session.id), !isCurrentlySelected);\n if (!isCurrentlySelected) {\n centerMapOnMarker(session.point);\n }\n });\n marker.setPulsating(shouldPulse);\n marker.setZIndex(BASE_Z_INDEX);\n return marker;\n }, [\n thresholds,\n pulsatingSessionId,\n onMarkerClick,\n centerMapOnMarker,\n selectedStreamId,\n ]);\n const updateMarkers = (0, react_1.useCallback)(() => {\n markerRefs.current.forEach((marker, streamId) => {\n const session = sessions.find((s) => s.point.streamId === streamId);\n if (!session)\n return;\n const isSelected = streamId === (selectedStreamId === null || selectedStreamId === void 0 ? void 0 : selectedStreamId.toString());\n const shouldPulse = session.id === pulsatingSessionId;\n const isOverlapping = sessions.some((otherSession) => otherSession.point.streamId !== streamId &&\n areMarkersTooClose(session.point, otherSession.point));\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, session.lastMeasurementValue);\n const size = 12;\n marker.setColor(color);\n marker.setSize(size);\n marker.setPulsating(shouldPulse);\n marker.setClickableAreaSize(size);\n marker.setZIndex(BASE_Z_INDEX);\n if (isOverlapping) {\n const existingOverlay = markerOverlays.current.get(streamId);\n if (existingOverlay) {\n existingOverlay.setMap(null);\n markerOverlays.current.delete(streamId);\n }\n const existingLabel = labelOverlays.current.get(streamId);\n if (existingLabel) {\n existingLabel.setMap(null);\n labelOverlays.current.delete(streamId);\n }\n }\n else {\n let overlay = markerOverlays.current.get(streamId);\n if (!overlay) {\n overlay = new customMarkerOverlay_1.CustomMarkerOverlay(marker.getPosition(), color, isSelected, shouldPulse);\n overlay.setMap(map);\n markerOverlays.current.set(streamId, overlay);\n }\n else {\n overlay.setIsSelected(isSelected);\n overlay.setShouldPulse(shouldPulse);\n overlay.setColor(color);\n overlay.update();\n }\n let labelOverlay = labelOverlays.current.get(streamId);\n if (!labelOverlay) {\n labelOverlay = new customMarkerLabel_1.LabelOverlay(marker.getPosition(), color, session.lastMeasurementValue, unitSymbol, isSelected, () => {\n const isCurrentlySelected = selectedStreamId === Number(streamId);\n onMarkerClickRef.current(isCurrentlySelected ? null : Number(streamId), isCurrentlySelected ? null : Number(session.id), !isCurrentlySelected);\n if (!isCurrentlySelected) {\n centerMapOnMarker(session.point);\n }\n });\n labelOverlay.setMap(map);\n labelOverlays.current.set(streamId, labelOverlay);\n }\n else {\n labelOverlay.update(isSelected, color, session.lastMeasurementValue, unitSymbol);\n }\n labelOverlay.setZIndex(OVERLAY_Z_INDEX);\n }\n });\n }, [\n sessions,\n selectedStreamId,\n pulsatingSessionId,\n thresholds,\n unitSymbol,\n areMarkersTooClose,\n map,\n onMarkerClick,\n centerMapOnMarker,\n ]);\n (0, react_1.useEffect)(() => {\n if (selectedStreamId && mobileStreamStatus !== \"PENDING\" /* StatusEnum.Pending */) {\n const { minLatitude, maxLatitude, minLongitude, maxLongitude } = mobileStreamData;\n if (minLatitude && maxLatitude && minLongitude && maxLongitude) {\n centerMapOnBounds(minLatitude, maxLatitude, minLongitude, maxLongitude);\n }\n }\n if (selectedStreamId === null) {\n setSelectedMarkerKey(null);\n }\n }, [\n selectedStreamId,\n mobileStreamData,\n mobileStreamStatus,\n centerMapOnBounds,\n ]);\n (0, react_1.useEffect)(() => {\n if (!selectedStreamId) {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(true));\n }\n }, [dispatch, sessions.length, selectedStreamId]);\n (0, react_1.useEffect)(() => {\n if (!map)\n return;\n const updatedMarkers = new Set();\n sessions.forEach((session) => {\n const markerId = session.point.streamId;\n updatedMarkers.add(markerId);\n let marker = markerRefs.current.get(markerId);\n if (!marker) {\n marker = createMarker(session);\n marker.setMap(map);\n markerRefs.current.set(markerId, marker);\n }\n else {\n marker.setPosition(session.point);\n }\n });\n markerRefs.current.forEach((marker, markerId) => {\n if (!updatedMarkers.has(markerId)) {\n marker.setMap(null);\n markerRefs.current.delete(markerId);\n const overlay = markerOverlays.current.get(markerId);\n if (overlay) {\n overlay.setMap(null);\n markerOverlays.current.delete(markerId);\n }\n const labelOverlay = labelOverlays.current.get(markerId);\n if (labelOverlay) {\n labelOverlay.setMap(null);\n labelOverlays.current.delete(markerId);\n }\n }\n });\n updateMarkers();\n if (!selectedStreamId && markerRefs.current.size >= sessions.length) {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n }\n }, [sessions, map, createMarker, updateMarkers, selectedStreamId, dispatch]);\n (0, react_1.useEffect)(() => {\n return () => {\n markerRefs.current.forEach((marker) => marker.setMap(null));\n markerRefs.current.clear();\n markerOverlays.current.forEach((overlay) => overlay.setMap(null));\n markerOverlays.current.clear();\n labelOverlays.current.forEach((overlay) => overlay.setMap(null));\n labelOverlays.current.clear();\n };\n }, []);\n (0, react_1.useEffect)(() => {\n if (selectedStreamId === null) {\n setSelectedMarkerKey(null);\n updateMarkers();\n }\n }, [selectedStreamId, updateMarkers]);\n return null;\n};\nexports.MobileMarkers = MobileMarkers;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SliderDots = exports.SliderDot = exports.SliderControls = exports.SliderButtonIcon = exports.SliderButton = exports.SlideContent = exports.SlideContainer = exports.ReadMore = exports.Photo = exports.NoteWrapper = exports.NoteTextContainer = exports.NoteText = exports.NotesPopup = exports.NoteInfoContainer = exports.NoteDate = exports.NoteContainer = exports.NoteButtonIcon = exports.NoteButton = exports.DataContainer = void 0;\nconst reactjs_popup_1 = __importDefault(require(\"reactjs-popup\"));\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../../utils/media\");\nconst Typography_1 = require(\"../../../../atoms/Typography\");\nconst NoteWrapper = styled_components_1.default.div `\n position: relative;\n width: fit-content;\n`;\nexports.NoteWrapper = NoteWrapper;\nconst NoteButton = styled_components_1.default.button `\n position: absolute;\n background-color: ${colors_1.white};\n border: none;\n border-radius: 5px;\n cursor: pointer;\n width: 3rem;\n height: 3rem;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 3;\n`;\nexports.NoteButton = NoteButton;\nconst NoteButtonIcon = styled_components_1.default.img `\n width: 2rem;\n height: 2rem;\n`;\nexports.NoteButtonIcon = NoteButtonIcon;\nconst NotesPopup = (0, styled_components_1.default)(reactjs_popup_1.default) `\n &-content {\n padding: 0;\n border: none;\n background: transparent;\n width: auto;\n margin: 0;\n }\n`;\nexports.NotesPopup = NotesPopup;\nconst NoteContainer = styled_components_1.default.div `\n position: relative;\n display: flex;\n flex-direction: column;\n background: ${colors_1.white};\n border-radius: 1rem;\n padding: 1.8rem 0.8rem;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 4;\n width: min-content;\n\n @media ${media_1.media.desktop} {\n max-width: 60vw;\n width: max-content;\n }\n`;\nexports.NoteContainer = NoteContainer;\nconst SlideContainer = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nexports.SlideContainer = SlideContainer;\nconst SlideContent = styled_components_1.default.div `\n display: flex;\n flex-direction: column-reverse;\n align-items: center;\n margin: 0 1.4rem;\n\n @media ${media_1.media.desktop} {\n flex-direction: row;\n align-items: flex-start;\n }\n`;\nexports.SlideContent = SlideContent;\nconst DataContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n gap: 1.2rem;\n max-width: 40rem;\n`;\nexports.DataContainer = DataContainer;\nconst NoteInfoContainer = styled_components_1.default.div `\n display: flex;\n gap: 4px;\n`;\nexports.NoteInfoContainer = NoteInfoContainer;\nconst Photo = styled_components_1.default.img `\n width: 9rem;\n height: 9rem;\n border-radius: 4px;\n margin-top: 1.4rem;\n\n @media ${media_1.media.desktop} {\n margin-right: 1.8rem;\n margin-top: 0;\n }\n`;\nexports.Photo = Photo;\nconst SliderControls = styled_components_1.default.div `\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 0.8rem;\n padding: 0 0.8rem;\n`;\nexports.SliderControls = SliderControls;\nconst SliderButton = styled_components_1.default.button `\n background: ${colors_1.gray100};\n border-radius: 50%;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 3.2rem;\n height: 3.2rem;\n min-width: 3.2rem;\n\n &:hover {\n opacity: 0.8;\n }\n\n &:disabled {\n cursor: default;\n opacity: 0.5;\n }\n`;\nexports.SliderButton = SliderButton;\nconst SliderButtonIcon = styled_components_1.default.img `\n width: 1.6rem;\n height: 1.6rem;\n transform: ${(props) => (props.$left ? \"rotate(180deg)\" : \"none\")};\n`;\nexports.SliderButtonIcon = SliderButtonIcon;\nconst SliderDots = styled_components_1.default.div `\n display: flex;\n gap: 0.8rem;\n align-items: center;\n justify-content: center;\n flex: 1;\n`;\nexports.SliderDots = SliderDots;\nconst SliderDot = styled_components_1.default.button `\n width: 0.8rem;\n height: 0.8rem;\n border-radius: 50%;\n border: none;\n background-color: ${(props) => (props.$active ? colors_1.grey : \"#D9D9D9\")};\n cursor: pointer;\n padding: 0;\n transition: background-color 0.2s;\n\n &:hover {\n background-color: ${colors_1.grey};\n }\n`;\nexports.SliderDot = SliderDot;\nconst ReadMore = styled_components_1.default.span `\n display: block;\n color: ${colors_1.gray400};\n cursor: pointer;\n font-weight: 700;\n text-decoration: underline;\n margin-top: 0.4rem;\n`;\nexports.ReadMore = ReadMore;\nconst NoteTextContainer = styled_components_1.default.div `\n max-height: 10rem;\n max-width: 30rem;\n overflow-y: ${(props) => (props.$isScrollable ? \"auto\" : \"hidden\")};\n\n @media ${media_1.media.desktop} {\n min-height: 5.1rem;\n max-height: 25rem;\n max-width: 30rem;\n overflow-y: auto;\n }\n`;\nexports.NoteTextContainer = NoteTextContainer;\nconst NoteText = (0, styled_components_1.default)(Typography_1.H4) `\n margin-left: 0.8rem;\n`;\nexports.NoteText = NoteText;\nconst NoteDate = (0, styled_components_1.default)(NoteText) `\n white-space: nowrap;\n`;\nexports.NoteDate = NoteDate;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotesPopover = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst attachmentIcon_svg_1 = __importDefault(require(\"../../../../../assets/icons/attachmentIcon.svg\"));\nconst chevronRight_svg_1 = __importDefault(require(\"../../../../../assets/icons/chevronRight.svg\"));\nconst dateFormat_1 = require(\"../../../../../types/dateFormat\");\nconst Typography_1 = require(\"../../../../atoms/Typography\");\nconst S = __importStar(require(\"./NotesPopover.style\"));\nconst NotesPopover = ({ notes }) => {\n const [currentSlide, setCurrentSlide] = (0, react_1.useState)(0);\n const { t } = (0, react_i18next_1.useTranslation)();\n const isOneNote = notes.length === 1;\n const isMultipleNotes = notes.length > 1;\n const NOTE_CHARACTER_LIMIT = 60;\n const handlePrevSlide = () => {\n setCurrentSlide((prev) => (prev > 0 ? prev - 1 : notes.length - 1));\n };\n const handleNextSlide = () => {\n setCurrentSlide((prev) => (prev < notes.length - 1 ? prev + 1 : 0));\n };\n return (react_1.default.createElement(S.NoteWrapper, null,\n react_1.default.createElement(S.NotesPopup, { trigger: react_1.default.createElement(S.NoteButton, null,\n react_1.default.createElement(S.NoteButtonIcon, { src: attachmentIcon_svg_1.default, alt: t(\"map.note.altOpenNote\") })), position: \"top center\", repositionOnResize: true, keepTooltipInside: true, arrow: false, closeOnDocumentClick: true, offsetX: 10, offsetY: 10 }, notes.length > 0 && (react_1.default.createElement(S.NoteContainer, { \"$oneNote\": isOneNote },\n isMultipleNotes && (react_1.default.createElement(S.SliderControls, null,\n react_1.default.createElement(S.SliderDots, null, notes.map((_, index) => (react_1.default.createElement(S.SliderDot, { key: index, \"$active\": index === currentSlide, onClick: () => setCurrentSlide(index) })))))),\n react_1.default.createElement(S.SlideContainer, null,\n isMultipleNotes && (react_1.default.createElement(S.SliderButton, { onClick: handlePrevSlide },\n react_1.default.createElement(S.SliderButtonIcon, { src: chevronRight_svg_1.default, alt: t(\"map.note.altPrevious\"), \"$left\": true }))),\n react_1.default.createElement(S.SlideContent, null,\n notes[currentSlide].photo && (react_1.default.createElement(\"a\", { href: `${process.env.BASE_URL}${notes[currentSlide].photo}`, target: \"_blank\" },\n react_1.default.createElement(S.Photo, { src: `${process.env.BASE_URL}${notes[currentSlide].photoThumbnail}`, alt: t(\"map.note.altPhoto\") }))),\n react_1.default.createElement(S.DataContainer, null,\n react_1.default.createElement(S.NoteInfoContainer, null,\n react_1.default.createElement(Typography_1.H4, { \"$bold\": true }, t(\"map.note.date\")),\n react_1.default.createElement(S.NoteDate, null, moment_1.default\n .utc(notes[currentSlide].date)\n .format(dateFormat_1.DateFormat.us_with_time))),\n react_1.default.createElement(S.NoteInfoContainer, null,\n react_1.default.createElement(Typography_1.H4, { \"$bold\": true }, t(\"map.note.note\")),\n react_1.default.createElement(S.NoteTextContainer, { \"$isScrollable\": notes[currentSlide].text.length > NOTE_CHARACTER_LIMIT },\n react_1.default.createElement(S.NoteText, null, notes[currentSlide].text))))),\n isMultipleNotes && (react_1.default.createElement(S.SliderButton, { onClick: handleNextSlide },\n react_1.default.createElement(S.SliderButtonIcon, { src: chevronRight_svg_1.default, alt: t(\"map.note.altNext\") })))))))));\n};\nexports.NotesPopover = NotesPopover;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RectangleInfoText = exports.RectangleInfoHeader = exports.RectangleInfoContainer = exports.RectangleInfoColorText = exports.RectangleInfoBoldText = exports.RectangleCircle = exports.DataContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst RectangleInfoContainer = styled_components_1.default.div `\n display: grid;\n position: absolute;\n left: -21.5px;\n`;\nexports.RectangleInfoContainer = RectangleInfoContainer;\nconst DataContainer = styled_components_1.default.div `\n background-color: ${colors_1.white};\n border: 1px solid ${(props) => props.$color};\n border-radius: 2rem;\n display: flex;\n flex-direction: column;\n font-size: 1.4rem;\n font-weight: 400;\n padding: ${(props) => (props.$loading ? \"0.1rem 0.5rem\" : \"1rem\")};\n z-index: 20;\n`;\nexports.DataContainer = DataContainer;\nconst RectangleInfoHeader = styled_components_1.default.span `\n align-items: center;\n display: flex;\n gap: 5px;\n margin-bottom: ${(props) => (props.$loading ? \"0.2rem\" : \"4px\")};\n`;\nexports.RectangleInfoHeader = RectangleInfoHeader;\nconst RectangleCircle = styled_components_1.default.div `\n background-color: ${(props) => props.$color};\n border-radius: 50%;\n height: 1rem;\n width: 1rem;\n`;\nexports.RectangleCircle = RectangleCircle;\nconst RectangleInfoColorText = styled_components_1.default.span `\n color: ${(props) => props.$color};\n`;\nexports.RectangleInfoColorText = RectangleInfoColorText;\nconst RectangleInfoText = styled_components_1.default.span `\n display: flex;\n flex-direction: row;\n white-space: nowrap;\n`;\nexports.RectangleInfoText = RectangleInfoText;\nconst RectangleInfoBoldText = styled_components_1.default.span `\n color: ${colors_1.gray400};\n font-weight: 700;\n margin: 0rem 0.5rem 0rem 0rem;\n white-space: nowrap;\n`;\nexports.RectangleInfoBoldText = RectangleInfoBoldText;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RectangleInfoLoading = exports.RectangleInfo = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst mapParamsHandler_1 = require(\"../../../../../utils/mapParamsHandler\");\nconst RectangleInfo_style_1 = require(\"./RectangleInfo.style\");\nconst RectangleInfo = ({ color, rectangleData }) => {\n const { unitSymbol } = (0, mapParamsHandler_1.useMapParams)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const { average, numberOfSamples, numberOfContributors } = rectangleData;\n return (react_1.default.createElement(RectangleInfo_style_1.RectangleInfoContainer, null,\n react_1.default.createElement(RectangleInfo_style_1.DataContainer, { \"$color\": color },\n react_1.default.createElement(RectangleInfo_style_1.RectangleInfoHeader, null,\n react_1.default.createElement(RectangleInfo_style_1.RectangleCircle, { \"$color\": color }),\n react_1.default.createElement(RectangleInfo_style_1.RectangleInfoBoldText, null, `${t(\"map.rectangleInfo.average\")} ${average.toFixed(0)} ${unitSymbol} `)),\n react_1.default.createElement(RectangleInfo_style_1.RectangleInfoText, null,\n numberOfSamples,\n ` ${t(\"map.rectangleInfo.measurements\")}`),\n react_1.default.createElement(RectangleInfo_style_1.RectangleInfoText, null,\n numberOfContributors,\n ` ${t(\"map.rectangleInfo.contributors\")}`))));\n};\nexports.RectangleInfo = RectangleInfo;\nconst RectangleInfoLoading = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(RectangleInfo_style_1.RectangleInfoContainer, null,\n react_1.default.createElement(RectangleInfo_style_1.DataContainer, { \"$color\": colors_1.grey, \"$loading\": true },\n react_1.default.createElement(RectangleInfo_style_1.RectangleInfoHeader, { \"$loading\": true },\n react_1.default.createElement(RectangleInfo_style_1.RectangleCircle, { \"$color\": colors_1.grey }),\n react_1.default.createElement(RectangleInfo_style_1.RectangleInfoColorText, { \"$color\": colors_1.grey }, `${t(\"map.rectangleInfo.loading\")}`)))));\n};\nexports.RectangleInfoLoading = RectangleInfoLoading;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StreamMarkers = void 0;\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = __importStar(require(\"react\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst mapSlice_1 = require(\"../../../../store/mapSlice\");\nconst markersLoadingSlice_1 = require(\"../../../../store/markersLoadingSlice\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst thresholdColors_1 = require(\"../../../../utils/thresholdColors\");\nconst CustomMarker_1 = require(\"./CustomOverlays/CustomMarker\");\nconst HoverMarker_1 = __importDefault(require(\"./HoverMarker/HoverMarker\"));\nconst StreamMarkers = ({ sessions, unitSymbol }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const map = (0, react_google_maps_1.useMap)();\n const markersRef = (0, react_1.useRef)(new Map());\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const polylineRef = (0, react_1.useRef)(null);\n const hoverPosition = (0, hooks_1.useAppSelector)(mapSlice_1.selectHoverPosition);\n const [CustomOverlay, setCustomOverlay] = (0, react_1.useState)(null);\n const isInitialLoading = (0, react_1.useRef)(true);\n const ZOOM_FOR_SELECTED_SESSION = 16;\n const LAT_DIFF_SMALL = 0.00001;\n const LAT_DIFF_MEDIUM = 0.0001;\n const LAT_ADJUST_SMALL = 0.005;\n const sortedSessions = (0, react_1.useMemo)(() => {\n const validSessions = sessions.filter((session) => session.point &&\n typeof session.point.lat === \"number\" &&\n typeof session.point.lng === \"number\");\n const locationMap = new Map();\n validSessions.forEach((session) => {\n const locationKey = `${session.point.lat},${session.point.lng}`;\n const existingSession = locationMap.get(locationKey);\n if (!existingSession ||\n (session.time &&\n existingSession.time &&\n new Date(session.time.toString()) >\n new Date(existingSession.time.toString()))) {\n locationMap.set(locationKey, session);\n }\n });\n const sorted = Array.from(locationMap.values()).sort((a, b) => {\n const timeA = a.time ? new Date(a.time.toString()).getTime() : 0;\n const timeB = b.time ? new Date(b.time.toString()).getTime() : 0;\n return timeA - timeB;\n });\n return sorted;\n }, [sessions]);\n const handleIdle = (0, react_1.useCallback)(() => {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n }, [dispatch]);\n const firstSessionWithNotes = (0, react_1.useMemo)(() => {\n return sortedSessions.find((session) => { var _a; return session.notes && ((_a = session.notes) === null || _a === void 0 ? void 0 : _a.length) > 0; });\n }, [sortedSessions]);\n const createOrUpdateMarker = (0, react_1.useCallback)((session) => {\n if (!CustomOverlay)\n return;\n const markerId = session.id.toString();\n const position = { lat: session.point.lat, lng: session.point.lng };\n const title = `${session.lastMeasurementValue} ${unitSymbol}`;\n const shouldShowNotes = firstSessionWithNotes &&\n session.point.lat === firstSessionWithNotes.point.lat &&\n session.point.lng === firstSessionWithNotes.point.lng;\n const notes = shouldShowNotes ? session.notes || [] : [];\n let marker = markersRef.current.get(markerId);\n if (!marker) {\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, session.lastMeasurementValue);\n marker = new CustomOverlay(position, color, title, 12, 20, \"overlayMouseTarget\", notes);\n marker.setMap(map);\n markersRef.current.set(markerId, marker);\n }\n else {\n marker.setPosition(position);\n marker.setTitle(title);\n marker.setNotes(notes);\n if (marker.getMap() !== map) {\n marker.setMap(map);\n }\n }\n return marker;\n }, [map, unitSymbol, CustomOverlay, firstSessionWithNotes, thresholds]);\n (0, react_1.useEffect)(() => {\n if (window.google && window.google.maps && !CustomOverlay) {\n setCustomOverlay(() => CustomMarker_1.CustomMarker);\n }\n }, [CustomOverlay]);\n const centerMapOnBounds = (0, react_1.useCallback)((bounds) => {\n if (!map)\n return;\n const ne = bounds.getNorthEast();\n const sw = bounds.getSouthWest();\n const latDiff = ne.lat() - sw.lat();\n const lngDiff = ne.lng() - sw.lng();\n if (latDiff < LAT_DIFF_SMALL && lngDiff < LAT_DIFF_SMALL) {\n const centerLat = (ne.lat() + sw.lat()) / 2;\n const centerLng = (ne.lng() + sw.lng()) / 2;\n map.setCenter({ lat: centerLat, lng: centerLng });\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n else {\n let adjustedLat;\n if (latDiff >= 0 && latDiff < LAT_DIFF_SMALL) {\n adjustedLat = sw.lat() - LAT_ADJUST_SMALL;\n }\n else if (latDiff >= LAT_DIFF_SMALL && latDiff < LAT_DIFF_MEDIUM) {\n adjustedLat = sw.lat() - latDiff * 2;\n }\n else {\n adjustedLat = sw.lat() - latDiff;\n }\n const adjustedBounds = new google.maps.LatLngBounds(new google.maps.LatLng(adjustedLat, sw.lng()), new google.maps.LatLng(ne.lat(), ne.lng()));\n map.fitBounds(adjustedBounds);\n if (latDiff === 0) {\n map.setZoom(ZOOM_FOR_SELECTED_SESSION);\n }\n }\n }, [map]);\n (0, react_1.useEffect)(() => {\n if (!map || !CustomOverlay)\n return;\n // Clean up existing markers and polyline first\n const cleanup = () => {\n markersRef.current.forEach((marker) => {\n marker.setMap(null);\n marker.cleanup();\n });\n markersRef.current.clear();\n if (polylineRef.current) {\n polylineRef.current.setMap(null);\n polylineRef.current = null;\n }\n };\n // Always clean up before setting new markers\n cleanup();\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(true));\n isInitialLoading.current = true;\n if (sessions.length === 0) {\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n return cleanup; // Return cleanup function for useEffect\n }\n if (sortedSessions.length > 0) {\n const bounds = new google.maps.LatLngBounds();\n sortedSessions.forEach((session) => {\n bounds.extend({ lat: session.point.lat, lng: session.point.lng });\n });\n centerMapOnBounds(bounds);\n }\n requestAnimationFrame(() => {\n const activeMarkerIds = new Set();\n sortedSessions.forEach((session) => {\n const markerId = session.id.toString();\n createOrUpdateMarker(session);\n activeMarkerIds.add(markerId);\n });\n const path = sortedSessions.map((session) => ({\n lat: session.point.lat,\n lng: session.point.lng,\n }));\n if (polylineRef.current) {\n polylineRef.current.setPath(path);\n }\n else {\n polylineRef.current = new google.maps.Polyline({\n path,\n map,\n strokeColor: colors_1.mobileStreamPath,\n strokeOpacity: 0.7,\n strokeWeight: 4,\n });\n }\n markersRef.current.forEach((marker, markerId) => {\n if (!activeMarkerIds.has(markerId)) {\n marker.setMap(null);\n markersRef.current.delete(markerId);\n }\n });\n dispatch((0, markersLoadingSlice_1.setTotalMarkers)(sortedSessions.length));\n dispatch((0, markersLoadingSlice_1.setMarkersLoading)(false));\n isInitialLoading.current = false;\n const idleListener = map.addListener(\"idle\", handleIdle);\n dispatch((0, mapSlice_1.setHoverPosition)(null));\n });\n // Return cleanup function\n return cleanup;\n }, [\n map,\n sortedSessions,\n sessions,\n dispatch,\n handleIdle,\n createOrUpdateMarker,\n CustomOverlay,\n centerMapOnBounds,\n ]);\n (0, react_1.useEffect)(() => {\n markersRef.current.forEach((marker, markerId) => {\n const session = sortedSessions.find((s) => s.id.toString() === markerId);\n if (session) {\n const newColor = (0, thresholdColors_1.getColorForValue)(thresholds, session.lastMeasurementValue);\n marker.setColor(newColor);\n }\n });\n }, [thresholds, sortedSessions]);\n return !isInitialLoading.current && hoverPosition ? (react_1.default.createElement(HoverMarker_1.default, { position: hoverPosition })) : null;\n};\nexports.StreamMarkers = StreamMarkers;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimelapseMarkers = void 0;\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst react_1 = require(\"react\");\nconst react_redux_1 = require(\"react-redux\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst thresholdColors_1 = require(\"../../../../utils/thresholdColors\");\nconst clusterOverlay_1 = require(\"./ClusterMarker/clusterOverlay\");\nconst customMarkerLabel_1 = require(\"./CustomOverlays/customMarkerLabel\");\nconst customMarkerOverlay_1 = require(\"./CustomOverlays/customMarkerOverlay\");\nconst calculateZIndex = (sessions) => {\n return sessions === 1\n ? Number(google.maps.Marker.MAX_ZINDEX) + 2\n : Number(google.maps.Marker.MAX_ZINDEX) + 1;\n};\nconst createPosition = (lat, lng) => new google.maps.LatLng(lat, lng);\nconst createClusterOverlay = (key, session, color, map) => new clusterOverlay_1.ClusterOverlay({\n id: key,\n position: createPosition(session.latitude, session.longitude),\n count: session.sessions,\n}, color, false, map, () => { });\nconst createMarkerOverlay = (session, color, map) => {\n const position = createPosition(session.latitude, session.longitude);\n const markerOverlay = new customMarkerOverlay_1.CustomMarkerOverlay(position, color, false, false);\n markerOverlay.setMap(map);\n return markerOverlay;\n};\nconst createLabelOverlay = (session, color, unitSymbol, map) => {\n const position = createPosition(session.latitude, session.longitude);\n const zIndex = calculateZIndex(session.sessions);\n const labelOverlay = new customMarkerLabel_1.LabelOverlay(position, color, session.value, unitSymbol, false, () => { }, zIndex);\n labelOverlay.setMap(map);\n return labelOverlay;\n};\nconst TimelapseMarkers = ({ sessions }) => {\n const [isTimelapseActive, setIsTimelapseActive] = (0, react_1.useState)(false);\n const thresholds = (0, react_redux_1.useSelector)(thresholdSlice_1.selectThresholds);\n const { unitSymbol } = (0, mapParamsHandler_1.useMapParams)();\n const map = (0, react_google_maps_1.useMap)();\n const markersRef = (0, react_1.useRef)(new Map());\n const memoizedSessions = (0, react_1.useMemo)(() => sessions, [sessions]);\n const updateExistingMarker = (timelapseMarker, session, isCluster, color, key) => {\n if (isCluster &&\n !(timelapseMarker.markerOverlay instanceof clusterOverlay_1.ClusterOverlay)) {\n convertToCluster(timelapseMarker, session, color, key);\n }\n else if (!isCluster &&\n timelapseMarker.markerOverlay instanceof clusterOverlay_1.ClusterOverlay) {\n convertToMarker(timelapseMarker, session, color);\n }\n else {\n updateMarker(timelapseMarker, session, color, key);\n }\n };\n const convertToCluster = (timelapseMarker, session, color, key) => {\n timelapseMarker.markerOverlay.setMap(null);\n if (timelapseMarker.labelOverlay)\n timelapseMarker.labelOverlay.setMap(null);\n timelapseMarker.markerOverlay = createClusterOverlay(key, session, color, map);\n timelapseMarker.labelOverlay = null;\n };\n const convertToMarker = (timelapseMarker, session, color) => {\n timelapseMarker.markerOverlay.setMap(null);\n timelapseMarker.markerOverlay = createMarkerOverlay(session, color, map);\n timelapseMarker.labelOverlay = createLabelOverlay(session, color, unitSymbol, map);\n };\n const updateMarker = (timelapseMarker, session, color, key) => {\n if (timelapseMarker.markerOverlay instanceof clusterOverlay_1.ClusterOverlay) {\n // Create a new cluster overlay instead of updating the existing one\n timelapseMarker.markerOverlay.setMap(null);\n timelapseMarker.markerOverlay = createClusterOverlay(key, session, color, map);\n }\n else {\n timelapseMarker.markerOverlay.setColor(color);\n }\n if (timelapseMarker.labelOverlay) {\n timelapseMarker.labelOverlay.update(false, color, session.value, unitSymbol);\n }\n };\n const createNewMarker = (session, isCluster, color, key) => {\n if (isCluster) {\n markersRef.current.set(key, {\n markerOverlay: createClusterOverlay(key, session, color, map),\n labelOverlay: null,\n });\n }\n else {\n markersRef.current.set(key, {\n markerOverlay: createMarkerOverlay(session, color, map),\n labelOverlay: createLabelOverlay(session, color, unitSymbol, map),\n });\n }\n };\n const removeObsoleteMarkers = (sessionsMap) => {\n markersRef.current.forEach((timelapseMarker, key) => {\n if (!sessionsMap.has(key)) {\n timelapseMarker.markerOverlay.setMap(null);\n if (timelapseMarker.labelOverlay)\n timelapseMarker.labelOverlay.setMap(null);\n markersRef.current.delete(key);\n }\n });\n };\n (0, react_1.useEffect)(() => {\n if (!map)\n return;\n // Clear markers when timelapse is activated\n if (!isTimelapseActive) {\n markersRef.current.forEach((timelapseMarker) => {\n timelapseMarker.markerOverlay.setMap(null);\n if (timelapseMarker.labelOverlay) {\n timelapseMarker.labelOverlay.setMap(null);\n }\n });\n markersRef.current.clear();\n setIsTimelapseActive(true);\n }\n const sessionsMap = new Map(memoizedSessions.map((session) => [\n `${session.latitude}-${session.longitude}`,\n session,\n ]));\n sessionsMap.forEach((session, key) => {\n const color = (0, thresholdColors_1.getColorForValue)(thresholds, session.value);\n const isCluster = session.sessions > 1;\n let timelapseMarker = markersRef.current.get(key);\n if (timelapseMarker) {\n updateExistingMarker(timelapseMarker, session, isCluster, color, key);\n }\n else {\n createNewMarker(session, isCluster, color, key);\n }\n });\n removeObsoleteMarkers(sessionsMap);\n }, [map, memoizedSessions, thresholds, unitSymbol, isTimelapseActive]);\n (0, react_1.useEffect)(() => {\n return () => {\n // Clear all markers when component unmounts\n markersRef.current.forEach((timelapseMarker) => {\n timelapseMarker.markerOverlay.setMap(null);\n if (timelapseMarker.labelOverlay) {\n timelapseMarker.labelOverlay.setMap(null);\n }\n });\n markersRef.current.clear();\n setIsTimelapseActive(false);\n };\n }, []);\n return null;\n};\nexports.TimelapseMarkers = TimelapseMarkers;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CustomAlgorithm = void 0;\nconst markerclusterer_1 = require(\"@googlemaps/markerclusterer\");\nconst TILE_SIZE = 256;\nconst MINIMUM_CLUSTER_SIZE = 2;\nconst INITIAL_ZOOM = 7;\nclass CustomAlgorithm {\n constructor() {\n this.lastZoom = null;\n this.cachedClusters = null;\n this.hasInitialized = false;\n }\n calculate({ markers, map }) {\n const zoom = Math.round(map.getZoom() || INITIAL_ZOOM);\n this.lastZoom = zoom;\n const clusters = this.clusterMarkers(markers, zoom);\n this.cachedClusters = { clusters };\n return this.cachedClusters;\n }\n clusterMarkers(markers, zoom) {\n const grid = {};\n const gridSize = this.calculateGridSize(zoom);\n markers.forEach((marker) => {\n const position = this.getMarkerPosition(marker);\n const point = this.projectPoint(position.lat, position.lng, zoom);\n const cellX = Math.floor(point.x / gridSize);\n const cellY = Math.floor(point.y / gridSize);\n const cellKey = `${cellX}_${cellY}`;\n if (!grid[cellKey]) {\n grid[cellKey] = [];\n }\n grid[cellKey].push(marker);\n });\n const clusters = Object.values(grid).flatMap((cellMarkers) => {\n if (cellMarkers.length >= MINIMUM_CLUSTER_SIZE) {\n return [this.createCluster(cellMarkers)];\n }\n else {\n return cellMarkers.map((marker) => this.createCluster([marker]));\n }\n });\n return clusters.sort((a, b) => b.markers.length - a.markers.length);\n }\n /**\n * Projects geographic coordinates to pixel coordinates using Web Mercator projection\n * This is used to convert lat/lng points to x/y coordinates for clustering on the map\n *\n * @param lat - Latitude in degrees (-90 to 90)\n * @param lng - Longitude in degrees (-180 to 180)\n * @param zoom - Map zoom level (0 to 21)\n * @returns {Object} - Projected coordinates { x: number, y: number } in pixels\n */\n projectPoint(lat, lng, zoom) {\n // Calculate scale factor based on zoom level\n // Each zoom level doubles the scale: 2^zoom\n const scale = Math.pow(2, zoom);\n // Convert longitude to x coordinate\n const x = ((lng + 180) / 360) * TILE_SIZE * scale;\n // Convert latitude to radians for trigonometric calculations\n const latRad = (lat * Math.PI) / 180;\n // Convert latitude to y coordinate using Web Mercator projection\n // The formula preserves angles (conformal projection)\n const y = ((1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2) *\n TILE_SIZE *\n scale;\n // Return projected coordinates in pixels\n return { x, y };\n }\n calculateGridSize(zoom) {\n const baseSize = 25;\n if (zoom <= 7)\n return baseSize;\n const reductionRate = zoom >= 12 ? 3.0 : 1.3;\n const zoomOffset = zoom >= 12 ? 5 : 8;\n const exponent = Math.max(0, zoom - zoomOffset);\n return Math.max(baseSize / Math.pow(reductionRate, exponent), 5);\n }\n createCluster(markers) {\n const positions = markers.map(this.getMarkerPosition);\n const lat = positions.reduce((sum, pos) => sum + pos.lat, 0) / markers.length;\n const lng = positions.reduce((sum, pos) => sum + pos.lng, 0) / markers.length;\n return new markerclusterer_1.Cluster({ position: new google.maps.LatLng(lat, lng), markers });\n }\n getMarkerPosition(marker) {\n if (marker instanceof google.maps.Marker) {\n const position = marker.getPosition();\n return position ? position.toJSON() : { lat: 0, lng: 0 };\n }\n else {\n if (!marker.position)\n return { lat: 0, lng: 0 };\n return {\n lat: typeof marker.position.lat === \"function\"\n ? marker.position.lat()\n : marker.position.lat,\n lng: typeof marker.position.lng === \"function\"\n ? marker.position.lng()\n : marker.position.lng,\n };\n }\n }\n clearCache() {\n this.lastZoom = null;\n this.cachedClusters = null;\n this.hasInitialized = false;\n }\n}\nexports.CustomAlgorithm = CustomAlgorithm;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MAP_ID = exports.MAP_CONFIGS = void 0;\nconst map_1 = require(\"../../../../types/map\");\nconst mapStyles_1 = __importDefault(require(\"./mapStyles\"));\nexports.MAP_CONFIGS = [\n {\n id: \"map\",\n label: \"Map\",\n mapTypeId: map_1.MapTypeId.ROADMAP,\n mapId: \"3808fe50f232092d\",\n styles: mapStyles_1.default,\n },\n {\n id: \"satellite\",\n label: \"Satellite\",\n mapTypeId: map_1.MapTypeId.SATELLITE,\n },\n {\n id: \"terrain\",\n label: \"Terrain\",\n mapTypeId: map_1.MapTypeId.TERRAIN,\n },\n {\n id: \"labels\",\n label: \"Labels\",\n mapTypeId: map_1.MapTypeId.HYBRID,\n },\n];\nexports.MAP_ID = \"3808fe50f232092d\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nexports.default = [\n {\n featureType: \"administrative\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: colors_1.reservationFillColor,\n },\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.icon\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n {\n weight: 0.125,\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: colors_1.strokeColor,\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.administrativeRegionTextColor,\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: colors_1.internationalBorderFillColor,\n },\n ],\n },\n {\n featureType: \"administrative.land_parcel\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.locality\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative.neighborhood\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.neighborhood\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.neighborhood\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"administrative.province\",\n elementType: \"geometry.stroke\",\n stylers: [{ color: colors_1.provinceStrokeColor }],\n },\n {\n featureType: \"landscape\",\n stylers: [\n {\n color: colors_1.landscapeColor,\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"geometry\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"geometry.stroke\",\n stylers: [\n {\n color: colors_1.buildingStrokeColor,\n },\n {\n lightness: -5,\n },\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"landscape.natural\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"landscape.natural.landcover\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"landscape.natural.terrain\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"poi\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.attraction\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.business\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road\",\n stylers: [\n {\n color: colors_1.roadColor,\n },\n {\n saturation: -100,\n },\n {\n lightness: 45,\n },\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"road.highway\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: colors_1.roadColor,\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"transit\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"water\",\n stylers: [\n {\n color: colors_1.waterColor,\n },\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n];\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nexports.default = [\n {\n featureType: \"administrative\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: colors_1.reservationFillColor,\n },\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"geometry.stroke\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.administrativeRegionTextColor,\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.icon\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"administrative\",\n elementType: \"labels.text.stroke\",\n stylers: [\n {\n color: colors_1.strokeColor,\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.administrativeRegionTextColor,\n },\n ],\n },\n {\n featureType: \"administrative.country\",\n elementType: \"geometry.stroke\",\n stylers: [\n {\n color: colors_1.internationalBorderFillColor,\n },\n ],\n },\n {\n featureType: \"administrative.locality\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"administrative.neighborhood\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.neighborhood\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"administrative.neighborhood\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"administrative.province\",\n elementType: \"geometry.stroke\",\n stylers: [{ color: colors_1.provinceStrokeColor }],\n },\n {\n featureType: \"landscape\",\n stylers: [\n {\n color: colors_1.landscapeColor,\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"geometry\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"geometry.stroke\",\n stylers: [\n {\n color: colors_1.buildingStrokeColor,\n },\n {\n lightness: -20,\n },\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"landscape.man_made\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"landscape.natural\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"landscape.natural.landcover\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"landscape.natural.terrain\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"poi\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.attraction\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.business\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"poi.park\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road\",\n stylers: [\n {\n color: colors_1.roadColor,\n },\n {\n saturation: -100,\n },\n {\n lightness: 45,\n },\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road.arterial\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"road.highway\",\n stylers: [\n {\n visibility: \"simplified\",\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"geometry.fill\",\n stylers: [\n {\n color: colors_1.roadColor,\n },\n ],\n },\n {\n featureType: \"road.highway\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"road.local\",\n elementType: \"labels.text.fill\",\n stylers: [\n {\n color: colors_1.textColor,\n },\n ],\n },\n {\n featureType: \"transit\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"water\",\n stylers: [\n {\n color: colors_1.waterColor,\n },\n {\n visibility: \"on\",\n },\n ],\n },\n {\n featureType: \"water\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n {\n featureType: \"landscape.natural\",\n elementType: \"labels\",\n stylers: [\n {\n visibility: \"off\",\n },\n ],\n },\n];\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CopyLinkModal = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst copyCurrentUrl_1 = require(\"../../../utils/copyCurrentUrl\");\nconst useShortenedLink_1 = __importDefault(require(\"../../../utils/useShortenedLink\"));\nconst ModalInput_1 = require(\"./atoms/ModalInput\");\nconst Modals_style_1 = require(\"./Modals.style\");\nconst BITLY_ACCESS_TOKEN = process.env.BITLY_ACCESS_TOKEN || \"\";\nconst initialCopyLinkModalData = {\n link: window.location.href,\n};\nconst CopyLinkModal = ({ onSubmit, onError }) => {\n const focusInputRef = (0, react_1.useRef)(null);\n const { t } = (0, react_i18next_1.useTranslation)();\n const { shortenedLink, error } = (0, useShortenedLink_1.default)(window.location.href, BITLY_ACCESS_TOKEN);\n const [formState, setFormState] = (0, react_1.useState)(initialCopyLinkModalData);\n (0, react_1.useEffect)(() => {\n if (error) {\n onError(error);\n }\n else {\n setFormState((prevFormData) => (Object.assign(Object.assign({}, prevFormData), { link: shortenedLink })));\n }\n }, [shortenedLink, error, onError]);\n const handleInputChange = (event) => {\n const { name, value } = event.target;\n setFormState((prevFormData) => (Object.assign(Object.assign({}, prevFormData), { [name]: value })));\n };\n const handleSubmit = (event) => {\n onSubmit(formState);\n (0, copyCurrentUrl_1.copyCurrentURL)(formState.link);\n setFormState(initialCopyLinkModalData);\n };\n return (react_1.default.createElement(\"form\", { onSubmit: handleSubmit },\n react_1.default.createElement(Modals_style_1.FormWrapper, { className: \"active-overlay\" },\n react_1.default.createElement(ModalInput_1.ModalInput, { focusInputRef: focusInputRef, value: formState.link, onChange: handleInputChange, name: \"link\", type: \"text\" }),\n react_1.default.createElement(Modals_style_1.BlueButton, { type: \"submit\", \"aria-label\": t(\"copyLinkModal.copyLink\") }, t(\"copyLinkModal.copyLink\")))));\n};\nexports.CopyLinkModal = CopyLinkModal;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextInput = exports.ModalContent = exports.FormWrapper = exports.FlexWrapper = exports.CancelButtonX = exports.ButtonsWrapper = exports.BlueButton = exports.ActionButton = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../assets/styles/colors\");\nconst media_1 = require(\"../../../utils/media\");\nconst Button_style_1 = require(\"../../atoms/Button/Button.style\");\nconst ModalContent = styled_components_1.default.div `\n background-color: ${colors_1.white};\n opacity: 1;\n border-radius: 8px;\n position: relative;\n padding: 2rem;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n`;\nexports.ModalContent = ModalContent;\nconst ButtonsWrapper = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n padding-top: 0.625rem;\n`;\nexports.ButtonsWrapper = ButtonsWrapper;\nconst FlexWrapper = styled_components_1.default.div `\n display: flex;\n padding-bottom: 0.625rem;\n`;\nexports.FlexWrapper = FlexWrapper;\nconst ActionButton = (0, styled_components_1.default)(Button_style_1.Button) `\n background-color: ${colors_1.blue};\n color: ${colors_1.white};\n font-weight: 100;\n border: none;\n @media ${media_1.media.desktop} {\n height: 30px;\n font-size: 1rem;\n img {\n width: 1rem;\n height: 1rem;\n }\n }\n`;\nexports.ActionButton = ActionButton;\nconst CancelButtonX = (0, styled_components_1.default)(Button_style_1.Button) `\n color: ${colors_1.gray400};\n font-weight: 100;\n border: none;\n\n @media ${media_1.media.desktop} {\n display: flex;\n align-items: center;\n height: auto;\n padding: 0;\n cursor: pointer;\n img {\n width: 1rem;\n height: 1rem;\n }\n }\n`;\nexports.CancelButtonX = CancelButtonX;\nconst TextInput = styled_components_1.default.input `\n width: 100%;\n padding: 0.625rem;\n border: 1px solid ${colors_1.gray100};\n border-radius: 4px;\n margin-bottom: 0.625rem;\n outline: none;\n font-size: 1.6rem;\n`;\nexports.TextInput = TextInput;\nconst BlueButton = (0, styled_components_1.default)(Button_style_1.Button) `\n background-color: ${colors_1.blue};\n color: ${colors_1.white};\n font-weight: 600;\n border: none;\n width: fit-content;\n font-size: 1.1rem;\n height: 0.8rem;\n text-transform: uppercase;\n`;\nexports.BlueButton = BlueButton;\nconst FormWrapper = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\nexports.FormWrapper = FormWrapper;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wrapper = exports.Value = exports.TimeRange = exports.SmallPopup = exports.SmallDot = exports.SessionName = exports.SessionDetailsModal = exports.SensorName = exports.RotatedIcon = exports.ProfileName = exports.NoData = exports.ModalMobileHeader = exports.ModalDesktopHeader = exports.MinMaxValueContainer = exports.InfoContainer = exports.HeaderWrapper = exports.ContentWrapper = exports.ClickableWrapper = exports.CancelButtonX = exports.ButtonsContainer = exports.Button = exports.BlueButton = exports.AverageValueContainer = exports.AverageValue = exports.AverageDot = void 0;\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst reactjs_popup_1 = __importDefault(require(\"reactjs-popup\"));\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../utils/media\");\nconst ActionButton_style_1 = require(\"../../../atoms/ActionButton/ActionButton.style\");\nconst Typography_1 = require(\"../../../atoms/Typography\");\nconst SessionDetailsModal = (0, styled_components_1.default)(reactjs_popup_1.default) `\n width: 100%;\n height: 100%;\n\n &-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n pointer-events: none !important;\n z-index: 4 !important;\n }\n\n &-content {\n width: 100%;\n background-color: ${colors_1.white};\n padding: 0.5rem;\n border-radius: 10px 10px 0 0;\n box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);\n max-height: 80vh;\n overflow-y: auto;\n margin: 0;\n display: flex;\n flex-direction: row-reverse;\n flex-wrap: wrap;\n\n @media ${media_1.media.smallDesktop} {\n padding-bottom: 1.25rem;\n flex-direction: row;\n }\n }\n`;\nexports.SessionDetailsModal = SessionDetailsModal;\nconst InfoContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: row;\n width: 100%;\n justify-content: space-between;\n gap: 4rem;\n\n @media ${media_1.media.desktop} {\n width: 20%;\n flex-direction: column;\n justify-content: space-evenly;\n margin-bottom: 0;\n padding: 3rem 3rem 0 3rem;\n gap: 1.6rem;\n }\n`;\nexports.InfoContainer = InfoContainer;\nconst ModalMobileHeader = styled_components_1.default.div `\n display: flex;\n width: 100%;\n flex-direction: column;\n`;\nexports.ModalMobileHeader = ModalMobileHeader;\nconst ModalDesktopHeader = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n gap: 2rem;\n`;\nexports.ModalDesktopHeader = ModalDesktopHeader;\nconst SessionName = (0, styled_components_1.default)(Typography_1.H2) `\n font-weight: 500;\n font-size: 1.8rem;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n overflow: hidden;\n\n @media ${media_1.media.smallDesktop} {\n font-size: 2.4rem;\n }\n`;\nexports.SessionName = SessionName;\nconst ProfileName = styled_components_1.default.span `\n font-size: 1.2rem;\n font-weight: 400;\n`;\nexports.ProfileName = ProfileName;\nconst SensorName = styled_components_1.default.span `\n font-size: 1.2rem;\n font-weight: 400;\n color: ${colors_1.gray300};\n`;\nexports.SensorName = SensorName;\nconst AverageValueContainer = styled_components_1.default.div `\n font-size: 1.2rem;\n display: flex;\n align-items: center;\n`;\nexports.AverageValueContainer = AverageValueContainer;\nconst AverageValue = styled_components_1.default.span `\n font-size: 1.6rem;\n margin-right: 0.5rem;\n`;\nexports.AverageValue = AverageValue;\nconst AverageDot = styled_components_1.default.div `\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n background-color: ${(props) => props.$color};\n display: inline-block;\n margin-right: 1rem;\n`;\nexports.AverageDot = AverageDot;\nconst SmallDot = styled_components_1.default.div `\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: ${(props) => props.$color};\n display: inline-block;\n margin-right: 0.5rem;\n`;\nexports.SmallDot = SmallDot;\nconst ButtonsContainer = styled_components_1.default.div `\n display: none;\n @media ${media_1.media.smallDesktop} {\n display: flex;\n justify-content: flex-start;\n gap: 0.5rem;\n }\n`;\nexports.ButtonsContainer = ButtonsContainer;\nconst MinMaxValueContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n font-size: 1.2rem;\n gap: 2rem;\n justify-content: ${(props) => (props.$isMobile ? \"flex-end\" : \"flex-start\")};\n`;\nexports.MinMaxValueContainer = MinMaxValueContainer;\nconst Value = styled_components_1.default.span `\n font-size: 1.6rem;\n margin-left: 0.3rem;\n`;\nexports.Value = Value;\nconst TimeRange = styled_components_1.default.div `\n font-size: 1.2rem;\n gap: 0.8rem;\n margin-bottom: 0.6rem;\n`;\nexports.TimeRange = TimeRange;\nconst Button = (0, styled_components_1.default)(ActionButton_style_1.ActionButton) `\n color: ${colors_1.gray300};\n background-color: ${colors_1.gray100};\n box-shadow: none;\n padding: 1.6rem;\n border: none;\n\n /* fix for outlines appearing on component load */\n\n body:not(.user-is-tabbing) &:focus-visible {\n outline: none;\n }\n`;\nexports.Button = Button;\nconst BlueButton = (0, styled_components_1.default)(react_router_dom_1.Link) `\n background-color: ${colors_1.blue};\n color: ${colors_1.white};\n font-weight: 100;\n width: fit-content;\n font-weight: 400;\n text-transform: uppercase;\n font-size: 1.4rem;\n letter-spacing: 0.14px;\n height: 4.2rem;\n border-radius: 10px;\n padding: 1.2rem;\n align-items: center;\n gap: 1rem;\n justify-content: flex-end;\n display: flex;\n border: 1px solid ${colors_1.gray200};\n text-decoration: none;\n border: none;\n margin-right: 0.5rem;\n\n /* fix for outlines appearing on component load */\n\n body:not(.user-is-tabbing) &:focus-visible {\n outline: none;\n }\n\n @media ${media_1.media.largeDesktop} {\n padding: 1.6rem;\n border-radius: 5px;\n }\n`;\nexports.BlueButton = BlueButton;\nconst CancelButtonX = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n position: absolute;\n top: 0.5rem;\n right: 0.3rem;\n height: fit-content;\n align-self: flex-end;\n cursor: pointer;\n\n body:not(.user-is-tabbing) &:focus-visible {\n outline: none;\n }\n @media ${media_1.media.smallDesktop} {\n width: fit-content;\n }\n`;\nexports.CancelButtonX = CancelButtonX;\nconst SmallPopup = (0, styled_components_1.default)(reactjs_popup_1.default) `\n width: 100%;\n height: auto;\n\n &-overlay {\n }\n\n &-content {\n background-color: ${colors_1.white};\n opacity: 1;\n border-radius: 8px;\n position: relative;\n padding: 1rem;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n z-index: 6;\n display: flex;\n width: 180px;\n height: 91px;\n }\n`;\nexports.SmallPopup = SmallPopup;\nconst Wrapper = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n gap: 1rem;\n\n @media ${media_1.media.smallDesktop} {\n gap: 1.6rem;\n }\n`;\nexports.Wrapper = Wrapper;\nconst NoData = styled_components_1.default.span `\n font-size: 1.6rem;\n`;\nexports.NoData = NoData;\nconst HeaderWrapper = styled_components_1.default.div `\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n gap: 1rem;\n padding: 1rem 1rem 0 0;\n`;\nexports.HeaderWrapper = HeaderWrapper;\nconst ContentWrapper = styled_components_1.default.div `\n display: ${(props) => (props.$isVisible ? \"flex\" : \"none\")};\n gap: 1rem;\n width: 100%;\n padding: 0.5rem 1rem;\n justify-content: space-between;\n align-items: center;\n`;\nexports.ContentWrapper = ContentWrapper;\nconst ClickableWrapper = styled_components_1.default.div `\n display: flex;\n gap: 2rem;\n align-items: center;\n`;\nexports.ClickableWrapper = ClickableWrapper;\nconst RotatedIcon = styled_components_1.default.img `\n transform: ${({ $rotated }) => ($rotated ? \"rotate(180deg)\" : \"none\")};\n cursor: pointer;\n`;\nexports.RotatedIcon = RotatedIcon;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SessionDetailsModal = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst circleCloseIcon_svg_1 = __importDefault(require(\"../../../../assets/icons/circleCloseIcon.svg\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../utils/useScreenSizeDetection\"));\nconst Graph_1 = require(\"../../../organisms/Graph/Graph\");\nconst S = __importStar(require(\"./SessionDetailsModal.style\"));\nconst SessionInfo_1 = __importDefault(require(\"./SessionInfo/SessionInfo\"));\nconst SessionDetailsModal = react_1.default.memo(({ onClose, sessionType, streamId }) => {\n // Workaround for the typescript error\n const SessionModal = (0, react_1.useCallback)((props) => {\n return react_1.default.createElement(S.SessionDetailsModal, Object.assign({}, props));\n }, []);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const [isVisible, setIsVisible] = (0, react_1.useState)(true);\n const closeHandler = (0, react_1.useCallback)(() => {\n setIsVisible(false);\n onClose();\n // clear streamId\n return () => {\n streamId = null;\n };\n }, [onClose]);\n const sessionInfoProps = (0, react_1.useMemo)(() => ({\n sessionType,\n streamId,\n isVisible,\n setIsVisible,\n }), [sessionType, streamId, isVisible]);\n return (react_1.default.createElement(SessionModal, { open: true, modal: true, nested: true, overlayStyle: {\n margin: 0,\n zIndex: 1,\n bottom: isMobile ? \"4.7rem\" : \"6.4rem\",\n borderBottom: `1px solid ${colors_1.gray200}`,\n }, contentStyle: { margin: 0 }, onClose: closeHandler, closeOnDocumentClick: false }, (close) => (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(SessionInfo_1.default, Object.assign({}, sessionInfoProps)),\n isVisible && (react_1.default.createElement(Graph_1.Graph, { streamId: streamId, sessionType: sessionType, isCalendarPage: false, selectedTimestamp: null })),\n !isMobile && (react_1.default.createElement(S.CancelButtonX, { onClick: close },\n react_1.default.createElement(\"img\", { src: circleCloseIcon_svg_1.default, alt: t(\"navbar.altClose\") })))))));\n});\nexports.SessionDetailsModal = SessionDetailsModal;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst calendar_svg_1 = __importDefault(require(\"../../../../../assets/icons/calendar.svg\"));\nconst copyLinkIcon_svg_1 = __importDefault(require(\"../../../../../assets/icons/copyLinkIcon.svg\"));\nconst download_svg_1 = __importDefault(require(\"../../../../../assets/icons/download.svg\"));\nconst CopyLinkComponent_1 = require(\"../../../../../components/molecules/Popups/CopyLinkComponent\");\nconst ExportDataComponent_1 = require(\"../../../../../components/molecules/Popups/ExportDataComponent\");\nconst userStates_1 = require(\"../../../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../../../utils/mapParamsHandler\");\nconst measurementsCalc_1 = require(\"../../../../../utils/measurementsCalc\");\nconst media_1 = require(\"../../../../../utils/media\");\nconst thresholdColors_1 = require(\"../../../../../utils/thresholdColors\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../../utils/useScreenSizeDetection\"));\nconst S = __importStar(require(\"../SessionDetailsModal.style\"));\nconst ModalDesktopHeader = ({ streamShortInfo, thresholds, extremes, streamId, fixedSessionTypeSelected, }) => {\n const { currentUserSettings, searchParams } = (0, mapParamsHandler_1.useMapParams)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const isMobile = (0, useScreenSizeDetection_1.default)(media_1.screenSizes.largeDesktop);\n const newSearchParams = new URLSearchParams(searchParams.toString());\n const { minMeasurementValue, maxMeasurementValue, averageValue } = extremes;\n const min = minMeasurementValue !== null && minMeasurementValue !== void 0 ? minMeasurementValue : streamShortInfo.minMeasurementValue;\n const max = maxMeasurementValue !== null && maxMeasurementValue !== void 0 ? maxMeasurementValue : streamShortInfo.maxMeasurementValue;\n const avg = averageValue !== null && averageValue !== void 0 ? averageValue : streamShortInfo.averageValue;\n const noData = (0, measurementsCalc_1.isNoData)(min, max, avg) ||\n min === Infinity ||\n max === -Infinity ||\n min === -Infinity ||\n max === Infinity;\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.previousUserSettings, currentUserSettings);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.currentUserSettings, userStates_1.UserSettings.CalendarView);\n return (react_1.default.createElement(S.ModalDesktopHeader, null,\n react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(S.SessionName, null, streamShortInfo.title),\n react_1.default.createElement(S.ProfileName, null, streamShortInfo.profile),\n react_1.default.createElement(S.SensorName, null, streamShortInfo.sensorName)),\n react_1.default.createElement(S.Wrapper, null,\n noData ? (react_1.default.createElement(S.NoData, null, t(\"sessionDetailsModal.noData\"))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.AverageValueContainer, null,\n react_1.default.createElement(S.AverageDot, { \"$color\": (0, thresholdColors_1.getColorForValue)(thresholds, avg) }),\n t(\"sessionDetailsModal.averageValue\"),\n react_1.default.createElement(S.AverageValue, null, avg),\n streamShortInfo.unitSymbol),\n react_1.default.createElement(S.MinMaxValueContainer, { \"$isMobile\": false },\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(S.SmallDot, { \"$color\": (0, thresholdColors_1.getColorForValue)(thresholds, min) }),\n t(\"sessionDetailsModal.minValue\"),\n react_1.default.createElement(S.Value, null, min)),\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(S.SmallDot, { \"$color\": (0, thresholdColors_1.getColorForValue)(thresholds, max) }),\n t(\"sessionDetailsModal.maxValue\"),\n react_1.default.createElement(S.Value, null, max))))),\n react_1.default.createElement(S.TimeRange, null,\n streamShortInfo.startTime,\n \" - \",\n streamShortInfo.endTime)),\n react_1.default.createElement(S.ButtonsContainer, null,\n fixedSessionTypeSelected && (react_1.default.createElement(S.BlueButton, { to: `/fixed_stream?streamId=${streamId}&${newSearchParams.toString()}` },\n isMobile ? \"\" : t(\"sessionDetailsModal.calendar\"),\n react_1.default.createElement(\"img\", { src: calendar_svg_1.default, alt: t(\"sessionDetailsModal.calendarIcon\") }))),\n react_1.default.createElement(ExportDataComponent_1.ExportDataComponent, { button: react_1.default.createElement(S.Button, { \"aria-labelledby\": t(\"calendarHeader.altExportSession\") },\n react_1.default.createElement(\"img\", { src: download_svg_1.default, alt: t(\"calendarHeader.altExportSession\") })), fixedSessionTypeSelected: fixedSessionTypeSelected, sessionsIds: [streamShortInfo.sessionId], isIconOnly: true, onSubmit: (formData) => { }, isSessionList: false }),\n react_1.default.createElement(CopyLinkComponent_1.CopyLinkComponent, { button: react_1.default.createElement(S.Button, { \"aria-label\": t(\"copyLinkModal.altCopyLink\") },\n react_1.default.createElement(\"img\", { src: copyLinkIcon_svg_1.default, alt: t(\"copyLinkModal.copyLink\") })), isIconOnly: true }))));\n};\nexports.default = ModalDesktopHeader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst toggleIcon_svg_1 = __importDefault(require(\"../../../../../assets/icons/toggleIcon.svg\"));\nconst store_1 = require(\"../../../../../store\");\nconst hooks_1 = require(\"../../../../../store/hooks\");\nconst measurementsCalc_1 = require(\"../../../../../utils/measurementsCalc\");\nconst thresholdColors_1 = require(\"../../../../../utils/thresholdColors\");\nconst S = __importStar(require(\"../SessionDetailsModal.style\"));\nconst ModalMobileHeader = ({ toggleVisibility, isVisible, streamShortInfo, thresholds, extremes, isMobile, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const isLoading = (0, hooks_1.useAppSelector)(store_1.selectIsLoading);\n const { minMeasurementValue, maxMeasurementValue, averageValue } = extremes;\n const noData = (0, measurementsCalc_1.isNoData)(minMeasurementValue, maxMeasurementValue, averageValue);\n return (react_1.default.createElement(S.ModalMobileHeader, null,\n react_1.default.createElement(S.HeaderWrapper, { onClick: toggleVisibility },\n react_1.default.createElement(S.ClickableWrapper, null,\n react_1.default.createElement(S.RotatedIcon, { src: toggleIcon_svg_1.default, alt: t(\"headerToggle.arrowIcon\"), \"$rotated\": isVisible, onClick: toggleVisibility }),\n react_1.default.createElement(S.SessionName, null, streamShortInfo.title)),\n react_1.default.createElement(S.Wrapper, null, noData ? (react_1.default.createElement(S.NoData, null, t(\"sessionDetailsModal.noData\"))) : (react_1.default.createElement(S.AverageValueContainer, null,\n react_1.default.createElement(S.AverageDot, { \"$color\": (0, thresholdColors_1.getColorForValue)(thresholds, averageValue) }),\n t(\"sessionDetailsModal.averageValue\"),\n react_1.default.createElement(S.AverageValue, null, averageValue),\n streamShortInfo.unitSymbol)))),\n react_1.default.createElement(S.ContentWrapper, { \"$isVisible\": isVisible },\n react_1.default.createElement(S.Wrapper, null,\n react_1.default.createElement(S.ProfileName, null, streamShortInfo.profile),\n react_1.default.createElement(S.SensorName, null, streamShortInfo.sensorName)),\n react_1.default.createElement(S.Wrapper, null,\n noData ? (react_1.default.createElement(S.NoData, null, t(\"sessionDetailsModal.noData\"))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.MinMaxValueContainer, { \"$isMobile\": isMobile },\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(S.SmallDot, { \"$color\": (0, thresholdColors_1.getColorForValue)(thresholds, minMeasurementValue) }),\n t(\"sessionDetailsModal.minValue\"),\n react_1.default.createElement(S.Value, null, minMeasurementValue)),\n react_1.default.createElement(\"div\", null,\n react_1.default.createElement(S.SmallDot, { \"$color\": (0, thresholdColors_1.getColorForValue)(thresholds, maxMeasurementValue) }),\n t(\"sessionDetailsModal.maxValue\"),\n react_1.default.createElement(S.Value, null, maxMeasurementValue))))),\n react_1.default.createElement(S.TimeRange, null,\n streamShortInfo.startTime,\n \" - \",\n streamShortInfo.endTime)))));\n};\nexports.default = ModalMobileHeader;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importStar(require(\"react\"));\nconst fixedStreamSelectors_1 = require(\"../../../../../store/fixedStreamSelectors\");\nconst hooks_1 = require(\"../../../../../store/hooks\");\nconst mobileStreamSelectors_1 = require(\"../../../../../store/mobileStreamSelectors\");\nconst thresholdSlice_1 = require(\"../../../../../store/thresholdSlice\");\nconst filters_1 = require(\"../../../../../types/filters\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../../utils/useScreenSizeDetection\"));\nconst S = __importStar(require(\"../SessionDetailsModal.style\"));\nconst ModalDesktopHeader_1 = __importDefault(require(\"./ModalDesktopHeader\"));\nconst ModalMobileHeader_1 = __importDefault(require(\"./ModalMobileHeader\"));\nconst SessionInfo = ({ sessionType, streamId, isVisible, setIsVisible, }) => {\n const fixedSessionTypeSelected = (0, react_1.useMemo)(() => sessionType === filters_1.SessionTypes.FIXED, [sessionType]);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const streamShortInfo = (0, hooks_1.useAppSelector)(fixedSessionTypeSelected\n ? fixedStreamSelectors_1.selectFixedStreamShortInfo\n : mobileStreamSelectors_1.selectMobileStreamShortInfo);\n const extremes = (0, hooks_1.useAppSelector)(fixedSessionTypeSelected ? fixedStreamSelectors_1.selectFixedExtremes : mobileStreamSelectors_1.selectMobileExtremes);\n const thresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const toggleVisibility = () => setIsVisible(!isVisible);\n const commonProps = {\n streamShortInfo,\n thresholds,\n extremes,\n };\n if (isMobile) {\n return (react_1.default.createElement(S.InfoContainer, null,\n react_1.default.createElement(ModalMobileHeader_1.default, Object.assign({}, commonProps, { toggleVisibility: toggleVisibility, isVisible: isVisible, isMobile: isMobile }))));\n }\n return (react_1.default.createElement(S.InfoContainer, null,\n react_1.default.createElement(ModalDesktopHeader_1.default, Object.assign({}, commonProps, { fixedSessionTypeSelected: fixedSessionTypeSelected, streamId: streamId }))));\n};\nexports.default = react_1.default.memo(SessionInfo);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./SessionDetailsModal\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst fastForwardButton_svg_1 = __importDefault(require(\"../../../../assets/icons/fastForwardButton.svg\"));\nconst pauseButton_svg_1 = __importDefault(require(\"../../../../assets/icons/pauseButton.svg\"));\nconst playButton_svg_1 = __importDefault(require(\"../../../../assets/icons/playButton.svg\"));\nconst rewindButton_svg_1 = __importDefault(require(\"../../../../assets/icons/rewindButton.svg\"));\nconst skipLeftButton_svg_1 = __importDefault(require(\"../../../../assets/icons/skipLeftButton.svg\"));\nconst skipRightButton_svg_1 = __importDefault(require(\"../../../../assets/icons/skipRightButton.svg\"));\nconst userStates_1 = require(\"../../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst S = __importStar(require(\"./TimelapseComponent.style\"));\nconst NavigationButtons = ({ currentStep, totalSteps, onNextStep, onPreviousStep, onGoToStart, onGoToEnd, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const [isPlaying, setIsPlaying] = (0, react_1.useState)(false);\n const { currentUserSettings } = (0, mapParamsHandler_1.useMapParams)();\n const isModalOpen = currentUserSettings === userStates_1.UserSettings.TimelapseView;\n // Auto-play functionality\n (0, react_1.useEffect)(() => {\n let intervalId;\n if (isPlaying) {\n intervalId = setInterval(() => {\n if (currentStep < totalSteps - 1) {\n onNextStep();\n }\n else {\n setIsPlaying(false);\n }\n }, 500);\n }\n return () => {\n if (intervalId)\n clearInterval(intervalId);\n };\n }, [isPlaying, currentStep, totalSteps, onNextStep]);\n (0, react_1.useEffect)(() => {\n if (isModalOpen) {\n setIsPlaying(true);\n }\n }, [isModalOpen]);\n const handlePlayPause = (0, react_1.useCallback)(() => {\n setIsPlaying((prev) => !prev);\n }, []);\n return (react_1.default.createElement(S.NavigationButtonsContainer, null,\n react_1.default.createElement(S.NavigationButton, { onClick: onGoToStart, disabled: currentStep === 0 },\n react_1.default.createElement(\"img\", { src: rewindButton_svg_1.default, alt: t(\"timelapse.altRewind\") })),\n react_1.default.createElement(S.NavigationButton, { onClick: onPreviousStep, disabled: currentStep === 0 },\n react_1.default.createElement(\"img\", { src: skipLeftButton_svg_1.default, alt: t(\"timelapse.altSkipLeft\") })),\n react_1.default.createElement(S.NavigationButton, { onClick: handlePlayPause },\n react_1.default.createElement(\"img\", { src: isPlaying ? pauseButton_svg_1.default : playButton_svg_1.default, alt: t(\"timelapse.altPlay\") })),\n react_1.default.createElement(S.NavigationButton, { onClick: onNextStep, disabled: currentStep === totalSteps - 1 },\n react_1.default.createElement(\"img\", { src: skipRightButton_svg_1.default, alt: t(\"timelapse.altSkipRight\") })),\n react_1.default.createElement(S.NavigationButton, { onClick: onGoToEnd, disabled: currentStep === totalSteps - 1 },\n react_1.default.createElement(\"img\", { src: fastForwardButton_svg_1.default, alt: t(\"timelapse.altFastForward\") }))));\n};\nexports.default = NavigationButtons;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst moment_1 = __importDefault(require(\"moment\"));\nconst react_1 = __importStar(require(\"react\"));\nconst dateFormat_1 = require(\"../../../../types/dateFormat\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../../utils/useScreenSizeDetection\"));\nconst S = __importStar(require(\"./TimelapseComponent.style\"));\nconst TimeAxis = ({ currentStep, totalSteps, timestamps, onStepChange, }) => {\n const isMobile = (0, useScreenSizeDetection_1.default)(768);\n const progressBarRef = (0, react_1.useRef)(null);\n const [isDragging, setIsDragging] = (0, react_1.useState)(false);\n const [dragPosition, setDragPosition] = (0, react_1.useState)(null);\n const progressPercentage = (0, react_1.useMemo)(() => {\n const step = isDragging && dragPosition !== null ? dragPosition : currentStep;\n return (step / (totalSteps - 1)) * 100;\n }, [currentStep, totalSteps, isDragging, dragPosition]);\n const calculateStepFromPosition = (0, react_1.useCallback)((clientX) => {\n if (!progressBarRef.current)\n return 0;\n const progressBarRect = progressBarRef.current.getBoundingClientRect();\n const relativePosition = clientX - progressBarRect.left;\n const percentage = (relativePosition / progressBarRect.width) * 100;\n const closestStep = Math.round((percentage / 100) * (totalSteps - 1));\n return Math.max(0, Math.min(totalSteps - 1, closestStep));\n }, [totalSteps]);\n const handleClick = (0, react_1.useCallback)((e) => {\n let clientX;\n if (\"touches\" in e) {\n clientX = e.touches[0].clientX;\n }\n else {\n clientX = e.clientX;\n }\n const closestStep = calculateStepFromPosition(clientX);\n onStepChange(closestStep);\n }, [calculateStepFromPosition, onStepChange]);\n const handleStart = (0, react_1.useCallback)((event) => {\n event.preventDefault();\n event.target.setPointerCapture(event.pointerId);\n setIsDragging(true);\n }, []);\n const handleMove = (0, react_1.useCallback)((e) => {\n if (!isDragging)\n return;\n e.preventDefault();\n const clientX = e.clientX;\n const closestStep = calculateStepFromPosition(clientX);\n setDragPosition(closestStep);\n onStepChange(closestStep);\n }, [isDragging, calculateStepFromPosition, onStepChange]);\n const handleEnd = (0, react_1.useCallback)((event) => {\n event.preventDefault();\n if (isDragging && dragPosition !== null) {\n onStepChange(dragPosition);\n }\n event.target.releasePointerCapture(event.pointerId);\n setIsDragging(false);\n setDragPosition(null);\n }, [isDragging, dragPosition, onStepChange]);\n const handleTouchStart = (0, react_1.useCallback)((e) => {\n e.preventDefault();\n setIsDragging(true);\n }, []);\n const handleTouchMove = (0, react_1.useCallback)((e) => {\n if (!isDragging)\n return;\n e.preventDefault();\n if (e.touches.length > 0) {\n const clientX = e.touches[0].clientX;\n const closestStep = calculateStepFromPosition(clientX);\n setDragPosition(closestStep);\n onStepChange(closestStep);\n }\n }, [isDragging, calculateStepFromPosition, onStepChange]);\n const handleTouchEnd = (0, react_1.useCallback)(() => {\n if (isDragging && dragPosition !== null) {\n onStepChange(dragPosition);\n }\n setIsDragging(false);\n setDragPosition(null);\n }, [isDragging, dragPosition, onStepChange]);\n (0, react_1.useEffect)(() => {\n if (isDragging) {\n if (isMobile) {\n document.addEventListener(\"touchmove\", handleTouchMove, {\n passive: false,\n });\n document.addEventListener(\"touchend\", handleTouchEnd);\n }\n else {\n window.addEventListener(\"pointermove\", handleMove, {\n passive: false,\n });\n window.addEventListener(\"pointerup\", handleEnd);\n }\n }\n else {\n if (isMobile) {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", handleTouchEnd);\n }\n else {\n window.removeEventListener(\"pointermove\", handleMove);\n window.removeEventListener(\"pointerup\", handleEnd);\n }\n }\n return () => {\n if (isMobile) {\n document.removeEventListener(\"touchmove\", handleTouchMove);\n document.removeEventListener(\"touchend\", handleTouchEnd);\n }\n else {\n window.removeEventListener(\"pointermove\", handleMove);\n window.removeEventListener(\"pointerup\", handleEnd);\n }\n };\n }, [\n isDragging,\n isMobile,\n handleTouchMove,\n handleTouchEnd,\n handleMove,\n handleEnd,\n ]);\n const currentTimestamp = timestamps[currentStep];\n const currentDate = (0, react_1.useMemo)(() => {\n return (0, moment_1.default)(currentTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.us);\n }, [currentTimestamp]);\n const currentTime = (0, react_1.useMemo)(() => {\n return (0, moment_1.default)(currentTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.time);\n }, [currentTimestamp]);\n const firstTimestamp = timestamps[0];\n const lastTimestamp = timestamps[timestamps.length - 1];\n const firstFormattedTime = (0, react_1.useMemo)(() => {\n return (0, moment_1.default)(firstTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.time);\n }, [firstTimestamp]);\n const firstFormattedDate = (0, react_1.useMemo)(() => {\n return (0, moment_1.default)(firstTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.us_without_year);\n }, [firstTimestamp]);\n const lastFormattedTime = (0, react_1.useMemo)(() => {\n return (0, moment_1.default)(lastTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.time);\n }, [lastTimestamp]);\n const lastFormattedDate = (0, react_1.useMemo)(() => {\n return (0, moment_1.default)(lastTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.us_without_year);\n }, [lastTimestamp]);\n const isStepActive = (index) => {\n const stepPosition = (index / (totalSteps - 1)) * 100;\n const margin = 0.5;\n return progressPercentage >= stepPosition - margin;\n };\n return (react_1.default.createElement(react_1.default.Fragment, null, !isMobile ? (react_1.default.createElement(S.DesktopAxisContainer, null,\n react_1.default.createElement(S.DateContainer, null,\n react_1.default.createElement(S.Time, null, firstFormattedTime),\n react_1.default.createElement(S.Date, null, firstFormattedDate)),\n react_1.default.createElement(S.ProgressBar, { ref: progressBarRef, onMouseDown: handleClick, onTouchStart: handleClick, onPointerDown: handleClick },\n react_1.default.createElement(S.ProgressFiller, { style: { width: `${progressPercentage}%` }, \"$isDragging\": isDragging }),\n react_1.default.createElement(S.RoundMarker, { \"$position\": progressPercentage, \"$isDragging\": isDragging, onPointerDown: handleStart },\n react_1.default.createElement(S.Tooltip, null,\n react_1.default.createElement(\"span\", null, currentTime),\n react_1.default.createElement(\"span\", null, currentDate))),\n react_1.default.createElement(S.StepMarkers, null, timestamps.map((_, index) => {\n const position = (index / (totalSteps - 1)) * 100;\n return (react_1.default.createElement(S.StepMarker, { key: index, \"$isActive\": isStepActive(index), \"$isCurrent\": index === currentStep, \"$isDragging\": isDragging, \"$position\": position }));\n }))),\n react_1.default.createElement(S.DateContainer, null,\n react_1.default.createElement(S.Time, null, lastFormattedTime),\n react_1.default.createElement(S.Date, null, lastFormattedDate)))) : (react_1.default.createElement(S.MobileAxisContainer, null,\n react_1.default.createElement(S.ProgressBar, { ref: progressBarRef, className: \"progress-bar\", onTouchStart: (e) => {\n e.preventDefault();\n handleClick(e);\n }, onPointerDown: handleStart },\n react_1.default.createElement(S.ProgressFiller, { style: { width: `${progressPercentage}%` }, \"$isDragging\": isDragging }),\n react_1.default.createElement(S.RoundMarker, { \"$position\": progressPercentage, onTouchStart: handleTouchStart, onPointerDown: handleStart, \"$isDragging\": isDragging }),\n react_1.default.createElement(S.StepMarkers, null, timestamps.map((_, index) => {\n const position = (index / (totalSteps - 1)) * 100;\n return (react_1.default.createElement(S.StepMarker, { key: index, \"$isActive\": isStepActive(index), \"$isCurrent\": index === currentStep, \"$position\": position, \"$isDragging\": isDragging }));\n })))))));\n};\nexports.default = TimeAxis;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst timelapseSelectors_1 = require(\"../../../../store/timelapseSelectors\");\nconst timelapseSlice_1 = require(\"../../../../store/timelapseSlice\");\nconst timelapse_1 = require(\"../../../../types/timelapse\");\nconst S = __importStar(require(\"./TimelapseComponent.style\"));\nconst TimeRangeButtons = () => {\n const timeRange = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectTimelapseTimeRange);\n const { t } = (0, react_i18next_1.useTranslation)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const onSelectTimeRange = (timeRange) => {\n dispatch((0, timelapseSlice_1.setTimelapseTimeRange)(timeRange));\n };\n return (react_1.default.createElement(S.TimeRangeButtonsContainer, null,\n react_1.default.createElement(S.TimeRangeLabel, null, t(\"timelapse.timeRange.label\")),\n react_1.default.createElement(S.TimeRangeButton, { \"$isActive\": timeRange === timelapse_1.TimeRanges.HOURS_24, onClick: () => onSelectTimeRange(timelapse_1.TimeRanges.HOURS_24) }, t(\"timelapse.timeRange.24hours\")),\n react_1.default.createElement(S.TimeRangeButton, { \"$isActive\": timeRange === timelapse_1.TimeRanges.DAYS_3, onClick: () => onSelectTimeRange(timelapse_1.TimeRanges.DAYS_3) }, t(\"timelapse.timeRange.3days\")),\n react_1.default.createElement(S.TimeRangeButton, { \"$isActive\": timeRange === timelapse_1.TimeRanges.DAYS_7, onClick: () => onSelectTimeRange(timelapse_1.TimeRanges.DAYS_7) }, t(\"timelapse.timeRange.7days\"))));\n};\nexports.default = TimeRangeButtons;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wrapper = exports.Tooltip = exports.TimeRangeLabel = exports.TimeRangeButtonsContainer = exports.TimeRangeButton = exports.TimelapseModal = exports.TimeAxisContainer = exports.Time = exports.StepMarkers = exports.StepMarker = exports.SmallPopup = exports.RoundMarker = exports.ProgressFiller = exports.ProgressBar = exports.NavigationButtonsContainer = exports.NavigationButton = exports.MobileDateContainer = exports.MobileAxisContainer = exports.DesktopAxisContainer = exports.DateContainer = exports.Date = exports.CancelButtonX = exports.AlertInfo = void 0;\nconst reactjs_popup_1 = __importDefault(require(\"reactjs-popup\"));\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst media_1 = require(\"../../../../utils/media\");\nconst TimelapseModal = (0, styled_components_1.default)(reactjs_popup_1.default) `\n width: 100%;\n\n &-overlay {\n z-index: 2;\n }\n\n &-content {\n width: 100%;\n height: auto;\n padding: 1rem;\n overflow: visible;\n flex-direction: row;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n top: 5rem;\n\n @media ${media_1.media.smallDesktop} {\n padding-bottom: 1.25rem;\n align-items: flex-end;\n bottom: 10rem;\n top: auto;\n }\n }\n`;\nexports.TimelapseModal = TimelapseModal;\nconst CancelButtonX = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n position: relative;\n top: auto;\n right: 0;\n bottom: 2.8rem;\n left: 0;\n height: fit-content;\n align-self: flex-end;\n cursor: pointer;\n @media ${media_1.media.smallDesktop} {\n top: -14rem;\n left: 97%;\n right: 0;\n bottom: 0;\n }\n @media ${media_1.media.desktop} {\n top: -11rem;\n left: 101%;\n }\n body:not(.user-is-tabbing) &:focus-visible {\n outline: none;\n }\n`;\nexports.CancelButtonX = CancelButtonX;\nconst SmallPopup = (0, styled_components_1.default)(reactjs_popup_1.default) `\n width: 100%;\n height: auto;\n\n &-overlay {\n }\n\n &-content {\n background-color: ${colors_1.white};\n opacity: 1;\n border-radius: 8px;\n position: relative;\n padding: 1rem;\n box-shadow: 2px 2px 4px 0px ${colors_1.gray900};\n z-index: 6;\n display: flex;\n width: 20rem;\n height: 7rem;\n }\n`;\nexports.SmallPopup = SmallPopup;\nconst AlertInfo = styled_components_1.default.span `\n font-size: 1.2rem;\n color: ${colors_1.gray400};\n margin: 0;\n padding: 0;\n text-align: center;\n line-height: 1.8rem;\n align-items: center;\n display: flex;\n @media ${media_1.media.smallDesktop} {\n font-size: 1.4rem;\n }\n`;\nexports.AlertInfo = AlertInfo;\nconst Wrapper = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n gap: 1rem;\n\n @media ${media_1.media.smallDesktop} {\n gap: 1.6rem;\n }\n`;\nexports.Wrapper = Wrapper;\nconst TimeAxisContainer = styled_components_1.default.div `\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr auto;\n width: calc(100vw - 3rem);\n height: 100%;\n background-color: ${colors_1.white};\n gap: 1.2rem;\n padding: 2rem 1.5rem;\n border-radius: 1rem;\n box-shadow: 2px 2px 4px 0px ${colors_1.gray900};\n @media ${media_1.media.smallDesktop} {\n width: 100%;\n max-width: 115rem;\n min-width: 50rem;\n grid-template-rows: auto;\n grid-template-columns: 1fr 5fr;\n padding: 1rem;\n }\n`;\nexports.TimeAxisContainer = TimeAxisContainer;\nconst NavigationButton = styled_components_1.default.button `\n border: none;\n background-color: transparent;\n cursor: pointer;\n`;\nexports.NavigationButton = NavigationButton;\nconst NavigationButtonsContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 1.6rem;\n\n @media ${media_1.media.smallDesktop} {\n gap: 1rem;\n align-self: flex-end;\n }\n`;\nexports.NavigationButtonsContainer = NavigationButtonsContainer;\nconst DesktopAxisContainer = styled_components_1.default.div `\n display: none;\n @media ${media_1.media.smallDesktop} {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n }\n`;\nexports.DesktopAxisContainer = DesktopAxisContainer;\nconst MobileAxisContainer = styled_components_1.default.div `\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n grid-column: 1 / 3;\n grid-row: 3 / 3;\n padding-left: 0.8rem;\n @media ${media_1.media.smallDesktop} {\n display: none;\n }\n`;\nexports.MobileAxisContainer = MobileAxisContainer;\nconst ProgressBar = styled_components_1.default.div `\n width: 100%;\n height: 6px;\n background-color: ${colors_1.gray500};\n position: relative;\n border-radius: 1rem;\n cursor: pointer;\n touch-action: none;\n -webkit-user-select: none;\n -webkit-tap-highlight-color: transparent;\n\n @media ${media_1.media.smallDesktop} {\n height: 2px;\n border-radius: 0;\n }\n`;\nexports.ProgressBar = ProgressBar;\nconst ProgressFiller = styled_components_1.default.div `\n height: 6px;\n background-color: ${colors_1.acBlue};\n border-radius: 1rem;\n transition: width ${({ $isDragging }) => ($isDragging ? \"0.05s\" : \"0.2s\")}\n ease-in-out;\n\n @media ${media_1.media.smallDesktop} {\n height: 4px;\n background-color: ${colors_1.acBlue};\n margin-top: -0.1rem;\n border-radius: 0;\n }\n`;\nexports.ProgressFiller = ProgressFiller;\nconst StepMarkers = styled_components_1.default.div `\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 1rem;\n width: 100%;\n @media ${media_1.media.smallDesktop} {\n top: -6px;\n left: 0;\n right: 0;\n height: 1rem;\n }\n`;\nexports.StepMarkers = StepMarkers;\nconst StepMarker = styled_components_1.default.div `\n left: ${({ $position }) => `${$position}%`};\n position: absolute;\n width: 0.1rem;\n height: 0.6rem;\n background-color: ${({ $isActive }) => ($isActive ? colors_1.acBlue : colors_1.white)};\n transform: scale(1);\n transition: background-color\n ${({ $isDragging }) => ($isDragging ? \"0.05s\" : \"0.2s\")} ease-in-out;\n @media ${media_1.media.smallDesktop} {\n height: 1.4rem;\n background-color: ${({ $isActive }) => ($isActive ? colors_1.acBlue : colors_1.gray500)};\n }\n`;\nexports.StepMarker = StepMarker;\nconst DateContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: ${colors_1.gray400};\n width: 10rem;\n gap: 0.5rem;\n`;\nexports.DateContainer = DateContainer;\nconst MobileDateContainer = styled_components_1.default.div `\n display: flex;\n width: 100%;\n height: 3.2rem;\n border-radius: 1.2rem;\n border: 1px solid ${colors_1.grayStroke};\n padding: 2rem 0.5rem;\n color: ${colors_1.acBlue};\n justify-content: center;\n align-items: center;\n gap: 1rem;\n @media ${media_1.media.smallDesktop} {\n display: none;\n }\n`;\nexports.MobileDateContainer = MobileDateContainer;\nconst Time = styled_components_1.default.span `\n font-size: 1.2rem;\n @media ${media_1.media.smallDesktop} {\n font-size: 1.2rem;\n font-weight: 400;\n }\n`;\nexports.Time = Time;\nconst Date = styled_components_1.default.span `\n font-size: 1.6rem;\n font-weight: 500;\n @media ${media_1.media.smallDesktop} {\n font-size: 1.4rem;\n font-weight: 500;\n }\n`;\nexports.Date = Date;\nconst RoundMarker = styled_components_1.default.div `\n position: absolute;\n top: -6px;\n left: ${({ $position }) => `${$position}%`};\n width: 1.6rem;\n height: 1.6rem;\n background-color: ${colors_1.acBlue};\n border-radius: 50%;\n transform: translateX(-50%);\n transition: left ${({ $isDragging }) => ($isDragging ? \"0.05s\" : \"0.2s\")}\n ease-in-out;\n z-index: 1;\n touch-action: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-tap-highlight-color: transparent;\n\n @media ${media_1.media.smallDesktop} {\n top: -8px;\n }\n`;\nexports.RoundMarker = RoundMarker;\nconst Tooltip = styled_components_1.default.div `\n display: flex;\n background-color: ${colors_1.acBlue};\n color: ${colors_1.white};\n padding: 1rem;\n gap: 1rem;\n border-radius: 0.5rem;\n font-size: 1.2rem;\n text-align: center;\n white-space: nowrap;\n position: absolute;\n bottom: 140%;\n left: 50%;\n transform: translateX(-50%);\n pointer-events: none;\n\n &::after {\n content: \"\";\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-width: 6px;\n border-style: solid;\n border-color: ${colors_1.acBlue} transparent transparent transparent;\n }\n`;\nexports.Tooltip = Tooltip;\nconst TimeRangeButtonsContainer = styled_components_1.default.div `\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 0.5rem;\n margin-top: 1rem;\n width: 100%;\n\n @media ${media_1.media.smallDesktop} {\n justify-content: flex-start;\n align-items: center;\n gap: 0.5rem;\n margin-top: 1rem;\n background-color: ${colors_1.white}80;\n padding: 0.4rem 0.8rem;\n width: fit-content;\n border-radius: 8px;\n }\n`;\nexports.TimeRangeButtonsContainer = TimeRangeButtonsContainer;\nconst TimeRangeButton = styled_components_1.default.button `\n padding: 0.7rem 1.5rem;\n margin: 0 5px;\n background-color: ${colors_1.white};\n color: ${({ $isActive }) => ($isActive ? colors_1.acBlue : colors_1.gray300)};\n border: none;\n border-radius: 5px;\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n font-size: 1.2rem;\n margin: 0;\n\n cursor: pointer;\n\n @media ${media_1.media.smallDesktop} {\n background-color: ${({ $isActive }) => ($isActive ? colors_1.acBlue : colors_1.white)};\n color: ${({ $isActive }) => ($isActive ? colors_1.white : colors_1.gray300)};\n &:hover {\n background-color: ${colors_1.acBlue};\n color: ${colors_1.white};\n }\n }\n`;\nexports.TimeRangeButton = TimeRangeButton;\nconst TimeRangeLabel = styled_components_1.default.span `\n display: none;\n @media ${media_1.media.smallDesktop} {\n display: flex;\n font-size: 1.2rem;\n color: ${colors_1.gray400};\n }\n`;\nexports.TimeRangeLabel = TimeRangeLabel;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimelapseComponent = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst closeTimelapseButton_svg_1 = __importDefault(require(\"../../../../assets/icons/closeTimelapseButton.svg\"));\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst timelapseSlice_1 = require(\"../../../../store/timelapseSlice\");\nconst dateFormat_1 = require(\"../../../../types/dateFormat\");\nconst timelapseSelectors_1 = require(\"../../../../store/timelapseSelectors\");\nconst filterTimelapseData_1 = require(\"../../../../utils/filterTimelapseData\");\nconst useAutoDismissAlert_1 = require(\"../../../../utils/useAutoDismissAlert\");\nconst NavigationButtons_1 = __importDefault(require(\"./NavigationButtons\"));\nconst TimeAxis_1 = __importDefault(require(\"./TimeAxis\"));\nconst S = __importStar(require(\"./TimelapseComponent.style\"));\nconst TimeRangeButtons_1 = __importDefault(require(\"./TimeRangeButtons\"));\nconst TimelapseComponent = react_1.default.memo(({ onClose }) => {\n const [showReadOnlyPopup, setShowReadOnlyPopup] = (0, react_1.useState)(false);\n const [currentStep, setCurrentStep] = (0, react_1.useState)(0);\n const isLoading = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectTimelapseIsLoading);\n const fullTimestamps = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectTimelapseData);\n const timeRange = (0, hooks_1.useAppSelector)(timelapseSelectors_1.selectTimelapseTimeRange);\n const overlayRef = (0, react_1.useRef)(null);\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const resetTimelapse = (0, react_1.useCallback)(() => {\n setCurrentStep(0);\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(\"\"));\n }, [dispatch]);\n const filteredTimestamps = (0, react_1.useMemo)(() => {\n return (0, filterTimelapseData_1.filterTimestamps)(fullTimestamps, timeRange);\n }, [fullTimestamps, timeRange]);\n (0, react_1.useEffect)(() => {\n setCurrentStep(0);\n if (filteredTimestamps.length > 0) {\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(filteredTimestamps[0]));\n }\n }, [timeRange, filteredTimestamps, dispatch]);\n const closeHandler = (0, react_1.useCallback)(() => {\n resetTimelapse();\n onClose();\n }, [onClose, resetTimelapse]);\n const handleNextStep = (0, react_1.useCallback)(() => {\n if (currentStep < filteredTimestamps.length - 1) {\n const nextStep = currentStep + 1;\n setCurrentStep(nextStep);\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(filteredTimestamps[nextStep]));\n }\n }, [currentStep, filteredTimestamps, dispatch]);\n const handlePreviousStep = (0, react_1.useCallback)(() => {\n if (currentStep > 0) {\n const prevStep = currentStep - 1;\n setCurrentStep(prevStep);\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(filteredTimestamps[prevStep]));\n }\n }, [currentStep, filteredTimestamps, dispatch]);\n const handleGoToStart = (0, react_1.useCallback)(() => {\n setCurrentStep(0);\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(filteredTimestamps[0]));\n }, [filteredTimestamps, dispatch]);\n const handleGoToEnd = (0, react_1.useCallback)(() => {\n const lastIndex = filteredTimestamps.length - 1;\n setCurrentStep(lastIndex);\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(filteredTimestamps[lastIndex]));\n }, [filteredTimestamps, dispatch]);\n const handleStepChange = (0, react_1.useCallback)((newStep) => {\n setCurrentStep(newStep);\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(filteredTimestamps[newStep]));\n }, [filteredTimestamps, dispatch]);\n const handleOverlayClick = (0, react_1.useCallback)((event) => {\n const targetElement = event.target;\n const isMapButton = targetElement.closest(\".active-overlay\");\n if (overlayRef.current &&\n !overlayRef.current.contains(event.target) &&\n !isMapButton) {\n setShowReadOnlyPopup(true);\n }\n }, [overlayRef]);\n (0, useAutoDismissAlert_1.useAutoDismissAlert)(showReadOnlyPopup, setShowReadOnlyPopup);\n (0, react_1.useEffect)(() => {\n document.addEventListener(\"mousedown\", handleOverlayClick);\n return () => {\n document.removeEventListener(\"mousedown\", handleOverlayClick);\n };\n }, [handleOverlayClick]);\n (0, react_1.useEffect)(() => {\n return () => {\n // Reset the current timestamp when the component unmounts\n dispatch((0, timelapseSlice_1.setCurrentTimestamp)(\"\"));\n };\n }, [dispatch]);\n const currentTimestamp = filteredTimestamps[currentStep];\n const currentDate = (0, moment_1.default)(currentTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.us_without_year);\n const currentTime = (0, moment_1.default)(currentTimestamp, dateFormat_1.DateFormat.us_timestamp).format(dateFormat_1.DateFormat.time);\n return (react_1.default.createElement(react_1.default.Fragment, null,\n !isLoading && (react_1.default.createElement(S.TimelapseModal, { open: true, modal: true, nested: true, overlayStyle: { margin: 0, zIndex: 2 }, contentStyle: { margin: 0 }, onClose: closeHandler, closeOnDocumentClick: false },\n react_1.default.createElement(\"div\", { ref: overlayRef },\n react_1.default.createElement(S.TimeAxisContainer, null,\n react_1.default.createElement(S.MobileDateContainer, null,\n react_1.default.createElement(S.Date, null, currentDate),\n react_1.default.createElement(S.Time, null, currentTime)),\n react_1.default.createElement(NavigationButtons_1.default, { currentStep: currentStep, totalSteps: filteredTimestamps.length, onNextStep: handleNextStep, onPreviousStep: handlePreviousStep, onGoToStart: handleGoToStart, onGoToEnd: handleGoToEnd }),\n react_1.default.createElement(TimeAxis_1.default, { currentStep: currentStep, totalSteps: filteredTimestamps.length, timestamps: filteredTimestamps, onStepChange: handleStepChange })),\n react_1.default.createElement(TimeRangeButtons_1.default, null),\n react_1.default.createElement(S.CancelButtonX, { onClick: closeHandler },\n react_1.default.createElement(\"img\", { src: closeTimelapseButton_svg_1.default, alt: t(\"navbar.altClose\") }))))),\n showReadOnlyPopup && (react_1.default.createElement(S.SmallPopup, { open: true },\n react_1.default.createElement(S.AlertInfo, null, t(\"timelapse.readOnly\"))))));\n});\nexports.TimelapseComponent = TimelapseComponent;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./TimelapseComponent\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfirmationMessage = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst Typography_1 = require(\"../../../atoms/Typography\");\nconst MessageContainer = styled_components_1.default.div `\n text-align: center;\n display: flex;\n flex-wrap: wrap;\n max-width: 17rem;\n justify-content: center;\n`;\nconst ConfirmationMessage = ({ message, }) => {\n return (react_1.default.createElement(MessageContainer, null,\n react_1.default.createElement(Typography_1.H4, null, message)));\n};\nexports.ConfirmationMessage = ConfirmationMessage;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedErrorMessage = exports.ModalInput = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../../../assets/styles/colors\");\nconst Modals_style_1 = require(\"../Modals.style\");\nconst ModalInput = ({ focusInputRef, value, onChange, name, type, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(Modals_style_1.TextInput, { type: type, name: name, ref: focusInputRef, value: value, onChange: onChange, placeholder: t(\"exportDataModal.emailPlaceholder\") }));\n};\nexports.ModalInput = ModalInput;\nconst RedErrorMessage = styled_components_1.default.span `\n color: ${colors_1.red100};\n`;\nexports.RedErrorMessage = RedErrorMessage;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReturnArrowIcon = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst ReturnArrowIcon = ({ color = colors_1.gray300, width = 20, height = 20, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(\"svg\", { width: width, height: height, viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-label\": t(\"thresholdConfigurator.altResetButton\") },\n react_1.default.createElement(\"path\", { d: \"M7.5 12.5L2.5 7.5M2.5 7.5L7.5 2.5M2.5 7.5H12.5C15.2614 7.5 17.5 9.73858 17.5 12.5C17.5 15.2614 15.2614 17.5 12.5 17.5H10\", stroke: color, strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n};\nexports.ReturnArrowIcon = ReturnArrowIcon;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UniformDistributionIcon = void 0;\n//add width and height props to svg\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst colors_1 = require(\"../../../../../assets/styles/colors\");\nconst UniformDistributionIcon = ({ color = colors_1.gray300, width = 10, height = 20, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(\"svg\", { width: width, height: height, viewBox: \"0 0 10 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-label\": t(\"thresholdConfigurator.altUniformDistribution\") },\n react_1.default.createElement(\"path\", { d: \"M9 15.25L5.25 19M5.25 19L1.5 15.25M5.25 19L5.25 1\", stroke: color, strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }),\n react_1.default.createElement(\"path\", { d: \"M1.5 4.75L5.25 1M5.25 1L9 4.75M5.25 1L5.25 19\", stroke: color, strokeWidth: \"1.5\", strokeLinecap: \"round\", strokeLinejoin: \"round\" })));\n};\nexports.UniformDistributionIcon = UniformDistributionIcon;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ResetButton = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst ReturnArrowIcon_1 = require(\"./Icons/ReturnArrowIcon\");\nconst ThresholdButton_1 = require(\"./ThresholdButton\");\nconst ResetButton = ({ variant = ThresholdButton_1.ThresholdButtonVariant.IconOnly, resetButtonText, swapIconTextPosition = false, useDarkBlueIcon = false, }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const resetButtonDefaultText = t(\"thresholdConfigurator.resetButtonDesktop\");\n const finalResetButtonText = resetButtonText || resetButtonDefaultText;\n const resetThresholds = () => {\n dispatch((0, thresholdSlice_1.resetUserThresholds)());\n };\n return (react_1.default.createElement(ThresholdButton_1.ThresholdButton, { variant: variant, buttonText: finalResetButtonText, swapIconTextPosition: swapIconTextPosition, useDarkBlueIcon: useDarkBlueIcon, IconComponent: ReturnArrowIcon_1.ReturnArrowIcon, onClick: resetThresholds }));\n};\nexports.ResetButton = ResetButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThresholdButtonVariant = exports.ThresholdButton = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst colors = __importStar(require(\"../../../../assets/styles/colors\"));\nconst S = __importStar(require(\"./../ThresholdConfigurator.style\"));\nvar ThresholdButtonVariant;\n(function (ThresholdButtonVariant) {\n ThresholdButtonVariant[\"IconOnly\"] = \"iconOnly\";\n ThresholdButtonVariant[\"TextWithIcon\"] = \"textWithIcon\";\n})(ThresholdButtonVariant || (exports.ThresholdButtonVariant = ThresholdButtonVariant = {}));\nconst ThresholdButton = ({ variant = ThresholdButtonVariant.IconOnly, buttonText, swapIconTextPosition = false, useDarkBlueIcon = false, IconComponent, onClick, }) => {\n const iconColor = useDarkBlueIcon ? colors.darkBlue : undefined;\n const buttonTextColor = useDarkBlueIcon ? colors.darkBlue : colors.gray300;\n const buttonContent = (0, react_1.useMemo)(() => {\n if (variant === ThresholdButtonVariant.TextWithIcon) {\n return (react_1.default.createElement(S.ThresholdButtonWrapper, null, swapIconTextPosition ? (react_1.default.createElement(react_1.default.Fragment, null,\n buttonText,\n react_1.default.createElement(IconComponent, { color: iconColor }))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(IconComponent, { color: iconColor }),\n buttonText))));\n }\n return react_1.default.createElement(IconComponent, { color: iconColor });\n }, [variant, swapIconTextPosition, buttonText, IconComponent, iconColor]);\n return (react_1.default.createElement(S.ThresholdButton, { onClick: onClick, style: { color: buttonTextColor }, \"$variant\": variant }, buttonContent));\n};\nexports.ThresholdButton = ThresholdButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UniformDistributionButton = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst hooks_1 = require(\"../../../../store/hooks\");\nconst movingStreamSelectors_1 = require(\"../../../../store/movingStreamSelectors\");\nconst thresholdSlice_1 = require(\"../../../../store/thresholdSlice\");\nconst userStates_1 = require(\"../../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../../utils/mapParamsHandler\");\nconst uniformDistributionThresholdCalc_1 = require(\"../../../../utils/uniformDistributionThresholdCalc\");\nconst UniformDistributionIcon_1 = require(\"./Icons/UniformDistributionIcon\");\nconst ThresholdButton_1 = require(\"./ThresholdButton\");\nconst UniformDistributionButton = ({ variant = ThresholdButton_1.ThresholdButtonVariant.IconOnly, uniformDistributionButtonText, swapIconTextPosition = false, useDarkBlueIcon = false, hasErrorMessage, }) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { sessionId, currentUserSettings } = (0, mapParamsHandler_1.useMapParams)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const mobileStream = (0, hooks_1.useAppSelector)((state) => state.mobileStream);\n const fixedStream = (0, hooks_1.useAppSelector)((state) => state.fixedStream);\n const calendarMinMaxValues = (0, hooks_1.useAppSelector)(movingStreamSelectors_1.selectMovingCalendarMinMax);\n const defaultButtonText = t(\"thresholdConfigurator.uniformDistributionButtonDesktop\");\n const isCalendarView = currentUserSettings === userStates_1.UserSettings.CalendarView;\n const streamMinMaxValues = (0, react_1.useMemo)(() => {\n return (0, uniformDistributionThresholdCalc_1.calculateMinMaxValues)(mobileStream, fixedStream, sessionId);\n }, [mobileStream, fixedStream, sessionId]);\n const minMaxValues = (0, react_1.useMemo)(() => {\n var _a, _b;\n const minMax = isCalendarView ? calendarMinMaxValues : streamMinMaxValues;\n const min = (_a = minMax === null || minMax === void 0 ? void 0 : minMax.min) !== null && _a !== void 0 ? _a : null;\n const max = (_b = minMax === null || minMax === void 0 ? void 0 : minMax.max) !== null && _b !== void 0 ? _b : null;\n return min !== null && max !== null ? { min, max } : null;\n }, [isCalendarView, streamMinMaxValues, calendarMinMaxValues]);\n const distributeThresholds = () => {\n if (!minMaxValues) {\n hasErrorMessage(t(\"thresholdConfigurator.noValidDataErrorMessage\"));\n console.error(\"No valid data available to distribute thresholds.\");\n setTimeout(() => hasErrorMessage(\"\"), 3000);\n return;\n }\n const { min, max } = minMaxValues;\n if (min === max) {\n hasErrorMessage(t(\"thresholdConfigurator.sameValuesError\"));\n console.error(\"While using discrete uniform distribution, the Min and Max values cannot both be the same.\");\n setTimeout(() => hasErrorMessage(\"\"), 3000);\n return;\n }\n const thresholds = (0, uniformDistributionThresholdCalc_1.calculateUniformThresholds)(min, max);\n dispatch((0, thresholdSlice_1.setUserThresholdValues)(thresholds));\n };\n const buttonText = uniformDistributionButtonText || defaultButtonText;\n return (react_1.default.createElement(ThresholdButton_1.ThresholdButton, { variant: variant, buttonText: buttonText, swapIconTextPosition: swapIconTextPosition, useDarkBlueIcon: useDarkBlueIcon, IconComponent: UniformDistributionIcon_1.UniformDistributionIcon, onClick: distributeThresholds }));\n};\nexports.UniformDistributionButton = UniformDistributionButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Wrapper = exports.Units = exports.UniformDistributionButton = exports.ThresholdsDisclaimer = exports.ThresholdButtonWrapper = exports.ThresholdButtonsWrapper = exports.ThresholdButtonsMobileWrapper = exports.ThresholdButton = exports.StyledContainer = exports.StaticMobileSliderContainer = exports.SliderContainer = exports.RangeInput = exports.PlaceholderButton = exports.OldStyleSliderText = exports.OldStyleSliderHandles = exports.OldStyleSliderHandle = exports.NumberInput = exports.InputContainer = exports.ErrorMessage = exports.DesktopContainer = exports.ColorBoxNumberInput = exports.ColorBox = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors = __importStar(require(\"../../../assets/styles/colors\"));\nconst media_1 = require(\"../../../utils/media\");\nconst Button_style_1 = require(\"../../atoms/Button/Button.style\");\nconst ThresholdButton_1 = require(\"./ThresholdButtons/ThresholdButton\");\nconst SliderContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n width: 100%;\n\n ${(props) => props.$isMobileOldStyle &&\n `\n padding: 0 0.5rem;\n `}\n`;\nexports.SliderContainer = SliderContainer;\nconst ColorBox = styled_components_1.default.div `\n width: 100%;\n height: 2.4rem;\n display: inline-block;\n border-radius: 0.5rem;\n`;\nexports.ColorBox = ColorBox;\nconst StaticMobileSliderContainer = styled_components_1.default.div `\n display: grid;\n grid-template-columns: repeat(4, auto 1fr) auto;\n grid-template-rows: auto;\n gap: 0.9rem;\n align-items: center;\n width: 100%;\n`;\nexports.StaticMobileSliderContainer = StaticMobileSliderContainer;\nconst InputContainer = styled_components_1.default.div `\n position: relative;\n width: 100%;\n padding-left: 1.5rem;\n justify-content: space-between;\n\n ${(props) => props.$useColorBoxStyle &&\n `\n height: 4.7rem;\n padding-left: 0;\n `}\n\n @media (${media_1.media.mobile}) {\n ${(props) => props.$isMobileOldStyle &&\n `\n height: 4.7rem;\n `}\n }\n\n @media (${media_1.media.desktop}) {\n padding-left: 0;\n height: 30px;\n margin-bottom: 0;\n }\n`;\nexports.InputContainer = InputContainer;\nconst ThresholdButton = (0, styled_components_1.default)(Button_style_1.Button) `\n white-space: nowrap;\n background: ${colors.gray100};\n border: none;\n color: ${colors.gray300};\n width: 100%;\n text-transform: uppercase;\n align-items: center;\n justify-content: center;\n align-content: center;\n\n @media ${media_1.media.desktop} {\n margin-left: 0;\n ${(props) => props.$variant === ThresholdButton_1.ThresholdButtonVariant.IconOnly &&\n `\n height: 3.2rem;\n min-width: 5.2rem;\n `}\n }\n\n @media ${media_1.media.smallDesktop} {\n margin-left: 0;\n ${(props) => props.$variant === ThresholdButton_1.ThresholdButtonVariant.IconOnly &&\n `\n height: 3.2rem;\n min-width: 5.2rem;\n `}\n }\n\n @media ${media_1.media.mobile} {\n margin-left: auto;\n white-space: pre-line;\n text-align: left;\n line-height: 1.6rem;\n width: 100%;\n min-width: 5rem;\n padding: 0.6rem 1.2rem;\n font-size: 1.2rem;\n }\n`;\nexports.ThresholdButton = ThresholdButton;\nconst PlaceholderButton = (0, styled_components_1.default)(Button_style_1.Button) `\n background: transparent;\n border: none;\n width: 100%;\n height: 3.2rem;\n min-width: 5.2rem;\n\n @media ${media_1.media.smallDesktop} {\n display: none;\n }\n\n @media ${media_1.media.mobile} {\n width: 100%;\n min-width: 100px;\n }\n`;\nexports.PlaceholderButton = PlaceholderButton;\nconst ThresholdButtonWrapper = styled_components_1.default.div `\n display: grid;\n gap: 10px;\n align-items: center;\n grid-template-columns: auto 1fr;\n\n @media ${media_1.media.mobile} {\n grid-template-columns: 1fr auto;\n max-width: 100px;\n gap: 10px;\n }\n`;\nexports.ThresholdButtonWrapper = ThresholdButtonWrapper;\nconst ThresholdButtonsWrapper = styled_components_1.default.div `\n display: flex;\n gap: 1.6rem;\n justify-content: center;\n width: fit-content;\n\n @media ${media_1.media.tabletMax} {\n display: none;\n }\n @media ${media_1.media.desktop} {\n display: flex;\n }\n`;\nexports.ThresholdButtonsWrapper = ThresholdButtonsWrapper;\nconst ThresholdButtonsMobileWrapper = styled_components_1.default.div `\n display: grid;\n gap: 1rem;\n justify-content: center;\n width: 100%;\n grid-template-columns: repeat(3, 1fr);\n\n @media ${media_1.media.desktop} {\n display: none;\n }\n`;\nexports.ThresholdButtonsMobileWrapper = ThresholdButtonsMobileWrapper;\nconst UniformDistributionButton = (0, styled_components_1.default)(Button_style_1.Button) `\n white-space: nowrap;\n background: ${colors.gray100};\n border: none;\n color: ${colors.gray300};\n width: 5.2rem;\n text-transform: uppercase;\n align-items: center;\n justify-content: center;\n align-content: center;\n\n @media ${media_1.media.desktop} {\n margin-left: 0;\n height: 32px;\n }\n\n @media ${media_1.media.smallDesktop} {\n margin-left: 0;\n\n height: 32px;\n }\n\n @media ${media_1.media.mobile} {\n display: none;\n }\n`;\nexports.UniformDistributionButton = UniformDistributionButton;\nconst ThresholdsDisclaimer = styled_components_1.default.h3 `\n font-size: 1.2rem;\n font-weight: 600;\n color: ${colors.gray300};\n width: 9.3rem;\n padding: 0rem 0.5rem;\n text-align: right;\n /* compensate for the margin on first threshold thumb */\n margin-right: 1.5rem;\n`;\nexports.ThresholdsDisclaimer = ThresholdsDisclaimer;\nconst DesktopContainer = styled_components_1.default.div `\n display: grid;\n gap: 1rem;\n align-items: center;\n\n @media ${media_1.media.desktop} {\n grid-template-columns: auto 1fr auto auto;\n grid-template-rows: auto;\n gap: 1rem;\n }\n\n @media ${media_1.media.mobile} {\n grid-template-columns: auto;\n }\n`;\nexports.DesktopContainer = DesktopContainer;\nconst RangeInput = styled_components_1.default.input `\n width: 100%;\n position: absolute;\n top: 50%;\n margin-left: -15px;\n transform: translateY(-50%);\n height: 9px;\n overflow: hidden;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n caret-color: transparent;\n background: linear-gradient(\n to right,\n ${colors.green100} ${(props) => props.$firstThumbPos}px,\n ${colors.yellow100} ${(props) => props.$firstThumbPos}px,\n ${colors.yellow100} ${(props) => props.$secondThumbPos}px,\n ${colors.orange100} ${(props) => props.$secondThumbPos}px,\n ${colors.orange100} ${(props) => props.$thirdThumbPos}px,\n ${colors.red100} ${(props) => props.$thirdThumbPos}px,\n ${colors.red100} 100%\n );\n border-radius: 2px;\n outline: none;\n opacity: 0.7;\n transition: opacity 0.2s;\n color: transparent;\n border: none;\n\n &::-webkit-slider-thumb,\n &::-moz-range-thumb,\n &::-ms-thumb {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n width: 0;\n height: 0;\n background: transparent; /* Set the background to transparent */\n border: none;\n }\n\n &::-ms-track {\n width: 0;\n cursor: pointer;\n\n background: transparent;\n border-color: transparent;\n color: transparent;\n }\n\n &::-webkit-slider-thumb:hover,\n &::-moz-range-thumb:hover,\n &::-ms-thumb:hover {\n background: ${colors.gray300};\n border-color: ${colors.gray300};\n }\n\n &::-webkit-slider-runnable-track {\n display: none;\n width: 0;\n height: 0;\n cursor: pointer;\n background: transparent;\n border: none;\n color: transparent;\n border-radius: 0px;\n }\n\n &::-moz-range-track {\n display: none;\n width: 0px;\n height: 0px;\n cursor: pointer;\n background: transparent;\n border: none;\n color: transparent;\n border-radius: 0px;\n }\n\n ::-ms-track {\n display: none;\n width: 0%;\n cursor: pointer;\n background: transparent;\n border-color: transparent;\n color: transparent;\n border-width: 0px;\n }\n\n &:focus::-webkit-slider-runnable-track {\n background: transparent;\n border: none;\n color: transparent;\n }\n\n &:focus::-moz-range-track {\n background: transparent;\n border: none;\n color: transparent;\n }\n\n &:focus {\n outline: none;\n background: transparent;\n height: 0;\n color: transparent;\n caret-color: transparent;\n }\n\n &::-webkit-slider-thumb:active,\n &::-moz-range-thumb:active,\n &::-ms-thumb:active {\n background: ${colors.white};\n border-color: ${colors.gray300};\n color: transparent;\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n @media (${media_1.media.desktop}) {\n margin-left: 0;\n }\n\n ${(props) => props.$isMobileOldStyle &&\n `\n height: 3px;\n top: 60%; /* Move the range input down */\n transform: translateY(-50%);\n color: transparent;\n `}\n`;\nexports.RangeInput = RangeInput;\nconst ColorBoxNumberInput = styled_components_1.default.input `\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n width: 100%;\n min-width: 2.4rem;\n max-width: 2.9rem;\n height: 5rem;\n justify-content: space-between;\n text-align: center;\n border-radius: 5px;\n border: 1px solid ${colors.darkBlueTransparent};\n z-index: 7;\n font-size: 1.6rem;\n color: ${colors.darkBlue};\n\n @media (${media_1.media.mobile}) {\n height: 4.7rem;\n }\n\n @media (${media_1.media.desktop}) {\n padding-left: 0;\n height: 30px;\n margin-bottom: 0;\n }\n\n appearance: textfield;\n -moz-appearance: textfield;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &:focus {\n border: 1px solid ${colors.acBlue};\n outline: 0px solid ${colors.acBlue};\n background-color: ${colors.acBlueTransparent};\n color: ${colors.gray400};\n font-weight: 600;\n }\n`;\nexports.ColorBoxNumberInput = ColorBoxNumberInput;\nconst NumberInput = styled_components_1.default.input `\n font-family: Roboto;\n font-weight: 400;\n font-size: 16px;\n text-align: center;\n color: ${colors.gray300};\n position: absolute;\n top: 10px;\n right: ${(props) => (props.$isLast ? \"0px\" : \"auto\")};\n max-width: 30px;\n height: 50px;\n margin-left: -15px;\n border-radius: 5px;\n border: 1px solid ${colors.gray100};\n box-shadow: 2px 2px 4px 0px rgba(76, 86, 96, 0.1);\n z-index: 7;\n cursor: ${(props) => props.$isMin || props.$isLast\n ? \"default\"\n : \"move\"}; /* fallback if grab cursor is unsupported */\n cursor: ${(props) => (props.$isMin || props.$isLast ? \"default\" : \"grab\")};\n\n appearance: textfield;\n -moz-appearance: textfield;\n\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n &:active {\n cursor: ${(props) => props.$isMin || props.$isLast ? \"default\" : \"grabbing\"};\n cursor: ${(props) => props.$isMin || props.$isLast ? \"default\" : \"-moz-grabbing\"};\n cursor: ${(props) => props.$isMin || props.$isLast ? \"default\" : \"-webkit-grabbing\"};\n }\n &:disabled {\n background-color: ${colors.white};\n }\n\n &:focus-visible {\n border-color: ${(props) => props.$isActive\n ? \"transparent\"\n : props.$hasError\n ? colors.red100\n : colors.gray100};\n outline: 2px solid\n ${(props) => (props.$isActive ? colors.gray100 : \"transparent\")};\n }\n\n @media ${media_1.media.desktop} {\n font-weight: 600;\n font-size: 1.5rem;\n max-width: 40px;\n height: 32px;\n top: -1px;\n }\n`;\nexports.NumberInput = NumberInput;\nconst ErrorMessage = styled_components_1.default.p `\n color: ${colors.red100};\n position: absolute;\n background-color: ${colors.white};\n top: 8%;\n left: 50%;\n transform: translate(-50%, -40%);\n font-size: 1.2rem;\n font-weight: bold;\n text-align: center;\n z-index: 20;\n\n @media ${media_1.media.smallDesktop} {\n font-size: 1.5rem;\n transform: translate(-50%, -50%);\n top: 30%;\n }\n`;\nexports.ErrorMessage = ErrorMessage;\nconst Units = styled_components_1.default.sup `\n font-size: 1.2rem;\n vertical-align: super;\n position: relative;\n font-weight: 400;\n line-height: 1.6;\n color: ${colors.gray400};\n left: 2rem;\n`;\nexports.Units = Units;\nconst StyledContainer = styled_components_1.default.div `\n display: inline;\n`;\nexports.StyledContainer = StyledContainer;\nconst Wrapper = styled_components_1.default.div `\n display: flex;\n gap: 1rem;\n`;\nexports.Wrapper = Wrapper;\nconst OldStyleSliderHandles = styled_components_1.default.div `\n position: absolute;\n top: 60%;\n transform: translate(-50%, -50%);\n cursor: pointer;\n z-index: 10;\n user-select: none;\n`;\nexports.OldStyleSliderHandles = OldStyleSliderHandles;\nconst OldStyleSliderHandle = styled_components_1.default.div `\n width: 13px;\n height: 13px;\n background-color: ${colors.white};\n box-shadow: rgba(166, 166, 166, 0.5) 0px 2px 4px;\n\n border-radius: 50%;\n user-select: none;\n -webkit-user-drag: none;\n pointer-events: none;\n &:active {\n cursor: grabbing;\n cursor: -moz-grabbing;\n cursor: -webkit-grabbing;\n }\n`;\nexports.OldStyleSliderHandle = OldStyleSliderHandle;\nconst OldStyleSliderText = styled_components_1.default.p `\n font-size: 1.2rem;\n font-weight: 600;\n color: ${colors.gray400};\n position: absolute;\n top: -16px;\n left: 50%;\n transform: translateX(-50%);\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n`;\nexports.OldStyleSliderText = OldStyleSliderText;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThresholdsConfigurator = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst userStates_1 = require(\"../../../types/userStates\");\nconst mapParamsHandler_1 = require(\"../../../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst ResetButton_1 = require(\"./ThresholdButtons/ResetButton\");\nconst UniformDistributionButton_1 = require(\"./ThresholdButtons/UniformDistributionButton\");\nconst S = __importStar(require(\"./ThresholdConfigurator.style\"));\nconst ThresholdSlider_1 = __importDefault(require(\"./ThresholdSlider\"));\nconst ThresholdsConfigurator = ({ resetButtonVariant, resetButtonText, uniformDistributionButtonVariant, uniformDistributionButtonText, swapIconTextPosition = false, isMobileOldStyle = false, noDisclaimers = false, useColorBoxStyle = false, useDarkBlueIcon = false, }) => {\n const [errorMessage, setErrorMessage] = (0, react_1.useState)(\"\");\n const { t } = (0, react_i18next_1.useTranslation)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const { unitSymbol, currentUserSettings } = (0, mapParamsHandler_1.useMapParams)();\n const isUniformDistributionButtonVisible = currentUserSettings === userStates_1.UserSettings.ModalView ||\n currentUserSettings === userStates_1.UserSettings.CalendarView;\n (0, react_1.useEffect)(() => {\n if (errorMessage) {\n const timer = setTimeout(() => {\n setErrorMessage(\"\");\n }, 4000);\n return () => clearTimeout(timer);\n }\n }, [errorMessage]);\n const renderSlider = () => (react_1.default.createElement(S.SliderContainer, { \"$isMobileOldStyle\": isMobileOldStyle },\n errorMessage && react_1.default.createElement(S.ErrorMessage, null, errorMessage),\n react_1.default.createElement(ThresholdSlider_1.default, { isMobileOldStyle: isMobileOldStyle, useColorBoxStyle: useColorBoxStyle, setErrorMessage: setErrorMessage, isUniformDistributionButtonVisible: isUniformDistributionButtonVisible })));\n return (react_1.default.createElement(react_1.default.Fragment, null, isMobile || noDisclaimers ? (react_1.default.createElement(react_1.default.Fragment, null,\n renderSlider(),\n react_1.default.createElement(S.ThresholdButtonsMobileWrapper, null,\n react_1.default.createElement(S.PlaceholderButton, null),\n !uniformDistributionButtonText && react_1.default.createElement(S.PlaceholderButton, null),\n uniformDistributionButtonVariant && (react_1.default.createElement(UniformDistributionButton_1.UniformDistributionButton, { variant: uniformDistributionButtonVariant, hasErrorMessage: setErrorMessage, uniformDistributionButtonText: uniformDistributionButtonText })),\n resetButtonVariant && (react_1.default.createElement(ResetButton_1.ResetButton, { variant: resetButtonVariant, resetButtonText: resetButtonText, swapIconTextPosition: swapIconTextPosition, useDarkBlueIcon: useDarkBlueIcon }))))) : (react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.DesktopContainer, null,\n react_1.default.createElement(S.ThresholdsDisclaimer, null, t(\"thresholdConfigurator.disclaimer\")),\n renderSlider(),\n react_1.default.createElement(S.Units, null,\n \"(\",\n unitSymbol,\n \")\")),\n react_1.default.createElement(S.ThresholdButtonsWrapper, null,\n resetButtonVariant && (react_1.default.createElement(ResetButton_1.ResetButton, { variant: resetButtonVariant, resetButtonText: resetButtonText, swapIconTextPosition: swapIconTextPosition, useDarkBlueIcon: useDarkBlueIcon })),\n isUniformDistributionButtonVisible && (react_1.default.createElement(UniformDistributionButton_1.UniformDistributionButton, { hasErrorMessage: setErrorMessage })))))));\n};\nexports.ThresholdsConfigurator = ThresholdsConfigurator;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst lodash_1 = __importDefault(require(\"lodash\"));\nconst react_1 = __importStar(require(\"react\"));\nconst colors = __importStar(require(\"../../../assets/styles/colors\"));\nconst hooks_1 = require(\"../../../store/hooks\");\nconst thresholdSlice_1 = require(\"../../../store/thresholdSlice\");\nconst thresholdEventHandlers_1 = require(\"../../../utils/thresholdEventHandlers\");\nconst thresholdGestureHandlers_1 = require(\"../../../utils/thresholdGestureHandlers\");\nconst thresholdThumbCalculations_1 = require(\"../../../utils/thresholdThumbCalculations\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../../utils/useScreenSizeDetection\"));\nconst S = __importStar(require(\"./ThresholdConfigurator.style\"));\nconst maxThresholdDifference = 1;\nconst ThresholdSlider = ({ isMobileOldStyle, useColorBoxStyle, setErrorMessage, isUniformDistributionButtonVisible, }) => {\n const sliderRef = (0, react_1.useRef)(null);\n const thresholdsState = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const sliderWidth = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectSliderWidth);\n const [thresholdValues, setThresholdValues] = (0, react_1.useState)(thresholdsState);\n const [activeInput, setActiveInput] = (0, react_1.useState)(null);\n const [inputValue, setInputValue] = (0, react_1.useState)(\"\");\n const thumbPositions = (0, hooks_1.useAppSelector)((state) => state.threshold.thumbPositions);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const colorsMap = {\n min: colors.green100,\n low: colors.yellow100,\n middle: colors.orange100,\n high: colors.red100,\n max: colors.red100,\n };\n const debouncedSetUserThresholdValues = (0, react_1.useMemo)(() => lodash_1.default.debounce((values) => dispatch((0, thresholdSlice_1.setUserThresholdValues)(values)), 300), [dispatch]);\n (0, react_1.useEffect)(() => {\n if (!lodash_1.default.isEqual(thresholdsState, thresholdValues)) {\n setThresholdValues(thresholdsState);\n }\n }, [thresholdsState]);\n (0, react_1.useEffect)(() => {\n if (!lodash_1.default.isEqual(thresholdsState, thresholdValues)) {\n debouncedSetUserThresholdValues(thresholdValues);\n }\n }, [thresholdValues, debouncedSetUserThresholdValues]);\n const updateSliderWidthHandler = (0, react_1.useCallback)(() => {\n if (sliderRef.current) {\n const computedStyle = getComputedStyle(sliderRef.current);\n const width = sliderRef.current.clientWidth -\n parseFloat(computedStyle.paddingLeft) -\n parseFloat(computedStyle.paddingRight);\n dispatch((0, thresholdSlice_1.updateSliderWidth)(width));\n }\n }, [dispatch]);\n (0, react_1.useLayoutEffect)(() => {\n updateSliderWidthHandler();\n const handleResize = () => {\n setTimeout(updateSliderWidthHandler, 100);\n };\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [updateSliderWidthHandler, isUniformDistributionButtonVisible]);\n const { handleInputBlur, handleInputFocus, handleInputKeyDown, handleOutsideClick, handleSliderClick, } = (0, thresholdEventHandlers_1.useThresholdHandlers)(setThresholdValues, setInputValue, setActiveInput, setErrorMessage, thresholdValues, sliderRef, activeInput, inputValue, sliderWidth);\n (0, react_1.useEffect)(() => {\n document.addEventListener(\"click\", handleOutsideClick);\n return () => {\n document.removeEventListener(\"click\", handleOutsideClick);\n };\n }, [handleOutsideClick]);\n const updateThumbPositionsHandler = (0, react_1.useCallback)(() => {\n if (sliderRef.current) {\n const { min, low, middle, high, max } = thresholdValues;\n const lowThumb = (0, thresholdThumbCalculations_1.calculateThumbPosition)(low, min, max, sliderWidth, isMobile);\n const middleThumb = (0, thresholdThumbCalculations_1.calculateThumbPosition)(middle, min, max, sliderWidth, isMobile);\n const highThumb = (0, thresholdThumbCalculations_1.calculateThumbPosition)(high, min, max, sliderWidth, isMobile);\n const newThumbPositions = {\n low: lowThumb,\n middle: middleThumb,\n high: highThumb,\n };\n dispatch((0, thresholdSlice_1.updateThumbPositions)(newThumbPositions));\n }\n }, [thresholdValues, sliderWidth, isMobile, dispatch]);\n (0, react_1.useLayoutEffect)(() => {\n updateThumbPositionsHandler();\n }, [thresholdValues, sliderWidth, updateThumbPositionsHandler]);\n const { min, max } = thresholdValues, thumbs = __rest(thresholdValues, [\"min\", \"max\"]);\n const thumbData = Object.entries(thumbs);\n const renderNumberInput = (thresholdKey, value, positionStyle = {}) => (react_1.default.createElement(S.NumberInput, { inputMode: \"numeric\", type: \"number\", value: activeInput === thresholdKey ? inputValue : value.toString(), onFocus: () => handleInputFocus(thresholdKey), onBlur: () => handleInputBlur(thresholdKey, inputValue), style: Object.assign(Object.assign({}, positionStyle), { zIndex: 5, marginLeft: thresholdKey === \"min\" ? \"-15px\" : value === max ? \"0px\" : \"-15px\", left: thresholdKey === \"max\"\n ? \"auto\"\n : `${(0, thresholdThumbCalculations_1.calculateThumbPosition)(value, min, max, sliderWidth, isMobile)}px`, right: thresholdKey === \"max\" ? \"-20px\" : \"auto\" }), onChange: (e) => setInputValue(e.target.value), onTouchStart: thresholdKey === \"min\" || thresholdKey === \"max\"\n ? undefined\n : (event) => (0, thresholdGestureHandlers_1.handleTouchStart)(thresholdKey, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage)({ touches: [{ clientX: event.touches[0].clientX }] }), onMouseDown: thresholdKey === \"min\" || thresholdKey === \"max\"\n ? undefined\n : (0, thresholdGestureHandlers_1.handleMouseDown)(thresholdKey, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage), onKeyDown: thresholdKey === \"min\" || thresholdKey === \"max\"\n ? undefined\n : handleInputKeyDown(thresholdKey), \"$isLast\": thresholdKey === \"max\", \"$isMin\": thresholdKey === \"min\" }));\n const renderDefaultSlider = () => (react_1.default.createElement(react_1.default.Fragment, null,\n !isMobileOldStyle && renderNumberInput(\"min\", min),\n thumbData.map(([thresholdKey, value]) => (react_1.default.createElement(react_1.default.Fragment, { key: thresholdKey },\n react_1.default.createElement(S.RangeInput, { min: min, max: max, \"$firstThumbPos\": thumbPositions.low, \"$secondThumbPos\": thumbPositions.middle, \"$thirdThumbPos\": thumbPositions.high, \"$sliderWidth\": sliderWidth, type: \"range\", value: value, readOnly: true, \"$isMobileOldStyle\": isMobileOldStyle }),\n !isMobileOldStyle &&\n renderNumberInput(thresholdKey, value, {\n zIndex: 5,\n marginLeft: value === min || value === max - maxThresholdDifference\n ? \"0px\"\n : \"-15px\",\n left: value === max || value === max - maxThresholdDifference\n ? \"auto\"\n : `${(0, thresholdThumbCalculations_1.calculateThumbPosition)(value, min, max, sliderWidth, isMobile)}px`,\n right: value === max || value === max - maxThresholdDifference\n ? \"0px\"\n : \"auto\",\n })))),\n !isMobileOldStyle && renderNumberInput(\"max\", max),\n isMobileOldStyle &&\n thumbData.map(([thresholdKey, value]) => (react_1.default.createElement(react_1.default.Fragment, { key: thresholdKey },\n react_1.default.createElement(S.OldStyleSliderHandles, { style: {\n left: `${(0, thresholdThumbCalculations_1.calculateThumbPosition)(value, min, max, sliderWidth, isMobile)}px`,\n }, onTouchStart: thresholdKey === \"min\" || thresholdKey === \"max\"\n ? undefined\n : (event) => (0, thresholdGestureHandlers_1.handleTouchStart)(thresholdKey, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage)({ touches: [{ clientX: event.touches[0].clientX }] }), onMouseDown: thresholdKey === \"min\" || thresholdKey === \"max\"\n ? undefined\n : (0, thresholdGestureHandlers_1.handleMouseDown)(thresholdKey, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage), onKeyDown: handleInputKeyDown(thresholdKey) },\n react_1.default.createElement(S.OldStyleSliderHandle, null),\n react_1.default.createElement(S.OldStyleSliderText, null, value)))))));\n const renderColorBoxSlider = () => (react_1.default.createElement(S.StaticMobileSliderContainer, null,\n react_1.default.createElement(S.ColorBoxNumberInput, { inputMode: \"numeric\", type: \"number\", step: 1, value: activeInput === \"min\" ? inputValue : min.toString(), onFocus: () => handleInputFocus(\"min\"), onBlur: () => handleInputBlur(\"min\", inputValue), onChange: (e) => setInputValue(e.target.value), onKeyDown: handleInputKeyDown(\"min\") }),\n react_1.default.createElement(S.ColorBox, { style: { background: colorsMap[\"min\"] } }),\n thumbData.map(([thresholdKey, value]) => (react_1.default.createElement(react_1.default.Fragment, { key: thresholdKey },\n react_1.default.createElement(S.ColorBoxNumberInput, { inputMode: \"numeric\", type: \"number\", step: 1, value: activeInput === thresholdKey ? inputValue : value.toString(), onFocus: () => handleInputFocus(thresholdKey), onBlur: () => handleInputBlur(thresholdKey, inputValue), onChange: (e) => setInputValue(e.target.value), onKeyDown: handleInputKeyDown(thresholdKey) }),\n react_1.default.createElement(S.ColorBox, { style: { background: colorsMap[thresholdKey] } })))),\n react_1.default.createElement(S.ColorBoxNumberInput, { inputMode: \"numeric\", type: \"number\", step: 5, value: activeInput === \"max\" ? inputValue : max.toString(), onFocus: () => handleInputFocus(\"max\"), onBlur: () => handleInputBlur(\"max\", inputValue), onChange: (e) => setInputValue(e.target.value), onKeyDown: handleInputKeyDown(\"max\") })));\n return (react_1.default.createElement(S.InputContainer, { ref: sliderRef, onClick: (event) => !useColorBoxStyle && handleSliderClick(event), onTouchStart: (event) => !useColorBoxStyle && handleSliderClick(event), \"$isMobileOldStyle\": isMobileOldStyle, \"$useColorBoxStyle\": useColorBoxStyle }, useColorBoxStyle ? renderColorBoxSlider() : renderDefaultSlider()));\n};\nexports.default = ThresholdSlider;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ThresholdConfigurator\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TRUE = exports.FALSE = void 0;\nconst TRUE = \"true\";\nexports.TRUE = TRUE;\nconst FALSE = \"false\";\nexports.FALSE = FALSE;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MIN_ZOOM = exports.DEFAULT_ZOOM = exports.DEFAULT_MAP_CENTER = exports.DEFAULT_MAP_BOUNDS = void 0;\nconst DEFAULT_MAP_CENTER = {\n lat: 37.08877211846209,\n lng: -95.72238290534534,\n};\nexports.DEFAULT_MAP_CENTER = DEFAULT_MAP_CENTER;\nconst DEVICE_CONFIGS = {\n \"mobile-small\": {\n maxWidth: 450,\n bounds: {\n north: 49.3457868,\n south: 24.396308,\n west: -105.17062513488536,\n east: -86.27414067580531,\n },\n },\n \"mobile-medium\": {\n maxWidth: 750,\n bounds: {\n north: 49.3457868,\n south: 24.396308,\n west: -112.15792978034534,\n east: -79.28683603034534,\n },\n },\n \"desktop-small\": {\n maxWidth: 900,\n bounds: {\n north: 49.3457868,\n south: 24.396308,\n west: -115.49777365529263,\n east: -75.94699215539805,\n },\n },\n desktop: {\n maxWidth: Infinity,\n bounds: {\n north: 49.3457868,\n south: 24.396308,\n west: -125.00001,\n east: -66.93457,\n },\n },\n};\nconst getDeviceType = () => {\n const width = window.innerWidth;\n return (Object.keys(DEVICE_CONFIGS).find((deviceType) => width <= DEVICE_CONFIGS[deviceType].maxWidth) || \"desktop\");\n};\nconst getDefaultMapBounds = () => DEVICE_CONFIGS[getDeviceType()].bounds;\nconst DEFAULT_MAP_BOUNDS = getDefaultMapBounds();\nexports.DEFAULT_MAP_BOUNDS = DEFAULT_MAP_BOUNDS;\nconst DEFAULT_ZOOM = 5;\nexports.DEFAULT_ZOOM = DEFAULT_ZOOM;\nconst MIN_ZOOM = 3;\nexports.MIN_ZOOM = MIN_ZOOM;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.urls = void 0;\nconst habitatMap = \"https://habitatmap.org\";\nconst android = \"https://play.google.com/store/apps/details?id=pl.llp.aircasting&hl=en_US\";\nconst iOS = \"https://apps.apple.com/us/app/aircasting/id1587685281#?platform=iphone\";\nconst actions = \"https://aircastingactions.org/\";\n// Top level\nconst about = `${habitatMap}/about`;\nconst airbeam = `${habitatMap}/airbeam`;\nconst aircasting = `${habitatMap}/aircasting`;\nconst map = \"/\";\nconst blog = `${habitatMap}/blog`;\nconst donate = `${habitatMap}/donate`;\nconst press = `${habitatMap}/about/press`;\nconst search = `${habitatMap}/search`;\nconst reactMap = `/`;\n// Airbeam\nconst userStories = `${airbeam}/user-stories`;\nconst airbeamHowItWorks = `${airbeam}/how-it-works`;\nconst faq = `${airbeam}/FAQ`;\nconst usersGuide = `${airbeam}/users-guide`;\nconst airbeamBuyNow = `${airbeam}/buy-it-now`;\nconst airbeamMiniUsersGuide = `${airbeam}/users-guide-airbeammini`;\nconst history = `${about}/history`;\nexports.urls = {\n habitatMap,\n android,\n iOS,\n actions,\n about,\n airbeam,\n aircasting,\n map,\n blog,\n donate,\n press,\n search,\n userStories,\n airbeamHowItWorks,\n faq,\n usersGuide,\n airbeamBuyNow,\n history,\n reactMap,\n airbeamMiniUsersGuide,\n};\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useCalendarBackNavigation = void 0;\nconst react_1 = require(\"react\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst urls_1 = require(\"../const/urls\");\nconst hooks_1 = require(\"../store/hooks\");\nconst movingCalendarStreamSlice_1 = require(\"../store/movingCalendarStreamSlice\");\nconst userStates_1 = require(\"../types/userStates\");\nconst mapParamsHandler_1 = require(\"../utils/mapParamsHandler\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../utils/useScreenSizeDetection\"));\nconst useCalendarBackNavigation = () => {\n const navigate = (0, react_router_dom_1.useNavigate)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const dispatch = (0, hooks_1.useAppDispatch)();\n const { currentUserSettings, previousUserSettings, searchParams } = (0, mapParamsHandler_1.useMapParams)();\n const handleCalendarGoBack = (0, react_1.useCallback)(() => {\n if (currentUserSettings === userStates_1.UserSettings.CalendarView) {\n dispatch((0, movingCalendarStreamSlice_1.resetMovingStreamData)());\n }\n const newSearchParams = new URLSearchParams(searchParams.toString());\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.previousUserSettings, currentUserSettings);\n newSearchParams.set(mapParamsHandler_1.UrlParamsTypes.currentUserSettings, previousUserSettings);\n if (isMobile) {\n newSearchParams.delete(mapParamsHandler_1.UrlParamsTypes.streamId);\n newSearchParams.delete(mapParamsHandler_1.UrlParamsTypes.sessionId);\n }\n navigate(`${urls_1.urls.reactMap}?${newSearchParams.toString()}`);\n }, [\n currentUserSettings,\n navigate,\n previousUserSettings,\n searchParams,\n isMobile,\n ]);\n return handleCalendarGoBack;\n};\nexports.useCalendarBackNavigation = useCalendarBackNavigation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useScrollEndListener = void 0;\nconst lodash_1 = require(\"lodash\");\nconst react_1 = require(\"react\");\nconst useScrollEndListener = (elementRef, onScrollEnd) => {\n (0, react_1.useEffect)(() => {\n const listInnerElement = elementRef.current;\n if (listInnerElement) {\n const saveScrollPosition = (0, lodash_1.debounce)((position) => {\n localStorage.setItem(\"sessionsListScrollPosition\", position.toString());\n }, 150);\n const checkScrollEnd = (0, lodash_1.debounce)(() => {\n const { scrollTop, scrollHeight, clientHeight } = listInnerElement;\n const isNearBottom = scrollTop + clientHeight >= scrollHeight - 10;\n if (isNearBottom) {\n onScrollEnd();\n }\n }, 200);\n const onScroll = () => {\n const { scrollTop } = listInnerElement;\n saveScrollPosition(scrollTop);\n checkScrollEnd();\n };\n const savedPosition = localStorage.getItem(\"sessionsListScrollPosition\");\n if (savedPosition) {\n requestAnimationFrame(() => {\n listInnerElement.scrollTop = parseInt(savedPosition);\n });\n }\n listInnerElement.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => {\n listInnerElement.removeEventListener(\"scroll\", onScroll);\n saveScrollPosition.cancel();\n checkScrollEnd.cancel();\n };\n }\n }, [elementRef, onScrollEnd]);\n};\nexports.useScrollEndListener = useScrollEndListener;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resources = void 0;\nconst i18next_1 = __importDefault(require(\"i18next\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst translation_json_1 = __importDefault(require(\"./en/translation.json\"));\nexports.resources = {\n en: {\n translation: translation_json_1.default,\n },\n};\ni18next_1.default.use(react_i18next_1.initReactI18next).init({\n lng: \"en\",\n resources: exports.resources,\n});\nexports.default = i18next_1.default;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Units = exports.ThresholdContainer = exports.ThresholdButtonsContainer = exports.StyledContainerWithGraph = exports.StyledContainer = exports.StationDataContainer = exports.SliderWrapper = exports.SelectLabelContainer = exports.Heading = exports.GraphContainer = exports.ErrorMessage = exports.CalendarPageLayout = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst colors_1 = require(\"../../assets/styles/colors\");\nconst Typography_1 = require(\"../../components/atoms/Typography\");\nconst Navbar_style_1 = require(\"../../components/molecules/Navbar/Navbar.style\");\nconst media_1 = require(\"../../utils/media\");\nconst CalendarPageLayout = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n background-color: ${colors_1.gray100};\n\n @media ${media_1.media.smallDesktop} {\n padding: 0.5rem 1.5rem;\n position: relative;\n top: ${Navbar_style_1.NAVBAR_HEIGHT};\n }\n`;\nexports.CalendarPageLayout = CalendarPageLayout;\nconst StationDataContainer = styled_components_1.default.div `\n box-shadow: 0px 5px 20px 2px rgba(0, 0, 0, 0.1);\n width: 100vw;\n max-width: 1600px;\n min-height: 100vh;\n margin: 0;\n\n @media ${media_1.media.desktop} {\n margin: 20px 5vw;\n }\n`;\nexports.StationDataContainer = StationDataContainer;\nconst Heading = (0, styled_components_1.default)(Typography_1.H3) `\n padding-bottom: 2rem;\n font-weight: 600;\n font-size: 22px;\n\n @media ${media_1.media.smallDesktop} {\n font-size: 28px;\n font-weight: 500;\n }\n`;\nexports.Heading = Heading;\nconst Units = styled_components_1.default.sup `\n font-size: 1.4rem;\n vertical-align: super;\n position: relative;\n top: -0.3rem;\n right: -0.2rem;\n font-weight: 400;\n line-height: 1.6;\n margin-left: 0.2rem;\n`;\nexports.Units = Units;\nconst StyledContainer = styled_components_1.default.div `\n display: grid;\n grid-template-columns: auto auto 1fr;\n align-items: right;\n grid-gap: 1rem;\n width: 100%;\n justify-items: flex-end;\n\n @media ${media_1.media.mobile} {\n display: inline;\n }\n`;\nexports.StyledContainer = StyledContainer;\nconst StyledContainerWithGraph = (0, styled_components_1.default)(StyledContainer) `\n grid-template-columns: auto 2fr 1fr;\n`;\nexports.StyledContainerWithGraph = StyledContainerWithGraph;\nconst ThresholdContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n margin-bottom: 3rem;\n background-color: ${colors_1.white};\n\n @media ${media_1.media.desktop} {\n padding: 3rem 10rem;\n margin-bottom: 0;\n }\n\n @media ${media_1.media.largeDesktop} {\n padding: 3rem 10rem;\n margin-bottom: 0;\n }\n ${(props) => props.$isMobile && `padding: 1.5rem; gap: 2rem;`}\n`;\nexports.ThresholdContainer = ThresholdContainer;\nconst ThresholdButtonsContainer = styled_components_1.default.div `\n display: grid;\n justify-content: space-between;\n align-items: center;\n gap: 2.4rem;\n min-width: 4.4rem;\n grid-template-columns: repeat(2, 1fr);\n`;\nexports.ThresholdButtonsContainer = ThresholdButtonsContainer;\nconst ErrorMessage = styled_components_1.default.p `\n color: ${colors_1.red100};\n position: absolute;\n background-color: ${colors_1.white};\n top: 8%;\n left: 50%;\n transform: translate(-50%, -40%);\n font-size: 1.2rem;\n font-weight: bold;\n text-align: center;\n z-index: 20;\n\n @media ${media_1.media.smallDesktop} {\n font-size: 1.5rem;\n transform: translate(-50%, -50%);\n top: 30%;\n }\n`;\nexports.ErrorMessage = ErrorMessage;\nconst SliderWrapper = styled_components_1.default.div `\n display: flex;\n @media ${media_1.media.desktop} {\n margin-top: 4rem;\n }\n`;\nexports.SliderWrapper = SliderWrapper;\nconst GraphContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n margin-bottom: 3rem;\n background-color: ${colors_1.white};\n\n @media ${media_1.media.desktop} {\n padding: 3rem 10rem;\n margin-bottom: 0;\n }\n\n @media ${media_1.media.largeDesktop} {\n padding: 3rem 10rem;\n margin-bottom: 0;\n }\n\n ${(props) => props.$isMobile && `padding: 1.5rem; gap: 2rem;`}\n`;\nexports.GraphContainer = GraphContainer;\nconst SelectLabelContainer = styled_components_1.default.span `\n display: flex;\n position: absolute;\n top: 6rem;\n font-size: 1.6rem;\n color: ${colors_1.gray400};\n`;\nexports.SelectLabelContainer = SelectLabelContainer;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalendarPage = void 0;\nconst moment_timezone_1 = __importDefault(require(\"moment-timezone\"));\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst Calendar_1 = require(\"../../components/molecules/Calendar\");\nconst EmptyCalendar_1 = require(\"../../components/molecules/Calendar/EmptyCalendar\");\nconst HeaderToggle_1 = __importDefault(require(\"../../components/molecules/Calendar/HeaderToggle/HeaderToggle\"));\nconst FixedStreamStationHeader_1 = require(\"../../components/molecules/FixedStreamStationHeader\");\nconst Graph_1 = require(\"../../components/organisms/Graph/Graph\");\nconst MeasurementComponent_1 = __importDefault(require(\"../../components/organisms/Graph/MeasurementComponent\"));\nconst TimeRage_1 = __importDefault(require(\"../../components/organisms/Graph/TimeRage\"));\nconst ResetButton_1 = require(\"../../components/organisms/ThresholdConfigurator/ThresholdButtons/ResetButton\");\nconst ThresholdButton_1 = require(\"../../components/organisms/ThresholdConfigurator/ThresholdButtons/ThresholdButton\");\nconst UniformDistributionButton_1 = require(\"../../components/organisms/ThresholdConfigurator/ThresholdButtons/UniformDistributionButton\");\nconst fixedStreamSelectors_1 = require(\"../../store/fixedStreamSelectors\");\nconst fixedStreamSlice_1 = require(\"../../store/fixedStreamSlice\");\nconst hooks_1 = require(\"../../store/hooks\");\nconst movingCalendarStreamSlice_1 = require(\"../../store/movingCalendarStreamSlice\");\nconst thresholdSlice_1 = require(\"../../store/thresholdSlice\");\nconst filters_1 = require(\"../../types/filters\");\nconst useBackNavigation_1 = require(\"../../hooks/useBackNavigation\");\nconst mapParamsHandler_1 = require(\"../../utils/mapParamsHandler\");\nconst measurementsCalc_1 = require(\"../../utils/measurementsCalc\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../utils/useScreenSizeDetection\"));\nconst ThresholdConfigurator_1 = require(\"../../components/organisms/ThresholdConfigurator/ThresholdConfigurator\");\nconst S = __importStar(require(\"./CalendarPage.style\"));\nconst CalendarPage = ({ children }) => {\n var _a, _b;\n const dispatch = (0, hooks_1.useAppDispatch)();\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const { t } = (0, react_i18next_1.useTranslation)();\n const handleCalendarGoBack = (0, useBackNavigation_1.useCalendarBackNavigation)();\n const { unitSymbol, streamId } = (0, mapParamsHandler_1.useMapParams)();\n const fixedStreamData = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedData);\n const movingCalendarData = (0, hooks_1.useAppSelector)(movingCalendarStreamSlice_1.movingData);\n const { startTime, endTime } = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectFixedStreamShortInfo);\n const isLoading = (0, hooks_1.useAppSelector)(fixedStreamSelectors_1.selectIsLoading);\n const rangeDisplayRef = (0, react_1.useRef)(null);\n const { formattedMinTime, formattedMaxTime } = (0, measurementsCalc_1.formatTime)(startTime, endTime);\n const [errorMessage, setErrorMessage] = (0, react_1.useState)(\"\");\n const [initialDataFetched, setInitialDataFetched] = (0, react_1.useState)(false);\n // Maintain selectedTimestamp across fetches until explicitly cleared.\n const [selectedTimestamp, setSelectedTimestamp] = (0, react_1.useState)(null);\n const calendarIsVisible = (movingCalendarData.data.length > 0 || isLoading) &&\n streamId &&\n fixedStreamData.stream.startTime;\n const streamEndTime = (_b = (_a = fixedStreamData.stream.endTime) !== null && _a !== void 0 ? _a : fixedStreamData.stream.lastUpdate) !== null && _b !== void 0 ? _b : (0, moment_timezone_1.default)().format(\"YYYY-MM-DD\");\n (0, react_1.useEffect)(() => {\n if (streamId && !fixedStreamData.measurements.length) {\n dispatch((0, fixedStreamSlice_1.fetchFixedStreamById)(streamId));\n }\n }, [streamId, dispatch, fixedStreamData.measurements.length]);\n (0, react_1.useEffect)(() => {\n if (fixedStreamData.stream) {\n dispatch((0, thresholdSlice_1.setDefaultThresholdsValues)(fixedStreamData.stream));\n }\n }, [fixedStreamData.stream, dispatch]);\n (0, react_1.useEffect)(() => {\n if (!initialDataFetched &&\n streamId &&\n fixedStreamData.stream.startTime &&\n streamEndTime) {\n dispatch((0, movingCalendarStreamSlice_1.fetchNewMovingStream)({\n id: streamId,\n startDate: fixedStreamData.stream.startTime,\n endDate: streamEndTime,\n }));\n setInitialDataFetched(true);\n }\n }, [\n initialDataFetched,\n streamId,\n fixedStreamData.stream.startTime,\n streamEndTime,\n dispatch,\n ]);\n (0, react_1.useEffect)(() => {\n window.addEventListener(\"popstate\", handleCalendarGoBack);\n return () => window.removeEventListener(\"popstate\", handleCalendarGoBack);\n }, [handleCalendarGoBack]);\n const handleDayClick = (timestamp) => {\n setSelectedTimestamp(timestamp);\n };\n const renderMobileGraph = () => (react_1.default.createElement(S.GraphContainer, { \"$isMobile\": isMobile },\n react_1.default.createElement(HeaderToggle_1.default, { isCalendarPage: true, titleText: react_1.default.createElement(S.StyledContainer, null, t(\"calendarHeader.graphTitle\")), componentToToggle: react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(S.SelectLabelContainer, null, t(\"calendarHeader.selectRange\")),\n react_1.default.createElement(TimeRage_1.default, { ref: rangeDisplayRef, minTime: formattedMinTime, maxTime: formattedMaxTime }),\n react_1.default.createElement(Graph_1.Graph, { streamId: Number(streamId), sessionType: filters_1.SessionTypes.FIXED, isCalendarPage: true, rangeDisplayRef: rangeDisplayRef, selectedTimestamp: selectedTimestamp, onDayClick: handleDayClick }),\n react_1.default.createElement(MeasurementComponent_1.default, null)) })));\n const renderThresholdContainer = () => (react_1.default.createElement(S.ThresholdContainer, { \"$isMobile\": isMobile },\n react_1.default.createElement(HeaderToggle_1.default, { titleText: react_1.default.createElement(S.StyledContainer, null,\n t(\"calendarHeader.legendTitle\"),\n react_1.default.createElement(S.Units, null,\n \"(\",\n unitSymbol,\n \")\"),\n !isMobile && (react_1.default.createElement(S.ThresholdButtonsContainer, null,\n react_1.default.createElement(ResetButton_1.ResetButton, { variant: ThresholdButton_1.ThresholdButtonVariant.TextWithIcon, swapIconTextPosition: true }),\n react_1.default.createElement(UniformDistributionButton_1.UniformDistributionButton, { variant: ThresholdButton_1.ThresholdButtonVariant.TextWithIcon, swapIconTextPosition: true, hasErrorMessage: setErrorMessage })))), componentToToggle: isMobile ? (react_1.default.createElement(ThresholdConfigurator_1.ThresholdsConfigurator, { resetButtonVariant: ThresholdButton_1.ThresholdButtonVariant.TextWithIcon, resetButtonText: t(\"thresholdConfigurator.resetButton\"), useColorBoxStyle: true, uniformDistributionButtonText: t(\"thresholdConfigurator.uniformDistributionButton\"), uniformDistributionButtonVariant: ThresholdButton_1.ThresholdButtonVariant.TextWithIcon })) : (react_1.default.createElement(S.SliderWrapper, null,\n errorMessage && react_1.default.createElement(S.ErrorMessage, null, errorMessage),\n react_1.default.createElement(ThresholdConfigurator_1.ThresholdsConfigurator, { noDisclaimers: true }))) })));\n const renderDesktopGraph = () => (react_1.default.createElement(S.GraphContainer, { \"$isMobile\": isMobile },\n react_1.default.createElement(HeaderToggle_1.default, { titleText: react_1.default.createElement(S.StyledContainerWithGraph, null,\n t(\"calendarHeader.graphTitle\"),\n react_1.default.createElement(react_1.default.Fragment, null,\n react_1.default.createElement(MeasurementComponent_1.default, null),\n react_1.default.createElement(TimeRage_1.default, { ref: rangeDisplayRef, minTime: formattedMinTime, maxTime: formattedMaxTime }))), componentToToggle: react_1.default.createElement(Graph_1.Graph, { streamId: streamId, sessionType: filters_1.SessionTypes.FIXED, isCalendarPage: true, rangeDisplayRef: rangeDisplayRef, selectedTimestamp: selectedTimestamp, onDayClick: handleDayClick }) })));\n return (react_1.default.createElement(react_1.default.Fragment, null,\n children,\n react_1.default.createElement(S.CalendarPageLayout, null,\n react_1.default.createElement(S.StationDataContainer, null,\n react_1.default.createElement(FixedStreamStationHeader_1.FixedStreamStationHeader, null),\n isMobile && renderMobileGraph(),\n renderThresholdContainer(),\n calendarIsVisible ? (react_1.default.createElement(Calendar_1.Calendar, { streamId: streamId, minCalendarDate: fixedStreamData.stream.startTime, maxCalendarDate: streamEndTime, onDayClick: handleDayClick, selectedTimestamp: selectedTimestamp })) : (react_1.default.createElement(EmptyCalendar_1.EmptyCalendar, null)),\n !isMobile && renderDesktopGraph()))));\n};\nexports.CalendarPage = CalendarPage;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapPage = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_google_maps_1 = require(\"@vis.gl/react-google-maps\");\nconst MapButtons_1 = require(\"../../components/molecules/MapButtons/MapButtons\");\nconst Map_1 = require(\"../../components/organisms/Map/Map\");\nconst focusTabController_1 = require(\"../../utils/focusTabController\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../../utils/useScreenSizeDetection\"));\nconst googleMapsApiKey = process.env.GOOGLE_MAPS_API_KEY || \"\";\nconst MapPage = ({ children }) => {\n const isMobile = (0, useScreenSizeDetection_1.default)();\n return (react_1.default.createElement(react_google_maps_1.APIProvider, { apiKey: googleMapsApiKey, onLoad: () => console.log(\"Maps API has loaded.\") },\n children,\n !isMobile && react_1.default.createElement(MapButtons_1.MapButtons, null),\n react_1.default.createElement(focusTabController_1.FocusTabController, null),\n react_1.default.createElement(Map_1.Map, null)));\n};\nexports.MapPage = MapPage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MapPage\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Description = exports.Title = exports.ContentContainer = exports.PageContainer = void 0;\nconst styled_components_1 = __importDefault(require(\"styled-components\"));\nconst PageContainer = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n align-items: center;\n height: 50vh;\n`;\nexports.PageContainer = PageContainer;\nconst ContentContainer = styled_components_1.default.div `\n text-align: center;\n`;\nexports.ContentContainer = ContentContainer;\nconst Title = styled_components_1.default.h1 `\n font-size: 3rem;\n margin-bottom: 1.25rem;\n`;\nexports.Title = Title;\nconst Description = styled_components_1.default.p `\n font-size: 1.2rem;\n`;\nexports.Description = Description;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NotFoundPage = void 0;\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst NotFoundPage_style_1 = require(\"./NotFoundPage.style\");\nconst NotFoundPage = ({ children }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(react_1.default.Fragment, null,\n children,\n react_1.default.createElement(NotFoundPage_style_1.PageContainer, null,\n react_1.default.createElement(NotFoundPage_style_1.ContentContainer, null,\n react_1.default.createElement(NotFoundPage_style_1.Title, null, t(\"notFoundPage.header\")),\n react_1.default.createElement(NotFoundPage_style_1.Description, null,\n t(\"notFoundPage.message\"),\n \" \")))));\n};\nexports.NotFoundPage = NotFoundPage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./NotFoundPage\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Title = exports.PageContainer = exports.Dot = exports.Description = exports.ContentContainer = exports.BlueButton = void 0;\nconst styled_components_1 = __importStar(require(\"styled-components\"));\nconst colors_1 = require(\"../../assets/styles/colors\");\nconst Button_style_1 = require(\"../../components/atoms/Button/Button.style\");\nconst media_1 = require(\"../../utils/media\");\nconst dotFlashing = (0, styled_components_1.keyframes) `\n 0% {\n opacity: 0.2;\n }\n 20% {\n opacity: 1;\n }\n 100% {\n opacity: 0.2;\n }\n`;\nconst Dot = styled_components_1.default.span `\n font-size: 24px;\n margin: 0 2px;\n animation: ${dotFlashing} 1.4s infinite both;\n animation-delay: ${({ delay }) => delay};\n`;\nexports.Dot = Dot;\nconst PageContainer = styled_components_1.default.div `\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n width: 100vw;\n position: absolute;\n top: 0;\n left: 0;\n`;\nexports.PageContainer = PageContainer;\nconst ContentContainer = styled_components_1.default.div `\n display: flex;\n flex-direction: column;\n text-align: center;\n justify-content: center;\n align-items: center;\n gap: 1.5rem;\n color: ${colors_1.gray300};\n width: 80%;\n\n @media ${media_1.media.desktop} {\n width: 50%;\n }\n`;\nexports.ContentContainer = ContentContainer;\nconst Title = styled_components_1.default.h1 `\n font-size: 2rem;\n margin-bottom: 1.25rem;\n font-weight: 500;\n color: ${colors_1.gray400};\n\n @media ${media_1.media.desktop} {\n font-size: 2.5rem;\n }\n`;\nexports.Title = Title;\nconst Description = styled_components_1.default.p `\n font-size: 1.4rem;\n line-height: 1.6;\n margin-bottom: 1.5rem;\n @media ${media_1.media.desktop} {\n font-size: 1.6rem;\n }\n`;\nexports.Description = Description;\nconst BlueButton = (0, styled_components_1.default)(Button_style_1.Button) `\n background-color: ${colors_1.blue};\n color: ${colors_1.white};\n font-weight: 600;\n border: none;\n width: fit-content;\n font-size: 1.4rem;\n padding: 1rem 1.2rem;\n text-transform: uppercase;\n`;\nexports.BlueButton = BlueButton;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RedirectPage = void 0;\nconst react_1 = __importStar(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst S = __importStar(require(\"./RedirectPage.style\"));\nconst Title_1 = __importDefault(require(\"./Title\"));\nconst MAP_PAGE_PATH = \"/\";\nconst RedirectPage = ({ children }) => {\n const { t } = (0, react_i18next_1.useTranslation)();\n const navigate = (0, react_router_dom_1.useNavigate)();\n (0, react_1.useEffect)(() => {\n const timer = setTimeout(() => {\n navigate(MAP_PAGE_PATH);\n }, 10000);\n return () => clearTimeout(timer);\n }, [navigate]);\n return (react_1.default.createElement(react_1.default.Fragment, null,\n children,\n react_1.default.createElement(S.PageContainer, null,\n react_1.default.createElement(S.ContentContainer, null,\n react_1.default.createElement(Title_1.default, null),\n react_1.default.createElement(S.Description, null,\n t(\"redirectPage.message\"),\n \" \"),\n react_1.default.createElement(S.BlueButton, { onClick: () => navigate(MAP_PAGE_PATH) }, t(\"redirectPage.button\"))))));\n};\nexports.RedirectPage = RedirectPage;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = __importDefault(require(\"react\"));\nconst react_i18next_1 = require(\"react-i18next\");\nconst S = __importStar(require(\"./RedirectPage.style\"));\nconst Loading = () => {\n const { t } = (0, react_i18next_1.useTranslation)();\n return (react_1.default.createElement(S.Title, null,\n t(\"redirectPage.header\"),\n react_1.default.createElement(S.Dot, { delay: \"0s\" }, \".\"),\n react_1.default.createElement(S.Dot, { delay: \"0.2s\" }, \".\"),\n react_1.default.createElement(S.Dot, { delay: \"0.4s\" }, \".\")));\n};\nexports.default = Loading;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./RedirectPage\"), exports);\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setVisibility = exports.setSize = exports.setAverage = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst initialState = {\n clusterAverage: null,\n clusterSize: null,\n loading: false,\n visible: false,\n};\nconst clusterSlice = (0, toolkit_1.createSlice)({\n name: \"cluster\",\n initialState,\n reducers: {\n setAverage: (state, action) => {\n state.clusterAverage = action.payload;\n },\n setSize: (state, action) => {\n state.clusterSize = action.payload;\n },\n setVisibility: (state, action) => {\n state.visible = action.payload;\n },\n },\n});\n_a = clusterSlice.actions, exports.setAverage = _a.setAverage, exports.setSize = _a.setSize, exports.setVisibility = _a.setVisibility;\nexports.default = clusterSlice.reducer;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectFetchingCrowdMapData = exports.selectCrowdMapRectangles = exports.setFetchingCrowdMapData = exports.clearCrowdMap = exports.fetchCrowdMapData = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n fetchingData: true,\n rectangles: [],\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nexports.fetchCrowdMapData = (0, toolkit_1.createAsyncThunk)(\"crowdMap/getCrowdMapData\", (filters, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchCrowdMap(filters));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchCrowdMapData\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchCrowdMap(filters),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nconst crowdMapSlice = (0, toolkit_1.createSlice)({\n name: \"crowdMap\",\n initialState,\n reducers: {\n clearCrowdMap: (state) => {\n state.rectangles = [];\n },\n setFetchingCrowdMapData(state, action) {\n state.fetchingData = action.payload;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchCrowdMapData.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchCrowdMapData.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.rectangles = action.payload;\n state.fetchingData = false;\n state.error = null;\n })\n .addCase(exports.fetchCrowdMapData.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n state.fetchingData = false;\n });\n },\n});\n_a = crowdMapSlice.actions, exports.clearCrowdMap = _a.clearCrowdMap, exports.setFetchingCrowdMapData = _a.setFetchingCrowdMapData;\nexports.default = crowdMapSlice.reducer;\nconst selectCrowdMapRectangles = (state) => state.crowdMap.rectangles;\nexports.selectCrowdMapRectangles = selectCrowdMapRectangles;\nconst selectFetchingCrowdMapData = (state) => state.crowdMap.fetchingData;\nexports.selectFetchingCrowdMapData = selectFetchingCrowdMapData;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exportSessionSlice = exports.exportSession = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n data: {\n sessionsIds: [],\n email: \"\",\n },\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nexports.exportSession = (0, toolkit_1.createAsyncThunk)(\"session/exportSession\", (sessionData, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.exportSessionData(sessionData.sessionsIds, sessionData.email));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"exportSession\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.exportSessionData(sessionData.sessionsIds, sessionData.email),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nexports.exportSessionSlice = (0, toolkit_1.createSlice)({\n name: \"session\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder.addCase(exports.exportSession.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.data = action.payload;\n state.error = null;\n });\n builder.addCase(exports.exportSession.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n state.data = initialState.data;\n });\n },\n});\nexports.default = exports.exportSessionSlice.reducer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectIsDormantSessionsFetched = exports.selectIsActiveSessionsFetched = exports.selectFixedSessionsStatusFulfilled = exports.selectFixedSessionsPoints = exports.selectFixedSessionsList = exports.selectDormantFixedSessionsState = exports.selectActiveFixedSessionsState = void 0;\nconst reselect_1 = require(\"reselect\");\nconst sessionFiltersSlice_1 = require(\"./sessionFiltersSlice\");\nconst selectActiveFixedSessionsState = (state) => state.fixedSessions.activeSessions;\nexports.selectActiveFixedSessionsState = selectActiveFixedSessionsState;\nconst selectDormantFixedSessionsState = (state) => state.fixedSessions.dormantSessions;\nexports.selectDormantFixedSessionsState = selectDormantFixedSessionsState;\nconst selectFixedSessionsStatusFulfilled = (state) => state.fixedSessions.status === \"FULFILLED\" /* StatusEnum.Fulfilled */;\nexports.selectFixedSessionsStatusFulfilled = selectFixedSessionsStatusFulfilled;\nconst selectFixedSessionsState = (state) => state.fixedSessions;\nconst selectIsActiveSessionsFetched = (0, reselect_1.createSelector)([selectFixedSessionsState], (fixedSessionsState) => fixedSessionsState.isActiveSessionsFetched);\nexports.selectIsActiveSessionsFetched = selectIsActiveSessionsFetched;\nconst selectIsDormantSessionsFetched = (0, reselect_1.createSelector)([selectFixedSessionsState], (fixedSessionsState) => fixedSessionsState.isDormantSessionsFetched);\nexports.selectIsDormantSessionsFetched = selectIsDormantSessionsFetched;\nconst transformSessionData = (sessions) => sessions.map(({ id, title, lastMeasurementValue, startTimeLocal, endTimeLocal, latitude, longitude, streams, lastHourlyAverageValue, }) => {\n const firstStream = streams[Object.keys(streams)[0]] || {};\n return {\n id,\n title,\n sensorName: (firstStream === null || firstStream === void 0 ? void 0 : firstStream.sensorName) || \"\",\n lastMeasurementValue,\n startTime: startTimeLocal,\n endTime: endTimeLocal,\n averageValue: lastHourlyAverageValue || lastMeasurementValue,\n point: {\n lat: latitude,\n lng: longitude,\n streamId: firstStream.id.toString() || \"0\",\n },\n streamId: firstStream.id || 0,\n };\n});\nconst selectSessionsByType = (0, reselect_1.createSelector)([\n selectActiveFixedSessionsState,\n selectDormantFixedSessionsState,\n (_, type) => type,\n], (activeSessions, dormantSessions, type) => {\n return type === sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE\n ? activeSessions\n : dormantSessions;\n});\nconst selectTransformedSessionsByType = (0, reselect_1.createSelector)([selectSessionsByType], (sessions) => transformSessionData(sessions));\nconst selectFixedSessionsPoints = (0, reselect_1.createSelector)([selectTransformedSessionsByType], (transformedSessions) => {\n return transformedSessions.map(({ id, title, sensorName, lastMeasurementValue, averageValue, startTime, endTime, point, }) => ({\n id,\n title,\n sensorName,\n startTime,\n endTime,\n lastMeasurementValue,\n averageValue,\n point,\n }));\n});\nexports.selectFixedSessionsPoints = selectFixedSessionsPoints;\nconst selectFixedSessionsList = (0, reselect_1.createSelector)([selectTransformedSessionsByType], (transformedSessions) => {\n return transformedSessions.map(({ id, title, sensorName, averageValue, startTime, endTime, streamId, }) => ({\n id,\n title,\n sensorName,\n averageValue,\n startTime,\n endTime,\n streamId,\n }));\n});\nexports.selectFixedSessionsList = selectFixedSessionsList;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cleanSessions = exports.fetchDormantFixedSessions = exports.fetchActiveFixedSessions = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst sessionFiltersSlice_1 = require(\"./sessionFiltersSlice\");\nconst initialState = {\n fetchableSessionsCount: 0,\n activeSessions: [],\n dormantSessions: [],\n isActiveSessionsFetched: false,\n isDormantSessionsFetched: false,\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nconst createSessionFetchThunk = (type, endpoint) => {\n return (0, toolkit_1.createAsyncThunk)(`sessions/fetch${type.charAt(0).toUpperCase() + type.slice(1)}FixedSessions`, (sessionsData, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(endpoint(sessionsData.filters));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: `fetch${type.charAt(0).toUpperCase() + type.slice(1)}FixedSessions`,\n endpoint: endpoint(sessionsData.filters),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n }), {\n condition: (_, { getState }) => {\n const { fixedSessions } = getState();\n return fixedSessions.status !== \"PENDING\" /* StatusEnum.Pending */;\n },\n });\n};\nexports.fetchActiveFixedSessions = createSessionFetchThunk(sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE, apiEndpoints_1.API_ENDPOINTS.fetchActiveFixedSessions);\nexports.fetchDormantFixedSessions = createSessionFetchThunk(sessionFiltersSlice_1.FixedSessionsTypes.DORMANT, apiEndpoints_1.API_ENDPOINTS.fetchDormantFixedSessions);\nconst fixedSessionsSlice = (0, toolkit_1.createSlice)({\n name: \"fixedSessions\",\n initialState,\n reducers: {\n cleanSessions(state) {\n state.fetchableSessionsCount = 0;\n state.activeSessions = [];\n state.dormantSessions = [];\n state.isActiveSessionsFetched = false;\n state.isDormantSessionsFetched = false;\n state.status = \"IDLE\" /* StatusEnum.Idle */;\n state.error = null;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchActiveFixedSessions.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchActiveFixedSessions.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.activeSessions = action.payload.sessions;\n state.fetchableSessionsCount = action.payload.fetchableSessionsCount;\n state.isActiveSessionsFetched = true;\n state.error = null;\n })\n .addCase(exports.fetchActiveFixedSessions.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n });\n builder\n .addCase(exports.fetchDormantFixedSessions.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchDormantFixedSessions.fulfilled, (state, action) => {\n var _a;\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.dormantSessions = ((_a = action.meta) === null || _a === void 0 ? void 0 : _a.arg.isAdditional)\n ? [...state.dormantSessions, ...action.payload.sessions]\n : action.payload.sessions;\n state.fetchableSessionsCount = action.payload.fetchableSessionsCount;\n state.isDormantSessionsFetched = true;\n state.error = null;\n })\n .addCase(exports.fetchDormantFixedSessions.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n });\n },\n});\nexports.cleanSessions = fixedSessionsSlice.actions.cleanSessions;\nexports.default = fixedSessionsSlice.reducer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectFixedStreamStatus = exports.selectFixedStreamShortInfo = exports.selectFixedStreamData = exports.selectFixedExtremes = exports.selectFetchedTimeRanges = exports.selectStreamMeasurements = exports.selectLastSelectedFixedTimeRange = exports.selectIsLoading = exports.selectFixedData = exports.selectFixedStreamState = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst moment_1 = __importDefault(require(\"moment\"));\nconst dateFormat_1 = require(\"../types/dateFormat\");\nconst lastArrayItem_1 = require(\"../utils/lastArrayItem\");\nconst measurementsCalc_1 = require(\"../utils/measurementsCalc\");\nconst selectFixedStreamData = (state) => {\n return state.fixedStream.data;\n};\nexports.selectFixedStreamData = selectFixedStreamData;\nconst selectFixedStream = (state) => state.fixedStream;\nconst selectFixedExtremes = (0, toolkit_1.createSelector)([selectFixedStream], (fixedStream) => {\n const { averageMeasurementValue, minMeasurementValue, maxMeasurementValue, } = fixedStream;\n const min = (0, measurementsCalc_1.isValidValue)(minMeasurementValue)\n ? Math.round(minMeasurementValue)\n : null;\n const max = (0, measurementsCalc_1.isValidValue)(maxMeasurementValue)\n ? Math.round(maxMeasurementValue)\n : null;\n const avg = (0, measurementsCalc_1.isValidValue)(averageMeasurementValue)\n ? Math.round(averageMeasurementValue)\n : null;\n return {\n minMeasurementValue: min,\n maxMeasurementValue: max,\n averageValue: avg,\n };\n});\nexports.selectFixedExtremes = selectFixedExtremes;\nconst selectLastDailyAverage = (state) => {\n const { streamDailyAverages } = selectFixedStreamData(state);\n return (0, lastArrayItem_1.lastItemFromArray)(streamDailyAverages);\n};\nconst selectFixedStreamShortInfo = (0, toolkit_1.createSelector)([selectFixedStreamData, selectLastDailyAverage], (fixedStreamData, lastDailyAverage) => {\n const { value: lastMeasurementValue, date } = lastDailyAverage || {};\n const lastMeasurementDateLabel = (0, moment_1.default)(date).format(\"MMM D\");\n const lastUpdate = moment_1.default\n .utc(fixedStreamData.stream.endTime)\n .format(\"HH:mm MMM D YYYY\");\n const startTime = moment_1.default\n .utc(fixedStreamData.stream.startTime)\n .format(dateFormat_1.DateFormat.us_with_time);\n const endTime = moment_1.default\n .utc(fixedStreamData.stream.endTime)\n .format(dateFormat_1.DateFormat.us_with_time);\n const active = fixedStreamData.stream.active;\n const { min, low, middle, high, max } = fixedStreamData.stream;\n const sortedStreamDailyAverages = [\n ...fixedStreamData.streamDailyAverages,\n ].sort((a, b) => (0, moment_1.default)(b.date).valueOf() - (0, moment_1.default)(a.date).valueOf());\n const newestAverageObject = sortedStreamDailyAverages[0];\n const newestAverageValue = newestAverageObject\n ? Number(newestAverageObject.value)\n : 0;\n const newestDate = sortedStreamDailyAverages.length > 0\n ? moment_1.default.utc(Math.max(...sortedStreamDailyAverages.map((m) => Number(m.date))))\n : (0, moment_1.default)();\n const newestDayMeasurements = sortedStreamDailyAverages.filter((m) => (0, moment_1.default)(Number(m.date)).isSame(newestDate, \"day\"));\n const maxMeasurementValue = Math.max(...newestDayMeasurements.map((m) => m.value));\n const minMeasurementValue = Math.min(...newestDayMeasurements.map((m) => m.value));\n return Object.assign(Object.assign({}, fixedStreamData.stream), { lastMeasurementValue,\n lastMeasurementDateLabel,\n lastUpdate,\n active,\n min,\n low,\n middle,\n high,\n max,\n minMeasurementValue,\n maxMeasurementValue, averageValue: newestAverageValue, startTime,\n endTime, latitude: fixedStreamData.stream.latitude, longitude: fixedStreamData.stream.longitude });\n});\nexports.selectFixedStreamShortInfo = selectFixedStreamShortInfo;\nconst selectFixedStreamStatus = (state) => state.fixedStream.status;\nexports.selectFixedStreamStatus = selectFixedStreamStatus;\nconst selectFixedStreamState = (state) => state.fixedStream;\nexports.selectFixedStreamState = selectFixedStreamState;\nexports.selectFixedData = (0, toolkit_1.createSelector)([exports.selectFixedStreamState], (fixedStream) => fixedStream.data);\nexports.selectIsLoading = (0, toolkit_1.createSelector)([exports.selectFixedStreamState], (fixedStream) => fixedStream.isLoading);\nexports.selectLastSelectedFixedTimeRange = (0, toolkit_1.createSelector)([exports.selectFixedStreamState], (fixedStream) => fixedStream.lastSelectedTimeRange);\nexports.selectStreamMeasurements = (0, toolkit_1.createSelector)([\n exports.selectFixedStreamState,\n (_state, streamId) => streamId,\n], (fixedStream, streamId) => {\n return streamId ? fixedStream.data.measurements || [] : [];\n});\nexports.selectFetchedTimeRanges = (0, toolkit_1.createSelector)([\n (state) => state.fixedStream.fetchedTimeRanges,\n (_, streamId) => streamId,\n], (fetchedTimeRanges, streamId) => fetchedTimeRanges[streamId] || []);\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clearFetchedTimeRanges = exports.updateFetchedTimeRanges = exports.resetTimeRange = exports.resetFixedMeasurementExtremes = exports.updateStreamMeasurements = exports.resetStreamMeasurements = exports.resetLastSelectedTimeRange = exports.setLastSelectedTimeRange = exports.resetFixedStreamState = exports.updateFixedMeasurementExtremes = exports.checkDataAvailability = exports.fetchMeasurements = exports.fetchFixedStreamById = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst timeRange_1 = require(\"../types/timeRange\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n data: {\n stream: {\n title: \"\",\n profile: \"\",\n lastUpdate: \"\",\n sensorName: \"\",\n unitSymbol: \"\",\n updateFrequency: \"\",\n active: true,\n sessionId: 0,\n startTime: \"\",\n endTime: \"\",\n min: 0,\n low: 0,\n middle: 0,\n high: 0,\n max: 0,\n latitude: 0,\n longitude: 0,\n },\n measurements: [],\n streamDailyAverages: [],\n lastMonthMeasurements: [],\n },\n fetchedStartTime: null,\n minMeasurementValue: null,\n maxMeasurementValue: null,\n averageMeasurementValue: null,\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n isLoading: false,\n lastSelectedTimeRange: timeRange_1.FixedTimeRange.Day,\n measurements: {},\n fetchedTimeRanges: {},\n};\nexports.fetchFixedStreamById = (0, toolkit_1.createAsyncThunk)(\"fixedStream/getData\", (id, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.apiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchFixedStreamById(id));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchFixedStreamById\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchFixedStreamById(id),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nexports.fetchMeasurements = (0, toolkit_1.createAsyncThunk)(\"fixedStream/fetchMeasurements\", (params, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchMeasurements(params.streamId, params.startTime, params.endTime));\n return response.data;\n }\n catch (error) {\n return rejectWithValue((0, getErrorMessage_1.getErrorMessage)(error));\n }\n}));\nexports.checkDataAvailability = (0, toolkit_1.createAsyncThunk)(\"fixedStream/checkDataAvailability\", ({ streamId, start, end }, { getState }) => __awaiter(void 0, void 0, void 0, function* () {\n const state = getState();\n const fetchedRanges = state.fixedStream.fetchedTimeRanges[streamId] || [];\n return fetchedRanges.some((range) => range.start <= start && range.end >= end);\n}));\nconst fixedStreamSlice = (0, toolkit_1.createSlice)({\n name: \"fixedStream\",\n initialState,\n reducers: {\n updateFixedMeasurementExtremes(state, action) {\n const { min, max } = action.payload;\n const measurements = state.data.measurements || [];\n // Filter measurements within the visible range\n const visibleMeasurements = measurements.filter((m) => m.time >= min && m.time <= max);\n if (visibleMeasurements.length > 0) {\n // Calculate min, max, and average in a single pass\n const { min: minValue, max: maxValue, sum, } = visibleMeasurements.reduce((acc, measurement) => ({\n min: Math.min(acc.min, measurement.value),\n max: Math.max(acc.max, measurement.value),\n sum: acc.sum + measurement.value,\n }), {\n min: visibleMeasurements[0].value,\n max: visibleMeasurements[0].value,\n sum: 0,\n });\n state.minMeasurementValue = minValue;\n state.maxMeasurementValue = maxValue;\n state.averageMeasurementValue = sum / visibleMeasurements.length;\n }\n else {\n state.minMeasurementValue = null;\n state.maxMeasurementValue = null;\n state.averageMeasurementValue = null;\n }\n },\n resetFixedStreamState(state) {\n return initialState;\n },\n setLastSelectedTimeRange(state, action) {\n state.lastSelectedTimeRange = action.payload;\n localStorage.setItem(\"lastSelectedTimeRange\", action.payload);\n },\n resetLastSelectedTimeRange(state) {\n state.lastSelectedTimeRange = timeRange_1.FixedTimeRange.Day;\n localStorage.setItem(\"lastSelectedTimeRange\", timeRange_1.FixedTimeRange.Day);\n },\n resetStreamMeasurements(state, action) {\n state.data.measurements = [];\n },\n updateStreamMeasurements(state, action) {\n const { measurements } = action.payload;\n const existingMeasurements = state.data.measurements || [];\n const existingMap = new Map(existingMeasurements.map((m) => [m.time, m]));\n measurements.forEach((measurement) => {\n if (!existingMap.has(measurement.time)) {\n existingMap.set(measurement.time, measurement);\n }\n });\n state.data.measurements = Array.from(existingMap.values()).sort((a, b) => a.time - b.time);\n },\n resetFixedMeasurementExtremes(state) {\n state.minMeasurementValue = null;\n state.maxMeasurementValue = null;\n state.averageMeasurementValue = null;\n },\n resetTimeRange: (state) => {\n state.lastSelectedTimeRange = timeRange_1.FixedTimeRange.Day;\n localStorage.setItem(\"lastSelectedTimeRange\", timeRange_1.FixedTimeRange.Day);\n },\n updateFetchedTimeRanges: (state, action) => {\n const { streamId, start, end } = action.payload;\n if (!state.fetchedTimeRanges[streamId]) {\n state.fetchedTimeRanges[streamId] = [];\n }\n state.fetchedTimeRanges[streamId].push({ start, end });\n },\n clearFetchedTimeRanges: (state, action) => {\n const streamId = action.payload;\n if (state.fetchedTimeRanges[streamId]) {\n state.fetchedTimeRanges[streamId] = [];\n }\n },\n },\n extraReducers: (builder) => {\n builder.addCase(exports.fetchFixedStreamById.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n state.isLoading = true;\n });\n builder.addCase(exports.fetchFixedStreamById.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.data = action.payload;\n state.isLoading = false;\n state.error = null;\n });\n builder.addCase(exports.fetchFixedStreamById.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || {\n message: \"Unknown error occurred fetching stream\",\n };\n state.data = initialState.data;\n state.isLoading = false;\n });\n builder.addCase(exports.fetchMeasurements.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n state.isLoading = true;\n });\n builder.addCase(exports.fetchMeasurements.fulfilled, (state, action) => {\n var _a, _b, _c, _d, _e, _f;\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.error = null;\n const streamId = Number((_b = (_a = action.meta) === null || _a === void 0 ? void 0 : _a.arg) === null || _b === void 0 ? void 0 : _b.streamId);\n if (streamId) {\n const existingMeasurements = state.data.measurements || [];\n const existingMap = new Map(existingMeasurements.map((m) => [m.time, m]));\n action.payload.forEach((measurement) => {\n if (!existingMap.has(measurement.time)) {\n existingMap.set(measurement.time, measurement);\n }\n });\n state.data.measurements = Array.from(existingMap.values()).sort((a, b) => a.time - b.time);\n // After updating measurements, calculate extremes for visible range if we have measurements\n if (state.data.measurements.length > 0) {\n // Use the time range from the fetch if available\n const startTime = Number((_d = (_c = action.meta) === null || _c === void 0 ? void 0 : _c.arg) === null || _d === void 0 ? void 0 : _d.startTime);\n const endTime = Number((_f = (_e = action.meta) === null || _e === void 0 ? void 0 : _e.arg) === null || _f === void 0 ? void 0 : _f.endTime);\n // Filter measurements within the visible range\n const visibleMeasurements = state.data.measurements.filter((m) => m.time >= startTime && m.time <= endTime);\n if (visibleMeasurements.length > 0) {\n // Calculate min, max, and average in a single pass\n const { min: minValue, max: maxValue, sum, } = visibleMeasurements.reduce((acc, measurement) => ({\n min: Math.min(acc.min, measurement.value),\n max: Math.max(acc.max, measurement.value),\n sum: acc.sum + measurement.value,\n }), {\n min: visibleMeasurements[0].value,\n max: visibleMeasurements[0].value,\n sum: 0,\n });\n state.minMeasurementValue = minValue;\n state.maxMeasurementValue = maxValue;\n state.averageMeasurementValue = sum / visibleMeasurements.length;\n }\n }\n }\n });\n builder.addCase(exports.fetchMeasurements.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = {\n message: (action.error && action.error.message) ||\n \"Unknown error occurred fetching measurements\",\n };\n });\n builder.addCase(exports.resetLastSelectedTimeRange, (state) => {\n state.lastSelectedTimeRange = timeRange_1.FixedTimeRange.Day;\n });\n },\n});\n_a = fixedStreamSlice.actions, exports.updateFixedMeasurementExtremes = _a.updateFixedMeasurementExtremes, exports.resetFixedStreamState = _a.resetFixedStreamState, exports.setLastSelectedTimeRange = _a.setLastSelectedTimeRange, exports.resetLastSelectedTimeRange = _a.resetLastSelectedTimeRange, exports.resetStreamMeasurements = _a.resetStreamMeasurements, exports.updateStreamMeasurements = _a.updateStreamMeasurements, exports.resetFixedMeasurementExtremes = _a.resetFixedMeasurementExtremes, exports.resetTimeRange = _a.resetTimeRange, exports.updateFetchedTimeRanges = _a.updateFetchedTimeRanges, exports.clearFetchedTimeRanges = _a.clearFetchedTimeRanges;\nexports.default = fixedStreamSlice.reducer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAppSelector = exports.useAppDispatch = void 0;\nconst react_redux_1 = require(\"react-redux\");\nexports.useAppDispatch = react_redux_1.useDispatch;\nexports.useAppSelector = react_redux_1.useSelector;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectIsLoading = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst clusterSlice_1 = __importDefault(require(\"./clusterSlice\"));\nconst crowdMapSlice_1 = __importDefault(require(\"./crowdMapSlice\"));\nconst exportSessionSlice_1 = __importDefault(require(\"./exportSessionSlice\"));\nconst fixedSessionsSlice_1 = __importDefault(require(\"./fixedSessionsSlice\"));\nconst fixedStreamSlice_1 = __importDefault(require(\"./fixedStreamSlice\"));\nconst indoorSessionsSlice_1 = __importDefault(require(\"./indoorSessionsSlice\"));\nconst loadingSelectors_1 = require(\"./loadingSelectors\");\nObject.defineProperty(exports, \"selectIsLoading\", { enumerable: true, get: function () { return loadingSelectors_1.selectIsLoading; } });\nconst mapSlice_1 = __importDefault(require(\"./mapSlice\"));\nconst markersLoadingSlice_1 = __importDefault(require(\"./markersLoadingSlice\"));\nconst mobileSessionsSlice_1 = __importDefault(require(\"./mobileSessionsSlice\"));\nconst mobileStreamSlice_1 = __importDefault(require(\"./mobileStreamSlice\"));\nconst movingCalendarStreamSlice_1 = __importDefault(require(\"./movingCalendarStreamSlice\"));\nconst realtimeMapUpdatesSlice_1 = __importDefault(require(\"./realtimeMapUpdatesSlice\"));\nconst rectangleSlice_1 = __importDefault(require(\"./rectangleSlice\"));\nconst sensorsSlice_1 = __importDefault(require(\"./sensorsSlice\"));\nconst sessionFiltersSlice_1 = __importDefault(require(\"./sessionFiltersSlice\"));\nconst thresholdSlice_1 = __importDefault(require(\"./thresholdSlice\"));\nconst timelapseSlice_1 = __importDefault(require(\"./timelapseSlice\"));\nconst store = (0, toolkit_1.configureStore)({\n reducer: {\n cluster: clusterSlice_1.default,\n crowdMap: crowdMapSlice_1.default,\n fixedSessions: fixedSessionsSlice_1.default,\n fixedStream: fixedStreamSlice_1.default,\n indoorSessions: indoorSessionsSlice_1.default,\n map: mapSlice_1.default,\n markersLoading: markersLoadingSlice_1.default,\n mobileSessions: mobileSessionsSlice_1.default,\n mobileStream: mobileStreamSlice_1.default,\n movingCalendarStream: movingCalendarStreamSlice_1.default,\n realtimeMapUpdates: realtimeMapUpdatesSlice_1.default,\n rectangle: rectangleSlice_1.default,\n sensors: sensorsSlice_1.default,\n session: exportSessionSlice_1.default,\n sessionFilter: sessionFiltersSlice_1.default,\n threshold: thresholdSlice_1.default,\n timelapse: timelapseSlice_1.default,\n },\n});\nexports.default = store;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectIndoorSessionsStatusFulfilled = exports.selectIndoorSessionsState = exports.selectIndoorSessionsPoints = exports.selectIndoorSessionsList = void 0;\nconst reselect_1 = require(\"reselect\");\nconst selectIndoorSessionsState = (state) => state.indoorSessions;\nexports.selectIndoorSessionsState = selectIndoorSessionsState;\nconst selectIndoorSessionsStatusFulfilled = (state) => state.indoorSessions.status === \"FULFILLED\" /* StatusEnum.Fulfilled */;\nexports.selectIndoorSessionsStatusFulfilled = selectIndoorSessionsStatusFulfilled;\nconst selectIndoorSessionsPoints = (isDormant) => (0, reselect_1.createSelector)([selectIndoorSessionsState], (indoorSessionsState) => {\n const sessions = isDormant\n ? indoorSessionsState.dormantIndoorSessions\n : indoorSessionsState.activeIndoorSessions;\n return sessions.map(({ id, lastMeasurementValue, title, startTimeLocal, endTimeLocal, streams, lastHourlyAverageValue, }) => {\n const firstStream = streams[Object.keys(streams)[0]];\n return {\n id,\n title,\n sensorName: firstStream.sensorName,\n startTime: startTimeLocal,\n endTime: endTimeLocal,\n averageValue: lastHourlyAverageValue || lastMeasurementValue,\n lastMeasurementValue,\n };\n });\n});\nexports.selectIndoorSessionsPoints = selectIndoorSessionsPoints;\nconst selectIndoorSessionsList = (isDormant) => (0, reselect_1.createSelector)([selectIndoorSessionsState], (indoorSessionsState) => {\n const sessions = isDormant\n ? indoorSessionsState.dormantIndoorSessions\n : indoorSessionsState.activeIndoorSessions;\n return sessions.map(({ id, title, startTimeLocal, endTimeLocal, streams, lastHourlyAverageValue, lastMeasurementValue, }) => {\n const firstStream = streams[Object.keys(streams)[0]];\n return {\n id,\n title,\n sensorName: firstStream.sensorName,\n averageValue: lastHourlyAverageValue || lastMeasurementValue,\n startTime: startTimeLocal,\n endTime: endTimeLocal,\n streamId: firstStream.id,\n };\n });\n});\nexports.selectIndoorSessionsList = selectIndoorSessionsList;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchDormantIndoorSessions = exports.fetchActiveIndoorSessions = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst sessionFiltersSlice_1 = require(\"./sessionFiltersSlice\");\nconst initialState = {\n fetchableSessionsCount: 0,\n activeIndoorSessions: [],\n dormantIndoorSessions: [],\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nconst createSessionFetchThunk = (type, endpoint) => {\n return (0, toolkit_1.createAsyncThunk)(`sessions/fetch${type.charAt(0).toUpperCase() + type.slice(1)}FixedSessions`, (sessionsData, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(endpoint(sessionsData.filters));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: `fetch${type.charAt(0).toUpperCase() + type.slice(1)}FixedSessions`,\n endpoint: endpoint(sessionsData.filters),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n }), {\n condition: (_, { getState }) => {\n const { fixedSessions } = getState();\n return fixedSessions.status !== \"PENDING\" /* StatusEnum.Pending */;\n },\n });\n};\nexports.fetchActiveIndoorSessions = createSessionFetchThunk(sessionFiltersSlice_1.FixedSessionsTypes.ACTIVE, apiEndpoints_1.API_ENDPOINTS.fetchActiveFixedSessions);\nexports.fetchDormantIndoorSessions = createSessionFetchThunk(sessionFiltersSlice_1.FixedSessionsTypes.DORMANT, apiEndpoints_1.API_ENDPOINTS.fetchDormantFixedSessions);\nconst indoorSessionsSlice = (0, toolkit_1.createSlice)({\n name: \"indoorSessions\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchActiveIndoorSessions.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchActiveIndoorSessions.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.activeIndoorSessions = action.payload.sessions;\n state.fetchableSessionsCount = action.payload.fetchableSessionsCount;\n state.error = null;\n })\n .addCase(exports.fetchActiveIndoorSessions.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n })\n .addCase(exports.fetchDormantIndoorSessions.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchDormantIndoorSessions.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.dormantIndoorSessions = action.payload.sessions;\n state.fetchableSessionsCount = action.payload.fetchableSessionsCount;\n state.error = null;\n })\n .addCase(exports.fetchDormantIndoorSessions.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n });\n },\n});\nexports.default = indoorSessionsSlice.reducer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectIsLoading = exports.selectMobileSessionsLoading = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst selectFixedStreamLoading = (state) => state.fixedStream.status === \"PENDING\" /* StatusEnum.Pending */;\nconst selectFixedSessionsLoading = (state) => state.fixedSessions.status === \"PENDING\" /* StatusEnum.Pending */;\nconst selectMobileSessionsLoading = (state) => state.mobileSessions.status === \"PENDING\" /* StatusEnum.Pending */;\nexports.selectMobileSessionsLoading = selectMobileSessionsLoading;\nconst selectMobileStreamLoading = (state) => state.mobileStream.status === \"PENDING\" /* StatusEnum.Pending */;\nconst selectTimelapseLoading = (state) => state.timelapse.status === \"PENDING\" /* StatusEnum.Pending */;\nconst selectCrowdMapLoading = (state) => state.crowdMap.status === \"PENDING\" /* StatusEnum.Pending */;\nexports.selectIsLoading = (0, toolkit_1.createSelector)([\n selectFixedStreamLoading,\n selectFixedSessionsLoading,\n exports.selectMobileSessionsLoading,\n selectMobileStreamLoading,\n selectTimelapseLoading,\n selectCrowdMapLoading,\n], (fixedStreamLoading, fixedSessionsLoading, mobileSessionsLoading, mobileStreamLoading, timelapseLoading, crowdMapLoading) => {\n return Boolean(fixedStreamLoading ||\n fixedSessionsLoading ||\n mobileSessionsLoading ||\n mobileStreamLoading ||\n timelapseLoading ||\n crowdMapLoading);\n});\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectSessionsListExpanded = exports.selectHoverPosition = exports.selectHoverStreamId = exports.selectFetchingData = exports.setSessionsListExpanded = exports.setMapId = exports.setHoverStreamId = exports.setHoverPosition = exports.setFetchingData = exports.initialState = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst mapConfigs_1 = require(\"../components/organisms/Map/mapUtils/mapConfigs\");\nconst coordinates_1 = require(\"../const/coordinates\");\nexports.initialState = {\n fetchingData: true,\n hoverStreamId: null,\n mapId: mapConfigs_1.MAP_ID,\n position: coordinates_1.DEFAULT_MAP_CENTER,\n sessionsListExpanded: true,\n};\nconst mapSlice = (0, toolkit_1.createSlice)({\n name: \"map\",\n initialState: exports.initialState,\n reducers: {\n setFetchingData(state, action) {\n state.fetchingData = action.payload;\n },\n setHoverStreamId(state, action) {\n state.hoverStreamId = action.payload;\n },\n setHoverPosition(state, action) {\n state.position = action.payload;\n },\n setMapId(state, action) {\n state.mapId = action.payload;\n },\n setSessionsListExpanded(state, action) {\n state.sessionsListExpanded = action.payload;\n },\n },\n});\n_a = mapSlice.actions, exports.setFetchingData = _a.setFetchingData, exports.setHoverPosition = _a.setHoverPosition, exports.setHoverStreamId = _a.setHoverStreamId, exports.setMapId = _a.setMapId, exports.setSessionsListExpanded = _a.setSessionsListExpanded;\nexports.default = mapSlice.reducer;\nconst selectFetchingData = (state) => state.map.fetchingData;\nexports.selectFetchingData = selectFetchingData;\nconst selectHoverStreamId = (state) => state.map.hoverStreamId;\nexports.selectHoverStreamId = selectHoverStreamId;\nconst selectHoverPosition = (state) => state.map.position;\nexports.selectHoverPosition = selectHoverPosition;\nconst selectSessionsListExpanded = (state) => state.map.sessionsListExpanded;\nexports.selectSessionsListExpanded = selectSessionsListExpanded;\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectTotalMarkers = exports.selectLoadedMarkers = exports.selectMarkersLoading = exports.incrementLoadedMarkers = exports.setTotalMarkers = exports.setMarkersLoading = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst initialState = {\n isLoading: false,\n totalMarkers: 0,\n loadedMarkers: 0,\n};\nconst markersLoadingSlice = (0, toolkit_1.createSlice)({\n name: \"markersLoading\",\n initialState,\n reducers: {\n setMarkersLoading: (state, action) => {\n state.isLoading = action.payload;\n },\n setTotalMarkers: (state, action) => {\n state.totalMarkers = action.payload;\n state.loadedMarkers = 0;\n },\n incrementLoadedMarkers: (state) => {\n state.loadedMarkers += 1;\n if (state.loadedMarkers >= state.totalMarkers) {\n state.isLoading = false;\n }\n },\n },\n});\n_a = markersLoadingSlice.actions, exports.setMarkersLoading = _a.setMarkersLoading, exports.setTotalMarkers = _a.setTotalMarkers, exports.incrementLoadedMarkers = _a.incrementLoadedMarkers;\nexports.default = markersLoadingSlice.reducer;\nconst selectMarkersLoading = (state) => state.markersLoading.isLoading;\nexports.selectMarkersLoading = selectMarkersLoading;\nconst selectLoadedMarkers = (state) => state.markersLoading.loadedMarkers;\nexports.selectLoadedMarkers = selectLoadedMarkers;\nconst selectTotalMarkers = (state) => state.markersLoading.totalMarkers;\nexports.selectTotalMarkers = selectTotalMarkers;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectMobileSessionsStreamIds = exports.selectMobileSessionsState = exports.selectMobileSessionsPoints = exports.selectMobileSessionsList = exports.selectMobileSessionPointsBySessionId = void 0;\nconst reselect_1 = require(\"reselect\");\nconst selectMobileSessionsState = (state) => state.mobileSessions;\nexports.selectMobileSessionsState = selectMobileSessionsState;\nconst selectMobileSessionPointsBySessionId = (sessionId) => (0, reselect_1.createSelector)([selectMobileSessionsState], (mobileSessionState) => {\n const mobileSessionByStreamId = mobileSessionState.sessions.find((session) => Number(session.id) === Number(sessionId));\n const stream = mobileSessionByStreamId === null || mobileSessionByStreamId === void 0 ? void 0 : mobileSessionByStreamId.streams[Object.keys(mobileSessionByStreamId === null || mobileSessionByStreamId === void 0 ? void 0 : mobileSessionByStreamId.streams)[0]];\n return [\n {\n id: (mobileSessionByStreamId === null || mobileSessionByStreamId === void 0 ? void 0 : mobileSessionByStreamId.id) || 0,\n lastMeasurementValue: (stream === null || stream === void 0 ? void 0 : stream.averageValue) || 0,\n point: {\n lat: (stream === null || stream === void 0 ? void 0 : stream.startLatitude) || 0,\n lng: (stream === null || stream === void 0 ? void 0 : stream.startLongitude) || 0,\n maxLatitude: stream === null || stream === void 0 ? void 0 : stream.maxLatitude,\n maxLongitude: stream === null || stream === void 0 ? void 0 : stream.maxLongitude,\n minLatitude: stream === null || stream === void 0 ? void 0 : stream.minLatitude,\n minLongitude: stream === null || stream === void 0 ? void 0 : stream.minLongitude,\n streamId: (stream === null || stream === void 0 ? void 0 : stream.id.toString()) || \"0\",\n },\n },\n ];\n});\nexports.selectMobileSessionPointsBySessionId = selectMobileSessionPointsBySessionId;\nconst selectMobileSessionsPoints = (0, reselect_1.createSelector)([selectMobileSessionsState], (mobileSessionsState) => mobileSessionsState.sessions.map(({ id, streams }) => {\n const firstStream = streams[Object.keys(streams)[0]];\n return {\n id,\n lastMeasurementValue: firstStream.averageValue,\n point: {\n lat: firstStream.startLatitude,\n lng: firstStream.startLongitude,\n maxLatitude: firstStream.maxLatitude,\n maxLongitude: firstStream.maxLongitude,\n minLatitude: firstStream.minLatitude,\n minLongitude: firstStream.minLongitude,\n streamId: firstStream.id.toString(),\n },\n };\n}));\nexports.selectMobileSessionsPoints = selectMobileSessionsPoints;\nconst selectMobileSessionsList = (0, reselect_1.createSelector)([selectMobileSessionsState], (mobileSessionsState) => mobileSessionsState.sessions.map(({ id, title, startTimeLocal, endTimeLocal, streams }) => {\n const firstStream = streams[Object.keys(streams)[0]];\n return {\n id,\n title,\n sensorName: firstStream.sensorName,\n averageValue: firstStream.averageValue,\n startTime: startTimeLocal,\n endTime: endTimeLocal,\n streamId: firstStream.id,\n };\n}));\nexports.selectMobileSessionsList = selectMobileSessionsList;\nconst selectMobileSessionsStreamIds = (0, reselect_1.createSelector)([selectMobileSessionsState], (mobileSessionsState) => mobileSessionsState.sessions.map(({ id, streams }) => {\n const firstStream = streams[Object.keys(streams)[0]];\n return firstStream.id;\n}));\nexports.selectMobileSessionsStreamIds = selectMobileSessionsStreamIds;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.clearMobileSessions = exports.fetchMobileSessions = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n fetchableSessionsCount: 0,\n sessions: [],\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nexports.fetchMobileSessions = (0, toolkit_1.createAsyncThunk)(\"sessions/fetchMobileSessions\", (sessionsData, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchMobileSessions(sessionsData.filters));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchMobileSessions\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchMobileSessions(sessionsData.filters),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}), {\n condition: (_, { getState }) => {\n const { mobileSessions } = getState();\n return mobileSessions.status !== \"PENDING\" /* StatusEnum.Pending */;\n },\n});\nconst mobileSessionsSlice = (0, toolkit_1.createSlice)({\n name: \"mobileSessions\",\n initialState,\n reducers: {\n clearMobileSessions: (state) => {\n state.sessions = [];\n state.fetchableSessionsCount = 0;\n state.error = null;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchMobileSessions.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchMobileSessions.fulfilled, (state, action) => {\n var _a;\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.error = null;\n if ((_a = action.meta) === null || _a === void 0 ? void 0 : _a.arg.isAdditional) {\n state.sessions = [...state.sessions, ...action.payload.sessions];\n }\n else {\n state.sessions = action.payload.sessions;\n }\n state.fetchableSessionsCount = action.payload.fetchableSessionsCount;\n })\n .addCase(exports.fetchMobileSessions.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || {\n message: \"An unknown error occurred\",\n };\n });\n },\n});\nexports.clearMobileSessions = mobileSessionsSlice.actions.clearMobileSessions;\nexports.default = mobileSessionsSlice.reducer;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectMobileStreamStatus = exports.selectMobileStreamShortInfo = exports.selectMobileStreamPoints = exports.selectMobileStreamData = exports.selectMobileExtremes = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst moment_1 = __importDefault(require(\"moment\"));\nconst measurementsCalc_1 = require(\"../utils/measurementsCalc\");\nconst mobileSessionsSelectors_1 = require(\"./mobileSessionsSelectors\");\nconst mobileStreamSlice_1 = require(\"./mobileStreamSlice\");\nconst selectMobileStreamData = (state) => state.mobileStream.data;\nexports.selectMobileStreamData = selectMobileStreamData;\nconst selectMobileStreamPoints = (0, toolkit_1.createSelector)([selectMobileStreamData], (mobileStreamState) => mobileStreamState.measurements.map(({ time, value, latitude, longitude }, index) => ({\n id: index,\n lastMeasurementValue: value,\n time,\n point: {\n lat: latitude,\n lng: longitude,\n streamId: mobileStreamState.streamId.toString(),\n },\n notes: mobileStreamState.notes,\n})));\nexports.selectMobileStreamPoints = selectMobileStreamPoints;\nconst selectMobileStreamShortInfo = (0, toolkit_1.createSelector)([selectMobileStreamData, mobileSessionsSelectors_1.selectMobileSessionsState], (mobileStreamData, mobileSessionState) => {\n const maxMeasurementValue = Math.max(...mobileStreamData.measurements.map((m) => m.value));\n const minMeasurementValue = Math.min(...mobileStreamData.measurements.map((m) => m.value));\n const mobileSession = mobileSessionState.sessions.find((session) => session.id === mobileStreamData.id);\n const sessionStreamData = mobileSession === null || mobileSession === void 0 ? void 0 : mobileSession.streams[Object.keys(mobileSession.streams)[0]];\n const formattedStartTime = (mobileSession === null || mobileSession === void 0 ? void 0 : mobileSession.startTimeLocal)\n ? moment_1.default.utc(mobileSession.startTimeLocal).format(\"MM/DD/YYYY HH:mm\")\n : mobileStreamSlice_1.initialState.data.startTime;\n const formattedEndTime = (mobileSession === null || mobileSession === void 0 ? void 0 : mobileSession.endTimeLocal)\n ? moment_1.default.utc(mobileSession.endTimeLocal).format(\"MM/DD/YYYY HH:mm\")\n : mobileStreamSlice_1.initialState.data.endTime;\n return {\n averageValue: (sessionStreamData === null || sessionStreamData === void 0 ? void 0 : sessionStreamData.averageValue) ||\n mobileStreamSlice_1.initialState.data.averageValue,\n endTime: formattedEndTime,\n maxMeasurementValue,\n minMeasurementValue,\n profile: mobileStreamData.username,\n sensorName: mobileStreamData.sensorName,\n sessionId: mobileStreamData.id,\n startTime: formattedStartTime,\n title: mobileStreamData.title,\n unitSymbol: mobileStreamData.sensorUnit,\n };\n});\nexports.selectMobileStreamShortInfo = selectMobileStreamShortInfo;\nconst selectMobileStreamStatus = (state) => state.mobileStream.status;\nexports.selectMobileStreamStatus = selectMobileStreamStatus;\nconst selectExtremesValues = (state) => state.mobileStream;\nconst selectMobileExtremes = (0, toolkit_1.createSelector)([selectExtremesValues], (mobileStreamData) => {\n const { averageMeasurementValue, minMeasurementValue, maxMeasurementValue, } = mobileStreamData;\n const min = (0, measurementsCalc_1.isValidValue)(minMeasurementValue)\n ? Math.round(minMeasurementValue)\n : null;\n const max = (0, measurementsCalc_1.isValidValue)(maxMeasurementValue)\n ? Math.round(maxMeasurementValue)\n : null;\n const avg = (0, measurementsCalc_1.isValidValue)(averageMeasurementValue)\n ? Math.round(averageMeasurementValue)\n : null;\n return {\n minMeasurementValue: min,\n maxMeasurementValue: max,\n averageValue: avg,\n };\n});\nexports.selectMobileExtremes = selectMobileExtremes;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectLastSelectedMobileTimeRange = exports.resetMobileMeasurementExtremes = exports.resetLastSelectedMobileTimeRange = exports.setLastSelectedMobileTimeRange = exports.resetMobileStreamState = exports.updateMobileMeasurementExtremes = exports.mobileStreamSlice = exports.fetchMobileStreamById = exports.initialState = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst timeRange_1 = require(\"../types/timeRange\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nexports.initialState = {\n data: {\n averageValue: 0,\n endTime: \"\",\n id: 0,\n maxLatitude: 0,\n maxLongitude: 0,\n measurements: [],\n minLatitude: 0,\n minLongitude: 0,\n notes: [],\n sensorName: \"\",\n sensorUnit: \"\",\n startLatitude: 0,\n startLongitude: 0,\n startTime: \"\",\n streamId: 0,\n title: \"\",\n username: \"\",\n },\n minMeasurementValue: 0,\n maxMeasurementValue: 0,\n averageMeasurementValue: 0,\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n isLoading: false,\n lastSelectedTimeRange: timeRange_1.MobileTimeRange.All,\n};\nexports.fetchMobileStreamById = (0, toolkit_1.createAsyncThunk)(\"mobileStream/getData\", (id, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchMobileStreamById(id));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchMobileStreamById\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchMobileStreamById(id),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nexports.mobileStreamSlice = (0, toolkit_1.createSlice)({\n name: \"mobileStream\",\n initialState: exports.initialState,\n reducers: {\n updateMobileMeasurementExtremes(state, action) {\n const { min, max } = action.payload;\n let endTime = max;\n let startTime = min;\n const values = state.data.measurements\n .filter((measurement) => measurement.time >= startTime && measurement.time <= endTime)\n .map((m) => m.value);\n const newMin = values.length > 0 ? Math.min(...values) : 0;\n const newMax = values.length > 0 ? Math.max(...values) : 0;\n const newAvg = values.length > 0\n ? values.reduce((sum, value) => sum + value, 0) / values.length\n : 0;\n state.minMeasurementValue = newMin;\n state.maxMeasurementValue = newMax;\n state.averageMeasurementValue = newAvg;\n },\n resetMobileStreamState(state) {\n return exports.initialState;\n },\n setLastSelectedMobileTimeRange(state, action) {\n state.lastSelectedTimeRange = action.payload;\n localStorage.setItem(\"lastSelectedMobileTimeRange\", action.payload);\n },\n resetLastSelectedMobileTimeRange(state) {\n state.lastSelectedTimeRange = timeRange_1.MobileTimeRange.All;\n localStorage.setItem(\"lastSelectedMobileTimeRange\", timeRange_1.MobileTimeRange.All);\n },\n resetMobileMeasurementExtremes: (state) => {\n state.minMeasurementValue = null;\n state.maxMeasurementValue = null;\n state.averageMeasurementValue = null;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(exports.fetchMobileStreamById.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n state.isLoading = true;\n });\n builder.addCase(exports.fetchMobileStreamById.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.data = action.payload;\n state.error = null;\n state.isLoading = false;\n });\n builder.addCase(exports.fetchMobileStreamById.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n state.data = exports.initialState.data;\n state.isLoading = false;\n });\n },\n});\n_a = exports.mobileStreamSlice.actions, exports.updateMobileMeasurementExtremes = _a.updateMobileMeasurementExtremes, exports.resetMobileStreamState = _a.resetMobileStreamState, exports.setLastSelectedMobileTimeRange = _a.setLastSelectedMobileTimeRange, exports.resetLastSelectedMobileTimeRange = _a.resetLastSelectedMobileTimeRange, exports.resetMobileMeasurementExtremes = _a.resetMobileMeasurementExtremes;\nexports.default = exports.mobileStreamSlice.reducer;\nconst selectLastSelectedMobileTimeRange = (state) => state.mobileStream.lastSelectedTimeRange;\nexports.selectLastSelectedMobileTimeRange = selectLastSelectedMobileTimeRange;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resetMovingStreamData = exports.movingData = exports.movingStreamSlice = exports.fetchNewMovingStream = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n data: [],\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nexports.fetchNewMovingStream = (0, toolkit_1.createAsyncThunk)(\"movingCalendarStream/getData\", ({ id, startDate, endDate }, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.apiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchSelectedDataRangeOfStream(id, startDate, endDate));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchNewMovingStream\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchSelectedDataRangeOfStream(id, startDate, endDate),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nexports.movingStreamSlice = (0, toolkit_1.createSlice)({\n name: \"movingCalendarStream\",\n initialState,\n reducers: {\n resetMovingStreamData: (state) => {\n state.data = [];\n state.status = \"IDLE\" /* StatusEnum.Idle */;\n state.error = null;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchNewMovingStream.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.data = action.payload;\n state.data.sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime());\n state.error = null;\n })\n .addCase(exports.fetchNewMovingStream.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || { message: \"Unknown error occurred\" };\n state.data = [];\n });\n },\n});\nexports.default = exports.movingStreamSlice.reducer;\nconst movingData = (state) => state.movingCalendarStream;\nexports.movingData = movingData;\nexports.resetMovingStreamData = exports.movingStreamSlice.actions.resetMovingStreamData;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectThreeMonthsDailyAverage = exports.selectMovingCalendarMinMax = exports.selectEmptyCalendarData = exports.selectCalendarData = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst lodash_1 = require(\"lodash\");\nconst moment_1 = __importDefault(require(\"moment\"));\nconst dateFormat_1 = require(\"../types/dateFormat\");\nconst WEEKDAYS_COUNT = 7;\nconst getMonthWeekBoundariesForDate = (date) => {\n const year = date.year();\n const month = date.month();\n const firstDayOfMonthWeek = (0, moment_1.default)([year, month])\n .startOf(\"month\")\n .startOf(\"week\");\n const lastDayOfMonthWeek = (0, moment_1.default)([year, month]).endOf(\"month\").endOf(\"week\");\n return { firstDayOfMonthWeek, lastDayOfMonthWeek };\n};\nconst prepareCalendarDataCell = (date, value) => {\n return {\n date: date.format(\"YYYY-MM-DD\"),\n dayNumber: date.format(\"D\"),\n value,\n };\n};\nconst getValueForDate = (date, streamDailyAverages) => {\n const dailyAverage = streamDailyAverages.find((item) => item.date === date);\n return dailyAverage ? dailyAverage.value : null;\n};\nconst getMonthWeeksOfDailyAveragesFor = (0, lodash_1.memoize)((month, streamDailyAverages) => {\n if (!month || !month.isValid() || !streamDailyAverages) {\n throw new Error(\"Invalid inputs\");\n }\n const { firstDayOfMonthWeek, lastDayOfMonthWeek } = getMonthWeekBoundariesForDate(month);\n let currentDate = firstDayOfMonthWeek.clone();\n const weeks = [];\n while (currentDate <= lastDayOfMonthWeek) {\n const week = [];\n for (let i = 0; i < WEEKDAYS_COUNT; i++) {\n const isCurrentMonth = currentDate.isSame(month, \"month\");\n const value = isCurrentMonth\n ? getValueForDate(currentDate.format(\"YYYY-MM-DD\"), streamDailyAverages)\n : null;\n week.push(prepareCalendarDataCell(currentDate.clone(), value));\n currentDate.add(1, \"day\");\n }\n weeks.push(week);\n }\n const dayNamesHeader = weeks[0].map((day) => (0, moment_1.default)(day.date).format(\"dddd\").substring(0, 3));\n return {\n monthName: month.format(\"MMMM\"),\n dayNamesHeader,\n weeks,\n };\n}, (month, streamDailyAverages) => `${month.format(\"YYYY-MM\")}-${JSON.stringify(streamDailyAverages)}`);\nconst getVisibleMonthsData = (0, lodash_1.memoize)((streamDailyAverages, startDate, endDate) => {\n if (!streamDailyAverages || !startDate || !endDate)\n return [];\n const startMoment = (0, moment_1.default)(startDate, dateFormat_1.DateFormat.us).startOf(\"day\");\n const endMoment = (0, moment_1.default)(endDate, dateFormat_1.DateFormat.us).endOf(\"day\");\n return streamDailyAverages.filter((average) => {\n const dateMoment = (0, moment_1.default)(average.date, dateFormat_1.DateFormat.default);\n return dateMoment.isBetween(startMoment, endMoment, \"day\", \"[]\");\n });\n}, (streamDailyAverages, startDate, endDate) => `${startDate}-${endDate}-${streamDailyAverages.length}`);\nconst _selectMovingCalendarData = (state) => {\n return state.movingCalendarStream.data;\n};\nconst selectThreeMonthsDailyAverage = (0, toolkit_1.createSelector)([\n _selectMovingCalendarData,\n (_state, startDate, endDate) => ({\n startDate,\n endDate,\n }),\n], (calendarData, { startDate, endDate }) => {\n const emptyResult = [];\n if (!(calendarData === null || calendarData === void 0 ? void 0 : calendarData.length) || !startDate || !endDate) {\n return emptyResult;\n }\n const endMoment = (0, moment_1.default)(endDate, dateFormat_1.DateFormat.us);\n if (!endMoment.isValid()) {\n return emptyResult;\n }\n const visibleData = getVisibleMonthsData(calendarData, startDate, endDate);\n const latestMomentWithData = endMoment.clone().endOf(\"month\");\n const secondLatestMonth = latestMomentWithData.clone().subtract(1, \"month\");\n const thirdLatestMonth = latestMomentWithData.clone().subtract(2, \"month\");\n if (!latestMomentWithData.isValid() ||\n !secondLatestMonth.isValid() ||\n !thirdLatestMonth.isValid()) {\n return emptyResult;\n }\n const threeMonths = [\n thirdLatestMonth,\n secondLatestMonth,\n latestMomentWithData,\n ];\n try {\n return threeMonths.map((month) => getMonthWeeksOfDailyAveragesFor(month, visibleData));\n }\n catch (error) {\n console.error(\"Error generating calendar data:\", error);\n return emptyResult;\n }\n});\nexports.selectThreeMonthsDailyAverage = selectThreeMonthsDailyAverage;\nconst selectMovingCalendarMinMax = (0, toolkit_1.createSelector)(_selectMovingCalendarData, (calendarData) => {\n if (!calendarData || calendarData.length === 0) {\n return { min: null, max: null };\n }\n const values = calendarData.map((entry) => entry.value);\n const min = Math.min(...values);\n const max = Math.max(...values);\n return { min, max };\n});\nexports.selectMovingCalendarMinMax = selectMovingCalendarMinMax;\nconst selectEmptyCalendarData = (0, toolkit_1.createSelector)([_selectMovingCalendarData], (calendarData) => {\n const emptyResult = [];\n if (!(calendarData === null || calendarData === void 0 ? void 0 : calendarData.length)) {\n return emptyResult;\n }\n // Use current date for empty calendar\n const now = (0, moment_1.default)();\n const endDate = now.format(dateFormat_1.DateFormat.us);\n const startDate = now.clone().subtract(3, \"months\").format(dateFormat_1.DateFormat.us);\n const visibleData = getVisibleMonthsData(calendarData, startDate, endDate);\n const latestMonth = now.clone().startOf(\"month\");\n const secondMonth = latestMonth.clone().subtract(1, \"month\");\n const thirdMonth = latestMonth.clone().subtract(2, \"month\");\n const threeMonths = [thirdMonth, secondMonth, latestMonth];\n try {\n return threeMonths.map((month) => getMonthWeeksOfDailyAveragesFor(month, visibleData));\n }\n catch (error) {\n console.error(\"Error generating calendar data:\", error);\n return emptyResult;\n }\n});\nexports.selectEmptyCalendarData = selectEmptyCalendarData;\nconst selectCalendarData = (0, toolkit_1.createSelector)([\n _selectMovingCalendarData,\n (_state, startDate, endDate) => startDate && endDate ? `${startDate}-${endDate}` : \"\",\n], (calendarData, dateKey) => {\n const emptyResult = [];\n if (!(calendarData === null || calendarData === void 0 ? void 0 : calendarData.length) || !dateKey) {\n return emptyResult;\n }\n const [startDate, endDate] = dateKey.split(\"-\");\n if (!startDate || !endDate) {\n return emptyResult;\n }\n const endMoment = (0, moment_1.default)(endDate, dateFormat_1.DateFormat.us);\n if (!endMoment.isValid()) {\n return emptyResult;\n }\n const visibleData = getVisibleMonthsData(calendarData, startDate, endDate);\n const latestMomentWithData = endMoment.clone().endOf(\"month\");\n const secondLatestMonth = latestMomentWithData.clone().subtract(1, \"month\");\n const thirdLatestMonth = latestMomentWithData.clone().subtract(2, \"month\");\n if (!latestMomentWithData.isValid() ||\n !secondLatestMonth.isValid() ||\n !thirdLatestMonth.isValid()) {\n return emptyResult;\n }\n const threeMonths = [\n thirdLatestMonth,\n secondLatestMonth,\n latestMomentWithData,\n ];\n try {\n return threeMonths.map((month) => getMonthWeeksOfDailyAveragesFor(month, visibleData));\n }\n catch (error) {\n console.error(\"Error generating calendar data:\", error);\n return emptyResult;\n }\n});\nexports.selectCalendarData = selectCalendarData;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setRealtimeMapUpdates = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst initialState = {\n realtimeMapUpdates: false,\n};\nconst realtimeMapUpdatesSlice = (0, toolkit_1.createSlice)({\n name: \"realtimeMapUpdates\",\n initialState,\n reducers: {\n setRealtimeMapUpdates(state, action) {\n state.realtimeMapUpdates = action.payload;\n },\n },\n});\nexports.setRealtimeMapUpdates = realtimeMapUpdatesSlice.actions.setRealtimeMapUpdates;\nexports.default = realtimeMapUpdatesSlice.reducer;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectRectangleLoading = exports.selectRectangleData = exports.clearRectangles = exports.fetchRectangleData = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n loading: false,\n error: null,\n};\nexports.fetchRectangleData = (0, toolkit_1.createAsyncThunk)(\"rectangle/fetchRectangleData\", (params, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchRectangleData(params));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchRectangleData\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchRectangleData(params),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nconst rectangleSlice = (0, toolkit_1.createSlice)({\n name: \"rectangle\",\n initialState,\n reducers: {\n clearRectangles: (state) => {\n state.data = undefined;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchRectangleData.pending, (state) => {\n state.loading = true;\n state.error = null;\n })\n .addCase(exports.fetchRectangleData.fulfilled, (state, action) => {\n state.data = action.payload;\n state.loading = false;\n state.error = null;\n })\n .addCase(exports.fetchRectangleData.rejected, (state, action) => {\n state.error = action.payload || {\n message: \"An unknown error occurred\",\n };\n state.loading = false;\n });\n },\n});\nexports.clearRectangles = rectangleSlice.actions.clearRectangles;\nexports.default = rectangleSlice.reducer;\nconst selectRectangleData = (state) => state.rectangle.data;\nexports.selectRectangleData = selectRectangleData;\nconst selectRectangleLoading = (state) => state.rectangle.loading;\nexports.selectRectangleLoading = selectRectangleLoading;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectParameters = exports.selectSensors = exports.fetchSensors = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n sensors: [],\n fetchSensorsStatus: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n};\nexports.fetchSensors = (0, toolkit_1.createAsyncThunk)(\"sensors\", (sessionType, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n const sessionTypeCapitalized = sessionType[0].toUpperCase() + sessionType.slice(1);\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchSensors(sessionTypeCapitalized));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchSensors\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchSensors(sessionTypeCapitalized),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nconst sensorsSlice = (0, toolkit_1.createSlice)({\n name: \"sensors\",\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchSensors.pending, (state) => {\n state.fetchSensorsStatus = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchSensors.fulfilled, (state, action) => {\n state.fetchSensorsStatus = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.sensors = action.payload;\n state.error = null;\n })\n .addCase(exports.fetchSensors.rejected, (state, action) => {\n state.fetchSensorsStatus = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || {\n message: \"Unknown error occurred\",\n };\n });\n },\n});\nconst selectSensors = (state) => state.sensors.sensors;\nexports.selectSensors = selectSensors;\nexports.selectParameters = (0, toolkit_1.createSelector)([exports.selectSensors], (sensors) => {\n const parameters = sensors.map((sensor) => sensor.measurementType);\n const parametersUnique = parameters.filter((parameter, index) => parameters.indexOf(parameter) === index);\n return parametersUnique;\n});\nexports.default = sensorsSlice.reducer;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setFiltersButtonClosed = exports.resetTags = exports.setFixedSessionsType = exports.setCustomSensorsModalOpen = exports.setBasicSensorsModalOpen = exports.setCustomParametersModalOpen = exports.setBasicParametersModalOpen = exports.selectFiltersButtonClosed = exports.selectIsUsernamesInputFetching = exports.selectIsTagsInputFetching = exports.selectIsDormantSessionsType = exports.selectFixedSessionsType = exports.selectCustomSensorsModalOpen = exports.selectBasicSensorsModalOpen = exports.selectCustomParametersModalOpen = exports.selectBasicParametersModalOpen = exports.selectTags = exports.selectUsernames = exports.fetchTags = exports.fetchUsernames = exports.FixedSessionsTypes = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nvar FixedSessionsTypes;\n(function (FixedSessionsTypes) {\n FixedSessionsTypes[\"ACTIVE\"] = \"active\";\n FixedSessionsTypes[\"DORMANT\"] = \"dormant\";\n})(FixedSessionsTypes || (exports.FixedSessionsTypes = FixedSessionsTypes = {}));\nconst initialState = {\n usernames: [],\n tags: [],\n fetchUsernamesStatus: \"IDLE\" /* StatusEnum.Idle */,\n fetchTagsStatus: \"IDLE\" /* StatusEnum.Idle */,\n usernamesError: null,\n tagsError: null,\n basicParametersModalOpen: false,\n customParametersModalOpen: false,\n basicSensorsModalOpen: false,\n customSensorsModalOpen: false,\n fixedSessionsType: FixedSessionsTypes.ACTIVE,\n filtersButtonClosed: false,\n};\nexports.fetchUsernames = (0, toolkit_1.createAsyncThunk)(\"autocomplete/usernames\", (params, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchUsernames(params));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchUsernames\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchUsernames(params),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nexports.fetchTags = (0, toolkit_1.createAsyncThunk)(\"autocomplete/tags\", (params, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchTags(params));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchTags\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchTags(params),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nconst sessionFilterSlice = (0, toolkit_1.createSlice)({\n name: \"sessionFilter\",\n initialState,\n reducers: {\n setBasicParametersModalOpen: (state, action) => {\n state.basicParametersModalOpen = action.payload;\n },\n setCustomParametersModalOpen: (state, action) => {\n state.customParametersModalOpen = action.payload;\n },\n setBasicSensorsModalOpen: (state, action) => {\n state.basicSensorsModalOpen = action.payload;\n },\n setCustomSensorsModalOpen: (state, action) => {\n state.customSensorsModalOpen = action.payload;\n },\n setFixedSessionsType: (state, action) => {\n state.fixedSessionsType = action.payload;\n },\n resetTags: (state) => {\n state.tags = [];\n },\n setFiltersButtonClosed: (state, action) => {\n state.filtersButtonClosed = action.payload;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchUsernames.pending, (state) => {\n state.fetchUsernamesStatus = \"PENDING\" /* StatusEnum.Pending */;\n state.usernamesError = null;\n })\n .addCase(exports.fetchUsernames.fulfilled, (state, action) => {\n state.fetchUsernamesStatus = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.usernames = action.payload;\n state.usernamesError = null;\n })\n .addCase(exports.fetchUsernames.rejected, (state, action) => {\n state.fetchUsernamesStatus = \"REJECTED\" /* StatusEnum.Rejected */;\n state.usernames = [];\n state.usernamesError = action.payload || {\n message: \"Unknown error occurred\",\n };\n })\n .addCase(exports.fetchTags.pending, (state) => {\n state.fetchTagsStatus = \"PENDING\" /* StatusEnum.Pending */;\n state.tagsError = null;\n })\n .addCase(exports.fetchTags.fulfilled, (state, action) => {\n state.fetchTagsStatus = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.tags = action.payload;\n state.tagsError = null;\n })\n .addCase(exports.fetchTags.rejected, (state, action) => {\n state.fetchTagsStatus = \"REJECTED\" /* StatusEnum.Rejected */;\n state.tags = [];\n state.tagsError = action.payload || {\n message: \"Unknown error occurred\",\n };\n });\n },\n});\nconst selectUsernames = (state) => state.sessionFilter.usernames;\nexports.selectUsernames = selectUsernames;\nconst selectTags = (state) => state.sessionFilter.tags;\nexports.selectTags = selectTags;\nconst selectBasicParametersModalOpen = (state) => state.sessionFilter.basicParametersModalOpen;\nexports.selectBasicParametersModalOpen = selectBasicParametersModalOpen;\nconst selectCustomParametersModalOpen = (state) => state.sessionFilter.customParametersModalOpen;\nexports.selectCustomParametersModalOpen = selectCustomParametersModalOpen;\nconst selectBasicSensorsModalOpen = (state) => state.sessionFilter.basicSensorsModalOpen;\nexports.selectBasicSensorsModalOpen = selectBasicSensorsModalOpen;\nconst selectCustomSensorsModalOpen = (state) => state.sessionFilter.customSensorsModalOpen;\nexports.selectCustomSensorsModalOpen = selectCustomSensorsModalOpen;\nconst selectFixedSessionsType = (state) => state.sessionFilter.fixedSessionsType;\nexports.selectFixedSessionsType = selectFixedSessionsType;\nconst selectIsDormantSessionsType = (state) => state.sessionFilter.fixedSessionsType === FixedSessionsTypes.DORMANT;\nexports.selectIsDormantSessionsType = selectIsDormantSessionsType;\nconst selectIsTagsInputFetching = (state) => state.sessionFilter.fetchTagsStatus === \"PENDING\" /* StatusEnum.Pending */;\nexports.selectIsTagsInputFetching = selectIsTagsInputFetching;\nconst selectIsUsernamesInputFetching = (state) => state.sessionFilter.fetchUsernamesStatus === \"PENDING\" /* StatusEnum.Pending */;\nexports.selectIsUsernamesInputFetching = selectIsUsernamesInputFetching;\nconst selectFiltersButtonClosed = (state) => state.sessionFilter.filtersButtonClosed;\nexports.selectFiltersButtonClosed = selectFiltersButtonClosed;\n_a = sessionFilterSlice.actions, exports.setBasicParametersModalOpen = _a.setBasicParametersModalOpen, exports.setCustomParametersModalOpen = _a.setCustomParametersModalOpen, exports.setBasicSensorsModalOpen = _a.setBasicSensorsModalOpen, exports.setCustomSensorsModalOpen = _a.setCustomSensorsModalOpen, exports.setFixedSessionsType = _a.setFixedSessionsType, exports.resetTags = _a.resetTags, exports.setFiltersButtonClosed = _a.setFiltersButtonClosed;\nexports.default = sessionFilterSlice.reducer;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectThumbPositions = exports.selectSliderWidth = exports.selectUserThresholds = exports.selectThresholds = exports.selectDefaultThresholds = exports.clearErrorMessage = exports.updateThumbPositions = exports.updateSliderWidth = exports.setUserThresholdValues = exports.setDefaultThresholdsValues = exports.resetUserThresholds = exports.thresholdSlice = exports.fetchThresholds = exports.initialState = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nexports.initialState = {\n defaultValues: {\n min: 0,\n low: 0,\n middle: 0,\n high: 0,\n max: 0,\n },\n status: \"IDLE\" /* StatusEnum.Idle */,\n sliderWidth: 0,\n thumbPositions: {\n low: 0,\n middle: 0,\n high: 0,\n },\n errorMessage: \"\",\n error: null,\n};\nexports.fetchThresholds = (0, toolkit_1.createAsyncThunk)(\"thresholds/getData\", (filters, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.oldApiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchThresholds(filters));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchThresholds\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchThresholds(filters),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}));\nexports.thresholdSlice = (0, toolkit_1.createSlice)({\n name: \"threshold\",\n initialState: Object.assign({}, exports.initialState),\n extraReducers: (builder) => {\n builder\n .addCase(exports.fetchThresholds.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.error = null;\n })\n .addCase(exports.fetchThresholds.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.error = null;\n state.defaultValues.min = Number(action.payload[0]);\n state.defaultValues.low = Number(action.payload[1]);\n state.defaultValues.middle = Number(action.payload[2]);\n state.defaultValues.high = Number(action.payload[3]);\n state.defaultValues.max = Number(action.payload[4]);\n if (!state.userValues) {\n state.userValues = Object.assign({}, state.defaultValues);\n }\n })\n .addCase(exports.fetchThresholds.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || {\n message: \"An unknown error occurred\",\n };\n });\n },\n reducers: {\n resetUserThresholds: (state) => {\n state.userValues = Object.assign({}, state.defaultValues);\n },\n setDefaultThresholdsValues: (state, { payload: { min, low, middle, high, max } }) => {\n state.defaultValues = { min, low, middle, high, max };\n },\n setUserThresholdValues: (state, { payload: { min, low, middle, high, max } }) => {\n state.userValues = { min, low, middle, high, max };\n },\n updateSliderWidth: (state, action) => {\n state.sliderWidth = action.payload;\n },\n updateThumbPositions: (state, action) => {\n state.thumbPositions = action.payload;\n },\n clearErrorMessage: (state) => {\n state.errorMessage = \"\";\n },\n },\n});\n_a = exports.thresholdSlice.actions, exports.resetUserThresholds = _a.resetUserThresholds, exports.setDefaultThresholdsValues = _a.setDefaultThresholdsValues, exports.setUserThresholdValues = _a.setUserThresholdValues, exports.updateSliderWidth = _a.updateSliderWidth, exports.updateThumbPositions = _a.updateThumbPositions, exports.clearErrorMessage = _a.clearErrorMessage;\nexports.default = exports.thresholdSlice.reducer;\nconst selectDefaultThresholds = (state) => state.threshold.defaultValues;\nexports.selectDefaultThresholds = selectDefaultThresholds;\nconst selectThresholds = (state) => state.threshold.userValues || state.threshold.defaultValues;\nexports.selectThresholds = selectThresholds;\nconst selectUserThresholds = (state) => state.threshold.userValues;\nexports.selectUserThresholds = selectUserThresholds;\nconst selectSliderWidth = (state) => state.threshold.sliderWidth;\nexports.selectSliderWidth = selectSliderWidth;\nconst selectThumbPositions = (state) => state.threshold.thumbPositions;\nexports.selectThumbPositions = selectThumbPositions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.selectTimelapseTimeRange = exports.selectTimelapseIsLoading = exports.selectCurrentTimestamp = exports.selectTimelapseData = void 0;\nconst selectTimelapseData = (state) => state.timelapse.data;\nexports.selectTimelapseData = selectTimelapseData;\nconst selectCurrentTimestamp = (state) => state.timelapse.currentTimestamp;\nexports.selectCurrentTimestamp = selectCurrentTimestamp;\nconst selectTimelapseIsLoading = (state) => state.timelapse.isLoading;\nexports.selectTimelapseIsLoading = selectTimelapseIsLoading;\nconst selectTimelapseTimeRange = (state) => state.timelapse.timelapseTimeRange;\nexports.selectTimelapseTimeRange = selectTimelapseTimeRange;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setTimelapseTimeRange = exports.setCurrentTimestamp = exports.fetchTimelapseData = void 0;\nconst toolkit_1 = require(\"@reduxjs/toolkit\");\nconst apiClient_1 = require(\"../api/apiClient\");\nconst apiEndpoints_1 = require(\"../api/apiEndpoints\");\nconst timelapse_1 = require(\"../types/timelapse\");\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nconst logController_1 = require(\"../utils/logController\");\nconst initialState = {\n data: {},\n status: \"IDLE\" /* StatusEnum.Idle */,\n error: null,\n isLoading: false,\n currentTimestamp: null,\n timelapseTimeRange: timelapse_1.TimeRanges.HOURS_24,\n};\nexports.fetchTimelapseData = (0, toolkit_1.createAsyncThunk)(\"timelapse/fetchData\", (sessionsData, { rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield apiClient_1.apiClient.get(apiEndpoints_1.API_ENDPOINTS.fetchTimelapseData(sessionsData.filters));\n return response.data;\n }\n catch (error) {\n const message = (0, getErrorMessage_1.getErrorMessage)(error);\n const apiError = {\n message,\n additionalInfo: {\n action: \"fetchTimelapseData\",\n endpoint: apiEndpoints_1.API_ENDPOINTS.fetchTimelapseData(sessionsData.filters),\n },\n };\n (0, logController_1.logError)(error, apiError);\n return rejectWithValue(apiError);\n }\n}), {\n condition: (_, { getState }) => {\n const { timelapse } = getState();\n if (timelapse.status === \"PENDING\" /* StatusEnum.Pending */) {\n return false;\n }\n },\n});\nconst timelapseSlice = (0, toolkit_1.createSlice)({\n name: \"timelapse\",\n initialState,\n reducers: {\n setCurrentTimestamp(state, action) {\n state.currentTimestamp = action.payload;\n },\n setTimelapseTimeRange(state, action) {\n state.timelapseTimeRange = action.payload;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(exports.fetchTimelapseData.pending, (state) => {\n state.status = \"PENDING\" /* StatusEnum.Pending */;\n state.isLoading = true;\n state.error = null;\n });\n builder.addCase(exports.fetchTimelapseData.fulfilled, (state, action) => {\n state.status = \"FULFILLED\" /* StatusEnum.Fulfilled */;\n state.data = action.payload;\n state.isLoading = false;\n const timestamps = Object.keys(action.payload);\n if (timestamps.length > 0) {\n state.currentTimestamp = timestamps[timestamps.length - 1];\n }\n });\n builder.addCase(exports.fetchTimelapseData.rejected, (state, action) => {\n state.status = \"REJECTED\" /* StatusEnum.Rejected */;\n state.error = action.payload || {\n message: \"An unknown error occurred\",\n };\n state.isLoading = false;\n });\n },\n});\n_a = timelapseSlice.actions, exports.setCurrentTimestamp = _a.setCurrentTimestamp, exports.setTimelapseTimeRange = _a.setTimelapseTimeRange;\nexports.default = timelapseSlice.reducer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DateFormat = void 0;\nvar DateFormat;\n(function (DateFormat) {\n DateFormat[\"default\"] = \"YYYY-MM-DD\";\n DateFormat[\"default_with_time\"] = \"YYYY-MM-DD HH:mm\";\n DateFormat[\"us\"] = \"MM/DD/YYYY\";\n DateFormat[\"us_with_time\"] = \"MM/DD/YYYY HH:mm\";\n DateFormat[\"us_with_time_seconds\"] = \"MM/DD/YYYY HH:mm:ss\";\n DateFormat[\"us_without_year\"] = \"MM/DD\";\n DateFormat[\"time_with_seconds\"] = \"HH:mm:ss\";\n DateFormat[\"time\"] = \"hh:mm A\";\n DateFormat[\"us_timestamp\"] = \"YYYYMMDDHH:mm:ssZ\";\n DateFormat[\"us_with_time_seconds_utc\"] = \"YYYY-MM-DD HH:mm:ss UTC\";\n})(DateFormat || (exports.DateFormat = DateFormat = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UnitSymbols = exports.SessionTypes = exports.ParameterTypes = exports.MobileBasicParameterTypes = exports.FixedBasicParameterTypes = void 0;\nconst SessionTypes = {\n FIXED: \"fixed\",\n MOBILE: \"mobile\",\n};\nexports.SessionTypes = SessionTypes;\nconst ParameterTypes = {\n HUMIDITY: \"Humidity\",\n NITROGEN_DIOXIDE: \"Nitrogen Dioxide\",\n OZONE: \"Ozone\",\n PARTICULATE_MATTER: \"Particulate Matter\",\n SOUND_LEVEL: \"Sound Level\",\n TEMPERATURE: \"Temperature\",\n};\nexports.ParameterTypes = ParameterTypes;\nconst MobileBasicParameterTypes = [\n ParameterTypes.HUMIDITY,\n ParameterTypes.PARTICULATE_MATTER,\n ParameterTypes.SOUND_LEVEL,\n ParameterTypes.TEMPERATURE,\n];\nexports.MobileBasicParameterTypes = MobileBasicParameterTypes;\nconst FixedBasicParameterTypes = [\n ParameterTypes.HUMIDITY,\n ParameterTypes.NITROGEN_DIOXIDE,\n ParameterTypes.OZONE,\n ParameterTypes.PARTICULATE_MATTER,\n ParameterTypes.TEMPERATURE,\n];\nexports.FixedBasicParameterTypes = FixedBasicParameterTypes;\nconst UnitSymbols = {\n ParticulateMatter: \"µg/m³\",\n};\nexports.UnitSymbols = UnitSymbols;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewMode = exports.MapTypeId = void 0;\nconst MapTypeId = {\n ROADMAP: 'roadmap',\n SATELLITE: 'satellite',\n TERRAIN: 'terrain',\n HYBRID: 'hybrid'\n};\nexports.MapTypeId = MapTypeId;\nvar ViewMode;\n(function (ViewMode) {\n ViewMode[\"MAP\"] = \"map\";\n ViewMode[\"SATELLITE\"] = \"satellite\";\n ViewMode[\"TERRAIN\"] = \"terrain\";\n ViewMode[\"LABELS\"] = \"labels\";\n})(ViewMode || (exports.ViewMode = ViewMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SensorPrefix = exports.BasicSensorTypes = exports.SENSOR_NAMES = void 0;\nexports.SENSOR_NAMES = {\n PARTICULATE_MATTER: {\n AIRBEAM_PM25: \"AirBeam-PM2.5\",\n AIRBEAM_PM10: \"AirBeam-PM10\",\n AIRBEAM_PM1: \"AirBeam-PM1\",\n GOVERNMENT_PM25: \"Government-PM2.5\",\n AIRBEAM_MINI_PM25: \"AirBeamMini-PM2.5\",\n AIRBEAM_MINI_PM1: \"AirBeamMini-PM1\",\n },\n HUMIDITY: \"AirBeam-RH\",\n NITROGEN_DIOXIDE: \"Government-NO2\",\n OZONE: \"Government-Ozone\",\n TEMPERATURE: \"AirBeam-F\",\n SOUND_LEVEL: \"Phone Microphone\",\n};\nexports.BasicSensorTypes = {\n HUMIDITY: exports.SENSOR_NAMES.HUMIDITY,\n NITROGEN_DIOXIDE: exports.SENSOR_NAMES.NITROGEN_DIOXIDE,\n OZONE: exports.SENSOR_NAMES.OZONE,\n PARTICULATE_MATTER: {\n MOBILE: [\n exports.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM25,\n exports.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM10,\n exports.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM1,\n ],\n FIXED: [\n exports.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM25,\n exports.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM10,\n exports.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM1,\n exports.SENSOR_NAMES.PARTICULATE_MATTER.GOVERNMENT_PM25,\n ],\n },\n SOUND_LEVEL: exports.SENSOR_NAMES.SOUND_LEVEL,\n TEMPERATURE: exports.SENSOR_NAMES.TEMPERATURE,\n};\nexports.SensorPrefix = {\n AIR: \"Air\",\n GOVERNMENT: \"Government\",\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MobileTimeRange = exports.FixedTimeRange = void 0;\nvar FixedTimeRange;\n(function (FixedTimeRange) {\n FixedTimeRange[\"Hour\"] = \"hour\";\n FixedTimeRange[\"Day\"] = \"day\";\n FixedTimeRange[\"Week\"] = \"week\";\n FixedTimeRange[\"Month\"] = \"month\";\n FixedTimeRange[\"Custom\"] = \"custom\";\n})(FixedTimeRange || (exports.FixedTimeRange = FixedTimeRange = {}));\nvar MobileTimeRange;\n(function (MobileTimeRange) {\n MobileTimeRange[\"FiveMinutes\"] = \"fiveMinutes\";\n MobileTimeRange[\"Hour\"] = \"hour\";\n MobileTimeRange[\"All\"] = \"all\";\n})(MobileTimeRange || (exports.MobileTimeRange = MobileTimeRange = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TimeRanges = void 0;\nvar TimeRanges;\n(function (TimeRanges) {\n TimeRanges[\"HOURS_24\"] = \"24hours\";\n TimeRanges[\"DAYS_3\"] = \"3days\";\n TimeRanges[\"DAYS_7\"] = \"7days\";\n})(TimeRanges || (exports.TimeRanges = TimeRanges = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserSettings = void 0;\nvar UserSettings;\n(function (UserSettings) {\n UserSettings[\"CalendarView\"] = \"CALENDAR_VIEW\";\n UserSettings[\"CrowdMapView\"] = \"CROWD_MAP_VIEW\";\n UserSettings[\"FiltersView\"] = \"FILTERS_VIEW\";\n UserSettings[\"MapLegendView\"] = \"MAP_LEGEND_VIEW\";\n UserSettings[\"MapView\"] = \"MAP_VIEW\";\n UserSettings[\"ModalView\"] = \"MODAL_VIEW\";\n UserSettings[\"SessionListView\"] = \"SESSION_LIST_VIEW\";\n UserSettings[\"TimelapseView\"] = \"TIMELAPSE_VIEW\";\n})(UserSettings || (exports.UserSettings = UserSettings = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.remove = exports.getJSON = exports.get = exports.set = void 0;\n// Set a cookie with optional parameters\nconst set = (name, value, options = {}) => {\n options = Object.assign({ path: \"/\" }, options);\n if (options.expires instanceof Date) {\n options.expires = options.expires.toUTCString();\n }\n let updatedCookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value);\n for (let optionKey in options) {\n updatedCookie += \"; \" + optionKey;\n let optionValue = options[optionKey];\n if (optionValue !== true) {\n updatedCookie += \"=\" + optionValue;\n }\n }\n document.cookie = updatedCookie;\n};\nexports.set = set;\n// Get a cookie by name\nconst get = (name) => {\n const matches = document.cookie.match(new RegExp(\"(?:^|; )\" +\n name.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, \"\\\\$1\") +\n \"=([^;]*)\"));\n return matches ? decodeURIComponent(matches[1]) : null;\n};\nexports.get = get;\n// Parse JSON cookie\nconst getJSON = (name) => {\n const value = (0, exports.get)(name);\n return value ? JSON.parse(value) : null;\n};\nexports.getJSON = getJSON;\n// Delete a cookie\nconst remove = (name) => {\n (0, exports.set)(name, \"\", {\n \"max-age\": -1,\n });\n};\nexports.remove = remove;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.copyCurrentURL = void 0;\nconst copyCurrentURL = (link) => {\n const currentURL = link;\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard\n .writeText(currentURL)\n .then(() => {\n console.log(\"URL copied!\");\n })\n .catch((error) => {\n console.error(\"Failed to copy URL: \", error);\n });\n }\n else {\n // Fallback for browsers that do not support Clipboard API\n const tempInput = document.createElement(\"input\");\n tempInput.style.position = \"absolute\";\n tempInput.style.left = \"-1000px\";\n tempInput.value = currentURL;\n document.body.appendChild(tempInput);\n tempInput.select();\n document.execCommand(\"copy\");\n document.body.removeChild(tempInput);\n tempInput.onerror = (e) => {\n console.log(e.toString);\n };\n }\n};\nexports.copyCurrentURL = copyCurrentURL;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseDateString = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst parseDateString = (dateStr) => {\n // Handle null, undefined, empty string, or \"Invalid date\"\n if (!dateStr || dateStr === \"Invalid date\") {\n return Date.now(); // Return current timestamp as fallback\n }\n try {\n // Parse the date string to UTC timestamp to match measurement timestamps\n const timestamp = moment_1.default.utc(dateStr, \"MM/DD/YYYY HH:mm\").valueOf();\n if (isNaN(timestamp)) {\n console.warn(`Invalid date string: \"${dateStr}\", using current time`);\n return Date.now();\n }\n return timestamp;\n }\n catch (error) {\n console.warn(`Error parsing date string: \"${dateStr}\", using current time`, error);\n return Date.now();\n }\n};\nexports.parseDateString = parseDateString;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.determineZoomLevel = void 0;\nconst determineZoomLevel = (results) => {\n var _a, _b, _c;\n const locationTypes = results[0].types;\n const primaryType = locationTypes[0];\n const viewport = results[0].geometry.viewport;\n // Helper function to get bounds for specific countries\n const getCountryBounds = (countryCode) => {\n switch (countryCode) {\n case \"US\":\n return new google.maps.LatLngBounds({ lat: 25.82, lng: -124.39 }, // SW corner\n { lat: 49.38, lng: -66.94 } // NE corner\n );\n case \"RU\":\n return new google.maps.LatLngBounds({ lat: 41.18, lng: 19.64 }, { lat: 81.85, lng: 180.0 });\n case \"CA\":\n return new google.maps.LatLngBounds({ lat: 45.0, lng: -125.0 }, // Adjusted SW corner\n { lat: 70.0, lng: -60.0 });\n // Add more countries as needed\n default:\n return viewport;\n }\n };\n // Helper function to get bounds for large US states\n const getStateBounds = (state) => {\n switch (state) {\n case \"AK\":\n return new google.maps.LatLngBounds({ lat: 51.17, lng: -179.15 }, { lat: 71.44, lng: -129.99 });\n case \"TX\":\n return new google.maps.LatLngBounds({ lat: 25.84, lng: -106.65 }, { lat: 36.5, lng: -93.51 });\n case \"CA\":\n return new google.maps.LatLngBounds({ lat: 32.53, lng: -124.48 }, { lat: 42.01, lng: -114.13 });\n default:\n return viewport;\n }\n };\n switch (primaryType) {\n // Very detailed zoom for specific addresses and rooms\n case \"street_address\":\n case \"premise\":\n case \"subpremise\":\n case \"street_number\":\n case \"room\":\n return {\n zoom: 18,\n bounds: viewport,\n };\n // Detailed zoom for routes and intersections\n case \"route\":\n case \"intersection\":\n return {\n zoom: 17,\n bounds: viewport,\n };\n // Detailed zoom for various businesses and points of interest\n case \"accounting\":\n case \"atm\":\n case \"bakery\":\n case \"bank\":\n case \"bar\":\n case \"beauty_salon\":\n case \"bicycle_store\":\n case \"book_store\":\n case \"bowling_alley\":\n case \"bus_station\":\n case \"cafe\":\n case \"campground\":\n case \"car_dealer\":\n case \"car_rental\":\n case \"car_repair\":\n case \"car_wash\":\n case \"casino\":\n case \"cemetery\":\n case \"church\":\n case \"city_hall\":\n case \"clothing_store\":\n case \"convenience_store\":\n case \"courthouse\":\n case \"dentist\":\n case \"department_store\":\n case \"doctor\":\n case \"drugstore\":\n case \"electrician\":\n case \"electronics_store\":\n case \"embassy\":\n case \"fire_station\":\n case \"florist\":\n case \"funeral_home\":\n case \"furniture_store\":\n case \"gas_station\":\n case \"gym\":\n case \"hair_care\":\n case \"hardware_store\":\n case \"hindu_temple\":\n case \"home_goods_store\":\n case \"hospital\":\n case \"insurance_agency\":\n case \"jewelry_store\":\n case \"laundry\":\n case \"lawyer\":\n case \"library\":\n case \"light_rail_station\":\n case \"liquor_store\":\n case \"local_government_office\":\n case \"locksmith\":\n case \"lodging\":\n case \"meal_delivery\":\n case \"meal_takeaway\":\n case \"mosque\":\n case \"movie_rental\":\n case \"movie_theater\":\n case \"moving_company\":\n case \"museum\":\n case \"neighborhood\":\n case \"night_club\":\n case \"painter\":\n case \"parking\":\n case \"pet_store\":\n case \"pharmacy\":\n case \"physiotherapist\":\n case \"plumber\":\n case \"police\":\n case \"political\":\n case \"post_office\":\n case \"primary_school\":\n case \"real_estate_agency\":\n case \"restaurant\":\n case \"roofing_contractor\":\n case \"rv_park\":\n case \"school\":\n case \"secondary_school\":\n case \"shoe_store\":\n case \"shopping_mall\":\n case \"spa\":\n case \"storage\":\n case \"store\":\n case \"sublocality\":\n case \"sublocality_level_1\":\n case \"sublocality_level_2\":\n case \"sublocality_level_3\":\n case \"sublocality_level_4\":\n case \"sublocality_level_5\":\n case \"subway_station\":\n case \"supermarket\":\n case \"synagogue\":\n case \"taxi_stand\":\n case \"train_station\":\n case \"transit_station\":\n case \"travel_agency\":\n case \"university\":\n case \"veterinary_care\":\n case \"zoo\":\n case \"town_square\":\n return {\n zoom: 15,\n bounds: viewport,\n };\n // Less detailed zoom for larger areas and general places\n case \"airport\":\n case \"amusement_park\":\n case \"aquarium\":\n case \"art_gallery\":\n case \"establishment\":\n case \"finance\":\n case \"floor\":\n case \"food\":\n case \"general_contractor\":\n case \"geocode\":\n case \"health\":\n case \"landmark\":\n case \"natural_feature\":\n case \"place_of_worship\":\n case \"stadium\":\n case \"tourist_attraction\":\n case \"park\":\n case \"point_of_interest\":\n case \"post_box\":\n case \"postal_town\":\n return {\n zoom: 14,\n bounds: viewport,\n };\n // City level zoom\n case \"locality\":\n case \"postal_code\":\n case \"postal_code_prefix\":\n case \"postal_code_suffix\":\n return {\n zoom: 11,\n bounds: viewport,\n };\n // Regional level zoom\n case \"administrative_area_level_3\":\n case \"administrative_area_level_4\":\n case \"administrative_area_level_5\":\n case \"administrative_area_level_6\":\n case \"administrative_area_level_7\":\n return {\n zoom: 12,\n bounds: viewport,\n };\n // County level zoom\n case \"administrative_area_level_2\":\n return {\n zoom: 11,\n bounds: viewport,\n };\n // State level zoom\n case \"administrative_area_level_1\":\n const country = (_a = results[0].address_components.find((component) => component.types.includes(\"country\"))) === null || _a === void 0 ? void 0 : _a.short_name;\n if (country === \"US\") {\n const state = (_b = results[0].address_components.find((component) => component.types.includes(\"administrative_area_level_1\"))) === null || _b === void 0 ? void 0 : _b.short_name;\n switch (state) {\n case \"AK\":\n case \"TX\":\n case \"CA\":\n return {\n zoom: 6,\n bounds: getStateBounds(state),\n };\n case \"MT\":\n case \"NM\":\n case \"AZ\":\n case \"NV\":\n return {\n zoom: 7,\n bounds: viewport,\n };\n default:\n return {\n zoom: 7,\n bounds: viewport,\n };\n }\n }\n return {\n zoom: 7,\n bounds: viewport,\n };\n // Country level zoom - adjusted based on country size\n case \"country\":\n const countryCode = (_c = results[0].address_components.find((component) => component.types.includes(\"country\"))) === null || _c === void 0 ? void 0 : _c.short_name;\n switch (countryCode) {\n case \"RU\":\n case \"CA\":\n return {\n zoom: 4,\n bounds: getCountryBounds(countryCode),\n };\n case \"US\":\n case \"CN\":\n case \"BR\":\n case \"AU\":\n return {\n zoom: 5,\n bounds: getCountryBounds(countryCode),\n };\n case \"IN\":\n case \"AR\":\n return {\n zoom: 6,\n bounds: getCountryBounds(countryCode),\n };\n default:\n return {\n zoom: 6,\n bounds: viewport,\n };\n }\n // Very broad level zoom - adjusted\n case \"archipelago\":\n case \"colloquial_area\":\n case \"continent\":\n return {\n zoom: 3,\n bounds: viewport,\n };\n // Place code level zoom\n case \"place_code\":\n return {\n zoom: 8,\n bounds: viewport,\n };\n // Default zoom level if type is unknown\n default:\n return {\n zoom: 10,\n bounds: viewport,\n };\n }\n};\nexports.determineZoomLevel = determineZoomLevel;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterTimestamps = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst dateFormat_1 = require(\"../types/dateFormat\");\nconst timelapse_1 = require(\"../types/timelapse\");\nconst filterTimestamps = (timestamps, timeRange) => {\n const now = moment_1.default.utc();\n let startTime;\n switch (timeRange) {\n case timelapse_1.TimeRanges.HOURS_24:\n startTime = now.clone().subtract(24, \"hours\");\n break;\n case timelapse_1.TimeRanges.DAYS_3:\n startTime = now.clone().subtract(3, \"days\");\n break;\n case timelapse_1.TimeRanges.DAYS_7:\n startTime = now.clone().subtract(7, \"days\");\n break;\n default:\n startTime = now.clone().subtract(24, \"hours\");\n break;\n }\n const filtered = Object.keys(timestamps)\n .filter((timestamp) => {\n const parsedTimestamp = moment_1.default.utc(timestamp, dateFormat_1.DateFormat.us_with_time_seconds_utc);\n return parsedTimestamp.isAfter(startTime);\n })\n .sort((a, b) => moment_1.default\n .utc(a, dateFormat_1.DateFormat.us_with_time_seconds_utc)\n .diff(moment_1.default.utc(b, dateFormat_1.DateFormat.us_with_time_seconds_utc)));\n if (filtered.length === 0) {\n return Object.keys(timestamps).sort((a, b) => moment_1.default\n .utc(a, dateFormat_1.DateFormat.us_with_time_seconds_utc)\n .diff(moment_1.default.utc(b, dateFormat_1.DateFormat.us_with_time_seconds_utc)));\n }\n return filtered;\n};\nexports.filterTimestamps = filterTimestamps;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FocusTabController = void 0;\nconst react_1 = require(\"react\");\nconst userIsTabbingKey = \"user-is-tabbing\";\nconst handleTabAction = (event) => {\n if (event.key === \"Tab\" /* KeyboardKeys.Tab */) {\n document.body.classList.add(userIsTabbingKey);\n window.removeEventListener(\"keydown\" /* EventType.keyDown */, handleTabAction);\n window.addEventListener(\"mousedown\" /* EventType.mouseDown */, handleMouseAction);\n }\n};\nconst handleMouseAction = () => {\n document.body.classList.remove(userIsTabbingKey);\n window.removeEventListener(\"mousedown\" /* EventType.mouseDown */, handleMouseAction);\n window.addEventListener(\"keydown\" /* EventType.keyDown */, handleTabAction);\n};\nconst FocusTabController = () => {\n (0, react_1.useEffect)(() => {\n window.addEventListener(\"keydown\" /* EventType.keyDown */, handleTabAction);\n return () => {\n window.removeEventListener(\"keydown\" /* EventType.keyDown */, handleTabAction);\n window.removeEventListener(\"mousedown\" /* EventType.mouseDown */, handleMouseAction);\n };\n }, []);\n return null;\n};\nexports.FocusTabController = FocusTabController;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getBrowserLocation = void 0;\nconst mapParamsHandler_1 = require(\"./mapParamsHandler\");\nconst DEFAULT_ZOOM = 12;\nconst getBrowserLocation = (map, setUrlParams) => __awaiter(void 0, void 0, void 0, function* () {\n try {\n const response = yield fetch(`https://www.googleapis.com/geolocation/v1/geolocate?key=${process.env.GOOGLE_MAPS_API_KEY}`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n considerIp: true,\n }),\n });\n const data = yield response.json();\n if (data.location) {\n const { lat, lng } = data.location;\n setUrlParams([\n {\n key: mapParamsHandler_1.UrlParamsTypes.currentCenter,\n value: JSON.stringify({ lat, lng }),\n },\n {\n key: mapParamsHandler_1.UrlParamsTypes.currentZoom,\n value: DEFAULT_ZOOM.toString(),\n },\n ]);\n map === null || map === void 0 ? void 0 : map.setZoom(DEFAULT_ZOOM);\n map === null || map === void 0 ? void 0 : map.panTo({ lat, lng });\n return { lat, lng };\n }\n return null;\n }\n catch (error) {\n return null;\n }\n});\nexports.getBrowserLocation = getBrowserLocation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getClusterPixelPosition = void 0;\nconst getClusterPixelPosition = (map, latLng) => {\n const overlay = new google.maps.OverlayView();\n overlay.setMap(map);\n const overlayProjection = overlay.getProjection();\n if (!overlayProjection) {\n throw new Error(\"Map projection is undefined\");\n }\n const point = overlayProjection.fromLatLngToContainerPixel(latLng);\n if (!point) {\n throw new Error(\"Could not convert coordinates to point\");\n }\n return point;\n};\nexports.getClusterPixelPosition = getClusterPixelPosition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorMessage = void 0;\nconst isErrorWithMessage = (error) => typeof error === \"object\" &&\n error !== null &&\n \"message\" in error &&\n typeof error.message === \"string\";\nconst toErrorWithMessage = (maybeError) => {\n if (isErrorWithMessage(maybeError))\n return maybeError;\n try {\n return new Error(JSON.stringify(maybeError));\n }\n catch (_a) {\n return new Error(String(maybeError));\n }\n};\nconst getErrorMessage = (error) => {\n return toErrorWithMessage(error).message;\n};\nexports.getErrorMessage = getErrorMessage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mapIndexToTimeRange = exports.getSelectedRangeIndex = void 0;\nconst timeRange_1 = require(\"../types/timeRange\");\nconst getSelectedRangeIndex = (timeRange, fixedSessionTypeSelected) => {\n if (fixedSessionTypeSelected) {\n switch (timeRange) {\n case timeRange_1.FixedTimeRange.Day:\n return 0;\n case timeRange_1.FixedTimeRange.Week:\n return 1;\n case timeRange_1.FixedTimeRange.Month:\n return 2;\n case timeRange_1.FixedTimeRange.Custom:\n return 3;\n default:\n return 0;\n }\n }\n else {\n switch (timeRange) {\n case timeRange_1.MobileTimeRange.FiveMinutes:\n return 0;\n case timeRange_1.MobileTimeRange.Hour:\n return 1;\n case timeRange_1.MobileTimeRange.All:\n return 2;\n default:\n return 2;\n }\n }\n};\nexports.getSelectedRangeIndex = getSelectedRangeIndex;\nconst mapIndexToTimeRange = (index, fixedSessionTypeSelected) => {\n if (fixedSessionTypeSelected) {\n switch (index) {\n case 0:\n return timeRange_1.FixedTimeRange.Day;\n case 1:\n return timeRange_1.FixedTimeRange.Week;\n case 2:\n return timeRange_1.FixedTimeRange.Month;\n case 3:\n return timeRange_1.FixedTimeRange.Custom;\n default:\n return timeRange_1.FixedTimeRange.Day;\n }\n }\n else {\n switch (index) {\n case 0:\n return timeRange_1.MobileTimeRange.FiveMinutes;\n case 1:\n return timeRange_1.MobileTimeRange.Hour;\n case 2:\n return timeRange_1.MobileTimeRange.All;\n default:\n return timeRange_1.MobileTimeRange.All;\n }\n }\n};\nexports.mapIndexToTimeRange = mapIndexToTimeRange;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction hexToRGBA(hex, opacity) {\n hex = hex.replace(\"#\", \"\");\n var r = parseInt(hex.substring(0, 2), 16);\n var g = parseInt(hex.substring(2, 4), 16);\n var b = parseInt(hex.substring(4, 6), 16);\n return `rgba(${r}, ${g}, ${b}, ${opacity})`;\n}\nexports.default = hexToRGBA;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initializeSentry = void 0;\nconst Sentry = __importStar(require(\"@sentry/react\"));\nconst initializeSentry = () => {\n let sentryEnvironment;\n switch (window.location.hostname) {\n case \"aircasting.habitatmap.org\":\n sentryEnvironment = \"Production\";\n break;\n case \"172.104.20.165\":\n sentryEnvironment = \"Experimental\";\n break;\n case \"45.56.103.151\":\n sentryEnvironment = \"Staging\";\n break;\n default:\n sentryEnvironment = \"Production\";\n break;\n }\n if (process.env.NODE_ENV === \"production\") {\n Sentry.init({\n environment: sentryEnvironment,\n dsn: process.env.SENTRY_DSN_KEY,\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.replayIntegration(),\n ],\n tracesSampleRate: 1.0,\n tracePropagationTargets: [/^http:\\/\\/localhost(:\\d+)?/],\n replaysSessionSampleRate: 0.1,\n replaysOnErrorSampleRate: 1.0,\n });\n }\n};\nexports.initializeSentry = initializeSentry;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lastItemFromArray = void 0;\nconst lastItemFromArray = (array) => {\n if (array.length === 0)\n return undefined;\n const sortedArray = [...array].sort((a, b) => new Date(a.date).getTime() - new Date(b.date).getTime());\n return sortedArray[sortedArray.length - 1];\n};\nexports.lastItemFromArray = lastItemFromArray;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logError = exports.logEvent = exports.LogLevel = void 0;\nconst Sentry = __importStar(require(\"@sentry/react\"));\nconst getErrorMessage_1 = require(\"../utils/getErrorMessage\");\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[\"Info\"] = \"info\";\n LogLevel[\"Warning\"] = \"warning\";\n LogLevel[\"Error\"] = \"error\";\n LogLevel[\"Debug\"] = \"debug\";\n LogLevel[\"Fatal\"] = \"fatal\";\n})(LogLevel || (exports.LogLevel = LogLevel = {}));\nconst convertToSeverityLevel = (level) => {\n switch (level) {\n case LogLevel.Info:\n return \"info\";\n case LogLevel.Warning:\n return \"warning\";\n case LogLevel.Error:\n return \"error\";\n case LogLevel.Debug:\n return \"debug\";\n case LogLevel.Fatal:\n return \"fatal\";\n default:\n return \"info\";\n }\n};\nconst logEvent = ({ message, level = LogLevel.Info, }) => {\n const severityLevel = convertToSeverityLevel(level);\n Sentry.captureMessage(message, severityLevel);\n};\nexports.logEvent = logEvent;\nconst logError = (error, context = {}) => {\n const errorMessage = (0, getErrorMessage_1.getErrorMessage)(error);\n const errorToLog = new Error(errorMessage);\n Sentry.captureException(errorToLog, {\n extra: Object.assign({}, context),\n });\n};\nexports.logError = logError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = require(\"react\");\nconst useMapEventListeners = (map, eventHandlers) => {\n (0, react_1.useEffect)(() => {\n if (map) {\n Object.entries(eventHandlers).forEach(([eventName, handler]) => {\n map.addListener(eventName, handler);\n });\n // Cleanup function to remove listeners on unmount\n return () => {\n if (map) {\n Object.keys(eventHandlers).forEach((eventName) => {\n google.maps.event.clearListeners(map, eventName);\n });\n }\n };\n }\n }, [map, eventHandlers]);\n};\nexports.default = useMapEventListeners;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useMapParams = exports.UrlParamsTypes = void 0;\nconst lodash_1 = require(\"lodash\");\nconst react_1 = require(\"react\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst CrowdMapGridSize_1 = require(\"../components/molecules/SessionFilters/CrowdMapGridSize\");\nconst SensorFilter_1 = require(\"../components/molecules/SessionFilters/SensorFilter\");\nconst YearPickerButtons_1 = require(\"../components/molecules/SessionFilters/YearPickerButtons\");\nconst mapConfigs_1 = require(\"../components/organisms/Map/mapUtils/mapConfigs\");\nconst booleans_1 = require(\"../const/booleans\");\nconst coordinates_1 = require(\"../const/coordinates\");\nconst hooks_1 = require(\"../store/hooks\");\nconst thresholdSlice_1 = require(\"../store/thresholdSlice\");\nconst filters_1 = require(\"../types/filters\");\nconst sensors_1 = require(\"../types/sensors\");\nconst userStates_1 = require(\"../types/userStates\");\nconst useScreenSizeDetection_1 = __importDefault(require(\"../utils/useScreenSizeDetection\"));\nconst Cookies = __importStar(require(\"./cookies\"));\nconst setSensor_1 = require(\"./setSensor\");\nvar UrlParamsTypes;\n(function (UrlParamsTypes) {\n UrlParamsTypes[\"boundEast\"] = \"boundEast\";\n UrlParamsTypes[\"boundNorth\"] = \"boundNorth\";\n UrlParamsTypes[\"boundSouth\"] = \"boundSouth\";\n UrlParamsTypes[\"boundWest\"] = \"boundWest\";\n UrlParamsTypes[\"currentCenter\"] = \"currentCenter\";\n UrlParamsTypes[\"currentUserSettings\"] = \"currentUserSettings\";\n UrlParamsTypes[\"currentZoom\"] = \"currentZoom\";\n UrlParamsTypes[\"fetchedSessions\"] = \"fetchedSessions\";\n UrlParamsTypes[\"gridSize\"] = \"gridSize\";\n UrlParamsTypes[\"isActive\"] = \"isActive\";\n UrlParamsTypes[\"isIndoor\"] = \"isIndoor\";\n UrlParamsTypes[\"limit\"] = \"limit\";\n UrlParamsTypes[\"mapType\"] = \"mapType\";\n UrlParamsTypes[\"measurementType\"] = \"measurementType\";\n UrlParamsTypes[\"offset\"] = \"offset\";\n UrlParamsTypes[\"previousCenter\"] = \"previousCenter\";\n UrlParamsTypes[\"previousUserSettings\"] = \"previousUserSettings\";\n UrlParamsTypes[\"previousZoom\"] = \"previousZoom\";\n UrlParamsTypes[\"sensorName\"] = \"sensorName\";\n UrlParamsTypes[\"sessionId\"] = \"sessionId\";\n UrlParamsTypes[\"sessionType\"] = \"sessionType\";\n UrlParamsTypes[\"streamId\"] = \"streamId\";\n UrlParamsTypes[\"thresholdMin\"] = \"thresholdMin\";\n UrlParamsTypes[\"thresholdLow\"] = \"thresholdLow\";\n UrlParamsTypes[\"thresholdMiddle\"] = \"thresholdMiddle\";\n UrlParamsTypes[\"thresholdHigh\"] = \"thresholdHigh\";\n UrlParamsTypes[\"thresholdMax\"] = \"thresholdMax\";\n UrlParamsTypes[\"unitSymbol\"] = \"unitSymbol\";\n UrlParamsTypes[\"usernames\"] = \"usernames\";\n UrlParamsTypes[\"tags\"] = \"tags\";\n UrlParamsTypes[\"timeFrom\"] = \"timeFrom\";\n UrlParamsTypes[\"timeTo\"] = \"timeTo\";\n})(UrlParamsTypes || (exports.UrlParamsTypes = UrlParamsTypes = {}));\nconst useMapParams = () => {\n const defaultThresholds = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectDefaultThresholds);\n const thresholdValues = (0, hooks_1.useAppSelector)(thresholdSlice_1.selectThresholds);\n const isMobile = (0, useScreenSizeDetection_1.default)();\n const [searchParams, setSearchParams] = (0, react_router_dom_1.useSearchParams)();\n const getParam = (0, react_1.useCallback)((param, defaultValue) => {\n const cookieValue = Cookies.get(param);\n if (searchParams.get(param)) {\n return searchParams.get(param);\n }\n else if (cookieValue !== null) {\n return cookieValue;\n }\n else {\n return defaultValue;\n }\n }, [searchParams, setSearchParams]);\n const setUrlParams = (0, react_1.useCallback)((params) => {\n const newSearchParams = new URLSearchParams(searchParams.toString());\n params.forEach(({ key, value }) => {\n newSearchParams.set(key, value);\n });\n setSearchParams(`?${newSearchParams.toString()}`);\n }, [searchParams, setSearchParams]);\n const boundEast = parseFloat(getParam(UrlParamsTypes.boundEast, coordinates_1.DEFAULT_MAP_BOUNDS.east.toString()));\n const boundNorth = parseFloat(getParam(UrlParamsTypes.boundNorth, coordinates_1.DEFAULT_MAP_BOUNDS.north.toString()));\n const boundSouth = parseFloat(getParam(UrlParamsTypes.boundSouth, coordinates_1.DEFAULT_MAP_BOUNDS.south.toString()));\n const boundWest = parseFloat(getParam(UrlParamsTypes.boundWest, coordinates_1.DEFAULT_MAP_BOUNDS.west.toString()));\n const currentCenter = (0, react_1.useMemo)(() => JSON.parse(getParam(UrlParamsTypes.currentCenter, JSON.stringify(coordinates_1.DEFAULT_MAP_CENTER))), [searchParams]);\n const currentUserSettings = getParam(UrlParamsTypes.currentUserSettings, userStates_1.UserSettings.MapView);\n const currentZoom = parseFloat(getParam(UrlParamsTypes.currentZoom, coordinates_1.DEFAULT_ZOOM.toString()));\n const isIndoor = getParam(UrlParamsTypes.isIndoor, booleans_1.FALSE);\n const currentYear = new Date().getFullYear();\n const gridSize = parseInt(getParam(UrlParamsTypes.gridSize, CrowdMapGridSize_1.defaultGridSize.toString()));\n const limit = parseInt(getParam(UrlParamsTypes.limit, \"100\"));\n const updateLimit = (0, react_1.useCallback)((newLimit) => {\n setUrlParams([{ key: UrlParamsTypes.limit, value: newLimit.toString() }]);\n }, [setUrlParams]);\n const mapTypeId = getParam(UrlParamsTypes.mapType, mapConfigs_1.MAP_CONFIGS[0].mapTypeId) ||\n mapConfigs_1.MAP_CONFIGS[0].mapTypeId;\n const measurementType = getParam(UrlParamsTypes.measurementType, filters_1.ParameterTypes.PARTICULATE_MATTER);\n const offset = parseInt(getParam(UrlParamsTypes.offset, \"0\"));\n const updateOffset = (0, react_1.useCallback)((newOffset) => {\n setUrlParams([\n { key: UrlParamsTypes.offset, value: newOffset.toString() },\n ]);\n }, [setUrlParams]);\n const fetchedSessions = parseInt(getParam(UrlParamsTypes.fetchedSessions, \"0\"));\n const updateFetchedSessions = (0, react_1.useCallback)((newFetchedSessions) => {\n setUrlParams([\n {\n key: UrlParamsTypes.fetchedSessions,\n value: newFetchedSessions.toString(),\n },\n ]);\n }, [setUrlParams]);\n const previousCenter = (0, react_1.useMemo)(() => JSON.parse(getParam(UrlParamsTypes.previousCenter, JSON.stringify(coordinates_1.DEFAULT_MAP_CENTER))), [searchParams]);\n const previousUserSettings = getParam(UrlParamsTypes.previousUserSettings, userStates_1.UserSettings.MapView);\n const updatePreviousUserSettings = (0, react_1.useCallback)((selectedPreviousUserSettings) => {\n setUrlParams([\n {\n key: UrlParamsTypes.previousUserSettings,\n value: selectedPreviousUserSettings,\n },\n ]);\n }, [setUrlParams]);\n const previousZoom = parseFloat(getParam(UrlParamsTypes.previousZoom, coordinates_1.DEFAULT_ZOOM.toString()));\n const sensorName = getParam(UrlParamsTypes.sensorName, sensors_1.SENSOR_NAMES.PARTICULATE_MATTER.GOVERNMENT_PM25);\n const sessionId = getParam(UrlParamsTypes.sessionId, null) !== null\n ? parseInt(getParam(UrlParamsTypes.sessionId, \"0\"))\n : null;\n const sessionType = (0, react_1.useMemo)(() => getParam(UrlParamsTypes.sessionType, filters_1.SessionTypes.FIXED), [searchParams]);\n const updateSessionType = (0, react_1.useCallback)((selectedSessionType) => {\n setUrlParams([\n { key: UrlParamsTypes.sessionType, value: selectedSessionType },\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: isMobile ? userStates_1.UserSettings.FiltersView : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.measurementType,\n value: filters_1.ParameterTypes.PARTICULATE_MATTER,\n },\n {\n key: UrlParamsTypes.sensorName,\n value: selectedSessionType === filters_1.SessionTypes.FIXED\n ? sensors_1.SENSOR_NAMES.PARTICULATE_MATTER.GOVERNMENT_PM25\n : sensors_1.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM25,\n },\n {\n key: UrlParamsTypes.unitSymbol,\n value: filters_1.UnitSymbols.ParticulateMatter,\n },\n {\n key: UrlParamsTypes.usernames,\n value: \"\",\n },\n {\n key: UrlParamsTypes.tags,\n value: \"\",\n },\n {\n key: UrlParamsTypes.isIndoor,\n value: booleans_1.FALSE,\n },\n { key: UrlParamsTypes.isActive, value: booleans_1.TRUE },\n {\n key: UrlParamsTypes.timeFrom,\n value: (0, YearPickerButtons_1.beginningOfTheYear)((0, YearPickerButtons_1.getLastFiveYears)()[0]).toString(),\n },\n {\n key: UrlParamsTypes.timeTo,\n value: (0, YearPickerButtons_1.endOfTheYear)((0, YearPickerButtons_1.getLastFiveYears)()[0]).toString(),\n },\n ]);\n }, [currentUserSettings, setUrlParams]);\n const isActive = (0, react_1.useMemo)(() => {\n const activeParam = getParam(UrlParamsTypes.isActive, booleans_1.TRUE);\n if (sessionType === filters_1.SessionTypes.MOBILE) {\n return true;\n }\n return activeParam === booleans_1.TRUE;\n }, [searchParams, sessionType]);\n const updateIsActive = (0, react_1.useCallback)((newIsActive) => {\n if (sessionType === filters_1.SessionTypes.MOBILE) {\n newIsActive = true;\n }\n setUrlParams([\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: isMobile\n ? userStates_1.UserSettings.FiltersView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.timeFrom,\n value: (0, YearPickerButtons_1.beginningOfTheYear)(currentYear).toString(),\n },\n {\n key: UrlParamsTypes.timeTo,\n value: (0, YearPickerButtons_1.endOfTheYear)(currentYear).toString(),\n },\n { key: UrlParamsTypes.isActive, value: newIsActive.toString() },\n ]);\n }, [sessionType, setUrlParams, currentYear]);\n const streamId = getParam(UrlParamsTypes.streamId, null) !== null\n ? parseInt(getParam(UrlParamsTypes.streamId, \"0\"))\n : null;\n const tags = getParam(UrlParamsTypes.tags, \"\");\n const initialThresholds = (0, react_1.useMemo)(() => ({\n min: parseFloat(getParam(UrlParamsTypes.thresholdMin, defaultThresholds.min.toString())),\n low: parseFloat(getParam(UrlParamsTypes.thresholdLow, defaultThresholds.low.toString())),\n middle: parseFloat(getParam(UrlParamsTypes.thresholdMiddle, defaultThresholds.middle.toString())),\n high: parseFloat(getParam(UrlParamsTypes.thresholdHigh, defaultThresholds.high.toString())),\n max: parseFloat(getParam(UrlParamsTypes.thresholdMax, defaultThresholds.max.toString())),\n }), [defaultThresholds]);\n const timeFrom = getParam(UrlParamsTypes.timeFrom, (0, YearPickerButtons_1.beginningOfTheYear)((0, YearPickerButtons_1.getLastFiveYears)()[0]).toString());\n const timeTo = getParam(UrlParamsTypes.timeTo, (0, YearPickerButtons_1.endOfTheYear)((0, YearPickerButtons_1.getLastFiveYears)()[0]).toString());\n const unitSymbol = getParam(UrlParamsTypes.unitSymbol, filters_1.UnitSymbols.ParticulateMatter);\n const usernames = getParam(UrlParamsTypes.usernames, \"\");\n (0, react_1.useEffect)(() => {\n const queryParams = new URLSearchParams(searchParams.toString());\n // temporary solution -> later we'll move thresholds to URL\n queryParams.set(UrlParamsTypes.thresholdMin, thresholdValues.min.toString());\n thresholdValues.low !== 0 &&\n queryParams.set(UrlParamsTypes.thresholdLow, thresholdValues.low.toString());\n thresholdValues.middle !== 0 &&\n queryParams.set(UrlParamsTypes.thresholdMiddle, thresholdValues.middle.toString());\n thresholdValues.high !== 0 &&\n queryParams.set(UrlParamsTypes.thresholdHigh, thresholdValues.high.toString());\n thresholdValues.max !== 0 &&\n queryParams.set(UrlParamsTypes.thresholdMax, thresholdValues.max.toString());\n debouncedUpdateURL(queryParams);\n }, [thresholdValues]);\n const goToUserSettings = (0, react_1.useCallback)((newUserSettings) => {\n setUrlParams([\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: newUserSettings,\n },\n ]);\n }, [searchParams]);\n const revertUserSettingsAndResetIds = (0, react_1.useCallback)(() => {\n const finalPreviousUserSettings = !isMobile && previousUserSettings === userStates_1.UserSettings.CalendarView\n ? userStates_1.UserSettings.MapView\n : previousUserSettings;\n setUrlParams([\n { key: UrlParamsTypes.sessionId, value: \"\" },\n { key: UrlParamsTypes.streamId, value: \"\" },\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: finalPreviousUserSettings,\n },\n ]);\n }, [searchParams, previousUserSettings, currentUserSettings, setUrlParams]);\n const setFilter = (0, react_1.useCallback)((key, value) => {\n if (isMobile) {\n setUrlParams([\n {\n key: key,\n value: value,\n },\n ]);\n }\n else {\n setUrlParams([\n {\n key: key,\n value: value,\n },\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n ]);\n }\n }, [searchParams]);\n const updateIndoorFilters = (0, react_1.useCallback)((isIndoor) => {\n if (isMobile) {\n setUrlParams([\n {\n key: UrlParamsTypes.isIndoor,\n value: isIndoor,\n },\n { key: UrlParamsTypes.usernames, value: \"\" },\n ]);\n }\n else {\n setUrlParams([\n {\n key: UrlParamsTypes.isIndoor,\n value: isIndoor,\n },\n { key: UrlParamsTypes.usernames, value: \"\" },\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n ]);\n }\n }, [searchParams]);\n const updateTime = (0, react_1.useCallback)((selectedYear) => {\n setUrlParams([\n {\n key: UrlParamsTypes.previousUserSettings,\n value: isMobile ? previousUserSettings : currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: isMobile\n ? userStates_1.UserSettings.FiltersView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.timeFrom,\n value: (0, YearPickerButtons_1.beginningOfTheYear)(selectedYear).toString(),\n },\n {\n key: UrlParamsTypes.timeTo,\n value: (0, YearPickerButtons_1.endOfTheYear)(selectedYear).toString(),\n },\n ]);\n }, [YearPickerButtons_1.beginningOfTheYear, currentUserSettings, YearPickerButtons_1.endOfTheYear, setUrlParams]);\n const debouncedUpdateURL = (0, react_1.useCallback)((0, lodash_1.debounce)((params) => {\n setSearchParams(params);\n }, 300), [setSearchParams]);\n const setParameterParams = (0, react_1.useCallback)((selectedParameter, sensors) => {\n const sensorData = (0, setSensor_1.setSensor)(selectedParameter, sensors, sessionType);\n const commonParams = [\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: isMobile\n ? userStates_1.UserSettings.FiltersView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.measurementType,\n value: selectedParameter,\n },\n {\n key: UrlParamsTypes.sensorName,\n value: sensorData.sensorName,\n },\n {\n key: UrlParamsTypes.unitSymbol,\n value: sensorData.unitSymbol,\n },\n ];\n setUrlParams(commonParams);\n if (isIndoor === booleans_1.TRUE &&\n sensorData.sensorName.startsWith(sensors_1.SensorPrefix.GOVERNMENT)) {\n setUrlParams([\n ...commonParams,\n {\n key: UrlParamsTypes.isIndoor,\n value: booleans_1.FALSE,\n },\n ]);\n }\n }, [setUrlParams, setSensor_1.setSensor]);\n const setSensorParams = (0, react_1.useCallback)((selectedSensor, sensors) => {\n const commonParams = [\n {\n key: UrlParamsTypes.previousUserSettings,\n value: currentUserSettings,\n },\n {\n key: UrlParamsTypes.currentUserSettings,\n value: isMobile\n ? userStates_1.UserSettings.FiltersView\n : currentUserSettings === userStates_1.UserSettings.CrowdMapView\n ? userStates_1.UserSettings.CrowdMapView\n : userStates_1.UserSettings.MapView,\n },\n {\n key: UrlParamsTypes.sessionId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.streamId,\n value: \"\",\n },\n {\n key: UrlParamsTypes.sensorName,\n value: selectedSensor,\n },\n {\n key: UrlParamsTypes.unitSymbol,\n value: (0, SensorFilter_1.getSensorUnitSymbol)(selectedSensor, sensors),\n },\n ];\n setUrlParams(commonParams);\n if (isIndoor === booleans_1.TRUE &&\n selectedSensor.startsWith(sensors_1.SensorPrefix.GOVERNMENT)) {\n setUrlParams([\n ...commonParams,\n {\n key: UrlParamsTypes.isIndoor,\n value: booleans_1.FALSE,\n },\n ]);\n }\n }, [setUrlParams, SensorFilter_1.getSensorUnitSymbol]);\n return {\n boundEast,\n boundNorth,\n boundSouth,\n boundWest,\n currentCenter,\n currentUserSettings,\n currentZoom,\n fetchedSessions,\n goToUserSettings,\n gridSize,\n isActive,\n isIndoor,\n limit,\n mapTypeId,\n measurementType,\n offset,\n previousCenter,\n previousUserSettings,\n updatePreviousUserSettings,\n previousZoom,\n revertUserSettingsAndResetIds,\n sensorName,\n sessionId,\n sessionType,\n updateSessionType,\n setFilter,\n setUrlParams,\n streamId,\n initialThresholds,\n searchParams,\n tags,\n timeFrom,\n timeTo,\n updateTime,\n unitSymbol,\n updateFetchedSessions,\n updateLimit,\n updateOffset,\n updateIsActive,\n updateIndoorFilters,\n setSensorParams,\n usernames,\n setParameterParams,\n };\n};\nexports.useMapParams = useMapParams;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatTimeExtremes = exports.formatTime = exports.isValidValue = exports.isNoData = exports.calculateMeasurementStats = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst dateFormat_1 = require(\"../types/dateFormat\");\nconst calculateMeasurementStats = (measurements) => {\n if (measurements.length === 0) {\n return { min: 0, max: 0, avg: 0 };\n }\n const values = measurements.map((m) => m.value);\n const min = Math.round(Math.min(...values));\n const max = Math.round(Math.max(...values));\n const avg = Math.round(values.reduce((sum, value) => sum + value, 0) / values.length);\n return { min, max, avg };\n};\nexports.calculateMeasurementStats = calculateMeasurementStats;\nconst isNoData = (...values) => {\n return values.some((value) => value === undefined ||\n value === null ||\n value === Infinity ||\n value === -Infinity ||\n isNaN(value));\n};\nexports.isNoData = isNoData;\nconst isValidValue = (value) => {\n return value !== null && value !== undefined && isFinite(value);\n};\nexports.isValidValue = isValidValue;\nconst formatTime = (minTime, maxTime) => {\n const formatDate = (time) => {\n if (!time)\n return { date: null, time: null };\n // Check if time is a valid date string before creating moment object\n const dateMoment = (0, moment_1.default)(time, moment_1.default.ISO_8601);\n // Check if the created moment is valid\n if (!dateMoment.isValid()) {\n return { date: null, time: null };\n }\n const dateString = dateMoment.format(dateFormat_1.DateFormat.us);\n const timeString = dateMoment.format(dateFormat_1.DateFormat.time_with_seconds);\n return { date: dateString, time: timeString };\n };\n return {\n formattedMinTime: formatDate(minTime),\n formattedMaxTime: formatDate(maxTime),\n };\n};\nexports.formatTime = formatTime;\nconst formatTimeExtremes = (min, max, useFullDayFormat = false) => {\n // Make sure min and max are valid numbers before creating moment objects\n if (!(0, exports.isValidValue)(min) || !(0, exports.isValidValue)(max)) {\n return {\n formattedMinTime: { date: null, time: null },\n formattedMaxTime: { date: null, time: null },\n };\n }\n // Force UTC handling\n const minDate = moment_1.default.utc(min);\n const maxDate = moment_1.default.utc(max);\n // Verify both dates are valid\n if (!minDate.isValid() || !maxDate.isValid()) {\n return {\n formattedMinTime: { date: null, time: null },\n formattedMaxTime: { date: null, time: null },\n };\n }\n // Check if both timestamps fall on the same day\n const sameDay = minDate.isSame(maxDate, \"day\");\n // Determine if the minimum timestamp is exactly at the start of its day\n const isMinAtStart = minDate.isSame(minDate.clone().startOf(\"day\"));\n // Determine if the maximum timestamp is exactly at the end of its day\n const isMaxAtEnd = maxDate.isSame(maxDate.clone().endOf(\"day\"));\n return {\n formattedMinTime: {\n date: minDate.format(dateFormat_1.DateFormat.us),\n time: useFullDayFormat && sameDay && isMinAtStart\n ? \"00:00:01\"\n : minDate.format(dateFormat_1.DateFormat.time_with_seconds),\n },\n formattedMaxTime: {\n date: maxDate.format(dateFormat_1.DateFormat.us),\n time: useFullDayFormat && sameDay && isMaxAtEnd\n ? \"00:00:00\"\n : maxDate.format(dateFormat_1.DateFormat.time_with_seconds),\n },\n };\n};\nexports.formatTimeExtremes = formatTimeExtremes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.screenSizes = exports.media = void 0;\nconst sizes = {\n // Why such numbers? Explenation:\n // While there is no hard and fast rule for what breakpoints should be used,\n // values of common CSS breakpoints are 320px or 480px (for mobile phones), 768px (for tablets)\n smallMobile: \"340px\",\n mobile: \"768px\",\n smallDesktop: \"769px\",\n tabletMax: \"1023px\",\n desktop: \"1024px\",\n mediocreDesktop: \"1091px\",\n mediumDesktop: \"1240px\",\n largeDesktop: \"1440px\",\n hugeDesktop: \"1620px\",\n};\nexports.media = {\n smallMobile: `(min-width: ${sizes.smallMobile})`,\n mobile: `(max-width: ${sizes.mobile})`,\n smallDesktop: `(min-width: ${sizes.smallDesktop})`,\n tabletMax: `(max-width: ${sizes.tabletMax})`,\n desktop: `(min-width: ${sizes.desktop})`,\n mediocreDesktop: `(min-width: ${sizes.mediocreDesktop})`,\n mediumDesktop: `(min-width: ${sizes.mediumDesktop})`,\n largeDesktop: `(min-width: ${sizes.largeDesktop})`,\n hugeDesktop: `(min-width: ${sizes.hugeDesktop})`,\n};\nexports.screenSizes = {\n smallMobile: 340,\n mobile: 768,\n smallDesktop: 769,\n tabletMax: 1023,\n desktop: 1024,\n mediocreDesktop: 1091,\n mediumDesktop: 1240,\n largeDesktop: 1440,\n hugeDesktop: 1620,\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useHandleScrollEnd = void 0;\nconst react_1 = require(\"react\");\nconst fixedSessionsSlice_1 = require(\"../store/fixedSessionsSlice\");\nconst hooks_1 = require(\"../store/hooks\");\nconst mobileSessionsSlice_1 = require(\"../store/mobileSessionsSlice\");\nconst useHandleScrollEnd = (offset, listSessions, updateOffset, updateFetchedSessions, filters, fetchableMobileSessionsCount, fetchableFixedSessionsCount, isDormant) => {\n const dispatch = (0, hooks_1.useAppDispatch)();\n const handleScrollEnd = (0, react_1.useCallback)(() => {\n const hasMoreSessions = listSessions.length < fetchableMobileSessionsCount;\n const hasMoreDormantSessions = isDormant && listSessions.length < fetchableFixedSessionsCount;\n if (hasMoreSessions) {\n const newOffset = offset + listSessions.length;\n updateOffset(newOffset);\n const updatedFilters = Object.assign(Object.assign({}, JSON.parse(filters)), { offset: newOffset });\n dispatch((0, mobileSessionsSlice_1.fetchMobileSessions)({\n filters: JSON.stringify(updatedFilters),\n isAdditional: true,\n }))\n .unwrap()\n .then((response) => {\n const totalFetchedSessions = listSessions.length + response.sessions.length;\n updateFetchedSessions(totalFetchedSessions);\n });\n }\n if (hasMoreDormantSessions) {\n const newOffset = offset + listSessions.length;\n updateOffset(newOffset);\n const updatedFilters = Object.assign(Object.assign({}, JSON.parse(filters)), { offset: newOffset });\n dispatch((0, fixedSessionsSlice_1.fetchDormantFixedSessions)({\n filters: JSON.stringify(updatedFilters),\n isAdditional: true,\n }))\n .unwrap()\n .then((response) => {\n const totalFetchedSessions = listSessions.length + response.sessions.length;\n updateFetchedSessions(totalFetchedSessions);\n });\n }\n }, [\n offset,\n listSessions.length,\n fetchableMobileSessionsCount,\n updateOffset,\n dispatch,\n filters,\n fetchableFixedSessionsCount,\n isDormant,\n ]);\n return handleScrollEnd;\n};\nexports.useHandleScrollEnd = useHandleScrollEnd;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setSensor = void 0;\nconst filters_1 = require(\"../types/filters\");\nconst sensors_1 = require(\"../types/sensors\");\nconst setSensor = (selectedParameter, sensors, sessionType) => {\n const getSensor = (parameter, sensorName) => {\n const matchingSensors = sensors.filter((item) => item.measurementType === parameter &&\n (!sensorName || item.sensorName === sensorName));\n return matchingSensors[0];\n };\n let sensorName = \"\";\n switch (selectedParameter) {\n case filters_1.ParameterTypes.PARTICULATE_MATTER:\n sensorName =\n sessionType === filters_1.SessionTypes.FIXED\n ? sensors_1.SENSOR_NAMES.PARTICULATE_MATTER.GOVERNMENT_PM25\n : sensors_1.SENSOR_NAMES.PARTICULATE_MATTER.AIRBEAM_PM25;\n break;\n case filters_1.ParameterTypes.HUMIDITY:\n sensorName = sensors_1.SENSOR_NAMES.HUMIDITY;\n break;\n case filters_1.ParameterTypes.NITROGEN_DIOXIDE:\n sensorName = sensors_1.SENSOR_NAMES.NITROGEN_DIOXIDE;\n break;\n case filters_1.ParameterTypes.OZONE:\n sensorName = sensors_1.SENSOR_NAMES.OZONE;\n break;\n case filters_1.ParameterTypes.TEMPERATURE:\n sensorName = sensors_1.SENSOR_NAMES.TEMPERATURE;\n break;\n case filters_1.ParameterTypes.SOUND_LEVEL:\n sensorName = sensors_1.SENSOR_NAMES.SOUND_LEVEL;\n break;\n default:\n return {\n sensorName: getSensor(selectedParameter).sensorName,\n unitSymbol: getSensor(selectedParameter).unitSymbol,\n };\n }\n const sensor = getSensor(selectedParameter, sensorName);\n if (!sensor) {\n console.warn(`No sensor found for parameter: ${selectedParameter} with name: ${sensorName}`);\n return {\n sensorName: \"Unknown Sensor\",\n unitSymbol: \"N/A\",\n };\n }\n return {\n sensorName: sensor.sensorName,\n unitSymbol: sensor.unitSymbol,\n };\n};\nexports.setSensor = setSensor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getColorForValue = exports.getColorForCalendarDataCard = void 0;\nconst colors = __importStar(require(\"../assets/styles/colors\"));\nconst hexToRGB_1 = __importDefault(require(\"./hexToRGB\"));\nconst COLORS_FOR_RANGES = (thresholdValues) => [\n {\n max: thresholdValues.min - 1,\n color: colors.grey,\n borderColor: colors.grey,\n },\n {\n max: thresholdValues.low,\n color: colors.green100,\n borderColor: colors.green200,\n },\n {\n max: thresholdValues.middle,\n color: colors.yellow100,\n borderColor: colors.yellow200,\n },\n {\n max: thresholdValues.high,\n color: colors.orange100,\n borderColor: colors.orange200,\n },\n {\n max: thresholdValues.max,\n color: colors.red100,\n borderColor: colors.red200,\n },\n { max: Infinity, color: colors.grey, borderColor: colors.gray300 }, // grey color for values out of scale\n];\nconst getColorForValue = (thresholdValues, value, isBorder) => {\n const defaultColor = \"transparent\";\n if (value !== 0 && !value)\n return defaultColor;\n for (let range of COLORS_FOR_RANGES(thresholdValues)) {\n if (Number(value) <= Number(range.max)) {\n return isBorder ? range.borderColor : range.color;\n }\n }\n return defaultColor;\n};\nexports.getColorForValue = getColorForValue;\nconst getColorForCalendarDataCard = (color) => {\n switch (color) {\n case colors.green100:\n return `linear-gradient(241deg, ${(0, hexToRGB_1.default)(colors.blue, 0.4)} -32.4%, ${(0, hexToRGB_1.default)(colors.blue, 0.05)} 94.94%), ${colors.green100}`;\n case colors.red100:\n return `linear-gradient(241deg, ${(0, hexToRGB_1.default)(colors.royalPurple, 0.4)} -38.43%, ${(0, hexToRGB_1.default)(colors.royalPurple, 0)} 94.94%), ${colors.red100}`;\n case colors.orange100:\n return `linear-gradient(241deg, ${(0, hexToRGB_1.default)(colors.lightCrimson, 0.4)} -2.4%, ${(0, hexToRGB_1.default)(colors.lightCrimson, 0)} 94.94%), ${colors.orange100}`;\n case colors.yellow100:\n return `linear-gradient(241deg, ${(0, hexToRGB_1.default)(colors.rose, 0.2)} -43.4%, ${(0, hexToRGB_1.default)(colors.white, 0)} 34.94%), ${colors.yellow100}`;\n default:\n return `linear-gradient(241deg, ${(0, hexToRGB_1.default)(colors.gray100, 0.4)} -2.4%, ${(0, hexToRGB_1.default)(colors.gray100, 0)} 94.94%), ${colors.gray300}`;\n }\n};\nexports.getColorForCalendarDataCard = getColorForCalendarDataCard;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useThresholdHandlers = void 0;\nconst lodash_1 = require(\"lodash\");\nconst react_1 = require(\"react\");\nconst react_i18next_1 = require(\"react-i18next\");\nconst react_redux_1 = require(\"react-redux\");\nconst thresholdSlice_1 = require(\"../store/thresholdSlice\");\nconst useThresholdHandlers = (setThresholdValues, setInputValue, setActiveInput, setErrorMessage, thresholdValues, sliderRef, activeInput, inputValue, sliderWidth) => {\n const inputDebounceTime = 300;\n const { t } = (0, react_i18next_1.useTranslation)();\n const defaultThresholds = (0, react_redux_1.useSelector)(thresholdSlice_1.selectDefaultThresholds);\n const isValueValid = (newValue, min, max) => {\n return newValue >= min && newValue <= max;\n };\n (0, react_1.useEffect)(() => {\n if (activeInput !== null) {\n setInputValue(thresholdValues[activeInput].toString());\n }\n }, [activeInput, thresholdValues, setInputValue]);\n const clearErrorAndUpdateThreshold = (thresholdKey, parsedValue) => {\n setErrorMessage(\"\");\n setThresholdValues((prevValues) => (Object.assign(Object.assign({}, prevValues), { [thresholdKey]: parsedValue })));\n };\n const validateThresholdOrder = (key, value) => {\n const { min, low, middle, high, max } = thresholdValues;\n switch (key) {\n case \"min\":\n return value <= low;\n case \"low\":\n return value <= middle && value >= min;\n case \"middle\":\n return value >= low && value <= high;\n case \"high\":\n return value >= middle && value <= max;\n case \"max\":\n return value >= high;\n default:\n return true;\n }\n };\n const handleInputChange = (thresholdKey, value) => {\n const trimmedValue = value.trim();\n if (trimmedValue === \"\") {\n setInputValue(\"\");\n setErrorMessage(t(\"thresholdConfigurator.emptyInputMessage\"));\n return;\n }\n setInputValue(trimmedValue);\n const parsedValue = Number(trimmedValue);\n if (thresholdKey === \"min\" || thresholdKey === \"max\") {\n if (!isValueValid(parsedValue, -Infinity, Infinity)) {\n setErrorMessage(t(\"thresholdConfigurator.validValueMessage\", {\n minValue: thresholdValues.min,\n maxValue: thresholdValues.max,\n }));\n }\n else {\n if (thresholdKey === \"min\") {\n if (parsedValue >= thresholdValues.max) {\n setErrorMessage(t(\"thresholdConfigurator.minGreaterThanMaxMessage\", {\n maxValue: thresholdValues.max,\n }));\n }\n else if (!validateThresholdOrder(thresholdKey, parsedValue)) {\n setErrorMessage(t(\"thresholdConfigurator.invalidOrderMessage\"));\n }\n else {\n clearErrorAndUpdateThreshold(thresholdKey, parsedValue);\n }\n }\n else if (thresholdKey === \"max\") {\n if (parsedValue <= thresholdValues.min) {\n setErrorMessage(t(\"thresholdConfigurator.maxLessThanMinMessage\", {\n minValue: thresholdValues.min,\n }));\n }\n else if (!validateThresholdOrder(thresholdKey, parsedValue)) {\n setErrorMessage(t(\"thresholdConfigurator.invalidOrderMessage\"));\n }\n else {\n clearErrorAndUpdateThreshold(thresholdKey, parsedValue);\n }\n }\n }\n }\n else {\n if (!isValueValid(parsedValue, thresholdValues.min, thresholdValues.max)) {\n setErrorMessage(t(\"thresholdConfigurator.validValueMessage\", {\n minValue: thresholdValues.min,\n maxValue: thresholdValues.max,\n }));\n }\n else if (!validateThresholdOrder(thresholdKey, parsedValue)) {\n setErrorMessage(t(\"thresholdConfigurator.invalidOrderMessage\"));\n }\n else {\n clearErrorAndUpdateThreshold(thresholdKey, parsedValue);\n }\n }\n };\n const debouncedHandleInputChange = (0, lodash_1.debounce)(handleInputChange, inputDebounceTime);\n const handleInputBlur = (thresholdKey, inputValue) => {\n debouncedHandleInputChange.flush();\n setActiveInput(null);\n handleInputChange(thresholdKey, inputValue);\n };\n const handleInputFocus = (thresholdKey) => {\n setInputValue(thresholdValues[thresholdKey].toString());\n setActiveInput(thresholdKey);\n debouncedHandleInputChange.cancel();\n };\n const handleOutsideClick = (event) => {\n if (sliderRef.current &&\n !sliderRef.current.contains(event.target) &&\n activeInput !== null) {\n setActiveInput(null);\n }\n };\n const handleInputKeyDown = (thresholdKey) => (event) => {\n if (event.key === \"Enter\" /* KeyboardKeys.Enter */) {\n setInputValue(event.currentTarget.value);\n handleInputChange(thresholdKey, event.currentTarget.value);\n }\n else if (event.key === \"ArrowUp\" /* KeyboardKeys.ArrowUp */ ||\n event.key === \"ArrowDown\" /* KeyboardKeys.ArrowDown */) {\n event.preventDefault();\n let newValue;\n const step = event.shiftKey ? 10 : 1;\n const direction = event.key === \"ArrowUp\" /* KeyboardKeys.ArrowUp */ ? 1 : -1;\n newValue = parseFloat(inputValue) + step * direction;\n handleInputChange(thresholdKey, newValue.toString());\n }\n };\n const resetThresholds = () => {\n debouncedHandleInputChange.cancel();\n setThresholdValues(defaultThresholds);\n setInputValue(\"\");\n setActiveInput(null);\n };\n const onInputChange = (thresholdKey, value) => {\n setInputValue(value);\n handleInputChange(thresholdKey, value);\n };\n const handleSliderClick = (event) => {\n if (sliderRef.current && activeInput === null) {\n const rect = sliderRef.current.getBoundingClientRect();\n const clientX = \"touches\" in event ? event.touches[0].clientX : event.clientX;\n const clickX = clientX - rect.left;\n const clickValue = Math.round((clickX / sliderWidth) * (thresholdValues.max - thresholdValues.min) +\n thresholdValues.min);\n const distances = {\n low: Math.abs(clickValue - thresholdValues.low),\n middle: Math.abs(clickValue - thresholdValues.middle),\n high: Math.abs(clickValue - thresholdValues.high),\n };\n const closestThumb = Object.keys(distances).reduce((a, b) => (distances[a] < distances[b] ? a : b));\n if ((closestThumb === \"high\" && clickValue >= thresholdValues.max) ||\n (closestThumb === \"low\" && clickValue <= thresholdValues.min)) {\n return;\n }\n const newThresholdValues = Object.assign(Object.assign({}, thresholdValues), { [closestThumb]: clickValue });\n setThresholdValues(newThresholdValues);\n }\n };\n return {\n handleInputChange: onInputChange,\n handleInputBlur,\n handleInputFocus,\n handleInputKeyDown,\n handleOutsideClick,\n resetThresholds,\n handleSliderClick,\n };\n};\nexports.useThresholdHandlers = useThresholdHandlers;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.handleTouchStart = exports.handleMouseDown = exports.handleTouchMove = exports.handleMouseUp = exports.handleMouseMove = void 0;\nconst thresholdThumbCalculations_1 = require(\"./thresholdThumbCalculations\");\nconst handleMouseMove = (thresholdKey, startX, startValue, thresholdValues, sliderWidth, setThresholdValues, setInputValue) => (moveEvent) => {\n // How much the thumb has moved horizontally since drag started.\n const displacement = moveEvent.clientX - startX;\n // Threshold new percentage, based on thumb value when dragging started,\n // the displacement, and slider width.\n const newPercentage = (0, thresholdThumbCalculations_1.calculateThumbPercentage)(startValue, thresholdValues.min, thresholdValues.max) +\n displacement / sliderWidth;\n // Threshold new value based on the threshold new percentage.\n let newThresholdValue = Math.round(thresholdValues.min +\n newPercentage * (thresholdValues.max - thresholdValues.min));\n // Ensure the value is within min and max bounds.\n const newThresholdValueWithinBounds = Math.min(Math.max(newThresholdValue, thresholdValues.min), thresholdValues.max);\n let updatedValues = Object.assign({}, thresholdValues);\n let currentValue = newThresholdValueWithinBounds;\n currentValue = Math.max(currentValue, thresholdValues.min);\n currentValue = Math.min(currentValue, thresholdValues.max);\n setInputValue(currentValue.toString());\n switch (thresholdKey) {\n case \"low\":\n if (currentValue >= thresholdValues.middle &&\n thresholdValues.middle !== thresholdValues.max) {\n updatedValues.middle = Math.min(currentValue + 1, thresholdValues.max);\n }\n if (currentValue >= thresholdValues.high &&\n thresholdValues.high !== thresholdValues.max) {\n updatedValues.high = Math.min(currentValue + 2, thresholdValues.max);\n }\n break;\n case \"middle\":\n if (currentValue <= thresholdValues.low &&\n thresholdValues.low !== thresholdValues.min) {\n updatedValues.low = Math.max(currentValue - 1, thresholdValues.min);\n }\n if (currentValue > thresholdValues.high &&\n thresholdValues.high !== thresholdValues.max) {\n updatedValues.high = Math.min(currentValue + 1, thresholdValues.max);\n }\n break;\n case \"high\":\n if (currentValue <= thresholdValues.middle &&\n thresholdValues.middle !== thresholdValues.min) {\n updatedValues.middle = Math.max(currentValue - 1, thresholdValues.min);\n }\n if (currentValue <= thresholdValues.low &&\n thresholdValues.low !== thresholdValues.min) {\n updatedValues.low = Math.max(currentValue - 2, thresholdValues.min);\n }\n break;\n }\n updatedValues[thresholdKey] = currentValue;\n setThresholdValues(updatedValues);\n};\nexports.handleMouseMove = handleMouseMove;\nconst handleMouseUp = (moveHandler) => () => {\n document.removeEventListener(\"mousemove\", moveHandler);\n document.removeEventListener(\"touchmove\", moveHandler);\n document.removeEventListener(\"mouseup\", (0, exports.handleMouseUp)(moveHandler));\n document.removeEventListener(\"touchend\", (0, exports.handleMouseUp)(moveHandler));\n};\nexports.handleMouseUp = handleMouseUp;\nconst handleTouchMove = (thresholdKey, startX, startValue, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage) => (moveEvent) => {\n const touch = moveEvent.touches[0];\n const clientX = touch.clientX;\n setInputValue(clientX.toString());\n (0, exports.handleMouseMove)(thresholdKey, startX, startValue, thresholdValues, sliderWidth, setThresholdValues, setInputValue)({\n clientX: touch.clientX,\n });\n};\nexports.handleTouchMove = handleTouchMove;\nconst handleMouseDown = (thresholdKey, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage) => (event) => {\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement.blur();\n }\n setErrorMessage(\"\");\n const startX = event.clientX;\n const startValue = thresholdValues[thresholdKey];\n const moveHandler = (0, exports.handleMouseMove)(thresholdKey, startX, startValue, thresholdValues, sliderWidth, setThresholdValues, setInputValue);\n document.addEventListener(\"mousemove\", moveHandler);\n document.addEventListener(\"mouseup\", (0, exports.handleMouseUp)(moveHandler));\n};\nexports.handleMouseDown = handleMouseDown;\nconst handleTouchStart = (thresholdKey, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage) => (event) => {\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement.blur();\n }\n setErrorMessage(\"\");\n const startX = event.touches[0].clientX;\n const startValue = thresholdValues[thresholdKey];\n setInputValue(startX.toString());\n const moveHandler = (0, exports.handleTouchMove)(thresholdKey, startX, startValue, thresholdValues, sliderWidth, setThresholdValues, setInputValue, setErrorMessage);\n setInputValue(startValue.toString());\n document.addEventListener(\"touchmove\", moveHandler);\n document.addEventListener(\"touchend\", (0, exports.handleMouseUp)(moveHandler));\n};\nexports.handleTouchStart = handleTouchStart;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateThumbPosition = exports.calculateThumbPercentage = void 0;\nconst calculateThumbPercentage = (value, min, max) => {\n const percentage = (value - min) / (max - min);\n return percentage;\n};\nexports.calculateThumbPercentage = calculateThumbPercentage;\nconst calculateThumbPosition = (value, min, max, width, isMobile) => {\n const percentage = calculateThumbPercentage(value, min, max);\n // added 20 because the slider starts at the center of the first thumb and the calculations are off for desktop\n //TODO: look into slider width calculations and thumb placements to fix without \"-20\"\n const sliderCorrectWidth = isMobile ? width : width - 20;\n return percentage * sliderCorrectWidth;\n};\nexports.calculateThumbPosition = calculateThumbPosition;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MILLISECONDS_IN_FIVE_MINUTES = exports.MILLISECONDS_IN_A_THREE_MONTHS = exports.MILLISECONDS_IN_A_MONTH = exports.MILLISECONDS_IN_A_WEEK = exports.MILLISECONDS_IN_A_DAY = exports.MILLISECONDS_IN_AN_HOUR = exports.MILLISECONDS_IN_A_5_MINUTES = exports.MILLISECONDS_IN_A_MINUTE = exports.MILLISECONDS_IN_A_SECOND = void 0;\nexports.MILLISECONDS_IN_A_SECOND = 1000;\nexports.MILLISECONDS_IN_A_MINUTE = 60 * exports.MILLISECONDS_IN_A_SECOND;\nexports.MILLISECONDS_IN_A_5_MINUTES = 5 * exports.MILLISECONDS_IN_A_MINUTE;\nexports.MILLISECONDS_IN_AN_HOUR = 60 * 60 * 1000;\nexports.MILLISECONDS_IN_A_DAY = 24 * exports.MILLISECONDS_IN_AN_HOUR;\nexports.MILLISECONDS_IN_A_WEEK = 7 * exports.MILLISECONDS_IN_A_DAY;\nexports.MILLISECONDS_IN_A_MONTH = 30 * exports.MILLISECONDS_IN_A_DAY;\nexports.MILLISECONDS_IN_A_THREE_MONTHS = 3 * exports.MILLISECONDS_IN_A_MONTH;\nexports.MILLISECONDS_IN_FIVE_MINUTES = 5 * 60 * 1000;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calculateMinMaxValues = exports.calculateUniformThresholds = void 0;\nconst calculateUniformThresholds = (min, max) => {\n const step = Math.max(Math.floor((max - min) / 4), 1);\n const lowThreshold = min + step;\n const middleThreshold = lowThreshold + step;\n const highThreshold = middleThreshold + step;\n const maxThreshold = Math.max(highThreshold + step, max);\n return {\n min,\n low: lowThreshold,\n middle: middleThreshold,\n high: highThreshold,\n max: maxThreshold,\n };\n};\nexports.calculateUniformThresholds = calculateUniformThresholds;\nconst calculateMinMaxValues = (mobileStream, fixedStream, sessionId) => {\n if (mobileStream.status === \"FULFILLED\" /* StatusEnum.Fulfilled */ &&\n mobileStream.data.id === sessionId) {\n if (mobileStream.minMeasurementValue !== undefined &&\n mobileStream.minMeasurementValue !== null &&\n mobileStream.maxMeasurementValue !== undefined &&\n mobileStream.maxMeasurementValue !== null) {\n const min = Math.floor(mobileStream.minMeasurementValue);\n const max = Math.ceil(mobileStream.maxMeasurementValue);\n return { min, max };\n }\n }\n else if (fixedStream.status === \"FULFILLED\" /* StatusEnum.Fulfilled */ &&\n fixedStream.data.stream.sessionId === sessionId) {\n if (fixedStream.minMeasurementValue !== undefined &&\n fixedStream.minMeasurementValue !== null &&\n fixedStream.maxMeasurementValue !== undefined &&\n fixedStream.maxMeasurementValue !== null) {\n const min = Math.floor(fixedStream.minMeasurementValue);\n const max = Math.ceil(fixedStream.maxMeasurementValue);\n return { min, max };\n }\n }\n return null;\n};\nexports.calculateMinMaxValues = calculateMinMaxValues;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useAutoDismissAlert = void 0;\nconst react_1 = require(\"react\");\nconst useAutoDismissAlert = (showAlert, setShowAlert) => {\n (0, react_1.useEffect)(() => {\n if (showAlert) {\n const timer = setTimeout(() => {\n setShowAlert(false);\n }, 4000);\n return () => clearTimeout(timer);\n }\n }, [showAlert, setShowAlert]);\n};\nexports.useAutoDismissAlert = useAutoDismissAlert;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst react_1 = require(\"react\");\nconst media_1 = require(\"./media\");\nconst useScreenSizeDetection = (maxWidth = media_1.screenSizes.desktop) => {\n const [isMobile, setIsMobile] = (0, react_1.useState)(window.innerWidth <= maxWidth);\n (0, react_1.useEffect)(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= maxWidth);\n };\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [maxWidth]);\n return isMobile;\n};\nexports.default = useScreenSizeDetection;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst axios_1 = __importDefault(require(\"axios\"));\nconst react_1 = require(\"react\");\nconst useShortenedLink = (url, accessToken) => {\n const [shortenedLink, setShortenedLink] = (0, react_1.useState)(url);\n const [error, setError] = (0, react_1.useState)(null);\n (0, react_1.useEffect)(() => {\n const shortenLink = () => __awaiter(void 0, void 0, void 0, function* () {\n if (!url || !accessToken) {\n setError(new Error(\"URL or access token is missing.\"));\n return;\n }\n try {\n const response = yield axios_1.default.post(\"https://api-ssl.bitly.com/v4/shorten\", { long_url: url }, {\n headers: {\n Authorization: `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\",\n },\n });\n setShortenedLink(response.data.link);\n }\n catch (error) {\n setError(error);\n }\n });\n shortenLink();\n }, [url, accessToken]);\n return { shortenedLink, error };\n};\nexports.default = useShortenedLink;\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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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","var deferred = [];\n__webpack_require__.O = function(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 = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\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(function(key) { return __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};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return 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(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(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};","__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__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(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};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/packs/\";","// 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\t161: 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 = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\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(function(id) { return 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[\"webpackChunkaircasting\"] = self[\"webpackChunkaircasting\"] || [];\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\nvar __webpack_exports__ = __webpack_require__.O(undefined, [681], function() { return __webpack_require__(98923); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["container","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","e","module","__importDefault","mod","exports","react_1","react_redux_1","react_router_dom_1","global_styles_1","Navbar_1","CalendarPage_1","MapPage_1","NotFoundPage_1","RedirectPage_1","index_1","NEW_MAP","router","App","axios_1","humps_1","apiClient","oldApiClient","response","sessionsIds","email","filters","startDate","endDate","params","usernames","tags","west","east","south","north","timeFrom","timeTo","sensorName","unitSymbol","isIndoor","isActive","sessionType","query","encodeParamName","name","key","queryString","streamId","startTime","endTime","cta","theme","white","gray100","gray200","gray300","gray400","gray500","gray600","gray700","gray800","gray900","mint","blue","acBlue","acBlueTransparent","darkBlue","darkBlueTransparent","red100","red200","orange100","orange200","yellow100","yellow200","green100","green200","lightCrimson","rose","royalPurple","grey","black","mapLabels","mapLandscape","mapStroke","mapWater","mobileStreamPath","disabledGraphButton","lightBlue","grayStroke","lightBlueInfo","reservationFillColor","textColor","strokeColor","administrativeRegionTextColor","internationalBorderFillColor","landscapeColor","buildingStrokeColor","provinceStrokeColor","roadColor","waterColor","styled_components_1","colors_1","pulseAnimation","GlobalStyles","ActionButton","Button","__createBinding","o","m","k","k2","desc","__setModuleDefault","v","__importStar","result","__rest","s","t","p","i","S","_a","children","props","ButtonContainer","Label","ButtonCheckboxContainer","ButtonCheckbox","RoundCheckbox","CheckboxButton","label","isChecked","onChange","staticColor","Container","fillAnimation","Loader","Logo","SpinnerWrapper","SpinnerSvg","width","Spinner","media_1","RealtimeMapUpdatesButtonContainer","react_i18next_1","hooks_1","mobileSessionsSlice_1","realtimeMapUpdatesSlice_1","useScreenSizeDetection_1","CheckboxButton_1","Toggle_1","RealtimeMapUpdatesButton","isMobile","dispatch","realtimeMapUpdates","state","handleRealtimeMapUpdatesChange","Button_1","RefreshButton","fixedSessionsSlice_1","mapSlice_1","RefreshMapButton","handleClick","ScrollButton","Typography_1","StyledSectionButton","Title","Image","React","SectionButton","image","title","alt","onClick","isNotTimelapseButton","isDisabled","ToggleLabel","ToggleInput","Slider","ToggleContainer","Toggle_style_1","Toggle","noLabel","labelLeft","labelRight","biggerMobileVersion","variant","H1","H2","H3","H4","H5","H6","__exportStar","ThreeMonths","MobileSwipeContainer","DesktopSwipeLeftContainer","DesktopSwipeRightContainer","DateField","CalendarContainer","Month_1","ScrollCalendarButton_1","CalendarHook_1","HeaderToggle_1","Calendar","minCalendarDate","maxCalendarDate","onDayClick","selectedTimestamp","isLoading","threeMonthsData","dateReference","isLeftButtonDisabled","isRightButtonDisabled","handleLeftClick","handleRightClick","isMobileView","sortedThreeMonthsData","handleDayClick","timestamp","MobileSwipeComponent","DesktopSwipeComponent","CalendarContent","month","moment_1","movingCalendarStreamSlice_1","movingStreamSelectors_1","dateFormat_1","useCalendarHook","visibleDateRange","setVisibleDateRange","movingCalendarData","setIsRightButtonDisabled","setIsLeftButtonDisabled","setDateReference","updateMoveValue","direction","prevState","handleBackwardMovement","dateMoment","handleForwardMovement","newEndMoment","maxEndDateMoment","getFormattedDateRange","lastElementIdx","maxEndDate","processedMaxEndDate","firstElementIdx","firstDataPoint","sortedData","a","b","firstDate","lastDate","endMoment","newStartDate","newEndDate","newStartDateMoment","minCalendarMoment","EmptyCalendar","setSelectedTimestamp","monthComponents","colors","$isCalendarPage","$rotated","RotatedIcon","Heading","headerArrowIcon_svg_1","HeaderToggle","titleText","componentToToggle","isCalendarPage","isVisible","setIsVisible","toggleVisibility","CalendarCell","Day","DayNumber","ValueContainer","Value","thresholdColors_1","dayNumber","value","isSelected","min","low","middle","high","max","DayNamesHeaderContainer","DayName","DayNamesHeader","dayNamesHeader","dayName","DAY_GAP","Week","Month","MonthName","MonthContent","moment_timezone_1","thresholdSlice_1","Day_1","DayNamesHeader_1","monthName","weeks","thresholds","dateStr","convertedTimestamp","week","day","dayTimestamp","chevronLeftCircle_svg_1","chevronRightCircle_svg_1","mobileChevronLeft_svg_1","mobileChevronRight_svg_1","ScrollButton_1","ScrollCalendarButton","disabled","icon","altText","HorizontalContainer","RowContainer","Subtitle","GridContainer","fixedStreamSelectors_1","DataSource_1","StationActionButtons_1","StationName_1","StreamUpdate_1","ValueLabel_1","FixedStreamStationHeader","profile","lastUpdate","updateFrequency","lastMeasurementValue","lastMeasurementDateLabel","active","sessionId","streamEndTime","DataDescription","FixedStreamStationHeader_style_1","DataSource","MobileButtons","DesktopButtons","copyLinkIcon_svg_1","download_svg_1","ActionButton_style_1","Button_style_1","CopyLinkComponent_1","ExportDataComponent_1","StationActionButtons","formData","StationName","stationName","DateLabel","FrequencyLabel","RangeLabel","measurementsCalc_1","StreamUpdate","_b","formattedTime","hexToRGB_1","ImageContainer","TextContainer","Header","broadCastLogo_svg_1","ValueLabel","date","averageValueColor","dataCardColor","searchIconGray_svg_1","Suggestion","SuggestionsList","SearchInput","LocationSearchButton","LocationSearchIcon","SearchContainer","Hr","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","reject","fulfilled","step","rejected","downshift_1","use_places_autocomplete_1","react_google_maps_1","locationSearchIcon_svg_1","determineZoomLevel_1","geolocation_1","mapParamsHandler_1","OK_STATUS","LocationSearch","isTimelapseView","items","setItems","selectedItem","setSelectedItem","inputValue","setInputValue","setUrlParams","setValue","status","data","clearSuggestions","isOpen","getMenuProps","getInputProps","highlightedIndex","getItemProps","item","newSelectedItem","handleSelect","displaySearchResults","results","lat","lng","zoom","bounds","handleBrowserLocation","index","MapButton","className","ref","MapButtonsWrapper","MapButtons","IconWrapper","clockIcon_svg_1","filterIcon_svg_1","booleans_1","fixedSessionsSelectors_1","sessionFiltersSlice_1","filters_1","userStates_1","DesktopSessionFilters_1","MapButton_1","ButtonTypes","goToUserSettings","currentUserSettings","activeButtons","setActiveButtons","activeCopyLinkButton","setActiveCopyLinkButton","fixedSessionsType","listSessions","isDormant","showFilters","isTimelapseButtonVisible","isTimelapseDisabled","isTimelapseButtonActive","filtersButtonClosed","handleCopyLinkClick","handleTimelapseClick","handleFilterClick","useBackNavigation_1","backArrowIcon_svg_1","backArrowIconDesktop_svg_1","BackButton","handleCalendarGoBack","previousUserSettings","getButtonText","aircasting_logo_nav_svg_1","airCastingLogoMobile_svg_1","airbeamIcon_svg_1","hamburger_svg_1","hamburgerMobile_svg_1","urls_1","RealtimeMapUpdatesButton_1","RefreshMapButton_1","ControlPanel_1","LocationSearch_1","BackButton_1","NavList_1","DesktopHeader","isMapPage","navMenuVisible","toggleMenuVisibility","isSmallScreen","isTinyScreen","isExtraTinyScreen","fixedStreamSlice_1","mobileStreamSlice_1","MobileHeader","revertUserSettingsAndResetIds","fixedSessionTypeSelected","handleGoingBack","MobileCalendarHeader","NavItem","href","isNavTitle","subNav","Navbar_style_1","AircastingLogo","NavList","SubNav","NavHeader","ListItem","SubNavTitleLink","NavItemLink","Link","BottomNavContainer","BuyCTAWhite","GoBack","habitatMapLogo_svg_1","iconNavClose_svg_1","searchIcon_svg_1","NavItem_1","navItemsList_1","subItem","NAVBAR_HEIGHT","MobileContainer","DesktopContainer","$isSmallScreen","MapControls","MenuButton","BuyCTA","GoBackButtonContainer","DesktopHeaderContainer","SmallDesktopContainer","SmallDesktopMenuContainer","MobileMenuContainer","MobileHeaderContainer","DesktopHeader_1","MobileHeader_1","Navbar","setNavMenuVisible","ConfirmationMessage_1","AlertPopup","open","message","top","left","useAutoDismissAlert_1","CopyLinkModal_1","CopyLinkPopup","CopyLinkComponent","button","isIconOnly","showBelowButton","onOpen","onClose","showConfirmation","setShowConfirmation","buttonPosition","setButtonPosition","buttonRef","handleCopySubmit","close","handleCopyError","error","rect","updateButtonPosition","downloadWhite_svg_1","exportSessionSlice_1","Modals_style_1","ModalInput_1","AlertComponent_1","initialExportModalData","ExportDataPopup","ExportDataComponent","onSubmit","isSessionList","exportButtonRef","focusInputRef","formState","setFormState","errorMessage","setErrorMessage","NO_SESSIONS","validateEmail","handleInputChange","event","prevFormData","handleSubmit","calculatePopupLeftPosition","dynamicArrowStyle","reactjs_popup_1","WrapperButton","SmallPopup","ExportDataSmallPopup","ConfirmationPopup","crowdMapSlice_1","gridSizes","CrowdMapGridSize","setFilter","gridSize","handleGridSize","size","lodash_1","CrowdMapGridSize_1","FilterInfoPopup_1","CrowdMapToggle","updatePreviousUserSettings","getInitialMobileState","getInitialCrowdMapState","setIsMobile","isCrowdMapActive","setIsCrowdMapActive","renderGridSize","setRenderGridSize","isFiltersViewActive","checkMobile","mobileState","newCrowdMapState","handleToggleClick","newCheckedState","checkmarkBlue_svg_1","chevronLeft_svg_1","sensorsSlice_1","setSensor_1","getParametersFilter","lowerCasedInputValue","parameter","CustomParameterFilter","customParameters","sessionsCount","fetchableSessionsCount","filteredParameters","setFilteredParameters","measurementType","sensors","sensorData","goBack","SensorFilter_1","getSensorsFilter","CustomSensorFilter","customSensors","filteredSensors","setFilteredSensors","sensors_1","CrowdmapToggle_1","DormantToggle_1","IndoorOutdoorSwitch_1","ParameterFilter_1","ProfileNamesInput_1","SessionTypeToggle_1","TagsInput_1","YearPicker_1","DesktopSessionFilters","airBeamSensorNameSelected","govermentSensorNameSelected","YearPickerButtons_1","DormantToggle","updateIsActive","updateTime","setIsDormant","isDormantSessionsFetched","isActiveSessionsFetched","newDormantState","currentYear","questionMark_svg_1","InfoPopup","FilterInfoPopup","filterTranslationLabel","IndoorOutdoorSwitch","updateIndoorFilters","isIndoorParameterInUrl","handleIndoorClick","handleOutdoorClick","indoorSessionsSelectors_1","loadingSelectors_1","mobileSessionsSelectors_1","Loader_1","Legend_style_1","Map_style_1","CustomParameterFilter_1","CustomSensorFilter_1","MobileSessionFilters","indoorSessionsState","dormantFixedSessionsState","activeFixedSessionsState","mobileSessionsState","basicParametersModalOpen","customParametersModalOpen","isBasicParametersModalOpen","setIsBasicParametersModalOpen","isCustomParametersModalOpen","setIsCustomParametersModalOpen","basicSensorsModalOpen","customSensorsModalOpen","isBasicSensorsModalOpen","setIsBasicSensorsModalOpen","isCustomSensorsModalOpen","setIsCustomSensorsModalOpen","parameters","selectorsLoading","isFixedSessionTypeSelected","chevronRight_svg_1","minus_svg_1","plus_svg_1","getBasicMeasurementTypes","filterCustomParameters","basicParameters","param","ParameterFilter","isBasicOpen","handleShowParametersClick","DesktopParameterFilter","setIsBasicOpen","moreOpen","setMoreOpen","setParameterParams","handleOnMoreClick","handleSelectParameter","selectedParameter","MobileDeviceParameterFilter","handleShowMoreClick","Spinner_1","ProfileNamesInput","boundWest","boundEast","boundNorth","boundSouth","isFirstRender","usernamesToSelect","isUsernamesInputFetching","selectedSessionType","preparedUnitSymbol","tagsDecoded","getQueryParams","getUsernamesToSelectFiltered","usernamesToBeExcluded","username","reset","usernamesToSelectFiltered","decodedUsernamesArray","filteredUsernames","selectedUsernames","urlEncodedString","handleOnInputClick","queryParams","el","handleOnClose","itemToRemove","usernamesUpdated","decodedUsernamesString","timer","getBasicSensors","getSensorUnitSymbol","selectedSensor","sensor","filterCustomSensors","sensorsForMeasurementType","basicSensors","SensorFilter","handleShowSensorClick","DesktopSensorFilter","setSensorParams","handleSelectSensor","MobileDeviceSensorFilter","LocationSearch_style_1","Popups_style_1","fadeIn","fadeOut","SessionFilters","Wrapper","SingleFilterWrapper","SessionToggleWrapper","Tab","ModalContent","HeaderTitle","ShowSessionsButton","InputWrapper","Input","SuggestionList","SelectedItemsWrapper","SelectedItemTile","SelectedItem","CloseSelectedItemButton","InfoButton","InfoIcon","Info","CrowdMapGridSizeWrapper","$isVisible","SectionButtonsContainer","ToggleSettingsContainer","$isActive","ToggleWrapper","CrowdMapToggleText","CrowdMapToggleOnOff","SelectedOptionButton","SelectedOptionHeadingWrapper","SelectedOptionHeading","SelectedOption","ChevronIcon","FiltersOptionsWrapper","FiltersOptionHeading","FiltersOptionButton","SeeMoreButton","SeeMoreSpan","BasicParameterWrapper","ChevronBackButton","Description","ButtonsWrapper","MinorShowSessionsButton","BasicParameterButtonsWrapper","BasicParameterButton","ButtonSpan","GrayButton","CustomParameterWrapper","CustomParametersListWrapper","CustomParameterSearch","CustomParametersInput","CustomParameterList","CustomParameterItem","CustomParameter","DesktopCustomParameters","MobileCustomParameters","IndoorToggleHeading","IndoorFilterWrapper","IndoorToggleWrapper","IndoorTab","IndoorToggleInfoWrapper","IndoorToggleInfoText","YearPickerWrapper","DormantYearPickerWrapper","mobileIcon_svg_1","pin_svg_1","SessionTypeToggle","searchParams","updateSessionType","type","TagsInput","tagsToSelect","isTagsInputFetching","usernamesDecoded","getTagsToSelectFiltered","tagsToBeExcluded","tag","tagsToSelectFiltered","decodedTagsArray","filteredTags","selectedTags","tagsUpdated","decodedTagsString","YearPicker","beginningOfTheYear","year","endOfTheYear","getLastFiveYears","years","YearPickerButtons","handleYear","timestampToYear","ExportButtonComponent","EXCEEDS_LIMIT","showExportPopup","handleExportClick","Overlay","ImageButton","VerticalContainer","SessionListStyled","closeButton_svg_1","useScrollEndListener_1","SessionListTile_1","MobileSessionList","sessions","onCellClick","onScrollEnd","sessionListRef","session","SessionListTile","HorizontalSpacingContainer","HorizontalGroup","ColorDot","ArrowImageContainer","rightVector_svg_1","SessionsListTile","sessionName","averageValue","onMouseEnter","onMouseLeave","formattedStartDate","formattedStartTime","formattedEndDate","formattedEndTime","handleMouseHover","handleMouseLeave","dotColor","SessionListTile_style_1","SessionListViewStyle","SessionListTitle","SessionListInfoContainer","SessionListContainer","ExportSessionsButton","$hasSessions","SessionInfoTile","ExpandButton","toggleIconBlue_svg_1","ExportButtonComponent_1","SESSIONS_LIMIT","SessionsListView","onCellMouseEnter","onCellMouseLeave","setShowExportPopup","showAlert","setShowAlert","alertMessage","setAlertMessage","popupTopOffset","memoizedSessions","sessionsListExpanded","debouncedUpdateButtonPosition","handleResize","handleMouseEnter","handleExpandClick","MeasurementContainer","TimeRangeContainer","Date","Time","TimeContainer","highcharts_react_official_1","highstock_1","accessibility_1","no_data_to_display_1","store_1","mobileStreamSelectors_1","timeRange_1","dateParser_1","getTimeRange_1","timeRanges_1","chartEvents_1","createGraphData_1","updateRangeDisplay_1","useChartUpdater_1","useMeasurementsFetcher_1","graphConfig_1","Graph","rangeDisplayRef","graphRef","chartComponentRef","thresholdsState","mobileGraphData","mobileStreamShortInfo","fixedStreamShortInfo","fixedLastSelectedTimeRange","mobileLastSelectedTimeRange","lastSelectedTimeRange","totalDuration","measurements","isGovData","seriesData","chartData","overrideRangeSelector","setOverrideRangeSelector","fetchMeasurementsIfNeeded","updateChartData","lastTriggerRef","isFirstLoadRef","lastRangeSelectorTriggerRef","lastUpdateTimeRef","computedSelectedRangeIndex","selectedRangeIndex","setSelectedRangeIndex","isCalendarDaySelectedRef","lastProcessedTimestampRef","selectedDayStart","selectedDayEnd","isFirstDay","isLastDay","finalRangeStart","finalRangeEnd","handleRangeSelectorClick","selectedButton","chart","timeRange","currentExtremes","viewEnd","rangeStart","rangeEnd","handleChartLoad","twoDaysAgo","sessionDuration","defaultViewDuration","viewStart","lastExtremes","debounceTimer","redrawHandler","options","applyStyles","graphElement","highchartsContainer","highchartsChartContainer","observer","currentHeight","Graph_style_1","MeasurementComponent","extremes","minMeasurementValue","maxMeasurementValue","minMeasurementValueColor","maxMeasurementValueColor","noData","TimeRange","minTime","maxTime","shouldShowInitial","setShouldShowInitial","hasContent","graphChevronLeft_svg_1","graphChevronRight_svg_1","DIRECTION_LEFT","DIRECTION_RIGHT","onScrollbarRelease","isDragging","addScrollbarDragDetection","target","classNames","handleMouseUp","addNavigationArrows","leftArrow","rightArrow","updateArrowStates","axis","dataMin","dataMax","move","range","moveAmount","newMin","newMax","toggleElements","display","selector","element","createArrows","chartWidth","chartHeight","leftIcon","rightIcon","iconSize","leftArrowX","rightArrowX","arrowY","handleLoad","isValidMeasurement","createFixedSeriesData","time","createMobileSeriesData","isGraphData","measurement","point","updateRangeDisplay","useFullDayFormat","htmlContent","updateDOM","temp","useChartUpdater","updateTimeoutRef","hasInitializedRef","INITIAL_EDGE_FETCH_MONTHS","MILLISECONDS_IN_TWO_SECONDS","useMeasurementsFetcher","sessionStartTime","sessionEndTime","isCurrentlyFetchingRef","fetchAttemptsRef","lastFetchTriggerRef","pendingSetExtremesRef","activeFetchesRef","loadingTimeoutRef","lastFetchedRangeRef","fetchedTimeRanges","findMissingRanges","start","end","chunks","chunkEnd","chunkStart","sortedRanges","mergedRanges","currentRange","nextRange","gaps","currentStart","gapEnd","acc","gap","updateExtremesAndDisplay","trigger","effectiveTrigger","updateLoadingState","increment","isEdgeFetch","isDaySelection","now","boundedStart","boundedEnd","isAllButtonClick","totalSessionDuration","isAllDataRequest","shouldForceFetch","shouldShowLoading","allRanges","visibleRange","fetchPadding","paddedStart","paddedEnd","missingRanges","fetchPromises","fetchStart","fetchEnd","baseRange","expansionFactor","totalRange","getScrollbarOptions","getXAxisOptions","lastNavigatorEvent","navigatorMouseUpHandler","touchEndHandler","cleanupTimeout","handled","isHandlingCalendarDay","mouseWheelTimeout","lastMouseWheelEvent","removeEventHandlers","handleSetExtremes","rangeSelector","padding","handleEnd","getYAxisOptions","tickInterval","getPlotOptions","handleMouseOver","position","handleMouseOut","seriesOptions","legendOption","getResponsiveOptions","getTooltipOptions","pointData","series","groupingDiff","xLess","xMore","getRangeSelectorOptions","selectedRange","baseMobileCalendarOptions","baseOptions","getChartOptions","getNavigatorOptions","chevronDown_svg_1","ControlPanelContainer","SwitchLabel","SwitchInput","TerrainContainer","SelectContainer","Select","map_1","ControlPanel","mapTypeId","navigate","viewMode","setViewMode","isTerrainChecked","setIsTerrainChecked","isLabelsChecked","setIsLabelsChecked","updateURLParams","newSearchParams","handleViewModeChange","newViewMode","selectedMapTypeId","handleTerrainChange","newMapTypeId","handleLabelsChange","LegendContainer","CloseButton","SliderContainer","ApplyButton","ThresholdConfigurator_1","ThresholdButton_1","Legend","ContainerStyle","ThresholdContainer","LoaderOverlay","IndoorOvelay","IndoorOverlayInfo","mapLegend_svg_1","pinImage_svg_1","coordinates_1","indoorSessionsSlice_1","markersLoadingSlice_1","timelapseSelectors_1","timelapseSlice_1","Cookies","scrollEnd_1","SectionButton_1","MobileSessionFilters_1","MobileSessionList_1","SessionsListView_1","SessionDetailsModal_1","TimelapseModal_1","Legend_1","mapStyles_1","mapStylesZoomedIn_1","CrowdMapMarkers_1","DormantMarkers_1","FixedMarkers_1","MobileMarkers_1","StreamMarkers_1","TimelapseMarkers_1","Map","currentCenter","currentZoom","fetchedSessions","limit","updateLimit","updateOffset","offset","previousCenter","previousZoom","initialThresholds","updateFetchedSessions","isFirstRenderForThresholds","mapInstance","setMapInstance","pulsatingSessionId","setPulsatingSessionId","defaultThresholds","fetchableMobileSessionsCount","fetchableFixedSessionsCount","fetchingData","fixedPoints","fixedSessionsStatusFulfilled","markersLoading","mobilePoints","mobileStreamPoints","timelapseData","currentTimestamp","fixedStreamData","memoizedMapStyles","fetchableIndoorSessionsCount","memoizedTimelapseData","encodedUnitSymbol","sensorNamedDecoded","zoomLevel","indoorSessionsFilters","thresholdFilters","applyMapStylesBasedOnZoom","mapStylesZoomedIn","defaultMapStyles","isFirstLoad","originalLimit","updatedFilters","setPreviousZoomOnTheMap","setPreviousZoomInTheURL","intervalId","storedBounds","timelapseFilters","handleScrollEnd","handleMapIdle","currentUserSettingsRef","handleMarkerClick","selectedStreamId","desktopCondition","mobileCondition","mobileConditionForSessionList","newCenter","newZoom","handleMapZoomStyles","handleZoomChanged","openFilters","openTimelapse","isTimelapseLoading","renderTimelapseMarkers","ClusterInfoContainer","ShadowCircle","DataContainer","ClusterInfoDataAndZoomIn","ClusterCircle","ClusterInfoText","ClusterInfoBoldText","ClusterInfoColorText","MobileDataContainer","MobileClusterInfoText","MobileClusterInfoColorText","ClusterInfo_style_1","ClusterZoomIn_1","ClusterInfo","color","average","numberOfSessions","handleZoomIn","visible","ClusterInfoLoading","ZoomInContainer","ClusterZoomIn_style_1","ZoomInIcon_1","ClusterZoomIn","ZoomInIcon","calculateClusterAverage","markers","marker","getClusterSize","ClusterOverlay","cluster","shouldPulse","panes","outerCircle","innerCircle","animationName","styleSheetId","styleSheet","rectangleSlice_1","mapEventListeners_1","CustomMarker_1","MapOverlay_1","RectangleInfo_1","CrowdMapMarkers","crowdMapRectangles","fetchingCrowdMapData","mobileSessionsLoading","mobileSessionsStreamIds","rectangleData","rectangleLoading","gridSizeX","x","height","rectanglesRef","rectanglePoint","setRectanglePoint","crowdMapRectanglesLength","displayedSession","displayedSessionMarkerRef","cleanupMarker","handleRectangleClick","rectangleBounds","rectangleBoundEast","rectangleBoundWest","rectangleBoundNorth","rectangleBoundSouth","rectangleFilters","newRectangles","rectangle","newRectangle","react_dom_1","client_1","NotesPopover_1","CustomMarker","clickableAreaSize","paneName","notes","content","innerDiv","noteContainer","root","pane","offsetX","offsetY","zIndex","pulsating","MapOverlay","overlayRef","containerElementRef","CustomOverlay","LabelOverlay","pos","labelContainer","circle","textElement","CustomMarkerOverlay","blurValue","opacityValue","HoverMarker_1","ZOOM_FOR_SELECTED_SESSION","CLICKABLE_AREA_SIZE","DormantMarkers","onMarkerClick","hoverStreamId","fixedStreamStatus","markerRefs","hoverPosition","setHoverPosition","centerMapOnMarker","createMarker","hideOtherMarkers","showAllMarkers","markerId","sessionStreamIds","latitude","longitude","hoveredSession","markerclusterer_1","clusterSlice_1","getClusterPixelPosition_1","ClusterInfo_1","clusterCalculations_1","clusterOverlay_1","customMarkerLabel_1","customMarkerOverlay_1","gridClusterAlgorithm_1","FixedMarkers","onClusterClick","clusterVisible","clusterAverage","clusterSize","clustererRef","markerOverlays","labelOverlays","clusterOverlaysRef","previousZoomRef","initialCenterRef","selectedCluster","setSelectedCluster","clusterPosition","setClusterPosition","clusterDataLoading","setClusterDataLoading","onMarkerClickRef","handleClusterClickInternal","pixelPosition","handleClusteringEnd","clusters","overlay","values","sum","hasPulsatingSession","clusterKey","customRenderer","handleMapInteraction","handleBoundsChanged","updateClusterOverlays","isMarkerInViewport","updateMarkerOverlays","newColor","existingOverlay","existingLabelOverlay","labelOverlay","algorithm","allMarkers","fixedStreamPosition","streamIdKey","markerOverlay","newMarker","newOverlay","newLabelOverlay","updatedMarkers","markersToRemove","clearAllMarkersAndClusters","previousUserSettingsRef","currentMode","previousMode","listener","HoverMarker","markerRef","HOVER_MARKER_Z_INDEX","MobileMarkers","mobileStreamData","mobileStreamStatus","selectedMarkerKey","setSelectedMarkerKey","areMarkersTooClose","marker1","marker2","latDiff","lngDiff","distance","pixelSize","centerMapOnBounds","minLatitude","maxLatitude","minLongitude","maxLongitude","centerLat","centerLng","adjustedLat","isCurrentlySelected","updateMarkers","isOverlapping","otherSession","existingLabel","NoteWrapper","NoteButton","NoteButtonIcon","NotesPopup","NoteContainer","SlideContainer","SlideContent","NoteInfoContainer","Photo","SliderControls","SliderButton","SliderButtonIcon","SliderDots","SliderDot","ReadMore","NoteTextContainer","NoteText","NoteDate","attachmentIcon_svg_1","NotesPopover","currentSlide","setCurrentSlide","isOneNote","isMultipleNotes","NOTE_CHARACTER_LIMIT","handlePrevSlide","prev","handleNextSlide","_","RectangleInfoContainer","RectangleInfoHeader","RectangleCircle","RectangleInfoColorText","RectangleInfoText","RectangleInfoBoldText","RectangleInfo_style_1","RectangleInfo","numberOfSamples","numberOfContributors","RectangleInfoLoading","StreamMarkers","markersRef","polylineRef","setCustomOverlay","isInitialLoading","LAT_DIFF_SMALL","LAT_DIFF_MEDIUM","LAT_ADJUST_SMALL","sortedSessions","validSessions","locationMap","locationKey","existingSession","timeA","timeB","handleIdle","firstSessionWithNotes","createOrUpdateMarker","ne","sw","adjustedBounds","cleanup","activeMarkerIds","path","idleListener","calculateZIndex","createPosition","createClusterOverlay","createMarkerOverlay","createLabelOverlay","TimelapseMarkers","isTimelapseActive","setIsTimelapseActive","updateExistingMarker","timelapseMarker","isCluster","convertToCluster","convertToMarker","updateMarker","createNewMarker","removeObsoleteMarkers","sessionsMap","TILE_SIZE","MINIMUM_CLUSTER_SIZE","INITIAL_ZOOM","CustomAlgorithm","grid","cellX","cellY","cellKey","cellMarkers","scale","latRad","y","reductionRate","zoomOffset","exponent","positions","copyCurrentUrl_1","useShortenedLink_1","BITLY_ACCESS_TOKEN","initialCopyLinkModalData","CopyLinkModal","onError","shortenedLink","FlexWrapper","CancelButtonX","TextInput","BlueButton","FormWrapper","SessionDetailsModal","InfoContainer","ModalMobileHeader","ModalDesktopHeader","SessionName","ProfileName","SensorName","AverageValueContainer","AverageValue","AverageDot","SmallDot","ButtonsContainer","MinMaxValueContainer","NoData","HeaderWrapper","ContentWrapper","ClickableWrapper","circleCloseIcon_svg_1","Graph_1","SessionInfo_1","SessionModal","closeHandler","sessionInfoProps","calendar_svg_1","streamShortInfo","avg","toggleIcon_svg_1","ModalDesktopHeader_1","ModalMobileHeader_1","SessionInfo","commonProps","fastForwardButton_svg_1","pauseButton_svg_1","playButton_svg_1","rewindButton_svg_1","skipLeftButton_svg_1","skipRightButton_svg_1","NavigationButtons","currentStep","totalSteps","onNextStep","onPreviousStep","onGoToStart","onGoToEnd","isPlaying","setIsPlaying","isModalOpen","handlePlayPause","TimeAxis","timestamps","onStepChange","progressBarRef","setIsDragging","dragPosition","setDragPosition","progressPercentage","calculateStepFromPosition","clientX","progressBarRect","percentage","closestStep","handleStart","handleMove","handleTouchStart","handleTouchMove","handleTouchEnd","currentDate","currentTime","firstTimestamp","lastTimestamp","firstFormattedTime","firstFormattedDate","lastFormattedTime","lastFormattedDate","isStepActive","stepPosition","timelapse_1","TimeRangeButtons","onSelectTimeRange","TimelapseModal","AlertInfo","TimeAxisContainer","NavigationButton","NavigationButtonsContainer","DesktopAxisContainer","MobileAxisContainer","ProgressBar","ProgressFiller","$isDragging","StepMarkers","StepMarker","$position","DateContainer","MobileDateContainer","RoundMarker","Tooltip","TimeRangeButtonsContainer","TimeRangeButton","TimeRangeLabel","closeTimelapseButton_svg_1","filterTimelapseData_1","NavigationButtons_1","TimeAxis_1","TimeRangeButtons_1","TimelapseComponent","showReadOnlyPopup","setShowReadOnlyPopup","setCurrentStep","fullTimestamps","resetTimelapse","filteredTimestamps","handleNextStep","nextStep","handlePreviousStep","prevStep","handleGoToStart","handleGoToEnd","lastIndex","handleStepChange","newStep","handleOverlayClick","isMapButton","MessageContainer","ConfirmationMessage","ModalInput","RedErrorMessage","ReturnArrowIcon","UniformDistributionIcon","ReturnArrowIcon_1","ResetButton","resetButtonText","swapIconTextPosition","useDarkBlueIcon","resetButtonDefaultText","finalResetButtonText","resetThresholds","ThresholdButtonVariant","ThresholdButton","buttonText","IconComponent","iconColor","buttonTextColor","buttonContent","uniformDistributionThresholdCalc_1","UniformDistributionIcon_1","UniformDistributionButton","uniformDistributionButtonText","hasErrorMessage","mobileStream","fixedStream","calendarMinMaxValues","defaultButtonText","isCalendarView","streamMinMaxValues","minMaxValues","minMax","distributeThresholds","ColorBox","StaticMobileSliderContainer","InputContainer","PlaceholderButton","ThresholdButtonWrapper","ThresholdButtonsWrapper","ThresholdButtonsMobileWrapper","ThresholdsDisclaimer","RangeInput","ColorBoxNumberInput","NumberInput","ErrorMessage","Units","StyledContainer","OldStyleSliderHandles","OldStyleSliderHandle","OldStyleSliderText","ResetButton_1","UniformDistributionButton_1","ThresholdSlider_1","ThresholdsConfigurator","resetButtonVariant","uniformDistributionButtonVariant","isMobileOldStyle","noDisclaimers","useColorBoxStyle","isUniformDistributionButtonVisible","renderSlider","thresholdEventHandlers_1","thresholdGestureHandlers_1","thresholdThumbCalculations_1","maxThresholdDifference","ThresholdSlider","sliderRef","sliderWidth","thresholdValues","setThresholdValues","activeInput","setActiveInput","thumbPositions","colorsMap","debouncedSetUserThresholdValues","updateSliderWidthHandler","computedStyle","handleInputBlur","handleInputFocus","handleInputKeyDown","handleOutsideClick","handleSliderClick","updateThumbPositionsHandler","lowThumb","middleThumb","highThumb","newThumbPositions","thumbs","thumbData","renderNumberInput","thresholdKey","positionStyle","renderDefaultSlider","renderColorBoxSlider","TRUE","FALSE","DEFAULT_MAP_CENTER","DEVICE_CONFIGS","getDeviceType","deviceType","DEFAULT_MAP_BOUNDS","DEFAULT_ZOOM","MIN_ZOOM","habitatMap","android","iOS","actions","about","airbeam","aircasting","blog","donate","press","search","reactMap","userStories","airbeamHowItWorks","faq","usersGuide","airbeamBuyNow","airbeamMiniUsersGuide","history","useCalendarBackNavigation","useScrollEndListener","elementRef","listInnerElement","saveScrollPosition","checkScrollEnd","scrollTop","scrollHeight","clientHeight","onScroll","savedPosition","i18next_1","translation_json_1","CalendarPageLayout","StationDataContainer","StyledContainerWithGraph","ThresholdButtonsContainer","SliderWrapper","GraphContainer","SelectLabelContainer","Calendar_1","EmptyCalendar_1","FixedStreamStationHeader_1","MeasurementComponent_1","TimeRage_1","CalendarPage","formattedMinTime","formattedMaxTime","initialDataFetched","setInitialDataFetched","calendarIsVisible","renderMobileGraph","renderThresholdContainer","renderDesktopGraph","MapButtons_1","Map_1","focusTabController_1","googleMapsApiKey","MapPage","PageContainer","ContentContainer","NotFoundPage_style_1","NotFoundPage","dotFlashing","Dot","delay","Title_1","MAP_PAGE_PATH","RedirectPage","Loading","toolkit_1","initialState","clusterSlice","action","apiClient_1","apiEndpoints_1","getErrorMessage_1","logController_1","rejectWithValue","apiError","crowdMapSlice","builder","selectCrowdMapRectangles","selectFetchingCrowdMapData","sessionData","reselect_1","selectActiveFixedSessionsState","selectDormantFixedSessionsState","selectFixedSessionsStatusFulfilled","selectFixedSessionsState","selectIsActiveSessionsFetched","fixedSessionsState","selectIsDormantSessionsFetched","transformSessionData","startTimeLocal","endTimeLocal","streams","lastHourlyAverageValue","firstStream","selectSessionsByType","activeSessions","dormantSessions","selectTransformedSessionsByType","selectFixedSessionsPoints","transformedSessions","selectFixedSessionsList","createSessionFetchThunk","endpoint","sessionsData","getState","fixedSessions","fixedSessionsSlice","lastArrayItem_1","selectFixedStreamData","selectFixedStream","selectFixedExtremes","averageMeasurementValue","selectLastDailyAverage","streamDailyAverages","selectFixedStreamShortInfo","lastDailyAverage","sortedStreamDailyAverages","newestAverageObject","newestAverageValue","newestDate","newestDayMeasurements","selectFixedStreamStatus","selectFixedStreamState","_state","fixedStreamSlice","visibleMeasurements","minValue","maxValue","existingMeasurements","existingMap","_c","_d","_e","_f","store","selectIndoorSessionsState","selectIndoorSessionsStatusFulfilled","selectIndoorSessionsPoints","selectIndoorSessionsList","indoorSessionsSlice","selectFixedStreamLoading","selectFixedSessionsLoading","selectMobileSessionsLoading","selectMobileStreamLoading","selectTimelapseLoading","selectCrowdMapLoading","fixedStreamLoading","fixedSessionsLoading","mobileStreamLoading","timelapseLoading","crowdMapLoading","mapConfigs_1","mapSlice","selectFetchingData","selectHoverStreamId","selectHoverPosition","selectSessionsListExpanded","markersLoadingSlice","selectMarkersLoading","selectLoadedMarkers","selectTotalMarkers","selectMobileSessionsState","selectMobileSessionPointsBySessionId","mobileSessionState","mobileSessionByStreamId","stream","selectMobileSessionsPoints","selectMobileSessionsList","selectMobileSessionsStreamIds","mobileSessions","mobileSessionsSlice","selectMobileStreamData","selectMobileStreamPoints","mobileStreamState","selectMobileStreamShortInfo","mobileSession","sessionStreamData","selectMobileStreamStatus","selectExtremesValues","selectMobileExtremes","newAvg","selectLastSelectedMobileTimeRange","movingData","WEEKDAYS_COUNT","getMonthWeekBoundariesForDate","firstDayOfMonthWeek","lastDayOfMonthWeek","prepareCalendarDataCell","getValueForDate","dailyAverage","getMonthWeeksOfDailyAveragesFor","getVisibleMonthsData","startMoment","_selectMovingCalendarData","selectThreeMonthsDailyAverage","calendarData","emptyResult","visibleData","latestMomentWithData","secondLatestMonth","thirdLatestMonth","threeMonths","selectMovingCalendarMinMax","entry","selectEmptyCalendarData","latestMonth","secondMonth","selectCalendarData","dateKey","realtimeMapUpdatesSlice","rectangleSlice","selectRectangleData","selectRectangleLoading","sessionTypeCapitalized","sensorsSlice","selectSensors","FixedSessionsTypes","sessionFilterSlice","selectUsernames","selectTags","selectBasicParametersModalOpen","selectCustomParametersModalOpen","selectBasicSensorsModalOpen","selectCustomSensorsModalOpen","selectFixedSessionsType","selectIsDormantSessionsType","selectIsTagsInputFetching","selectIsUsernamesInputFetching","selectFiltersButtonClosed","selectDefaultThresholds","selectThresholds","selectUserThresholds","selectSliderWidth","selectThumbPositions","selectTimelapseData","selectCurrentTimestamp","selectTimelapseIsLoading","selectTimelapseTimeRange","timelapse","timelapseSlice","DateFormat","SessionTypes","ParameterTypes","MobileBasicParameterTypes","FixedBasicParameterTypes","UnitSymbols","MapTypeId","ViewMode","FixedTimeRange","MobileTimeRange","TimeRanges","UserSettings","set","updatedCookie","optionKey","optionValue","get","matches","getJSON","remove","copyCurrentURL","link","currentURL","tempInput","parseDateString","determineZoomLevel","primaryType","viewport","getCountryBounds","countryCode","getStateBounds","component","filterTimestamps","filtered","userIsTabbingKey","handleTabAction","handleMouseAction","FocusTabController","getBrowserLocation","getClusterPixelPosition","latLng","overlayProjection","isErrorWithMessage","toErrorWithMessage","maybeError","getErrorMessage","getSelectedRangeIndex","mapIndexToTimeRange","hexToRGBA","hex","opacity","r","g","Sentry","initializeSentry","sentryEnvironment","lastItemFromArray","array","sortedArray","LogLevel","convertToSeverityLevel","level","logEvent","severityLevel","logError","context","errorToLog","useMapEventListeners","eventHandlers","eventName","handler","UrlParamsTypes","useMapParams","setSearchParams","getParam","defaultValue","cookieValue","newLimit","newOffset","newFetchedSessions","selectedPreviousUserSettings","activeParam","newIsActive","debouncedUpdateURL","newUserSettings","finalPreviousUserSettings","selectedYear","commonParams","calculateMeasurementStats","isNoData","isValidValue","formatTime","formatDate","dateString","timeString","formatTimeExtremes","minDate","maxDate","sameDay","isMinAtStart","isMaxAtEnd","sizes","useHandleScrollEnd","hasMoreSessions","hasMoreDormantSessions","totalFetchedSessions","setSensor","getSensor","COLORS_FOR_RANGES","getColorForValue","isBorder","defaultColor","getColorForCalendarDataCard","useThresholdHandlers","isValueValid","newValue","clearErrorAndUpdateThreshold","parsedValue","prevValues","validateThresholdOrder","trimmedValue","debouncedHandleInputChange","clickX","clickValue","distances","closestThumb","newThresholdValues","handleMouseMove","startX","startValue","moveEvent","displacement","newPercentage","newThresholdValue","newThresholdValueWithinBounds","updatedValues","currentValue","moveHandler","touch","handleMouseDown","calculateThumbPercentage","calculateThumbPosition","sliderCorrectWidth","calculateUniformThresholds","lowThreshold","middleThreshold","highThreshold","maxThreshold","calculateMinMaxValues","useAutoDismissAlert","useScreenSizeDetection","maxWidth","useShortenedLink","url","accessToken","setShortenedLink","setError","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","deferred","chunkIds","fn","priority","notFulfilled","j","getter","getProto","obj","leafPrototypes","mode","ns","def","current","definition","prop","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}