{"version":3,"file":"/share/sys-root/ceskehory/ceskehory-app-zima.js","mappings":"MAaA,SAASA,IACR,IAAIC,EAAYC,SAASC,eAAe,YAExC,GAAkB,OAAdF,EAGH,IAFA,IAAIG,EAAQH,EAAUI,qBAAqB,MAElCC,EAAIF,EAAMG,OAAS,EAAGD,GAAK,EAAGA,IACtCF,EAAME,GAAGE,UAAY,EAGxB,CAvBAN,SAASO,gBAAgBC,QAAUV,EAyBnCW,OAAOC,SAvBP,SAAkBC,EAAGC,GAGA,SAFhBA,EAAKA,EAAGC,YAELP,YACNK,EAAEG,cAAe,EACbH,EAAEI,iBAAiBJ,EAAEI,mBAE1BjB,IACAc,EAAGN,UAA4B,IAAhBM,EAAGN,UAAkB,OAAS,EAC9C,EAeAG,OAAOX,SAAWA,C,KCpBlBkB,mBAAqB,WACpB,IAAMC,EAAajB,SAASkB,cAAc,iBACpCC,EAAanB,SAASkB,cAAc,gBACtCE,GAAc,EAElBH,EAAWI,iBAAiB,SAAS,SAAUV,GAC9CA,EAAEW,eAAiBX,EAAEW,iBAAmBX,EAAEY,aAAc,EAIlDH,GAKLD,EAAWK,MAAMC,QAAU,OAC3BL,GAAc,IALdD,EAAWK,MAAMC,QAAU,QAC3BL,GAAc,EAMhB,GACD,EAGAM,sBAAwB,WACvB,IAAMT,EAAajB,SAASkB,cAAc,iBACpCC,EAAanB,SAASkB,cAAc,gBAE1CD,EAAWI,iBAAiB,SAAS,SAAUV,GAK9C,GAJAA,EAAEW,iBAEgBH,EAAWQ,UAAUC,SAAS,UAqB/CT,EAAWK,MAAMK,OAAS,MAG1BV,EAAWE,iBACV,iBACA,WAAcF,EAAWQ,UAAUG,OAAO,SAAU,GACpD,CAACC,MAAM,QAzBU,CAElBZ,EAAWQ,UAAUK,IAAI,UACzBb,EAAWK,MAAMK,OAAS,OAG1B,IAAIA,EAASV,EAAWc,aAGxBd,EAAWK,MAAMK,OAAS,MAI1BK,YAAW,WACVf,EAAWK,MAAMK,OAASA,EAAS,IACpC,GAAG,EACJ,CAYD,GACD,EAGAM,6BAA+B,WAC9BnC,SAASkB,cAAc,iCACrBG,iBAAiB,UAAU,SAAUe,GAGC,KAFZA,EAAMC,OAAOnB,cAAc,+CAEhCoB,MAAMC,QAC1BH,EAAMd,gBACR,GACF,EAGCb,OAAO+B,UAAUC,UAAUC,QAAQ,SAAW,GAC9CjC,OAAO+B,UAAUC,UAAUC,QAAQ,YAAc,EAIjDjC,OAAOY,iBAAiB,OAAQL,oBAAoB,GAEpDP,OAAOY,iBAAiB,OAAQK,uBAAuB,GAExDjB,OAAOY,iBAAiB,OAAQc,8BAA8B,G,yQCzF9DQ,EACAC,EACAxC,EACAyC,EACAC,E,uQCJaC,EAAAA,WAET,WAA6BC,IAAAA,SAAAA,EAAAA,G,8EAAAA,CAAkC,QAAlC,KAAAA,UAAA,CAAAA,C,8CAEtB,SAAUC,GAGb,IAFA,IAAIC,EAAmB,GAEd9C,EAAI,EAAGA,EAAI6C,EAAO5C,OAAQD,IAC/B8C,GAAoBC,KAAKH,UAAUC,EAAOG,OAAOhD,KAAO6C,EAAOG,OAAOhD,GAG1E,OAAO8C,CAAAA,MAAAA,EAAAA,EAAAA,UAAAA,GAAAA,OAAAA,eAAAA,EAAAA,YAAAA,C,gBAXFH,GAAbpC,EAAAA,cAAAA,CAAA,E,uQCCa0C,EAAAA,WAAb,yBAAA1C,G,8EAAA,SAEW,KAAA2C,iBAAA,EAES,KAAAC,gBAAsCvD,SAASkB,cAAc,YAE7D,KAAAsC,cAAwCxD,SAASkB,cAAc,qBAE/D,KAAAuC,UAAwCzD,SAASkB,cAAc,8BAC/D,KAAAwC,oBAAwC1D,SAASkB,cAAc,6BAC/D,KAAAyC,YAAwC3D,SAASkB,cAAc,0C,sDAExE,WAEHiC,KAAKK,cAAchC,MAAMC,QAAU,U,8BAGhC,WAEH0B,KAAKK,cAAchC,MAAMC,QAAU,mE,gBAnB9B4B,GAAb1C,EAAAA,iBAAAA,CAAA,E,y5DCDaiD,EAAAA,SAAAA,IAAA,c,uQAAA,C,6KA6FT,wC,8EAAA,UACIC,EAAAA,EAAAA,KAAAA,OA7FJC,SAAW,mjEA8FPD,EAAKE,OAASF,EAAKG,aAAa,CAAEC,KAAM,SAExCJ,EAAKE,OAAOG,UAAcL,EAAKC,SAE/BD,EAAKM,QAAqBN,EAAKE,OAAO7C,cAAc,kBACpD2C,EAAKO,eAAqBP,EAAKE,OAAO7C,cAAc,UACpD2C,EAAKQ,cAAqBR,EAAKE,OAAO7C,cAAc,SACpD2C,EAAKS,mBAAqBT,EAAKE,OAAO7C,cAAc,yBAEpD2C,EAAKM,QAAQ9C,iBAAiB,SAAS,kBAAMwC,EAAK/B,QAAAA,IAClD+B,EAAKS,mBAAmBjD,iBAAiB,SAAS,kBAAMwC,EAAK/B,QAAAA,IAZjE+B,CAAA,C,4CAXA,WACI,MAAO,CAAE,gB,8BAyBb,WACIV,KAAKiB,eAAeG,YAAcpB,KAAKqB,aAAa,cACpDrB,KAAKkB,cAAcE,YAAcpB,KAAKqB,aAAa,gB,qCAGvD,SAAyBC,EAAcC,EAAkBC,GACrDxB,KAAKkB,cAAcE,YAAeI,CAAAA,GAAAA,C,uBAGtC,SAAWC,GACP,IAAMC,EAAOD,EAAQE,wBAEfC,EAAuB5B,KAAKY,OAAO7C,cAAc,2BACvD6D,EAAqBvD,MAAMwD,IAA3B,UAAoCH,EAAKG,IAAMvE,OAAOwE,QAAtD,MACAF,EAAqBvD,MAAM0D,KAA3B,UAAqCL,EAAKK,KAAO,IAAjD,2E,gBA1HKtB,CAAA,EAA2BuB,cAAxCxE,EAAAA,mBAAAA,CAAA,E,+dCAayE,E,0GAAAA,EAQT,4B,8EAAA,SAEI,IAAMC,EAAOC,YAEb,GAAoB,WAAhBC,EAAOF,IACmB,iBAAhBA,EAAKG,QACa,iBAAlBH,EAAKI,UACW,iBAAhBJ,EAAKK,QACkB,iBAAvBL,EAAKM,eACc,WAA1BJ,EAAOF,EAAKrC,WAEf,MAAM,IAAI4C,MAAM,IAGpBzC,KAAKqC,OAAgBH,EAAKG,OAC1BrC,KAAKsC,SAAgBJ,EAAKI,SAC1BtC,KAAKuC,OAAgBL,EAAKK,OAC1BvC,KAAKwC,cAAgBN,EAAKM,cAC1BxC,KAAKH,UAAgBqC,EAAKrC,SAAAA,IA1BlCrC,EAAAA,gBAAAA,CAAA,E,61FCAA,aACAkF,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,IACAC,EAAAA,EAAAA,KAEaC,EAAAA,SAAAA,IAAA,c,uQAAA,C,2KAkDT,wC,8EAAA,UACIrC,EAAAA,EAAAA,KAAAA,OAjDJC,SAAW,+jCA4CHD,EAAAA,gBAAiC,KAQrCA,EAAKE,OAASF,EAAKG,aAAa,CAAEC,KAAM,SACxCJ,EAAKE,OAAOG,UAAYL,EAAKC,SAG7BD,EAAK9D,UAAY8D,EAAKE,OAAO7C,cAAc,0BAC3C2C,EAAK9D,UAAUyB,MAAMC,QAAU,OAG/BoC,EAAKsC,QAAsB,IAAIH,EAAAA,gBAC/BnC,EAAKuC,cAAsB,IAAIC,EAAAA,iBAC/BxC,EAAKyC,cAAgB,IAAIL,EAAAA,cAAcpC,EAAKsC,QAAQnD,WAIpDa,EAAK9D,UAAUsB,iBAAiB,SAAS,SAACe,GAC/BA,EAAMC,kBAAkBkE,gBAI/B1C,EAAKuC,cAAc3C,UAAUnB,MAASF,EAAMC,OAAyBmE,UAErE3C,EAAK4C,mBAAAA,EACL,EAAAC,WACI7C,EAAKuC,cACLvC,EAAKsC,QAAQX,OACb3B,EAAKsC,QAAQV,SACb5B,EAAKsC,QAAQT,OACb7B,EAAKsC,QAAQR,eAAAA,IAMrB9B,EAAK9D,UAAUsB,iBAAiB,aAAa,SAACe,GACnCA,EAAMC,kBAAkBkE,eAI/B1C,EAAK8C,cAAcvE,EAAMC,OAAAA,IAI7BwB,EAAK9D,UAAUsB,iBAAiB,cAAc,WAC1CwC,EAAK+C,kBAAAA,IAIT5G,SAASqB,iBAAiB,SAAS,SAACe,GAC1ByB,EAAKuC,cAAc3C,UAAU7B,SAASQ,EAAMC,SAC9CwB,EAAK4C,iBAAAA,IArDjB5C,CAAA,C,sDA6DO,WACH,IAAMgB,EAAO1B,KAAKiD,cAAc3C,UAAUqB,wBAE1C3B,KAAKpD,UAAUyB,MAAMwD,IAArB,UAA8BH,EAAKG,IAAMvE,OAAOwE,QAAU,GAA1D,MACA9B,KAAKpD,UAAUyB,MAAM0D,KAArB,UAA+BL,EAAKK,KAApC,S,4BAGG,WACH/B,KAAKpD,UAAUyB,MAAMC,QAAU,U,4BAG5B,WACH0B,KAAKpD,UAAUyB,MAAMC,QAAU,W,2BAG5B,SAAeoF,GAAY,WAC9B1D,KAAK2D,kBAELC,OAAOC,QAAQH,GAAMI,SAAQ,YAAgC,aACzD,GADyDtG,EAAAA,GACpC,iBADoCA,EAAAA,GAErD,MAAM,IAAIiF,MAAM,oFAKxBzC,KAAKpD,UAAUmH,iBAAiB,KAAKD,SAAQ,SAACrC,GAAuBA,EAAQ9C,QAAAA,IAG7EiF,OAAOC,QAAQH,GAAMI,SAAQ,YAAmC,aAA5B3E,GAA4BiD,EAAAA,GAAAA,EAAAA,IACtD4B,EAAYnH,SAASoH,cAAc,MACzCD,EAAUjD,UAAY5B,EAEtB3B,EAAKZ,UAAUsH,YAAYF,EAAAA,GAAAA,GAAAA,C,6BAK5B,WAC0B,OAAzBhE,KAAKmE,iBAAmF,OAAvDnE,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,mBAItEnE,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmC3F,UAAUG,OAAO,cACvFqB,KAAKmE,gBAAkB,S,0BAIpB,SAAcH,GACY,OAAzBhE,KAAKmE,iBACLnE,KAAKyD,mBAGTzD,KAAKmE,gBAAkBG,MAAMC,KAAKvE,KAAKpD,UAAUwH,UAAU7E,QAAQyE,GAClEhE,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmC3F,UAAUK,IAAI,iB,gCAIjF,WAE0B,OAAzBmB,KAAKmE,iBACJnE,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmC3F,UAAUG,OAAO,cAI3FqB,KAAKmE,gBAA4C,OAAzBnE,KAAKmE,iBAA4BnE,KAAKmE,gBAAkB,EAAInE,KAAKpD,UAAUwH,SAASlH,OACtG8C,KAAKmE,gBAAkBnE,KAAKmE,gBAAkB,EAC9CnE,KAAKmE,gBAAkB,EAG5BnE,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmC3F,UAAUK,IAAI,cAGpFmB,KAAKiD,cAAc3C,UAAUnB,MAASa,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmCd,SAAAA,GAAAA,C,oCAGxG,WAE0B,OAAzBrD,KAAKmE,iBACJnE,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmC3F,UAAUG,OAAO,cAI3FqB,KAAKmE,gBAA4C,OAAzBnE,KAAKmE,iBAA4BnE,KAAKmE,gBAAkB,EAC1EnE,KAAKmE,gBAAkBnE,KAAKmE,gBAAkB,EAC9CnE,KAAKmE,gBAAkBnE,KAAKpD,UAAUwH,SAASlH,OAAS,EAG7D8C,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmC3F,UAAUK,IAAI,cAGpFmB,KAAKiD,cAAc3C,UAAUnB,MAASa,KAAKpD,UAAUwH,SAASC,KAAKrE,KAAKmE,iBAAmCd,SAAAA,GAAAA,C,+BAGxG,SAAmBmB,GAAqB,WAC3C,QAAI,IAAOxE,KAAKyE,gBAAAA,EACoB,EAAAC,6BAC5B1E,KAAKgD,QAAQX,OACbrC,KAAKgD,QAAQV,SACbtC,KAAKgD,QAAQT,OACbvC,KAAKgD,QAAQR,eAIZmC,MAAK,YAAQ,OAAIC,EAASC,MAAAA,IAC1BF,MAAK,YACFnH,EAAKiH,eAAiBvC,EAEtB,IAAM4C,GAAAA,EAAkB,EAAAC,2CACpBvH,EAAK2F,cAAeqB,EAAehH,EAAKiH,gBAG5CjH,EAAKwH,eAAeF,EAAAA,QAGzB,CACH,IAAMA,GAAAA,EAAkB,EAAAC,2CACpB/E,KAAKmD,cAAeqB,EAAexE,KAAKyE,gBAG5CzE,KAAKgF,eAAeF,EAAAA,CAAAA,MAAAA,EAAAA,EAAAA,UAAAA,GAAAA,OAAAA,eAAAA,EAAAA,YAAAA,C,gBAtOnB/B,CAAA,EAAmCf,cAAhDxE,EAAAA,2BAAAA,CAAA,E,2ICNA,aAEAA,EAAAA,iBAAAA,SAAiC2F,EAA8BqB,EAAuBd,GAClF,IAAMuB,EAA2B9B,EAAc+B,UAAUV,GAAgBW,cACnEC,EAA8B,GAEpC,IAAK,IAAMC,KAAO3B,EAAM,CACpB,IAAMW,EAAOX,EAAK2B,GACKlC,EAAc+B,UAAUxB,EAAK2B,GAAKF,eAEtCG,SAASL,IACxBG,EAAkBG,KAAKlB,EAAAA,CAI/B,OAAOe,CAAAA,EAGX5H,EAAAA,0CAAAA,SAA0D2F,EAA8BqB,EAAuBd,GAC3G,IAAMuB,EAA2B9B,EAAc+B,UAAUV,GAAgBW,cACnEC,EAA8B,GAEpC,IAAK,IAAMC,KAAO3B,EAAM,CACpB,IAAMW,EAAOX,EAAK2B,GAGlB,GAFuBlC,EAAc+B,UAAUxB,EAAK2B,GAAKF,eAEtCG,SAASL,GAA0B,CAClD,IAAIO,GAAAA,EAAa,EAAAC,0BAAyBtC,EAAeqB,EAAeH,GACxEe,EAAkBG,KAAKC,EAAAA,CAAAA,CAI/B,OAAOJ,CAAAA,CAAAA,E,wGChCX5H,EAAAA,4BAAAA,SACI6E,EACAC,EACAC,EACAC,GAEA,IACMkD,EAAe,CACjBC,OAAQ,OACR7E,KAAM,cACN8E,MAAO,WACPC,QAAS,CAAEC,OAAU,mBAAoB,eAAgB,oBACzDC,KAAMC,KAAKC,UAAU,CAAC5D,OAAQA,EAAQC,SAAUA,EAAUC,OAAQA,EAAQC,cAAeA,KAG7F,OAAO0D,MATU,8CASMR,EAAAA,CAAAA,E,qGCH3BlI,EAAAA,yBAAAA,SAAyC2F,EAA8BgD,EAAiBC,GACpF,IAAIC,EAAWlD,EAAc+B,UAAUkB,GAEvCD,GADAA,EAAUhD,EAAc+B,UAAUiB,IAChBhB,cAClBkB,EAAWA,EAASlB,cAIpB,IAHA,IAAImB,EAAiBH,EAAQjJ,OACzBqJ,EAAS,EACTC,EAAc,GAC4B,IAAvCH,EAAS9G,QAAQ4G,EAASI,IAAgB,CAE7C,IAAIE,GADJF,EAASF,EAAS9G,QAAQ4G,EAASI,IACRC,EACvBE,EAAeN,EAAKO,OAAOF,EAAaH,GACxCM,EAAK,IAAIC,OAAO,IAAIH,EAAa,IAAK,KACtCI,EAAWV,EAAKO,OAAOF,GAC3BL,EAAOA,EAAKO,OAAO,EAAEF,GAAeK,EAASC,QAAQH,EAAG,uBACxDL,GAAkBD,EAClBE,GAAe,GAGnB,OAAOJ,CAAAA,CAAAA,E,yGChCX5I,EAAAA,6BAAAA,SACIgH,EACAnC,EACAC,EACAC,EACAC,GAEA,IAEMkD,EAAe,CACjBC,OAAQ,OACR7E,KAAM,cACN8E,MAAO,WACPC,QAAS,CAAEC,OAAU,mBAAoB,eAAgB,oBACzDC,KAAMC,KAAKC,UAAU,CACjBzB,cAAeA,EACfnC,OAAeA,EACfC,SAAeA,EACfC,OAAeA,EACfC,cAAeA,KAIvB,OAAO0D,MAhBU,mDAgBMR,EAAAA,CAAAA,E,wFCtB3B,aAEAlI,EAAAA,UAAAA,SACIyF,EACAZ,EACAC,EACAC,EACAC,GAEA,IAAIS,EAAc9C,iBAA4D,IAAzC8C,EAAc3C,UAAUnB,MAAMjC,OAAnE,CAIA+F,EAAc9C,iBAAkB,EAEhC8C,EAAc3C,UAAU0G,UAAAA,EACxB/D,EAAc1C,oBAAoBlC,MAAMC,QAAU,OAClD2E,EAAczC,YAAYnC,MAAMC,QAAkB,QAElD,IAAM2I,EAAchE,EAAc3C,UAAUnB,MAAMC,QAAAA,EACf,EAAA8H,8BAA6BD,EAAa5E,EAAQC,EAAUC,EAAQC,GAGlGmC,MAAK,YAAQ,OAAIC,EAASC,MAAAA,IAC1BF,MAAK,YACF1B,EAAckE,oBAEdlE,EAAc7C,gBAAgBgH,mBAAmB,YAAaC,GAE7DxK,SAASkB,cAAc,mBACnBG,iBAAiB,SAAS,WACvB+E,EAAc3C,UAAU0G,UAAAA,EACxB/D,EAAc3C,UAAUnB,MAA0B,GAClD8D,EAAc1C,oBAAoBlC,MAAMC,QAAU,QAClD2E,EAAczC,YAAYnC,MAAMC,QAAkB,OAElD2E,EAAcqE,oBACbzK,SAASkB,cAAc,iBAAsCY,SAE9DsE,EAAc9C,iBAAkB,eAGrC,WACHoH,QAAQC,IAAI,qBACZvE,EAAc9C,iBAAkB,Q,whCC7C5C,IAAAlD,EAAA,OAEAwK,eAAeC,OAAO,kBAAmBzK,EAAAA,oBAEzCO,EAAAA,YAAAA,SAA4BmK,EAAYrG,EAAcsG,GAElD,IAAMC,EAAqBhL,SAASoH,cAAc,mBAC5C6D,EAAoB,CAAEH,GAAI,gBAAiB,aAAcrG,EAAM,YAAa,yBAElFsC,OAAOC,QAAQiE,GAAmBhE,SAAQ,YAAoC,aAAlCiE,EAAkCvK,EAAAA,GAAnBwK,EAAmBxK,EAAAA,GAC1EqK,EAAmBI,aAAaF,EAAeC,EAAAA,IAGnDH,EAAmBK,WAAWN,GAE7B/K,SAASkB,cAAc,QAA4BoK,QAAQN,GAE5D,IACMnC,EAAe,CACjBC,OAAQ,OACR7E,KAAM,cACN8E,MAAO,WACPC,QAAS,CAAEC,OAAU,mBAAoB,eAAgB,oBACzDC,KAAMC,KAAKC,UAAU,CAAC0B,GAAIA,KAG9BzB,MATiB,2CASDR,GACXf,MAAK,YAAQ,OAAIC,EAASC,MAAAA,IAC1BF,MAAK,YAAW,OAAIkD,EAAmBI,aAAa,OAAQG,EAAAA,GAAAA,CAAAA,GC3BjEC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAI,IAAAC,EACH,OAAOA,EAAaC,QAGrB,IAAIC,EAASL,EAAyBE,GAAY,CAGjDE,QAAS,CAAC,GAOX,OAHAE,EAAoBJ,GAAUG,EAAQA,EAAOD,QAASH,GAG/CI,EAAOD,OAAAA,CCrBfH,EAAoBM,EAAI,WACvB,GAA0B,+BAAfC,WAAAA,YAAAA,EAAAA,aAAyB,OAAOA,WAC3C,IACC,OAAO7I,MAAQ,IAAI8I,SAAS,cAAb,EAEwBxL,CADtC,MAAOE,GACR,GAAsB,+BAAXF,OAAAA,YAAAA,EAAAA,SAAqB,OAAOA,MAAAA,CAAAA,CALjB,GbAxBkC,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,KACAxC,EAAAA,EAAAA,IACAyC,EAAAA,EAAAA,KACAC,EAAAA,EAAAA,KAEArC,OAAOY,iBAAiB,oBAAoB,YAGvBZ,QAAwB8E,EAAAA,GACjC2G,YAAcvJ,EAAAA,YAGtBiI,eAAeC,OAAO,mBAAoB/H,EAAAA,4BAC1C,IAAMqJ,EAAkBnM,SAASoH,cAAc,oBAC/C+E,EAAgBC,4BACfpM,SAASkB,cAAc,QAA4BoK,QAAQa,GAE5D,IAAMhG,EAAsB,IAAI/F,EAAAA,gBAC1BgG,EAAsB,IAAIxD,EAAAA,iBAGhCwD,EAAc3C,UAAUpC,iBAAiB,SAAS,SAACe,GAG/C,GAA6C,IAAzCgE,EAAc3C,UAAUnB,MAAMjC,OAKlC,MAAI,CAAE,QAAS,eAAeoI,SAASrG,EAAMiK,OACzCF,EAAgB1F,uBAAAA,EAChB,EAAAC,WAAUN,EAAeD,EAAQX,OAAQW,EAAQV,SAAUU,EAAQT,OAAQS,EAAQR,qBAIpE,YAAfvD,EAAMiK,KAGgB,cAAfjK,EAAMiK,MAKjBF,EAAgBG,mBAAmBlG,EAAc3C,UAAUnB,MAAMC,QACjE4J,EAAgBC,4BAChBD,EAAgBvF,oBANZuF,EAAgBI,sBAHhBJ,EAAgBK,0BAAAA,IAaxBpG,EAAc3C,UAAUpC,iBAAiB,SAAS,SAACe,GACS,IAAnDA,EAAMC,OAA4BC,MAAMjC,QACzC8L,EAAgB1F,iBAAAA,IAKxBL,EAAc1C,oBAAoBrC,iBAAiB,SAAS,WACX,IAAzC+E,EAAc3C,UAAUnB,MAAMjC,SAAAA,EAIlC,EAAAqG,WAAUN,EAAeD,EAAQX,OAAQW,EAAQV,SAAUU,EAAQT,OAAQS,EAAQR,cAAAA,GAAAA,GAAAA,C,Oc9C3FlF,OAAOgM,sBAbP,WAECrK,MAAMd,iBAINmG,MAAMiF,UAAUC,MACdC,KAAM5M,SAASkH,iBAAiB,6DAChCD,SAAS,SAAUO,GACnBA,EAAK7F,UAAUkL,OAAO,gBACvB,GACF","sources":["webpack://sys-root/../../../share/js/flags.js","webpack://sys-root/../../../share/js/searchWrap.js","webpack://sys-root/../../../../../../app.ts","webpack://sys-root/../../../../../../src/AccentService/AccentService.ts","webpack://sys-root/../../../../../../src/AppUserInterface/AppUserInterface.ts","webpack://sys-root/../../../../../../src/CommentPopupWindow/CommentPopupWindow.ts","webpack://sys-root/../../../../../../src/PhpDataProvider/PhpDataProvider.ts","webpack://sys-root/../../../../../../src/SearchWhisperer/SearchWhispererHtmlElement.ts","webpack://sys-root/../../../../../../src/SearchWhisperer/getMatchingNames.ts","webpack://sys-root/../../../../../../src/SearchWhisperer/loadShortNameListAsPromis.ts","webpack://sys-root/../../../../../../src/boldSearchPatterInString/boldSearchPatterInString.ts","webpack://sys-root/../../../../../../src/runSearch/loadSearchTableHtmlAsPromise.ts","webpack://sys-root/../../../../../../src/runSearch/runSearch.ts","webpack://sys-root/../../../../../../src/snowComment/snowComment.ts","webpack://sys-root/../../../../../../webpack/bootstrap","webpack://sys-root/../../../../../../webpack/runtime/global","webpack://sys-root/./src/sys-root.js"],"sourcesContent":["document.documentElement.onclick = closeAll;\r\n\r\nfunction showHide(e, el) {\r\n\tvar el = el.parentNode;\r\n\r\n\tif (el.className != \"show\") {\r\n\t\te.cancelBubble = true;\r\n\t\tif (e.stopPropagation) e.stopPropagation();\r\n\t}\r\n\tcloseAll();\r\n\tel.className = el.className == '' ? 'show' : '';\r\n}\r\n\r\nfunction closeAll() {\r\n\tvar container = document.getElementById(\"vlajecky\");\r\n\r\n\tif (container !== null) {\r\n\t\tvar items = container.getElementsByTagName(\"li\");\r\n\r\n\t\tfor (var i = items.length - 1; i >= 0; i--) {\r\n\t\t\titems[i].className = \"\";\r\n\t\t}\r\n\t}\r\n}\r\n\r\nwindow.showHide = showHide;\r\nwindow.closeAll = closeAll;","// INFO:\r\n// ----------------------------------------------------------------\r\n// \t\t- Kvůli podpoře IE prosím NEPOUŽÍVAT arrow functions.\r\n// ----------------------------------------------------------------\r\n\r\n/** Zajistuje zobrazeni a schovani #searchWrap po kliknuti na ikonku lupy pro Internet Explorer. */\r\nsearchWrapToggleIE = function () {\r\n\tconst searchIcon = document.querySelector('.searchIcon a');\r\n\tconst searchWrap = document.querySelector('#search-wrap');\r\n\tlet isSlideOpen = false;\r\n\r\n\tsearchIcon.addEventListener('click', function (e) {\r\n\t\te.preventDefault ? e.preventDefault() : e.returnValue = false;\r\n\r\n\r\n\r\n\t\tif( ! isSlideOpen) {\r\n\t\t\tsearchWrap.style.display = 'block';\r\n\t\t\tisSlideOpen = true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsearchWrap.style.display = 'none';\r\n\t\t\tisSlideOpen = false;\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/** Zajistuje slizdeni a zajizdeni #searchWrap po kliknuti na ikonku lupy. */\r\nsearchWrapSlideToggle = function () {\r\n\tconst searchIcon = document.querySelector('.searchIcon a');\r\n\tconst searchWrap = document.querySelector('#search-wrap');\r\n\r\n\tsearchIcon.addEventListener('click', function (e) {\r\n\t\te.preventDefault();\r\n\r\n\t\tlet isSlideOpen = searchWrap.classList.contains('active');\r\n\r\n\t\tif( ! isSlideOpen) {\r\n\t\t\t// Zobrazí(slideDown) searchWrap.\r\n\t\t\tsearchWrap.classList.add('active');\r\n\t\t\tsearchWrap.style.height = 'auto';\r\n\r\n\t\t\t// Získání spočítané výšky pro searchWrap.\r\n\t\t\tlet height = searchWrap.clientHeight;\r\n\r\n\t\t\t// Nastavení výšky searchWrapu na 0px abychom mohli animovat zobrazeni(slide down).\r\n\t\t\tsearchWrap.style.height = '0px';\r\n\r\n\t\t\t// Po tom co jsme nastavili výšku na 0px, nastavime požadovanou výšku, čímž spustíme animaci.\r\n\t\t\t// SetTimeout pushne task do stacku. Což ve výsledku znamená, že proces proběhne PO synchroních procesech. */\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tsearchWrap.style.height = height + 'px';\r\n\t\t\t}, 0);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t// Nastavení výšky searchWrapu na 0px čímž spustíme animaci(slide up).\r\n\t\t\tsearchWrap.style.height = '0px';\r\n\r\n\t\t\t// Odebrání třídy .active až animace skončí.\r\n\t\t\tsearchWrap.addEventListener(\r\n\t\t\t\t'transitionend',\r\n\t\t\t\tfunction () { searchWrap.classList.remove('active') },\r\n\t\t\t\t{once: true}\r\n\t\t\t);\r\n\t\t}\r\n\t});\r\n}\r\n\r\n/** Zabrani odeslani pokud je search bar prazdny, nebo obsahuje jenom bile znaky. */\r\npreventSendingEmptySearchBar = function () {\r\n\tdocument.querySelector('#search-wrap form.search-form')\r\n\t\t.addEventListener('submit', function (event) {\r\n\t\t\tconst searchBarElement = event.target.querySelector('div.search-bar input[type=\"text\"][name=\"q\"]');\r\n\r\n\t\t\tif( searchBarElement.value.trim() === '' )\r\n\t\t\t\tevent.preventDefault();\r\n\t\t});\r\n}\r\n\r\nconst isInternetExplorer = (\r\n\twindow.navigator.userAgent.indexOf('MSIE') > -1 ||\r\n\twindow.navigator.userAgent.indexOf('Trident') > -1\r\n);\r\n\r\nif( isInternetExplorer )\r\n\twindow.addEventListener(\"load\", searchWrapToggleIE, false);\r\nelse\r\n\twindow.addEventListener(\"load\", searchWrapSlideToggle, false);\r\n\r\nwindow.addEventListener(\"load\", preventSendingEmptySearchBar, false);\r\n","import {showComment} from \"./src/snowComment/snowComment\";\r\nimport {AppUserInterface} from \"./src/AppUserInterface/AppUserInterface\";\r\nimport {PhpDataProvider} from \"./src/PhpDataProvider/PhpDataProvider\";\r\nimport {runSearch} from \"./src/runSearch/runSearch\";\r\nimport {SearchWhispererHtmlElement} from \"./src/SearchWhisperer/SearchWhispererHtmlElement\";\r\n\r\nwindow.addEventListener('DOMContentLoaded', () => {\r\n\r\n // Pridame funkci showComment do globalu.\r\n const _global = (window /* browser */ || global /* node */) as any;\r\n _global.showComment = showComment;\r\n\r\n // Registrujeme custom SearchWhispererHtmlElement. Vytvorime jej. Provedeme potrebna nastaveni. A pripmene na body.\r\n customElements.define('search-whisperer', SearchWhispererHtmlElement);\r\n const searchWhisperer = document.createElement('search-whisperer') as SearchWhispererHtmlElement;\r\n searchWhisperer.setPositionUnderSearchBar();\r\n (document.querySelector('body') as HTMLBodyElement).prepend(searchWhisperer);\r\n\r\n const phpData = new PhpDataProvider();\r\n const userInterface = new AppUserInterface();\r\n\r\n // Naseptavac\r\n userInterface.searchBox.addEventListener('keyup', (event: KeyboardEvent) => {\r\n\r\n // Pokud je search field prazdny, neprovadime zadnou akci.\r\n if (userInterface.searchBox.value.length === 0) {\r\n return;\r\n }\r\n\r\n // Vyhledavani odstartovane stisknutim entru.\r\n if ([ 'Enter', 'NumpadEnter'].includes(event.code)) {\r\n searchWhisperer.hideSuggestions();\r\n runSearch(userInterface, phpData.server, phpData.regionId, phpData.locale, phpData.pageSeoString);\r\n return;\r\n }\r\n\r\n if (event.code === 'ArrowUp') {\r\n searchWhisperer.setPreviousItemAsActive();\r\n return;\r\n } else if (event.code === 'ArrowDown') {\r\n searchWhisperer.setNextItemAsActive();\r\n return;\r\n }\r\n\r\n searchWhisperer.showSuggestionsFor(userInterface.searchBox.value.trim());\r\n searchWhisperer.setPositionUnderSearchBar();\r\n searchWhisperer.removeActiveItem();\r\n });\r\n\r\n // Pokud se zmenil text ve vyhledavacim boxu a vyhledavaci boxu je prazdny, schovame naseptavac.\r\n userInterface.searchBox.addEventListener('input', (event) => {\r\n if ((event.target as HTMLInputElement).value.length === 0) {\r\n searchWhisperer.hideSuggestions();\r\n }\r\n });\r\n\r\n // Vyhledavani odstartovane kliknutim na ikonku lupy.\r\n userInterface.magnifyingGlassIcon.addEventListener('click', () => {\r\n if (userInterface.searchBox.value.length === 0) {\r\n return;\r\n }\r\n\r\n runSearch(userInterface, phpData.server, phpData.regionId, phpData.locale, phpData.pageSeoString);\r\n });\r\n\r\n});\r\n","export class AccentService {\r\n\r\n constructor(private readonly accentMap: {[key: string]: string}) {}\r\n\r\n public normalize(string: string): string {\r\n let normalizedString = '';\r\n\r\n for (let i = 0; i < string.length; i++) {\r\n normalizedString += this.accentMap[string.charAt(i)] || string.charAt(i);\r\n }\r\n\r\n return normalizedString;\r\n }\r\n\r\n}","\r\nexport class AppUserInterface {\r\n\r\n public isSearchRunning: boolean = false;\r\n\r\n public readonly epSnowContainer: HTMLDivElement = document.querySelector('#ep-snow') as HTMLDivElement;\r\n\r\n public readonly mainSnowTable: HTMLTableElement = document.querySelector('#ep-snow #tabsnih') as HTMLTableElement;\r\n\r\n public readonly searchBox: HTMLInputElement = document.querySelector('#ep-snow input#snih-search') as HTMLInputElement;\r\n public readonly magnifyingGlassIcon: HTMLImageElement = document.querySelector('#ep-snow #snih-search-img') as HTMLImageElement;\r\n public readonly spinnerIcon: HTMLImageElement = document.querySelector('#ep-snow img.search_spinner.search_ico') as HTMLImageElement;\r\n\r\n public hideMainSnowTable(): void\r\n {\r\n this.mainSnowTable.style.display = 'none';\r\n }\r\n\r\n public showMainSnowTable(): void\r\n {\r\n this.mainSnowTable.style.display = 'table';\r\n }\r\n\r\n}","export class CommentPopupWindow extends HTMLElement {\r\n template = `\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\"Zavřít\"
\r\n\t\t\t\t\t \r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t`;\r\n\r\n static get observedAttributes() {\r\n return [ 'text', ];\r\n }\r\n\r\n private shadow: ShadowRoot;\r\n\r\n private overlay: HTMLDivElement;\r\n private titleContainer: HTMLDivElement;\r\n private textContainer: HTMLDivElement;\r\n private closeIconContainer: HTMLDivElement;\r\n\r\n constructor() {\r\n super();\r\n this.shadow = this.attachShadow({ mode: \"open\" });\r\n\r\n this.shadow.innerHTML = this.template;\r\n\r\n this.overlay = this.shadow.querySelector('.popup-overlay') as HTMLDivElement;\r\n this.titleContainer = this.shadow.querySelector('.title') as HTMLDivElement;\r\n this.textContainer = this.shadow.querySelector('.text') as HTMLDivElement;\r\n this.closeIconContainer = this.shadow.querySelector('.close-icon-container') as HTMLDivElement;\r\n\r\n this.overlay.addEventListener('click', () => this.remove());\r\n this.closeIconContainer.addEventListener('click', () => this.remove());\r\n }\r\n\r\n connectedCallback() {\r\n this.titleContainer.textContent = this.getAttribute('data-title');\r\n this.textContainer.textContent = this.getAttribute('data-text');\r\n }\r\n\r\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\r\n this.textContainer.textContent = newValue;\r\n }\r\n\r\n moveNextTo(element: HTMLElement) {\r\n const rect = element.getBoundingClientRect();\r\n\r\n const popupWindowContainer = this.shadow.querySelector('.popup-window-container') as HTMLDivElement;\r\n popupWindowContainer.style.top = `${rect.top + window.scrollY}px`;\r\n popupWindowContainer.style.left = `${rect.left - 290}px`;\r\n }\r\n}","export class PhpDataProvider {\r\n\r\n public readonly server: string;\r\n public readonly regionId: string;\r\n public readonly locale: string;\r\n public readonly pageSeoString: string;\r\n public readonly accentMap: {[key: string]: string};\r\n\r\n constructor() {\r\n // @ts-ignore - backendData jsou zapsane primo ve strance.\r\n const data = backendData;\r\n\r\n if (typeof data !== 'object'\r\n || typeof data.server !== 'string'\r\n || typeof data.regionId !== 'string'\r\n || typeof data.locale !== 'string'\r\n || typeof data.pageSeoString !== 'string'\r\n || typeof data.accentMap !== 'object'\r\n ) {\r\n throw new Error('');\r\n }\r\n\r\n this.server = data.server;\r\n this.regionId = data.regionId;\r\n this.locale = data.locale;\r\n this.pageSeoString = data.pageSeoString;\r\n this.accentMap = data.accentMap;\r\n }\r\n}","import {AppUserInterface} from \"../AppUserInterface/AppUserInterface\";\r\nimport {runSearch} from \"../runSearch/runSearch\";\r\nimport {loadShortNamesListAsPromise} from \"./loadShortNameListAsPromis\";\r\nimport {getMatchingNamesWithBoldedSearchedPattern} from \"./getMatchingNames\";\r\nimport {PhpDataProvider} from \"../PhpDataProvider/PhpDataProvider\";\r\nimport {AccentService} from \"../AccentService/AccentService\";\r\n\r\nexport class SearchWhispererHtmlElement extends HTMLElement\r\n{\r\n template = `\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t`;\r\n\r\n private shadow: ShadowRoot;\r\n\r\n private readonly phpData: PhpDataProvider;\r\n private readonly userInterface: AppUserInterface;\r\n private readonly accentService: AccentService;\r\n\r\n private readonly container: HTMLUListElement;\r\n private activeItemIndex: number | null = null;\r\n\r\n private shortNamesList: string[] | undefined;\r\n\r\n constructor() {\r\n super();\r\n\r\n // Inicializace shadow DOMu.\r\n this.shadow = this.attachShadow({ mode: \"open\" });\r\n this.shadow.innerHTML = this.template;\r\n\r\n // Ziskani cointaineru a schovani.\r\n this.container = this.shadow.querySelector('ul#whisperer-container') as HTMLUListElement;\r\n this.container.style.display = 'none';\r\n\r\n // Potrebne instance trid.\r\n this.phpData = new PhpDataProvider();\r\n this.userInterface = new AppUserInterface();\r\n this.accentService = new AccentService(this.phpData.accentMap);\r\n\r\n // Poklud se klikne na jednu z moznosti naseptavace (nejaky li element). Vlozime text teto moznosti do\r\n // vyhledavaciho pole, naseptavac schovame a spustime vyhledavani.\r\n this.container.addEventListener('click', (event: MouseEvent) => {\r\n if (! (event.target instanceof HTMLLIElement)) {\r\n return;\r\n }\r\n\r\n this.userInterface.searchBox.value = (event.target as HTMLLIElement).innerText;\r\n\r\n this.hideSuggestions();\r\n runSearch(\r\n this.userInterface,\r\n this.phpData.server,\r\n this.phpData.regionId,\r\n this.phpData.locale,\r\n this.phpData.pageSeoString\r\n );\r\n });\r\n\r\n // Poklud se mysi najede na jednu z moznosti naseptavace (nejaky li element). Nastavime tento element jako\r\n // aktivni (obarveni elementu atd).\r\n this.container.addEventListener('mouseover', (event: MouseEvent) => {\r\n if (! (event.target instanceof HTMLLIElement)) {\r\n return;\r\n }\r\n\r\n this.setActiveItem(event.target as HTMLLIElement);\r\n });\r\n\r\n // Pokud mysi vyjedeme z containeru, tak zrusime aktivni element.\r\n this.container.addEventListener('mouseleave', () => {\r\n this.removeActiveItem();\r\n });\r\n\r\n // Pokud klikneme mimo vyhledavaci box, tak naseptavac schovame.\r\n document.addEventListener('click', (event: MouseEvent) => {\r\n if (! this.userInterface.searchBox.contains(event.target as HTMLElement)) {\r\n this.hideSuggestions();\r\n }\r\n });\r\n }\r\n\r\n // connectedCallback() {}\r\n // attributeChangedCallback(name: string, oldValue: string, newValue: string) {}\r\n\r\n public setPositionUnderSearchBar(): void {\r\n const rect = this.userInterface.searchBox.getBoundingClientRect();\r\n\r\n this.container.style.top = `${rect.top + window.scrollY + 25}px`;\r\n this.container.style.left = `${rect.left}px`;\r\n }\r\n\r\n public hideSuggestions(): void {\r\n this.container.style.display = 'none';\r\n }\r\n\r\n public showSuggestions(): void {\r\n this.container.style.display = 'block';\r\n }\r\n\r\n public setSuggestions(list: object): void {\r\n this.showSuggestions();\r\n\r\n Object.entries(list).forEach(([key, value]: [string, any]) => {\r\n if (typeof value !== 'string') {\r\n throw new Error('SearchWhispererElement::setSuggestions() Input list must contain only string!');\r\n }\r\n });\r\n\r\n // Odebereme vsechny nabizene moznosti naseptavace, tedy vsechny child elementy(li elementy).\r\n this.container.querySelectorAll('*').forEach((element: Element) => { element.remove() });\r\n\r\n // Vytvorime moznosti naseptavace, tedy child elementy(li elementy). A pridame je do containeru(ul elementu).\r\n Object.entries(list).forEach(([key, value]: [string, string]) => {\r\n const liElement = document.createElement('li');\r\n liElement.innerHTML = value;\r\n\r\n this.container.appendChild(liElement);\r\n });\r\n }\r\n\r\n\r\n public removeActiveItem(): void {\r\n if (this.activeItemIndex === null || this.container.children.item(this.activeItemIndex) === null) {\r\n return;\r\n }\r\n\r\n (this.container.children.item(this.activeItemIndex) as HTMLLIElement).classList.remove('activeItem');\r\n this.activeItemIndex = null;\r\n }\r\n\r\n\r\n public setActiveItem(liElement: HTMLLIElement): void {\r\n if (this.activeItemIndex !== null) {\r\n this.removeActiveItem();\r\n }\r\n\r\n this.activeItemIndex = Array.from(this.container.children).indexOf(liElement);\r\n (this.container.children.item(this.activeItemIndex) as HTMLLIElement).classList.add('activeItem');\r\n }\r\n\r\n\r\n public setNextItemAsActive(): void {\r\n // Odebrat class u soucasneho.\r\n if (this.activeItemIndex !== null) {\r\n (this.container.children.item(this.activeItemIndex) as HTMLLIElement).classList.remove('activeItem');\r\n }\r\n\r\n // Nastavime dalsi prvek jako aktivni.\r\n this.activeItemIndex = (this.activeItemIndex !== null && this.activeItemIndex + 1 < this.container.children.length)\r\n ? this.activeItemIndex = this.activeItemIndex + 1\r\n : this.activeItemIndex = 0;\r\n\r\n // Pridat class u dalsiho nyni soucasneho.\r\n (this.container.children.item(this.activeItemIndex) as HTMLLIElement).classList.add('activeItem');\r\n\r\n // Nastavit text search baru aby odpovidal textu aktivniho elementu.\r\n this.userInterface.searchBox.value = (this.container.children.item(this.activeItemIndex) as HTMLLIElement).innerText;\r\n }\r\n\r\n public setPreviousItemAsActive(): void {\r\n // Odebrat class u soucasneho.\r\n if (this.activeItemIndex !== null) {\r\n (this.container.children.item(this.activeItemIndex) as HTMLLIElement).classList.remove('activeItem');\r\n }\r\n\r\n // Nastavime predchozi prvek jako aktivni.\r\n this.activeItemIndex = (this.activeItemIndex !== null && this.activeItemIndex > 0)\r\n ? this.activeItemIndex = this.activeItemIndex - 1\r\n : this.activeItemIndex = this.container.children.length - 1;\r\n\r\n // Pridat class u dalsiho nyni soucasneho.\r\n (this.container.children.item(this.activeItemIndex) as HTMLLIElement).classList.add('activeItem');\r\n\r\n // Nastavit text search baru aby odpovidal textu aktivniho elementu.\r\n this.userInterface.searchBox.value = (this.container.children.item(this.activeItemIndex) as HTMLLIElement).innerText;\r\n }\r\n\r\n public showSuggestionsFor(searchedQuery: string): void {\r\n if (typeof this.shortNamesList === 'undefined') {\r\n const promiseOfShortNamesList = loadShortNamesListAsPromise(\r\n this.phpData.server,\r\n this.phpData.regionId,\r\n this.phpData.locale,\r\n this.phpData.pageSeoString\r\n );\r\n\r\n promiseOfShortNamesList\r\n .then(response => response.json())\r\n .then(data => {\r\n this.shortNamesList = data as string[];\r\n\r\n const suggestionsList = getMatchingNamesWithBoldedSearchedPattern(\r\n this.accentService, searchedQuery, this.shortNamesList\r\n );\r\n\r\n this.setSuggestions(suggestionsList);\r\n });\r\n //.catch(() => {});\r\n } else {\r\n const suggestionsList = getMatchingNamesWithBoldedSearchedPattern(\r\n this.accentService, searchedQuery, this.shortNamesList\r\n );\r\n\r\n this.setSuggestions(suggestionsList);\r\n }\r\n }\r\n\r\n}","import {AccentService} from \"../AccentService/AccentService\";\r\nimport {boldSearchPatterInString} from \"../boldSearchPatterInString/boldSearchPatterInString\";\r\n\r\nexport function getMatchingNames(accentService: AccentService, searchedQuery: string, list: string[]): string[] {\r\n const searchedQueryNormalized = (accentService.normalize(searchedQuery)).toLowerCase();\r\n const matchingItemsList: string[] = [];\r\n\r\n for (const key in list) {\r\n const item = list[key];\r\n const itemNormalized = accentService.normalize(list[key].toLowerCase());\r\n\r\n if (itemNormalized.includes(searchedQueryNormalized)) {\r\n matchingItemsList.push(item);\r\n }\r\n }\r\n\r\n return matchingItemsList;\r\n}\r\n\r\nexport function getMatchingNamesWithBoldedSearchedPattern(accentService: AccentService, searchedQuery: string, list: string[]): string[] {\r\n const searchedQueryNormalized = (accentService.normalize(searchedQuery)).toLowerCase();\r\n const matchingItemsList: string[] = [];\r\n\r\n for (const key in list) {\r\n const item = list[key];\r\n const itemNormalized = accentService.normalize(list[key].toLowerCase());\r\n\r\n if (itemNormalized.includes(searchedQueryNormalized)) {\r\n let itemBolded = boldSearchPatterInString(accentService, searchedQuery, item);\r\n matchingItemsList.push(itemBolded);\r\n }\r\n }\r\n\r\n return matchingItemsList;\r\n}","\r\nexport function loadShortNamesListAsPromise(\r\n server: string,\r\n regionId: string,\r\n locale: string,\r\n pageSeoString: string\r\n): Promise {\r\n const fetchUrl = '/share/epSnow/epSnowGetShortNamesAsJson.php';\r\n const fetchOptions = {\r\n method: 'POST',\r\n mode: 'same-origin',\r\n cache: 'no-cache',\r\n headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n body: JSON.stringify({server: server, regionId: regionId, locale: locale, pageSeoString: pageSeoString})\r\n };\r\n\r\n return fetch(fetchUrl, fetchOptions as RequestInit);\r\n}","\r\nimport {AccentService} from \"../AccentService/AccentService\";\r\n\r\n// ToDo: String.substr je depreciated ale nejde proste nahradit za String.substring protoze druhy argument je jiny.\r\n// Do budoucna by bylo dobre prepsat a napsat automaticke testy.\r\n// Konkretne rozdil je v tom ze:\r\n// String.substr(start, length)\r\n// String.substring(indexStart, indexEnd)\r\n/**\r\n * Prekopiraovana funkce z legacy kodu pro zvyrazneni vyshledavaneho string ve stringu.\r\n * Napriklad:\r\n * $pattern = 'ri', $text = 'Bedřichov' => 'Bedřichov'\r\n */\r\nexport function boldSearchPatterInString(accentService: AccentService, pattern: string, text: string): string {\r\n let text_dia = accentService.normalize(text);\r\n pattern = accentService.normalize(pattern);\r\n pattern = pattern.toLowerCase();\r\n text_dia = text_dia.toLowerCase();\r\n let pattern_length = pattern.length;\r\n let pozice = 0;\r\n let offset_text = 0;\r\n while (text_dia.indexOf(pattern, pozice) !== -1) {\r\n pozice = text_dia.indexOf(pattern, pozice);\r\n let pozice_text = pozice + offset_text;\r\n let pattern_text = text.substr(pozice_text, pattern_length);\r\n let re = new RegExp('('+pattern_text+')', 'i') ;\r\n let sub_text = text.substr(pozice_text);\r\n text = text.substr(0,pozice_text) + sub_text.replace(re,\"$1\");\r\n pozice = pozice + pattern_length;\r\n offset_text += 17;\r\n }\r\n\r\n return text;\r\n}","export function loadSearchTableHtmlAsPromise(\r\n searchedQuery: string,\r\n server : string,\r\n regionId : string,\r\n locale : string,\r\n pageSeoString: string\r\n): Promise {\r\n const fetchUrl = '/share/epSnow/epSnowGetSearchTableHtmlAsJson.php';\r\n\r\n const fetchOptions = {\r\n method: 'POST',\r\n mode: 'same-origin',\r\n cache: 'no-cache',\r\n headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n body: JSON.stringify({\r\n searchedQuery: searchedQuery,\r\n server: server,\r\n regionId: regionId,\r\n locale: locale,\r\n pageSeoString: pageSeoString\r\n })\r\n };\r\n\r\n return fetch(fetchUrl, fetchOptions as RequestInit);\r\n}","import {AppUserInterface} from \"../AppUserInterface/AppUserInterface\";\r\nimport {loadSearchTableHtmlAsPromise} from \"./loadSearchTableHtmlAsPromise\";\r\n\r\nexport function runSearch(\r\n userInterface: AppUserInterface,\r\n server: string,\r\n regionId: string,\r\n locale: string,\r\n pageSeoString: string\r\n): void {\r\n if (userInterface.isSearchRunning || userInterface.searchBox.value.length === 0) {\r\n return;\r\n }\r\n\r\n userInterface.isSearchRunning = true;\r\n\r\n userInterface.searchBox.disabled = true;\r\n userInterface.magnifyingGlassIcon.style.display = 'none';\r\n userInterface.spinnerIcon.style.display = 'block';\r\n\r\n const searchQuery = userInterface.searchBox.value.trim();\r\n const promiseOfSearchedTableHtml = loadSearchTableHtmlAsPromise(searchQuery, server, regionId, locale, pageSeoString);\r\n\r\n promiseOfSearchedTableHtml\r\n .then(response => response.json())\r\n .then(tableHtml => {\r\n userInterface.hideMainSnowTable();\r\n\r\n userInterface.epSnowContainer.insertAdjacentHTML('beforeend', tableHtml);\r\n\r\n (document.querySelector('#btn-na-puvodni') as HTMLSpanElement)\r\n .addEventListener('click', () => {\r\n userInterface.searchBox.disabled = false;\r\n userInterface.searchBox.value = '';\r\n userInterface.magnifyingGlassIcon.style.display = 'block';\r\n userInterface.spinnerIcon.style.display = 'none';\r\n\r\n userInterface.showMainSnowTable();\r\n (document.querySelector('#tabsnihfiltr') as HTMLTableElement).remove();\r\n\r\n userInterface.isSearchRunning = false;\r\n });\r\n })\r\n .catch(() => {\r\n console.log('Searching failed.');\r\n userInterface.isSearchRunning = false;\r\n });\r\n}","import {CommentPopupWindow} from \"../CommentPopupWindow/CommentPopupWindow\";\r\n\r\ncustomElements.define('ep-popup-window', CommentPopupWindow);\r\n\r\nexport function showComment(id: number, name: string, iconElement: HTMLElement) {\r\n\r\n const popupWindowElement = document.createElement('ep-popup-window') as CommentPopupWindow;\r\n const elementAttributes = { id: 'comment-popup', 'data-title': name, 'data-text': 'Komentář se načítá...' };\r\n\r\n Object.entries(elementAttributes).forEach(([attributeName, attributeValue]) => {\r\n popupWindowElement.setAttribute(attributeName, attributeValue);\r\n });\r\n\r\n popupWindowElement.moveNextTo(iconElement);\r\n\r\n (document.querySelector('body') as HTMLBodyElement).prepend(popupWindowElement);\r\n\r\n const fetchUrl = '/share/epSnow/epSnowGetCommentAsJson.php';\r\n const fetchOptions = {\r\n method: 'POST',\r\n mode: 'same-origin',\r\n cache: 'no-cache',\r\n headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },\r\n body: JSON.stringify({id: id}) // body data type must match \"Content-Type\" header\r\n };\r\n\r\n fetch(fetchUrl, fetchOptions as RequestInit)\r\n .then(response => response.json())\r\n .then(commentText => popupWindowElement.setAttribute('text', commentText));\r\n //.catch((error) => console.error('Error:', error));\r\n\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\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})();","/**\r\n * functiontoggleRegionSelection() - Přepíná mezi zobrazením mapy a seznamu regionů.\r\n */\r\nfunction toggleRegionSelection()\r\n{\r\n\tevent.preventDefault();\r\n\r\n\t// Konverze nodeList na Array kvuli podpore IE.\r\n\t//\t\tArray.prototype.slice.call více backwards compatible než Array.from\r\n\tArray.prototype.slice\r\n\t\t.call( document.querySelectorAll('.mapa, .seznam, .vyber-mapa-abeceda, .vyber-abeceda-mapa') )\r\n\t\t.forEach( function (item) {\r\n\t\t\titem.classList.toggle('block-visible');\r\n\t\t});\r\n}\r\n\r\nwindow.toggleRegionSelection = toggleRegionSelection;"],"names":["closeAll","container","document","getElementById","items","getElementsByTagName","i","length","className","documentElement","onclick","window","showHide","e","el","parentNode","cancelBubble","stopPropagation","searchWrapToggleIE","searchIcon","querySelector","searchWrap","isSlideOpen","addEventListener","preventDefault","returnValue","style","display","searchWrapSlideToggle","classList","contains","height","remove","once","add","clientHeight","setTimeout","preventSendingEmptySearchBar","event","target","value","trim","navigator","userAgent","indexOf","r","o","a","c","AccentService","accentMap","string","normalizedString","this","charAt","AppUserInterface","isSearchRunning","epSnowContainer","mainSnowTable","searchBox","magnifyingGlassIcon","spinnerIcon","CommentPopupWindow","t","template","shadow","attachShadow","mode","innerHTML","overlay","titleContainer","textContainer","closeIconContainer","textContent","getAttribute","name","oldValue","newValue","element","rect","getBoundingClientRect","popupWindowContainer","top","scrollY","left","HTMLElement","PhpDataProvider","data","backendData","n","server","regionId","locale","pageSeoString","Error","f","v","y","m","b","SearchWhispererHtmlElement","phpData","userInterface","d","accentService","HTMLLIElement","innerText","hideSuggestions","runSearch","setActiveItem","removeActiveItem","list","showSuggestions","Object","entries","forEach","querySelectorAll","liElement","createElement","appendChild","activeItemIndex","children","item","Array","from","searchedQuery","shortNamesList","loadShortNamesListAsPromise","then","response","json","suggestionsList","getMatchingNamesWithBoldedSearchedPattern","setSuggestions","searchedQueryNormalized","normalize","toLowerCase","matchingItemsList","key","includes","push","itemBolded","boldSearchPatterInString","fetchOptions","method","cache","headers","Accept","body","JSON","stringify","fetch","pattern","text","text_dia","pattern_length","pozice","offset_text","pozice_text","pattern_text","substr","re","RegExp","sub_text","replace","disabled","searchQuery","loadSearchTableHtmlAsPromise","hideMainSnowTable","insertAdjacentHTML","tableHtml","showMainSnowTable","console","log","customElements","define","id","iconElement","popupWindowElement","elementAttributes","attributeName","attributeValue","setAttribute","moveNextTo","prepend","commentText","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","g","globalThis","Function","showComment","searchWhisperer","setPositionUnderSearchBar","code","showSuggestionsFor","setNextItemAsActive","setPreviousItemAsActive","toggleRegionSelection","prototype","slice","call","toggle"],"sourceRoot":""}