{"version":3,"sources":["account.ts","cart.ts","catalog.ts","checkout.ts","common.ts","other.ts","wishlist.ts","site.js","startup.ts"],"names":["Account","Cart","Catalog","Checkout","Common","Other","WishList","Init","$","document","on","Update","ForgotPassword","ChangePassword","ResetPassword","formValidate","Register","e","which","click","focusout","email","this","val","ajax","type","url","data","success","response","Result","showCheckEmailMessageBox","Message","LoginCaption","ResetPasswordCaption","Back","Caption","formName","form","serialize","headers","RequestVerificationToken","toString","dataType","showMessage","showMessageBox","replace","error","xhr","ajaxOptions","thrownError","console","log","status","removeClass","jQuery","length","checked","NeedActivation","showActivateAccountMessageBox","window","location","href","grecaptcha","reset","value","Login","returnUrl","URI","path","html","replaceWith","filter","alert","URLSearchParams","search","get","_url","showResetPasswordMessageBox","ReturnUrl","SendConfirmationEmail","AddToCart","productID","amount","RefreshCartInfo","reload","scrollTo","showAddToCartMessageBox","RemoveFromCart","id","refreshDropdown","refreshCartWidget","customNumber","RefreshCartInfoPartial","find","async","beforeSend","addClass","cnt","text","ShowCountDown","SetSazimeCesko","countDownDate","Date","attr","getTime","countDown","now","distance","hours","Math","floor","minutes","seconds","sTime","toLocaleString","minimumIntegerDigits","minimumFractionDigits","useGrouping","clearInterval","cartCountDownInterval","setInterval","undefined","createTile","SazimeCeskoAddToCart","options","loop","rewind","trigger","AddVoucherToCart","voucher","UpdateCart","updateOnly","add","cartID","SetTooltip","placement","each","index","popover","ResetFilter","_ord","_kat","hasQuery","query","kat","order","addQuery","SetURL","empty","IsMobileViewPort","CloseFilter","GetProductsAsync","GetFilterAsync","GetPriceSliderAsync","ScrollToTop","event","preventDefault","AutocompleteSearchSetup","easyAutocomplete","GetAutocompleteSearchOpt","append","_path","_query","_accept","Promise","resolve","webP","Image","onload","height","onerror","src","then","supported","routa","view","Accept","complete","GetProducts","_proc","getElementById","noUiSlider","updateOptions","start","range","min","max","GetPriceSlider","SetCheckBox","i","element","collapse","openedClass","closest","item","content","children","itemParents","parents","slice","css","is","startHeight","endHeight","originalEvent","propertyName","input","list","items","toArray","map","ps","PerfectScrollbar","wheelSpeed","wheelPropagation","results","matched","toLowerCase","indexOf","toggleClass","update","GetFilter","GetHTMLAsync","_bread","parseHTML","GetHTML","GetTagsAsync","GetTags","animate","scrollTop","offset","top","GetFilterJSON","_prop","removeQuery","properties","_chk","_val","_item","x","PropID","HodnID","Hodnota","hidden","not","prop","matchMedia","matches","body","blockSidebar","history","pushState","valueOf","searchField","searchForm","getValue","Nazev","ajaxSettings","method","preparePostData","template","dostupnost","Soubor","dostupnostText","formatCurrency","Celkem","Symbol","maxNumberOfElements","match","enabled","onChooseEvent","desc","getSelectedItemData","URL","submit","minCharNumber","requestDelay","GetCategMobileMenu","touchClick","elements","callback","touchStartData","onTouchstart","touches","target","currentTarget","touch","changedTouches","timestamp","onTouchEnd","identity","abs","sqrt","pow","screenX","screenY","off","preventTouchClick","onClick","removeEventListener","addEventListener","setTimeout","imgWidth","imgHeight","outerWidth","outerHeight","ratio","parseInt","newHeight","key","parent","change","_pg","page","mobileMedia","bodyWidth","width","OpenFilter","CMenu","container","currentItem","onMouseenter","bind","onMouseleave","onTouchClick","prototype","targetItem","unsetCurrentItem","setCurrentItem","hasSubmenu","openSubmenu","closeSubmenu","getSubmenu","submenu","menuTop","itemTop","viewportHeight","innerHeight","paddingY","maxHeight","submenuHeight","position","left","innerWidth","submenuInstance","CDepartments","self","linksWrapper","button","mode","fixedBy","fixedHeight","onButtonClick","onGlobalClick","close","open","setMode","closeImmediately","documentHeight","documentElement","clientHeight","paddingBottom","contentRect","getBoundingClientRect","hasClass","submenuTop","containerTop","departmentsElement","loadMenu","GetCategMenu","onpopstate","state","IsCatalog","from","to","slider","querySelector","create","connect","step","direction","format","wNumb","decimals","thousand","titleValues","values","handle","innerHTML","unencoded","isTap","positions","IsDetail","dataLayer","itemID","entry","ecommerce","item_id","categID","item_categoryID","zboziID","kategorieID","layout","margin","nav","dots","stagePadding","rtl","layoutOptions","responsive","horizontal","owl","cancelPreviousTabChange","owlOptions","extend","test","mobileResponsiveOptions","parseFloat","owlCarousel","block","timer","itemsArray","newItemsArray","randomIndex","random","randomItem","splice","push","clearTimeout","GetPodobne","baguetteBox","run","buttons","cookie","PageLink","DeleteFilterTag","remove","orderInfo","delivery","payment","cart","cartProducts","cartSales","totalSum","currencySymbol","constructor","isNaN","SetPaymentMethods","idZpDoruc","SetCheckoutProducts","SetOrderSum","GetSelectedDelivery","personalDelivery","idPobocka","parcelID","parcelNazev","parcelJSON","o","innerText","saveFormData","saveFormToSessionStorage","sessionStorage","setItem","loadFormData","loadFormFromSessionStorage","getItem","elem","checkPersonalDelivery","show","hide","toggle","GetParcelJSON","nazev","ulice","misto","psc","stat","parcel","JSON","stringify","nextElement","formElements","Array","querySelectorAll","currentIndex","AllowGuestCheckout","showCheckEmailAllowGuestMessageBox","focus","SetDeliveryMethods","CreateOrder","SelectBranchWidget","itemsCount","disabled","idStat","idPayment","GetSelectedPayment","AfterDeliveryMethodSelect","AfterPaymentMethodSelect","useDeliveryAddress","chciZadatFaktUdaje","form1Valid","checkedTerms1","checkedTerms2","checkedHeureka","fa","serializeArray","reduce","acc","f","name","da","polozky","parse","model","UseDodaci","ChciZadatFaktUdaje","DoruceniID","PobockaID","ParcelID","ParcelNazev","ParcelJSON","PlatbaID","IC","DIC","Fakturacni_adresa","Dodaci_adresa","Poznamka","HeurekaNo","Polozky","contentType","redirectPost","scrollIntoView","typ","countryCode","h","Packeta","Widget","pick","point","parcelName","place","nameStreet","street","city","zip","country","setAttribute","messageHandler","message","swal","address","municipality_name","showParcelWidget","dpdWidget","contactInfo","pickupPointResult","isTrusted","zipCode","parcelshop","detail","pclshopid","zipcode","ctrcode","toUpperCase","msg","icon","timeout","fire","toast","showConfirmButton","timerProgressBar","Swal","title","showCancelButton","showCloseButton","grow","didOpen","showLoading","swalTitle","getTitle","style","display","hideLoading","toCartCaption","toBackCaption","confirmButtonText","cancelButtonText","reverseButtons","buttonsStyling","customClass","confirmButton","cancelButton","result","retunUrl","toLoginCaption","toResetPasswordCaption","showDenyButton","denyButtonText","denyButton","isConfirmed","isDenied","actions","justifyContent","flexWrap","textAlign","marginTop","AddURLParam","RemoveURLParam","RemoveQueryString","uri","clean_uri","substring","replaceState","valid","validate","errorList","createElement","appendChild","action","suffix","Intl","NumberFormat","currency","statusText","SendContactForm","SetCookieConsent","cookieconsent","initCookieConsent","current_lang","page_scripts","autorun","delay","autoclear_cookies","gui_options","consent_modal","transition","settings_modal","onAccept","cookies","allowedCategory","consentType","languages","cs","description","primary_btn","role","secondary_btn","save_settings_btn","accept_all_btn","reject_all_btn","close_btn_label","blocks","readonly","validCookie","RefreshWishList","refreshWishListWidget","Pocet","RemoveFromWishList","AddToWishList","pathname"],"mappings":"AAAA,IAAUA,QCAAC,KCAAC,QCAAC,SCAAC,OCAAC,MCAAC,UNAV,SAAUN,GACUA,EAAAO,KAAhB,WACIC,EAAEC,UAAUC,GAAG,QAAS,4BAA4B,WAAcV,EAAQW,OAAO,QAASH,EAAE,UAAW,kCAAoC,IAC3IA,EAAEC,UAAUC,GAAG,QAAS,4BAA4B,WAAcV,EAAQW,OAAO,QAASH,EAAE,UAAW,mCAAqC,IAC5IA,EAAEC,UAAUC,GAAG,QAAS,4BAA4B,WAAcV,EAAQW,OAAO,QAASH,EAAE,UAAW,oCAAsC,IAC7IA,EAAEC,UAAUC,GAAG,QAAS,wBAAwB,WAAcV,EAAQY,eAAe,oBAAsB,IAC3GJ,EAAEC,UAAUC,GAAG,QAAS,sBAAsB,WAAcV,EAAQa,eAAe,oBAAsB,IACzGL,EAAEC,UAAUC,GAAG,QAAS,qBAAqB,WAAcV,EAAQc,cAAc,mBAAqB,IACtGN,EAAEC,UAAUC,GAAG,SAAU,sBAAsB,WAAmBN,OAAOW,aAAa,oBAA8B,IAEpHP,EAAEC,UAAUC,GAAG,QAAS,iBAAiB,WAAcV,EAAQgB,UAAY,IAC3ER,EAAEC,UAAUC,GAAG,WAAY,oCAAoC,SAAUO,GACtD,IAAXA,EAAEC,OACFV,EAAE,4BAA4BW,OAEtC,IACAX,EAAEC,UAAUC,GAAG,WAAY,mIAAmI,SAAUO,GACrJ,IAAXA,EAAEC,OACFlB,EAAQa,eAAe,oBAE/B,IACAL,EAAE,qCAAqCY,UAAS,SAAUH,GACtD,IAAII,EAAQb,EAAEc,MAAMC,MACpBf,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,uBACLC,KAAM,CAAEN,MAASA,GACjBO,QAAS,SAAUC,GACQ,GAAnBA,EAASC,QACT1B,OAAO2B,yBAAyBF,EAASG,QAASH,EAASI,aAAcJ,EAASK,qBAAsBL,EAASM,KAAMN,EAASO,QAASf,EAEjJ,GAER,GACJ,EAEgBrB,EAAAW,OAAhB,SAAuB0B,EAAUC,EAAMZ,GAC9BtB,OAAOW,aAAasB,KAEzB7B,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAKA,EACLC,KAAMW,EAAKC,YACXC,QAAS,CAAEC,yBAA4BjC,EAAE,IAAM6B,EAAW,6CAA6Cd,MAAMmB,YAC7GC,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT1B,OAAOwC,YAAYf,EAASG,QAAS,UAAW,KAGhD5B,OAAOyC,eAAehB,EAASG,QAAQU,WAAWI,QAAQ,KAAM,QAAS,UAEjF,EACAC,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OAAQ,QAC5B,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,iBAClC,EAEgBtD,EAAAgB,SAAhB,WACI,IAAIqB,EAAW,oBACVjC,OAAOW,aAAasB,KACHkB,OAAO,iBAAiBC,OAAS,GAAOD,OAAO,iBAAiB,GAAwBE,SAM9GjD,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,YACLC,KAAMnB,EAAE,IAAM6B,GAAUE,YACxBC,QAAS,CAAEC,yBAA4BjC,EAAE,IAAM6B,EAAW,6CAA6Cd,MAAMmB,YAC7GC,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACsB,GAA3BD,EAAS6B,eACTtD,OAAOuD,8BAA8B9B,EAASG,QAAQU,YAEtDkB,OAAOC,SAASC,KAAO,IAI3B1D,OAAOyC,eAAehB,EAASG,QAAQU,WAAWI,QAAQ,KAAM,QAAS,UAEjF,EACAC,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,iBAC7BM,OAAeG,WAAWC,SA3BvB5D,OAAOyC,eAAgBU,OAAO,gBAAgB,GAAwBU,MAAO,WA4BrF,EAEgBjE,EAAAkE,MAAhB,SAAsBC,GAEb/D,OAAOW,aADG,aAEfP,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,oBAAsByC,EAC3BxC,KAAMnB,EAAE,aAAa+B,YACrBC,QAAS,CAAEC,yBAA4BjC,EAAE,sDAA2De,MAAMmB,YAC1Gd,QAAS,SAAUC,GACf,GAAuB,GAAnBA,EAASC,OACT1B,OAAOyC,eAAehB,EAASG,QAAQU,WAAWI,QAAQ,KAAM,QAAS,gBACtE,GAAuB,GAAnBjB,EAASC,OAAgB,CAGZ,UAFT,IAAIsC,IAAIR,OAAOC,SAASC,MAEzBO,QAA4C,GAApBF,EAAUX,OAExCI,OAAOC,SAASC,KAAO,IAGvBF,OAAOC,SAASC,KAAOK,COI/B,KPFO,CACH,IAAIG,EAAO9D,EAAEqB,GACbrB,EAAE,UAAU+D,YAAYD,EAAKE,OAAO,UOIxC,CPFJ,EACAzB,MAAO,SAAUC,GACbyB,MAAMzB,EAAIK,QACVF,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EAEgBrD,EAAAY,eAAhB,SAA+ByB,GAC3B,GAAKjC,OAAOW,aAAasB,GAAzB,CACA,IAAI8B,EAAY,IAAKO,gBAAgBd,OAAOC,SAASc,QAASC,IAAI,aAC9DC,EAAO,mBACM,MAAbV,IAAmBU,EAAO,8BAAgCV,GAE9D3D,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAKmD,EACLlD,KAAMnB,EAAE,IAAM6B,GAAUE,YACxBX,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT1B,OAAOyC,eAAehB,EAASG,QAAS,WAGxC5B,OAAOyC,eAAehB,EAASG,QAAS,UAEhD,EACAe,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,gBArBM,CAsBxC,EAEgBtD,EAAAa,eAAhB,SAA+BwB,GACtBjC,OAAOW,aAAasB,KAEzB7B,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,mBACLc,QAAS,CAAEC,yBAA4BjC,EAAE,IAAM6B,EAAW,6CAA6Cd,MAAMmB,YAC7Gf,KAAMnB,EAAE,IAAM6B,GAAUE,YACxBX,QAAS,SAAUC,GACQ,GAAnBA,EAASC,QACTtB,EAAE,4BAA4Be,IAAI,IAClCf,EAAE,wBAAwBe,IAAI,IAC9Bf,EAAE,4BAA4Be,IAAI,IAClCnB,OAAOyC,eAAehB,EAASG,QAAS,YAGxC5B,OAAOyC,eAAehB,EAASG,QAAS,UAEhD,EACAe,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,iBAClC,EAEgBtD,EAAAc,cAAhB,SAA8BuB,GACrBjC,OAAOW,aAAasB,KAEzB7B,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,kBACLc,QAAS,CAAEC,yBAA4BjC,EAAE,IAAM6B,EAAW,6CAA6Cd,MAAMmB,YAC7Gf,KAAMnB,EAAE,IAAM6B,GAAUE,YACxBX,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT1B,OAAO0E,4BAA4BjD,EAASG,QAAS,UAAWH,EAASkD,WAGzE3E,OAAO0E,4BAA4BjD,EAASG,QAAS,UAAU,GAEvE,EACAe,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,iBAClC,EAEgBtD,EAAAgF,sBAAhB,SAAsC3C,GAC7BjC,OAAOW,aAAasB,KACzB7B,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,mBACLc,QAAS,CAAEC,yBAA4BjC,EAAE,IAAM6B,EAAW,6CAA6Cd,MAAMmB,YAC7Gf,KAAMnB,EAAE,IAAM6B,GAAUE,YACxBX,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT1B,OAAOyC,eAAehB,EAASG,QAAS,WAGxC5B,OAAOyC,eAAehB,EAASG,QAAS,UAEhD,EACAe,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,iBAClC,CACH,CA/ND,CAAUtD,UAAAA,QAAO,CAAA,ICAjB,SAAUC,GA4BN,SAAgBgF,EAAUC,EAAWC,GACjC3E,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,aACLC,KAAM,CAAGuD,UAAaA,EAAWC,OAAUA,GAC3CvD,QAAS,SAAUC,GACQ,iBAAZA,GACPzB,OAAOyC,eAAehB,EAASG,QAAS,QACxCoD,KAEwB,iBAAZvD,IACRrB,EAAE,SAASgD,OAAS,GACpBI,OAAOC,SAASwB,SAChBzB,OAAO0B,SAAS,EAAG,KAEnBlF,OAAOmF,wBAAwB1D,EAAUrB,EAAEqB,GAAUF,KAAK,iBAAkBnB,EAAEqB,GAAUF,KAAK,kBAC7FyD,KAGZ,EACArC,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAER,CAuCA,SAAgBmC,EAAeC,GAC3BjF,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,kBACLC,KAAM,CAAE8D,GAAMA,GACd9C,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,SACJtB,EAAE,oBAAoBgD,OAAS,GAAOhD,EAAE,SAASgD,OAAS,IAC3DI,OAAOC,SAASwB,SAEpBD,GAAgB,GAChBhF,OAAOwC,YAAYf,EAASG,QAAS,OAAQ,MAG7C5B,OAAOyC,eAAehB,EAASG,QAAS,QAChD,EACAe,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAER,CAEA,SAAgB+B,EAAgBM,GAAkB,GAC9CC,EAAkBD,GACdlF,EAAE,SAASgD,OAAS,GACpBhD,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,qBACLE,QAAS,SAAUC,GACf,IAAIyC,EAAO9D,EAAEqB,GACbrB,EAAE,eAAe+D,YAAYD,EAAKE,OAAO,gBACxCZ,OAAepD,EAAE,iBAAiBoF,cACvC,EACA7C,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAIZ,CACA,SAAgBwC,EAAuBH,GAAkB,GACrDC,EAAkBD,GACdlF,EAAE,SAASgD,OAAS,GACpBhD,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,qBACLE,QAAS,SAAUC,GACf,IAAIyC,EAAO9D,EAAEqB,GACbrB,EAAE,2BAA2B+D,YAAYD,EAAKwB,KAAK,4BACnDtF,EAAE,iBAAiB+D,YAAYD,EAAKwB,KAAK,kBACxClC,OAAepD,EAAE,iBAAiBoF,cACvC,EACA7C,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAGZ,CAEA,SAAgBsC,EAAkBD,GAAkB,GAChDlF,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,gCAAkCgE,EACvCK,OAAO,EACPC,WAAY,WAAcxF,EAAE,8BAA8ByF,SAAS,cAAgB,EACnFrE,QAAS,SAAUC,GACf,IAAIyC,EAAO9D,EAAEqB,GACTqE,EAAM5B,EAAKwB,KAAK,qBACpBtF,EAAE,gCAAgC+D,YAAYD,EAAKwB,KAAK,sBACpDJ,GAAiBlF,EAAE,8BAA8B+D,YAAYD,EAAKwB,KAAK,oBAC3EtF,EAAE,uCAAuC8D,KAAK4B,EAAIC,OACtD,EACApD,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAER,CAEA,SAAgB+C,IACZC,IACA,IAAIC,EAAwB,IAAIC,KAAK/F,EAAE,+BAA+BgG,KAAK,YAAYC,UACvF,GAAKH,EAAL,CAEA,IAAII,EAAY,WACZ,IAAIC,GAAM,IAAIJ,MAAOE,UACjBG,EAAWN,EAAgBK,EAC3BE,EAAQC,KAAKC,MAAOH,EAAW,MAAyB,MACxDI,EAAUF,KAAKC,MAAOH,EAAW,KAAoB,KACrDK,EAAUH,KAAKC,MAAOH,EAAW,IAAe,KACpD,GAAIA,EAAW,EAAG,CACd,IAAIM,EAAQF,EAAQG,eAAe,KAAM,CAAEC,qBAAsB,EAAGC,sBAAuB,EAAGC,aAAa,IAAW,IAAML,EAAQE,eAAe,KAAM,CAAEC,qBAAsB,EAAGC,sBAAuB,EAAGC,aAAa,IACvNT,EAAQ,IACRK,EAAQL,EAAMM,eAAe,KAAM,CAAEC,qBAAsB,EAAGC,sBAAuB,EAAGC,aAAa,IAAW,IAAMJ,GAE1H1G,EAAE,mBAAmB8D,KAAK4C,EM0O9B,MNvOIK,cAActH,EAAAuH,uBACdhH,EAAE,mBAAmB8D,KAAK,SAC1BV,OAAOC,SAASwB,SAEpBgB,GACJ,EAEAK,IAEIzG,EAAAuH,sBAAwB,IACxBvH,EAAAuH,sBAAwBC,YAAYf,EAAW,KA1B/B,CA6BxB,CAeA,SAASL,IACoC,GAArC9C,OAAO,oBAAoBC,SAC3BD,OAAO,mBAAmBC,OAAS,EAClCD,OAAO,mBAAmB,GAAwBE,QAA8DiE,MAAnDnE,OAAO,oBAAoBiD,KAAK,gBACxF5C,OAAe+D,aAC7B,CA7NW1H,EAAAuH,uBAAyB,EAEpBvH,EAAAM,KAAhB,WACIC,EAAEC,UAAUC,GAAG,QAAS,wCAAwC,WAAcT,EAAKuF,eAAehF,EAAEc,MAAMK,KAAK,MAAQ,IACvHnB,EAAEC,UAAUC,GAAG,QAAS,iDAAiD,WAAcT,EAAKuF,eAAehF,EAAEc,MAAMK,KAAK,MAAQ,IAChInB,EAAEC,UAAUC,GAAG,QAAS,mDAAmD,WAAcT,EAAKgF,UAAUzE,EAAEc,MAAMK,KAAK,MAAOnB,EAAEc,MAAMK,KAAK,UAAY,IACrJnB,EAAEC,UAAUC,GAAG,QAAS,6BAA6B,WAAcT,EAAKgF,UAAUzE,EAAEc,MAAMK,KAAK,MAAOnB,EAAEc,MAAMK,KAAK,UAAY,IAE/HnB,EAAEC,UAAUC,GAAG,QAAS,mBAAmB,WACvCT,EAAK2H,qBAAsBrE,OAAO,mBAAmB,GAAwBE,QACjF,IACAjD,EAAEC,UAAUC,GAAG,QAAS,kCAAkC,WAAcT,EAAK0F,mBAAkB,EAAO,IACtGnF,EAAEC,UAAUC,GAAG,QAAS,oCAAoC,WAAcT,EAAKuF,eAAehF,EAAEc,MAAMK,KAAK,MAAQ,IACnHnB,EAAEC,UAAUC,GAAG,WAAY,4BAA4B,SAAUO,GAC9C,IAAXA,EAAEC,OACFV,EAAE,6BAA6BW,OAEvC,IAEIX,EAAE,iBAAiBgD,OAAS,IAC5BhD,EAAE,iBAAiBmB,KAAK,gBAAgBkG,QAAQC,MAAO,EACvDtH,EAAE,iBAAiBmB,KAAK,gBAAgBkG,QAAQE,QAAS,EACzDvH,EAAE,iBAAiBwH,QAAQ,yBAE/B5B,GACJ,EAEgBnG,EAAAgF,UAASA,EA0BThF,EAAAgI,iBAAhB,SAAiCC,GAC7B1H,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,oBACLC,KAAM,CAAGuG,QAAWA,GACpBvF,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,QACT1B,OAAOwC,YAAYf,EAASG,QAAS,UAAW,MAChDoD,KAEChF,OAAOyC,eAAehB,EAASG,QAAS,UACjD,EACAe,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EAEgBpD,EAAAkI,WAAhB,SAA2BjD,EAAWC,GAClC3E,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,aACLC,KAAM,CAAGuD,UAAaA,EAAWC,OAAUA,EAAQiD,YAAc,GACjEzF,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT+D,IAECzF,OAAOyC,eAAehB,EAASG,QAAS,OACjD,EACAe,MAAO,SAAUC,GACbG,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EAEgBpD,EAAAuF,eAAcA,EAuBdvF,EAAAmF,gBAAeA,EAkBfnF,EAAA4F,uBAAsBA,EAmBtB5F,EAAA0F,kBAAiBA,EAmBjB1F,EAAAmG,cAAaA,EAiCbnG,EAAA2H,qBAAhB,SAAqCS,GACjC,GAAwC,GAApC9E,OAAO,mBAAmBC,OAA9B,CAEA,IAAI0B,EAAY1E,EAAE,oBAAoBmB,KAAK,cAE3C,IAAY,IAAR0G,EAAgBpD,EAAUC,EAAW,OACpC,CACD,IAAIoD,EAAS9H,EAAE,qBAAuB0E,EAAY,MAAMsB,KAAK,WAC7DrD,QAAQC,IAAI8B,GACZ/B,QAAQC,IAAIkF,GACZ9C,EAAe8C,EMyOnB,CNlP2C,CAW/C,CAQH,CA/ND,CAAUrI,OAAAA,KAAI,CAAA,ICAd,SAAUC,GAqKN,SAAgBqI,EAAW9C,EAAY+C,GACgB,GAA9C5E,OAAepD,EAAE,mBAAmBgD,QAExCI,OAAepD,EAAE,iBAAmBiF,EAAK,MAAMgD,MAAK,SAAUC,EAAOzE,GACjEL,OAAepD,EAAEc,MAAMqH,QAAQ,CAC5BrE,MAAM,EACN0D,QAAS,QACTQ,UAAWA,GAGnB,GACJ,CA2CA,SAAgBI,IACZ,IAAIC,EAAO,GACPC,EAAO,GACPpH,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,OACN,IAAxBpC,EAAIqH,SAAS,SACbD,EAAOpH,EAAIsH,OAAM,GAAMC,IAAIvG,aAED,IAA1BhB,EAAIqH,SAAS,WACbF,EAAOnH,EAAIsH,OAAM,GAAME,MAAMxG,YAGjChB,EAAIiD,OAAO,IACPmE,EAAKtF,OAAS,GAAK9B,EAAIyH,SAAS,MAAOL,GACvCD,EAAKrF,OAAS,GAAK9B,EAAIyH,SAAS,QAASN,GAC7CO,EAAO1H,GAEPlB,EAAE,oBAAoB6I,QAElBC,KACAC,IAEJC,GAAiB,GACZF,MACDG,IACAC,KAEJC,IACAC,MAAMC,gBACV,CAEA,SAAgBC,IACXlG,OAAepD,EAAE,eAAeuJ,iBAAiBC,EAAyB,YAC1EpG,OAAepD,EAAE,qBAAqBuJ,iBAAiBC,EAAyB,WAEjFxJ,EAAEC,UAAUC,GAAG,QAAS,QAAQ,WACxBF,EAAE,kCACFA,EAAE,gCAAgCwH,QAAQ,QAC1CxH,EAAE,gCAAgCwH,QAAQ,YAElD,GACJ,CA8EAjC,eAAeyD,EAAiBS,GAC5B,aAGJ,SAAqBA,GACjB,IACIzJ,EAAE,WAAWyF,SAAS,WAEtB,IAAIpB,EAAO,IAAIT,IAAIR,OAAOC,SAASC,MAC/BoG,EAAQrF,EAAKR,OAAOvB,QAAQ,IAAK,IACjCqH,EAAStF,EAAKmE,QAUdoB,EAAU,4BAIH,IAAIC,SAAkBC,IACzB,IAAIC,EAAO,IAAIC,MACfD,EAAKE,OAAS,IAAMH,EAAwB,IAAhBC,EAAKG,QACjCH,EAAKI,QAAU,IAAML,GAAQ,GAC7BC,EAAKK,IAAM,2GAA2G,IAI/GC,MAAMC,IACkE,IAGvFtK,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,cACLC,KAAM,CAAEoJ,MAASb,EAAOlB,MAASmB,EAAQa,KAAQ,SACjDxI,QAAS,CACLyI,OAAQb,GAEZxI,QAAS,SAAUC,GACf,IAAIyC,EAAO9D,EAAEqB,GACToI,EACAzJ,EAAE,wBAAwByJ,OAAO3F,EAAKwB,KAAK,wBAAwBxB,QAEnE9D,EAAE,wBAAwB+D,YAAYD,EAAKwB,KAAK,yBAEpDtF,EAAE,eAAe+D,YAAYD,EAAKwB,KAAK,eAC3C,EACA/C,MAAO,SAAUC,EAAKC,EAAaC,GAEnC,EACAgI,SAAU,WACN1K,EAAE,WAAW8C,YAAY,UAC7B,GK+YR,CL7YE,MAAOrC,GACL,MAAMA,CK+YV,CL7YJ,CA7DiBkK,CAAYlB,EAC7B,CA8DAlE,eAAe2D,IACX,aAGJ,WACI,IACI,IAAI7E,EAAO,IAAIT,IAAIR,OAAOC,SAASC,MAC/BoG,EAAQrF,EAAKR,OAAOvB,QAAQ,IAAK,IACjCqH,EAAStF,EAAKmE,QAElBxI,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,cACLC,KAAM,CAAEoJ,MAASb,EAAOlB,MAASmB,EAAQa,KAAQ,SACjDpJ,QAAS,SAAUC,GACf,MAAMuJ,EAAQ5K,EAAEqB,GAAUiE,KAAK,kBAC/B,GAAIsF,EAAMzJ,KAAK,QAAUyJ,EAAMzJ,KAAK,OAAQ,CACxBlB,SAAS4K,eAAe,gBACvBC,WAAWC,cAAc,CACtCC,MAAO,CAACJ,EAAMzJ,KAAK,QAASyJ,EAAMzJ,KAAK,OACvC8J,MAAO,CACHC,IAAON,EAAMzJ,KAAK,OAClBgK,IAAOP,EAAMzJ,KAAK,SK8Y9B,CL1YJ,EACAoB,MAAO,SAAUC,EAAKC,EAAaC,GAC/B9C,OAAOwC,YAAYI,EAAIK,OAAQ,QACnC,GK6YR,CL3YE,MAAOpC,GACL,MAAMA,CK6YV,CL3YJ,CAjCiB2K,EACjB,CAkCA7F,eAAe0D,IACX,aAGJ,WACI,IACI,IAAI5E,EAAO,IAAIT,IAAIR,OAAOC,SAASC,MAC/BoG,EAAQrF,EAAKR,OAAOvB,QAAQ,IAAK,IACjCqH,EAAStF,EAAKmE,QAElBxI,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,cACLC,KAAM,CAAEoJ,MAASb,EAAOlB,MAASmB,EAAQa,KAAQ,UACjDpJ,QAAS,SAAUC,GACf,IAAIyC,EAAO9D,EAAEqB,GACbrB,EAAE,sBAAsB+D,YAAYD,GAuGhDuH,IAEArL,EAAE,mBAAmBiI,MAAK,SAAUqD,EAAGC,GACnC,MAAMC,EAAWD,EAEjBvL,EAAE,wCAAyCwL,GAAUtL,GAAG,SAAS,WAC7D,MAAMuL,EAAczL,EAAEc,MAAM4K,QAAQ,gCAAgCvK,KAAK,yBACnEwK,EAAO3L,EAAEc,MAAM4K,QAAQ,wBACvBE,EAAUD,EAAKE,SAAS,2BACxBC,EAAcH,EAAKI,UAIzB,GAFAD,EAAYE,MAAM,EAAGF,EAAY5D,MAAMsD,GAAY,GAAGxH,OAAO,wBAAwBiI,IAAI,SAAU,IAE/FN,EAAKO,GAAG,IAAMT,GAAc,CAC5B,MAAMU,EAAcP,EAAQ1B,SAE5B0B,EAAQK,IAAI,SAAUE,EAAc,MACpCR,EAAK7I,YAAY2I,GAEjBG,EAAQ1B,SACR0B,EAAQK,IAAI,SAAU,GK0X1B,KLzXO,CACH,MAAME,EAAcP,EAAQ1B,SAE5ByB,EAAKlG,SAASgG,GAEd,MAAMW,EAAYR,EAAQ1B,SAE1B0B,EAAQK,IAAI,SAAUE,EAAc,MACpCP,EAAQ1B,SACR0B,EAAQK,IAAI,SAAUG,EAAY,KKwXtC,CLrXApM,EAAE,0BAA2BwL,GAAUtL,GAAG,iBAAiB,SAAUkJ,GACf,WAA7CA,EAAMiD,cAAsBC,cAC7BtM,EAAEc,MAAMmL,IAAI,SAAU,GAE9B,GACJ,GAEJ,IAEAjM,EAAE,4BAA4BiI,MAAK,WAC/B,MAAMjE,EAAShE,EAAEc,MACXyL,EAAQvI,EAAOsB,KAAK,8BACpBkH,EAAOxI,EAAOsB,KAAK,sBACnBmH,EAAQzI,EAAOsB,KAAK,sBAAsBoH,UAAUC,KAAI,SAAUhB,GAAQ,OAAO3L,EAAE2L,EAAO,IAC1FiB,EAAK,IAAKxJ,OAAeyJ,iBAAiBL,EAAK,GAAI,CACrDM,WAAY,IACZC,kBAAkB,IAGtBR,EAAMrM,GAAG,SAAS,WACd,MAAM8M,EAAUP,EAAMzI,QAAO,SAAU2H,GACnC,MACMsB,GAAuE,IAD3DtB,EAAKxK,KAAK,gBAAgBe,WAAWgL,cAC7BC,QAAQZ,EAAMxL,MAAMmB,WAAWgL,eAIzD,OAFAvB,EAAKyB,YAAY,kCAAmCH,GAE7CA,CACX,IAEAjJ,EAAOoJ,YAAY,0BAA8C,IAAnBJ,EAAQhK,QAEtD4J,EAAGS,QACP,GACJ,GAvKQ,EACA9K,MAAO,SAAUC,EAAKC,EAAaC,GAC/B9C,OAAOwC,YAAYI,EAAIK,OAAQ,QACnC,GK2YR,CLzYE,MAAOpC,GACL,MAAMA,CK2YV,CLzYJ,CAzBiB6M,EACjB,CA0BA/H,eAAegI,IACX,aAGJ,WACI,IACI,IAAIlJ,EAAO,IAAIT,IAAIR,OAAOC,SAASC,MAC/BoG,EAAQrF,EAAKR,OAAOvB,QAAQ,IAAK,IACjCqH,EAAStF,EAAKmE,QAElBxI,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,cACLC,KAAM,CAAEoJ,MAASb,EAAOlB,MAASmB,EAAQa,KAAQ,OAAQtJ,IAAOmD,EAAKnC,YACrEd,QAAS,SAAUC,GACf,IAAImM,EAASxN,EAAEA,EAAEyN,UAAUpM,IAAW2C,OAAO,gBAAgBF,OAC/CoD,MAAVsG,GAAqBxN,EAAE,gBAAgB8D,KAAK0J,GAEhDxN,EAAE,iBAAiB6I,QACnB7I,EAAE,iBAAiByJ,OAAOzJ,EAAEqB,GAAU2C,OAAO,aAC7ChE,EAAE,iBAAiByJ,OAAOzJ,EAAEqB,GAAU2C,OAAO,aACjD,EACAzB,MAAO,SAAUC,EAAKC,EAAaC,GAC/B9C,OAAOwC,YAAYI,EAAIK,OAAQ,QACnC,GKyYR,CLvYE,MAAOpC,GACL,MAAMA,CKyYV,CLvYJ,CA5BiBiN,EACjB,CA6BAnI,eAAeoI,IACX,aAGJ,WACI,IACI,IACIhE,EADO,IAAI/F,IAAIR,OAAOC,SAASC,MACjBkF,QAElBxI,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,cACLC,KAAM,CAAEqH,MAASmB,EAAQa,KAAQ,QACjCpJ,QAAS,SAAUC,GACfrB,EAAE,oBAAoB8D,KAAKzC,EAC/B,EACAkB,MAAO,SAAUC,EAAKC,EAAaC,GAEnC,GKsYR,CLpYE,MAAOjC,GACL,MAAMA,CKsYV,CLpYJ,CAtBiBmN,EACjB,CAiDA,SAASzE,IAELnJ,EAAE,cAAc6N,QAAQ,CACpBC,UAAW9N,EAAE,gBAAgB+N,SAASC,IAAM,IAC7C,EACP,CAyEA,SAASC,IACL,IACI,IAAIC,EAAQlO,EAAE,aAAamB,KAAK,SAC5BkD,EAAO,IAAIT,IAAIR,OAAOC,SAASC,MAAM6K,YAAY,QACjDzE,EAAQrF,EAAKR,OAAOvB,QAAQ,IAAK,IACjCqH,EAAStF,EAAKmE,QAElBxI,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,iBACLC,KAAM,CAAEiN,WAAcF,EAAO3D,MAASb,EAAOlB,MAASmB,GACtDvI,QAAS,SAAUC,GACfrB,EAAE,sBAAsBiI,MAAK,SAAUqD,EAAGC,GACtC,IAAI8C,EAAOrO,EAAEuL,GAASjG,KAAK,uBAC3B,GAAmB,GAAf+I,EAAKrL,SACLhD,EAAEqO,GAAMnC,GAAG,YAAf,CAEA,IAAIgC,EAAQlO,EAAEqO,GAAMlN,KAAK,QACrBmN,EAAOtO,EAAEqO,GAAMlN,KAAK,SAExB,GAAa,OAAT+M,EAAgB,CAChB,IAAIK,EAAQlN,EAASiE,MAAKkJ,GAAKA,EAAEC,QAAUP,IAAUM,EAAEE,QAAUJ,GAAqB,QAAbE,EAAEG,WAEvEpD,EAAQqD,OADC1H,MAATqH,CKqXR,CAXA,CLnWJ,IAEAvO,EAAE,qBAAqBiI,MAAK,SAAUqD,EAAGC,GACrCA,EAAQqD,QAAS,EAC+C,GAA5D5O,EAAEc,MAAMwE,KAAK,sBAAsBuJ,IAAI,WAAW7L,SAClDuI,EAAQqD,QAAS,EAEzB,GACJ,EACArM,MAAO,SAAUC,EAAKC,EAAaC,GAEnC,GK+WR,CL7WE,MAAOjC,GACL,MAAMA,CK+WV,CL7WJ,CAEA,SAAS4K,IACLrL,EAAE,uBAAuBW,OAAM,SAAUyI,GACrC,IAAI0F,EAAO9O,EAAEc,MAAMkF,KAAK,aACpBvC,EAAQzD,EAAEc,MAAMkF,KAAK,cACrB9E,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAClCpC,EAAIiN,YAAY,QAEZnO,EAAEc,MAAMoL,GAAG,YACXhL,EAAIyH,SAASmG,EAAMrL,GAGnBvC,EAAIiN,YAAYW,EAAMrL,GAE1BmF,EAAO1H,GAEH4H,KACAC,IAEJC,GAAiB,GACjBiF,IACA/E,IACAyE,GASJ,GACJ,CA2BA,SAAS7E,IAGL,QAFoBiG,WAAW,sBAEfC,OAIpB,CAgBA,SAASjG,IACL,MAAMkG,EAAOjP,EAAE,QACTkP,EAAelP,EAAE,kBACvBiP,EAAKhD,IAAI,WAAY,IACrBgD,EAAKhD,IAAI,eAAgB,IAEzBiD,EAAapM,YAAY,sBAC7B,CAkBA,SAAS8F,EAAO1H,GACZkC,OAAO+L,QAAQC,UAAU,CAAElO,IAAK,GAAKA,EAAImO,UAAUnN,YAAmB,GAAIhB,EAAImO,UAClF,CAEA,SAAS7F,EAAyBvI,GAC9B,GAAa,YAATA,EACA,IAAIqO,EAAc,eACdC,EAAa,cAErB,GAAa,WAATtO,EACIqO,EAAc,qBACdC,EAAa,oBAErB,MAAO,CACHrO,IAAK,SAAUC,GACX,MAAO,sBACX,EACAqO,SAAU,SAAUjE,GAChB,OAAOA,EAAQkE,KACnB,EACAC,aAAc,CACVvN,SAAU,OACVwN,OAAQ,OACRxO,KAAM,CACFgB,SAAU,SAGlByN,gBAAiB,SAAUzO,GAGvB,OAFAA,EAAKgD,OAASnE,EAAEsP,GAAavO,MAEtBI,CACX,EACA0O,SAAU,CACN5O,KAAM,SACN0O,OAAQ,SAAUlM,EAAOkI,GACrB,IAAIM,EAAM,eAEV,OADuB,GAAnBN,EAAKmE,aAAqB7D,EAAM,cAC7B,2GACgDN,EAAKoE,sNAE6CpE,EAAK8D,0KAE5ExD,MAAQN,EAAKqE,6FACGpQ,OAAOqQ,eAAetE,EAAKuE,gBAAgBvE,EAAKwE,gJAItG,GAEJ3D,KAAM,CACF4D,oBAAqB,GACrBC,MAAO,CACHC,SAAS,GAEbC,cAAe,WACX,IAAIC,EAAQpN,OAAepD,EAAEuP,GAAYkB,sBAAsBC,IAE/D,GAAa,YAATzP,EACA,GAA0D,QAAtDjB,EAAE,kCAAkCiM,IAAI,WAAsB,CACjDhM,SAAS4K,eAAe,cAChC8F,QKqVT,MLnVIvN,OAAOC,SAASC,KAAO,IAAMkN,EAIrC,GAAa,WAATvP,EACA,GAAgE,QAA5DjB,EAAE,wCAAwCiM,IAAI,WAAsB,CACvDhM,SAAS4K,eAAe,oBAChC8F,QKqVT,MLnVIvN,OAAOC,SAASC,KAAO,IAAMkN,CAGzC,GAGJI,cAAe,EACfC,aAAc,IAGtB,CAuBA,SAAgBC,IACZ,IACI9Q,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,sBACLE,QAAS,SAAUC,GACfrB,EAAE,sBAAsB8D,KAAKzC,EACjC,EACAkB,MAAO,SAAUC,EAAKC,EAAaC,GACnC,EACAgI,SAAU,WACN1K,EAAE,sBAAsBgG,KAAK,cAAe,QAkcxDhG,EAAE,mBAAmBiI,MAAK,SAAUqD,EAAGC,GACnC,MAAMC,EAAWD,EAEjBvL,EAAE,gCAAiCwL,GAAUtL,GAAG,SAAS,WACrD,MAAMuL,EAAczL,EAAEc,MAAM4K,QAAQ,gCAAgCvK,KAAK,yBACnEwK,EAAO3L,EAAEc,MAAM4K,QAAQ,wBACvBE,EAAUD,EAAKE,SAAS,2BACxBC,EAAcH,EAAKI,UAIzB,GAFAD,EAAYE,MAAM,EAAGF,EAAY5D,MAAMsD,GAAY,GAAGxH,OAAO,wBAAwBiI,IAAI,SAAU,IAE/FN,EAAKO,GAAG,IAAMT,GAAc,CAC5B,MAAMU,EAAcP,EAAQ1B,SAE5B0B,EAAQK,IAAI,SAAUE,EAAc,MACpCR,EAAK7I,YAAY2I,GAEjBG,EAAQ1B,SACR0B,EAAQK,IAAI,SAAU,GK2N1B,KL1NO,CACH,MAAME,EAAcP,EAAQ1B,SAE5ByB,EAAKlG,SAASgG,GAEd,MAAMW,EAAYR,EAAQ1B,SAE1B0B,EAAQK,IAAI,SAAUE,EAAc,MACpCP,EAAQ1B,SACR0B,EAAQK,IAAI,SAAUG,EAAY,KKyNtC,CLtNApM,EAAE,0BAA2BwL,GAAUtL,GAAG,iBAAiB,SAAUkJ,GACf,WAA7CA,EAAMiD,cAAsBC,cAC7BtM,EAAEc,MAAMmL,IAAI,SAAU,GAE9B,GACJ,GACJ,IAreYjM,EAAE,uBAAuBW,OAC7B,GKmVR,CLjVE,MAAOF,GACL,MAAMA,CKmVV,CLjVJ,CAMA,SAASsQ,EAAWC,EAAUC,GAC1BD,EAAWhR,EAAEgR,GAEb,IAAIE,EAAiB,KAErB,MAAMC,EAAe,SAAU/H,GAC3B,MAAMiD,EAAgBjD,EAAMiD,cAO5B6E,EALqC,IAAjC7E,EAAc+E,QAAQpO,OAKT,CACbqO,OAAQhF,EAAciF,cACtBC,MAAOlF,EAAcmF,eAAe,GACpCC,WAAW,IAAK1L,MAAME,WAPL,IASzB,EACMyL,EAAa,SAAUtI,GACzB,MAAMiD,EAAgBjD,EAAMiD,cAE5B,IACK6E,GACuC,IAAxC7E,EAAcmF,eAAexO,QAC7BqJ,EAAcmF,eAAe,GAAGG,WAAaT,EAAeK,MAAMI,SAElE,OAGJ,MAAMF,GAAY,IAAK1L,MAAME,UACvBsL,EAAQlF,EAAcmF,eAAe,GACrCpL,EAAWE,KAAKsL,IAClBtL,KAAKuL,KACDvL,KAAKwL,IAAIZ,EAAeK,MAAMQ,QAAUR,EAAMQ,QAAS,GACvDzL,KAAKwL,IAAIZ,EAAeK,MAAMS,QAAUT,EAAMS,QAAS,KAI3Dd,EAAeG,SAAWhF,EAAciF,eAAiBG,EAAYP,EAAeO,UAAY,KAAOrL,EAAW,IAClH6K,EAAS7H,EAEjB,EAKA,OAHA4H,EAAS9Q,GAAG,aAAciR,GAC1BH,EAAS9Q,GAAG,WAAYwR,GAEjB,WACHV,EAASiB,IAAI,aAAcd,GAC3BH,EAASiB,IAAI,WAAYP,EAC7B,CACJ,CAGA,SAASQ,IACL,MAAMC,EAAU,SAAU/I,GACtBA,EAAMC,iBAENpJ,SAASmS,oBAAoB,QAASD,EAC1C,EACAlS,SAASoS,iBAAiB,QAASF,GACnCG,YAAW,WACPrS,SAASmS,oBAAoB,QAASD,EAC1C,GAAG,IACP,CA18BgBzS,EAAAK,KAAhB,WAgsBA,IACQwS,EACAC,EADAD,EAAWvS,EAAE,wBAAwByS,aACrCD,EAAYxS,EAAE,wBAAwB0S,cAE1C1S,EAAE,mCAAmCiI,MAAK,WACtC,IACI0K,EADSC,SAAS5S,EAAEc,MAAMkF,KAAK,uBACd,KACjB6M,EAAYvM,KAAKC,MAAMgM,EAAWI,GAClCH,GAAaK,GAAW7S,EAAEc,MAAMmL,IAAI,SAAU4G,EACtD,IAIA7S,EAAE,mCAAmCiI,MAAK,WACtC,IACI0K,EADSC,SAAS5S,EAAEc,MAAMkF,KAAK,uBACd,IACjB6M,EAAYvM,KAAKC,MAAMgM,EAAWI,GAClCH,GAAaK,GAAW7S,EAAEc,MAAMmL,IAAI,SAAU4G,EACtD,IAGA7S,EAAE,mCAAmCiM,IAAI,aAAc,WACvDjM,EAAE,mCAAmCiM,IAAI,aAAc,WAhtBvDjM,EAAE,kBAAkBW,OAAM,SAAUyI,GAChCA,EAAMC,gBACV,IAGArJ,EAAE,6BAA6BW,OAAM,SAAUyI,GAC3C,IAAI0J,EAAM9S,EAAEc,MAAMkF,KAAK,YACnBvC,EAAQzD,EAAEc,MAAMkF,KAAK,cACrBqC,EAAO,GAEXrI,EAAE,yCAAyC8C,YAAY,wCACvD9C,EAAEc,MAAMiS,SAAStN,SAAS,wCAE1B,IAAIvE,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,OACJ,IAA1BpC,EAAIqH,SAAS,WACbF,EAAOnH,EAAIsH,OAAM,GAAME,MAAMxG,YAGjChB,EAAIiD,OAAO,IACXjD,EAAIyH,SAASmK,EAAKrP,GACd4E,EAAKrF,OAAS,GACd9B,EAAIyH,SAAS,QAASN,GAE1BO,EAAO1H,GAGH4H,KACAC,IAGJC,GAAiB,GAEZF,MACDG,IACAC,KAEJqE,IACAvN,EAAE,oBAAoB6I,QAEtBO,EAAMC,gBACV,IAiBArJ,EAAE,oBAAoBgT,QAAO,SAAU5J,GACnC,IAAI0J,EAAM9S,EAAEc,MAAM+K,SAAS,mBAAmB1K,KAAK,OAC/CsC,EAAQzD,EAAEc,MAAM+K,SAAS,mBAAmB1K,KAAK,SAEjDD,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAClCpC,EAAIiN,YAAY,QAChBjN,EAAIiN,YAAY,SAChBjN,EAAIyH,SAASmK,EAAKrP,GAClBmF,EAAO1H,GAEP8H,GAAiB,GACjBI,EAAMC,gBACV,IAEArJ,EAAE,kBAAkBW,OAAM,SAAUyI,GAChC,IAAIlI,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAC9B2P,EAAM,GACmB,IAAzB/R,EAAIqH,SAAS,WACb0K,EAAML,SAAS1R,EAAIsH,OAAM,GAAM0K,KAAKhR,eACxB+Q,EAAM,IAGtBA,IAEA/R,EAAIiN,YAAY,QAChBjN,EAAIyH,SAAS,OAAQsK,EAAI/Q,YACzB0G,EAAO1H,GAEP8H,GAAiB,GACjBI,EAAMC,gBACV,IAEArJ,EAAE,qBAAqBW,OAAM,SAAUyI,GACnChB,GACJ,IAEApI,EAAE,mBAAmBiS,IAAI,SAAS/R,GAAG,SAAS,SAAUO,IAspB5D,WACI,MAAMwO,EAAOjP,EAAE,QACTkP,EAAelP,EAAE,kBACjBmT,EAAcpE,WAAW,sBAE/B,GAAIG,EAAahD,GAAG,uCAAyCiH,EAAYnE,QACrE,OAGJ,MAAMoE,EAAYnE,EAAKoE,QACvBpE,EAAKhD,IAAI,WAAY,UACrBgD,EAAKhD,IAAI,eAAiBgD,EAAKoE,QAAUD,EAAa,MAEtDlE,EAAazJ,SAAS,sBAC1B,CAnqBQ6N,GACArK,IACAC,IACAmC,IACA5K,EAAE4I,gBACN,IAEArJ,EAAE,wBAAwBW,OAAM,SAAUyI,GACI,GAArCpJ,EAAE,yBAAyBgD,QAAuD,GAAtChD,EAAE,0BAA0BgD,QACtCkE,MAA/BlH,EAAEc,MAAMkF,KAAK,gBAgvB7B,WACI,IACIhG,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,gBACLE,QAAS,SAAUC,GACfrB,EAAE,+BAA+B+D,YAAY/D,EAAEqB,GAAUiE,KAAK,+BAClE,EACA/C,MAAO,SAAUC,EAAKC,EAAaC,GACnC,EACAgI,SAAU,WACN1K,EAAE,wBAAwBgG,KAAK,cAAe,QAoG9D,WAKI,SAASuN,EAAMhI,GACXzK,KAAKyK,QAAUvL,EAAEuL,GACjBzK,KAAK0S,UAAY1S,KAAKyK,QAAQjG,KAAK,+BACnCxE,KAAK2L,MAAQ3L,KAAKyK,QAAQjG,KAAK,+BAC/BxE,KAAK2S,YAAc,KAEnB3S,KAAKyK,QAAQpK,KAAK,eAAgBL,MAElCA,KAAK4S,aAAe5S,KAAK4S,aAAaC,KAAK7S,MAC3CA,KAAK8S,aAAe9S,KAAK8S,aAAaD,KAAK7S,MAC3CA,KAAK+S,aAAe/S,KAAK+S,aAAaF,KAAK7S,MAG3CA,KAAK2L,MAAMvM,GAAG,aAAcY,KAAK4S,cACjC5S,KAAKyK,QAAQrL,GAAG,aAAcY,KAAK8S,cACnC7C,EAAWjQ,KAAK2L,MAAO3L,KAAK+S,aAChC,CACAN,EAAMO,UAAUJ,aAAe,SAAUtK,GACrC,MAAM2K,EAAa/T,EAAEoJ,EAAMkI,eAEvBxQ,KAAK2S,aAAeM,EAAW7H,GAAGpL,KAAK2S,eAI3C3S,KAAKkT,mBACLlT,KAAKmT,eAAeF,GACxB,EACAR,EAAMO,UAAUF,aAAe,WAC3B9S,KAAKkT,kBACT,EACAT,EAAMO,UAAUD,aAAe,SAAUzK,GACrC,MAAM2K,EAAa/T,EAAEoJ,EAAMkI,eAEvBxQ,KAAK2S,aAAe3S,KAAK2S,YAAYvH,GAAG6H,IAIxCjT,KAAKoT,WAAWH,KAChB7B,IAEApR,KAAKkT,mBACLlT,KAAKmT,eAAeF,GAE5B,EACAR,EAAMO,UAAUG,eAAiB,SAAUtI,GACvC7K,KAAK2S,YAAc9H,EACnB7K,KAAK2S,YAAYhO,SAAS,qBAE1B3E,KAAKqT,YAAYrT,KAAK2S,YAC1B,EACAF,EAAMO,UAAUE,iBAAmB,WAC3BlT,KAAK2S,cACL3S,KAAKsT,aAAatT,KAAK2S,aAEvB3S,KAAK2S,YAAY3Q,YAAY,qBAC7BhC,KAAK2S,YAAc,KAE3B,EACAF,EAAMO,UAAUO,WAAa,SAAU1I,GACnC,IAAI2I,EAAU3I,EAAKrG,KAAK,oBAOxB,OALIgP,EAAQtR,SACRlC,KAAK0S,UAAU/J,OAAO6K,GACtB3I,EAAKxK,KAAK,UAAWmT,IAGlB3I,EAAKxK,KAAK,UACrB,EACAoS,EAAMO,UAAUI,WAAa,SAAUvI,GACnC,QAAS7K,KAAKuT,WAAW1I,EAC7B,EACA4H,EAAMO,UAAUK,YAAc,SAAUxI,GACpC,MAAM2I,EAAUxT,KAAKuT,WAAW1I,GAEhC,IAAK2I,EACD,OAGJA,EAAQ7O,SAAS,0BAGjB,MAAM8O,EAAUzT,KAAKyK,QAAQwC,SAASC,IAAMhO,EAAEoD,QAAQ0K,YAChD0G,EAAU7I,EAAKrG,KAAK,gCAAgCyI,SAASC,IAAMhO,EAAEoD,QAAQ0K,YAC7E2G,EAAiBrR,OAAOsR,YACxBC,EAAW,GACXC,EAAYH,EAA4B,EAAXE,EAEnCL,EAAQrI,IAAI,YAAa2I,EAAY,MAErC,MAAMC,EAAgBP,EAAQpK,SACxB4K,EAAWxO,KAAK4E,IAClB5E,KAAK6E,IACDqJ,EAAUD,EACV,GAEHE,EAAiBE,EAAWE,EAAiBN,GAGlDD,EAAQrI,IAAI,MAAO6I,EAAW,MAC9BR,EAAQ7O,SAAS,uBAGI3E,KAAKyK,QAAQwC,SAASgH,KAAOjU,KAAKyK,QAAQ8H,QAAUiB,EAAQjB,QAC9DrT,EAAE,QAAQgV,cACzBV,EAAQ7O,SAAS,yBAGzB,EACA8N,EAAMO,UAAUM,aAAe,SAAUzI,GACrC,MAAM2I,EAAUxT,KAAKuT,WAAW1I,GAEhC,GAAI2I,EAAS,CACTA,EAAQxR,YAAY,0BACpBwR,EAAQxR,YAAY,uBACpBwR,EAAQxR,YAAY,0BAEpB,MAAMmS,EAAkBX,EAAQhP,KAAK,WAAWnE,KAAK,gBAEjD8T,GACAA,EAAgBjB,kBKyRxB,CLtRJ,EACAhU,EAAE,SAASiI,MAAK,WACZ,IAAIsL,EAAMvT,EAAEc,MAChB,IAMAd,GAAE,WAIE,MAAMkV,EAAe,SAAU3J,GAC3B,MAAM4J,EAAOrU,KAEbyK,EAAQpK,KAAK,sBAAuBgU,GAEpCrU,KAAKyK,QAAUA,EACfzK,KAAK0S,UAAY1S,KAAKyK,QAAQjG,KAAK,oCACnCxE,KAAKsU,aAAetU,KAAKyK,QAAQjG,KAAK,+BACtCxE,KAAKmO,KAAOnO,KAAKyK,QAAQjG,KAAK,sBAC9BxE,KAAKuU,OAASvU,KAAKyK,QAAQjG,KAAK,wBAChCxE,KAAK2L,MAAQ3L,KAAKyK,QAAQjG,KAAK,sBAC/BxE,KAAKwU,KAAOxU,KAAKyK,QAAQW,GAAG,uBAAyB,QAAU,SAC/DpL,KAAKyU,QAAUvV,EAAEc,KAAKyK,QAAQpK,KAAK,yBACnCL,KAAK0U,YAAc,EACnB1U,KAAK2S,YAAc,KAED,UAAd3S,KAAKwU,MAAoBxU,KAAKyU,QAAQvS,SACtClC,KAAK0U,YAAc1U,KAAKyU,QAAQxH,SAASC,IAAMlN,KAAKmO,KAAKlB,SAASC,IAAMlN,KAAKyU,QAAQ7C,cACrF5R,KAAKmO,KAAKhD,IAAI,SAAUnL,KAAK0U,YAAc,OAG/C1U,KAAKsU,aAAalV,GAAG,iBAAiB,SAAUkJ,GACH,WAArCA,EAAMiD,cAAcC,eACpBtM,EAAEc,MAAMmL,IAAI,SAAU,IACtBjM,EAAEc,MAAM4K,QAAQ,gBAAgB5I,YAAY,2BAEpD,IAEAhC,KAAK2U,cAAgB3U,KAAK2U,cAAc9B,KAAK7S,MAC7CA,KAAK4U,cAAgB5U,KAAK4U,cAAc/B,KAAK7S,MAC7CA,KAAK4S,aAAe5S,KAAK4S,aAAaC,KAAK7S,MAC3CA,KAAK8S,aAAe9S,KAAK8S,aAAaD,KAAK7S,MAC3CA,KAAK+S,aAAe/S,KAAK+S,aAAaF,KAAK7S,MAK3CiQ,EAAW9Q,SAAUa,KAAK4U,eAC1B5U,KAAK2L,MAAMvM,GAAG,aAAcY,KAAK4S,cACjC5S,KAAKsU,aAAalV,GAAG,aAAcY,KAAK8S,cACxC7C,EAAWjQ,KAAK2L,MAAO3L,KAAK+S,aAEhC,EACAqB,EAAapB,UAAU2B,cAAgB,SAAUrM,GAC7CA,EAAMC,iBAEFvI,KAAKyK,QAAQW,GAAG,sBAChBpL,KAAK6U,QAEL7U,KAAK8U,MAEb,EACAV,EAAapB,UAAU4B,cAAgB,SAAUtM,GACzCtI,KAAKyK,QAAQsD,IAAI7O,EAAEoJ,EAAMiI,QAAQ3F,QAAQ,iBAAiB1I,QACtDlC,KAAKyK,QAAQW,GAAG,uBAChBpL,KAAK6U,OAGjB,EACAT,EAAapB,UAAU+B,QAAU,SAAUP,GACvCxU,KAAKwU,KAAOA,EAEM,WAAdxU,KAAKwU,OACLxU,KAAKyK,QAAQzI,YAAY,sBACzBhC,KAAKyK,QAAQzI,YAAY,qBACzBhC,KAAKmO,KAAKhD,IAAI,SAAU,SAEV,UAAdnL,KAAKwU,OACLxU,KAAKyK,QAAQ9F,SAAS,sBACtB3E,KAAKyK,QAAQ9F,SAAS,qBACtB3E,KAAKmO,KAAKhD,IAAI,SAAUnL,KAAK0U,YAAc,MAC3CxV,EAAE,8BAA+Bc,KAAKyK,SAASU,IAAI,YAAa,IAExE,EACAiJ,EAAapB,UAAU6B,MAAQ,WAC3B,GAAI7U,KAAKyK,QAAQW,GAAG,uBAChB,OAGJ,MAAMN,EAAU9K,KAAKyK,QAAQjG,KAAK,+BAC5B6G,EAAcP,EAAQ1B,SAE5B0B,EAAQK,IAAI,SAAUE,EAAc,MACpCrL,KAAKyK,QACA9F,SAAS,2BACT3C,YAAY,qBAEjB8I,EAAQ1B,SACR0B,EAAQK,IAAI,SAAU,IACtBL,EAAQK,IAAI,YAAa,IAEzBnL,KAAKkT,kBACT,EACAkB,EAAapB,UAAUgC,iBAAmB,WACtC,GAAIhV,KAAKyK,QAAQW,GAAG,uBAChB,OAGJ,MAAMN,EAAU9K,KAAKyK,QAAQjG,KAAK,+BAElCxE,KAAKyK,QAAQzI,YAAY,qBAEzB8I,EAAQK,IAAI,SAAU,IACtBL,EAAQK,IAAI,YAAa,IAEzBnL,KAAKkT,kBACT,EACAkB,EAAapB,UAAU8B,KAAO,WAC1B,MAAMhK,EAAU9K,KAAKyK,QAAQjG,KAAK,+BAC5B6G,EAAcP,EAAQ1B,SAE5BpJ,KAAKyK,QACA9F,SAAS,2BACTA,SAAS,qBAEd,MAAMsQ,EAAiB9V,SAAS+V,gBAAgBC,aAC1CC,EAAgB,GAChBC,EAAcvK,EAAQ,GAAGwK,wBACzBhK,EAAY9F,KAAK4E,IAAIU,EAAQ1B,SAAU6L,EAAiBG,EAAgBC,EAAYnI,KAE1FpC,EAAQK,IAAI,SAAUE,EAAc,MACpCP,EAAQ1B,SACR0B,EAAQK,IAAI,YAAaG,EAAY,MACrCR,EAAQK,IAAI,SAAUG,EAAY,KACtC,EACA8I,EAAapB,UAAUJ,aAAe,SAAUtK,GAC5C,MAAM2K,EAAa/T,EAAEoJ,EAAMkI,eAEvBxQ,KAAK2S,aAAeM,EAAW7H,GAAGpL,KAAK2S,eAI3C3S,KAAKkT,mBACLlT,KAAKmT,eAAeF,GACxB,EACAmB,EAAapB,UAAUF,aAAe,WAClC9S,KAAKkT,kBACT,EACAkB,EAAapB,UAAUD,aAAe,SAAUzK,GAC5C,MAAM2K,EAAa/T,EAAEoJ,EAAMkI,eAEvBxQ,KAAK2S,aAAe3S,KAAK2S,YAAYvH,GAAG6H,IAIxCjT,KAAKoT,WAAWH,KAChB7B,IAEApR,KAAKkT,mBACLlT,KAAKmT,eAAeF,GAE5B,EACAmB,EAAapB,UAAUG,eAAiB,SAAUtI,GAC9C7K,KAAKkT,mBAELlT,KAAK2S,YAAc9H,EACnB7K,KAAK2S,YAAYhO,SAAS,4BAE1B3E,KAAKqT,YAAYrT,KAAK2S,YAC1B,EACAyB,EAAapB,UAAUE,iBAAmB,WAClClT,KAAK2S,cACL3S,KAAKsT,aAAatT,KAAK2S,aAEvB3S,KAAK2S,YAAY3Q,YAAY,4BAC7BhC,KAAK2S,YAAc,KAE3B,EACAyB,EAAapB,UAAUO,WAAa,SAAU1I,GAC1C,IAAI2I,EAAU3I,EAAKrG,KAAK,2BAQxB,OANIgP,EAAQtR,SACRlC,KAAK0S,UAAU/J,OAAO6K,GAEtB3I,EAAKxK,KAAK,UAAWmT,IAGlB3I,EAAKxK,KAAK,UACrB,EACA+T,EAAapB,UAAUI,WAAa,SAAUvI,GAC1C,QAAS7K,KAAKuT,WAAW1I,EAC7B,EACAuJ,EAAapB,UAAUK,YAAc,SAAUxI,GAC3C,MAAM2I,EAAUxT,KAAKuT,WAAW1I,GAEhC,GAAI2I,EAAS,CACTA,EAAQ7O,SAAS,8BAEjB,MAAMsQ,EAAiB9V,SAAS+V,gBAAgBC,aAC1CC,EAAgB,GAEtB,GAAI5B,EAAQ+B,SAAS,wCAAyC,CAC1D,MAAMC,EAAahC,EAAQvG,SAASC,IAAMhO,EAAEoD,QAAQ0K,YACpDwG,EAAQrI,IAAI,YAAc8J,EAAiBO,EAAaJ,EAAiB,KK4O7E,CLzOA,GAAI5B,EAAQ+B,SAAS,oCAAqC,CACtD/B,EAAQrI,IAAI,YAAc8J,EAAiBG,EAAgB5P,KAAK4E,IAC5DgL,EACApV,KAAKmO,KAAKlB,SAASC,IAAMhO,EAAEoD,QAAQ0K,aAClC,MAEL,MAAM+G,EAAgBP,EAAQpK,SACxBsK,EAAU1T,KAAK2S,YAAY1F,SAASC,IAAMhO,EAAEoD,QAAQ0K,YACpDyI,EAAezV,KAAK0S,UAAUzF,SAASC,IAAMhO,EAAEoD,QAAQ0K,YAE7DwG,EAAQrI,IAAI,MAAQ3F,KAAK4E,IAAIsJ,EAASuB,EAAiBG,EAAgBrB,GAAiB0B,EAAgB,KKsO5G,CACJ,CLpOJ,EACArB,EAAapB,UAAUM,aAAe,SAAUzI,GAC5C,MAAM2I,EAAU3I,EAAKxK,KAAK,WAEtBmT,IACAA,EAAQxR,YAAY,8BAEhBwR,EAAQpI,GAAG,sCACXoI,EAAQhP,KAAK,WAAWnE,KAAK,gBAAgB6S,mBAGzD,EAEA,MAAMwC,EAAqBxW,EAAE,gBACTwW,EAAmBxT,QAAS,IAAIkS,EAAasB,EAErE,GAEJ,CAldgBC,EACJ,GKmVR,CLjVE,MAAOhW,GACL,MAAMA,CKmVV,CLjVJ,CAjwBgBiW,EAGZ,IAEA1W,EAAE,uBAAuBE,GAAG,SAAS,WACkBgH,MAA/ClH,EAAE,sBAAsBgG,KAAK,gBAC7B8K,GAER,IAEA1N,OAAOuT,WAAa,SAAUvN,GACtBA,GAASA,EAAMwN,QACX9N,KACAC,IAGJC,GAAiB,GACZF,MACDG,IACAC,KAEJqE,IACApE,IACAC,EAAMC,iBAEd,GAGKP,KAulBT,WAGI,GAFqB9I,EAAE,kBAENgD,OAAS,EAAK,OAAO,EACtC,OAAO,CACX,CA5lB+B6T,KACvB5N,IACAoC,KAGJtD,EAAW,aAAc,SACzBA,EAAW,cAAe,QAG1BuB,IAiHAtJ,EAAE,iBAAiBiI,MAAK,SAAUqD,EAAGC,GACjC,MAAML,EAAMlL,EAAEuL,GAASpK,KAAK,OACtBgK,EAAMnL,EAAEuL,GAASpK,KAAK,OAC5B,GAAI+J,GAAOC,EACP,OAGJ,MAAM2L,EAAO9W,EAAEuL,GAASpK,KAAK,QACvB4V,EAAK/W,EAAEuL,GAASpK,KAAK,MACrB6V,EAASzL,EAAQ0L,cAAc,yBAEpC7T,OAAe0H,WAAWoM,OAAOF,EAAQ,CACtChM,MAAO,CAAC8L,EAAMC,GACdI,SAAS,EACTC,KAAM,EACNC,UAAW,MACXpM,MAAO,CACHC,IAAOA,EACPC,IAAOA,GAEXmM,OAASlU,OAAemU,MAAM,CAC1BC,SAAU,EACVC,SAAU,QAKlB,MAAMC,EAAc,CAChB1X,EAAEuL,GAASjG,KAAK,4BAA4B,GAC5CtF,EAAEuL,GAASjG,KAAK,4BAA4B,IAG/C0R,EAAelM,WAAW5K,GAAG,UAAU,SAAUyX,EAAQC,GACtDF,EAAYE,GAAQC,UAAYF,EAAOC,EAC3C,IAEiB,gBAAbZ,EAAO/R,GACN+R,EAAelM,WAAW5K,GAAG,UAAU,SAAUyX,EAAQC,EAAQE,EAAWC,EAAOC,GAChF,IAAI9W,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAClCpC,EAAIiN,YAAY,QAChBjN,EAAIiN,YAAY,SAChBjN,EAAIiN,YAAY,SACK,GAAhB6J,EAAU,IAA6B,KAAhBA,EAAU,KAClC9W,EAAIyH,SAAS,QAASgP,EAAO,GAAGzV,WAAWI,QAAQ,IAAK,KACxDpB,EAAIyH,SAAS,QAASgP,EAAO,GAAGzV,WAAWI,QAAQ,IAAK,MAE5DsG,EAAO1H,GAEH4H,KACAC,IAEJC,GAAiB,GACjBiF,GACJ,IAEC+I,EAAelM,WAAW5K,GAAG,UAAU,SAAUyX,EAAQC,EAAQE,EAAWC,EAAOC,GAChF,IAAI9W,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAClCpC,EAAIiN,YAAY,QAChBjN,EAAIiN,YAAY6I,EAAO/R,IACF,GAAhB+S,EAAU,IAA6B,KAAhBA,EAAU,IAClC9W,EAAIyH,SAASqO,EAAO/R,GAAI0S,EAAO,GAAGzV,WAAWI,QAAQ,IAAK,IAAM,IAAMqV,EAAO,GAAGzV,WAAWI,QAAQ,IAAK,KAIxGwG,KACAC,IAEJC,GAAiB,GACjBiF,IACA/E,GACJ,GAER,IA4ZJ,WAGI,GAFelJ,EAAE,kBAENgD,OAAS,EAAK,OAAO,EAChC,OAAO,CACX,CAvlBQiV,IAiXR,WACI,IACI,MAAMC,EAAa9U,OAAe8U,UAC5BC,EAASD,GAAW5S,MAAM8S,GAAeA,GAAOC,WAAW5L,SAAQ4L,WAAW5L,MAAM,IAAI6L,QACxFC,EAAUL,GAAW5S,MAAM8S,GAAeA,GAAOC,WAAW5L,SAAQ4L,WAAW5L,MAAM,IAAI+L,gBAE/F,IAAML,IAAUI,EACZ,OAGJvY,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,cACLC,KAAM,CAAEsX,QAAWN,EAAQO,YAAeH,GAC1CnX,QAAS,SAAUC,GACfrB,EAAE,iBAAiB8D,KAAKzC,GAi1BpCrB,EAAE,4BAA4BiI,MAAK,WAC/B,MAAM0Q,EAAS3Y,EAAEc,MAAMK,KAAK,UACtBkG,EAAU,CACZoF,MAAO,EACPmM,OAAQ,GACRC,KAAK,EACLC,MAAM,EACNxR,MAAM,EACNyR,aAAc,EACdC,KAAK,GAEHC,EAAgB,CAClB,SAAU,CACNC,WAAY,CACR,KAAM,CAAEzM,MAAO,EAAGmM,OAAQ,IAC1B,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,IACzB,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,MAGjC,YAAa,CACTM,WAAY,CACR,KAAM,CAAEzM,MAAO,EAAGmM,OAAQ,IAC1B,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,IACzB,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,MAGjC,SAAU,CACNM,WAAY,CACR,KAAM,CAAEzM,MAAO,EAAGmM,OAAQ,IAC1B,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,IACzB,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,MAGjCO,WAAc,CACV1M,MAAO,EACPyM,WAAY,CACR,KAAM,CAAEzM,MAAO,EAAGmM,OAAQ,IAC1B,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,IACzB,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,IACzB,IAAK,CAAEnM,MAAO,GACd,IAAK,CAAEA,MAAO,GACd,EAAG,CAAEA,MAAO,MAIlB2M,EAAMpZ,EAAE,gBAAiBc,MAC/B,IAAIuY,EAA0B,WAAc,EAE5C,MAAMC,EAAatZ,EAAEuZ,OAAO,CAAA,EAAIlS,EAAS4R,EAAcN,IAEvD,GAAI,SAASa,KAAKb,GAAS,CACvB,IAAIc,EAGAA,EADoD,IAApDC,WAAW1Z,EAAEc,MAAMK,KAAK,wBACE,CACtB,IAAK,CAAEsL,MAAO,EAAGmM,OAAQ,IACzB,IAAK,CAAEnM,MAAO,EAAGmM,OAAQ,GACzB,EAAG,CAAEnM,MAAO,IAGU,CACtB,IAAK,CAAEA,MAAO,EAAGmM,OAAQ,IACzB,EAAG,CAAEnM,MAAO,IAIpB6M,EAAWJ,WAAalZ,EAAEuZ,OAAO,CAAA,EAAID,EAAWJ,WAAYO,EKmNhE,CLhNAL,EAAIO,YAAYL,GAEhBtZ,EAAEc,MAAMwE,KAAK,wBAAwBpF,GAAG,SAAS,SAAUkJ,GACvD,MAAMwQ,EAAQ5Z,EAAEc,MAAM4K,QAAQ,4BAI9B,GAFAtC,EAAMC,iBAEFrJ,EAAEc,MAAMoL,GAAG,gCACX,OAUJ,IAAI2N,EAPJR,IAEAO,EAAMnU,SAAS,oCACfzF,EAAEc,MAAM4K,QAAQ,8BAA8BpG,KAAK,gCAAgCxC,YAAY,+BAC/F9C,EAAEc,MAAM2E,SAAS,+BAIjBoU,EAAQvH,YAAW,WACf,IAAI7F,EAAQmN,EAAMtU,KAAK,2EAGlB,MAAMwU,EAAarN,EAAMrI,MACnB2V,EAAgB,GAEtB,KAAOD,EAAW9W,OAAS,GAAG,CAC1B,MAAMgX,EAAc1T,KAAKC,MAAMD,KAAK2T,SAAWH,EAAW9W,QACpDkX,EAAaJ,EAAWK,OAAOH,EAAa,GAAG,GAErDD,EAAcK,KAAKF,EKuM5B,CLpMKzN,EAAQzM,EAAE+Z,GAGfH,EAAMtU,KAAK,iBACNkC,QAAQ,uBAAwB,CAACiF,IACjCjF,QAAQ,wBACRA,QAAQ,kBAAmB,CAAC,EAAG,IAMpCoS,EAAM9W,YAAY,mCACtB,GAAG,KACHuW,EAA0B,WAEtBgB,aAAaR,GACbR,EAA0B,WAAc,CAC5C,CACJ,IAEArZ,EAAEc,MAAMwE,KAAK,8BAA8BpF,GAAG,SAAS,WACnDkZ,EAAI5R,QAAQ,oBAAqB,CAAC,KACtC,IACAxH,EAAEc,MAAMwE,KAAK,+BAA+BpF,GAAG,SAAS,WACpDkZ,EAAI5R,QAAQ,oBAAqB,CAAC,KACtC,GACJ,GAh9BQ,EACAjF,MAAO,SAAUC,EAAKC,EAAaC,GACnC,GKoYR,CLlYE,MAAOjC,GACL,MAAMA,CKoYV,CLlYJ,CAxYQ6Z,GAGJta,EAAE,YAAYiI,MAAK,SAAUC,EAAOzE,GAC/BL,OAAemX,YAAYC,IAAI,WAAY,CAAEC,SAAS,GAC3D,IAEAza,EAAE,4BAA4BE,GAAG,SAAS,WACtCD,SAASya,OAAS,gBAAkB1a,EAAEc,MAAMkF,KAAK,cACrD,GACJ,EAEgBtG,EAAAqI,WAAUA,EAaVrI,EAAAib,SAAhB,SAAyBzH,GACrB,IAAIhS,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,OACL,IAAzBpC,EAAIqH,SAAS,SAAoBrH,EAAIiN,YAAY,QAErDjN,EAAIyH,SAAS,OAAQuK,EAAKhR,YAC1B0G,EAAO1H,GACPiI,IACAH,GAAiB,EACrB,EAEgBtJ,EAAAkb,gBAAhB,SAAgC9L,EAAcrL,GAC1CzD,EAAE,gCAAkC8O,EAAO,sBAAwBrL,EAAQ,MAAMoX,SAElB,GAA3D7a,EAAE,gCAAkC8O,EAAO,MAAM9L,QACjDhD,EAAE,gCAAkC8O,EAAO,MAAM+L,SAEC,GAAlD7a,EAAE,sCAAsCgD,QACxChD,EAAE,uCAAuC6a,SAEG,GAA5C7a,EAAE,gCAAgCgD,QAClChD,EAAE,oBAAoB6I,QAG1B,IAAI3H,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,OACpB,GAAVG,EAEAvC,EAAIiN,YAAYW,EAAK5M,YAGrBhB,EAAIiN,YAAYW,EAAK5M,WAAYuB,EAAMvB,YAE3C0G,EAAO1H,GAEP8H,GAAiB,GACZF,MACDG,IACAC,KAEJE,MAAMC,gBACV,EAEgB3J,EAAA0I,YAAWA,EA8BX1I,EAAA4J,wBAAuBA,EAynBvB5J,EAAAoR,mBAAkBA,CA0nBrC,CA5+CD,CAAUpR,UAAAA,QAAO,CAAA,ICAjB,SAAUC,GACN,MAAMmb,EACFC,SACAC,QACAC,KACAC,aACAC,UACAC,SACAC,eACA,WAAAC,GACIxa,KAAKia,SAAWrB,WAAW1Z,EAAE,uDAAuDmB,KAAK,SAASe,WAAWI,QAAQ,IAAK,MAC1HxB,KAAKka,QAAUtB,WAAW1Z,EAAE,sDAAsDmB,KAAK,SAASe,WAAWI,QAAQ,IAAK,MACxHxB,KAAKma,KAAOvB,WAAW1Z,EAAE,aAAamB,KAAK,cAAce,WAAWI,QAAQ,IAAK,MACjFxB,KAAKoa,aAAexB,WAAW1Z,EAAE,aAAamB,KAAK,kBAAkBe,WAAWI,QAAQ,IAAK,MAC7FxB,KAAKqa,UAAYzB,WAAW1Z,EAAE,aAAamB,KAAK,eAAee,WAAWI,QAAQ,IAAK,MACvFxB,KAAKua,eAAiB,QAAUrb,EAAE,aAAamB,KAAK,mBAAmBe,WAAa,SACpFpB,KAAKsa,SAAW,EACZG,MAAMza,KAAKia,YAAWja,KAAKia,SAAW,GACtCQ,MAAMza,KAAKka,WAAUla,KAAKka,QAAU,GACpCO,MAAMza,KAAKma,QAAOna,KAAKma,KAAO,GAC9BM,MAAMza,KAAKoa,gBAAepa,KAAKoa,aAAe,GAC9CK,MAAMza,KAAKqa,aAAYra,KAAKqa,UAAY,GAC5Cra,KAAKsa,SAAWta,KAAKia,SAAWja,KAAKka,QAAUla,KAAKma,IACxD,EA+IJ,SAAgBO,EAAkBC,GAE9Bzb,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,qBACLC,KAAM,CAAGsa,UAAaA,GACtBra,QAAS,SAAUC,GACfrB,EAAE,uBAAuB+D,YAAY1C,GACrC1B,EAAS+b,sBACT/b,EAASgc,aACb,EACApZ,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,GAER,CA4BA,SAAgB+Y,IACZ,IAAI3W,EAAKjF,EAAE,uDAAuDmB,KAAK,MACnE0a,EAAmB7b,EAAE,uDAAuDmB,KAAK,qBACjF2a,EAAY9b,EAAE,uDAAuDgG,KAAK,mBAM9E,OAHW,OAAPf,IAAaA,EAAK,GACJ,OAAd6W,IAAoBA,EAAY,KAE7B,CAAE7W,GAAIA,EAAI6W,UAAW,EAAGD,iBAAkBA,EAAkBE,SAAUD,EAAWE,YALtEhc,EAAE,uDAAuDgG,KAAK,sBAKkCiW,WAJhGjc,EAAE,uDAAuDgG,KAAK,sBAKpF,CAKA,SAAgB2V,IACZ,IAAIO,EAAI,IAAIpB,EACZ9a,EAAE,iBAAiB,GAAGmc,UAAYvc,OAAOqQ,eAAeiM,EAAEhB,cAC1Dlb,EAAE,kBAAkB,GAAGmc,UAAYvc,OAAOqQ,eAAeiM,EAAEf,WAC3Dnb,EAAE,qBAAqB,GAAGmc,UAAYvc,OAAOqQ,eAAeiM,EAAEnB,SAAWmB,EAAElB,SAC3Ehb,EAAE,kBAAkB,GAAG6X,UAAYjY,OAAOqQ,eAAeiM,EAAEd,UAAY,IAAMc,EAAEb,cACnF,CAyEA,SAAgBe,IAaZ,GAZAxc,OAAOyc,yBAAyB,SAChCzc,OAAOyc,yBAAyB,SAE3BtZ,OAAO,+BAA+B,GAAwBE,QAC/DqZ,eAAeC,QAAQ,6BAA8B,QAErDD,eAAeC,QAAQ,6BAA8B,SAEzDD,eAAeC,QAAQ,mBAAoBvc,EAAE,qBAAqBe,MAAMmB,YAG/DlC,EAAE,uDAAuDmB,KAAK,MAC9D,EAAG,CACR,IAAI4Z,EAAWa,IACfU,eAAeC,QAAQ,cAAexB,EAAS9V,GAAG/C,YAClDoa,eAAeC,QAAQ,qBAAsBxB,EAASe,UAAU5Z,WI4pDpE,CJzpDJ,CACA,SAAgBsa,IACZ5c,OAAO6c,2BAA2B,SAClC7c,OAAO6c,2BAA2B,SAElC,IAAIhZ,EAAQ6Y,eAAeI,QAAQ,8BAC/BC,EAAQ5Z,OAAO,+BAA+B,GACrC,QAATU,GAAmBkZ,EAAKhc,QAASgc,EAAK1Z,SAAU,GAAe0Z,EAAK1Z,SAAU,EAElFjD,EAAE,qBAAqBe,IAAIub,eAAeI,QAAQ,oBAetD,CAiIA,SAASE,IACyC,QAA1ChB,IAAsBC,kBACrB9Y,OAAO,uBAAuB,GAAwBE,SAAU,EACjEjD,EAAE,iBAAiB6c,OACnB7c,EAAE,sBAAsB6c,OACxB7c,EAAE,gBAAgB8c,OAClB9c,EAAE,uBAAuB8c,SAEzB9c,EAAE,iBAAiB8c,OACnB9c,EAAE,sBAAsB8c,OACxB9c,EAAE,gBAAgB6c,OAClB7c,EAAE,uBAAuB6c,QAE7B7c,EAAE,sBAAsB+c,QAC5B,CACA,SAASC,EAAc/X,EAAYgY,EAAeC,EAAeC,EAAeC,EAAaC,GACzF,MAAMC,EAAS,CACXrY,GAAIA,EACJgY,MAAOA,EACPC,MAAOA,EACPC,MAAOA,EACPC,IAAKA,EACLC,KAAMA,GAEV,OAAOE,KAAKC,UAAUF,EAC1B,CA3dgB3d,EAAAI,KAAhB,WACIC,EAAEoD,QAAQlD,GAAG,gBAAgB,SAAUkJ,GACnCgT,GAGJ,IAEApc,EAAE,iBAAiBY,UAAS,SAAUH,GAClC,IAAII,EAAQb,EAAEc,MAAMC,MAIhB0c,EAAc,KAElB,MAAMC,EAAeC,MAAM7G,KAAK7W,SAAS2d,iBACrC,oBAEEC,EAAeH,EAAavQ,QANnBrM,MAQfd,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,uBACLC,KAAM,CAAEN,MAASA,GACjBO,QAAS,SAAUC,GACQ,GAAnBA,EAASC,SAC0B,KAA/BD,EAASyc,mBACTle,OAAOme,mCAAmC1c,EAASG,QAASH,EAASI,aAAcJ,EAASK,qBAAsBL,EAASM,KAAMN,EAASO,QAASf,GAEnJjB,OAAO2B,yBAAyBF,EAASG,QAASH,EAASI,aAAcJ,EAASK,qBAAsBL,EAASM,KAAMN,EAASO,QAASf,GAIrJ,KAIkB,IAAlBgd,GAAuBH,EAAaG,EAAe,KACnDJ,EAAcC,EAAaG,EAAe,KAEtCJ,EAAYO,OAIxB,IAEAhe,EAAE,kBAAkBE,GAAG,SAAU,IAAI,WAC3B6C,OAAO,+BAA+B,GAAwBE,UAChEtD,EAASse,mBAAmBnd,KAAK2C,OACjC9D,EAAS6b,kBAAkB7b,EAASic,sBAAsB3W,IAC1DtF,EAASgc,cAEjB,IACA3b,EAAE,iCAAiCE,GAAG,SAAU,IAAI,WAChDP,EAASse,mBAAmBnd,KAAK2C,OACjC9D,EAAS6b,kBAAkB7b,EAASic,sBAAsB3W,IAC1DtF,EAASgc,aACb,IAEA3b,EAAE,+BAA+BE,GAAG,SAAU,IAAI,WAC9CP,EAASse,mBAkYRlb,OAAO,+BAA+B,GAAwBE,QACvDF,OAAO,0BAA0B,GAAwBU,MAEzDV,OAAO,WAAW,GAAwBU,OApYlD9D,EAAS6b,kBAAkB7b,EAASic,sBAAsB3W,IAC1DtF,EAASgc,aACb,IACA3b,EAAE,wBAAwBE,GAAG,QAAS,IAAI,WACtCP,EAASue,aACb,IAEwE,GAAnEle,EAAE,uDAAuDgD,QAAiBD,OAAO,+BAA+B,GAAwBE,QACzIjD,EAAE,kBAAkBgT,SAEpBhT,EAAE,kBAAkBgT,SAGxBhT,EAAEC,UAAUC,GAAG,QAAS,+BAA+B,WACnDP,EAASwe,mBAAmBne,EAAE,uDAAuDmB,KAAK,sBAAuBnB,EAAE,+BAA+BmB,KAAK,gBAC3J,IAEAnB,EAAEC,UAAUC,GAAG,QAAS,kCAAkC,WACtDP,EAASwe,mBAAmBne,EAAE,uDAAuDmB,KAAK,sBAAuBnB,EAAE,+BAA+BmB,KAAK,gBAC3J,IAEAnB,EAAEC,UAAUC,GAAG,QAAS,+BAA+B,WAC9C6C,OAAO,uBAAuB,GAAwBE,QACvDjD,EAAE,sBAAsB8c,OAExB9c,EAAE,sBAAsB6c,OAE5B7c,EAAE,sBAAsB+c,QAC5B,IAEA/c,EAAEC,UAAUC,GAAG,WAAY,uCAAuC,SAAUO,GACzD,IAAXA,EAAEC,OACFV,EAAE,+BAA+BW,OAEzC,IAEC,IAAIyd,EAAa1E,WAAW1Z,EAAE,aAAamB,KAAK,eAAee,WAAWI,QAAQ,IAAK,MACvFS,OAAO,wBAAwB,GAAwBsb,SAAyB,GAAdD,EAGvB,SAAxCpe,EAAE,aAAamB,KAAK,kBACpBqb,IAGJI,IAEK7Z,OAAO,YAAY,GAAwBE,QAC5CjD,EAAE,qBAAqB8c,OAEvB9c,EAAE,qBAAqB6c,OAE3B7c,EAAE,qBAAqB+c,SACvB/c,EAAEC,UAAUC,GAAG,QAAS,oBAAoB,WACnC6C,OAAO,YAAY,GAAwBE,QAC5CjD,EAAE,qBAAqB8c,OAEvB9c,EAAE,qBAAqB6c,OAE3B7c,EAAE,qBAAqB+c,QAE3B,IACApd,EAASgc,aACb,EACgBhc,EAAAse,mBAAhB,SAAmCK,GAC/Bte,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,sBACLC,KAAM,CAAGmd,OAAUA,GACnBld,QAAS,SAAUC,GACfrB,EAAE,wBAAwB+D,YAAY1C,EAC1C,EACAqJ,SAAU,WACN/K,EAAS6b,kBAAkB7b,EAASic,sBAAsB3W,IAC1DtF,EAAS+b,sBACT/b,EAASgc,aACb,EACApZ,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EACgBlD,EAAA6b,kBAAiBA,EAgBjB7b,EAAA+b,oBAAhB,WACI,IAAI6C,EAAY5e,EAAS6e,qBACrB/C,EAAY9b,EAASic,sBAEzB5b,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,uBACLC,KAAM,CAAGsa,UAAaA,EAAW8C,UAAaA,GAC9Cnd,QAAS,SAAUC,GACfrB,EAAE,qBAAqB+D,YAAY1C,GACnC1B,EAASgc,aACb,EACApZ,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EACgBlD,EAAA8e,0BAAhB,SAA0ChD,GACtCD,EAAkBC,GAClB9b,EAAS+b,sBACTC,IACAiB,GACJ,EACgBjd,EAAA+e,yBAAhB,SAAyCjD,GACrC9b,EAAS+b,sBACTC,GACJ,EACgBhc,EAAAic,oBAAmBA,EAWnBjc,EAAA6e,mBAAhB,WACI,IAAIvZ,EAAKjF,EAAE,sDAAsDmB,KAAK,MACtE,OAAW,OAAP8D,EAAoB,EAAeA,CAC3C,EACgBtF,EAAAgc,YAAWA,EAOXhc,EAAAue,YAAhB,WACI,IAAIS,EAAsB5b,OAAO,+BAA+BC,OAAS,GAAOD,OAAO,+BAA+B,GAAwBE,QAC1I2b,EAAsB7b,OAAO,uBAAuBC,OAAS,GAAOD,OAAO,uBAAuB,GAAwBE,QAG1H4b,EAAsBjf,OAAOW,aAAa,SAC9C,IAAIoe,GAAyB/e,OAAOW,aAAa,SACjD,GAAMse,EAAN,CAKA,IAAIC,EAAiB/b,OAAO,oBAAoBC,OAAS,GAAOD,OAAO,oBAAoB,GAAwBE,QAC/G8b,EAAiBhc,OAAO,oBAAoBC,OAAS,GAAOD,OAAO,oBAAoB,GAAwBE,QAC/G+b,EAAkBjc,OAAO,qBAAqBC,OAAS,GAAOD,OAAO,qBAAqB,GAAwBE,QACtH,GAAK6b,GAAkBC,EAAvB,CAMA,IAAIE,EAAKjf,EAAE,UAAUkf,iBAAiBC,QAAO,CAACC,EAAKC,KAC/CD,EAAIC,EAAEC,MAAQD,EAAE5b,MACT2b,IACR,CAAA,GAECG,EAAKvf,EAAE,UAAUkf,iBAAiBC,QAAO,CAACC,EAAKC,KAC/CD,EAAIC,EAAEC,MAAQD,EAAE5b,MACT2b,IACR,CAAA,GAECI,EAAUjC,KAAKkC,MAAO1c,OAAO,aAAa,GAA2BU,OACrEic,EAAQnC,KAAKC,UAAU,CACvBmC,UAAWhB,EACXiB,mBAAoBhB,EACpBiB,WAAYlgB,EAASic,sBAAsB3W,GAAG/C,WAC9C4d,UAAWngB,EAASic,sBAAsBE,UAAU5Z,WACpD6d,SAAUpgB,EAASic,sBAAsBG,SACzCiE,YAAargB,EAASic,sBAAsBI,YAC5CiE,WAAYtgB,EAASic,sBAAsBK,WAC3CiE,SAAUvgB,EAAS6e,qBAAqBtc,WACxCie,GAAKpd,OAAO,OAAO,GAA2BU,MAC9C2c,IAAMrd,OAAO,QAAQ,GAA2BU,MAChD4c,kBAAmBpB,EACnBqB,cAAef,EACfgB,SAAWxd,OAAO,qBAAqB,GAA2BU,MAClE+c,UAAWxB,EACXyB,QAASjB,IAGbzc,OAAO,wBAAwB+L,KAAK,YAAY,GAEhD9O,EAAEgB,KAAK,CACHC,KAAM,OACNyf,YAAa,kCACbxf,IAAK,eACLC,KAAMue,EACNvd,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT1B,OAAO+gB,aAAa,eAAgB,CAAE1b,GAAI5D,EAAS4D,MAGnDlC,OAAO,wBAAwB+L,KAAK,YAAY,GAChDlP,OAAOyC,eAAehB,EAASG,QAAQU,WAAWI,QAAQ,KAAM,QAAS,WAEjF,EACAC,MAAO,SAAUC,EAAKC,EAAaC,GAC/BK,OAAO,wBAAwB+L,KAAK,YAAY,EACpD,GIinDJ,MJtqDIlP,OAAOyC,eAAgBU,OAAO,gBAAgB,GAAwBU,MAAO,UI+pDjF,MJvqDIV,OAAO,gBAAgB,GAAG6d,gBA+DlC,EACgBjhB,EAAAyc,aAAYA,EAoBZzc,EAAA6c,aAAYA,EAwBZ7c,EAAAwe,mBAAhB,SAAmC0C,EAAaC,GAEvCA,IAAaA,EAAc,MAChC,IAAIC,EAAyB,IAArB3d,OAAOsR,YAef,GAbW,GAAPmM,GAECzd,OAAe4d,QAAQC,OAAOC,KAAK,oBAAqBC,IACrD,GAAIA,EAAO,CACP,IAAIC,EAAaD,EAAME,MAAQ,KAAOF,EAAMG,WACxChE,EAASN,EAAcmE,EAAMlc,GAAGmc,EAAWD,EAAMI,OAAOJ,EAAMK,KAAKL,EAAMM,IAAIN,EAAMO,SACtF3e,OAAO,uDAAuD,GAAwB4e,aAAa,kBAAmBR,EAAMlc,IAC5HlC,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBrE,GACzHva,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBP,GACzHre,OAAO,+EAA+E,GAAwBoZ,UAAYiF,CIkpD/H,IJhpDD,CAAEM,QAASZ,IAEP,GAAPD,EAAU,CAEV,MAAMe,EAAiB,SAAUxY,GAC7B,GAA2B,iBAAvBA,EAAMjI,KAAK0gB,UACVze,OAAe0e,KAAKnM,QACjBvM,EAAMjI,MAAM,CACZ,IAAIigB,EAAahY,EAAMjI,KAAKggB,MAAM7B,KAAO,KAAOlW,EAAMjI,KAAKggB,MAAMY,QAC7DzE,EAASN,EAAc5T,EAAMjI,KAAK8D,GAAImc,EAAY,YAAahY,EAAMjI,KAAKggB,MAAMa,kBAAmB5Y,EAAMjI,KAAKggB,MAAMM,IAAKrY,EAAMjI,KAAKggB,MAAMO,SAC7I3e,OAAO,uDAAuD,GAAwB4e,aAAa,kBAAmBvY,EAAMjI,KAAK8D,IACjIlC,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBrE,GACzHva,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBP,GACzHre,OAAO,+EAA+E,GAAwBoZ,UAAYiF,CIipD/H,CJ9oDJhe,OAAOgP,oBAAoB,UAAWwP,EAC1C,EACAxe,OAAOiP,iBAAiB,UAAWuP,GACnChiB,OAAOqiB,iBAAiB,sGAAwGlB,EAAI,8BIipDxI,CJ/oDA,GAAW,GAAPF,EAAU,CAEV,MAAMe,EAAiB,SAAUxY,GAC7B,GAA2B,iBAAvBA,EAAMjI,KAAK0gB,UACVze,OAAe0e,KAAKnM,QACjBvM,EAAMjI,MAAM,CACZ,IAAIigB,EAAahY,EAAMjI,KAAKggB,MAAMY,QAC9BzE,EAASN,EAAc5T,EAAMjI,KAAK8D,GAAImc,EAAY,WAAYhY,EAAMjI,KAAKggB,MAAMa,kBAAmB5Y,EAAMjI,KAAKggB,MAAMM,IAAKrY,EAAMjI,KAAKggB,MAAMO,SAE5I3e,OAAO,uDAAuD,GAAwB4e,aAAa,kBAAmBvY,EAAMjI,KAAK8D,IACjIlC,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBrE,GACzHva,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBP,GACzHre,OAAO,+EAA+E,GAAwBoZ,UAAYiF,CI+oD/H,CJ5oDJhe,OAAOgP,oBAAoB,UAAWwP,EAC1C,EACAxe,OAAOiP,iBAAiB,UAAWuP,GACnChiB,OAAOqiB,iBAAiB,yGAA2GlB,EAAI,8BI+oD3I,CJ7oDA,GAAW,GAAPF,EAAU,CAEV,MAAMe,EAAiB,SAAUxY,GAC7B,GAAIA,EAAMjI,KAAK+gB,UAAW,CACrB9e,OAAe0e,KAAKnM,QACrB,IAAIyL,EAAahY,EAAMjI,KAAK+gB,UAAUC,YAAY7C,KAAO,KAAOlW,EAAMjI,KAAK+gB,UAAUE,kBACjF9E,EAASN,EAAc5T,EAAMjI,KAAK+gB,UAAUjd,GAAImc,EAAYhY,EAAMjI,KAAK+gB,UAAU7e,SAAS0e,QAAQR,OAAQnY,EAAMjI,KAAK+gB,UAAU7e,SAAS0e,QAAQP,KAAMpY,EAAMjI,KAAK+gB,UAAU7e,SAAS0e,QAAQN,IAAKrY,EAAMjI,KAAK+gB,UAAU7e,SAAS0e,QAAQL,SAE1O3e,OAAO,uDAAuD,GAAwB4e,aAAa,kBAAmBvY,EAAMjI,KAAK+gB,UAAUjd,IAC3IlC,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBrE,GACzHva,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBP,GACzHre,OAAO,+EAA+E,GAAwBoZ,UAAYiF,CI6oD/H,CJ3oDAhe,OAAOgP,oBAAoB,UAAWwP,EAC1C,EACAxe,OAAOiP,iBAAiB,UAAWuP,GACnChiB,OAAOqiB,iBAAiB,uIAAyIlB,EAAI,8BI6oDzK,CJ3oDA,GAAW,IAAPF,EAAW,CAEX,MAAMe,EAAiB,SAAUxY,GAC7B,GAAIA,GAASA,EAAMiZ,UAAW,CACzBjf,OAAe0e,KAAKnM,QAErB,IAAIyL,EAAahY,EAAMjI,KAAKA,KAAKme,KAAO,KAAOlW,EAAMjI,KAAKA,KAAKogB,OAAS,KAAOnY,EAAMjI,KAAKA,KAAKqgB,KAC3FlE,EAASN,EAAc5T,EAAMjI,KAAKA,KAAK8D,GAAImc,EAAYhY,EAAMjI,KAAKA,KAAKogB,OAAQnY,EAAMjI,KAAKA,KAAKqgB,KAAMpY,EAAMjI,KAAKA,KAAKmhB,QAASlZ,EAAMjI,KAAKA,KAAKugB,SAEjJ3e,OAAO,uDAAuD,GAAwB4e,aAAa,kBAAmBvY,EAAMjI,KAAKA,KAAK8D,IACtIlC,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBrE,GACzHva,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBP,GACzHre,OAAO,+EAA+E,GAAwBoZ,UAAYiF,CI0oD/H,CJxoDAhe,OAAOgP,oBAAoB,UAAWwP,EAC1C,EACAxe,OAAOiP,iBAAiB,UAAWuP,IAG2B,IADtC,CAAC,KAAM,KAAM,KAAM,MACrBzU,QAAQ2T,EAAY5T,gBACtCtN,OAAOqiB,iBAAiB,yJAA2JnB,EAAY5T,cAAe,khBAAmhB6T,EAAI,8BI0oD7uB,CJtoDA,GAAW,IAAPF,EAAW,CAEX,MAAMe,EAAiB,SAAUxY,GAC7B,GAAIA,GAASA,EAAMiZ,UAAW,CACzBjf,OAAe0e,KAAKnM,QAErB,IAAIyL,EAAahY,EAAMjI,KAAKohB,WAAWC,OAAOlD,KAAO,KAAOlW,EAAMjI,KAAKohB,WAAWC,OAAOT,QAAU,KAAO3Y,EAAMjI,KAAKohB,WAAWC,OAAOhB,KACnIlE,EAASN,EAAc5T,EAAMjI,KAAKohB,WAAWC,OAAOC,UAAWrB,EAAYhY,EAAMjI,KAAKohB,WAAWC,OAAOT,QAAS3Y,EAAMjI,KAAKohB,WAAWC,OAAOhB,KAAMpY,EAAMjI,KAAKohB,WAAWC,OAAOE,QAAStZ,EAAMjI,KAAKohB,WAAWC,OAAOG,SAE1N5f,OAAO,uDAAuD,GAAwB4e,aAAa,kBAAmBvY,EAAMjI,KAAKohB,WAAWC,OAAOC,WACnJ1f,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBrE,GACzHva,OAAO,uDAAuD,GAAwB4e,aAAa,qBAAsBP,GACzHre,OAAO,+EAA+E,GAAwBoZ,UAAYiF,CIqoD/H,CJnoDAhe,OAAOgP,oBAAoB,UAAWwP,EAC1C,EACAxe,OAAOiP,iBAAiB,UAAWuP,IAE2B,IADtC,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MACjCzU,QAAQ2T,EAAY8B,gBACtChjB,OAAOqiB,iBAAiB,4EAA8EnB,EAAY8B,cAAe,0BAA4B7B,EAAI,8BIsoDzK,CJnoDJ,CAiCH,CArfD,CAAUphB,WAAAA,SAAQ,CAAA,ICAlB,SAAUC,GACUA,EAAAwC,YAAhB,SAA4BygB,EAAKC,EAAMC,EAAU,KAC5C3f,OAAe0e,KAAKkB,KAAK,CACtBrd,KAAMkd,EACNI,OAAO,EACPnO,SAAU,UACVoO,mBAAmB,EACnBJ,KAAMA,EACNjJ,MAAOkJ,EACPI,kBAAkB,GAE1B,EAEgBvjB,EAAAyC,eAAhB,SAA+BwgB,EAAKC,GAC/B1f,OAAe0e,KAAKkB,KAAK,CACtBlf,KAAM+e,EACNK,mBAAmB,EACnBJ,KAAMA,GAEd,EACgBljB,EAAAqiB,iBAAhB,SAAiCne,GAE5BV,OAAeggB,KAAKJ,KAAK,CACtBK,MAAO,mCACPvf,KAAMA,EACNof,mBAAmB,EACnBI,kBAAkB,EAClBC,iBAAiB,EACjBC,KAAM,aACNC,QAAS,KACJrgB,OAAeggB,KAAKM,cACRzjB,SAAS4K,eAAe,eAC9BZ,OAAS,WACZ,MAAM0Z,EAAavgB,OAAeggB,KAAKQ,WACnCD,IACAA,EAAUE,MAAMC,QAAU,QAE7B1gB,OAAeggB,KAAKW,aACzB,CAAC,GAIb,EACgBnkB,EAAAmF,wBAAhB,SAAwC8d,EAAKmB,EAAeC,GACvD7gB,OAAe0e,KAAKkB,KAAK,CACtBlf,KAAM+e,EACNS,kBAAkB,EAClBY,kBAAmBF,EACnBG,iBAAkBF,EAClBG,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAa,CACTC,cAAe,uBACfC,aAAc,iCAEnBna,MAAMoa,IACDA,EAAOhhB,QACPL,OAAOC,SAASC,KAAO,QG+nE3B,GH5nER,EAEgB1D,EAAA0E,4BAAhB,SAA4Cue,EAAKC,EAAM4B,GAClDthB,OAAe0e,KAAKkB,KAAK,CACtBlf,KAAM+e,EACNK,mBAAmB,EACnBJ,KAAMA,IACPzY,MAAMoa,IACDA,EAAOhhB,OACQ,KAAXihB,IAAethB,OAAOC,SAASC,KAAOohB,EGgoE9C,GH7nER,EAEgB9kB,EAAA2B,yBAAhB,SAAyCshB,EAAK8B,EAAgBC,EAAwBX,EAAeriB,EAASf,GACzGuC,OAAe0e,KAAKkB,KAAK,CACtBK,MAAOzhB,EACPkC,KAAM+e,EACNC,KAAM,OACNQ,kBAAkB,EAClBuB,gBAAgB,EAChBX,kBAAmBS,EACnBG,eAAgBF,EAChBT,iBAAkBF,EAClBG,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAa,CACTC,cAAe,uBACfQ,WAAY,8BACZP,aAAc,iCAEnBna,MAAMoa,IAEDA,EAAOO,YACP5hB,OAAOC,SAASC,KAAO,+CAAiDzC,EACjE4jB,EAAOQ,WACd7hB,OAAOC,SAASC,KAAO,qDAAuDzC,EGgoElF,GH7nER,EACgBjB,EAAAme,mCAAhB,SAAmD8E,EAAK8B,EAAgBC,EAAwBX,EAAeriB,EAASf,GAEnHuC,OAAe0e,KAAKkB,KAAK,CACtBK,MAAOzhB,EACPkC,KAAM+e,EACNC,KAAM,OACNQ,kBAAkB,EAClBuB,gBAAgB,EAChBX,kBAAmBS,EACnBG,eAAgBF,EAChBT,iBAAkBF,EAClBG,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAa,CACTC,cAAe,yBACfQ,WAAY,8BACZP,aAAc,iDAElBf,QAAS,KAEL,MAAMyB,EAAUjlB,SAASgX,cAAc,kBACnCiO,IACAA,EAAQrB,MAAMC,QAAU,OACxBoB,EAAQrB,MAAMsB,eAAiB,SAC/BD,EAAQrB,MAAMuB,SAAW,QAG7B,MAAMZ,EAAevkB,SAASgX,cAAc,wBACxCuN,IACAA,EAAaX,MAAMC,QAAU,QAC7BU,EAAaX,MAAMxQ,MAAQ,MAC3BmR,EAAaX,MAAMwB,UAAY,SAC/Bb,EAAaX,MAAMyB,UAAY,OG8nEnC,IH3nELjb,MAAMoa,IAEDA,EAAOO,YACP5hB,OAAOC,SAASC,KAAO,+CAAiDzC,EACjE4jB,EAAOQ,WACd7hB,OAAOC,SAASC,KAAO,qDAAuDzC,EG8nElF,GH3nER,EAGgBjB,EAAAuD,8BAAhB,SAA8C0f,GACzCzf,OAAe0e,KAAKkB,KAAK,CACtBlf,KAAM+e,EACNC,KAAM,SACPzY,MAAK,KACJjH,OAAOC,SAASC,KAAO,GAAG,GAElC,EAEgB1D,EAAA2lB,YAAhB,SAA4BzS,EAAarP,GACrC,IAAIvC,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAClCpC,EAAIyH,SAASmK,EAAKrP,GAClBL,OAAO+L,QAAQC,UAAU,KAAM,KAAMlO,EAAImO,UAC7C,EAEgBzP,EAAA4lB,eAAhB,SAA+B1S,EAAarP,EAAgB,IACxD,IAAIvC,EAAM,IAAI0C,IAAIR,OAAOC,SAASC,MAC9BG,EAAMT,OAAS,EACf9B,EAAIiN,YAAY2E,EAAKrP,GAGrBvC,EAAIiN,YAAY2E,GAEpB1P,OAAO+L,QAAQC,UAAU,KAAM,KAAMlO,EAAImO,UAC7C,EAGgBzP,EAAA6lB,kBAAhB,WACI,IAAIC,EAAMtiB,OAAOC,SAASnB,WAC1B,GAAIwjB,EAAIvY,QAAQ,KAAO,EAAG,CACtB,IAAIwY,EAAYD,EAAIE,UAAU,EAAGF,EAAIvY,QAAQ,MAC7C/J,OAAO+L,QAAQ0W,aAAa,CAAA,EAAI5lB,SAASojB,MAAOsC,EG4nEpD,CH1nEJ,EAEgB/lB,EAAAW,aAAhB,SAA6BsB,GAkBzB,OAAiC,GAA7B7B,EAAE,IAAM6B,GAAUikB,UAClB9lB,EAAEiI,KAAKjI,EAAE,IAAM6B,GAAUkkB,WAAWC,WAAW,WAC3ChmB,EAAE,yBAA2Bc,KAAKyK,QAAQtG,GAAK,MAAMU,KAAK7E,KAAK+gB,SAC/D7hB,EAAE,yBAA2Bc,KAAKyK,QAAQtG,GAAK,MAAM4X,MACzD,KACO,EAKf,EAIgBjd,EAAA+gB,aAAhB,SAA6Bzf,EAAKC,GAC9B,IAAIW,EAAO7B,SAASgmB,cAAc,QAIlC,IAAK,IAAI3G,KAHTrf,SAASgP,KAAKiX,YAAYpkB,GAC1BA,EAAK6N,OAAS,OACd7N,EAAKqkB,OAASjlB,EACGC,EAAM,CACnB,IAAIoL,EAAQtM,SAASgmB,cAAc,SACnC1Z,EAAMtL,KAAO,SACbsL,EAAM+S,KAAOA,EACb/S,EAAM9I,MAAQtC,EAAKme,GACnBxd,EAAKokB,YAAY3Z,EG0mErB,CHxmEAzK,EAAK6O,QACT,EAEgB/Q,EAAAqQ,eAAhB,SAA+BxM,GAC3B,IAAI2iB,EAAU3iB,EAAQ,GAAM,EAAI,KAAO,GACvC,OAAO4iB,KAAKC,aAAa,QAAS,CAAEzC,MAAO,UAAW0C,SAAU,MAAO1f,sBAAwBpD,EAAQ,GAAM,EAAI,EAAI,IAAK6T,OAAO7T,GAAS2iB,CAC9I,EAEgBxmB,EAAAyc,yBAAhB,SAAyCxa,GACrC7B,EAAE,IAAM6B,EAAW,uBAAuBoG,MAAK,WAC3C,IAAIhD,EAAKjF,EAAEc,MAAMkF,KAAK,MACtBsW,eAAeC,QAAQtX,EAAIjF,EAAEc,MAAMC,MAAMmB,WAC7C,IACAlC,EAAE,IAAM6B,EAAW,2BAA2BoG,MAAK,WAC/C,IAAIhD,EAAKjF,EAAEc,MAAMkF,KAAK,MAClBhG,EAAEc,MAAMoL,GAAG,YAAeoQ,eAAeC,QAAQtX,EAAI,QAClDqX,eAAeC,QAAQtX,EAAI,QACtC,IACAjF,EAAE,IAAM6B,EAAW,WAAWoG,MAAK,WAC/B,IAAIhD,EAAKjF,EAAEc,MAAMkF,KAAK,MACtBsW,eAAeC,QAAQtX,EAAIjF,EAAEc,MAAMC,MAAMmB,WAC7C,GACJ,EAEgBtC,EAAA6c,2BAAhB,SAA2C5a,GACvC7B,EAAE,IAAM6B,EAAW,uBAAuBoG,MAAK,WAC3C,IAAIhD,EAAKjF,EAAEc,MAAMkF,KAAK,MAClBvC,EAAQ6Y,eAAeI,QAAQzX,GACnCjF,EAAEc,MAAMC,IAAI0C,EAChB,IACAzD,EAAE,IAAM6B,EAAW,2BAA2BoG,MAAK,WAC/C,IAAIhD,EAAKjF,EAAEc,MAAMkF,KAAK,MAET,QADDsW,eAAeI,QAAQzX,IACX,KAA4BtE,QAAU,KAA4BsC,SAAU,GAAgB,KAA4BA,SAAU,CAC9J,IACAjD,EAAE,IAAM6B,EAAW,WAAWoG,MAAK,WAC/B,IAAIhD,EAAKjF,EAAEc,MAAMkF,KAAK,MACY,MAA9BsW,eAAeI,QAAQzX,IAAajF,EAAEc,MAAMC,IAAIub,eAAeI,QAAQzX,IAAK+N,QACpF,GACJ,CACH,CAzQD,CAAUpT,SAAAA,OAAM,CAAA,ICAhB,SAAUC,GACUA,EAAAE,KAAhB,WACIC,EAAE,kBAAkBW,OAAM,SAAUyI,GAC3BxJ,OAAOW,aAAa,gBAEzBP,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,cAELC,KAAMnB,EAAE,gBAAgB+B,YACxBI,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,QACTtB,EAAE,8BAA8Be,IAAI,IACpCnB,OAAOyC,eAAehB,EAASG,QAAS,YAGxC5B,OAAOyC,eAAehB,EAASG,QAAQU,WAAWI,QAAQ,KAAM,QAAS,UAEjF,EACAC,MAAO,SAAUC,EAAKC,EAAaC,GAC/B9C,OAAOyC,eAAeG,EAAIK,OAAS,MAAQL,EAAIgkB,WAAY,QAC/D,GAGR,IAEIxmB,EAAE,sBAAsBgD,OAAS,GACjCpD,OAAO6lB,oBAGXzlB,EAAEC,UAAUC,GAAG,QAAS,sBAAsB,WAAcL,EAAM4mB,gBAAgB,eAAiB,GACvG,EAEgB5mB,EAAA4mB,gBAAhB,SAAgC5kB,GAEvBjC,OAAOW,aAAasB,KAEzB7B,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,mBACLC,KAAMnB,EAAE,IAAM6B,GAAUE,YACxBC,QAAS,CAAEC,yBAA4BjC,EAAE,IAAM6B,EAAW,6CAA6Cd,MAAMmB,YAC7GC,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,OACT1B,OAAOyC,eAAehB,EAASG,QAAQU,WAAY,WAGnDtC,OAAOyC,eAAehB,EAASG,QAAQU,WAAWI,QAAQ,KAAM,QAAS,UAEjF,EACAC,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAEJ7C,EAAE,IAAM6B,GAAUiB,YAAY,iBAClC,EAEgBjD,EAAA6mB,iBAAhB,WACI,IAAIC,EAAiBvjB,OAAewjB,oBACpCD,EAAcnM,IAAI,CACdqM,aAAc,KACdC,cAAc,EACdC,SAAS,EACTC,MAAO,EACPC,mBAAmB,EAEnBC,YAAa,CACTC,cAAe,CACXxO,OAAQ,MACR7D,SAAU,cACVsS,WAAY,SAEhBC,eAAgB,CACZ1O,OAAQ,MACRyO,WAAY,UAIpBE,SAAU,SAAUC,GACZZ,EAAca,gBAAgB,eACbpkB,OAAe8U,WAAa,IACnCkC,KAAK,CAAEhR,MAAO,gBAAiBqe,YAAa,cAGtDd,EAAca,gBAAgB,eACbpkB,OAAe8U,WAAa,IACnCkC,KAAK,CAAEhR,MAAO,gBAAiBqe,YAAa,aAGtDd,EAAca,gBAAgB,eACbpkB,OAAe8U,WAAa,IACnCkC,KAAK,CAAEhR,MAAO,gBAAiBqe,YAAa,eAE9D,EAEAC,UAAW,CACPC,GAAM,CACFR,cAAe,CACX9D,MAAO,oBACPuE,YAAa,0MACbC,YAAa,CACTliB,KAAM,eACNmiB,KAAM,cAEVC,cAAe,CACXpiB,KAAM,oBACNmiB,KAAM,aAGdT,eAAgB,CACZhE,MAAO,oBACP2E,kBAAmB,mBACnBC,eAAgB,eAChBC,eAAgB,gBAChBC,gBAAiB,SACjBC,OAAQ,CACJ,CACI/E,MAAO,yBACPuE,YAAa,yTACd,CACCvE,MAAO,oBACPuE,YAAa,yDACb7K,OAAQ,CACJtZ,MAAO,YACP6M,SAAS,EACT+X,UAAU,IAEf,CACChF,MAAO,qBACPuE,YAAa,0FACb7K,OAAQ,CACJtZ,MAAO,YACP6M,SAAS,EACT+X,UAAU,IAEf,CACChF,MAAO,uBACPuE,YAAa,8JACb7K,OAAQ,CACJtZ,MAAO,YACP6M,SAAS,EACT+X,UAAU,UASjC1B,EAAc2B,YAAY,eACVllB,OAAe8U,WAAa,IACnCkC,KAAK,CAAEhR,MAAO,gBAAiBqe,YAAa,SAE9D,CACH,CA7JD,CAAU5nB,QAAAA,MAAK,CAAA,IGAfG,GAAE,WAEER,QAAQO,OAGRN,KAAKM,OAIDC,EAAE,wBAAwBgD,OAAS,GAAGrD,SAASI,OAGnDD,SAASC,OAGTL,QAAQK,OAGRF,MAAME,OAKNF,MAAM6mB,kBACV,IFxBA,SAAU5mB,GAgDN,SAAgByoB,IACRvoB,EAAE,aAAagD,OAAS,GACxBhD,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,iCACLE,QAAS,SAAUC,GACf,IAAIyC,EAAO9D,EAAEqB,GACbrB,EAAE,sBAAsB+D,YAAYD,EAAKwB,KAAK,sBAClD,EACA/C,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,IAGR2lB,GACJ,CAEA,SAASA,IACLxoB,EAAEgB,KAAK,CACHC,KAAM,MACNC,IAAK,mBACLE,QAAS,SAAUC,GACfrB,EAAE,mCAAmC8D,KAAKzC,EAASonB,MAAMvmB,WAC7D,EACAK,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,GAER,CA3EgB/C,EAAAC,KAAhB,WACIC,EAAEC,UAAUC,GAAG,QAAS,6BAA6B,WAAcJ,EAAS4oB,mBAAmB1oB,EAAEc,MAAMK,KAAK,MAAQ,IACpHnB,EAAEC,UAAUC,GAAG,QAAS,kDAAkD,WAAcJ,EAAS6oB,cAAc3oB,EAAEc,MAAMK,KAAK,MAAQ,IACpInB,EAAEC,UAAUC,GAAG,QAAS,yCAAyC,WAAcJ,EAAS6oB,cAAc3oB,EAAEc,MAAMK,KAAK,MAAQ,GAE/H,EAEgBrB,EAAA6oB,cAAhB,SAA8BjkB,GAC1B1E,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,iBACLC,KAAM,CAAGuD,UAAaA,EAAWf,UAAaP,OAAOC,SAASulB,UAC9DzmB,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,QACTknB,IACA5oB,OAAOwC,YAAYf,EAASG,QAAS,UAAW,MAGhD5B,OAAOyC,eAAehB,EAASG,QAAS,UAEhD,EACAe,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EACgB/C,EAAA4oB,mBAAhB,SAAmCzjB,GAC/BjF,EAAEgB,KAAK,CACHC,KAAM,OACNC,IAAK,sBACLC,KAAM,CAAE8D,GAAMA,GACd9C,SAAU,OACVf,QAAS,SAAUC,GACQ,GAAnBA,EAASC,QACTinB,IACA3oB,OAAOwC,YAAYf,EAASG,QAAS,OAAQ,MAG7C5B,OAAOyC,eAAehB,EAASG,QAAS,QAChD,EACAe,MAAO,SAAUC,EAAKC,EAAaC,GAC/BC,QAAQC,IAAIJ,EAAIK,OACpB,GAER,EAEgB/C,EAAAyoB,gBAAeA,CA6BlC,CA7ED,CAAUzoB,WAAAA,SAAQ,CAAA","file":"site.min.js","sourcesContent":["namespace Account {\r\n export function Init() {\r\n $(document).on(\"click\", '[data-save-form=\"formF\"]', function () { Account.Update('formF', $('#formF'), '/account/update-billing-address'); })\r\n $(document).on(\"click\", '[data-save-form=\"formD\"]', function () { Account.Update('formD', $('#formD'), '/account/update-delivery-address'); })\r\n $(document).on(\"click\", '[data-save-form=\"formO\"]', function () { Account.Update('formO', $('#formO'), '/account/update-other-info-klient'); })\r\n $(document).on(\"click\", '#btnSendResetRequest', function () { Account.ForgotPassword('frmForgotPassword'); })\r\n $(document).on(\"click\", '#btnChangePassword', function () { Account.ChangePassword('frmChangePassword'); })\r\n $(document).on(\"click\", '#btnResetPassword', function () { Account.ResetPassword('frmResetPassword'); })\r\n $(document).on(\"change\", '#frmForgotPassword', function () { if (!Common.formValidate('frmForgotPassword')) return; })\r\n //$(document).on(\"change\", '#frmResetPassword', function () { if (!Common.formValidate('frmResetPassword')) return; })\r\n $(document).on(\"click\", '#btn-register', function () { Account.Register(); })\r\n $(document).on('keypress', '[name=\"Email\"],[name=\"Password\"]', function (e) {\r\n if (e.which == 13) {\r\n $('#frmLogin [name=\"Login\"]').click();\r\n }\r\n });\r\n $(document).on('keypress', '#frmChangePassword [name=\"CurrentPassword\"],#frmChangePassword [name=\"NewPassword\"],#frmChangePassword [name=\"ConfirmPassword\"]', function (e) {\r\n if (e.which == 13) {\r\n Account.ChangePassword('frmChangePassword');\r\n }\r\n });\r\n $('#registration-form [name=\"Email\"]').focusout(function (e) {\r\n var email = $(this).val();\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/account/check-email\",\r\n data: { 'email': email },\r\n success: function (response) {\r\n if (response.Result != true) {\r\n Common.showCheckEmailMessageBox(response.Message, response.LoginCaption, response.ResetPasswordCaption, response.Back, response.Caption, email);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n export function Update(formName, form, url) {\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: url,\r\n data: form.serialize(),\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessage(response.Message, 'success', 1000);\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status, 'error');\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function Register() {\r\n var formName = 'registration-form';\r\n if (!Common.formValidate(formName)) return;\r\n var checkedConsent = (jQuery(\"#checkConsent\").length > 0) && (jQuery(\"#checkConsent\")[0] as HTMLInputElement).checked;\r\n if (!checkedConsent) {\r\n Common.showMessageBox((jQuery(\"#errTermsMsg\")[0] as HTMLInputElement).value, 'warning');\r\n return;\r\n }\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/register\",\r\n data: $('#' + formName).serialize(),\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n if (response.NeedActivation == true) {\r\n Common.showActivateAccountMessageBox(response.Message.toString());\r\n } else {\r\n window.location.href = \"/\";\r\n }\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n (window as any).grecaptcha.reset();\r\n }\r\n\r\n export function Login(returnUrl) {\r\n var formName = 'frmLogin';\r\n if (!Common.formValidate(formName)) return;\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/login?returnUrl=\" + returnUrl,\r\n data: $('#frmLogin').serialize(),\r\n headers: { \"RequestVerificationToken\": $('#frmLogin' + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n success: function (response) {\r\n if (response.Result == false) {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n } else if (response.Result == true) {\r\n var _url = new URI(window.location.href);\r\n \r\n if ((_url.path() == \"/login\") && (returnUrl.length == 0)) {\r\n\r\n window.location.href = '/';\r\n }\r\n else {\r\n window.location.href = returnUrl;\r\n }\r\n } else {\r\n var html = $(response);\r\n $('.block').replaceWith(html.filter('.block'));\r\n }\r\n },\r\n error: function (xhr) {\r\n alert(xhr.status);\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function ForgotPassword(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n var returnUrl = (new URLSearchParams(window.location.search)).get('ReturnUrl');\r\n var _url = \"/forgot-password\";\r\n if (returnUrl != null) _url = \"/forgot-password?ReturnUrl=\" + returnUrl;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: _url,\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function ChangePassword(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/change-password\",\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n $('[name=\"CurrentPassword\"]').val('');\r\n $('[name=\"NewPassword\"]').val('');\r\n $('[name=\"ConfirmPassword\"]').val('');\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function ResetPassword(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/reset-password\",\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showResetPasswordMessageBox(response.Message, 'success', response.ReturnUrl)\r\n }\r\n else {\r\n Common.showResetPasswordMessageBox(response.Message, 'warning','');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function SendConfirmationEmail(formName) {\r\n if (!Common.formValidate(formName)) return;\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/unconfirm-email\",\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#' + formName).serialize(),\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n}","namespace Cart {\r\n export var cartCountDownInterval = -1;\r\n\r\n export function Init() {\r\n $(document).on(\"click\", '#cart-info .dropcart__product-remove', function () { Cart.RemoveFromCart($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.cart-table__body .cart-table__column--remove', function () { Cart.RemoveFromCart($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.product-card__actions .product-card__addtocart', function () { Cart.AddToCart($(this).data(\"id\"), $(this).data(\"amount\")); })\r\n $(document).on(\"click\", '.wishlist__column--tocart', function () { Cart.AddToCart($(this).data(\"id\"), $(this).data(\"amount\")); })\r\n //$(document).on(\"click\", '#cart-info-mobile .indicator__button ', function (e) { Cart.refreshCartWidget(true); e.stopPropagation(); })\r\n $(document).on(\"click\", '#planetwe-check', function () {\r\n Cart.SazimeCeskoAddToCart((jQuery(\"#planetwe-check\")[0] as HTMLInputElement).checked);\r\n });\r\n $(document).on(\"click\", '#cart-info .indicator__button ', function () { Cart.refreshCartWidget(true); })\r\n $(document).on(\"click\", '*[name=\"voucher-in-cart\"] button', function () { Cart.RemoveFromCart($(this).data(\"id\")); })\r\n $(document).on('keypress', '.cart__coupon-form input', function (e) {\r\n if (e.which == 13) {\r\n $('.cart__coupon-form button').click();\r\n }\r\n });\r\n\r\n if ($('.owl-carousel').length > 0) {\r\n $('.owl-carousel').data('owl.carousel').options.loop = false;\r\n $('.owl-carousel').data('owl.carousel').options.rewind = true;\r\n $('.owl-carousel').trigger('refresh.owl.carousel');\r\n }\r\n ShowCountDown();\r\n }\r\n\r\n export function AddToCart(productID, amount) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/addtocart',\r\n data: ({ 'productID': productID, 'amount': amount }),\r\n success: function (response) {\r\n if (typeof response == \"object\") {\r\n Common.showMessageBox(response.Message, 'info');\r\n RefreshCartInfo();\r\n }\r\n else if (typeof response == \"string\") {\r\n if ($(\".cart\").length > 0) {\r\n window.location.reload();\r\n window.scrollTo(0, 0);\r\n } else {\r\n Common.showAddToCartMessageBox(response, $(response).data(\"tocartcaption\"), $(response).data(\"tobackcaption\"));\r\n RefreshCartInfo();\r\n }\r\n }\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function AddVoucherToCart(voucher) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/addvouchertocart',\r\n data: ({ 'voucher': voucher }),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessage(response.Message, 'success', 1200);\r\n RefreshCartInfo();\r\n }\r\n else Common.showMessageBox(response.Message, 'warning');\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function UpdateCart(productID, amount) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/addtocart',\r\n data: ({ 'productID': productID, 'amount': amount, 'updateOnly': true }),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n RefreshCartInfoPartial();\r\n }\r\n else Common.showMessageBox(response.Message, 'info');\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function RemoveFromCart(id) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/removefromcart',\r\n data: { 'id': id },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n if (($(\"#checkoutSumCart\").length > 0) || ($(\".cart\").length > 0)) {\r\n window.location.reload();\r\n }\r\n RefreshCartInfo(true);\r\n Common.showMessage(response.Message, 'info', 900);\r\n }\r\n else\r\n Common.showMessageBox(response.Message, 'error');\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function RefreshCartInfo(refreshDropdown = false) {\r\n refreshCartWidget(refreshDropdown);\r\n if ($(\".cart\").length > 0) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/cart?partial=true',\r\n success: function (response) {\r\n var html = $(response);\r\n $('.cart.block').replaceWith(html.filter('.cart.block'));\r\n (window as any).$('.input-number').customNumber();\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n }\r\n export function RefreshCartInfoPartial(refreshDropdown = false) {\r\n refreshCartWidget(refreshDropdown);\r\n if ($(\".cart\").length > 0) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/cart?partial=true',\r\n success: function (response) {\r\n var html = $(response);\r\n $('.cart__table.cart-table').replaceWith(html.find('.cart__table.cart-table'));\r\n $('.cart__totals').replaceWith(html.find('.cart__totals'));\r\n (window as any).$('.input-number').customNumber();\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n }\r\n\r\n export function refreshCartWidget(refreshDropdown = false) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcartinfo?refreshDropdown=' + refreshDropdown,\r\n async: true,\r\n beforeSend: function () { $('#cart-info .dropcart__body').addClass(\"btn-loading\"); },\r\n success: function (response) {\r\n var html = $(response);\r\n var cnt = html.find('.indicator__value');\r\n $('#cart-info .indicator__value').replaceWith(html.find('.indicator__value'));\r\n if (refreshDropdown) $('#cart-info .dropcart__body').replaceWith(html.find('.dropcart__body'));\r\n $('#cart-info-mobile .indicator__value').html(cnt.text());\r\n },\r\n error: function (xhr) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function ShowCountDown() {\r\n SetSazimeCesko();\r\n var countDownDate: number = new Date($('meta[id=cartExpirationDate]').attr(\"content\")).getTime();\r\n if (!countDownDate) return;\r\n\r\n var countDown = function () {\r\n var now = new Date().getTime();\r\n var distance = countDownDate - now;\r\n var hours = Math.floor((distance % (1000 * 60 * 60 * 60)) / (1000 * 60 * 60));\r\n var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n var seconds = Math.floor((distance % (1000 * 60)) / 1000);\r\n if (distance > 0) {\r\n var sTime = minutes.toLocaleString('en', { minimumIntegerDigits: 2, minimumFractionDigits: 0, useGrouping: false }) + \":\" + seconds.toLocaleString('en', { minimumIntegerDigits: 2, minimumFractionDigits: 0, useGrouping: false });\r\n if (hours > 0) {\r\n sTime = hours.toLocaleString('en', { minimumIntegerDigits: 1, minimumFractionDigits: 0, useGrouping: false }) + \":\" + sTime;\r\n }\r\n $(\"#cartExpiration\").html(sTime);\r\n }\r\n else {\r\n clearInterval(cartCountDownInterval);\r\n $(\"#cartExpiration\").html(\"00:00\");\r\n window.location.reload();\r\n }\r\n SetSazimeCesko();\r\n };\r\n\r\n countDown();\r\n\r\n if (cartCountDownInterval < 0) {\r\n cartCountDownInterval = setInterval(countDown, 1000);\r\n }\r\n\r\n }\r\n export function SazimeCeskoAddToCart(add) {\r\n if (jQuery(\"#planetwe-check\").length == 0) return;\r\n\r\n var productID = $(\"#sazimecesko-box\").data(\"product-id\");\r\n\r\n if (add === true) { AddToCart(productID, 1) }\r\n else {\r\n var cartID = $(\"[data-product-id='\" + productID + \"']\").attr('data-id');\r\n console.log(productID);\r\n console.log(cartID);\r\n RemoveFromCart(cartID)\r\n }\r\n }\r\n\r\n function SetSazimeCesko() {\r\n if (jQuery(\"#sazimecesko-box\").length == 0) return;\r\n if (jQuery(\"#planetwe-check\").length > 0) {\r\n (jQuery(\"#planetwe-check\")[0] as HTMLInputElement).checked = (jQuery(\"#sazimecesko-box\").attr('data-checked') == undefined);\r\n } else { (window as any).createTile(); }\r\n }\r\n}","namespace Catalog {\r\n export function Init() {\r\n\r\n // bannery eshop\r\n ResizeBanner();\r\n\r\n // disable KategItem link\r\n $(\"#filter-menu a\").click(function (event) {\r\n event.preventDefault();\r\n });\r\n\r\n // KategItem click\r\n $(\"a[data-type='kateg-item']\").click(function (event) {\r\n var key = $(this).attr(\"data-key\");\r\n var value = $(this).attr(\"data-value\");\r\n var _ord = \"\";\r\n\r\n $(\".filter-categories-alt__item--current\").removeClass(\"filter-categories-alt__item--current\");\r\n $(this).parent().addClass(\"filter-categories-alt__item--current\");\r\n\r\n var url = new URI(window.location.href);\r\n if (url.hasQuery(\"order\") === true) {\r\n _ord = url.query(true).order.toString();\r\n }\r\n\r\n url.search(\"\");\r\n url.addQuery(key, value);\r\n if (_ord.length > 0) {\r\n url.addQuery(\"order\", _ord);\r\n }\r\n SetURL(url);\r\n\r\n // pokud je mobilní tak zavřít filtr\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n\r\n GetProductsAsync(false);\r\n //ScrollToTop();\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n GetHTMLAsync();\r\n $(\"#filter-tags-par\").empty();\r\n\r\n event.preventDefault();\r\n });\r\n\r\n //$(function () {\r\n // var resizeEnd;\r\n // $(window).on('resize', function () {\r\n // clearTimeout(resizeEnd);\r\n // resizeEnd = setTimeout(function () {\r\n // $(window).trigger('resize-end');\r\n // }, 300);\r\n // });\r\n //});\r\n\r\n //$(window).on('resize-end', function () {\r\n // ResizeBanner();\r\n //});\r\n\r\n // Product sorting\r\n $(\"#product-sorting\").change(function (event) {\r\n var key = $(this).children('option:selected').data('key');\r\n var value = $(this).children('option:selected').data('value');\r\n\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n url.removeQuery(\"order\");\r\n url.addQuery(key, value);\r\n SetURL(url);\r\n\r\n GetProductsAsync(false);\r\n event.preventDefault();\r\n });\r\n\r\n $(\"#btn-load-next\").click(function (event) {\r\n var url = new URI(window.location.href);\r\n var _pg = 1;\r\n if (url.hasQuery(\"page\") === true) {\r\n _pg = parseInt(url.query(true).page.toString());\r\n if (!_pg) { _pg = 1; }\r\n }\r\n\r\n _pg++;\r\n\r\n url.removeQuery(\"page\");\r\n url.addQuery(\"page\", _pg.toString());\r\n SetURL(url);\r\n\r\n GetProductsAsync(true);\r\n event.preventDefault();\r\n });\r\n\r\n $(\"#btn-reset-filter\").click(function (event) {\r\n ResetFilter();\r\n });\r\n\r\n $('.filters-button').off('click').on('click', function (e) {\r\n OpenFilter();\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n SetCheckBox();\r\n e.preventDefault();\r\n });\r\n\r\n $('.departments__button').click(function (event) {\r\n if (($('div.departments--open').length == 0) && ($('div.departments--fixed').length == 0)) {\r\n if ($(this).attr('data-loaded') == undefined) {\r\n GetCategMenu();\r\n }\r\n }\r\n });\r\n\r\n $('[data-button-kateg]').on('click', function () {\r\n if ($('#mobile_menu_kateg').attr('data-loaded') == undefined) {\r\n GetCategMobileMenu();\r\n }\r\n });\r\n\r\n window.onpopstate = function (event) {\r\n if (event && event.state) {\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n\r\n GetProductsAsync(false);\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n GetHTMLAsync();\r\n ScrollToTop();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n // pokud je desktop tak se načtou checkBox filtry\r\n if (!IsMobileViewPort() && IsCatalog()) {\r\n GetFilterAsync();\r\n SetCheckBox();\r\n };\r\n\r\n SetTooltip('label-left', 'right');\r\n SetTooltip('label-right', 'left');\r\n\r\n // našeptávač ve vyhledávání\r\n AutocompleteSearchSetup();\r\n\r\n SetSliders();\r\n if (IsDetail()) {\r\n GetPodobne();\r\n };\r\n\r\n $('.gallery').each(function (index, value) {\r\n (window as any).baguetteBox.run('.gallery', { buttons: true });\r\n });\r\n\r\n $('.layout-switcher__button').on('click', function () {\r\n document.cookie = \"dlazdicetype=\" + $(this).attr(\"data-layout\");\r\n }); \r\n }\r\n\r\n export function SetTooltip(id: string, placement: string) {\r\n if ((window as any).$(\"[name='images']\").length == 0) return;\r\n\r\n (window as any).$(\"[data-toggle='\" + id + \"']\").each(function (index, value) {\r\n (window as any).$(this).popover({\r\n html: true,\r\n trigger: 'hover',\r\n placement: placement,\r\n //container: $(this) \r\n });\r\n });\r\n }\r\n\r\n export function PageLink(page: number) {\r\n var url = new URI(window.location.href);\r\n if (url.hasQuery(\"page\") === true) { url.removeQuery(\"page\"); }\r\n\r\n url.addQuery(\"page\", page.toString());\r\n SetURL(url);\r\n ScrollToTop();\r\n GetProductsAsync(false);\r\n }\r\n\r\n export function DeleteFilterTag(prop: number, value: number) {\r\n $(\".select-value[data-tag-prop='\" + prop + \"'][data-tag-value='\" + value + \"']\").remove();\r\n // pokud už není žádný tag, tak se vymaže skupina\r\n if ($(\".select-value[data-tag-prop='\" + prop + \"']\").length == 0) {\r\n $(\".select-param[data-tag-prop='\" + prop + \"']\").remove();\r\n }\r\n if ($(\".select-value[data-tag-value='-1']\").length == 0) {\r\n $(\".select-param[data-tag-prop='tags']\").remove();\r\n }\r\n if ($(\"#select-params .select-param\").length == 0) {\r\n $(\"#filter-tags-par\").empty();\r\n }\r\n\r\n var url = new URI(window.location.href);\r\n if (value == -1) {\r\n // štítky\r\n url.removeQuery(prop.toString());\r\n }\r\n else {\r\n url.removeQuery(prop.toString(), value.toString());\r\n }\r\n SetURL(url);\r\n\r\n GetProductsAsync(false);\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n event.preventDefault();\r\n }\r\n\r\n export function ResetFilter() {\r\n var _ord = \"\";\r\n var _kat = \"\";\r\n var url = new URI(window.location.href);\r\n if (url.hasQuery(\"kat\") === true) {\r\n _kat = url.query(true).kat.toString();\r\n }\r\n if (url.hasQuery(\"order\") === true) {\r\n _ord = url.query(true).order.toString();\r\n }\r\n\r\n url.search(\"\");\r\n if (_kat.length > 0) { url.addQuery(\"kat\", _kat); }\r\n if (_ord.length > 0) { url.addQuery(\"order\", _ord); }\r\n SetURL(url);\r\n\r\n $(\"#filter-tags-par\").empty();\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n if (!IsMobileViewPort()) {\r\n GetFilterAsync();\r\n GetPriceSliderAsync();\r\n };\r\n ScrollToTop();\r\n event.preventDefault();\r\n }\r\n\r\n export function AutocompleteSearchSetup() {\r\n (window as any).$(\"#searchForm\").easyAutocomplete(GetAutocompleteSearchOpt(\"desktop\"));\r\n (window as any).$(\"#searchFormMobile\").easyAutocomplete(GetAutocompleteSearchOpt(\"mobile\"));\r\n\r\n $(document).on('click', 'body', function () {\r\n if ($(\".easy-autocomplete-container\")) {\r\n $(\".easy-autocomplete-container\").trigger(\"blur\");\r\n $(\".easy-autocomplete-container\").trigger(\"hide.eac\");\r\n }\r\n });\r\n }\r\n\r\n function SetSliders() {\r\n $('.slider-value').each(function (i, element) {\r\n const min = $(element).data('min');\r\n const max = $(element).data('max');\r\n if (min == max) {\r\n return;\r\n }\r\n\r\n const from = $(element).data('from');\r\n const to = $(element).data('to');\r\n const slider = element.querySelector('.filter-price__slider');\r\n\r\n (window as any).noUiSlider.create(slider, {\r\n start: [from, to],\r\n connect: true,\r\n step: 1,\r\n direction: 'ltr',\r\n range: {\r\n 'min': min,\r\n 'max': max\r\n },\r\n format: (window as any).wNumb({\r\n decimals: 0,\r\n thousand: \" \"\r\n //suffix: \",-\"\r\n })\r\n });\r\n\r\n const titleValues = [\r\n $(element).find('.filter-price__min-value')[0],\r\n $(element).find('.filter-price__max-value')[0]\r\n ];\r\n\r\n (slider as any).noUiSlider.on('update', function (values, handle) {\r\n titleValues[handle].innerHTML = values[handle];\r\n });\r\n\r\n if (slider.id == 'slider-price') {\r\n (slider as any).noUiSlider.on(\"change\", function (values, handle, unencoded, isTap, positions) {\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n url.removeQuery(\"p-min\");\r\n url.removeQuery(\"p-max\");\r\n if ((positions[0] != 0) || (positions[1] != 100)) {\r\n url.addQuery(\"p-min\", values[0].toString().replace(' ', ''));\r\n url.addQuery(\"p-max\", values[1].toString().replace(' ', ''));\r\n }\r\n SetURL(url);\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n GetFilterJSON();\r\n });\r\n } else {\r\n (slider as any).noUiSlider.on(\"change\", function (values, handle, unencoded, isTap, positions) {\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n url.removeQuery(slider.id);\r\n if ((positions[0] != 0) || (positions[1] != 100)) {\r\n url.addQuery(slider.id, values[0].toString().replace(' ', '') + ';' + values[1].toString().replace(' ', ''));\r\n }\r\n //SetURL(url);\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n GetFilterJSON();\r\n GetPriceSliderAsync();\r\n });\r\n }\r\n });\r\n }\r\n\r\n async function GetProductsAsync(append: boolean) {\r\n return await GetProducts(append);\r\n }\r\n\r\n function GetProducts(append: boolean) {\r\n try {\r\n $(\"#loader\").addClass(\"loading\");\r\n\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n //var _IsWebPSupport = (function () {\r\n // var webP = new Image();\r\n // webP.onload = (window as any).WebP.onerror = function () {\r\n // (window as any).callback(webP.height == 2);\r\n // };\r\n // webP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';\r\n //}) ? true : false;\r\n\r\n var _accept = \"text/plain; charset=utf-8\";\r\n //if (_IsWebPSupport) _accept = \"image/webp; charset=utf-8\";\r\n\r\n var _IsWebPSupport = (function () {\r\n return new Promise((resolve) => {\r\n var webP = new Image();\r\n webP.onload = () => resolve(webP.height === 2);\r\n webP.onerror = () => resolve(false);\r\n webP.src = 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSywA/veff/0PP8bA//LwYAAA==';\r\n });\r\n })();\r\n\r\n _IsWebPSupport.then((supported) => {\r\n var _accept = supported ? \"image/webp; charset=utf-8\" : \"text/plain; charset=utf-8\";\r\n });\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': 'zbozi' },\r\n headers: {\r\n Accept: _accept\r\n },\r\n success: function (response) {\r\n var html = $(response);\r\n if (append) {\r\n $('.products-list__body').append(html.find('.products-list__body').html());\r\n } else {\r\n $('.products-list__body').replaceWith(html.find('.products-list__body'));\r\n }\r\n $('.pagination').replaceWith(html.find('.pagination'));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n //showMessage(xhr.status, 'error');\r\n },\r\n complete: function () {\r\n $(\"#loader\").removeClass(\"loading\");\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetPriceSliderAsync() {\r\n return await GetPriceSlider();\r\n }\r\n\r\n function GetPriceSlider() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': \"price\" },\r\n success: function (response) {\r\n const _proc = $(response).find('#product-price');\r\n if (_proc.data(\"min\") != _proc.data(\"max\")) {\r\n const _slider = document.getElementById(\"slider-price\");\r\n (_slider as any).noUiSlider.updateOptions({\r\n start: [_proc.data(\"from\"), _proc.data(\"to\")],\r\n range: {\r\n 'min': _proc.data(\"min\"),\r\n 'max': _proc.data(\"max\"),\r\n }\r\n });\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetFilterAsync() {\r\n return await GetFilter();\r\n }\r\n\r\n function GetFilter() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': \"filter\" },\r\n success: function (response) {\r\n var html = $(response);\r\n $('#filter-properties').replaceWith(html);\r\n SetFilterMenu();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetHTMLAsync() {\r\n return await GetHTML();\r\n }\r\n\r\n function GetHTML() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'routa': _path, 'query': _query, 'view': \"html\", 'url': _url.toString() },\r\n success: function (response) {\r\n var _bread = $($.parseHTML(response)).filter(\"#breadcrumbs\").html();\r\n if (_bread != undefined) $('#breadcrumbs').html(_bread);\r\n\r\n $('#html-catalog').empty();\r\n $('#html-catalog').append($(response).filter(\"#html-h1\"));\r\n $('#html-catalog').append($(response).filter(\"#html-top\"));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n async function GetTagsAsync() {\r\n return await GetTags();\r\n }\r\n\r\n function GetTags() {\r\n try {\r\n var _url = new URI(window.location.href);\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcatalog',\r\n data: { 'query': _query, 'view': 'tags' },\r\n success: function (response) {\r\n $('#filter-tags-par').html(response);\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n //showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n function GetPodobne() {\r\n try {\r\n const dataLayer = (window as any).dataLayer;\r\n const itemID = dataLayer?.find((entry: any) => entry?.ecommerce?.items)?.ecommerce?.items[0]?.item_id;\r\n const categID = dataLayer?.find((entry: any) => entry?.ecommerce?.items)?.ecommerce?.items[0]?.item_categoryID;\r\n\r\n if (!(itemID && categID)) {\r\n return;\r\n }\r\n\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getpodobne',\r\n data: { 'zboziID': itemID, 'kategorieID': categID },\r\n success: function (response) {\r\n $('#PodobneZbozi').html(response); \r\n initializeCarousel();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n function ScrollToTop() {\r\n //return;\r\n $('html, body').animate({\r\n scrollTop: $(\"#breadcrumbs\").offset().top - 50\r\n }, 0);\r\n }\r\n\r\n function SetFilterMenu() {\r\n //SetSliders(false);\r\n SetCheckBox();\r\n\r\n $('[data-collapse]').each(function (i, element) {\r\n const collapse = element;\r\n\r\n $('[data-collapse-trigger].filter__title', collapse).on('click', function () {\r\n const openedClass = $(this).closest('[data-collapse-opened-class]').data('collapse-opened-class');\r\n const item = $(this).closest('[data-collapse-item]');\r\n const content = item.children('[data-collapse-content]');\r\n const itemParents = item.parents();\r\n\r\n itemParents.slice(0, itemParents.index(collapse) + 1).filter('[data-collapse-item]').css('height', '');\r\n\r\n if (item.is('.' + openedClass)) {\r\n const startHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n item.removeClass(openedClass);\r\n\r\n content.height(); // force reflow\r\n content.css('height', '');\r\n } else {\r\n const startHeight = content.height();\r\n\r\n item.addClass(openedClass);\r\n\r\n const endHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n content.height(); // force reflow\r\n content.css('height', endHeight + 'px');\r\n }\r\n\r\n $('[data-collapse-content]', collapse).on('transitionend', function (event) {\r\n if ((event.originalEvent as any).propertyName === 'height') {\r\n $(this).css('height', '');\r\n }\r\n });\r\n });\r\n\r\n });\r\n\r\n $('.filter-list--searchable').each(function () {\r\n const filter = $(this);\r\n const input = filter.find('.filter-list__search input');\r\n const list = filter.find('.filter-list__list');\r\n const items = filter.find('.filter-list__item').toArray().map(function (item) { return $(item); });\r\n const ps = new (window as any).PerfectScrollbar(list[0], {\r\n wheelSpeed: .25,\r\n wheelPropagation: false,\r\n });\r\n\r\n input.on('input', function () {\r\n const results = items.filter(function (item) {\r\n const itemValue = item.data('search-value').toString().toLowerCase();\r\n const matched = itemValue.indexOf(input.val().toString().toLowerCase()) !== -1;\r\n\r\n item.toggleClass('filter-list__item--not-matched', !matched);\r\n\r\n return matched;\r\n });\r\n\r\n filter.toggleClass('filter-list--no-results', results.length === 0);\r\n\r\n ps.update();\r\n });\r\n });\r\n }\r\n\r\n function GetFilterJSON() {\r\n try {\r\n var _prop = $(\"#dataProp\").data(\"value\");\r\n var _url = new URI(window.location.href).removeQuery(\"view\");\r\n var _path = _url.path().replace(\"/\", \"\");\r\n var _query = _url.query();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getpropvalues',\r\n data: { 'properties': _prop, 'routa': _path, 'query': _query },\r\n success: function (response) {\r\n $('.filter-list__item').each(function (i, element) {\r\n var _chk = $(element).find('.input-check__input');\r\n if (_chk.length == 0) { return; }\r\n if ($(_chk).is(\":checked\")) { return; }\r\n\r\n var _prop = $(_chk).data('prop');\r\n var _val = $(_chk).data('value');\r\n\r\n if (_prop != \"tag\") {\r\n var _item = response.find(x => x.PropID == _prop && (x.HodnID == _val || x.Hodnota == \"true\"));\r\n if (_item == undefined) {\r\n element.hidden = true;\r\n }\r\n else {\r\n element.hidden = false;\r\n }\r\n }\r\n });\r\n\r\n $('[data-prop-vycet]').each(function (i, element) {\r\n element.hidden = false;\r\n if ($(this).find('.filter-list__item').not(':hidden').length == 0) {\r\n element.hidden = true;\r\n }\r\n });\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n //Common.showMessage(xhr.status, 'error');\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n function SetCheckBox() {\r\n $(\".input-check__input\").click(function (event) {\r\n var prop = $(this).attr(\"data-prop\");\r\n var value = $(this).attr(\"data-value\");\r\n var url = new URI(window.location.href);\r\n url.removeQuery(\"page\");\r\n\r\n if ($(this).is(':checked')) {\r\n url.addQuery(prop, value);\r\n }\r\n else {\r\n url.removeQuery(prop, value);\r\n }\r\n SetURL(url);\r\n\r\n if (IsMobileViewPort()) {\r\n CloseFilter();\r\n };\r\n GetProductsAsync(false);\r\n GetFilterJSON();\r\n GetPriceSliderAsync();\r\n GetTagsAsync();\r\n\r\n //$(\".filter-list__list\").each(function () {\r\n // $(this).find(\"filter-list__item\").toArray().sort(function (a, b) {\r\n // return +a.dataset.name - +b.dataset.name;\r\n // });\r\n //});\r\n\r\n //ScrollToTop();\r\n });\r\n }\r\n\r\n function ResizeBanner() {\r\n var imgWidth = $(\"div[data-banner-img]\").outerWidth();\r\n var imgHeight = $(\"div[data-banner-img]\").outerHeight();\r\n\r\n $(\"div[data-banner='banner-eshop']\").each(function () {\r\n var height = parseInt($(this).attr(\"data-banner-height\"));\r\n var ratio = height / 1110;\r\n var newHeight = Math.floor(imgWidth * ratio);\r\n if (imgHeight != newHeight) $(this).css(\"height\", newHeight);\r\n });\r\n\r\n //const mobileMedia = matchMedia('(max-width: 991px)');\r\n //if (mobileMedia.matches) {\r\n $(\"div[data-banner='banner-index']\").each(function () {\r\n var height = parseInt($(this).attr(\"data-banner-height\"));\r\n var ratio = height / 840;\r\n var newHeight = Math.floor(imgWidth * ratio);\r\n if (imgHeight != newHeight) $(this).css(\"height\", newHeight);\r\n });\r\n //}\r\n\r\n $(\"div[data-banner='banner-eshop']\").css(\"visibility\", \"visible\");\r\n $(\"div[data-banner='banner-index']\").css(\"visibility\", \"visible\");\r\n }\r\n\r\n function IsMobileViewPort() {\r\n const mobileMedia = matchMedia('(max-width: 991px)');\r\n\r\n if (mobileMedia.matches) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function IsCatalog() {\r\n const blockSidebar = $('.block-sidebar');\r\n\r\n if (blockSidebar.length > 0) { return true; }\r\n return false;\r\n }\r\n\r\n function IsDetail() {\r\n const detail = $('#ProductDetail');\r\n\r\n if (detail.length > 0) { return true; }\r\n return false;\r\n }\r\n\r\n function CloseFilter() {\r\n const body = $('body');\r\n const blockSidebar = $('.block-sidebar');\r\n body.css('overflow', '');\r\n body.css('paddingRight', '');\r\n\r\n blockSidebar.removeClass('block-sidebar--open');\r\n }\r\n\r\n function OpenFilter() {\r\n const body = $('body');\r\n const blockSidebar = $('.block-sidebar');\r\n const mobileMedia = matchMedia('(max-width: 991px)');\r\n\r\n if (blockSidebar.is('.block-sidebar--offcanvas--mobile') && !mobileMedia.matches) {\r\n return;\r\n }\r\n\r\n const bodyWidth = body.width();\r\n body.css('overflow', 'hidden');\r\n body.css('paddingRight', (body.width() - bodyWidth) + 'px');\r\n\r\n blockSidebar.addClass('block-sidebar--open');\r\n }\r\n\r\n function SetURL(url: URI) {\r\n window.history.pushState({ url: \"\" + url.valueOf().toString() + \"\" }, \"\", url.valueOf());\r\n }\r\n\r\n function GetAutocompleteSearchOpt(type) {\r\n if (type === \"desktop\") {\r\n var searchField = \"#searchField\";\r\n var searchForm = \"#searchForm\";\r\n }\r\n if (type === \"mobile\") {\r\n var searchField = \"#searchFieldMobile\";\r\n var searchForm = \"#searchFormMobile\";\r\n }\r\n return {\r\n url: function (data) {\r\n return \"/catalogautocomplete\";\r\n },\r\n getValue: function (element) {\r\n return element.Nazev;\r\n },\r\n ajaxSettings: {\r\n dataType: \"json\",\r\n method: \"POST\",\r\n data: {\r\n dataType: \"json\"\r\n }\r\n },\r\n preparePostData: function (data) {\r\n data.search = $(searchField).val();\r\n\r\n return data;\r\n },\r\n template: {\r\n type: \"custom\",\r\n method: function (value, item) {\r\n var css = 'text-success';\r\n if (item.dostupnost == false) css = 'text-muted'\r\n return `
\r\n
\r\n
\r\n
${item.Nazev}
\r\n
\r\n
${item.dostupnostText}
\r\n
${Common.formatCurrency(item.Celkem)} ${item.Symbol}
\r\n
\r\n
\r\n
`;\r\n }\r\n },\r\n list: {\r\n maxNumberOfElements: 10,\r\n match: {\r\n enabled: true\r\n },\r\n onChooseEvent: function () {\r\n var desc = (window as any).$(searchForm).getSelectedItemData().URL;\r\n\r\n if (type === \"desktop\") {\r\n if ($(\"#eac-container-searchForm > ul\").css(\"display\") == \"none\") {\r\n const form = document.getElementById('searchForm') as HTMLFormElement;\r\n form.submit();\r\n } else {\r\n window.location.href = \"/\" + desc;\r\n }\r\n }\r\n\r\n if (type === \"mobile\") {\r\n if ($(\"#eac-container-searchFormMobile > ul\").css(\"display\") == \"none\") {\r\n const form = document.getElementById('searchFormMobile') as HTMLFormElement;\r\n form.submit();\r\n } else {\r\n window.location.href = \"/\" + desc;\r\n }\r\n }\r\n }\r\n\r\n },\r\n minCharNumber: 0,\r\n requestDelay: 400,\r\n //theme: \"square\",\r\n };\r\n }\r\n\r\n\r\n function GetCategMenu() {\r\n try {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcategmenu',\r\n success: function (response) {\r\n $('.departments__links-wrapper').replaceWith($(response).find('.departments__links-wrapper'));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n },\r\n complete: function () {\r\n $('.departments__button').attr('data-loaded', 'true');\r\n loadMenu();\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n export function GetCategMobileMenu() {\r\n try {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getcategmenumobile',\r\n success: function (response) {\r\n $('#mobile_menu_kateg').html(response);\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n },\r\n complete: function () {\r\n $('#mobile_menu_kateg').attr('data-loaded', 'true');\r\n loadMobileMenu();\r\n $(\"[data-button-kateg]\").click();\r\n }\r\n });\r\n } catch (e) {\r\n throw e;\r\n }\r\n }\r\n\r\n\r\n /*\r\n // Touch Click\r\n */\r\n function touchClick(elements, callback) {\r\n elements = $(elements);\r\n\r\n let touchStartData = null;\r\n\r\n const onTouchstart = function (event) {\r\n const originalEvent = event.originalEvent;\r\n\r\n if (originalEvent.touches.length !== 1) {\r\n touchStartData = null;\r\n return;\r\n }\r\n\r\n touchStartData = {\r\n target: originalEvent.currentTarget,\r\n touch: originalEvent.changedTouches[0],\r\n timestamp: (new Date).getTime(),\r\n };\r\n };\r\n const onTouchEnd = function (event) {\r\n const originalEvent = event.originalEvent;\r\n\r\n if (\r\n !touchStartData ||\r\n originalEvent.changedTouches.length !== 1 ||\r\n originalEvent.changedTouches[0].identity !== touchStartData.touch.identity\r\n ) {\r\n return;\r\n }\r\n\r\n const timestamp = (new Date).getTime();\r\n const touch = originalEvent.changedTouches[0];\r\n const distance = Math.abs(\r\n Math.sqrt(\r\n Math.pow(touchStartData.touch.screenX - touch.screenX, 2) +\r\n Math.pow(touchStartData.touch.screenY - touch.screenY, 2)\r\n )\r\n );\r\n\r\n if (touchStartData.target === originalEvent.currentTarget && timestamp - touchStartData.timestamp < 500 && distance < 10) {\r\n callback(event);\r\n }\r\n };\r\n\r\n elements.on('touchstart', onTouchstart);\r\n elements.on('touchend', onTouchEnd);\r\n\r\n return function () {\r\n elements.off('touchstart', onTouchstart);\r\n elements.off('touchend', onTouchEnd);\r\n };\r\n }\r\n\r\n // call this in touchstart/touchend event handler\r\n function preventTouchClick() {\r\n const onClick = function (event) {\r\n event.preventDefault();\r\n\r\n document.removeEventListener('click', onClick);\r\n };\r\n document.addEventListener('click', onClick);\r\n setTimeout(function () {\r\n document.removeEventListener('click', onClick);\r\n }, 100);\r\n }\r\n\r\n function loadMenu() {\r\n\r\n /*\r\n // menu\r\n */\r\n function CMenu(element) {\r\n this.element = $(element);\r\n this.container = this.element.find('> .menu__submenus-container');\r\n this.items = this.element.find('> .menu__list > .menu__item');\r\n this.currentItem = null;\r\n\r\n this.element.data('menuInstance', this);\r\n\r\n this.onMouseenter = this.onMouseenter.bind(this);\r\n this.onMouseleave = this.onMouseleave.bind(this);\r\n this.onTouchClick = this.onTouchClick.bind(this);\r\n\r\n // add event listeners\r\n this.items.on('mouseenter', this.onMouseenter);\r\n this.element.on('mouseleave', this.onMouseleave);\r\n touchClick(this.items, this.onTouchClick);\r\n }\r\n CMenu.prototype.onMouseenter = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && targetItem.is(this.currentItem)) {\r\n return;\r\n }\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n };\r\n CMenu.prototype.onMouseleave = function () {\r\n this.unsetCurrentItem();\r\n };\r\n CMenu.prototype.onTouchClick = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && this.currentItem.is(targetItem)) {\r\n return;\r\n }\r\n\r\n if (this.hasSubmenu(targetItem)) {\r\n preventTouchClick();\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n }\r\n };\r\n CMenu.prototype.setCurrentItem = function (item) {\r\n this.currentItem = item;\r\n this.currentItem.addClass('menu__item--hover');\r\n\r\n this.openSubmenu(this.currentItem);\r\n };\r\n CMenu.prototype.unsetCurrentItem = function () {\r\n if (this.currentItem) {\r\n this.closeSubmenu(this.currentItem);\r\n\r\n this.currentItem.removeClass('menu__item--hover');\r\n this.currentItem = null;\r\n }\r\n };\r\n CMenu.prototype.getSubmenu = function (item) {\r\n let submenu = item.find('> .menu__submenu');\r\n\r\n if (submenu.length) {\r\n this.container.append(submenu);\r\n item.data('submenu', submenu);\r\n }\r\n\r\n return item.data('submenu');\r\n };\r\n CMenu.prototype.hasSubmenu = function (item) {\r\n return !!this.getSubmenu(item);\r\n };\r\n CMenu.prototype.openSubmenu = function (item) {\r\n const submenu = this.getSubmenu(item);\r\n\r\n if (!submenu) {\r\n return;\r\n }\r\n\r\n submenu.addClass('menu__submenu--display');\r\n\r\n // calc submenu position\r\n const menuTop = this.element.offset().top - $(window).scrollTop();\r\n const itemTop = item.find('> .menu__item-submenu-offset').offset().top - $(window).scrollTop();\r\n const viewportHeight = window.innerHeight;\r\n const paddingY = 20;\r\n const maxHeight = viewportHeight - paddingY * 2;\r\n\r\n submenu.css('maxHeight', maxHeight + 'px');\r\n\r\n const submenuHeight = submenu.height();\r\n const position = Math.min(\r\n Math.max(\r\n itemTop - menuTop,\r\n 0\r\n ),\r\n (viewportHeight - paddingY - submenuHeight) - menuTop\r\n );\r\n\r\n submenu.css('top', position + 'px');\r\n submenu.addClass('menu__submenu--open');\r\n\r\n\r\n const submenuRight = this.element.offset().left + this.element.width() + submenu.width();\r\n if (submenuRight > $('body').innerWidth()) {\r\n submenu.addClass('menu__submenu--reverse');\r\n }\r\n\r\n };\r\n CMenu.prototype.closeSubmenu = function (item) {\r\n const submenu = this.getSubmenu(item);\r\n\r\n if (submenu) {\r\n submenu.removeClass('menu__submenu--display');\r\n submenu.removeClass('menu__submenu--open');\r\n submenu.removeClass('menu__submenu--reverse');\r\n\r\n const submenuInstance = submenu.find('> .menu').data('menuInstance');\r\n\r\n if (submenuInstance) {\r\n submenuInstance.unsetCurrentItem();\r\n }\r\n }\r\n };\r\n $('.menu').each(function () {\r\n new CMenu($(this));\r\n });\r\n\r\n\r\n /*\r\n // departments, sticky header\r\n */\r\n $(function () {\r\n /*\r\n // departments\r\n */\r\n const CDepartments = function (element) {\r\n const self = this;\r\n\r\n element.data('departmentsInstance', self);\r\n\r\n this.element = element;\r\n this.container = this.element.find('.departments__submenus-container');\r\n this.linksWrapper = this.element.find('.departments__links-wrapper');\r\n this.body = this.element.find('.departments__body');\r\n this.button = this.element.find('.departments__button');\r\n this.items = this.element.find('.departments__item');\r\n this.mode = this.element.is('.departments--fixed') ? 'fixed' : 'normal';\r\n this.fixedBy = $(this.element.data('departments-fixed-by'));\r\n this.fixedHeight = 0;\r\n this.currentItem = null;\r\n\r\n if (this.mode === 'fixed' && this.fixedBy.length) {\r\n this.fixedHeight = this.fixedBy.offset().top - this.body.offset().top + this.fixedBy.outerHeight();\r\n this.body.css('height', this.fixedHeight + 'px');\r\n }\r\n\r\n this.linksWrapper.on('transitionend', function (event) {\r\n if (event.originalEvent.propertyName === 'height') {\r\n $(this).css('height', '');\r\n $(this).closest('.departments').removeClass('departments--transition');\r\n }\r\n });\r\n\r\n this.onButtonClick = this.onButtonClick.bind(this);\r\n this.onGlobalClick = this.onGlobalClick.bind(this);\r\n this.onMouseenter = this.onMouseenter.bind(this);\r\n this.onMouseleave = this.onMouseleave.bind(this);\r\n this.onTouchClick = this.onTouchClick.bind(this);\r\n\r\n // add event listeners\r\n //this.button.on('click', this.onButtonClick);\r\n //document.addEventListener('click', this.onGlobalClick, true);\r\n touchClick(document, this.onGlobalClick);\r\n this.items.on('mouseenter', this.onMouseenter);\r\n this.linksWrapper.on('mouseleave', this.onMouseleave);\r\n touchClick(this.items, this.onTouchClick);\r\n\r\n };\r\n CDepartments.prototype.onButtonClick = function (event) {\r\n event.preventDefault();\r\n\r\n if (this.element.is('.departments--open')) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n };\r\n CDepartments.prototype.onGlobalClick = function (event) {\r\n if (this.element.not($(event.target).closest('.departments')).length) {\r\n if (this.element.is('.departments--open')) {\r\n this.close();\r\n }\r\n }\r\n };\r\n CDepartments.prototype.setMode = function (mode) {\r\n this.mode = mode;\r\n\r\n if (this.mode === 'normal') {\r\n this.element.removeClass('departments--fixed');\r\n this.element.removeClass('departments--open');\r\n this.body.css('height', 'auto');\r\n }\r\n if (this.mode === 'fixed') {\r\n this.element.addClass('departments--fixed');\r\n this.element.addClass('departments--open');\r\n this.body.css('height', this.fixedHeight + 'px');\r\n $('.departments__links-wrapper', this.element).css('maxHeight', '');\r\n }\r\n };\r\n CDepartments.prototype.close = function () {\r\n if (this.element.is('.departments--fixed')) {\r\n return;\r\n }\r\n\r\n const content = this.element.find('.departments__links-wrapper');\r\n const startHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n this.element\r\n .addClass('departments--transition')\r\n .removeClass('departments--open');\r\n\r\n content.height(); // force reflow\r\n content.css('height', '');\r\n content.css('maxHeight', '');\r\n\r\n this.unsetCurrentItem();\r\n };\r\n CDepartments.prototype.closeImmediately = function () {\r\n if (this.element.is('.departments--fixed')) {\r\n return;\r\n }\r\n\r\n const content = this.element.find('.departments__links-wrapper');\r\n\r\n this.element.removeClass('departments--open');\r\n\r\n content.css('height', '');\r\n content.css('maxHeight', '');\r\n\r\n this.unsetCurrentItem();\r\n };\r\n CDepartments.prototype.open = function () {\r\n const content = this.element.find('.departments__links-wrapper');\r\n const startHeight = content.height();\r\n\r\n this.element\r\n .addClass('departments--transition')\r\n .addClass('departments--open');\r\n\r\n const documentHeight = document.documentElement.clientHeight;\r\n const paddingBottom = 20;\r\n const contentRect = content[0].getBoundingClientRect();\r\n const endHeight = Math.min(content.height(), documentHeight - paddingBottom - contentRect.top);\r\n\r\n content.css('height', startHeight + 'px');\r\n content.height(); // force reflow\r\n content.css('maxHeight', endHeight + 'px');\r\n content.css('height', endHeight + 'px');\r\n };\r\n CDepartments.prototype.onMouseenter = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && targetItem.is(this.currentItem)) {\r\n return;\r\n }\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n };\r\n CDepartments.prototype.onMouseleave = function () {\r\n this.unsetCurrentItem();\r\n };\r\n CDepartments.prototype.onTouchClick = function (event) {\r\n const targetItem = $(event.currentTarget);\r\n\r\n if (this.currentItem && this.currentItem.is(targetItem)) {\r\n return;\r\n }\r\n\r\n if (this.hasSubmenu(targetItem)) {\r\n preventTouchClick();\r\n\r\n this.unsetCurrentItem();\r\n this.setCurrentItem(targetItem);\r\n }\r\n };\r\n CDepartments.prototype.setCurrentItem = function (item) {\r\n this.unsetCurrentItem();\r\n\r\n this.currentItem = item;\r\n this.currentItem.addClass('departments__item--hover');\r\n\r\n this.openSubmenu(this.currentItem);\r\n };\r\n CDepartments.prototype.unsetCurrentItem = function () {\r\n if (this.currentItem) {\r\n this.closeSubmenu(this.currentItem);\r\n\r\n this.currentItem.removeClass('departments__item--hover');\r\n this.currentItem = null;\r\n }\r\n };\r\n CDepartments.prototype.getSubmenu = function (item) {\r\n let submenu = item.find('> .departments__submenu');\r\n\r\n if (submenu.length) {\r\n this.container.append(submenu);\r\n\r\n item.data('submenu', submenu);\r\n }\r\n\r\n return item.data('submenu');\r\n };\r\n CDepartments.prototype.hasSubmenu = function (item) {\r\n return !!this.getSubmenu(item);\r\n };\r\n CDepartments.prototype.openSubmenu = function (item) {\r\n const submenu = this.getSubmenu(item);\r\n\r\n if (submenu) {\r\n submenu.addClass('departments__submenu--open');\r\n\r\n const documentHeight = document.documentElement.clientHeight;\r\n const paddingBottom = 20;\r\n\r\n if (submenu.hasClass('departments__submenu--type--megamenu')) {\r\n const submenuTop = submenu.offset().top - $(window).scrollTop();\r\n submenu.css('maxHeight', (documentHeight - submenuTop - paddingBottom) + 'px');\r\n }\r\n\r\n if (submenu.hasClass('departments__submenu--type--menu')) {\r\n submenu.css('maxHeight', (documentHeight - paddingBottom - Math.min(\r\n paddingBottom,\r\n this.body.offset().top - $(window).scrollTop()\r\n )) + 'px');\r\n\r\n const submenuHeight = submenu.height();\r\n const itemTop = this.currentItem.offset().top - $(window).scrollTop();\r\n const containerTop = this.container.offset().top - $(window).scrollTop();\r\n\r\n submenu.css('top', (Math.min(itemTop, documentHeight - paddingBottom - submenuHeight) - containerTop) + 'px');\r\n }\r\n }\r\n };\r\n CDepartments.prototype.closeSubmenu = function (item) {\r\n const submenu = item.data('submenu');\r\n\r\n if (submenu) {\r\n submenu.removeClass('departments__submenu--open');\r\n\r\n if (submenu.is('.departments__submenu--type--menu')) {\r\n submenu.find('> .menu').data('menuInstance').unsetCurrentItem();\r\n }\r\n }\r\n };\r\n\r\n const departmentsElement = $('.departments');\r\n const departments = departmentsElement.length ? new CDepartments(departmentsElement) : null;\r\n\r\n });\r\n\r\n }\r\n\r\n function loadMobileMenu() {\r\n $('[data-collapse]').each(function (i, element) {\r\n const collapse = element;\r\n\r\n $('[data-collapse-trigger-kateg]', collapse).on('click', function () {\r\n const openedClass = $(this).closest('[data-collapse-opened-class]').data('collapse-opened-class');\r\n const item = $(this).closest('[data-collapse-item]');\r\n const content = item.children('[data-collapse-content]');\r\n const itemParents = item.parents();\r\n\r\n itemParents.slice(0, itemParents.index(collapse) + 1).filter('[data-collapse-item]').css('height', '');\r\n\r\n if (item.is('.' + openedClass)) {\r\n const startHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n item.removeClass(openedClass);\r\n\r\n content.height(); // force reflow\r\n content.css('height', '');\r\n } else {\r\n const startHeight = content.height();\r\n\r\n item.addClass(openedClass);\r\n\r\n const endHeight = content.height();\r\n\r\n content.css('height', startHeight + 'px');\r\n content.height(); // force reflow\r\n content.css('height', endHeight + 'px');\r\n }\r\n\r\n $('[data-collapse-content]', collapse).on('transitionend', function (event) {\r\n if ((event.originalEvent as any).propertyName === 'height') {\r\n $(this).css('height', '');\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n\r\n function initializeCarousel() {\r\n $('.block-products-carousel').each(function () {\r\n const layout = $(this).data('layout');\r\n const options = {\r\n items: 4,\r\n margin: 14,\r\n nav: false,\r\n dots: false,\r\n loop: true,\r\n stagePadding: 1,\r\n rtl: false\r\n };\r\n const layoutOptions = {\r\n 'grid-4': {\r\n responsive: {\r\n 1200: { items: 4, margin: 14 },\r\n 992: { items: 4, margin: 10 },\r\n 768: { items: 3, margin: 10 },\r\n }\r\n },\r\n 'grid-4-sm': {\r\n responsive: {\r\n 1200: { items: 4, margin: 14 },\r\n 992: { items: 3, margin: 10 },\r\n 768: { items: 3, margin: 10 },\r\n }\r\n },\r\n 'grid-5': {\r\n responsive: {\r\n 1200: { items: 5, margin: 12 },\r\n 992: { items: 4, margin: 10 },\r\n 768: { items: 3, margin: 10 },\r\n }\r\n },\r\n 'horizontal': {\r\n items: 3,\r\n responsive: {\r\n 1200: { items: 3, margin: 14 },\r\n 992: { items: 3, margin: 10 },\r\n 768: { items: 2, margin: 10 },\r\n 576: { items: 1 },\r\n 475: { items: 1 },\r\n 0: { items: 1 }\r\n }\r\n },\r\n };\r\n const owl = $('.owl-carousel', this);\r\n let cancelPreviousTabChange = function () { };\r\n\r\n const owlOptions = $.extend({}, options, layoutOptions[layout]);\r\n\r\n if (/^grid-/.test(layout)) {\r\n let mobileResponsiveOptions;\r\n\r\n if (parseFloat($(this).data('mobile-grid-columns')) === 2) {\r\n mobileResponsiveOptions = {\r\n 420: { items: 2, margin: 10 },\r\n 320: { items: 2, margin: 0 },\r\n 0: { items: 1 },\r\n };\r\n } else {\r\n mobileResponsiveOptions = {\r\n 475: { items: 2, margin: 10 },\r\n 0: { items: 1 },\r\n };\r\n }\r\n\r\n owlOptions.responsive = $.extend({}, owlOptions.responsive, mobileResponsiveOptions);\r\n }\r\n\r\n owl.owlCarousel(owlOptions);\r\n\r\n $(this).find('.block-header__group').on('click', function (event) {\r\n const block = $(this).closest('.block-products-carousel');\r\n\r\n event.preventDefault();\r\n\r\n if ($(this).is('.block-header__group--active')) {\r\n return;\r\n }\r\n\r\n cancelPreviousTabChange();\r\n\r\n block.addClass('block-products-carousel--loading');\r\n $(this).closest('.block-header__groups-list').find('.block-header__group--active').removeClass('block-header__group--active');\r\n $(this).addClass('block-header__group--active');\r\n\r\n // timeout ONLY_FOR_DEMO! you can replace it with an ajax request\r\n let timer;\r\n timer = setTimeout(function () {\r\n let items = block.find('.owl-carousel .owl-item:not(\".cloned\") .block-products-carousel__column');\r\n\r\n /*** this is ONLY_FOR_DEMO! / start */\r\n /**/ const itemsArray = items.get();\r\n /**/ const newItemsArray = [];\r\n /**/\r\n /**/ while (itemsArray.length > 0) {\r\n /**/ const randomIndex = Math.floor(Math.random() * itemsArray.length);\r\n /**/ const randomItem = itemsArray.splice(randomIndex, 1)[0];\r\n /**/\r\n /**/ newItemsArray.push(randomItem);\r\n /**/\r\n }\r\n /**/ items = $(newItemsArray);\r\n /*** this is ONLY_FOR_DEMO! / end */\r\n\r\n block.find('.owl-carousel')\r\n .trigger('replace.owl.carousel', [items])\r\n .trigger('refresh.owl.carousel')\r\n .trigger('to.owl.carousel', [0, 0]);\r\n\r\n //$('.product-card__quickview', block).on('click', function () {\r\n // quickview.clickHandler.apply(this, arguments);\r\n //});\r\n\r\n block.removeClass('block-products-carousel--loading');\r\n }, 1000);\r\n cancelPreviousTabChange = function () {\r\n // timeout ONLY_FOR_DEMO!\r\n clearTimeout(timer);\r\n cancelPreviousTabChange = function () { };\r\n };\r\n });\r\n\r\n $(this).find('.block-header__arrow--left').on('click', function () {\r\n owl.trigger('prev.owl.carousel', [500]);\r\n });\r\n $(this).find('.block-header__arrow--right').on('click', function () {\r\n owl.trigger('next.owl.carousel', [500]);\r\n });\r\n });\r\n }\r\n}\r\n","namespace Checkout {\r\n class orderInfo {\r\n delivery: number; \r\n payment: number;\r\n cart: number;\r\n cartProducts: number;\r\n cartSales: number; \r\n totalSum: number;\r\n currencySymbol: string; \r\n constructor() {\r\n this.delivery = parseFloat($(\"#deliveryMethodsList .payment-methods__item--active\").data(\"value\").toString().replace(\",\", \".\"));\r\n this.payment = parseFloat($(\"#paymentMethodsList .payment-methods__item--active\").data(\"value\").toString().replace(\",\", \".\"));\r\n this.cart = parseFloat($(\"#dataCart\").data(\"price-cart\").toString().replace(\",\", \".\"));\r\n this.cartProducts = parseFloat($(\"#dataCart\").data(\"price-products\").toString().replace(\",\", \".\"));\r\n this.cartSales = parseFloat($(\"#dataCart\").data(\"price-sales\").toString().replace(\",\", \".\"));\r\n this.currencySymbol = \"\" + $(\"#dataCart\").data(\"currency-symbol\").toString() + \"\";\r\n this.totalSum = 0;\r\n if (isNaN(this.delivery)) this.delivery = 0;\r\n if (isNaN(this.payment)) this.payment = 0;\r\n if (isNaN(this.cart)) this.cart = 0;\r\n if (isNaN(this.cartProducts)) this.cartProducts = 0;\r\n if (isNaN(this.cartSales)) this.cartSales = 0;\r\n this.totalSum = this.delivery + this.payment + this.cart;\r\n }\r\n }\r\n export function Init() {\r\n $(window).on('beforeunload', function (event) {\r\n saveFormData();\r\n //event.stopPropagation();\r\n //event.preventDefault();\r\n });\r\n \r\n $(\"#formF #Email\").focusout(function (e) {\r\n var email = $(this).val();\r\n\r\n // Po skončení dialogu se nastavuje focus na následující editbox\r\n var thisElem = this as HTMLInputElement | HTMLTextAreaElement | null;\r\n var nextElement = null;\r\n // Najdeme všechny input a textarea prvky na stránce\r\n const formElements = Array.from(document.querySelectorAll(\r\n 'input, textarea'\r\n ));\r\n const currentIndex = formElements.indexOf(thisElem);\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/account/check-email\",\r\n data: { 'email': email },\r\n success: function (response) {\r\n if (response.Result != true) {\r\n if (response.AllowGuestCheckout == \"1\") {\r\n Common.showCheckEmailAllowGuestMessageBox(response.Message, response.LoginCaption, response.ResetPasswordCaption, response.Back, response.Caption, email);\r\n } else {\r\n Common.showCheckEmailMessageBox(response.Message, response.LoginCaption, response.ResetPasswordCaption, response.Back, response.Caption, email);\r\n }\r\n \r\n }\r\n }\r\n });\r\n\r\n // Přesuneme fokus na další prvek, pokud existuje\r\n if (currentIndex !== -1 && formElements[currentIndex + 1]) {\r\n nextElement = formElements[currentIndex + 1];\r\n if (nextElement) {\r\n nextElement.focus();\r\n };\r\n }\r\n\r\n });\r\n\r\n $(\"#formF #StatID\").on(\"change\", '', function () {\r\n if (!(jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked) {\r\n Checkout.SetDeliveryMethods(this.value);\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetOrderSum();\r\n }\r\n })\r\n $(\"#formD #DeliveryAddressStatID\").on(\"change\", '', function () {\r\n Checkout.SetDeliveryMethods(this.value);\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetOrderSum();\r\n })\r\n\r\n $(\"#checkout-different-address\").on(\"change\", '', function () {\r\n Checkout.SetDeliveryMethods(getStatID());\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetOrderSum();\r\n })\r\n $(\"#checkoutCreateOrder\").on(\"click\", '', function () {\r\n Checkout.CreateOrder();\r\n })\r\n\r\n if (($(\"#deliveryMethodsList .payment-methods__item--active\").length == 0) && (jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked)\r\n $(\"#formD #StatID\").change()\r\n else\r\n $(\"#formF #StatID\").change();\r\n\r\n // modal window select branches\r\n $(document).on('click', '[name=\"buttonSelectBranch\"]', function () {\r\n Checkout.SelectBranchWidget($(\"#deliveryMethodsList .payment-methods__item--active\").data(\"dopravci-sluzby-id\"), $('[name=\"buttonSelectBranch\"]').data(\"country-code\"));\r\n });\r\n\r\n $(document).on('click', '[name=\"packeta-search-button\"]', function () {\r\n Checkout.SelectBranchWidget($(\"#deliveryMethodsList .payment-methods__item--active\").data(\"dopravci-sluzby-id\"), $('[name=\"buttonSelectBranch\"]').data(\"country-code\"));\r\n });\r\n\r\n $(document).on('click', '[name=\"ChciZadatFaktUdaje\"]', function () {\r\n if ((jQuery(\"#ChciZadatFaktUdaje\")[0] as HTMLInputElement).checked) {\r\n $(\"#collapseFaktUdaje\").hide();\r\n } else {\r\n $(\"#collapseFaktUdaje\").show();\r\n } \r\n $(\"#collapseFaktUdaje\").toggle();\r\n });\r\n\r\n $(document).on('keypress', '[name=\"findPosta\"],[name=\"findPsc\"]', function (e) {\r\n if (e.which == 13) {\r\n $('#do-balikovny-search-button').click();\r\n }\r\n });\r\n\r\n var itemsCount = parseFloat($(\"#dataCart\").data(\"items-count\").toString().replace(\",\", \".\"));\r\n (jQuery(\"#checkoutCreateOrder\")[0] as HTMLInputElement).disabled = itemsCount == 0;\r\n\r\n //Pouze, pokud není přihlášený klient\r\n if ($(\"#dataCart\").data(\"klient-signin\") == \"False\") {\r\n loadFormData();\r\n }\r\n\r\n checkPersonalDelivery();\r\n\r\n if ((jQuery(\"#Company\")[0] as HTMLInputElement).checked) {\r\n $(\"#collapseFirmInfo\").hide();\r\n } else {\r\n $(\"#collapseFirmInfo\").show();\r\n }\r\n $(\"#collapseFirmInfo\").toggle();\r\n $(document).on('click', '[name=\"Company\"]', function () {\r\n if ((jQuery(\"#Company\")[0] as HTMLInputElement).checked) {\r\n $(\"#collapseFirmInfo\").hide();\r\n } else {\r\n $(\"#collapseFirmInfo\").show();\r\n }\r\n $(\"#collapseFirmInfo\").toggle();\r\n\r\n });\r\n Checkout.SetOrderSum();\r\n }\r\n export function SetDeliveryMethods(idStat) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getdeliverymethods',\r\n data: ({ 'idStat': idStat }),\r\n success: function (response) {\r\n $('#deliveryMethodsList').replaceWith(response);\r\n },\r\n complete: function () {\r\n Checkout.SetPaymentMethods(Checkout.GetSelectedDelivery().id);\r\n Checkout.SetCheckoutProducts();\r\n Checkout.SetOrderSum();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function SetPaymentMethods(idZpDoruc) {\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getpaymentmethods',\r\n data: ({ 'idZpDoruc': idZpDoruc }),\r\n success: function (response) {\r\n $('#paymentMethodsList').replaceWith(response);\r\n Checkout.SetCheckoutProducts();\r\n Checkout.SetOrderSum();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function SetCheckoutProducts() {\r\n var idPayment = Checkout.GetSelectedPayment();\r\n var idZpDoruc = Checkout.GetSelectedDelivery();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/getcheckoutproducts',\r\n data: ({ 'idZpDoruc': idZpDoruc, 'idPayment': idPayment }),\r\n success: function (response) {\r\n $('#checkoutProducts').replaceWith(response);\r\n Checkout.SetOrderSum();\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function AfterDeliveryMethodSelect(idZpDoruc) {\r\n SetPaymentMethods(idZpDoruc);\r\n Checkout.SetCheckoutProducts();\r\n SetOrderSum();\r\n checkPersonalDelivery();\r\n }\r\n export function AfterPaymentMethodSelect(idZpDoruc) {\r\n Checkout.SetCheckoutProducts();\r\n SetOrderSum();\r\n }\r\n export function GetSelectedDelivery() {\r\n var id = $(\"#deliveryMethodsList .payment-methods__item--active\").data(\"id\");\r\n var personalDelivery = $(\"#deliveryMethodsList .payment-methods__item--active\").data(\"personal-delivery\");\r\n var idPobocka = $(\"#deliveryMethodsList .payment-methods__item--active\").attr(\"data-pobocka-id\");\r\n var parcelNazev = $(\"#deliveryMethodsList .payment-methods__item--active\").attr(\"data-pobocka-nazev\");\r\n var parcelProps = $(\"#deliveryMethodsList .payment-methods__item--active\").attr(\"data-pobocka-props\");\r\n if (id === null) id = 0;\r\n if (idPobocka === null) idPobocka = '0';\r\n\r\n return { id: id, idPobocka: 0, personalDelivery: personalDelivery, parcelID: idPobocka, parcelNazev: parcelNazev, parcelJSON: parcelProps };\r\n }\r\n export function GetSelectedPayment() {\r\n var id = $(\"#paymentMethodsList .payment-methods__item--active\").data(\"id\");\r\n if (id === null) return 0; else return id;\r\n }\r\n export function SetOrderSum() {\r\n var o = new orderInfo();\r\n $(\"#checkoutCart\")[0].innerText = Common.formatCurrency(o.cartProducts);\r\n $(\"#checkoutSales\")[0].innerText = Common.formatCurrency(o.cartSales);\r\n $(\"#checkoutDelivery\")[0].innerText = Common.formatCurrency(o.delivery + o.payment);\r\n $(\"#checkoutTotal\")[0].innerHTML = Common.formatCurrency(o.totalSum) + \" \" + o.currencySymbol;\r\n }\r\n export function CreateOrder() {\r\n var useDeliveryAddress = (jQuery(\"#checkout-different-address\").length > 0) && (jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked;\r\n var chciZadatFaktUdaje = (jQuery(\"#ChciZadatFaktUdaje\").length > 0) && (jQuery(\"#ChciZadatFaktUdaje\")[0] as HTMLInputElement).checked;\r\n \r\n // validace\r\n var form1Valid: boolean = Common.formValidate('formF');\r\n if (useDeliveryAddress) if (!Common.formValidate('formD')) return;\r\n if ((!form1Valid)) {\r\n jQuery(\".page-header\")[0].scrollIntoView();\r\n return;\r\n }\r\n\r\n var checkedTerms1 = (jQuery(\"#checkout-terms1\").length > 0) && (jQuery(\"#checkout-terms1\")[0] as HTMLInputElement).checked;\r\n var checkedTerms2 = (jQuery(\"#checkout-terms2\").length > 0) && (jQuery(\"#checkout-terms2\")[0] as HTMLInputElement).checked;\r\n var checkedHeureka = (jQuery(\"#checkout-heureka\").length > 0) && (jQuery(\"#checkout-heureka\")[0] as HTMLInputElement).checked;\r\n if (!checkedTerms1 || !checkedTerms2) {\r\n Common.showMessageBox((jQuery(\"#errTermsMsg\")[0] as HTMLInputElement).value, 'warning');\r\n return;\r\n }\r\n\r\n // data pro model\r\n var fa = $(\"#formF\").serializeArray().reduce((acc, f) => {\r\n acc[f.name] = f.value\r\n return acc\r\n }, {});\r\n\r\n var da = $(\"#formD\").serializeArray().reduce((acc, f) => {\r\n acc[f.name] = f.value\r\n return acc\r\n }, {});\r\n\r\n var polozky = JSON.parse((jQuery(\"#dataCart\")[0] as HTMLTextAreaElement).value);\r\n var model = JSON.stringify({\r\n UseDodaci: useDeliveryAddress,\r\n ChciZadatFaktUdaje: chciZadatFaktUdaje,\r\n DoruceniID: Checkout.GetSelectedDelivery().id.toString(),\r\n PobockaID: Checkout.GetSelectedDelivery().idPobocka.toString(),\r\n ParcelID: Checkout.GetSelectedDelivery().parcelID,\r\n ParcelNazev: Checkout.GetSelectedDelivery().parcelNazev,\r\n ParcelJSON: Checkout.GetSelectedDelivery().parcelJSON,\r\n PlatbaID: Checkout.GetSelectedPayment().toString(),\r\n IC: (jQuery(\"#IC\")[0] as HTMLTextAreaElement).value,\r\n DIC: (jQuery(\"#DIC\")[0] as HTMLTextAreaElement).value,\r\n Fakturacni_adresa: fa,\r\n Dodaci_adresa: da,\r\n Poznamka: (jQuery(\"#checkout-comment\")[0] as HTMLTextAreaElement).value,\r\n HeurekaNo: checkedHeureka,\r\n Polozky: polozky\r\n });\r\n\r\n jQuery(\"#checkoutCreateOrder\").prop('disabled', true);\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n contentType: \"application/json; charset=utf-8\",\r\n url: '/createorder',\r\n data: model,\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.redirectPost('/cart/finish', { id: response.id });\r\n }\r\n else {\r\n jQuery(\"#checkoutCreateOrder\").prop('disabled', false);\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n jQuery(\"#checkoutCreateOrder\").prop('disabled', false);\r\n }\r\n });\r\n }\r\n export function saveFormData() {\r\n Common.saveFormToSessionStorage(\"formF\");\r\n Common.saveFormToSessionStorage(\"formD\");\r\n\r\n if ((jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked)\r\n sessionStorage.setItem('checkout-different-address', 'true');\r\n else\r\n sessionStorage.setItem('checkout-different-address', 'false');\r\n\r\n sessionStorage.setItem('checkout-comment', $('#checkout-comment').val().toString());\r\n\r\n //Save delivery\r\n var id = $(\"#deliveryMethodsList .payment-methods__item--active\").data(\"id\");\r\n if (id > 0) {\r\n var delivery = GetSelectedDelivery();\r\n sessionStorage.setItem('delivery-id', delivery.id.toString());\r\n sessionStorage.setItem('delivery-branch-id', delivery.idPobocka.toString());\r\n }\r\n\r\n }\r\n export function loadFormData() {\r\n Common.loadFormFromSessionStorage(\"formF\");\r\n Common.loadFormFromSessionStorage(\"formD\");\r\n\r\n var value = sessionStorage.getItem('checkout-different-address');\r\n var elem = (jQuery(\"#checkout-different-address\")[0] as HTMLInputElement);\r\n if (value == 'true') { elem.click(); elem.checked = true; } else { elem.checked = false };\r\n\r\n $('#checkout-comment').val(sessionStorage.getItem('checkout-comment'));\r\n\r\n ////deliveryMethodsList data-id selectedBranch\r\n //var delID = sessionStorage.getItem('delivery-id');\r\n //console.log(delID);\r\n //if (delID.length > 0) {\r\n // alert('a');\r\n // $(\"#deliveryMethodsList\").find(\"[data-id='\" + delID.toString() + \"']\").click();\r\n // console.log(\"[data-id='\" + delID.toString() + \"']\");\r\n // alert(\"[data-id='\" + delID.toString() + \"']\");\r\n // $(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0].innerText = sessionStorage.getItem('delivery-branch-name');\r\n //}\r\n \r\n //(jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", $(this).data(\"id\"));\r\n //(jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = $(this).data(\"description\");\r\n }\r\n export function SelectBranchWidget(typ: number, countryCode: string) {\r\n\r\n if (!countryCode) countryCode = 'cz';\r\n var h = window.innerHeight * 0.85;\r\n\r\n if (typ == 4) {\r\n // Zásilkovna\r\n (window as any).Packeta.Widget.pick('6bbffea28d4356e7', (point) => {\r\n if (point) {\r\n var parcelName = point.place + \", \" + point.nameStreet;\r\n var parcel = GetParcelJSON(point.id,parcelName,point.street,point.city,point.zip,point.country);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", point.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n }, { country: countryCode })\r\n }\r\n if (typ == 3) {\r\n // Česká pošta Balíkovna\r\n const messageHandler = function (event) {\r\n if (event.data.message === \"pickerResult\") {\r\n (window as any).swal.close();\r\n if (event.data) {\r\n var parcelName = event.data.point.name + \", \" + event.data.point.address;\r\n var parcel = GetParcelJSON(event.data.id, parcelName, 'Balíkovna', event.data.point.municipality_name, event.data.point.zip, event.data.point.country);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n Common.showParcelWidget('');\r\n }\r\n if (typ == 2) {\r\n // Česká pošta Balík na poštu\r\n const messageHandler = function (event) {\r\n if (event.data.message === \"pickerResult\") {\r\n (window as any).swal.close();\r\n if (event.data) {\r\n var parcelName = event.data.point.address;\r\n var parcel = GetParcelJSON(event.data.id, parcelName, 'Na poštu', event.data.point.municipality_name, event.data.point.zip, event.data.point.country);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n Common.showParcelWidget('');\r\n }\r\n if (typ == 8) {\r\n // DPD ParcelShop\r\n const messageHandler = function (event) {\r\n if (event.data.dpdWidget) {\r\n (window as any).swal.close();\r\n var parcelName = event.data.dpdWidget.contactInfo.name + \", \" + event.data.dpdWidget.pickupPointResult;\r\n var parcel = GetParcelJSON(event.data.dpdWidget.id, parcelName, event.data.dpdWidget.location.address.street, event.data.dpdWidget.location.address.city, event.data.dpdWidget.location.address.zip, event.data.dpdWidget.location.address.country);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.dpdWidget.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n } \r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n Common.showParcelWidget('');\r\n }\r\n if (typ == 11) {\r\n // PPL ParcelShop\r\n const messageHandler = function (event) {\r\n if (event && event.isTrusted) {\r\n (window as any).swal.close();\r\n\r\n var parcelName = event.data.data.name + \", \" + event.data.data.street + \", \" + event.data.data.city;\r\n var parcel = GetParcelJSON(event.data.data.id, parcelName, event.data.data.street, event.data.data.city, event.data.data.zipCode, event.data.data.country);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.data.id);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n\r\n var validCountryCodes = ['cz', 'sk', 'de', 'pl'];\r\n if (validCountryCodes.indexOf(countryCode.toLowerCase()) !== -1) {\r\n Common.showParcelWidget(\"\");\r\n }\r\n \r\n }\r\n if (typ == 22) {\r\n // GLS ParcelShop\r\n const messageHandler = function (event) {\r\n if (event && event.isTrusted) {\r\n (window as any).swal.close();\r\n\r\n var parcelName = event.data.parcelshop.detail.name + \", \" + event.data.parcelshop.detail.address + \", \" + event.data.parcelshop.detail.city;\r\n var parcel = GetParcelJSON(event.data.parcelshop.detail.pclshopid, parcelName, event.data.parcelshop.detail.address, event.data.parcelshop.detail.city, event.data.parcelshop.detail.zipcode, event.data.parcelshop.detail.ctrcode);\r\n\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-id\", event.data.parcelshop.detail.pclshopid);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-props\", parcel);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active\")[0] as HTMLInputElement).setAttribute(\"data-pobocka-nazev\", parcelName);\r\n (jQuery(\"#deliveryMethodsList .payment-methods__item--active [name='selectedBranch']\")[0] as HTMLInputElement).innerText = parcelName;\r\n }\r\n window.removeEventListener('message', messageHandler);\r\n }\r\n window.addEventListener(\"message\", messageHandler);\r\n var validCountryCodes = ['CZ', 'SK', 'SI', 'HU', 'HR', 'RO'];\r\n if (validCountryCodes.indexOf(countryCode.toUpperCase()) !== -1) {\r\n Common.showParcelWidget('');\r\n }\r\n }\r\n }\r\n function getStatID() {\r\n if ((jQuery(\"#checkout-different-address\")[0] as HTMLInputElement).checked)\r\n return (jQuery(\"#DeliveryAddressStatID\")[0] as HTMLInputElement).value;\r\n else\r\n return (jQuery(\"#StatID\")[0] as HTMLInputElement).value;\r\n }\r\n function checkPersonalDelivery() {\r\n if (GetSelectedDelivery().personalDelivery == \"True\") {\r\n (jQuery(\"#ChciZadatFaktUdaje\")[0] as HTMLInputElement).checked = false;\r\n $(\"#chkFaktUdaje\").show();\r\n $(\"#collapseFaktUdaje\").show();\r\n $(\"#divDelivery\").hide();\r\n $(\"#divDeliveryDivider\").hide();\r\n } else {\r\n $(\"#chkFaktUdaje\").hide();\r\n $(\"#collapseFaktUdaje\").hide();\r\n $(\"#divDelivery\").show();\r\n $(\"#divDeliveryDivider\").show();\r\n }\r\n $(\"#collapseFaktUdaje\").toggle();\r\n }\r\n function GetParcelJSON(id: string, nazev: string, ulice: string, misto: string, psc: string, stat: string): string {\r\n const parcel = {\r\n id: id,\r\n nazev: nazev,\r\n ulice: ulice,\r\n misto: misto,\r\n psc: psc,\r\n stat: stat\r\n };\r\n return JSON.stringify(parcel);\r\n }\r\n}","namespace Common {\r\n export function showMessage(msg, icon, timeout = 2000) {\r\n (window as any).swal.fire({\r\n text: msg,\r\n toast: true,\r\n position: 'top-end',\r\n showConfirmButton: false,\r\n icon: icon,\r\n timer: timeout,\r\n timerProgressBar: true\r\n });\r\n }\r\n\r\n export function showMessageBox(msg, icon) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n showConfirmButton: true,\r\n icon: icon\r\n });\r\n }\r\n export function showParcelWidget(html) {\r\n \r\n (window as any).Swal.fire({\r\n title: 'Načítám seznam výdejních míst...',\r\n html: html,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n showCloseButton: true,\r\n grow: 'fullscreen',\r\n didOpen: () => {\r\n (window as any).Swal.showLoading(); // Zobrazí loader\r\n let iframe = document.getElementById('parcelFrame');\r\n iframe.onload = function () {\r\n const swalTitle = (window as any).Swal.getTitle();\r\n if (swalTitle) {\r\n swalTitle.style.display = 'none';\r\n }\r\n (window as any).Swal.hideLoading(); // Skryje loader, jakmile je iframe načtený\r\n };\r\n },\r\n \r\n });\r\n }\r\n export function showAddToCartMessageBox(msg, toCartCaption, toBackCaption) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n showCancelButton: true,\r\n confirmButtonText: toCartCaption,\r\n cancelButtonText: toBackCaption,\r\n reverseButtons: true,\r\n buttonsStyling: false,\r\n customClass: {\r\n confirmButton: 'btn btn-primary mb-2',\r\n cancelButton: 'btn btn-secondary mr-2 mb-2'\r\n }\r\n }).then((result) => {\r\n if (result.value) {\r\n window.location.href = '/cart';\r\n }\r\n })\r\n }\r\n \r\n export function showResetPasswordMessageBox(msg, icon, retunUrl) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n showConfirmButton: true,\r\n icon: icon\r\n }).then((result) => {\r\n if (result.value) {\r\n if (retunUrl!==\"\") window.location.href = retunUrl;\r\n }\r\n })\r\n }\r\n\r\n export function showCheckEmailMessageBox(msg, toLoginCaption, toResetPasswordCaption, toBackCaption, Caption, email) {\r\n (window as any).swal.fire({\r\n title: Caption,\r\n html: msg,\r\n icon: 'info',\r\n showCancelButton: true,\r\n showDenyButton: true,\r\n confirmButtonText: toLoginCaption,\r\n denyButtonText: toResetPasswordCaption,\r\n cancelButtonText: toBackCaption,\r\n reverseButtons: false,\r\n buttonsStyling: false,\r\n customClass: {\r\n confirmButton: 'btn btn-primary mb-2',\r\n denyButton: 'btn btn-secondary ml-2 mb-2',\r\n cancelButton: 'btn btn-secondary ml-2 mb-2'\r\n }\r\n }).then((result) => {\r\n\r\n if (result.isConfirmed) {\r\n window.location.href = '/login?ReturnUrl=%2Fcart/checkout&loginName=' + email;\r\n } else if (result.isDenied) {\r\n window.location.href = '/forgot-password?ReturnUrl=%2Fcart/checkout&email=' + email;\r\n }\r\n })\r\n }\r\n export function showCheckEmailAllowGuestMessageBox(msg, toLoginCaption, toResetPasswordCaption, toBackCaption, Caption, email) {\r\n\r\n (window as any).swal.fire({\r\n title: Caption,\r\n html: msg,\r\n icon: 'info',\r\n showCancelButton: true,\r\n showDenyButton: true,\r\n confirmButtonText: toLoginCaption,\r\n denyButtonText: toResetPasswordCaption,\r\n cancelButtonText: toBackCaption,\r\n reverseButtons: false,\r\n buttonsStyling: false,\r\n customClass: {\r\n confirmButton: 'btn btn-secondary mb-2',\r\n denyButton: 'btn btn-secondary ml-2 mb-2',\r\n cancelButton: 'btn btn-success ml-2 mb-2 swal2-cancel-custom'\r\n },\r\n didOpen: () => {\r\n // Inline stylování pomocí JavaScriptu\r\n const actions = document.querySelector('.swal2-actions') as HTMLElement;\r\n if (actions) {\r\n actions.style.display = 'flex';\r\n actions.style.justifyContent = 'center';\r\n actions.style.flexWrap = 'wrap'; // Zajistí, že tlačítka se zalomí na další řádek\r\n }\r\n\r\n const cancelButton = document.querySelector('.swal2-cancel-custom') as HTMLElement;\r\n if (cancelButton) {\r\n cancelButton.style.display = 'block';\r\n cancelButton.style.width = '90%';\r\n cancelButton.style.textAlign = 'center';\r\n cancelButton.style.marginTop = '10px';\r\n }\r\n }\r\n }).then((result) => {\r\n\r\n if (result.isConfirmed) {\r\n window.location.href = '/login?ReturnUrl=%2Fcart/checkout&loginName=' + email;\r\n } else if (result.isDenied) {\r\n window.location.href = '/forgot-password?ReturnUrl=%2Fcart/checkout&email=' + email;\r\n }\r\n })\r\n }\r\n\r\n\r\n export function showActivateAccountMessageBox(msg) {\r\n (window as any).swal.fire({\r\n html: msg,\r\n icon: 'info',\r\n }).then(() => {\r\n window.location.href = '/';\r\n })\r\n }\r\n\r\n export function AddURLParam(key: string, value: string) {\r\n var url = new URI(window.location.href);\r\n url.addQuery(key, value);\r\n window.history.pushState(null, null, url.valueOf());\r\n }\r\n\r\n export function RemoveURLParam(key: string, value: string = \"\") {\r\n var url = new URI(window.location.href);\r\n if (value.length > 0) {\r\n url.removeQuery(key, value);\r\n }\r\n else {\r\n url.removeQuery(key);\r\n }\r\n window.history.pushState(null, null, url.valueOf());\r\n }\r\n\r\n\r\n export function RemoveQueryString() {\r\n var uri = window.location.toString();\r\n if (uri.indexOf(\"?\") > 0) {\r\n var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\r\n window.history.replaceState({}, document.title, clean_uri);\r\n }\r\n }\r\n\r\n export function formValidate(formName: string) {\r\n //$.validator.addMethod(\"requiredif\", function (value, element, params) {\r\n // console.log(\"aaa\");\r\n // if ($(params).val().toString().length === 0) {\r\n // return true;\r\n // } else if(value.length === 0) {\r\n // return false;\r\n // }\r\n // return true;\r\n //});\r\n\r\n //$.validator.unobtrusive.adapters.add(\"requiredif\", [\"otherpropertyname\"], function (options) {\r\n // options.rules[\"requiredif\"] = \"#\" + options.params.otherpropertyname;\r\n // options.messages[\"requiredif\"] = options.message;\r\n //});\r\n\r\n\r\n\r\n if ($('#' + formName).valid() == false) {\r\n $.each($('#' + formName).validate().errorList, function () {\r\n $('span[data-valmsg-for=\"' + this.element.id + '\"]').text(this.message);\r\n $('span[data-valmsg-for=\"' + this.element.id + '\"]').show();\r\n });\r\n return false;\r\n } else {\r\n return true;\r\n };\r\n\r\n }\r\n\r\n // Provede redirect na danou url s odesláním POST dat\r\n // Použití: Common.redirectPost('/cart/finish', { id: response.id });\r\n export function redirectPost(url, data) {\r\n var form = document.createElement('form');\r\n document.body.appendChild(form);\r\n form.method = 'post';\r\n form.action = url;\r\n for (var name in data) {\r\n var input = document.createElement('input');\r\n input.type = 'hidden';\r\n input.name = name;\r\n input.value = data[name];\r\n form.appendChild(input);\r\n }\r\n form.submit();\r\n }\r\n\r\n export function formatCurrency(value: number) {\r\n var suffix = (value % 1) == 0 ? \",-\" : \"\";\r\n return Intl.NumberFormat('cs-CZ', { style: 'decimal', currency: 'czk', minimumFractionDigits: (value % 1) == 0 ? 0 : 2 }).format(value) + suffix;\r\n }\r\n\r\n export function saveFormToSessionStorage(formName: string) {\r\n $('#' + formName + ' input[type=\"text\"]').each(function () {\r\n var id = $(this).attr('id');\r\n sessionStorage.setItem(id, $(this).val().toString());\r\n });\r\n $('#' + formName + ' input[type=\"checkbox\"]').each(function () {\r\n var id = $(this).attr('id');\r\n if ($(this).is(\":checked\")) { sessionStorage.setItem(id, 'true'); }\r\n else { sessionStorage.setItem(id, 'false'); };\r\n });\r\n $('#' + formName + ' select').each(function () {\r\n var id = $(this).attr('id');\r\n sessionStorage.setItem(id, $(this).val().toString());\r\n });\r\n };\r\n\r\n export function loadFormFromSessionStorage(formName: string) {\r\n $('#' + formName + ' input[type=\"text\"]').each(function () {\r\n var id = $(this).attr('id');\r\n var value = sessionStorage.getItem(id);\r\n $(this).val(value);\r\n });\r\n $('#' + formName + ' input[type=\"checkbox\"]').each(function () {\r\n var id = $(this).attr('id');\r\n var value = sessionStorage.getItem(id);\r\n if (value == 'true') { ((this) as HTMLInputElement).click(); ((this) as HTMLInputElement).checked = true; } else { ((this) as HTMLInputElement).checked = false };\r\n });\r\n $('#' + formName + ' select').each(function () {\r\n var id = $(this).attr('id');\r\n if (sessionStorage.getItem(id) != null) $(this).val(sessionStorage.getItem(id)).change();\r\n });\r\n }\r\n}","namespace Other {\r\n export function Init() {\r\n $(\"#btnNewsletter\").click(function (event) {\r\n if (!Common.formValidate(\"fNewsletter\")) return;\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/newsletter',\r\n //headers: { \"RequestVerificationToken\": $('#fNewsletter input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n data: $('#fNewsletter').serialize(),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n $('#footer-newsletter-address').val(\"\");\r\n Common.showMessageBox(response.Message, 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n Common.showMessageBox(xhr.status + ' - ' + xhr.statusText, 'error');\r\n }\r\n });\r\n\r\n });\r\n\r\n if ($(\"#PaymentStatusView\").length > 0) {\r\n Common.RemoveQueryString();\r\n }\r\n\r\n $(document).on(\"click\", '#send-contact-form', function () { Other.SendContactForm('contact-form'); })\r\n }\r\n\r\n export function SendContactForm(formName) {\r\n\r\n if (!Common.formValidate(formName)) return;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: \"/sendcontactform\",\r\n data: $('#' + formName).serialize(),\r\n headers: { \"RequestVerificationToken\": $('#' + formName + ' input[name=\"__RequestVerificationToken\"]').val().toString() },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n Common.showMessageBox(response.Message.toString(), 'success');\r\n }\r\n else {\r\n Common.showMessageBox(response.Message.toString().replace(/,/g, \"
\"), 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n $('#' + formName).removeClass('was-validated');\r\n }\r\n\r\n export function SetCookieConsent() {\r\n var cookieconsent = (window as any).initCookieConsent();\r\n cookieconsent.run({\r\n current_lang: 'cs',\r\n page_scripts: true,\r\n autorun: true,\r\n delay: 0,\r\n autoclear_cookies: true,\r\n\r\n gui_options: {\r\n consent_modal: {\r\n layout: 'box', // box/cloud/bar\r\n position: 'bottom left', // bottom/top + left/right/center\r\n transition: 'slide' // zoom/slide\r\n },\r\n settings_modal: {\r\n layout: 'box', // box/bar\r\n transition: 'slide', // zoom/slide\r\n }\r\n },\r\n\r\n onAccept: function (cookies) {\r\n if (cookieconsent.allowedCategory('necessary')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"necessary\" });\r\n }\r\n\r\n if (cookieconsent.allowedCategory('analytics')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"tracking\" });\r\n }\r\n\r\n if (cookieconsent.allowedCategory('marketing')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"performance\" });\r\n }\r\n },\r\n\r\n languages: {\r\n 'cs': {\r\n consent_modal: {\r\n title: \"Cookies informace\",\r\n description: 'Tyto webové stránky používají soubory cookies a další identifikátory, které mohou obsahovat osobní údaje. Cookies nám pomáhají zjišťovat, jak stránku používáte, a díky tomu ji můžeme stále zlepšovat.',\r\n primary_btn: {\r\n text: 'Přijmout vše',\r\n role: 'accept_all' //'accept_selected' or 'accept_all'\r\n },\r\n secondary_btn: {\r\n text: 'Nastavení cookies',\r\n role: 'settings' //'settings' or 'accept_necessary'\r\n }\r\n },\r\n settings_modal: {\r\n title: 'Nastavení cookies',\r\n save_settings_btn: \"Uložit nastavení\",\r\n accept_all_btn: \"Přijmout vše\",\r\n reject_all_btn: 'Odmítnout vše',\r\n close_btn_label: \"Zavřít\",\r\n blocks: [\r\n {\r\n title: \"Jaké používáme cookies\",\r\n description: 'Pro zlepšení uživatelského zážitku tento web využívá soubory cookies. Kromě technických cookies nezbytných pro správnou funkčnost webu využíváme také další skupiny cookies, které můžete povolit nebo zakázat v nabídce níže. Své rozhodnutí můžete kdykoli změnit kliknutím na odkaz \"Nastavení cookies\" v patičce.',\r\n }, {\r\n title: \"Technické cookies\",\r\n description: 'Soubory nutné pro základní funkčnost webových stránek.',\r\n toggle: {\r\n value: 'necessary',\r\n enabled: true,\r\n readonly: true\r\n }\r\n }, {\r\n title: \"Analytické cookies\",\r\n description: 'Analytické cookies nám dávají obecný přehled o návštěvnosti a pohybu uživatelů na webu.',\r\n toggle: {\r\n value: 'analytics',\r\n enabled: true,\r\n readonly: false\r\n }\r\n }, {\r\n title: \"Marketingové cookies\",\r\n description: 'Cookies pro marketingové účely shromažďují informace o vašem chování při procházení stránek za účelem zobrazování reklam a dalších marketingových nástrojů.',\r\n toggle: {\r\n value: 'marketing',\r\n enabled: true,\r\n readonly: false\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (!cookieconsent.validCookie('cc_cookie')) {\r\n var dataLayer = (window as any).dataLayer || [];\r\n dataLayer.push({ event: \"CookieConsent\", consentType: \"empty\" });\r\n }\r\n }\r\n}","namespace WishList {\r\n export function Init() {\r\n $(document).on(\"click\", '.wishlist__column--remove', function () { WishList.RemoveFromWishList($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.product-card__actions .product-card__wishlist', function () { WishList.AddToWishList($(this).data(\"id\")); })\r\n $(document).on(\"click\", '.product__actions-item--wishlist .btn', function () { WishList.AddToWishList($(this).data(\"id\")); })\r\n\r\n }\r\n\r\n export function AddToWishList(productID) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/addtowishlist',\r\n data: ({ 'productID': productID, 'returnUrl': window.location.pathname }),\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n refreshWishListWidget();\r\n Common.showMessage(response.Message, 'success', 5000);\r\n }\r\n else {\r\n Common.showMessageBox(response.Message, 'warning');\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n export function RemoveFromWishList(id) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: '/removefromwishlist',\r\n data: { 'id': id },\r\n dataType: \"json\",\r\n success: function (response) {\r\n if (response.Result == true) {\r\n RefreshWishList();\r\n Common.showMessage(response.Message, 'info', 5000);\r\n }\r\n else\r\n Common.showMessageBox(response.Message, 'error');\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n\r\n export function RefreshWishList() {\r\n if ($(\".wishlist\").length > 0) {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/account/wishlist?partial=true',\r\n success: function (response) {\r\n var html = $(response);\r\n $('.wishlistContainer').replaceWith(html.find('.wishlistContainer'));\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n refreshWishListWidget();\r\n }\r\n\r\n function refreshWishListWidget() {\r\n $.ajax({\r\n type: \"GET\",\r\n url: '/getwishlistinfo',\r\n success: function (response) {\r\n $('.wishListInfo .indicator__value').html(response.Pocet.toString());\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n console.log(xhr.status);\r\n }\r\n });\r\n }\r\n}\r\n\r\n",null,"$(function () {\r\n //Account\r\n Account.Init();\r\n\r\n // Cart\r\n Cart.Init();\r\n //Cart.RefreshCartInfo(); \r\n\r\n //Checkout\r\n if ($(\"#checkoutCreateOrder\").length > 0) Checkout.Init();\r\n\r\n // WishList\r\n WishList.Init(); \r\n\r\n // Catalog \r\n Catalog.Init();\r\n\r\n // other\r\n Other.Init();\r\n\r\n //Catalog.SetTooltip('label-left', 'right');\r\n //Catalog.SetTooltip('label-right', 'left');\r\n\r\n Other.SetCookieConsent();\r\n});\r\n\r\n"]}