1function lt(t,e){e=e.sort((s,n)=>n-s);let i=e[0];return e.forEach(s=>{t<i&&t<=s&&(i=s)}),i}var dt=150,X=2160,ct={avif:null,webp:null};function ht(){let t=typeof flexbe_cli=="object"&&flexbe_cli.vars?.site.images||{};return{lazy:!0,lazy_priority:!1,avif:!1,webp:!1,avif_support:ct.avif||t.avif_support,webp_support:ct.webp||t.webp_support,slow_network:!1,maxSize:X,minSize:dt,quality_map:{jpg:70,webp:70,avif:55}}}async function S(t){return new Promise((e,i)=>{let s=new Image,n=()=>{e(s),setTimeout(()=>{typeof s.remove=="function"&&s.remove()},10)};"decode"in s&&!/\.svg/.test(t)?(s.src=t,s.decode().then(n).catch(i)):(s.onerror=i,s.onload=n,s.src=t)})}function zt(t){if(typeof t!="string")return t;t=t.replace(/(\/img\/[\d_q]+)\/[\w-]+(\.\w{3,4})/i,"$1$2");let[,e,i,s,n]=t.match(/\/img\/(\d+)_?(\d+)?_?q?(\d+)?\.(\w{3,4})/i)||[];return{id:+e,ext:n,name:`${e}.${n}`,size:i?+i:0,quality:s?+s:null}}function ut(t,e){let i=e.avif_support,s=e.webp_support,n=e.avif,a=e.webp,o=t.ext;return i&&n?o="avif":s&&a?o="webp":t.ext==="webp"&&(s?o="webp":o=t.transparent?"png":"jpg"),o}function Ot(t,e=null,i=null){i={...ht(),...i};let{id:s,ext:n}=t;if(!s)return"";let a=i.maxSize||X;!e&&t.ext==="webp"&&!i.webp_support&&(e=Math.min(t.width||a,a));let o=t.animated??n==="gif",r=`/img/${s}.${n}`;if(!e||o||n==="svg")return r;let c=ut(t,i),l=i.slow_network&&ft(),d=i.quality_map??{jpg:70,webp:70,avif:55};switch(l&&(d={jpg:50,webp:50,avif:45}),c){case"png":return`/img/${s}_${e}.png`;case"avif":case"webp":case"jpg":return`/img/${s}_${e}_q${d[c]}.${c}`;case"gif":break;default:return r}}function Ht(t){let e=String(t).match(/\.(jpg|jpeg|png|gif|svg|bmp|webp)$/i);return e?.[1]?e[1]:""}function qt(t){return t!=="transparent"?t:"#000000"}function O(t){if(typeof t=="string"&&(t=zt(t)),!t||typeof t!="object")return{};let e=t.img_ext||t.ext,i=t.img_id||t.id,s=t.img_name||t.name;(!e||e==="false")&&(e=s?Ht(s):"jpg");let n=t.img_border||t.border,a=qt(t.img_average||t.average),o=t.img_preview||t.preview||"",r=t.img_width||t.width||0,c=t.img_height||t.height||0,l=+(+t.img_proportion||+t.proportion||0).toFixed(2),d=t.img_animated||t.animated||e==="gif",h=t.img_transparent||t.transparent||0;return{id:i,ext:e,average:a,preview:o,width:r,height:c,proportion:l,border:n,animated:d,transparent:h}}function F(t,e=0,i){return Ot(O(t),e==="%optimalWidth%"?e:Math.round(e)||parseInt(e,10)||null,i)}async function K(t){let e=t,i=typeof t=="object"&&(+t.proportion||+t.img_proportion)||0;if(i&&(i<2||i<5&&i%1>0)&&(i*=100),typeof e=="string"||!i){typeof e=="object"&&(e=F(t,50));let s=await S(e);i=s.naturalHeight/s.naturalWidth*100}return i}function ft(){return typeof navigator>"u"?!1:(navigator.connection?.effectiveType||"4g")!=="4g"}async function k(t,e,i){i={...ht(),...i};let s=t.width||0,n=t.img_scale||t.scale||"cover",a=e.height/e.width,o=await K(t)/100,r=i.slow_network&&ft()?Math.min(1.5,globalThis.devicePixelRatio):Math.min(2,globalThis.devicePixelRatio),c=ut(t,i),l,d;a>o&&n==="contain"||a<o&&n==="cover"?(l=e.width,d=l*o):(d=e.height,l=d/o),r>1&&(l*=r,d*=r),i.sizes&&(l=lt(l,i.sizes),d=l*o);let h=i.minSize||dt,p=i.maxSize||X;return l<=h&&/webp|jpg/.test(c)&&(l=l/r*2,d=l*o),s&&l>s&&(l=s,d=l*o),l>p&&(l=p,d=l*o),{width:Math.ceil(l),height:Math.ceil(d)}}var Z=new WeakMap,Wt=()=>Math.floor(Math.random()*999999999),pt=t=>{let{is:e,component:i}=t;return Z.has(i)||Z.set(i,Wt()),`.component-${e}-${Z.get(i)}`},_=class{static is="";require=[];core=null;owner=null;root=null;component=null;$component=null;componentWidth=null;componentHeight=null;isInited=!1;isLoaded=!1;isUpdated=!1;isOpen=null;isVisible=null;inScreen=!1;inBeside=!1;inView=!1;inFocus=!1;wasVisible=null;wasScreen=!1;wasBeside=!1;wasView=!1;wasFocus=!1;get is(){return this.constructor.is}constructor({component:t,core:e,reason:i}){this.core=e,this.owner=e.area,this.root=e.root,this.component=t,this.$component=$(t),this.isUpdated=i==="update"}onInit(){}onLoad(){}onVisible(t){}onScreen(t){}onBeside(t){}onView(t){}onFocus(t){}onResize(t){}onOpen(t){}onClose(t){}onHideShowUI(t){}onDestroy(){}#t(){this._clearEvents();let t=pt(this);
1$(this.owner).on(`tween${t}`,e=>this.#e(e.detail)),$(this.root).on(`open${t}`,e=>this._onOpen(e.detail)),$(this.root).on(`close${t}`,e=>this._onClose(e.detail))}_clearEvents(){let t=pt(this);$(this.owner).off(t),$(this.root).off(t)}#e({force:t=!1}={}){let e=this.componentWidth==null||this.componentHeight==null,i=this.core.isVisible,s=i&&this.component.offsetWidth||0,n=i&&this.component.offsetHeight||0,a=!!(s||n),o=a&&this.core.inBeside,r=a&&this.core.inScreen,c=a&&this.core.inView,l=a&&this.core.inFocus,d=this.componentWidth!==s,h=this.componentHeight!==n,p=t||a&&!e&&(d||h);a&&(this.componentWidth=s,this.componentHeight=n),a!==this.isVisible&&this._onVisible({state:a}),p&&this._onResize({force:t}),o!==this.inBeside&&this._onBeside({state:o}),r!==this.inScreen&&this._onScreen({state:r}),c!==this.inView&&this._onView({state:c}),l!==this.inFocus&&this._onFocus({state:l})}_onInit(){this.isInited=!0,typeof this.onInit=="function"&&this.onInit(),this.#e(),this.#t(),flexbe_cli.require(this.require,()=>this._onLoad())}_onLoad(){this.isLoaded=!0,typeof this.onLoad=="function"&&this.onLoad(),this.require.length&&this.#e()}_onVisible({state:t}){if(this.isVisible==null){this.isVisible=t,this.wasVisible=t;return}let e=t&&!this.wasVisible;this.isVisible=t,this.onVisible({state:t,first:e}),t&&(this.wasVisible=!0)}_onScreen({state:t}){let e=t&&!this.wasScreen;this.inScreen=t,this.onScreen({state:t,first:e}),t&&(this.wasScreen=!0)}_onView({state:t}){let e=t&&!this.wasView;this.inView=t,this.onView({state:t,first:e}),t&&(this.wasView=!0)}_onBeside({state:t}){let e=t&&!this.wasBeside;this.inBeside=t,this.onBeside({state:t,first:e}),t&&(this.wasBeside=!0)}_onFocus({state:t}){let e=t&&!this.wasFocus;this.inFocus=t,this.onFocus({state:t,first:e}),t&&(this.wasFocus=!0)}_onResize(t){this.onResize(t)}_onOpen(t){this.isOpen=!0,this.#e(),this.onOpen(t)}_onClose(t){this.isOpen=!1,this.#e(),this.onClose(t)}_onWindowResize(){this.onWindowResize&&(this.#e(),this.onWindowResize())}_onHideShowUI(t){this.onHideShowUI(t)}destroy(){this._clearEvents(),this.onDestroy()}};var E={},H=class extends _{static is="image";isImgLoaded=!1;params=null;constructor(t){super(t),this.imageLoadingOptions=flexbe_cli.vars.site.images,this.lazyLoad=this.component.hasAttribute("data-img-lazy"),this.autoLoad=this.component.hasAttribute("data-img-autoload"),this.imageLayer=this.$component.find(".component-image__image").get(0)||this.component,this.overlayLayer=this.$component.find(".component-image__scroll").get(0)}async onInit(){this.autoLoad&&!this.lazyLoad&&await this.loadImage(),this.$component.off(".componentImage"),this.$component.on("setImage.componentImage",$.debounce(async()=>{let t=this.component.getClientRects().length>0;this.autoLoad=!0,this.lazyLoad=!0,t&&!this.isImgLoading&&!this.isImgLoaded&&await this.loadImage()},10))}async onBeside({state:t}){if(!t)return!1;!this.isImgLoaded&&this.autoLoad&&await this.loadImage()}async onResize(){this.isImgLoaded&&this.autoLoad&&(clearTimeout(this._resizeTimeout),this._resizeTimeout=setTimeout(()=>this.loadImage(!0),1e3))}onHideShowUI(t){t==="generation"&&requestAnimationFrame(()=>{this.component&&this.params?.position&&(this.component.style.setProperty("--imagePositionX",this.params.position.x),this.component.style.setProperty("--imagePositionY",this.params.position.y))})}async loadImage(t=!1){if(this._setParams(),!t&&(this.isImgLoaded||this.isImgLoading))return;this._setOverlay();let e,i=this.params;i.original_resolution||(e=await this.getOptimalSize(),e&&E[this.params.id].sizes&&!E[this.params.id].sizes.includes(e)&&E[this.params.id].sizes.push(e)),this.isImgLoading=!0;let s=F(i,e,this.imageLoadingOptions);await this._setImage(s),this.isImgLoading=!1}async getOptimalSize(){let t=this.params,e=await K(t);t.proportion=e,E[this.params.id]&&(E[this.params.id].params.proportion=e);let i=this.componentWidth||this.component.offsetWidth,s=this.componentHeight||this.component.offsetHeight||i*e/100,{width:n}=await k(this.params,{width:i,height:s},this.imageLoadingOptions),a=n-2,o=Math.max(50,n*1.2);return n=this._getClosestSize(n,a,o),n}async _setImage(t){let{$component:e}=this;if(t){if(this.imageLayer.tagName==="IMG"?(this.imageLayer.removeAttribute("data-inline-src"),this.imageLayer.removeAttribute("data-lazy-src"),this.imageLayer.src=t):this.imageLayer.style.backgroundImage=`url(${t})`,!this.isImgLoaded){if(t)try{await S(t)}catch(i){console.error("Image preload error",i)}e.removeClass("loading"),this.isImgLoaded=!0}e.trigger("load")}}_setOverlay(){let{overlayLayer:t,componentWidth:e,componentHeight:i}=this;if(!t)return;let s="medium";e<=200||i<=150?s="xsmall":e<=400||i<=250?s="small":e>=650&&i>=400&&(s="large"),t.setAttribute("data-size",s),t.getAttribute("data-type")==="hover"&&$(t).on("pointerenter pointerleave",n=>{let a=n.type==="pointerenter";$(t).toggleClass("hover",a)})}
1_setParams(){if(this.params)return;let t=this.component,e=$(t),i={},s=e.attr("data-img-id");if(E[s]?.params)i={...E[s].params};else if(i.id=s,i.ext=e.attr("data-img-ext"),i.proportion=+e.attr("data-img-proportion"),i.position={x:e.attr("data-img-x")||"50%",y:e.attr("data-img-y")||"50%"},!i.ext){let n=(e.attr("data-img-name")||"image.jpg").match(/\.(\D{2,4})$/i)||[];n[1]&&i.ext!==n[1]&&(i.ext=n[1]||!1)}i.action=e.attr("data-action"),i.proportion||(i.proportion=100),i.scale=e.attr("data-img-scale")||"cover",i.original_resolution=t.hasAttribute("data-img-original"),E[i.id]||(E[i.id]={params:{...i},sizes:[]}),i.animated=t.hasAttribute("data-img-animated"),i.transparent=t.hasAttribute("data-img-transparent"),this.params=i}_getClosestSize(t,e=t,i=t+10){let s=E[this.params.id].sizes||[],n,a=1/0;return s.forEach(o=>{let r=Math.abs(o-t);o>=e&&o<=i&&r<a&&(n=o,a=r)}),n??t}};var C={},q={};flexbe_cli.entity.setClientJs("element","spoiler01",{components:[H],onLoad(){this.$list=this.$area.find(".spoiler-list"),this.$items=this.$area.find(".spoiler-list-item"),this.isSpoilered=+this.$list.attr("data-spoiler"),this.isAccordion=+this.$list.attr("data-accordion"),q[this.id]||(q[this.id]=this.$items.length),q[this.id]!==this.$items.length&&(C[this.id]=[],q[this.id]=this.$items.length),C[this.id]||(C[this.id]=[]),this.isSpoilered?(this.isAccordion&&C[this.id].length>1&&(C[this.id]=C[this.id].slice(0,1)),C[this.id].forEach(t=>{let e=t&&this.$list.find(`[uid="${t}"]`);e.length&&this.toggleSpoiler({$item:e,state:!0,duration:0,force:!0})})):C[this.id]=[],this.bindEvents()},bindEvents(){if(!this.isSpoilered)return!1;let t=".clickable",e;this.$list.on("mousedown",t,i=>{if(!flexbe_cli.run.is_preview&&$(i.target).closest(".element-text, .component-image, .editor-simple-handle").length){e=!1;return}if($(i.target).closest(".not-clickable").length){e=!1;return}e={target:i.currentTarget,x:i.screenX,y:i.screenY}}),this.$list.on("mouseup",t,i=>{!e||e.target!==i.currentTarget||!flexbe_cli.run.is_preview&&$(i.target).closest(".element-text").length||(Math.sqrt((e.x-i.screenX)**2+(e.y-i.screenY)**2)<5&&this.toggleSpoiler({$item:$(i.currentTarget)}),e=!1)})},toggleSpoiler({$item:t,state:e,force:i,duration:s}){let n=0,a=t.attr("uid");typeof e>"u"&&(e=t.attr("data-expanded")!=="true"),e?C[this.id].find(h=>h===a)||C[this.id].push(a):C[this.id]=C[this.id].filter(h=>h!==a);let o=t.find(".collapsed");if(o[0].inAnimation&&!i)return;o[0].inAnimation=!0;let r=t.find(".spoiler-text"),c=r.find(".spoiler-text-content"),l=o[0].scrollHeight,d=typeof s=="number"?s:Math.max(250,Math.min(400,l*3));e&&(n=(r.height()-c.innerHeight())/2,n<10&&c.css("margin",`${n}px 0`)),o.off("transitionend").one("transitionend",()=>{o.css("height","").toggleClass("collapsed--auto",e),o[0].inAnimation=!1}),o.css({height:`${l}px`,transitionDuration:`${d}ms`}),o[0].offsetHeight,o.toggleClass("collapsed--show",e).attr("aria-expanded",e).attr("aria-hidden",!e),e||o.css("height","0"),t.attr("data-expanded",e),this.isAccordion&&e&&t.siblings("[data-expanded=true]").each((h,p)=>this.toggleSpoiler({$item:$(p),state:!1,force:!0}))}});flexbe_cli.entity.setClientJs("element","text01",{isPure:!0});var ni=Object.freeze({value:"auto",title:"AUTO",auto:!0,selectValue:"auto"}),ai=Object.freeze({value:"fill",title:"FILL",fill:!0,selectValue:"fill",tip:typeof tr=="function"&&tr("editor::units::fill_tip")}),oi=Object.freeze({value:"px",title:"PX",step:1,altStep:5}),ri=Object.freeze({value:"pt",title:"PT",step:1,altStep:.1}),li=Object.freeze({value:"em",title:"EM",step:.1,altStep:.01}),ci=Object.freeze({value:"rem",title:"REM",step:.1,altStep:.01}),di=Object.freeze({value:"vh",title:"VH",step:1,altStep:.1,tip:typeof tr=="function"&&tr("editor::units::vh_tip")}),hi=Object.freeze({value:"vw",title:"VW",step:1,altStep:.1,tip:typeof tr=="function"&&tr("editor::units::vw_tip")}),ui=Object.freeze({value:"cqw",title:"CQW",step:1,altStep:.1}),fi=Object.freeze({value:"cqw",title:"CQH",step:1,altStep:.1}),pi=Object.freeze({value:"ch",title:"CH",step:1,altStep:5,tip:typeof tr=="function"&&tr("editor::units::ch_tip")}),mi=Object.freeze({value:"%",title:"%",step:1,altStep:.1});function mt(t,e,i=1){let s=t.getBoundingClientRect();return{x:(e.clientX-s.left)/i,y:(e.clientY-s.top)/i}}var gt=class extends _{static is="backgroundElement";constructor(...t){super(...t),this.$glareElement=this.$component.find("> .bg-glare-hover").eq(0),this.$bgElement=this.$component.find(".bg-fill").eq(0),this.$hoverElement=this.$component.find(".bg-fill-hover").eq(0),this.lazy=this.$bgElement.data("img-lazy"),this.isImgLoaded=this.$bgElement.data("img-loaded"),this.bgType=this.$bgElement.data("type"),this.hoverType=this.$hoverElement.data("hover-type"),this.hasImagePlaceholder=!!this.$bgElement.data("img-has-placeholder"),this.imageLoadingOptions=flexbe_cli.vars.site.images}async onInit(){this.$bgElement.on("setImage",async()=>{this.isVisible&&!this.isImgLoading&&!this.isImgLoaded&&(this.setImageParams(),await this.loadImage())}),this.$glareElement.length&&this.$component.off("mousemove.bg-glare").on("mousemove.bg-glare",t=>{let{x:e,y:i}=mt(this.$component[0],t);this.$glareElement.css({"--bgGlareX":`${e}px`,"--bgGlareY":`${i}px`})})}async onBeside({state:t,first:e}){t&&e&&(this.lazy&&this.bgType==="image"&&!this.isImgLoaded&&(this.setImageParams(),await this.loadImage()),this.hoverType==="image"&&(this.setHoverImageParams(),await this.loadHoverImage()),this.dispatchEffects())}onWindowResize(){this.dispatchEffects()}getComponentSize(){return{width:this.componentWidth,height:this.componentHeight}}
1dispatchEffects(){let t=flexbe_cli.resize.responsiveMode==="mobile",e=this.$component.hasClass("hover-trigger"),i=this.$component.hasClass("hover-trigger-am"),s=t?i:e;this.$component.toggleClass("js-hover",s)}async loadImage(){this.isImgLoading=!0;let t=0;if(!this.image.original){let{width:i}=await k(this.image,this.getComponentSize(),this.imageLoadingOptions);t=i}let e=F(this.image,t,this.imageLoadingOptions);this.hasImagePlaceholder&&await S(e),this.setImage(this.$bgElement,e),this.isImgLoading=!1,this.isImgLoaded=!0}async loadHoverImage(){let t=0;if(!this.hoverImage.original){let{width:i}=await k(this.hoverImage,this.getComponentSize(),this.imageLoadingOptions);t=i}let e=F(this.hoverImage,t,this.imageLoadingOptions);this.setImage(this.$hoverElement,e)}setImage(t,e){t.css("background-image",`url(${e})`),this.$component.find(".bg-preview").eq(0).addClass("invisible")}setImageParams(){let{$bgElement:t}=this;this.image={id:t.data("img-id"),ext:t.data("img-ext"),width:t.data("img-width"),animated:t.data("img-animated"),transparent:t.data("img-transparent"),proportion:t.data("img-proportion"),original:t.is("[data-img-original]"),type:"background",scale:"cover"}}setHoverImageParams(){let{$hoverElement:t}=this;this.hoverImage={id:t.data("img-id"),ext:t.data("img-ext"),width:t.data("img-width"),animated:t.data("img-animated"),transparent:t.data("img-transparent"),proportion:t.data("img-proportion"),original:t.is("[data-img-original]"),type:"background",scale:"cover"}}};flexbe_cli.entity.setClientJs("element","zone",{components:[gt],onInit(){this.setMeta()},onUpdate(){this.setMeta()},setMeta(){let t=this.lastViewport,e=this.hideHidden;this.lastViewport=flexbe_cli.resize.viewportWidth,this.hideHidden=flexbe_cli.is_admin&&$("body").hasClass("hide-hidden"),this.needFixOrder=this.needFixOrder||this.lastViewport!==t||this.hideHidden!==e},onResize(){this.inScreen&&this.isVisible&&this.fixElementOrder()},fixElementOrder(){if(this.setMeta(),!this.needFixOrder)return;this.needFixOrder=!1;let t=this.$area.find(".elements-list");t.find("[data-hidden]").length&&t.each((e,i)=>{let s=$(i).find(".element-item--static"),n=s.filter(":visible");s.removeClass("is-first-child is-last-child"),n.first().addClass("is-first-child"),n.last().addClass("is-last-child")})}});flexbe_cli.entity.setClientJs("element","zone_grid",{isPure:!0});function Nt(t){return t.some(e=>e.type==="spacer")}function Ut(t){return t.filter((e,i)=>e.type==="divider"&&i>0&&i<t.length-1)}function vt(t,e){if(!t.length||e<=0)return e;let i=Math.floor(e/t.length),s=e-i*t.length;return t.forEach(n=>{n.width+=i,s>0&&(n.width+=1,s-=1)}),0}function bt(t,e){let i=t.minWidth||0,s=Math.min((t.width||0)-i,e);return s<=0?0:(t.width-=s,s)}function jt(t,e){let i=e;for(;i>0;){let s=t.filter(a=>(a.width||0)>(a.minWidth||0));if(!s.length)break;let n=Math.max(1,Math.floor(i/s.length));for(let a of s)if(i-=bt(a,Math.min(n,i)),i<=0)break}return e-i}function Yt(t,e){let i=e-t.reduce((a,o)=>a+(o.width||0),0);if(i===0)return 0;if(i>0){if(Nt(t))return 0;let a=t.filter(c=>c.type==="divider"&&c.width>0);if(a.length)return vt(a,i),0;let o=Ut(t);if(o.length)return vt(o,i),0;let r=[...t].reverse().find(c=>c.type==="divider");return r?(r.width+=i,0):i}let s=-i,n=t.filter(a=>a.type==="divider"&&a.width>0);for(let a of n)if(s-=bt(a,s),s<=0)return 0;return jt(t.filter(a=>a.type==="element"),s),0}function W(t,e){return parseFloat(getComputedStyle(t).getPropertyValue(e))||0}function Gt(t){let e=t.getAttribute("data-e-id");return e==="header_divider"?"divider":e==="header_spacer"?"spacer":"element"}function Jt(t){return flexbe_cli.resize.responsiveMode==="mobile"&&t.attr("data-am-direction")==="column"}function Xt(t){return t.closest("[data-ref-page]").length>0}function Kt(t,e){t.style.removeProperty("gap"),e.forEach(i=>{i.style.removeProperty("--elementWidth")})}flexbe_cli.entity.setClientJs("element","zone_header",{onInit(){this.normalizeHeaderTrack()},onUpdate(){this.normalizeHeaderTrack()},onResize(){this.normalizeHeaderTrack()},onMsg(t,e){t==="normalizeHeaderTrack"&&this.normalizeHeaderTrack(e?.targetWidth)},normalizeHeaderTrack(t){let e=this.$area;if(!e?.length||!Xt(e))return;let i=e.children(".element-item").toArray(),s=e[0];if(Kt(s,i),Jt(e)||!i.length)return;let n=t||Math.round(W(s,"--containerWidth")+W(s,"--headerElementsGap")*2);if(!n)return;let a=i.map(c=>{let l=Gt(c);return{node:c,type:l,width:l==="spacer"?0:Math.round(W(c,"--elementWidth")),minWidth:l==="element"?Math.round(W(c,"--elementMinWidth"))||50:0}}),o=Yt(a,n);a.forEach(c=>{c.type!=="spacer"&&c.node.style.setProperty("--elementWidth",`${c.width}px`)});let r=a.filter(c=>c.type==="element").length-1;if(o>0&&r>0){s.style.setProperty("gap",`${Math.round(o/r)}px`);return}s.style.removeProperty("gap")}});var Zt=t=>crypto.getRandomValues(new Uint8Array(t)),Qt=(t,e,i)=>{let s=256-256%t.length;if(s===256){let a=t.length-1;return(o=e)=>{if(!o)return"";let r="";for(;;){let c=i(o),l=o;for(;l--;)if(r+=t[c[l]&a],r.length>=o)return r}}}let n=Math.ceil(1.6*256*e/s);return(a=e)=>{if(!a)return"";let o="";for(;;){let r=i(n),c=n;for(;c--;)if(r[c]<s&&(o+=t[r[c]%t.length],o.length>=a))return o}}},te=(t,e=21)=>Qt(t,e|0,Zt),ee="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",Ei=te(ee,8),ie=typeof crypto<"u"&&typeof crypto.getRandomValues=="function"?()=>crypto.getRandomValues(new Uint8Array(1))[0]&15:()=>Math.floor(Math.random()*16);function $t(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"10000000-1000-4000-8000-100000000000".replace(/[018]/g,t=>{let e=parseInt(t);return((e^ie())>>e/4).toString(16)})}function V(t,e,i){let s;return typeof e=="function"&&typeof t=="function"&&(t()?e():(i&&setTimeout(()=>{clearInterval(s),e()},i),s=setInterval(()=>{t()&&(clearInterval(s),e())}
1,25))),()=>clearInterval(s)}function yt(t,e,i=1){return 1-t>i&&(t=i),(1-Math.cos(Math.PI*t*e))/2}var se=[0,"parallax","parallax-fade","zoom","zoom-return"],ne=class{imgParams={w:0,h:0,r:1,x:.5,y:.5};canvasSize={w:0,h:0,y:0};winSize={w:0,h:0};overlayOpacity=1;constructor(t,e,i="parallax",s=null){this.id=t,this.shouldRender=!1,this.mode=typeof i=="number"?se[i]:i,this.fadeAnimation=this.mode.includes("fade"),this.parallaxFactor=this.mode.includes("fixed")?1:this.mode.includes("parallax")?.4:0,this.zoomFactor=this.mode.includes("zoom")?.2:0,this.zoomLimit=this.mode==="zoom"?.5:this.mode==="zoom-return"?1:0,this.offCanvas=document.createElement("canvas"),this.offCtx=this.offCanvas.getContext("2d",{alpha:!1}),this.component=e[0],this.canvas=this.component.querySelector("canvas"),this.overlay=this.component.querySelector(".overlay"),this.ctx=this.canvas.getContext("2d",{alpha:!1}),this.init(s),this.reflow()}init(t){!t||!t.url||(this.img=document.createElement("img"),this.img.onload=()=>{this.ready=!0,this.imgParams={w:this.img.width,h:this.img.height,r:this.img.height/this.img.width,x:+t.x.replace("%","")/100,y:+t.y.replace("%","")/100},this.dispatchEvents(),this.draw(),requestAnimationFrame(()=>{$(this.canvas).addClass("ready")})},this.img.src=t.url)}dispatchEvents(){flexbe_cli.events.off(`.bg_${this.id}`),$(window).off(`.bg_${this.id}`),$(window).on(`scroll.bg_${this.id}`,()=>{this.draw()}),$(window).on(`resize.bg_${this.id}`,()=>{this.reflow()}),flexbe_cli.is_admin&&(flexbe_cli.events.on(`entity_render:style.bg_${this.id}`,t=>{t.id===this.id&&this.reflow()}),flexbe_cli.events.on(`layout_change.bg_${this.id}`,()=>{this.reflow()}))}toggleRendering(t){this.shouldRender=t}getZoomCoords(t){let e=1;if(this.zoomFactor){let s=100-yt(t*.01,2,this.zoomLimit)*100;e=1+this.zoomFactor/100*s}let i={w:0,h:0,x:0,y:0};return i.w=this.canvasSize.w*e,i.h=this.canvasSize.h*e,i.x=(i.w-this.canvas.width)/2,i.y=(i.h-this.canvasSize.h)/2,i}reflow(){let t=this.canvas.getBoundingClientRect();this.canvasSize={w:t.width,h:t.height,y:t.top+window.pageYOffset};let{viewportWidth:e,viewportHeight:i}=flexbe_cli.resize;this.winSize.h=flexbe_cli.run.is_mobile?Math.max(this.winSize.h,i):i,this.winSize.w=e,this.fadeAnimation&&(this.overlayOpacity=parseFloat(getComputedStyle(this.component).getPropertyValue("--componentBgOpacity")||1)),this.draw()}draw(){if(!this.shouldRender||!this.ready||this.pending)return;this.pending=!0;let t=flexbe_cli.scroll.latest+this.winSize.h-this.canvasSize.y,e=100-t/(this.canvasSize.h+this.winSize.h)*100;this.drawOffscreen(),this.drawCanvas(t,e),this.drawOverlay(e),this.pending=!1}drawOffscreen(){let{canvasSize:t,zoomFactor:e,winSize:i,parallaxFactor:s,imgParams:n,offCanvas:a,offCtx:o,img:r}=this,c=e?t.h:t.h+(i.h-t.h)*s,l=t.w,d=l,h=l*n.r,p=0,u=(h-c)*n.y*-1;c/l>n.r&&(d=c/n.r,h=c,p=(d-l)*n.x*-1,u=0),a.width!==l&&(a.width=l),a.height!==c&&(a.height=c),o.drawImage(r,p,u,d,h)}drawCanvas(t,e){if(this.canvas.width!==this.canvasSize.w&&(this.canvas.width=this.canvasSize.w),this.canvas.height!==this.canvasSize.h&&(this.canvas.height=this.canvasSize.h),this.zoomFactor){let i=this.getZoomCoords(e);try{this.ctx.drawImage(this.offCanvas,Math.ceil(i.x*-1),Math.ceil(t*this.parallaxFactor-this.winSize.h*this.parallaxFactor-i.y),i.w,i.h)}catch{}}else try{this.ctx.drawImage(this.offCanvas,0,Math.ceil((t-this.winSize.h)*this.parallaxFactor))}catch{}}drawOverlay(t){if(this.fadeAnimation&&this.overlay){let e=1-(1-this.overlayOpacity)*yt(t*.01,2,1);this.overlay.style.setProperty("--componentBgOpacity",e)}}destroy(){this.destroyed=!0,cancelAnimationFrame(this._raf),flexbe_cli.events.off(`.bg_${this.id}`),$(window).off(`.bg_${this.id}`),$(this.canvas).removeClass("ready"),this.offCanvas?.remove(),this.img?.remove()}},ae=class{destroyed=!1;constructor(t,e,i){this.background=t,this.core=t.core,this.$component=t.$component,this.video=e,typeof i=="function"&&(this.onInited=i),this.initVideo()}initVideo(){this.$container=$('<div class="layer video-holder"></div>'),this.$overlay=this.$component.find(".layer.overlay"),this.insertVideo(),this.video.type==="custom"?this.initMP4():this.video.type==="vimeo"?this.initVimeo():this.video.type==="youtube"?this.initYoutube():this.video.type==="
1kinescope"?this.initKinescope():this.initEmbed(),$(document).on(`visibilitychange.bg_effect_${this.core.id}`,()=>{this.background.onscreen&&!document.hidden&&setTimeout(()=>{this.play()},50)})}initVimeo(){let t=0,e=()=>{let i=this.vPlayer;return Promise.all([i.getVideoWidth(),i.getVideoHeight()]).then(s=>{let[n,a]=s;return n/a<2.5&&n/a>.4||t===3?{width:n,height:a}:(t+=1,e())})};flexbe_cli.require(["https://player.vimeo.com/api/player.js"],()=>{this.destroyed||(this.vPlayer=new window.Vimeo.Player(this.$videoElement[0]),e().then(i=>(this.video.width=i.width,this.video.height=i.height,this.fitToSize(),this.play(),null)).catch(()=>{}))})}initYoutube(){let t=()=>{this.yPlayer=new window.YT.Player(this.$videoElement[0],{events:{onReady:()=>{this.fitToSize(),this.play()}}})};!window.YT&&!window.onYouTubeIframeAPIReady?(window.onYouTubeIframeAPIReady=()=>{window.youtubeBGQueue.forEach(e=>e()),window.youtubeBGQueue=null,window.onYouTubeIframeAPIReady=null},window.youtubeBGQueue=[],window.youtubeBGQueue.push(t),flexbe_cli.require(["https://www.youtube.com/iframe_api"])):window.onYouTubeIframeAPIReady?window.youtubeBGQueue.push(t):t()}initKinescope(){this.fitToSize(),flexbe_cli.require(["https://player.kinescope.io/latest/iframe.player.js"],async()=>{this.destroyed||(this.kPlayer=await window.Kinescope.IframePlayer.create(this.$videoElement.attr("id"),{url:this.video.link,behavior:{background:!0,preload:"auto",loop:!0,muted:!0,autoPlay:"viewable",autoPause:!1}}),this.play())})}initEmbed(){this.fitToSize(),this.play()}initMP4(){this.$videoElement[0].oncanplay=()=>{this.play()},this.$videoElement[0].onloadeddata=()=>{this.video.width=this.$videoElement[0].videoWidth,this.video.height=this.$videoElement[0].videoHeight,this.fitToSize(),this.ready()}}insertVideo(){this.video.type==="custom"?(this.$videoElement=$(`<video src="${this.video.link}" 2 controlslist="nodownload" 3 loop="true" 4 muted="true" 5 autoplay="true" 6 playsinline="true" 7 disablePictureInPicture 8 disableRemotePlayback 9 pip="false" 10 ></video>`),this.$videoElement[0].disablePictureInPicture=!0,this.$videoElement[0].disableRemotePlayback=!0):this.$videoElement=$(`<iframe 11 id="${$t()}" 12 src="${this.video.link}" 13 width="${this.video.width}" 14 height="${this.video.height}" 15 allow="autoplay; encrypted-media; fullscreen; screen-wake-lock; accelerometer; clipboard-write;" 16 ></iframe>`),this.$container.append(this.$videoElement),this.$overlay.length&&this.$container.append(this.$overlay),this.$component.prepend(this.$container),this.onInited&&this.onInited(this.$container)}fitToSize(){if(this.video){let t=this.$container.width(),e=this.$container.height(),i=this.video.width/this.video.height;i>t/e?this.$videoElement.css({width:`${e*i}px`,height:"100%"}):this.$videoElement.css({width:"100%",height:`${t/i}px`})}this.videoIsResized=!0}ready(){V(()=>this.videoIsResized,()=>{this.$component.addClass("video-loaded")},5e3)}play(){this.$videoElement&&this.$videoElement[0]&&this.$videoElement[0].play?(this.$videoElement[0].play(),$(document).one("touchstart.video-bg",()=>{this.$videoElement[0].play()}),this.ready()):this.video.type==="vimeo"?V(()=>this.vPlayer&&this.vPlayer.play,()=>{setTimeout(()=>{this.vPlayer.play(),this.ready()},50)},5e3):this.video.type==="youtube"?V(()=>this.yPlayer&&this.yPlayer.playVideo,()=>{this.yPlayer.playVideo(),this.ready()}
16,5e3):this.video.type==="kinescope"?V(()=>this.kPlayer&&this.kPlayer.play,()=>{this.kPlayer.play(),this.ready()},5e3):this.ready()}pause(){this.video.type==="vimeo"&&this.vPlayer?this.vPlayer.pause():this.video.type==="youtube"&&this.yPlayer&&this.yPlayer.pauseVideo?this.yPlayer.pauseVideo():this.video.type==="kinescope"&&this.kPlayer?.pause?this.kPlayer.pause():this.$videoElement&&this.$videoElement[0]&&this.$videoElement[0].pause&&this.$videoElement[0].pause()}destroy(){this.destroyed=!0,this.pause(),this.kPlayer&&this.kPlayer.destroy(),$(document).off(`.bg_effect_${this.core.id}`)}},oe=[800,1366,1920,2160],B=class extends _{static is="background";constructor(...t){super(...t);let{$component:e}=this,i=e.data();this.data={type:i.type||"color",hasImagePlaceholder:!!i.hasPlaceholder,imageLoadingOptions:flexbe_cli.vars.site.images,isLazyLoading:!!i.lazy,isImgLoaded:!!i.loaded,effect:i.effect,effectMobile:i.effectMobile??i.effect,videoId:i.videoId||null,videoType:i.videoType||null,videoLink:i.videoLink||null,videoWidth:i.videoWidth||640,videoHeight:i.videoHeight||360,videoPreview:i.videoPreview||"color",infinityVideo:i.infinityVideo??!1,mobileVideoEnabled:i.mobileVideoEnabled||!1,videoParallaxFactor:.4},this.image={url:null,id:i.imgId,ext:i.imgExt,x:i.imgX,y:i.imgY,proportion:i.imgProportion,width:i.imgWidth,animated:i.imgAnimated,transparent:i.imgTransparent,scale:"cover",type:"background",original:!!i.imgOriginal}}async onInit(){this.data.isLazyLoading||await this.loadImage(),this.$component.on("setImage",async()=>{this.isVisible&&!this.isImgLoading&&!this.data.isImgLoaded&&await this.loadImage()})}onScreen({state:t}){this.videoInstance&&(this.data.infinityVideo||(t?this.videoInstance.play():this.videoInstance.pause())),this.onscreen=t,!(!t||this.played)&&this.playVideo()}async onBeside({state:t,first:e}
16){t&&e&&(await this.loadImage(),this.imageEffectInit(),this.videoEffectInit()),this.played||this.playVideo(),this.bgEffect&&(this.bgEffect.toggleRendering(t),this.bgEffect.draw())}onResize(){this.bgEffect&&requestAnimationFrame(()=>{this.bgEffect.reflow()}),this.data.type==="video"&&(this.videoInstance?(this.videoInstance.fitToSize(),this.data.effect&&this.fixHolder&&this.setParallax&&setTimeout(()=>{this.fixHolder(),this.setParallax()},100),setTimeout(()=>{this.videoInstance.fitToSize()},150)):this.fixHolder&&this.fixHolder())}async loadImage(){if(!(this.image.id&&(this.data.type==="image"||this.data.type==="video"&&this.data.videoPreview==="image")))return;this.isImgLoading=!0;let t={width:this.componentWidth||this.component.offsetWidth,height:this.componentHeight||this.component.offsetHeight},{width:e}=this.image.original?{width:0}:await k(this.image,t,{...this.data.imageLoadingOptions,sizes:oe});if(this.image.url=F(this.image,e,this.data.imageLoadingOptions),!this.data.isImgLoaded){if(this.data.hasImagePlaceholder)try{await S(this.image.url)}catch(i){console.error("Background preload error",i);return}this.setImage(this.image.url)}this.isImgLoading=!1}setImage(t){this.$component.find(".image-holder").css("background-image",`url(${t})`),this.$component.addClass("image-loaded"),this.isImgLoading=!1,this.data.isImgLoaded=!0}imageEffectInit(){if(this.data.type!=="image"||!this.data.effect||flexbe_cli.vars.globals.isScreenshot)return;let{owner:t,$component:e,data:i,image:s}=this,n=t._core?.id||t.getAttribute("data-id");typeof t._bgEffects=="object"&&t._bgEffects.destroy();let a=i.effect!=="fixed";a&&i.effectMobile==="off"&&flexbe_cli.run.is_screen_mobile&&(a=!1),a&&(this.bgEffect=new ne(n,e,i.effect,s),t._bgEffects=this.bgEffect)}videoEffectInit(){if(this.data.type!=="video"||this.data.effect!=="parallax"||flexbe_cli.vars.globals.isScreenshot)return;let t=this.$component.find(".video-holder, .image-holder"),e=this.owner._core,i=this.data,s=()=>e.tween.height+(flexbe_cli.resize.viewportHeight-e.tween.height)*i.videoParallaxFactor,n=()=>{t.css("height",`${s()}px`)},a=()=>{if(this.data.effectMobile==="off"&&flexbe_cli.run.is_screen_mobile){t.css("top","");return}let o=1-this.data.videoParallaxFactor,r=Math.floor((flexbe_cli.scroll.latest-e.tween.start)*-o)||0;t.css("top",`${r}px`)};n(),a(),e.$area.off(`fixHeaderHeight.component-bg-${e.id}`).on(`fixHeaderHeight.component-bg-${e.id}`,()=>{a()}),$(window).off(`scroll.component-bg-${e.id}`).on(`scroll.component-bg-${e.id}`,()=>{this.onscreen&&a()}),this.fixHolder=n,this.setParallax=a}playVideo(){if(flexbe_cli.run.is_screen_mobile&&!this.data.mobileVideoEnabled||flexbe_cli.vars.globals.isCriticalCss||flexbe_cli.vars.globals.isScreenshot||flexbe_cli.vars.globals.isBot)return!1;let t=this.data,e={id:t.videoId,type:t.videoType,link:t.videoLink,width:t.videoWidth,height:t.videoHeight};return this.data.type!=="video"||!e.id&&!e.link?!1:(this.played=!0,this.videoInstance||(this.videoInstance=new ae(this,e,()=>{this.videoEffectInit()})),!0)}onDestroy(){this.core.$area.off(`fixHeaderHeight.component-bg-${this.core.id}`),$(window).off(`scroll.component-bg-${this.core.id}`),this.bgEffect&&this.bgEffect.destroy(),this.videoInstance&&this.videoInstance.destroy()}};flexbe_cli.entity.setClientJs("modal","GRID",{components:[B],onClose(){this.$area.find(".component-form .is_error").removeClass("is_error")}});function re(t){return/^\s*(?:linear-gradient|repeat-linear-gradient|radial-gradient)\(.*\)/i.test(t)}var I={hidden:"hidden-mobile",navCreated:"mobile-navigation--created",cartContainer:"nav-header-controls--cart",burgerContainer:"nav-header-controls--burger",safeArea:"provide-panel-safe-area"},x={block:".b_block:not(.b_block--global)",element:".element-item",nav:".mobile-navigation",headerHolder:".header-area",header:".layout-type-header",cartBtn:".w_widget .cart-button",headerCartBtn:".cart-element-icon",navbarContent:".nav-header-content",navbarControls:".nav-header-controls",navmenu:".nav-menu",navmenuItem:".nav-menu-item"},T=(t,e=!1)=>{let i=$(t);if(!i.is(x.element)){let s=i.closest(x.element);i=s.length?s:i}i.toggleClass(I.hidden,!e)};flexbe_cli.entity.setClientJs("widget","MENU01",{created:{},navbarStyle:void 0,overlayingHeader:void 0,isFixed:!1,clickEvent:"click",navmenuCreated:0,contrast:"light",background:"#000000",opacity:1,contrastFixed:"light",backgroundFixed:"#000000",opacityFixed:1,headersMap:[],$headers:void 0,$nav:void 0,$navmenu:void 0,$cart:void 0,$burger:void 0,isOpen:!1,color:"",onLoad(){requestAnimationFrame(()=>this.createWidget());let t=flexbe_cli.resize.responsiveMode,e;$(window).on("resized",()=>{clearTimeout(e),e=setTimeout(()=>{let i=flexbe_cli.resize.responsiveMode;t!==i&&i==="mobile"&&this.createWidget(),t=i},50)})},onMsg(t){t==="forceRecreate"&&(this.createWidget(),this.toggleMenu(!1))},createWidget(){this.navbarStyle=null,this.navmenuCreated=0,this.isFixed=!1,this.overlayingHeader=null,this.created={},this.contrast="light",this.background="#000000",this.opacity=1,this.contrastFixed="light",this.backgroundFixed="#000000",this.opacityFixed=1;let t=$(x.block),e=t.find(x.header);if(T(t,!0),T(e,!0),$(`.${I.safeArea}`).removeClass(I.safeArea),this.headersMap=t.not((s,n)=>!!n.closest('[data-hidden="mobile"]')).toArray().map((s,n)=>{let a=$(s),o=a.find(x.header),r=o.closest("[data-fixed-ignore-adaptive]").length,c=o.hasClass("fixed-area")&&!r,l=o.closest("[data-overlayed]").length>0,d=!!o.data("mobile-menu"),h=o[0]?o[0].closest("[data-abtest-active]"):null,p=o[0]?o[0].closest("[data-abtest-id]"):null,u=(o.data("widget-color")||"auto").replace(/contrast|false/,"auto"),f=(o.data("widget-contrast")||o.closest("[data-contrast]").attr("data-contrast")||"auto").replace(/contrast|false/,"auto"),g=o.data("widget-opacity")||"100",[m,v]=String(u).split(":"),[b,y]=String(f).split(":"),[w,M]=String(g).split(":");return{enabled:d,index:n,$block:a,$header:o,isFixed:c,isOverlaying:l,isActiveAbtest:h,isAbtest:p,background:m,contrast:b,opacity:+w,backgroundFixed:v??m,contrastFixed:y??b,opacityFixed:+(M??w)}}).filter(s=>s.enabled&&(!s.isAbtest||s.isActiveAbtest)).sort((s,n)=>Number(n.isFixed)-Number(s.isFixed)),this.$headers=$(this.headersMap.map(s=>s.$header[0])),this.$nav=this.$area.find(x.nav),this.$navmenu=this.$area.find(x.navmenu),this.styleMobileMenu(),this.fillNavMenu(),this.fillNavbar(),e.closest(".b_block").each((s,n)=>{n._core&&n._core.updateTween()}),this.navbarStyle){if(this.background&&!re(this.background)){let s=$('meta[name="theme-color"]');s.length?s.attr("content",this.background):$("head").append(`<meta name="theme-color" content="${this.background}"/>`)}this.$nav.toggleClass("menu-fixed",this.isFixed),this.$nav.toggleClass("menu-static",!this.isFixed),this.hideUnnecessaryElements()}this.overlayingHeader?this.overlayingHeader?.$block.find(x.headerHolder).addClass(I.safeArea):this.navbarStyle==="panel"&&flexbe_cli.block.$list.addClass(I.safeArea),this.navmenuCreated&&(flexbe_cli.entity.initArea(this.$nav),flexbe_cli.events.off("ui_mobilemenu_open").on("ui_mobilemenu_open",()=>{this.openMenu()}),flexbe_cli.events.off("ui_mobilemenu_close").on("ui_mobilemenu_close",()=>{this.$nav.length&&[!0,"true"].includes(this.$nav.attr("data-opened"))&&this.closeMenu()}));let i=flexbe_cli.components.getGlobalInstance("lazyLoading");i&&(i.loadInArea(this.$area[0],"inline"),i.loadInArea(this.$area[0],"lazy"))},styleMobileMenu(){let t={dark:"#060607",light:"#FFFFFF"};if(this.headersMap.length){let s=this.headersMap[0];s.isOverlaying&&s.index===0?this.overlayingHeader=this.headersMap[0]:(s.isOverlaying=!1,(s.background==="transparent"||s.opacity===0)&&(s.isFixed?(s.background=s.backgroundFixed,s.opacity=s.opacityFixed,s.contrast=s.contrastFixed):(s.background="auto",s.opacity=100))),this.background=s.background,this.contrast=s.contrast,this.opacity=s.opacity,this.backgroundFixed=s.backgroundFixed,this.contrastFixed=s.contrastFixed,this.opacityFixed=s.opacityFixed,this.contrast==="auto"&&(this.contrast=s.$header.closest("[data-static-contrast]").attr("data-static-contrast")||s.$header.closest("[data-contrast]").attr("data-contrast")),this.contrastFixed==="auto"&&(this.contrastFixed=this.contrast),this.background==="auto"&&(this.background=this.contrast==="dark"?t.light:t.dark),this.backgroundFixed==="auto"&&(this.backgroundFixed=this.contrastFixed==="dark"?t.light:t.dark,this.opacityFixed=100),this.isFixed=!flexbe_cli.is_admin&&this.headersMap[0].isFixed}let e=null,i=()=>{let s=this.isOpen,n=this.isFixed&&(s||flexbe_cli.scroll.latest>1),a=n?this.contrastFixed:this.contrast,o=n?this.backgroundFixed:this.background,r=(n?this.opacityFixed:this.opacity)/100;s&&o==="transparent"&&(o=a==="dark"?t.light:t.dark,r=1);let c=`${o}-${a}-${r}`;e!==c&&(e=c,this.$area.css({"--background":o,"--opacity":r}).attr("data-contrast",a))};i(),$(window).off("scroll.mobilemenu").on("scroll.mobilemenu",()=>i()),flexbe_cli.events.off(".mobilemenu").on("mobilemenu_opened.mobilemenu mobilemenu_closed.mobilemenu",()=>i())},hideUnnecessaryElements(){this.$nav.removeClass("header-style-round header-style-panel"),this.$nav.addClass(`${I.navCreated} header-style-${this.navbarStyle}
16`),this.headersMap.forEach(t=>{let e=t.$header,i=t.$block,s=e.find(".element-item").toArray().some(n=>n.offsetHeight);T(e,!!s),i.toggleClass("mobile-menu-occupied",!s)})},fillNavbar(){let t=this,{created:e,$area:i,$headers:s,navmenuCreated:n}=this,a=i.find(x.navbarContent),o=i.find(x.navbarControls);a.empty(),o.empty();let r=[],c=[];d(),h(),this.$nav.attr("data-enabled",c.length?"true":"false"),c.length&&l(),r.length&&c.length||c.length>1?this.navbarStyle="panel":r.length===0&&c.length===1?this.navbarStyle="round":this.navbarStyle=null;function l(){let p=s.map((g,m)=>m.querySelector(".component-logo")).eq(0),u=p.clone(),f=u.find(".component-logo-img");if(u.length){u.css({position:"absolute",width:"200px",height:"auto",left:"-9999px",top:"-9999px"}),$("body").append(u);let g=f.prop("width"),m=f.prop("height");g instanceof SVGAnimatedLength&&(g=g.baseVal.value),m instanceof SVGAnimatedLength&&(m=m.baseVal.value),g||(g=f.innerWidth()||u.innerWidth()),m||(m=f.innerHeight()||u.innerHeight());let v=Math.max(.25,m/g||0),b=`${Math.round(50/v)}px`;e.logo=!0,u.css({position:"",width:"",height:"",left:"",top:"",maxWidth:b}),a.append(u),a.attr("data-id",p.closest("[data-id]").attr("data-id")),r.push("logo"),T(p,!1)}else e.logo=!1;return e.logo}function d(){let p=$(x.cartBtn).eq(0),u=t.$headers.find(x.headerCartBtn).eq(0);if(u.length||p.length){e.cart=!0,c.push("cart");let f=p.find(".cart-button-icon"),g=p.find(".cart-button-count"),m=u.find(".cart-element-button-icon"),v=u.find(".cart-element-button-count"),b,y,w;m.length?b=m.html():b=f.html(),v.length?(y=v.css("color"),w=v.css("background-color"),w==="rgba(0, 0, 0, 0)"&&(y="rgb(255, 255, 255, 1)",w="rgb(234, 127, 84, 1)")):(y=g.css("color"),w=g.css("background-color"));let M=` 17 <li class="${I.cartContainer}${u.length?"":" cart-optional"}"> 18 <div class="cart-button"> 19 <svg class="cart-button-icon"> 20 ${b} 21 </svg> 22 <div class="cart-button-count" style="color: ${y}; background: ${w}">0</div> 23 </div> 24 </li>`;t.$cart=$(M),o.append(t.$cart),!u.length&&!t.background&&(t.color=p.css("color"),t.background=p.css("background-color"))}else e.cart=!1;if(e.cart){let f=t.$area.find(".cart-button"),g=f.find(".cart-button-count"),m=flexbe_cli.ecommerce.cartStore.getCount();o.toggleClass("cart-empty",!m),g.text(m),t.$cart.on(t.clickEvent,()=>{t.toggleMenu(!1),flexbe_cli.events.trigger("ui_cart_open")}),setTimeout(()=>{flexbe_cli.ecommerce.cartStore.on("dispatch.mobilemenu",({name:v})=>{let b=flexbe_cli.ecommerce.cartStore.getCount();o.toggleClass("cart-empty",!b),g.text(b),v==="addItem"&&(f.addClass("blink"),setTimeout(()=>{f.removeClass("blink")},300))})})}return e.cart}function h(){return n?(t.$burger=$(`<li class="${I.burgerContainer}"><i></i><i></i><i></i></li>`),o.append(t.$burger),c.push("burger"),t.$burger.on(t.clickEvent,()=>{t.toggleMenu()}),e.burger=!0):e.burger=!1,e.burger}},fillNavMenu(){let{created:t,$navmenu:e,$headers:i}=this,s=["header_menu","header_text","header_contacts","header_social","header_lang_menu","header_button","header_html"];return["header_cart","header_spacer"].forEach(n=>{T(i.find(`[data-e-id="${n}"]`),!1)}),s.forEach(n=>{let a=e.find(`[data-element=${n}]`),o=i.find(`[data-e-id="${n}"]`),r=o.length;if(a.empty(),r){let c=o.clone();c.find('[class^="editor-"]').remove(),c.attr("data-cloned","true");let l=o.closest("[data-page-id]").attr("data-page-id");l&&a.attr("data-page-id",l),a.append(c),a.find("[data-direction]").attr("data-direction","column").attr("data-direction-adaptive","column").attr("data-rollup-adaptive","true"),a.find(".nowrap-list").removeClass("nowrap-list"),a.find(".element-content").removeClass("justify-content-center justify-content-end").addClass("justify-content-start"),T(o,!1),T(c,!0),t[n]=t[n]?t[n]+r:r}}),this.navmenuCreated=Object.keys(t).length,this.navmenuCreated},toggleMenu(t){typeof t>"u"?(t=[!0,"true"].includes(this.$nav.attr("data-opened")),t=!t):t=!!t,this[t?"openMenu":"closeMenu"]()},openMenu(){this.isOpen=!0,this.$area.addClass("show"),this.$nav.outerHeight(),this.$nav.attr("data-opened","true"),this.$navmenu.addClass("active"),this.$burger&&this.$burger.addClass("active"),flexbe_cli.is_admin||flexbe_cli.scroll.lock(),this._onOpen(),flexbe_cli.events.trigger("mobilemenu_opened"),flexbe_cli.resize.responsiveMode==="mobile"&&($("body").addClass("is-widget-open"),this.isFixed||window.scrollTo(0,0))},closeMenu(){this.isOpen=!1,Array.from(this.$navmenu.find(".folder-item")).forEac
24h(t=>{$(t).removeClass("show"),$(t.lastElementChild).slideUp(0)}),$("body").removeClass("is-widget-open"),this.$area.removeClass("show"),this.$nav.attr("data-opened","false"),this.$navmenu.removeClass("active"),this.$burger&&this.$burger.removeClass("active"),flexbe_cli.is_admin||flexbe_cli.scroll.unlock(),$(window).off("resized.mobilemenu"),this._onClose(),flexbe_cli.events.trigger("mobilemenu_closed")}});var N="default",U=class{#t=new Map;#e=null;strict=!1;constructor(t,e=!1){this.#e=t||this,this.strict=e}#i(t,e,i){(Array.isArray(t)?t:t.split(" ")).forEach(s=>{let[n,...a]=s.includes(".")?s.split("."):[s,N],o=a.join(".")||N;this.#t.has(n)||this.#t.set(n,new Map),this.#t.get(n).set(e,{once:i,namespace:o})})}on(t,e){return this.#i(t,e,!1),this}one(t,e){return this.#i(t,e,!0),this}off(t,e){return(Array.isArray(t)?t:t.split(" ")).forEach(i=>{let[s,...n]=i.includes(".")?i.split("."):[i,N],a=n.join(".")||N;(s?[this.#t.get(s)]:[...this.#t.values()]).filter(Boolean).forEach(o=>{Array.from(o.entries()).forEach(([r,c])=>{(!e||e===r)&&c.namespace===a&&o.delete(r)}),o.size===0&&this.#t.delete(s)})}),this}clear(){return this.#t.clear(),this}async trigger(t,...e){let[i,...s]=t.split("."),n=s.join("."),a=this.#t.get(i),o=this.#t.get("*"),r=[];return a&&a.forEach((c,l)=>{(!n||c.namespace.startsWith(n))&&(r.push(Promise.resolve(l.call(this.#e,...e))),c.once&&a.delete(l))}),o&&o.forEach((c,l)=>{r.push(Promise.resolve(l.call(this.#e,t,...e)))}),this.strict&&r.length===0&&console.warn(`No listeners for event: ${t}`),Promise.all(r)}async emit(t,...e){return this.trigger(t,...e)}},Ni=1200*1e3,Ui=5*1e3;function wt(t,e={}){let i=Object.keys(e),s=Object.values(e);return new Function(...i,`return \`${t}\`;`)(...s)}var le={selectClass:"",dropdownClass:"",selectedClass:"selected",optionSelector:"option",attrValue:"value",position:"over",padding:10,title:!1},Q=(t,e)=>{if(!t)return;let i=t.value;t.innerHTML="";let s=t.getAttribute("data-placeholder");if(s){let n=document.createElement("option");n.value="",n.textContent=s,t.appendChild(n)}e.forEach(n=>{let a=document.createElement("option");a.value=n.value,a.textContent=n.label,t.appendChild(a)}),e.some(n=>n.value===i)&&(t.value=i),(t.querySelector(`option[value="${i}"]`)||t.querySelector("option")).setAttribute("selected","selected")},tt=class{static create(t){return new this(t)}static getInstance(t){return $(t).data("selectComponent")}constructor(t){this.opts=t,this.config={...le,...t.config},this.element=t.element,this.$select=$(this.element),this.isNativeSelect=this.$select.is("select"),this.selectAllDevice=this.$select.data("type")==="select",this.blurTimeOut=!1,this.blurListTimeOut=!1,this.focused=!1,this.active=!1,this.$select.data("selectComponent",this),this.createSelect()}createSelect(){this.$customSelect=$(` 25 <div class="dropdown-container ${this.config.selectClass}"> 26 <div tabindex="0" class="dropdown-select"> 27 <span class="dropdown-select__content selected"></span> 28 29 <span class="arrow"> 30 <svg viewBox="0 0 10 6" xmlns="http://www.w3.org/2000/svg"> 31 <path fill="currentColor" d="M 1.4 6.99441e-15L 0 1.34043L 5 6L 10 1.34043L 8.6 0L 5 3.34998L 1.4 6.99441e-15Z"/> 32 </svg> 33 </span> 34 </div> 35 </div> 36 `),this.$customSelect__content=this.$customSelect.find(".dropdown-select__content"),this.$select.after(this.$customSelect),this.syncSelect(),this.$select.on("syncSelectUI",()=>this.syncSelect()),this.selectAllDevice||flexbe_cli.run.is_screen_desktop?(this.$customSelect.off("click.selected").on("click.selected",".dropdown-select",t=>{clearTimeout(this.blurListTimeOut),this.active?this.collapse():this.activate(t)}),this.$customSelect.off("focus.selectFocus").on("focus.selectFocus",".dropdown-select",()=>
36{this.focused=!0,this.$listWrapper||this.createList()}),this.isNativeSelect&&this.$select.off("change.changeSelect").on("change.changeSelect",t=>{let e=t.currentTarget.value;if(this.$listWrapper){let i=this.$listWrapper.find(".dropdown-select-ul li");i.removeClass(this.config.selectedClass),i.filter((s,n)=>n.getAttribute(this.config.attrValue)===e).addClass(this.config.selectedClass)}this.$customSelect__content.text(e),typeof this.opts.onChange=="function"&&this.opts.onChange(t)}),this.$customSelect.off("blur.selectBlur").on("blur.selectBlur",".dropdown-select",t=>{setTimeout(()=>{this.collapse()},500)}),this.$customSelect.off("keydown.selectKeydown").on("keydown.selectKeydown",".dropdown-select",t=>{if(this.focused&&[13,27,32,38,40].includes(t.keyCode)){t.preventDefault();let e=this.$list.find(`.option-e.${this.config.selectedClass}`).filter(i=>!$(i).attr("disabled"));if(t.keyCode===40)t.preventDefault(),this.select(e.next(),!1),this.scrollToSelected();else if(t.keyCode===38)t.preventDefault(),this.select(e.prev(),!1),this.scrollToSelected();else if(!this.active&&t.keyCode===32)t.preventDefault(),this.activate(t);else if(this.active&&[13,27,32].includes(t.keyCode))return t.preventDefault(),this.collapse(),!1}})):this.$select.off("change.selected").on("change.selected",t=>{let e=t.target.value||$(t.currentTarget.options[0]).text();this.$customSelect__content.text(e)})}syncSelect(){let t=this.$select.children(this.config.optionSelector).filter((i,s)=>(s.selected??$(s).attr("selected"))||$(s).hasClass(this.config.selectedClass)).eq(0),e=t.html()||"\u2014";this.$customSelect__content.attr(this.config.attrValue,t.attr(this.config.attrValue)),this.$customSelect__content.html(e)}createList(){let t=this.$select.children(this.config.optionSelector);this.$listWrapper=$(` 37 <div class="select-container-in-body"> 38 <div class="overlay"></div> 39 <ul class="dropdown-select-ul scroller ${this.config.dropdownClass}" tabindex="0"></ul> 40 </div> 41 `),this.$list=this.$listWrapper.find(".dropdown-select-ul"),t.each((e,i)=>{let s=$(i),n=(i.selected??s.attr("selected"))||s.hasClass(this.config.selectedClass),a=(i.disabled??s.attr("disabled"))||s.hasClass("disabled"),o=(i.locked??s.attr("locked"))||s.hasClass("locked"),r=this.isNativeSelect?s.val():s.attr(this.config.attrValue),c=s.html().trim()||"\u2014",l="";this.config.title&&(l=s.attr("data-title"));let d=$(`<li title='${l}' class="option-e"></li>`);n&&!a&&d.addClass(this.config.selectedClass),a&&d.attr("disabled","disabled"),o&&d.attr("locked","locked"),d.attr(this.config.attrValue,r),d.html(c),this.$list.append(d)})}select(t,e){if(!t[0])return;if(t.attr("disabled")){clearTimeout(this.blurTimeOut),this.$list.off("blur.listBlur").on("blur.listBlur",()=>{this.focused=!1,this.blurListTimeOut=setTimeout(()=>{this.$listWrapper&&this.collapse()},200)});return}let i=t.attr(this.config.attrValue),s=this.$select.children(this.config.optionSelector);t.siblings("li").removeClass(this.config.selectedClass),t.addClass(this.config.selectedClass),s.removeAttr("selected").removeClass(this.config.selectedClass),s.filter(`[${this.config.attrValue}='${i}']`).addClass(this.config.selectedClass).attr("selected","selected"),this.$select.val(i),this.$select.trigger("change"),this.$select.closest(".is_error").removeClass("is_error"),this.syncSelect(),e&&this.collapse()}scrollToSelected(){let t=this.$list[0].offsetHeight;if(this.$list[0].scrollHeight<=t)return!1;let e=this.$list.children(".option-e").find(`.${this.config.selectedClass}`)[0];e&&e.scrollIntoView()}collapse(){clearTimeout(this.blurTimeOut),this.active=!1,this.$listWrapper.removeClass("active rise"),this.$listWrapper.detach(),typeof this.opts.onCollapse=="function"&&this.opts.onCollapse()}activate(t){if(this.active)return!1;
41this.active=!0,this.createList();let e=this.config.padding||0,i=this.$customSelect[0].getBoundingClientRect(),s={left:i.left+window.scrollX,top:i.top+window.scrollY,width:i.width,height:i.height};this.config.position==="under"&&(s.top=s.top+s.height+e),this.$listWrapper.off("click.closeSelect").on("click.closeSelect",".overlay",n=>{this.collapse();let a=document.elementFromPoint(n.clientX,n.clientY);a&&a.focus()}),this.$listWrapper.off("click.selectLi").on("click.selectLi",".dropdown-select-ul li",n=>{let a=$(n.currentTarget);this.select(a,!0),typeof this.opts.onSelect=="function"&&this.opts.onSelect(n)}),this.$listWrapper.off("mousewheel.selectUl").on("mousewheel.selectUl",".dropdown-select-ul",n=>{let a=n.currentTarget.scrollHeight,o=n.currentTarget.clientHeight;return!(n.currentTarget.scrollTop===a-o&&n.deltaY>0||n.currentTarget.scrollTop===0&&n.deltaY<0)}),$("body").append(this.$listWrapper),clearTimeout(this.blurTimeOut),this.$list.css({left:`${s.left}px`,top:`${s.top}px`,width:`${s.width}px`}),this.$listWrapper.outerWidth(),this.$listWrapper.toggleClass("rise",!!this.$select.closest(".m_modal, .w_widget").length),this.$listWrapper.addClass("active"),this.scrollToSelected(),typeof this.opts.onActivate=="function"&&this.opts.onActivate(t)}reset(){let t=this.$select.children(this.config.optionSelector);this.select(t)}destroy(){clearTimeout(this.blurTimeOut),clearTimeout(this.blurListTimeOut),this.$select.off("syncSelectUI change.changeSelect change.selected"),this.$customSelect?.off().remove(),this.$list?.off(),this.$listWrapper?.off().remove(),this.$select.removeData("selectComponent")}};var _t=(t,e)=>!t||typeof t!="string"?t:t.replace(/\{\{\s*([^}|]+)(?:\s*\|\s*([^}]*))?\s*\}\}/g,(i,s,n)=>e(s.trim(),n?.trim()));function At(t,e){let i=$(t),s=i.attr("data-calendar"),n=i.attr("data-calendar-range")||"any",a=i.attr("data-calendar-work-days")??"0,1,2,3,4,5,6",o=31,r=11,c=new Date().getFullYear()+3;s==="datetime"&&(c=new Date().getMonth()>=8?new Date().getFullYear()+1:new Date().getFullYear());let l=new Date(new Date().getFullYear()-100,0,1),d=new Date(c,r,o);(s==="datetime"||n==="future")&&(l=new Date),s==="date"&&n==="past"&&(d=new Date);let h={type:s,lowerLimit:l,upperLimit:d,dateRange:n,locale:flexbe_cli.locale.translation.calendar,dateFormat:flexbe_cli.locale.dateFormat,showDateSelector:s==="date"&&n!=="future",insertTo:e,workDays:a.length?a.split(","):[],workTime:null};if(s==="datetime"){let p=i.attr("data-calendar-time-interval")||30,u=i.attr("data-calendar-time-start")||"00:00",f=i.attr("data-calendar-time-finish")||"00:00";h.workTime={interval:p,start:{hour:+u.substring(0,2),minute:+u.substring(3,5)},finish:{hour:+f.substring(0,2),minute:+f.substring(3,5)}}}i.calendar(h)}var D={notStarted:0,inProgress:1,done:2,error:3,abort:4},ce=4*1024*1024,de=class Ft extends U{request;id;file;status=D.notStarted;name;uri;progress=0;static async getFileHash(e){let i=e.name,s=await he(e);return flexbe_cli.helpers.hashCode(i+s.slice(0,ce))}constructor(e){super(),this.file=e,this.name=e.name}async init(){this.id=await Ft.getFileHash(this.file)}upload(){this.trigger("start");let e=flexbe_cli.helpers.upload(this.file,{onProgress:(i,s)=>{s.lengthComputable&&(this.progress=s.loaded/s.total),this.trigger("progress",{jqXhr:i,progress:this.progress})},onSuccess:(i,s)=>{this.uri=i.fileUri,this.status=D.done,this.trigger("success",{jqXHR:i,textStatus:s})},onError:(i,s)=>{this.progress=1,this.status=s==="abort"?D.abort:D.error,this.trigger("error",{jqXHR:i,textStatus:s})},onComplete:(i,s)=>{this.trigger("complete",{jqXHR:i,textStatus:s})}});return this.request=e,this.status=D.inProgress,e}async abort(){!this.request||this.status!==D.inProgress||(this.status=D.abort,this.request.abort())}};async function he(t){return new Promise(e=>{let i=new FileReader;i.addEventListener("load",s=>{e(s.target.result)}),i.readAsBinaryString(t)})}var A={};function Et(t,e,i){let s=(n,a,o)=>{let r=n.find(".form-field-hidden"),c=Array.from(a).map(h=>h.uri).filter(h=>h),l=n.find('input[type="hidden"]'),d=new Set;l.each((h,p)=>{let u=$(p).attr("name");if(u?.includes("[fields]")){let f=u.split("[fields]")[0];d.add(f)}}),d.size===0&&d.add(""),d.forEach(h=>{let p=h?`${h}[fields][${o}][value][]`:`fields[${o}][value][]`;n.find(`input[name$="${p}
41"]`).remove(),c.forEach(u=>{r.append($(`<input class="value" type="hidden" name="${p}" value="${u}">`))})})};t.on(`change${e}`,".file-input--original",async n=>{let a=Object.values(n.currentTarget.files),o=null,r=[];if(!a.length)return;let c=$(n.currentTarget),l=c.closest("[data-field-id]"),d=l.find(".file-list"),h=l.attr("data-field-id"),p=l.attr("data-size"),u=l.attr("data-accept")?l.attr("data-accept").split(", "):[],f=(m,v)=>wt(i,{id:v,fileName:m});if(p){let m=parseFloat(p);p.replace(/[^a-zA-Z]/g,"").toLowerCase()==="kb"?o=m*1e3:o=m*1e3*1e3}a=a.filter(m=>{let v=`.${m.name.split(".").pop().toLowerCase()}`;return u.length&&!u.includes(v)?(r.push(flexbe_cli.locale.tr("form::error_file_accept",{name:m.name})),!1):o&&m.size>o?(r.push(flexbe_cli.locale.tr("form::error_file_size",{name:m.name,size:p})),!1):!0}),A[h]||(A[h]=[]);let g=a.map(m=>new de(m));await Promise.all(g.map(async m=>m.init())),g=g.filter(m=>!A[h].find(v=>v.id===m.id)),g.forEach(m=>{let v=$(f(m.name,m.id));m.on("start",()=>{l.addClass("loading"),l.removeClass("is_error"),d.append(v)}),m.on("progress",({progress:b})=>{let y=124.853-124.853*b;v.find(".circle-loader__path").css({"stroke-dashoffset":`${y}`})}),m.on("success",()=>{s(l,A[h],h)}),m.on("error",b=>{b?.textStatus!=="abort"&&(v.addClass("is-error"),l.addClass("is_error"),l.find(".error-text").append(flexbe_cli.locale.tr("form::error_file")))}),m.on("complete",()=>{v.removeClass("loading"),A[h].every(b=>b.progress===1)&&l.removeClass("loading")}),m.upload()}),l.find(".error-text").html(""),r.length&&(l.addClass("is_error_info"),l.find(".error-text").html(r.join("<br>")).append("<br>"),r=[]),A[h].push(...g),c.val("")}),t.on(`click${e}`,".clear-files",n=>{let a=$(n.currentTarget).parents(".file-item"),o=$(n.currentTarget).closest("[data-field-id]"),r=o.attr("data-field-id"),c=a.attr("data-id"),l=A[r].find(d=>d.id===c);o.removeClass("is_error is_error_info"),o.find(".error-text").html(""),A[r]=A[r].filter(d=>d.id!==l.id),a.remove(),l.abort(),s(o,A[r],r)})}function kt(){A={}}var ue={phone:{RU:["+7 (***) ***-**-**","8 (***) ***-**-**"],KZ:["+7 (***) ***-**-**","8 (***) ***-**-**"],UA:["+38 (***) ***-****"],BY:["+375 ** *******"],US:["+1 (***) ***-****"]}};function fe(t){let e=String(t).toLowerCase(),i=flexbe_cli.vars.site.country,s=ue[e]?.[i];return s&&typeof s=="string"&&(s=[s]),Object.assign([],s)}function It(t){if(typeof window.IMask>"u")return;let e=t.getAttribute("data-type")||t.getAttribute("type"),i={signed:!0,lazy:!0,padFractionalZeros:!0,definitions:["phone","tel"].includes(e)?{"*":/\d/,"#":/\d/}:{"#":/\d/,"@":/[A-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u
410EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./}},s=t.required,n=t.getAttribute("data-mask");n&&!/[ #()*@{}]/.test(n)?n=fe(n):n=[n];try{if(n=n.filter(r=>/[ #()*@_{}]/.test(r)),n=n.map(r=>r.replace(/0/g,"\\0")),n.length===0)throw{message:"Mask is empty"};n.length===1?n=String(n[0]):n=n.map(r=>({...i,mask:r}));let a=new window.IMask(t,{...i,mask:n,dispatch:(r,c)=>{let l=c.compiledMasks;if(l.length===1)return l[0];let d=(c.value+r).replace(/\W/g,"");return l.find(h=>{let p=h.mask.replace(/\W/g,"")[0];return d[0]===p})||l[0]}}),o=()=>{a.masked.isComplete||!s&&!a.value?t.setAttribute("data-mask-complete",!0):t.removeAttribute("data-mask-complete"),t.setAttribute("value",a.value)};t.value&&o(),a.on("accept",o),$(t).on("focus",()=>{requestAnimationFrame(()=>{$(t).trigger("click")})}),t._mask=a}catch(a){a instanceof Error&&console.error("MASK ERROR:",{masks:n,errorMessage:a.message}),t.removeAttribute("data-mask")}}var St=class{constructor(t){this.$legend=t.find(".range-legend"),this.$component=t.find(".range-outer"),this.$input=t.find("input"),this.startEdge=this.$component.data("start"),this.isDouble=!!this.$component.data("double"),this.endEdge=this.$component.data("end"),this.range=this.endEdge-this.startEdge,this.barWidth=this.$component.width(),this.step=this.$component.data("step")||1,this.steps=Math.round(this.range/this.step),this.legendType=this.$legend.data("type"),this.legendText=+this.$legend.data("text")==1,this.animated=!0,this.duration=this.steps<10?300*(1/this.steps):!1,this.fractExponent=Math.max(this.getFract(this.startEdge),this.getFract(this.endEdge),this.getFract(this.step)),this.fractDevider=10**this.fractExponent,this.$value=$(".range-value",this.$component),this.$endRunner=$(".range-runner-right",this.$component),this.$endRunnerTip=$(".runner-tip",this.$endRunner),this.$endRunnerValue=$(".value",this.$endRunner),this.$startRunner=$(".range-runner-left",this.$component),this.$startRunnerValue=$(".value",this.$startRunner),this.$startRunnerTip=$(".runner-tip",this.$startRunner),this.startRunnerWidth=this.$startRunner.width(),this.maxAllowedLeft=20,this.maxAllowedRight=flexbe_cli.resize.viewportWidth-20,this.defaultShift=this.$endRunner.width()/2,this.activeRunner=!1,this.startValue=+this.startEdge;let e=String(this.$input.attr("value")).replace(/[^\d-]/g,"");if(this.isDouble){let i=e.split("-");this.startValue=i[1]?Number(i[0]):+this.startEdge,this.endValue=i[1]?Number(i[1]):+this.endEdge,e=`${this.startValue} \u2014 ${this.endValue}`}else this.endValue=e?Number(e):+this.startEdge,this.startValue=+this.startEdge,e=this.endValue;this.$input.attr("value",e),this.endParams={},this.drawLegend(),this.updateTooltip(this.$startRunnerTip),this.updateTooltip(this.$endRunnerTip),this.setEvents(),this.setRunnersValue()}formatN(t){let e=flexbe_cli.locale.formatNumber(t,this.fractExponent);return`${t<0?"-":""}${e}`}getFract(t){let e=`${t}`.split(".");return e[1]&&e[1].length||0}drawLegend(){if(this.legendText)return!1;let t=this.$legend.find(".from"),e=this.$legend.find(".to");if(t.text(this.formatN(this.startEdge)),e.text(this.formatN(this.endEdge)),this.legendT
41ype!=="complex")return!1;this.$legend.find(".legend-point:not(.from, .to)").off("click").remove(),this.$legend.removeClass("complex").addClass("limits");let i=[`${this.formatN(this.startEdge)}`.length,`${this.formatN(this.endEdge)}`.length,`${this.formatN(this.step)}`.length],s=(i[0]+i[1]+i[2])/3,n=Math.max(this.startEdge,this.endEdge),a=[this.step*5*this.fractDevider/this.fractDevider];for(let u=1;u<=12;u++){let f=10**u*this.step;f<n&&p(a,f,this.fractDevider)}let o,r=Math.ceil(this.$legend.find(i[0]>i[1]?".from":".to").width()/Math.max(i[1],i[0])),c=Math.round(this.barWidth*.83/(r*s)),l=this.range>0?1:-1;for(let u=Math.min(c,10);u>=3;u--){let f=h(this.step,Math.abs(this.steps),u,a);if(f&&Number.isInteger(f/this.step)&&Number.isInteger(this.range/f)){o=f;break}}if(!o||!Number.isInteger(this.range/(o*l))||this.range/(o*l)<3)for(let u=Math.min(Math.round(Math.abs(this.range)/this.step),c,10);u>=2;u-=1){let f=this.roundFraction(Math.abs(this.range)/u);if(f%this.step===0){o=f;break}}let d=this.roundFraction(Math.abs(this.range)/o);if(o&&Number.isInteger(d)){let u=[];for(let g=1;g<d;g+=1){let m=Math.round((this.startEdge+o*g*l)*this.fractDevider)/this.fractDevider;u.push(`<div class="legend-point" data-value="${m}">${this.formatN(m)}</div>`)}d>2&&(this.$legend.attr("data-count",d),this.$legend.removeClass("limits").addClass("complex"));let f=$(u.join(""));this.$legend.find(".from").after(f)}else this.$legend.removeClass("complex").addClass("limits");this.$legend.find(".legend-point:not(.to), .legend-point:not(.from)").each((u,f)=>{$(f).on("click",()=>{if(this.updateBarWidth(),this.isDouble){let g=(this.startValue+this.endValue)/2,m=+$(f).data("value"),v=this.startEdge<this.endEdge?1:-1;m*v>=g*v?this.endValue=m:this.startValue=m}else this.endValue=$(f).data("value");this.setRunnersValue()})});function h(u,f,g,m){return m.includes(f/g*u)?f/g*u:m.includes((f+1)/g*u)?(f+1)/g*u:m.includes((f+2)/g*u)?(f+2)/g*u:m.includes((f+3)/g*u)?(f+3)/g*u:m.includes((f+4)/g*u)?(f+4)/g*u:m.includes((f+5)/g*u)?(f+5)/g*u:m.includes((f+6)/g*u)?(f+6)/g*u:m.includes((f+7)/g*u)?(f+7)/g*u:m.includes((f+8)/g*u)?(f+8)/g*u:m.includes((f+9)/g*u)?(f+9)/g*u:!1}function p(u,f,g){for(let m=1;m<10;m+=1)u.push(Math.round(f*m*g)/g),u.push(Math.round(f*m*g+f/2)/g)}}roundFraction(t){return Math.round(t*1e10)/1e10}setRunnersValue(t=!1){if(!Number.isFinite(this.endValue)||!Number.isFinite(this.range)||this.isDouble&&!Number.isFinite(this.startValue))return!1;let e=this.startEdge<this.endEdge?1:-1;this.activeRunner==="start"?this.startValue*e<=this.startEdge*e?this.startValue=this.startEdge:this.startValue*e>=this.endValue*e&&(this.startValue=this.endValue):this.endValue*e>=this.endEdge*e?this.endValue=this.endEdge:this.endValue*e<=this.startValue*e&&(this.endValue=this.startValue);let i=this.isDouble?this.startValue:this.startEdge,s=this.isDouble?(this.startValue-this.startEdge)/(this.range/100):0,n=(this.endValue-i)/(this.range/100);if(this.endValue=Math.round(this.endValue*this.fractDevider)/this.fractDevider,this.startValue=Math.round(this.startValue*this.fractDevider)/this.fractDevider,requestAnimationFrame(()=>{this.$endRunnerValue.text(this.formatN(this.endValue)),this.$startRunnerValue.text(this.formatN(this.startValue))}),this.activeRunner==="end"?this.updateTooltip(this.$endRunnerTip):this.updateTooltip(this.$startRunnerTip),this.$value.css({width:`${n}%`,marginLeft:`${s}%`}),!t){let a;this.isDouble?a=`${this.startValue} \u2014 ${this.endValue}`:a=this.endValue,this.$input.attr("value")!==String(a)&&(this.$input.attr("value",a),this.$input.trigger("change"))}}updateTooltip(t){let e=t.closest(".range-runner");if(e&&e.length){let i=t.innerWidth(),s=t.closest(".range-runner")[0].getBoundingClientRect().left+this.startRunnerWidth/2,n;i/2>s+this.maxAllowedLeft?n=i/2-(s-this.maxAllowedLeft):i/2+s>this.maxAllowedRight?n=this.maxAllowedRight-s-i/2:n=0,t.css({transform:`translateX(${n}px)`})}}getValueFromLength(t){let e=this.range/(this.barWidth/t);return(Math.round(e/this.step)+this.startEdge/this.step)*this.step}applyEndPosition(t){let e=this.activeRunner==="start"?"startValue":"endValue";return this[e]=this.getValueFromLength(t),this.setRunnersValue(),!0}touchHandler(t){if(!this.endParams.active||t.touches.length!==1)return $("body")[0].removeEventListener("touchmove",this.touchHandler),!1;this.toggleAnimation(!1),t.preventDefault(),t.stopPropagation();let e=t.touches[0].pageX-this.endParams.left-this.endParams.shift;return this.applyEndPosition(e),!0}startWatchingEvents(t=this.defaultShift){this.endParams={active:!0,left:this.$component.offset().left,shift:t},clearTimeout(this.calmRunnersTimeout),this.activeRunner==="end"?this.$endRunner.addClass("active"):this.$startRunner.addClass("active")}toggleAnimation(t){t?Math.abs(this.barWidth/this.steps)<15?this.$component.addClass("animated"):(this.$component.removeClass("active-animation"),this.duration&&this.$component.removeClass(`animation-speed-${12-Math.abs(Math.round(this.steps))}`)):Math.abs(this.barWidth/this.steps)<15?this.$component.removeClass("animated"):(this.$component.addClass("active-animation"),this.duration&&this.$component.addClass(`animation-speed-${12-Math.abs(Math.round(this.steps))}`))}afterRunnerReleased(){this.endParams.active&&(this.activeRunner==="start"?this.$startRunner.focus():this.$endRunner.focus()),this.endParams.active=!1,this.debounceActive(),this.barWidth/this.steps<15?this.$component.addClass("animated"):this.$component.removeClass("active-animation"),this.toggleAnimation(!0)}updateBarWidth(){let t=this.$component.width();
41t!==this.barWidth&&(this.barWidth=t,this.legendType==="complex"&&this.drawLegend())}setEvents(){let t=$(window),e=this;this.$component.on("resize",()=>{this.updateBarWidth()}),this.$component.on("touchstart",s=>{if(s.touches.length!==1)return!1;if(this.isDouble){let a=(this.$endRunner.offset().left+this.$startRunner.offset().left)/2;this.activeRunner=s.touches[0].pageX>=a?"end":"start",this.activeRunner==="start"?(this.$startRunner.addClass("upper-runner"),this.$endRunner.removeClass("upper-runner")):(this.$endRunner.addClass("upper-runner"),this.$startRunner.removeClass("upper-runner"))}else this.activeRunner="end";s.stopPropagation(),this.updateBarWidth();let n=s.touches[0].pageX-this.$value.offset().left;this.startWatchingEvents(),this.applyEndPosition(n-this.defaultShift),t[0].addEventListener("touchmove",this.touchHandler.bind(this),{passive:!1}),t.on("touchend.range",()=>{this.afterRunnerReleased(),t[0].removeEventListener("touchmove",this.touchHandler),t.off("touchend.range")})}),this.$component.on("mousedown",s=>{let n=s.pageX-this.$component.offset().left;if(this.isDouble){let a=(this.$endRunner.offset().left+this.$startRunner.offset().left)/2;this.activeRunner=s.pageX>=a?"end":"start",this.activeRunner==="start"?(this.$startRunner.addClass("upper-runner"),this.$endRunner.removeClass("upper-runner")):(this.$endRunner.addClass("upper-runner"),this.$startRunner.removeClass("upper-runner"))}this.updateBarWidth(),this.startWatchingEvents(),this.applyEndPosition(n-this.defaultShift),this.activeRunner==="start"?this.$startRunner.focus():this.$endRunner.focus(),t.on("mousemove.dragRange",i),t.on("mouseup.range",()=>{this.afterRunnerReleased(),t.off("mousemove.dragRange"),t.off("mouseup.range")})}),this.$endRunner.on("touchstart",s=>{if(s.touches.length!==1)return!1;s.stopPropagation(),this.updateBarWidth(),this.activeRunner="end",this.$startRunner.removeClass("upper-runner"),this.$endRunner.addClass("upper-runner"),s.stopPropagation(),this.startWatchingEvents(s.touches[0].pageX-this.$endRunner.offset().left),this.toggleAnimation(!1),t[0].addEventListener("touchmove",this.touchHandler.bind(this),{passive:!1}),t.on("touchend.range",()=>{this.afterRunnerReleased(),t[0].removeEventListener("touchmove",this.touchHandler),t.off("touchend.range")})}),this.$startRunner.on("touchstart",s=>{if(s.touches.length!==1)return!1;s.stopPropagation(),this.updateBarWidth(),this.activeRunner="start",this.$startRunner.addClass("upper-runner"),this.$endRunner.removeClass("upper-runner"),s.stopPropagation(),this.startWatchingEvents(s.touches[0].pageX-this.$startRunner.offset().left),this.toggleAnimation(!1),t[0].addEventListener("touchmove",this.touchHandler.bind(this),{passive:!1}),t.on("touchend.range",()=>{this.afterRunnerReleased(),t[0].removeEventListener("touchmove",this.touchHandler),t.off("touchend.range")})}),this.$endRunner.on("mousedown",s=>{s.stopPropagation(),this.activeRunner="end",this.$startRunner.removeClass("upper-runner"),this.$endRunner.addClass("upper-runner"),this.updateBarWidth(),this.$endRunner.focus(),this.startWatchingEvents(s.pageX-this.$endRunner.offset().left),this.toggleAnimation(!1),t.on("mousemove.dragRange",i),t.on("mouseup.range",()=>{this.afterRunnerReleased(),t.off("mousemove.dragRange"),t.off("mouseup.range")})}),this.$startRunner.on("mousedown",s=>{s.stopPropagation(),this.activeRunner="start",this.$startRunner.addClass("upper-runner"),this.$endRunner.removeClass("upper-runner"),this.updateBarWidth(),this.$startRunner.focus(),this.startWatchingEvents(s.pageX-this.$startRunner.offset().left),this.toggleAnimation(!1),t.on("mousemove.dragRange",i),t.on("mouseup.range",()=>{this.afterRunnerReleased(),t.off("mousemove.dragRange"),t.off("mouseup.range")})}),this.$legend.find(".legend-point.to, .legend-point.from").each((s,n)=>{$(n).on("click",()=>{if(this.updateBarWidth(),this.isDouble){let a=this.startEdge<this.endEdge?1:-1,o=(this.startValue+this.endValue)/2,r=+$(n).data("value");r*a>=o*a?this.endValue=r:this.startValue=r}else this.endValue=$(n).data("value");this.setRunnersValue()})}),this.$input.on("change",()=>{if(this.isDouble){let s=this.$input.val().split(" \u2014 ");this.startValue=+s[0],this.endValue=+s[1]}else this.endValue=+this.$input.val();this.setRunnersValue(!0)}),this.$startRunner.on("keyup",s=>{s.preventDefault(),this.activeRunner="start",this.handleKeydown(s,this.$startRunner)}),this.$endRunner.on("keyup",s=>{s.preventDefault(),this.activeRunner="end",this.handleKeydown(s,this.$endRunner)}
41),this.$startRunner.on("keydown",s=>{this.activeRunner="start",this.handleKeyup(s,this.$startRunner)}),this.$endRunner.on("keydown",s=>{this.activeRunner="end",this.handleKeyup(s,this.$endRunner)}),this.$startRunner.on("blur",()=>{this.handleBlur()});function i(s){if(!e.endParams.active)return t.off("mousemove.dragRange"),!1;e.toggleAnimation(!1);let n=s.pageX-e.endParams.left-e.endParams.shift;return e.applyEndPosition(n),!0}}handleBlur(){this.movingInterval&&(clearInterval(this.movingInterval),this.movingInterval=!1),this.movingDebounceTimeout&&(clearTimeout(this.movingDebounceTimeout),this.movingDebounceTimeout=!1)}handleKeydown(t,e){if(this.movingInterval&&(clearInterval(this.movingInterval),this.movingInterval=!1),this.movingDebounceTimeout&&(clearTimeout(this.movingDebounceTimeout),this.movingDebounceTimeout=!1),[37,38,39,40].includes(t.keyCode)){let i=t.shiftKey?10:1,s=this.activeRunner==="start"?"startValue":"endValue";t.keyCode===38||t.keyCode===39?this[s]=(this[s]/this.step+i)*this.step:(t.keyCode===37||t.keyCode===40)&&(this[s]=(this[s]/this.step-i)*this.step),e.addClass("active"),this.debounceActive(),this.setRunnersValue()}}handleKeyup(t,e){t.keyCode!==9&&[37,38,39,40].includes(t.keyCode)&&(t.preventDefault(),e.addClass("active"),this.debounceActive(),this.startDebouncedMove(t))}startDebouncedMove(t){this.movingDebounceTimeout&&(clearTimeout(this.movingDebounceTimeout),this.movingDebounceTimeout=!1),this.movingDebounceTimeout=setTimeout(()=>{this.movingInterval=setInterval(()=>{this.debounceActive();let e=t.shiftKey?10:1,i=this.activeRunner==="start"?"startValue":"endValue";t.keyCode===38||t.keyCode===39?this[i]=(Math.round(this[i]/this.step)+e)*this.step:(t.keyCode===37||t.keyCode===40)&&(this[i]=(Math.round(this[i]/this.step)-e)*this.step),this.setRunnersValue()},50)},300)}debounceActive(){this.calmRunnersTimeout&&clearTimeout(this.calmRunnersTimeout),this.calmRunnersTimeout=setTimeout(()=>{this.$endRunner.removeClass("active"),this.$startRunner.removeClass("active")},500)}};function et(t){let e=[],i="",s=!1;for(let n=0;n<t.length;n++){let a=t[n];a==="["?(i&&(e.push(i),i=""),s=!0):a==="]"?((i||s)&&(e.push(i||"[]"),i=""),s=!1):i+=a}return i&&e.push(i),e}function Tt(t,e,i){let s=et(e);if(s.length===1){Ct(t,s[0],i);return}let n=t,a=s[s.length-1];for(let o=0;o<s.length-1;o++){let r=s[o];n[r]||(n[r]=o===s.length-2&&a==="[]"?[]:{}),n=n[r]}a==="[]"?n.push(i):Ct(n,a,i)}function Ct(t,e,i){e in t?Array.isArray(t[e])?t[e].push(i):t[e]=[t[e],i]:t[e]=i}var Dt=class{},pe=class extends Dt{_token=null;_widgetId=null;_loaded=!1;get rendered(){return!!this._widgetId}get loaded(){return this._loaded&&!!window.grecaptcha}get token(){return this._token}constructor(){super(),window.grecaptcha&&(this._loaded=!0)}async load({language:t}){if(this._loaded||window.grecaptcha){this._loaded=!0;return}return new Promise(e=>{let i=`https://www.google.com/recaptcha/api.js?render=explicit&hl=${t}`;flexbe_cli.require(i,()=>{let s=setInterval(()=>{window.grecaptcha&&(this._loaded=!0,clearInterval(s),e())},50);setTimeout(()=>{clearInterval(s),this._loaded||e()},5e3)})})}render(t,e){let i={size:e.visibility==="invisible"?"invisible":"normal",sitekey:e.captcha.visible?e.captcha.env.RECAPTCHA_VISIBLE_SITE_KEY||"":e.captcha.env.RECAPTCHA_INVISIBLE_SITE_KEY||"",callback:s=>{this._token!==s&&(this._token=s,e.callbacks.onSuccess(s))},"expired-callback":()=>{this._token=null,e.callbacks.onExpired()},"error-callback":()=>{this._token=null,e.callbacks.onError()}};window.grecaptcha.ready(()=>{try{this._widgetId=window.grecaptcha.render(t,i)}catch(s){console.error("Google reCAPTCHA render error:",s)}})}reset(){if(this._widgetId!==null&&window.grecaptcha)try{window.grecaptcha.reset(this._widgetId)}catch(t){console.error("Google reCAPTCHA reset error:",t)}this._token=null}executeInvisible(){window.grecaptcha&&(window.grecaptcha.ready(()=>{window.grecaptcha.execute(this._widgetId)}),setTimeout(()=>{$('iframe[title="recaptcha challenge"]').parent().parent().css("z-index",2e3)},100))}},me=class extends Dt{_token=null;_widgetId=null;_loaded=!1;_unsubscribeCallbacks=[];get rendered(){return!!this._widgetId}get loaded(){return this._loaded&&!!window.smartCaptcha}get token(){return this._token}constructor(){super(),window.smartCaptcha&&(this._loaded=!0)}async load(){if(this._loaded||window.smartCaptcha){this._loaded=!0;return}return new Promise(t=>{let e="https://captcha-api.yandex.ru/captcha.js?render=onload&onload=yandexCaptchaOnload";flexbe_cli.events.on("yandexCaptchaOnload",()=>{this._loaded=!0,t()}),window.yandexCaptchaOnload||(window.yandexCaptchaOnload=()=>{flexbe_cli.events.trigger("yandexCaptchaOnload")}),flexbe_cli.require(e)})}render(t,e){if(!this.loaded)return;this._unsubscribeCallbacks.forEach(s=>s()),this._unsubscribeCallbacks=[];let i={sitekey:e.captcha.client_key,hl:e.language,invisible:e.visibility==="invisible",hideShield:!0,callback:s=>{this._token!==s&&(this._token=s,e.callbacks.onSuccess(s))}};try{this._widgetId=window.smartCaptcha.render(t,i),this._unsubscribeCallbacks.push(window.smartCaptcha.subscribe(this._widgetId,"token-expired",()=>e.callbacks.onExpired())),this._unsubscribeCallbacks.push(window.smartCaptcha.subscribe(this._widgetId,"network-error",()=>e.callbacks.onError())),this._unsubscribeCallbacks.push(window.smartCaptcha.subscribe(this._widgetId,"javascript-error",()=>e.callbacks.onError()))}catch(s){console.error("Yandex SmartCaptcha render error:",s)}}reset(){if(this._widgetId!=null&&window.smartCaptcha)try{window.smartCaptcha.reset(this._widgetId)}catch(t){console.error("Yandex SmartCaptcha reset error:",t)}this._token=null,this._unsubscribeCallbacks.forEach(t=>t()),this._unsubscribeCallbacks=[]}executeInvisible(){if(window.smartCaptcha)try{window.smartCaptcha.execute(this._widgetId)}catch(t){console.error("Yandex SmartCaptcha execute error:",t)}}},xt="captcha-modal",ge=class{provider;options;_modal=null;isVisible=!1;isInvisible=!1;isOptional=!1;inModal=!1;constructor(t){this.options={...this.getDefaultsOptions(),...t},this.isVisible=!!this.options.visible,this.isInvisible=!this.options.visible,this.isOptional=this.options.isOptional,this.inModal=this.options.inModal,this.provider=this.createProvider(this.options.provider),this.init().catch(console.error)}getDefaultsOptions(){let t=flexbe_cli.vars.site.captcha||{},e=flexbe_cli.is_admin||!1,i=t.provider||"google",s=!!t.enabled,n=!!t.visible,a=flexbe_cli.vars.site.language||"en",o=!!t.isOptional;return!n&&e&&(s=!1),{isOptional:o,provider:i,enabled:s,visible:n,language:a}}createProvider(t){if(t==="yandex")return new me;if(t==="google")return new pe;throw new Error("Unknown captcha provider")}get enabled(){return this.options.enabled}get loaded(){return this.provider.loaded}get token(){return this.provider.token}
41async init(){this.enabled&&await this.provider.load({language:this.options.language})}async renderCaptcha({target:t="form",visibility:e}){let i=null;if(e=e||(this.options.visible?"visible":"invisible"),t==="modal"?(e="visible",i=(await this.createModal()).$area[0].querySelector(".captcha"),this.provider.rendered&&this.reset()):t==="form"&&(i=this.options.form.querySelector(".captcha")),!i){console.warn("Captcha target element not found");return}this.provider.render(i,{language:this.options.language,captcha:flexbe_cli.vars.site.captcha,visibility:e,callbacks:{onExpired:()=>{this.options.onExpired&&this.options.onExpired()},onError:()=>{this.options.onError&&this.options.onError()},onSuccess:s=>{this.options.onSuccess&&this.options.onSuccess(s),this.closeModal()}}})}async createModal(){this.closeModal(),$(".m_captcha-modal").remove();let t=$(` 42 <div class="m_modal m_captcha-modal" data-is="modal" data-id="captcha-modal" data-m-id="CAPTCHA"> 43 <div class="modal-data" data-overlay="true"> 44 <div class="component-bg"><div class="layer overlay"></div></div> 45 46 <div class="modal-content" data-contrast="dark" data-v="1" data-as="1"> 47 <div class="close close-times"></div> 48 49 <div class="captcha-title"> 50 ${flexbe_cli.locale.tr("quiz::captcha_label")} 51 </div> 52 53 <div id="captcha-${this.options.id}" class="captcha captcha-visible"></div> 54 </div> 55 </div> 56 </div> 57 `);return flexbe_cli.modal.$list.append(t),this._modal=(await flexbe_cli.entity.initArea(t))[0],await flexbe_cli.events.trigger("ui_modal_open",{id:xt,options:{hash:!1,rise:!0,onClose:()=>{this.token||this.options.onError&&this.options.onError(),this.provider.rendered&&this.reset(),this._modal=null,setTimeout(()=>{t.remove()},300)}}}),this._modal}closeModal(){this._modal&&flexbe_cli.events.trigger("ui_modal_close",{id:xt})}runInvisibleChallenge(){!this.enabled||!this.loaded||this.provider.executeInvisible()}getToken(){return this.provider.token}reset(){this.provider.reset()}},Mt=ge;var it=(()=>{if(typeof process<"u"&&{}.LOG_LEVEL){let t={}.LOG_LEVEL.toLowerCase();if(["debug","info","warn","error"].includes(t))return t}return"error"})();function st(t){let e=`[${t}]`;return{debug:(...i)=>{["debug"].includes(it)&&console.debug(e,...i)},info:(...i)=>{["debug","info"].includes(it)&&console.info(e,...i)},warn:(...i)=>{["debug","info","warn"].includes(it)&&console.warn(e,...i)},error:(...i)=>{console.error(e,...i)}}}var ns=st("App");function nt(t){if(!t||typeof t!="object")return null;let e=t.shipping_restriction??t.shippingRestriction;return!e||typeof e!="object"||Array.isArray(e)?null:e}function at(t){return t?.enabled===!0}function ve(t,e,i,s=!1){let n=be(e,s);try{return new Function("ctx",`with (Math) { with (ctx) { ${n} }}`)(i)}catch(a){throw new Error(`[${t}] Function "${n}" (original: "${e}") can't be evaluated`,{cause:a})}}function be(t,e=!1){if(t.includes("function(")||t.includes("=>"))return t;if(t=String(t).trim(),!e){t=t.replace(/(\d),(\d)/g,"$1.$2");let i="";for(;i!==t;)i=t,t=t.replace(/[\s]*[+\-*/^%(.;]\s*$/,"");let s=(t.match(/\(/g)||[]).length-(t.match(/\)/g)||[]).length;s>0&&(t+=")".repeat(s))}return t=t.replace(/clamp\(([^,]+),([^,]+),([^\)]+)\)/gi,"min(max($1, $2), $3)"),t=t.replace(/([)\wа-ÑÐ-Я._]+)\s*\^\s*([(\wа-ÑÐ-Я._]+)/g,"$1**$2"),`return (${t})`}function rt(t,e="value",i){if(e==="number")return parseFloat(t);let{d:s,t:n}=flexbe_cli.vars.site.currencyFormat,a=i?.decimalPlaces??0,o=i?.thousandsSeparator?n:"",r=i?.resultText??"",c=flexbe_cli.locale.formatNumber(t,a,{d:s,t:o});return e==="value"||!r?c:_t(r,()=>c)}function j(t){let e=t.getAttribute("data-calc-value")??t.querySelector("[data-calc-value]")?.getAttribute("data-calc-value")??t.getAttribute("value");if(e!=="")return e}function $e(t){let e=new Map,i=new Set,s=new Proxy({},{ownKeys(){return[...t.keys()]},getOwnPropertyDescriptor(n,a){if(typeof a=="string"&&t.has(a))return{enumerable:!0,configurable:!0,value:s[a]}}
57,has(n,a){return typeof a=="string"&&t.has(a)},get(n,a){if(typeof a=="symbol")return;if(e.has(a))return e.get(a);if(!t.has(a))return;if(i.has(a))throw new Error(`Circular dependency detected on "${a}"`);let o=t.get(a),r;if(typeof o=="number")r=o;else if(o==="-")r=void 0;else if(typeof o=="string"){i.add(a);try{r=ve(a,o,s),e.set(a,r)}finally{i.delete(a)}}return r}});return s}var z=new Map,Y="",ye=class extends HTMLElement{formId="";fieldId="";resultType="value";currentValue=null;currentAnimation=null;constructor(){super(),this.handleUpdate=this.handleUpdate.bind(this),this.attachListeners()}static get observedAttributes(){return["data-form-id","data-result-id","data-result-type"]}connectedCallback(){this.parseAttributes(),this.updateContent()}disconnectedCallback(){this.stopCurrentAnimation(),this.removeListeners()}parseAttributes(){this.formId=this.getAttribute("data-form-id")||"",this.fieldId=this.getAttribute("data-result-id")||"",this.resultType=this.getAttribute("data-result-type")||"value"}attachListeners(){flexbe_cli.events.on("form_event",this.handleUpdate)}removeListeners(){flexbe_cli.events.off("form_event",this.handleUpdate)}handleUpdate(t){t.formId===this.formId&&["calculator_inited","field_changed"].includes(t.type)&&this.updateContent()}updateContent(){if(!this.formId||!this.fieldId){this.textContent=Y;return}let t=z.get(this.formId),e=t?.getFieldConfig(this.fieldId);if(!e){this.textContent=Y;return}try{let i=t.getFieldValue(this.fieldId,"number"),s=typeof i=="number"&&!Number.isNaN(i)&&isFinite(i);s&&this.currentValue!=null&&e?.smoothAnimation&&typeof anime=="function"?this.animateChange(i):(e?.smoothAnimation&&this.stopCurrentAnimation(),this.textContent=String(t.getFieldValue(this.fieldId,this.resultType)||e.beforeResult||Y)),this.currentValue==null&&s&&(this.currentValue=i)}catch{this.textContent=e.beforeResult||Y}}stopCurrentAnimation(){this.currentAnimation&&(this.currentAnimation.pause(),this.currentAnimation=null)}animateChange(t){if(this.stopCurrentAnimation(),t==null)return;let e=z.get(this.formId)?.getFieldConfig(this.fieldId);if(!e)return;let i={value:this.currentValue},s=Math.abs(t-this.currentValue),n=Math.min(600,150+s*5);this.currentAnimation=anime({targets:i,value:t,duration:n,easing:"easeInOutQuad",update:()=>{this.textContent=rt(i.value,this.resultType,e)},complete:()=>{this.currentValue=t,this.currentAnimation=null,this.textContent=rt(t,this.resultType,e)}})}};function Bt(t){if(!t.includes("<form-result"))return t;let e=t.match(/data-form-id=['"]([^'"]+)['"]/),i=e?e[1]:null,s=t.match(/data-result-id=['"]([^'"]+)['"]/),n=s?s[1]:null,a=t.match(/data-result-type=['"]([^'"]+)['"]/)?.[1]||"value";return i&&n?z.get(i)?.getFieldValue(n,a):""}customElements.get("form-result")||customElements.define("form-result",ye);var we=class{inited=!1;state=null;fieldsValues=new Map;fieldsConfigs=new Map;formInstance;constructor({formInstance:t}){this.formInstance=t}init(){this.formInstance.$component[0].querySelectorAll("[data-calc-name]").forEach(t=>{let e=t.getAttribute("data-calc-name"),i=$(t).closest("[data-type]").attr("data-type");this.fieldsConfigs.set(e,{type:i,input:t.querySelector('input[name*="[value]"]'),beforeResult:t.getAttribute("data-calc-before-result")??"\u2014",resultText:t.getAttribute("data-calc-text")??`{{ ${e} }}`,decimalPlaces:Number(t.getAttribute("data-decimal-places"))||0,thousandsSeparator:t.getAttribute("data-thousands-separator")==="true",smoothAnimation:t.getAttribute("data-smooth-animation")==="true"}),this.updateFieldValue(t)}),this.syncState(),z.set(this.formInstance.id,this),this.inited=!0,flexbe_cli.events.trigger("form_event",{type:"calculator_inited",formId:this.formInstance.id})}destroy(){z.delete(this.formInstance.id),this.inited=!1,this.fieldsValues=new Map,this.state=null}getFieldValue(t,e="value"){let i=this.fieldsConfigs.get(t),s=this.state?.[t];return!s||!isFinite(s)?i?.beforeResult||"":rt(s,e,i)}getFieldConfig(t){return this.fieldsConfigs.get(t)}updateFieldValue(t,e){let i=t.getAttribute("data-calc-name");if(!i)return;let s=$(t).closest("[data-type]").attr("data-type");if(this.fieldsValues.has(i)||this.fieldsValues.set(i,void 0),["radio-radio","select"].includes(s)&&(t.checked||t.selected)&&this.fieldsValues.set(i,j(t)),s==="checkbox"){let n=t.checked,a=$(t).attr("data-calc-value-off")??0,o=n?j(t):a;this.fieldsValues.set(i,o)}if(s==="radio-checkbox"&&(!e||e.type==="change")){let n=Number(this.fieldsValues.get(i)??0),a=Number(j(t)||0),o=t.checked?a:this.inited?-a:0;this.fieldsValues.set(i,n+o)}if(["number","range","hidden","result"].includes(s)){let n=j(t);s==="number"&&n&&(n=n.replace(/,/g,".")),this.fieldsValues.set(i,n)}}syncState(){this.state=$e(this.fieldsValues);try{[...this.fieldsConfigs.entries()].filter(([t,e])=>e.type==="result").forEach(([t,e])=>{let i=e.input,s=this.getFieldValue(t,"text");i&&(i.value=String(s))})}catch(t){console.debug(t)}}onFieldChange(t,e){e.closest("[data-calc-name]")&&(this.updateFieldValue(e,t),this.syncState())}},_e=class{decimalPlaces;max;min;$input;
57constructor(t){this.$input=t.find('input:not([type="hidden"]'),this.max=Number(this.$input.data("max")),this.min=Number(this.$input.data("min")),this.decimalPlaces=Number(this.$input.data("decimal-places")||0),this.$input[0]&&(this.$input.val(this.normalize(this.$input.val())),this.setEvents())}normalize(t){return t=this.onlyNumber(t),t=this.decimalPlacesValue(t),!Number.isNaN(this.max)&&!Number.isNaN(this.min)&&(t=this.minMaxValue(t)),t}onlyNumber(t){return t=t.replace(/[^\d.,-]/g,""),t.includes("-")&&(t=t.replace(/-/g,""),t=`-${t}`),t=t.replace(/([.,])[.,]*/g,"$1"),t=t.replace(/^([^.,]*[.,][^.,]*)[.,].*$/,"$1"),+this.decimalPlaces||(t=t.replace(/[.,]/g,"")),t}minMaxValue(t){let e=parseFloat(t.replace(",","."));return Number.isNaN(e)||(e>this.max?t=this.max.toString():e<this.min&&(t=this.min.toString())),t}decimalPlacesValue(t){let e=t.split(/[.,]/);return e[1]&&e[1].length>this.decimalPlaces&&(t=t.replace(new RegExp(`([.,]\\d{${this.decimalPlaces}})\\d*`),"$1")),t}setEvents(){this.$input.on("input",t=>{let e=t.currentTarget,i=e.value;i=this.onlyNumber(i),i=this.decimalPlacesValue(i),e.value=i,this.$input.trigger("change")}),this.$input.on("blur",t=>{let e=t.currentTarget,i=e.value;e.value=this.minMaxValue(i),this.$input.trigger("change")}),this.$input.on("keydown",t=>{let e=t.key,i=e==="ArrowUp";if(!i&&e!=="ArrowDown")return;t.preventDefault();let s=t.currentTarget,n=parseFloat(s.value.replace(",","."))||0,a=this.getStepValue(t.originalEvent),o;i?o=n+a:o=n-a,!Number.isNaN(this.max)&&o>this.max&&(o=this.max),!Number.isNaN(this.min)&&o<this.min&&(o=this.min),s.value=this.formatNumber(o),this.$input.trigger("change")})}getStepValue(t){let e=10**-this.decimalPlaces,i=t.shiftKey?10:1,s=t.ctrlKey||t.metaKey?100:1,n=t.altKey?.1:1;return e*i*s*n}formatNumber(t){return this.decimalPlaces===0?Math.round(t).toString():t.toFixed(this.decimalPlaces)}};function Ce(t,e,i={}){let s=!1;return{type:t,target:e,detail:i,get defaultPrevented(){return s},preventDefault(){s=!0}}}function xe(t){let e={},i=t.querySelectorAll("input, select, textarea"),s=[],n=[],a=0;for(let o of i){let r=o.getAttribute("data-name")||o.name;if(!r||["g-recaptcha-response","smart-token","goal","goal_html","fileOriginal","products","pageId","action_redirect"].includes(r))continue;let c=r.match(/^fields\[(\w+)\]/);if(c){let d=c[1];s.find(h=>h.id===d)||s.push({id:d,isCustom:!1})}else if(r.match(/^shipping\[fields\]\[(\w+)\]/)){let d=r.match(/^shipping\[fields\]\[(\w+)\]/)[1];n.includes(d)||n.push(d)}else!["id","name","action"].includes(r)&&!/^[a-zA-Z_]+\[/.test(r)&&s.push({customIndex:a++,isCustom:!0});let l=o.getAttribute("data-value")||o.value;if(o.type==="file"&&l?.startsWith("[")&&(l=JSON.parse(l)),o.type==="checkbox"||o.type==="radio"){let d=o.checked;if(o.type==="radio"&&!d||o.type==="checkbox"&&r.endsWith("[]")&&!d)continue;o.type==="checkbox"&&!r.endsWith("[]")&&!d&&(l="off")}if(Ae(o,r,t)&&!r.includes("shipping[shipping-type]"))if(["id","name","action"].includes(r)||/^[a-zA-Z_]+\[/.test(r))Tt(e,r,l);else{e.custom||(e.custom=[]);let d=o.getAttribute("data-type")||o.type||"text";e.custom.push({name:r,value:l,type:d})}}return Ee(e,s,n)}function Ae(t,e,i){return t.disabled?!1:e.includes("shipping[")?Fe(t,e,i):!0}function Fe(t,e,i){if(e.match(/^shipping\[(id|price|name|type|not_fix_price)\]/))return!0;if(e.includes("shipping[address]")){let s=i.querySelector(".form-fields-address");return!(s&&s.hasAttribute("hidden"))}if(e.includes("shipping[fields]")){let s=null,n=i.querySelector(".form-field-shipping-item--active");n&&(s=n.getAttribute("data-shipping"));let a=t.closest("[data-shipping]");return a?a.getAttribute("data-shipping")===s:!1}return!0}function Ee(t,e,i){let s={};return Object.keys(t).forEach(n=>{!n.includes("[")&&!n.includes("]")&&(s[n]=t[n])}),(t.fields||t.custom)&&(s.fields=ke(t.fields||{},t.custom||[],e),delete s.custom),t.shipping&&(s.shipping=Ie(t.shipping,i)),Object.keys(t).forEach(n=>{if(n!=="fields"&&n!=="shipping"&&(n.includes("[")||n.includes("]"))){let a=et(n),o=s;for(let r=0;r<a.length-1;r++)o[a[r]]||(o[a[r]]={}),o=o[a[r]];o[a[a.length-1]]=t[n]}}),s}function ke(t,e,i){let s=new Map;return typeof t=="object"&&Object.keys(t).forEach(n=>{let a=t[n];typeof a=="object"&&a.id&&(a.value===void 0&&(a.value=""),s.set(a.id,a))}),i?i.map(n=>
57n.isCustom?e[n.customIndex]:s.get(n.id)).filter(Boolean):[...Array.from(s.values()),...e]}function Ie(t,e){let i={};if(["id","price","name","type","not_fix_price"].forEach(s=>{t[s]&&(i[s]=t[s])}),t.fields){let s=new Map;if(Object.keys(t.fields).forEach(n=>{let a=t.fields[n];typeof a=="object"&&a.id&&a.id!=="99999"&&s.set(a.id,a)}),s.size>0){let n=(e?.length?e.filter(a=>s.has(a)):Array.from(s.keys())).map(a=>s.get(a)).filter(a=>a.name?.trim());n.length>0&&(i.fields=n)}}if(t.address){let s={};Object.keys(t.address).forEach(n=>{let a=t.address[n];typeof a=="object"&&a!==null?a.value!==void 0?s[n]=a.value:Object.keys(a).length>0&&(s[n]=Object.values(a)[0]):s[n]=a}),s.state&&(s.region=s.state,delete s.state),Object.keys(s).length>0&&(i.address=s)}return i}function Se(t,e){let{to:i,from:s,fields:n}=Lt(t);n.forEach((r,c)=>{c>=s&&c<i&&$(r).addClass("allocate-space-for-error")});let a=$(t),o=a.find(".error");a.outerWidth(),a.addClass("is_error"),o.length&&(o.attr("title",e),o.find(".error-text").text(e))}function Te(t){let e=t.closest(".form-field")[0],{to:i,from:s,fields:n}=Lt(e);t.closest(".is_error").removeClass("is_error"),n.forEach((a,o)=>{o>=s&&o<i&&$(a).removeClass("allocate-space-for-error")})}function Lt(t){if(!t?.hasAttribute("data-type")||["radio-radio","radio-checkbox","checkbox"].includes(t?.getAttribute("data-type")))return{to:0,from:0,fields:[]};let e=Array.from(t.parentElement.children),i=e.indexOf(t)+1,s=getComputedStyle(t.closest(".form-fields")).getPropertyValue("grid-template-columns").split(" ").length,n=s*Math.ceil(i/s);return{to:n,from:n-s,fields:e}}function Vt({$field:t,selector:e,attribute:i,attrValue:s}){let n=t.attr("data-default-value");if(n){let a=t.find(e);!isNaN(Number(n))&&Number(n)<=a.length?(a.removeAttr(i),a.eq(Number(n)-1).attr(i,s)):a.each((o,r)=>{let c=$(r);c.val()===n&&(a.removeAttr(i),c.attr(i,s))})}}function De(t){let e=t.find('[data-type="radio-radio"]'),i=t.find('[data-type="radio-checkbox"]');e.length&&e.each((s,n)=>{Vt({$field:$(n),selector:'input[type="radio"]',attribute:"checked",attrValue:"checked"})}),i.length&&i.each((s,n)=>{let a=$(n),o=a.attr("data-default-value")||"",r=a.find("input.form-field-checkbox__input"),c=o.split(/[,;\s]+/).filter(l=>l!=="").map(l=>isNaN(Number(l))?l:Number(l));r.each((l,d)=>{let h=$(d),p=h.attr("value");(c.includes(p)||c.includes(l+1))&&h.attr("checked","checked")})})}function Me(t){t.find('[data-type="checkbox"]').each((e,i)=>{let s=$(i).attr("data-default-value"),n=$(i).find("input.form-field-checkbox__input");["on",1,"1",!0,"true"].includes(s)&&n.attr("checked","checked"),["off",0,"0",!1,"false"].includes(s)&&n.removeAttr("checked")})}function Be(t){t.find('.form-field[data-type="phone"]:not([data-hidden])').each((e,i)=>{let s=$(i).find("input").not('[type="hidden"]'),n=s[0];if(!s[0])return;let a=$(n).val();$(n).val(a.replace(/[^0-9+\-_()]/g,""))})}var Re=(t,{countriesList:e=[],statesList:i=[]}={})=>{let{addressLine1:s,addressLine2:n,country:a,city:o,region:r,zipCode:c}=t||{},l=e.find(p=>p.value===a)?.title||a,d=a==="US"&&i.find(p=>p.value===r)?.title||r,h=[];switch(a){case"RU":h=[s,n,o,d,c,l];break;case"US":h=[s,n,o,`${d}${c?` ${c}`:""}`,l];break;case"EN":h=[s,n,o,d,c,l];break;case"DE":h=[`${c} ${o}`,s,n,d,l];break;case"FR":h=[`${c} ${o}`,s,n,d,l];break;default:h=[s,n,o,d,c,l];break}return h.filter(p=>p&&p.trim().length>0).join(", ")},ot=st("API"),P={},Le=class extends Error{data=null;response=null;name="FormError"},Ve=class extends Error{name="NetworkError";data=null;response=null},Pe={hash:0,abortPrev:!1,dataType:"json",contentType:"application/x-www-form-urlencoded",asJson:!1,data:{}},Rt={codes:{0:"main::error::network",401:"main::error::not_authorized",404:"main::error::page_not_found"},statuses:{parsererror:"main::error::incorrect_answer",error:"main::error::unknown",abort:""}};async function ze(t,e){return Oe("GET",t,e)}async function Oe(t,e,i){t=t?String(t).trim().toUpperCase():"POST";let s={...Pe,...i,url:e,type:t};s.asJson&&typeof s.data=="object"&&(s.data=JSON.stringify(s.data)),s.data&&typeof s.data=="str
57ing"&&(s.contentType="application/json");let n=`${e}:${s.hash||0}`;return s.abortPrev&&He(n),new Promise((a,o)=>{P[n]=$.ajax(s).done((l,d,h)=>{let p=h.status,u=d||h.statusText;l?.status??!0?r({payload:l}):c({response:h,payload:l,statusCode:p,statusText:u})}).fail((l,d)=>{let h=l.status,p=d||l.statusText,u=l.responseJSON;p!=="abort"&&c({response:l,payload:u,statusCode:h,statusText:p})});function r({payload:l}){return ot.debug("Request successful",{url:e,type:t,statusCode:200}),a(l)}function c({response:l,payload:d={},statusCode:h,statusText:p="error"}){let u,f=d.message||d.error||d.detail;return typeof f=="object"&&f.message!=null&&(f=f.message),f||(f=Rt.codes[h]||Rt.statuses[p]),h===401&&(ot.warn("Unauthorized request, redirecting to login",{url:e,statusCode:h}),window.location.href=`${flexbe.vars.app.url}/login/`),d.violations&&Array.isArray(d.violations)?(u=new Le(tr(f)),d.violations=d.violations.map(g=>({...g,name:g.propertyPath.replace(/\[(\w*)]/g,".$1").slice(1)}))):u=new Ve(tr(f)),u.response=l,u.data=d,ot.error("Request failed",u,{url:e,statusCode:h,statusText:p}),o(u)}})}function He(t){try{if(t){let e=P[t];typeof e=="number"&&clearTimeout(e),typeof e=="object"&&(e.abort(),delete P[t])}else Object.values(P).forEach(e=>{typeof e=="object"&&e.abort()}),P={}}catch{}}var R=null,qe=class{$component;shippingStore=flexbe_cli.ecommerce.shippingStore;cartStore=flexbe_cli.ecommerce.cartStore;promotionStore=flexbe_cli.ecommerce.promotionStore;id;$addressFields;$shipping;constructor({$component:t,id:e}){this.$component=t,this.id=e,this.$shipping=this.$component.find('[data-type="shipping"]'),this.$shipping.length&&(this.$addressFields={},this.init())}
57async init(){await this.loadAddressMeta(),this.setupScrollHandlers(),this.setupAddressFields(),this.setupShippingMethods(),this.onSelectMethod(),this.onUpdatePrices(),this.updateScrollClasses(),this.updateShippingAddress(),this.updateShippingSwitchVisibility(),this.updateAddressFieldsConfig(),this.setupEventListeners(),this.$shipping.attr("hidden",null)}setupScrollHandlers(){this.$shipping.find(".form-field-shipping-inner").on("scroll",this.updateScrollClasses.bind(this))}updateScrollClasses(t){(t?$(t.target).closest(".form-field-shipping-inner"):this.$shipping.find(".form-field-shipping-inner")).each((e,i)=>{let s=$(i),n=s.closest(".form-field-shipping-wrap"),a=Math.round(s.scrollTop()),o=i.scrollHeight,r=i.clientHeight;n.removeClass("scroll-up scroll-down"),a>0&&n.addClass("scroll-up"),a<o-r&&n.addClass("scroll-down")})}setupAddressFields(){this.$addressFields={country:this.$shipping.find('[data-field-id="country"] select').eq(0),addressLine1:this.$shipping.find('[data-field-id="addressLine1"] input[name*=value]').eq(0),addressLine2:this.$shipping.find('[data-field-id="addressLine2"] input[name*=value]').eq(0),city:this.$shipping.find('[data-field-id="city"] input[name*=value]').eq(0),region:this.$shipping.find('[data-field-id="region"] input[name*=value]').eq(0),regionRow:this.$shipping.find(".region-field-row").eq(0),state:this.$shipping.find('[data-field-id="state"] select').eq(0),stateRow:this.$shipping.find(".state-field-row").eq(0),zipCode:this.$shipping.find('[data-field-id="zipCode"] input[name*=value]').eq(0)},this.$addressFields.country.on("change",()=>{this.updateCountriesAndStates(),this.updateShippingAddress()}),this.$shipping.on("input change",".form-fields-address input, .form-fields-address select",()=>this.updateShippingAddress())}setupShippingMethods(){let t=this.shippingStore;this.$shipping.on("change",".form-field-switch input[type=radio]",e=>{let i=e.target;t.dispatch("selectType",i.value),this.scrollToActiveMethod(!1)}),this.$shipping.on("change",".form-field-shipping-item input[type=radio]",e=>{let i=e.currentTarget;if(i.checked){let s=i.closest("[data-shipping]")?.getAttribute("data-shipping");s&&t.dispatch("selectMethod",s)}})}setupEventListeners(){setTimeout(()=>{this.shippingStore&&this.shippingStore.on(`dispatch.form-component-${this.id}`,({name:t})=>{t==="selectMethod"&&this.onSelectMethod()}),this.cartStore&&this.cartStore.on(`dispatch.form-component-${this.id}`,()=>{this.onUpdatePrices()}),this.promotionStore&&this.promotionStore.on(`dispatch.form-component-${this.id}`,()=>{this.onUpdatePrices()})},10)}async updateCountriesAndStates(){let t=this.shippingStore,e=t.activeMethod,i=this.$addressFields.country.closest(".form-field"),s=this.$addressFields.state.closest(".form-field"),n=this.$shipping.find(".form-field-shipping-item__address");if(i.addClass("loading"),s.addClass("loading"),n.addClass("loading"),t.getList("pickup").forEach(h=>{let p=this.$shipping.find(`.form-field-shipping-item[data-shipping="${h.id}"] .form-field-shipping-item__address`),u=Re(h.address,{countriesList:R?.countries||[],statesList:R?.states||[]});p.text(u)}),n.removeClass("loading"),!e)return;let a=e.isInternationalDelivery,o=this.$addressFields.country.val(),r=!this.$addressFields.country.prop("disabled"),c=a?e.availableCountry:[flexbe_cli.vars.site.country],l=(R?.countries||[]).filter(h=>!c.length||c.includes(h.value)).map(h=>({value:h.value,label:h.title}));if(r){if(Q(this.$addressFields.country[0],l),!o||!l.some(h=>h.value===o)){let h=flexbe_cli.vars.site.country;h&&l.some(p=>p.value===h)?this.$addressFields.country.val(h):l.length>0&&this.$addressFields.country.val(l[0].value)}this.$addressFields.country.trigger("syncSelectUI"),i.removeClass("loading")}let d=a&&o==="US"||flexbe_cli.vars.site.country==="US";if(this.updateAddressFieldsConfig(),d){let h=(R?.states||[]).map(p=>({value:p.value,label:p.title}));Q(this.$addressFields.state[0],h),this.$addressFields.state.trigger("syncSelectUI")}s.removeClass("loading")}async loadAddressMeta(){if(R)return;let t=await ze(`/mod/metadata/?filter=country,state&language=${flexbe_cli.vars.page.language}`);t&&(R=t)}updateShippingAddress(){let t=this.shippingStore,e={country:this.$addressFields.country.val(),addressLine1:this.$addressFields.addressLine1.val(),addressLine2:this.$addressFields.addressLine2.val(),city:this.$addressFields.city.val(),region:this.$addressFields.region.val(),state:this.$addressFields.state.val(),zipCode:this.$addressFields.zipCode.val()};t.dispatch("setAddress",e)}updateShippingSwitchVisibility(){let t=this.shippingStore,e=t.getList("delivery").length>0,i=t.getList("pickup").length>0;this.$shipping.find('[data-field-id="shipping-type"]').toggle(e&&i)}
57updateShippingList(){let t=this.shippingStore.activeType,e=this.$shipping.find(".form-field-shipping-wrap"),i=e.filter(`[data-shipping-type="${t}"]`);e.hide(),i.show()}scrollToActiveMethod(t=!0){let e=this.shippingStore.activeMethod;if(!e)return;let i=this.$shipping.find(".form-field-shipping-item").filter(`[data-shipping="${e.id}"]`),s=i.closest(".form-field-shipping-inner")[0];if(s){let n=i[0].getBoundingClientRect().top-s.getBoundingClientRect().top+s.scrollTop-40;s.scrollTo({top:n,behavior:t?"smooth":"auto"})}}syncSwitch(){let t=this.shippingStore.activeType,e=this.$shipping.find(".form-field-switch input[type=radio]"),i=e.filter(`[value="${t}"]`);i.length&&(e.prop("checked",!1),i.prop("checked",!0)),this.updateShippingList()}updateAddressFieldsConfig(){let t=this.shippingStore.activeMethod,e=t.addressFieldsConfig,i=t?.isInternationalDelivery,s=i&&this.$addressFields.country.val()==="US"||flexbe_cli.vars.site.country==="US",n={addressLine1:{show:e?.addressLine1?.show??!0,required:e?.addressLine1?.required??!0},addressLine2:{show:e?.addressLine2?.show??!1,required:e?.addressLine2?.required??!1},country:{show:i||e?.country?.show||!1,required:i||e?.country?.required||!1},state:{show:s&&(e?.region?.show||!1),required:s&&(e?.region?.required||!1)},region:{show:!s&&(e?.region?.show||!1),required:!s&&(e?.region?.required||!1)},city:{show:e?.city?.show??!1,required:e?.city?.required??!1},zipCode:{show:e?.zipCode?.show??!1,required:e?.zipCode?.required??!1}};Object.entries(n).forEach(([a,{show:o,required:r}])=>{let c=this.$shipping.find(`[data-field-id="${a}"]`),l=c.closest(".form-field-address__row:not(.form-field-address__row--multiple)"),d=c.find(".form-field-title"),h=!o||!t?.deliveryAddressEnabled;l.attr("data-hidden",h?"true":null),c.attr("data-hidden",h?"true":null),c.find("input, select, textarea").prop("required",r).attr("disabled",h?"disabled":null);let p=d.text().replace("*","").trim();d.text(p+(r?" *":""))})}onSelectMethod(){let t=this.shippingStore.activeMethod;if(!t)return;let e=this.$shipping,i=e.find(".form-field-shipping-item"),s=e.find(".form-field-shipping-fields"),n=i.filter(`[data-shipping="${t.id}"]`),a=s.filter(`[data-shipping="${t.id}"]`),o=e.find('[data-type="address"]');i.removeClass("form-field-shipping-item--active"),n.addClass("form-field-shipping-item--active"),s.removeClass("form-field-shipping-fields--active").attr("hidden","true"),a.addClass("form-field-shipping-fields--active").attr("hidden",null),s.find("input, textarea, select").prop("disabled",!0),a.find("input, textarea, select").prop("disabled",!1),i.find("input[type=radio]").prop("checked",!1),n.find("input[type=radio]").prop("checked",!0),o.attr("hidden",t.deliveryAddressEnabled?null:"true"),o.find("input, textarea, select").prop("disabled",!t.deliveryAddressEnabled),this.scrollToActiveMethod(),this.updateCountriesAndStates(),this.updateAddressFieldsConfig(),this.syncSwitch()}onUpdatePrices(){let t=this.shippingStore;this.$shipping.find(".form-field-shipping-item").each((e,i)=>{let s=i.getAttribute("data-shipping"),n=$(i),a=n.find(".item-price"),o=n.find(".delimiter"),r=n.find(".form-field-shipping-item__min-total"),c=n.find(".min-total"),l=t.getPrice(s);if(!l.notHasFree&&(!l.untilFree||!l.notFixedPrice)?(a.text(l.currentFormatted),o.text("\u2013")):(a.text(""),o.text("")),l.minTotal){let d=`${flexbe_cli.locale.tr("form::delivery_min_total_tip",{sum:l.minTotalFormatted})}`;c.text(d),r.show()}else r.hide()}),this.updateDiscountBadges()}updateDiscountBadges(){let t=this.$shipping;t.find(".form-field-switch-item").each((e,i)=>{let s=$(i),n=s.find("input[type=radio]").val(),a=s.find(".form-field-switch-item__discount"),o=this.getAppliedGroupDiscount(n);if(!o){flexbe_cli.tip.destroy(a[0]),a.removeAttr("data-tip").attr("hidden","true");return}let r=this.formatDiscountBadgeText(o);a.attr("hidden",null).attr("data-tip",r),flexbe_cli.tip.init(a[0],{content:r})}),t.find(".form-field-shipping-item").each((e,i)=>{let s=$(i),n=i.getAttribute("data-shipping"),a=s.closest("[data-shipping-type]").attr("data-shipping-type"),o=s.find(".form-field-shipping-item__discount");if(!n||a!=="delivery"&&a!=="pickup"){o.text("").attr("hidden","true");return}let r={id:n,type:a},c=this.promotionStore?.getBestDiscountForMethod(r);c&&at(nt(c))?o.text(this.formatDiscountBadgeText(c)).attr("hidden",null):o.text("").attr("hidden","true")})}getAppliedGroupDiscount(t){if(t!=="delivery"&&t!=="pickup")return null;for(let e of this.shippingStore.getList(t)){let i=this.promotionStore?.getBestDiscountForMethod({id:String(e.id),type:t}),s=nt(i);if(at(s)&&s[t]?.all===!0)return i}return null}formatDiscountBadgeText(t){return`${t.discount_type==="percent"?`\u2212${+t.discount_amount}%`:`\u2212${flexbe_cli.locale.formatMoney(t.discount_amount)}`} ${flexbe_cli.locale.tr("form::shipping::discount_on_order")}`}},We=class extends _{static is="form";id;eventId;busy;submitDisabled;products;paymentData;formInited;observable;$form;$formSubmit;$button;$minSumContainer;$fields;$listField;action;payProducts;isInline;noSend;inCart;inModal;$masked;$calendars;$file;hasCalculatorField;$itemTemplateFile;hasMaskedField;hasCalendarField;pays;captcha=null;captchaSubmitToken;shippingManager=null;calculator;constructor(...t){super(...t),this.id=this.$component.closest("[data-id]").attr("data-id"),this.eventId=`.${this.id}`,this.busy=!1,this.submitDisabled=!1,this.products=null,this.paymentData=null,this.formInited=!1,this.captchaSubmitToken=null,this.observable=new U(this),this.$form=this.$component.is("form")?this.$component:this.$component.find("form"),this.$formSubmit=this.$component.find(".form-submit"),this.$button=this.$formSubmit.find(".component-button"),this.$minSumContainer=this.$formSubmit.find(".cart-min-sum-text"),this.$fields=this.$component.find(".form-fields"),this.$listField=this.$component.find(".form-field"),this.action=this.$component.find('input[name="action"]').val(),this.payProducts=this.$component.find('input[name="products"]').val(),this.isInline=this.$component.attr("data-inline")?1:0,this.noSend=this.$component.attr("data-no-send")?1:0,this.inCart=!!this.$form.attr("data-cart"),this.inModal=this.$component.closest(".m_modal").length>0,this.$masked=this.$component.find("[data-mask]"),this.$calendars=this.$component.find("[data-calendar]"),this.$file=this.$component.find(".file-input-outer"),this.hasCalculatorField=!!this.$component.find('[data-type="result"]').length,this.$file.length&&(this.$itemTemplateFile=this.$itemTemplateFile||this.$file.find("template").clone()),this.$masked.length&&(this.hasMaskedField=!0,this.require.push("/_s/lib/imask/imask.min.js")),this.$calendars.length&&(this.hasCalendarField=!0,this.require.push("/_s/lib/scroll-lock/scroll-lock.min.js"),this.require.push("/_s/lib/calendar/dist/js/calendar.js?v2.3.13","/_s/lib/calendar/dist/css/calendar.min.css?v2.3.5"))}onLoad(){(this.core.wasScreen||this.core.wasBeside)&&(this.hasMaskedField&&this.inputMask(),this.hasCalendarField&&this.inputDate()),flexbe_cli.events.trigger("form_event",{type:"form_inited",formId:this.id})}async onScreen({state:t}){if(!t)return!1;await this.formInit()}async onBeside({state:t}){if(!t)return!1;await this.formInit()}onOpen(t={}){let{top:e}=this.component.getBoundingClientRect();!flexbe_cli.run.is_screen_mobile&&flexbe_cli.run.is_preview&&flexbe_cli.resize.viewportHe
57ight>e+100&&this.$component.find(".form-field").eq(0).find("input, textarea").eq(0).focus(),t?.data&&this.setData(t.data)}onResize(){this.$component.find(".range-outer").trigger("resize")}async formInit(){if(this.formInited)return!1;this.formInited=!0,this.$form.attr("action",`/mod/project/${flexbe_cli.group_id}/lead/send/`),this.unbindEvents(),this.bindEvents(),this.noSend||await this.initCaptcha(),this.customize()}customize(){this.fileInput(),this.customSelect(),this.textResize(),this.inputRange(),this.inputNumber(),this.shippingField(),De(this.$component),Me(this.$component),Be(this.$component),this.hasCalculatorField&&this.initCalculator(),this.hasMaskedField&&this.isLoaded&&this.inputMask(),this.hasCalendarField&&this.isLoaded&&this.inputDate(),this.$component.find(".form-field-range").trigger("resize")}unbindEvents(){this.$component.off(this.eventId),this.$form.off(this.eventId)}bindEvents(){let t=this.$component.find('.form-field-text__input, .form-field-text__textarea, .form-field-range__input, input[type="checkbox"], input[type="radio"]'),e=this.$component.closest(".scroller");t.on(`keydown${this.eventId}`,i=>{let s=i.key||"",n=s==="Enter",a=i.ctrlKey||i.metaKey,o=i.currentTarget,r=o.getAttribute("data-check");if(n){if(o.tagName==="TEXTAREA")return;i.preventDefault();let c=t.index(i.currentTarget),l=t.eq(c+1);l.length?l.trigger("focus"):this.$form.trigger("submit")}if(r==="phone"&&!o._mask&&!a&&s.length===1&&/[^\d ()+-]/.test(s)||r==="email"&&/[\s,]/.test(s))return!1}),t.on(`input${this.eventId} change${this.eventId}`,i=>{let s=i.currentTarget,n=$(s);n.attr("value",s.value),Te(n),this.handleFieldChange(i,s)}),this.$component.find("select").on(`change${this.eventId}`,i=>{let s=i.currentTarget,n=$(s).find("option:selected")[0];this.handleFieldChange(i,n)}),this.hasCalendarField&&(this.inModal||this.inCart)&&setTimeout(()=>{let i=this.$calendars.toArray().map(s=>$(s).data("calendar")).filter(s=>s);e.on(`scroll${this.eventId}`,()=>{i.forEach(s=>s.main.toPosition())})},150),this.$formSubmit.find('button[type="button"]').on(`click${this.eventId}`,()=>{this.$form.trigger("submit")}),this.$form.off("submit").on(`submit${this.eventId}`,i=>((async()=>{let n=Ce("submit",this.$form[0]),a=await this.trigger("submit",n);if(n.defaultPrevented||a.some(o=>o===!1))return!1;try{await this.sendForm()}catch(o){alert(o instanceof Error?o.message:String(o))}})(),i.preventDefault(),i.stopPropagation(),!1))}setData(t){if(!t)return!1;t?.fields&&(this.resetFields("flexbe"),this.addFields(t.fields)),t?.items&&this.addItems(t.items)}on(t,e){return this.observable.on(t,e),this}one(t,e){return this.observable.one(t,e),this}off(t,e){return this.observable.off(t,e),this}async trigger(t,...e){return this.observable.trigger(t,...e)}addFields(t,e="flexbe"){let i=this.$component.find(".form-fields-advanced");t.length&&t.forEach(s=>{i.find(`input[name="${s.name}"][data-namespace="${e}"]`).remove();let n=$("<input>").attr("type",s.type).attr("data-namespace",e).attr("name",s.name);if(s.type==="file"&&s.value){let a=Array.isArray(s.value)?s.value:[s.value];n.attr("data-value",JSON.stringify(a))}else n.attr("value",String(s.value));i.append(n)})}resetFields(t){let e=this.$component.find(".form-fields-advanced");e[0]&&(t?e.find(`input[data-namespace="${t}"]`).remove():e.empty())}addItems(t=[]){if(!t?.length){this.products=null;return}let e=0;this.products=t.map(i=>typeof i!="object"?{}:(i.price=i.price==null?null:parseFloat(String(i.price))||0,i.title=typeof i.title=="string"&&i.title.trim()||i.title||"",e+=(i.price??0)*i.count||0,i)
57)||[],e&&(this.pays={price:e,desc:""})}async sendForm(t=!1){if(this.noSend||this.submitDisabled||this.busy||!this.validateForm())return!1;this.captcha&&t&&(this.captcha.reset(),this.resetCaptchaSubmitToken());let e=this.captcha?.getToken();if(this.captcha?.enabled&&!this.captcha.isOptional&&!e){if(this.captcha.isInvisible){this.captchaInvisibleRun();return}if(this.captcha.inModal){await this.captchaModalRun();return}}this.addSubmitting();let i=xe(this.$form.get(0)),s=i.id;if(i.is_ajax=!0,s&&!s.includes("cart_")&&(i.forceUpdateProduct=!0),delete i.products,this.products)i.products=JSON.stringify(this.products);else if(this.action==="pay"&&this.payProducts){let o=JSON.parse(this.payProducts),r;if(o=Array.isArray(o)?o[0]:o,o.productId){let c=flexbe_cli.ecommerce.productsStore.getProduct(o.productId);if(c){let l=c.currentVariant(o.variantId).getCartData("image");r=[{...l,count:1,img:O(l.img[0]),strict:o.strict,id:`product_${o.productId}:${o.variantId||"default"}`}]}}else o.title&&(String(o.price).startsWith("<form-result")&&(o.price=Bt(o.price),o.price=parseFloat(o.price.replace(",",".").replace(/\s/g,""))),r=[{id:`${flexbe_cli.p_id}_${flexbe_cli.s_id}`,title:o.title,img:o.img&&O(o.img),price:o.price==null?null:parseFloat(o.price)||0,count:1}]);!flexbe_cli.ecommerce.settings.allowPriceless&&r[0].price==null&&(r=null),r&&(i.products=JSON.stringify(r)),this.pays={price:o.price,desc:o.title}}i.jsform=448312,i.pageId||(i.pageId=String(flexbe_cli.p_id)),flexbe_cli.stat.u_id&&(i.userId=flexbe_cli.stat.u_id),i.utmData=JSON.stringify(flexbe_cli.utm.data),"roistat"in window&&(i.roistatVisit=window.roistat.visit),i.abTest=JSON.stringify(flexbe_cli.stat.AB.getCookie()),e&&(i["captcha-token"]=e),Array.isArray(i.fields)&&i.fields.forEach(o=>{typeof o.value=="string"&&o.value.includes("<form-result")&&(o.value=Bt(o.value))});let n=this.$form.attr("action"),a={type:"POST",dataType:"json",contentType:"application/json",data:JSON.stringify(i)};try{let o=await flexbe_cli.helpers.fetch(n,a);o.pay!=null&&(this.paymentData=o.pay),await this.showDone(i,o),this.captchaRemoveError(),this.action!=="redirect"&&this.clearSubmitting(!0)}catch(o){let r=o?.data;if(r?.captcha){if(this.captcha)e?this.captchaAddError():this.captcha.isVisible?(this.captcha.inModal=!0,await this.captchaModalRun()):this.captcha.isInvisible&&(this.captcha.isOptional=!1,this.captchaInvisibleRun());else{let c=r.captcha==="visible";await this.initCaptcha({enabled:!0,visible:c,isOptional:!0}),c?await this.captchaModalRun():(this.captcha.isOptional=!1,this.captchaInvisibleRun())}return}await this.sendFormError(o)}}async sendFormError(t){if(this.clearSubmitting(),console.error("sendForm error: ",t),(await this.trigger("requestError",t)).some(e=>e===!1))return!1;t.status&&t.status===500&&alert("Network error")}addSubmitting(){this.busy=+Date.now(),this.$component.addClass("submitting"),this.$button.addClass("submitting")}clearSubmitting(t=!1){this.busy&&(this.$component.removeClass("submitting"),this.$button.removeClass("submitting"),t?(this.$component.addClass("success"),this.$button.addClass("success"),this.$component.find(".file-list").empty(),this.$component.find("input.value").remove(),setTimeout(()=>{this.busy=!1,this.$component.removeClass("success"),this.$button.removeClass("success")},1e3)):this.busy=!1)}async showDone(t,e={}){let i={...t,leadId:e.lead_id,pays:e.pay};["is_ajax","captcha-token","roistatVisit","jsform","goal_html","goal","forceUpdateProduct","action","utmData","abTest","pay[price]","pay[desc]","results","fileOriginal","g-recaptcha-response"].forEach(r=>{delete i[r]});let s=this.pays?.price||this.products?.reduce((r,c)=>r+(Number(c.price)||0)*(Number(c.count)||1),0)||0,n={leadId:e.lead_id,formData:i,form_id:this.id,form_name:this.$form.attr("name")||this.$component.attr("data-name")||"",form_destination:this.$form.attr("action")||"",form_submit_text:this.$button.text()?.trim()||"",...s?{currency:flexbe_cli.vars.site.currencyData.code,value:s}:{}};flexbe_cli.stat.goals.reachGoals({mainGoal:flexbe_cli.stat.goals.getGoal("order_done"),goal:this.$component.find('input[name="goal"]').val(),htmlGoal:this.$component.find('textarea[name="goal_html"]').val()},n),this.savePurchaseSnapshot();let a=new Event("submitted",{bubbles:!0}),o=await this.trigger("submitted",a);if(a.defaultPrevented||o.some(r=>r===!1))return!1;if(this.action==="close")await flexbe_cli.events.trigger("ui_modal_close");else if(this.action==="pay")if(typeof this.paymentData<"u"&&this.paymentData!==null){if(this.paymentData.pay_link.length>0){let r=`${window.location.origin+window.location.pathname+(window.location.search?`${window.location.search}&`:"?")}pay_id=${this.paymentData.pay_id}&h=${this.paymentData.pay_hash}`;try{window.history.pushState(null,null,r),setTimeout(async()=>{await flexbe_cli.events.trigger("pay",{action:"init"})},200)}catch{setTimeout(()=>{document.location=r},500)}}}else window.location.hash="pay",await flexbe_cli.events.trigger("pay",{action:"success",withoutPay:!0});else if(this.action==="redirect"){let r=this.$component.find('input[name="action_redirect"]'),c="";r?.length&&(c=r.val()),c&&setTimeout(()=>{flexbe_cli.helpers.gotoLink(c),this.clearSubmitting(!0)},500)}else if(this.action==="code"){if(!flexbe_cli.run.is_preview)return;(async c=>{let l=this.$component.data("code")||"",d=Object.getPrototypeOf(async()=>{}).constructor;await new d("formData",l)(c)})(i).catch(c=>{console.error("Error executing action code:",c)})}else if(this.action==="modal"){let r=this.$component.find("[data-modal-id]").attr("data-modal-id"),c=this.$component.closest("[data-page-id]").attr("data-page-id");/^(form|done)$/.test(r)&&!flexbe_cli.modal.find(r,c)&&(r=`${String(this.id
57).split("_")[0]}_${r}`),await flexbe_cli.events.trigger("ui_modal_open",{id:r,pageId:c})}this.$form.get(0).dispatchEvent(a),this.resetForm()}savePurchaseSnapshot(){let t=this.paymentData?.pay_id;if(!t)return;let e=this.products;if(!e?.length&&this.payProducts)try{let i=JSON.parse(this.payProducts);e=Array.isArray(i)?i:[i]}catch{e=null}(e?.length||this.paymentData?.pay_hash)&&flexbe_cli.stat.ecommerce.savePurchaseSnapshot(t,e,this.paymentData?.pay_hash,this.pays?.price?{value:Number(this.pays.price)||0}:{})}resetForm(){this.$component.find(".file-input-outer").removeClass("active");let t=this.$fields.find("input, textarea, select"),e=t.not("select").not('[type="hidden"]').not(".form-field-range__input").not(".g-recaptcha-response"),i=t.filter("select"),s=t.filter(".form-field-range__input");i.each((n,a)=>{tt.getInstance(a).reset()}),s.each((n,a)=>{a.value=a.getAttribute("data-value"),a.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0}))}),e.each((n,a)=>{let r=a.defaultChecked;if(["radio","checkbox"].includes(a.type))r?a.setAttribute("checked","checked"):a.removeAttribute("checked"),a.checked=r;else{a.removeAttribute("value"),a.value="",a.removeAttribute("data-mask-complete");let c=a._mask;
57c&&c.updateValue()}a.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0}))}),this.captcha?.enabled&&(this.captcha.reset(),this.resetCaptchaSubmitToken(),this.captchaRemoveError()),this.paymentData=null,kt(),this.$form.get(0).reset(),this.resetFields(),this.hasCalculatorField&&(this.calculator.destroy(),this.initCalculator())}validateForm(){let t=!0,e=!0,i=!0;this.removeFieldsErrors(),this.$component.find(".policy-data-warning--checkbox").each((n,a)=>{let o=$(a),r=o.find(".policy-data-warning__input")[0];r&&!r.checked&&(t=!1,o.addClass("is_error"))}),this.$component.find(".form-field[data-type]:not([data-hidden])").each((n,a)=>{let o,r=$(a),c=r.find("input, textarea, select").not('[type="hidden"]'),l=c[0],d=r.attr("data-type");if(!l&&!["captcha","html"].includes(d))return;let h=l?.getAttribute("data-type")||l?.type,p=h==="file"?!!r.find("input.value")[0]:!!l?.value;if(["radio","checkbox"].includes(h)&&(p=c.toArray().some(u=>u.checked)),!l&&d==="html"&&(p=r.closest(".form-fields").prev(".form-fields-advanced").length>0),d==="captcha"){if(!this.captcha)return;o=this.captcha.getToken()?!1:flexbe_cli.locale.tr("form::captcha_not_checked")}else o=this.checkField(r,c);o&&(Se(a,o),e=!1),i&&p&&d!=="captcha"&&(i=!1)}),this.$fields.removeClass("all-fields-empty"),this.$fields.outerWidth(),e||this.$fields.addClass("has-error");let s=this.$component.find(".is_error");return s.addClass("animate"),setTimeout(()=>{s.removeClass("animate")},500),i&&(this.$fields.toggleClass("all-fields-empty",i),e=!1),e&&t}checkField(t,e){let i=e[0];if(!i||i.disabled||i.hidden)return!1;let s=i.getAttribute("data-type")||i.type,n=i.value.trim(),a=!0;["radio","checkbox"].includes(s)&&(a=e.toArray().some(d=>d.checked));let o=i.required,r=i.getAttribute("data-check")||!1,c=i._mask&&i.getAttribute("data-mask")||!1,l=o&&(!n||!a)?"form::required":!1;if(c)!o&&!n||i.getAttribute("data-mask-complete")||(["tel","phone"].includes(s)&&n?l="form::phone":s==="text"&&n?l="form::text":l="form::required");else if(r){if(r==="date"||r==="datetime"){let d=$(i).data("calendar")?.input.checkError();d&&(l=d)}else if(n.length&&r==="email")/^(([^\s"(),.:;<>@[\\\]]+(\.[^\s"(),.:;<>@[\\\]]+)*)|(".+"))@((\[(?:\d{1,3}\.){3}\d{1,3}])|(([\wÐÐ-ÑÑ-]+\.)+[A-Za-zÐÐ-ÑÑ]{2,}))$/.test(n)||(l="form::email");else if(n.length&&r==="phone")/[^\d\s()+-]/.test(n)?l="form::digits":n.replace(/\D/g,"").length<5&&(l="form::phone_minlength");else if(r==="file"){let d=t.find("input.value");o&&!d.length?l="form::required":t.hasClass("loading")?l="form::loading":l=!1}}return l=l&&flexbe_cli.locale.tr(l)||!1,l}removeFieldsErrors(){this.$fields.removeClass("has-error"),this.$component.find(".is_error").removeClass("is_error animate"),this.$component.find(".allocate-space-for-error").removeClass("allocate-space-for-error"),this.$fields.outerWidth()}disableSubmit(t=""){this.submitDisabled=!0,this.$button.attr("disabled","disabled"),t&&(flexbe_cli.run.is_mobile?this.$minSumContainer.text(t):this.$button.attr("data-tip",t||""),flexbe_cli.tip.init(this.$button[0]))}enableSubmit(){this.submitDisabled=!1,flexbe_cli.run.is_mobile?this.$minSumContainer.empty():this.$button.removeAttr("data-tip"),this.$button.removeAttr("data-tip disabled"),flexbe_cli.tip.destroy(this.$button[0])}async initCaptcha(t){this.captcha||(this.captcha=new Mt({...t,id:this.id,form:this.$component[0],inModal:this.isInline,onSuccess:async e=>{this.acceptCaptchaToken(e)&&(this.captchaRemoveError(),this.clearSubmitting(),(this.captcha.inModal||this.captcha.isInvisible)&&await this.sendForm())},onError:()=>{this.captchaAddError()}}),await this.captcha.init(),this.captcha.enabled&&await this.captcha.renderCaptcha({target:"form"}))}acceptCaptchaToken(t){return!t||this.captcha?.getToken()!==t||this.captchaSubmitToken===t||this.busy&&this.captchaSubmitToken?!1:(this.captchaSubmitToken=t,!0)}resetCaptchaSubmitToken(){this.captchaSubmitToken=null}captchaAddError(t){if(!this.captcha?.enabled)return;this.resetCaptchaSubmitToken(),t==null&&(t=flexbe_cli.locale.tr("form::captcha_error"));let e=this.$component.find(".captcha-global-error");e.find(".error-text").text(t),e.addClass("show"),this.busy&&this.clearSubmitting()}captchaRemoveError(){if(!this.captcha?.enabled)return;let t=this.$component.find('.form-field[data-type="captcha"]'),e=this.$component.find(".captcha-global-error");t.removeClass("is_error allocate-space-for-error"),e.removeClass("show")}async captchaModalRun(){!this.captcha?.enabled||!this.captcha.loaded||await this.captcha.renderCaptcha({target:"modal"})}
57captchaInvisibleRun(){if(!this.captcha?.enabled||!this.captcha.loaded||this.captcha.isVisible)return;this.addSubmitting(),this.captcha.runInvisibleChallenge();let t=this.busy;setTimeout(()=>{t===this.busy&&this.clearSubmitting()},2500)}fileInput(){let t=this.$component,e=this.eventId,i=this.$itemTemplateFile?.html();Et(t,e,i)}textResize(){this.$component.find(".autosize").each((t,e)=>{let i=e.offsetHeight-e.clientHeight,s=$(e),n=getComputedStyle(e),a=+s.attr("rows")||0,o=parseInt(n.borderTop,10)+parseInt(n.borderBottom,10),r=parseInt(n.paddingTop,10)+parseInt(n.paddingBottom,10),c=Math.round(+n.lineHeight.split("px")[0]);if(flexbe_cli.run.is_ios){let d=parseInt(n.textSizeAdjust||n.webkitTextSizeAdjust||"120%",10)/100;c/=d}s.removeAttr("data-autoresize"),s.off(".autoresize").on("keyup.autoresize input.autoresize",l),s.css("minHeight",`${o+r+c*a}px`);function l(d){let h=d.currentTarget;h.style.height=`${h.scrollHeight+i}px`}})}customSelect(){this.$component.find(".dropdown-container").remove();let t=this.$component.find("select.atom-custom-select"),e={dropdownClass:this.$component.hasClass("style-underlined")?`sharp size--medium select-container-${this.id} `:`size--medium select-container-${this.id}`};t.each((i,s)=>{let n=$(s).closest('[data-type="select"]');Vt({$field:n,selector:"option",attribute:"selected",attrValue:"selected"});let a=()=>{n.removeClass("active")},o=()=>{n.addClass("active"),n.siblings('[data-type="select"]').removeClass("active")};tt.create({element:s,config:e,onCollapse:a,onActivate:o})})}shippingField(){this.shippingManager=new qe({$component:this.$component,id:this.id})}inputRange(){this.$component.find(".form-field-range").each((t,e)=>new St($(e)))}inputNumber(){this.$component.find('[data-type="number"]').each((t,e)=>new _e($(e)))}initCalculator(){try{this.calculator=new we({formInstance:this}),this.calculator.init()}catch(t){console.error(t)}}inputMask(){return typeof IMask>"u"?!1:(this.hasMaskedField=!1,this.$masked.each((t,e)=>{It(e);let i=!!e.getAttribute("data-placeholder"),s=e._mask;i&&s&&($(e).on(`focus${this.eventId}`,()=>{s.updateOptions({lazy:!1})}),$(e).on(`blur${this.eventId}`,()=>{if(!s.unmaskedValue){let n=s.mask.replace(/\*/g,"_"),a=s.value;s.updateOptions({lazy:!0}),(!s.masked.rawInputValue||n===a)&&(s.unmaskedValue="",s.value="",s.updateValue())}}))}),!0)}inputDate(){this.hasCalendarField=!1;let t=this.$component.closest(".scroller")[0];return this.$calendars.each((e,i)=>{At(i,t)}),!0}handleFieldChange(t,e){this.calculator&&this.calculator.onFieldChange(t,e),flexbe_cli.events.trigger("form_event",{type:"field_changed",formId:this.id,element:e})}},G=class extends We{};flexbe_cli.entity.setClientJs("element","form01",{components:[G]});flexbe_cli.entity.setClientJs("element","form02",{components:[G]});var Ne=new Array(70).fill(1).map((t,e)=>50+50*e),L=class extends _{static is="icon";isCreated;isImgLoaded;isLazyLoading;image;imageLoadingOptions;async onInit(){this.$component.on("setImage",async()=>{this.isVisible&&!this.isImgLoaded&&(this.isCreated||this.create(),await this.loadImage())})}async onBeside({state:t}){t&&(this.isCreated||this.create(),this.isLazyLoading&&!this.isImgLoaded&&await this.loadImage())}async onResize(){this.isCreated&&await this.loadImage()}create(){let t=this.$component.data();this.imageLoadingOptions=flexbe_cli.vars.site.images,this.isLazyLoading=!!t.imgLazy,this.image={url:t.imgUrl||null,id:t.imgId,ext:t.imgExt,proportion:t.imgProportion,width:t.imgWidth,animated:t.imgAnimated,transparent:t.imgTransparent,scale:t.imgScale,type:"background"},this.isCreated=!0}async loadImage(){let t=this.$component.find(".vector-icon use"),e=this.$component.find(".custom-icon");if(t.length&&t.attr("href",this.image.url),e.length){let i=this.image.url;if(this.image.id){let s={width:this.componentWidth,height:this.componentHeight},{width:n}=await k(this.image,s,{...this.imageLoadingOptions,sizes:Ne});i=F(this.image,n,this.imageLoadingOptions)}i&&e.css("background-image",`url(${i})`)}this.isImgLoaded=!0}};flexbe_cli.entity.setClientJs("element","header_contacts",{components:[L],onLoad(){this.fixIcon()},onMsg(t){t==="change_contact"&&this.fixIcon()},fixIcon(){let t=this.$area,e=t.find(".component-icon"),i=t.find(".element-text--contact");if(t.find(".element-text--desc").length&&i.length&&e.length){let s=i[0].offsetHeight,n=e[0].offsetHeight;if(s>n){let a=s/2-n/2;e.css("margin-top",`${a}px`)}else e.css("margin-top","")}}});flexbe_cli.entity.setClientJs("element","header_divider",{isPure:!0});flexbe_cli.entity.setClientJs("element","header_logo",{isPure:!0});var J=class extends _{static is="menu";get showOnClick(){return this.showType==="click"||flexbe_cli.resize.responsiveMode==="mobile"||flexbe_cli.run.is_touch}get showOnHover(){return this.showType==="hover"&&flexbe_cli.resize.responsiveMode==="desktop"&&flexbe_cli.run.is_pointer}get actualDirection(){return flexbe_cli.resize.responsiveMode==="desktop"?this.direction:this.directionAdaptive}get showAsRollup(){return flexbe_cli.resize.responsiveMode==="mobile"&&this.$component.attr("data-rollup-adaptive")==="true"}constructor(...t){super(...t),this.eventId=this.core?.id,this.isRootModal=this.core.$root.attr("data-is")==="modal",this.$menuList=this.$component.find(".component-menu-list--root"),this.showType=this.$component.attr("data-type"),this.direction=this.$component.attr("data-direction"),this.directionAdaptive=this.$component.attr("data-direction-adaptive"),this.activateMode=this.$component.attr("data-activate-mode"),this.allowShowMore=this.$component.attr("data-show_more"),this.isNested=!!this.$menuList.find(".folder-item").length,this.openFolders=[],this.activeHref=null}_getCleanPath(t){return t?t.split("?")[0]:""}_isInFolder(t){return!!t.closest(".folder-item").length}_isCurrentPageUrl(t){return!t||t.includes("#")?!1:this._getCleanPath(t)===window.location.pathname}_findMenuItemByAnchor(t){return this.$component.find(`a[href*="#${t}"]`).filter((e,i)=>{let s=$(i),[n]=s.attr("href").split("#");return(!n||n===window.location.pathname)&&!this._isInFolder(s)}).closest("li")}_findMenuItemByCurrentUrl(){return this.$component.find("a").filter((t,e)=>{let i=$(e);return this._isCurrentPageUrl(i.attr("href"))&&!this._isInFolder(i)}).closest("li")}activateMenuItem(t){return t&&t.length?(this.setActive(t),this.activeHref=t.find("a").attr("href"),!0):!1}deactivateMenuItem(){return this.clearActive(),this.activeHref=null,!0}activateMenuItems(){let t=this.$component.find("li.menu-item, li.root-item").filter((s,n)=>!this._isInFolder($(n)));t.removeClass("active");let e=[],i=window.location.pathname;if(t.each((s,n)=>{let a=$(n),o=a.find("a").attr("href");o&&(o.includes("#")||this._getCleanPath(o)===i&&e.push(a))}),e.length>0){let s=e.reduce((n,a)=>{let o=n.find("a").attr("href")||"",r=a.find("a").attr("href")||"";return o.length>=r.length?n:a});this.activateMenuItem(s)}this.initAnchorChangeListener()}onBeside({state:t,first:e}){!t||!e||(this.bindEvents(),this.dispatchShowMore(),this.$button=this.$component.find(".folder-item"),!flexbe_cli.is_admin&&this.activateMode&&this.activateMenuItems())}onResize(t={}){["bottom","top"].includes(t.type)||(this.dispatchShowMore(),this.openFolders.forEac
57h(e=>{e.$dropdown?this.setDropdownPosition(e):this.showAsRollup||this._closeFolder(e)}))}onWindowResize(){this.onResize()}onHideShowUI(){this._closeFolder()}onClose(){this.toggleFolder(null,!1)}bindEvents(){$(window).off(`.${this.eventId}`),this.$component.off(".menu"),flexbe_cli.is_admin&&this.$component.on("mouseup.menu.prevent pointerdown.menu.prevent pointerup.menu.prevent",".folder-item",t=>{t.stopPropagation()}),$(window).on(`blur.${this.eventId}`,()=>{this.showAsRollup||this._closeFolder()}),this.$component.on("pointerenter.menu.item pointerleave.menu.item",".menu-item",t=>{if(flexbe_cli.resize.responsiveMode==="desktop"){let e=t.type==="pointerenter";$(t.currentTarget).toggleClass("hover",e)}}),this.$component.on("pointerenter.menu.folder",".folder-item",t=>{this.showOnHover&&(clearTimeout(this._dropdownTimer),$(t.currentTarget).hasClass("show")||(this._dropdownTimer=setTimeout(()=>{flexbe_cli.events.trigger("component_menu:closeAll"),this.toggleFolder(t.currentTarget,!0)},50)))}),this.$component.on("pointerdown.touchfix",t=>{t.target.closest("a")||t.preventDefault()}),this.$component.on("pointerleave.menu.folder",".folder-item",()=>{this.showOnHover&&(clearTimeout(this._dropdownTimer),this._dropdownTimer=setTimeout(()=>{flexbe_cli.events.trigger("component_menu:closeAll")},100))}),this.$component.on("click.menu",".folder-item-text, .show-more",t=>{if(this.showOnClick)return this.toggleFolder(t.currentTarget),!1}),flexbe_cli.events.off(`component_menu:closeAll.${this.eventId}`).on(`component_menu:closeAll.${this.eventId}`,()=>{this.openFolders.forEach(t=>this.toggleFolder(t,!1))})}observeItems(){let t,e=!0,i=this.$component.find("li.root-item")[0];this.unobserveItems(),this._resizeObserver=new ResizeObserver(()=>{if(e){e=!1;return}clearTimeout(t),t=setTimeout(()=>{this.onResize({})},30)}),this._resizeObserver.observe(i)}unobserveItems(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}dispatchShowMore(){if(!this.allowShowMore||flexbe_cli.resize.responsiveMode==="mobile"||this.actualDirection==="column"){this.restoreMenuItems();return}this.$componentCopy?this.restoreMenuItems():this.$componentCopy=this.$component.clone();let t=getComputedStyle(this.$component[0]),e=this.$component.innerWidth(),i=this.$menuList.innerWidth(),s=parseInt(t.getPropertyValue("--gapX"),10)||0,n=e+s*2;if(i<=n)return this.observeItems(),!1;let a=this.$menuList.find("li.root-item");this.$menuList.append(` 58 <li class="menu-item root-item folder-item show-more"> 59 <svg viewBox="0 0 18 4"> 60 <path transform="rotate(-90 2 2)" d="M4 2a2 2 0 1 1-4 0 2 2 0 0 1 4 0zm0 7a2 2 0 1 1-4 0 2 2 0 0 1 4 0zm-2 9a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/> 61 </svg> 62 63 <ul class="component-menu-list component-menu-list--nested apply-text-style"></ul> 64 </li> 65 `);let o=this.$menuList.find(".show-more .component-menu-list--nested"),r=18+s*2;a.toArray().forEach(c=>{let l=c.offsetWidth;r+l>n&&(o.append(c),$(c).removeClass("root-item")),r+=l}),this.observeItems()}restoreMenuItems(){let t=this.$menuList.find(".show-more");if(t.length){if(this.$componentCopy){let e=this.$componentCopy.find(".component-menu-list--root").clone();this.$menuList.html(e.html())}else{let e=t.find(".component-menu-list").eq(0).children();e.addClass("root-item"),t.replaceWith(e)}this.$menuList.css({position:"",top:"",left:""}),this.unobserveItems()}}toggleFolder(t,e){t=$(t).closest(".folder-item")[0],e==null&&(e=!$(t).hasClass("show")),this[e?"_openFolder":"_closeFolder"](t)}toggleNestedFolder(t,e){e==null&&(e=!$(t).hasClass("show")),this[e?"_openNestedDropdown":"_closeNestedDropdown"](t)}initAnchorChangeListener(){flexbe_cli.block.$blocks.each((t,e)=>{let i=e._core;i?.inFocus&&this.checkBlockInFocus(i)}),flexbe_cli.block.$blocks.off(`focused.${this.eventId}`).on(`focused.${this.eventId}`,t=>{this.checkBlockInFocus(t.currentTarget._core)})}checkBlockInFocus(t){if(!t)return;let e=t.$area.find("> a._anchor").attr("name")||t.$area.attr("data-id");if(e)if(t.inFocus)this.activateMenuItem(this._findMenuItemByAnchor(e));else{if(!this.activeHref)return;this.activeHref&&this.activeHref.includes(`#${e}`)&&(this.deactivateMenuItem(),this.activateMenuItem(this._findMenuItemByCurrentUrl()))}}setActive(t){this.clearActive(),t.addClass("active")}clearActive(){this.$component.find(".active").removeClass("active")}_openFolder(t){let e=$(t);if(!e.length||e.hasClass("show"))return;let i=!flexbe_cli.run.is_preview&&!!this.$component.closest("[data-editor*=menu]:not(.editor-focus)").length,s=!flexbe_cli.run.is_preview&&!!this.$component.closest(".editor-focus").length;if(!i){if(this.showAsRollup)e.find(".component-menu-list--nested").eq(0).slideDown(350),e.addClass("show");else{flexbe_cli.events.trigger("component_menu:closeAll");let n=$("body"),a=e.find(".component-menu-list--nested").eq(0).clone(),o=$(`<div class="component-menu-dropdown ${s?"editor-focus":""}"></div>`);t.$dropdown=o;let r=getComputedStyle(t),c=["--gapY","--fontSize","--lineHeight","--fontWeight","--letterSpacing","--fontStyle","--textDecoration"].reduce((l,d)=>({...l,[d]:r.getPropertyValue(d)}),{});if(o.css(c),this.$component.addClass("in-show"),e.addClass("show"),o.append(a).appendTo(n),this.setDropdownPosition(t),this.component.closest(".m_modal, .fixed-area")){let l=flexbe_cli.helpers.scrollParent(this.component);l===document.documentElement&&(l=document),$(l).one(`scroll.${this.eventId}`,()=>{this.setDropdownPosition(t)})}o.off("pointerenter").on("pointerenter",()=>{clearTimeout(this._dropdownTimer)}),n.on(`keydown.dropdown-${this.eventId}`,l=>{l.code==="Escape"&&this._closeFolder()}),n.on(`click.dropdown-${this.eventId}`,l=>{l.target.closest(".folder-item")||this._closeFolder()}),o.off("pointerleave").on("pointerleave",()=>{clearTimeout(this._dropdownTimer),this.toggleNestedFolder(null,!1),this.showOnHover&&(this._dropdownTimer=setTimeout(()=>{this.toggleFolder(t,!1)},100))}),o.on("pointerenter.menu.folder pointerleave.menu.folder",".menu-item",l=>{$(l.currentTarget).toggleClass("hover",l.type==="pointerenter")}),flexbe_cli.run.is_touch?o.on("click.menu.folder",".folder-item",l=>{this.toggleNestedFolder(l.currentTarget)}):(o.on("pointerenter.menu.folder",".folder-item",l=>{this.toggleNestedFolder(l.currentTarget,!0)}),o.on("pointerleave.menu.folder",".folder-item",l=>{this.toggleNestedFolder(l.currentTarget,!1)}))}this.openFolders.push(t)}}_closeFolder(t){let e=t?$(t):this.$menuList.find(".folder-item.show"),i=flexbe_cli.helpers.scrollParent(this.component);i===document.documentElement&&(i=document),$("body").off(`.dropdown-${this.eventId}`),this.$component.removeClass("in-show"),$(i).off(`.${this.eventId}`),this.showAsRollup?e.find(".component-menu-list--nested").slide
65Up(350):(e.find(".component-menu-list--nested").css("display",""),e.each((s,n)=>{n.$dropdown&&n.$dropdown.remove()})),e.removeClass("show"),e.find(".show").removeClass("show"),this.openFolders=this.openFolders.filter(s=>!e.is(s))}_openNestedDropdown(t){let{viewportWidth:e,documentHeight:i}=flexbe_cli.resize,s=$(t),n=s.siblings(".nested-item.show"),a=s.find(".component-menu-list--nested").eq(0),o=s.offset(),r=s.innerWidth(),c=s.innerHeight(),l=o.left,d=l+r,h=o.top,p=h+c,u=a.innerWidth(),f=a.innerHeight(),g=l>u,m=e-d>u,v=h>f,b=i-p>f;if(n.each((y,w)=>this._closeNestedDropdown(w)),s.addClass("show"),a.addClass("show-dropdown"),m)a.addClass("in-right");else if(g)a.addClass("in-left");else{let y=e>u?u:r;a.addClass("in-right"),a.css({maxWidth:`${r}px`,marginTop:"15px",marginLeft:`-${Math.floor(y-(e-d)+10)}px`})}b?a.addClass("in-bottom"):v?a.addClass("in-top"):a.addClass("in-bottom")}_closeNestedDropdown(t){let e=$(t),i=e.find(".component-menu-list--nested").eq(0);e.removeClass("show"),i.removeClass("show-dropdown in-left in-right in-bottom in-top")}setDropdownPosition(t){if(!t||!t.$dropdown)return;let{documentHeight:e,viewportHeight:i}=flexbe_cli.resize,s=$(t),n=t.$dropdown,a=s.hasClass("show-more"),o=s.closest("[data-fixed]").length,r=n.find(".component-menu-list--nested").eq(0),c=a?s.find("svg"):s.children().first().find("span"),l=c[0].getBoundingClientRect(),d=c.offset(),h=d.left,p=d.top,u=p+l.height,f=document.body.getBoundingClientRect(),g=7,m=parseInt(r.find(".menu-item-text").css("paddingLeft"),10)||10,v={position:"absolute",width:r.innerWidth(),height:r.innerHeight(),top:u,left:h-f.left-m};if(v.width<l.width&&(v.width=l.width+m*2,r.css("width","100%")),a&&(v.left=h+l.width/2-v.width/2),flexbe_cli.run.is_preview){let w=Math.max(0,-v.left+g),M=Math.max(0,v.left+v.width+g-f.width);w?v.left+=w:M&&(v.left-=M)}let b=u+v.height>e&&p>v.height,y=u+v.height>flexbe_cli.scroll.latest+i;o&&v.height+l.bottom<i?(v.position="fixed",v.top=l.bottom,v.left+=f.left):(!this.isRootModal&&b||this.isRootModal&&y)&&(v.top=p-v.height),n.toggleClass("rise",o),n.css(v)}};flexbe_cli.entity.setClientJs("element","header_menu",{components:[J]});flexbe_cli.entity.setClientJs("element","header_text",{isPure:!0});flexbe_cli.entity.setClientJs("element","icon01",{components:[L],isPure:!0});flexbe_cli.entity.setClientJs("element","logo01",{isPure:!0});flexbe_cli.entity.setClientJs("element","menu01",{components:[J]});var Pt=class{inited=!1;interacted=!1;hasNav=!1;opts;$area;uidAttr;classContainer;activeUid;$activeTab;$activeSection;$mainContainer;$tabsContainer;$tabsList;$swiperHelper;$tabs;$sections;get isOnScreen(){if(!this.hasNav)return!1;let{top:t,height:e}=this.$tabsList[0].getBoundingClientRect();return t>0&&t+e<flexbe_cli.resize.viewportHeight}constructor(t){if(this.opts=t,this.$area=t.$area,this.uidAttr=t.uidAttr||"data-tab-uid",this.classContainer=t.classContainer,this.initTabs(),t.activeUid)this.selectTab(t.activeUid);else if(window.location.hash){let e=window.location.hash.replace("#",""),{$anchor:i,$entity:s}=flexbe_cli.helpers.findHashTarget(e),n=i[0]||s[0];n&&this.selectTabFromTarget(n)}this.$area.on("bringIntoView.tabsController",e=>this.selectTabFromTarget(e.target))}initTabs(){this.$mainContainer=this.classContainer==="self"?this.$area:this.$area.find(this.classContainer),this.$tabsContainer=this.$area.find(".container-tabs"),this.$tabsList=this.$area.find('[role="tablist"]'),this.$swiperHelper=this.$area.find(".tab-swiper-helper"),this.$sections=this.$mainContainer.find('[role="tabpanel"]'),this.hasNav=!!this.$tabsList.length,this.$tabs=this.hasNav?this.$tabsList.find('[role="tab"]'):$(),this.inited=!!this.$sections.length,this.inited&&(flexbe_cli.is_admin&&this.hasNav&&this.normalizeLines(),this.initClassTmt=setTimeout(()=>{this.$mainContainer.addClass("main-area--tabs-inited")},50),this.hasNav&&(this.$tabsContainer.on("click.tabsController",".tab",t=>{let e=$(t.currentTarget).closest(`[${this.uidAttr}]`).attr(`${this.uidAttr}`);e&&this.selectTab(e)}),this.$tabsList.on("wheel.tabsController",t=>{let e=this.$tabsList[0],i=t.originalEvent.wheelDeltaX,s=t.originalEvent.wheelDeltaY;e.scrollWidth<=e.clientWidth||s<0&&e.scrollLeft===0||s>0&&e.scrollLeft===e.scrollWidth-e.clientWidth||flexbe_cli.run.is_pointer&&!i&&s&&(t.preventDefault(),e.scrollLeft+=s)}),this.$tabsList.on("touchstart.tabsController",()=>{this.interacted=!0,this.destroySwipeAnimation()}),flexbe_cli.is_admin&&(this.$tabsContainer.on("mouseenter.tabsController",".tab",t=>{t.buttons===1&&document.body.classList.contains("state--in-move")&&(clearTimeout(this.bringViewTmt),this.bringViewTmt=setTimeout(()=>{let e=$(t.target).closest(`[${this.uidAttr}]`).attr(`${this.uidAttr}`);this.selectTab(e)},700))}),this.$tabsContainer.on("mouseleave.tabsController",".tab",()=>{clearTimeout(this.bringViewTmt)}))))}swipeAnimationController(){if(!this.inited||!this.hasNav)return;let t=this.$tabsList[0].scrollWidth>this.$tabsList[0].clientWidth,e=this.isOnScreen;t&&e?this.initSwiperAnimation():e||this.destroySwipeAnimation()}initSwiperAnimation(){!this.$swiperHelper.hasClass("show")&&!this.interacted&&this.$swiperHelper.addClass("show")}destroySwipeAnimation(){this.$swiperHelper.hasClass("show")&&this.$swiperHelper.removeClass("show")}selectTabFromIndex(t){if(this.hasNav){this.selectTabFromTarget(this.$tabs.get(t));return}let e=this.$sections?.eq(t).attr(this.uidAttr);this.selectTab(e)}selectTabFromTarget(t){let e=$(t).closest(`[${this.uidAttr}]`).attr(`${this.uidAttr}`);this.selectTab(e)}selectTab(t,{force:e}={}){if(!t||!e&&this.activeUid===t)return;this.inited||this.initTabs();let i=this.$sections?.filter(`[${this.uidAttr}="${t}"]`)??$();if(!i.length)return;let s=this.hasNav?this.$tabs.filter(`[${this.uidAttr}="${t}"]`):$(),n=this.$sections.filter(".active"),a=n[0]&&n[0].offsetTop;this.hasNav&&s.length&&(this.scrollToTab(s),this.$tabs.removeClass("active").attr("aria-selected",!1).attr("tabindex",-1),s.addClass("active").attr("aria-selected",!0).attr("tabindex",0)),this.$sections.removeClass("active").prop("hidden",!0),i.addClass("active").prop("hidden",!1);let o=i[0]&&i[0].offsetTop;if(this.activeUid=t,this.$activeTab=s,this.$activeSection=i,n[0]?.dispatchEvent(new CustomEvent("element-become-hidden")),i[0].dispatchEvent(new CustomEvent("element-become-visible")),typeof this.opts.onSelectTab=="function"&&this.opts.onSelectTab({uid:t,$tab:s}),!flexbe_cli.run.is_mobile&&a!=null&&o!=null&&Math.abs(a-o)>0&&typeof anime<"u"){let r=this.$mainContainer,c=a-o;r.css("will-change","transform"),anime({targets:r[0],translateY:[c,0],duration:250,easing:"easeOutCubic",complete:()=>{r.css({transform:"","will-change":""})}})}}normalizeLines(){if(!this.inited||!this.hasNav)return;let t,e=this.$tabs;this.$tabsList.find(".tab-spacer").remove(),e.removeClass("first-in-line last-in-line"),e.first().addClass("first-in-line"),e.last().addClass("last-in-line"),e.each((i,s)=>{t&&t.offsetTop!==s.offsetTop&&($(s).addClass("first-in-line"),$(t).addClass("last-in-line"),$(t).after('<span class="tab-spacer"></span>')),t=s})}scrollToTab(t){if(!this.inited||!this.hasNav||!t?.length)return;let e=this.$tabsList,i=e[0].scrollWidth;if(i>e[0].offsetWidth){let s=t[0].offsetLeft,n=t[0].getBoundingClientRect(),a=flexbe_cli.resize.viewportWidth,o;n.width>a||n.left<20?o=s-20:n.right>a-20&&(o=s-(a-20-n.width)),o!=null&&(o=Math.max(0,Math.min(i-a,o)),e.animate({scrollLeft:o},{duration:250}))}}destroy(){clearTimeout(this.initClassTmt),clearTimeout(this.bringViewTmt),this.$area.off(".tabsController"),this.$tabsContainer?.off(".tabsController"),this.$tabsList?.off(".tabsController"),this.$tabsList?.stop(),this.destroySwipeAnimation()}resetHash(){this.inited&&String(window.location.hash).replace(/^#{1,2}(tab)?/,"")===this.activeUid&&(flexbe_cli.lockPopstate=!0,window.history.replaceState(null,null,window.location.pathname),flexbe_cli.lockPopstate=!1)}};flexbe_cli.entity.setClientJs("block","BUNDLE",{components:[B],tabsController:void 0,shouldInitTabs:!0,onUpdate({templateRendered:t,reasonData:e}){t&&(this.shouldInitTabs=!0),["create","copy"].includes(e.source)&&requestAnimationFrame(()=>this.tabsController.selectTabFromIndex(e.to))},onResize(){this.tabsController&&this.tabsController.normalizeLines()},onBeside({state:t}){t&&this.shouldInitTabs&&this.createTabs()},onScreen({state:t}){this.tabsController&&(t||(this.tabsController.swipeAnimationController(),this.tabsController.resetHash()))},onFocus({state:t}){this.tabsController&&t&&this.tabsController.swipeAnimationController()},createTabs(){if(this.shouldInitTabs=!1,!this.$area.find('[role="tabpanel"]').length){this.tabsController=null;return}this.tabsController=new Pt({$area:this.$area,classContainer:".main-area",activeUid:this.selectedTabUid,onSelectTab:({uid:t})=>{this.selectedTabUid=t,this.updateTween()}})}});flexbe_cli.entity.setClientJs("block","FOOTER",{components:[B]});flexbe_cli.entity.setClientJs("block","HEADER",{onInit(){flexbe_cli.is_admin&&flexbe_cli.events.off(`entity_render:template.${this.id}`).on(`entity_render:template.${this.id}`,t=>{(t.is==="layout"||t.is==="block")&&this.fixOverlayContrast()})},onLoad(){this.ownContrast=this.$area.attr("data-contrast")||"auto",this.isOverlayed=this.$area.attr("data-overlayed")||!1,this.fixOverlayContrast()},onDestroy(){flexbe_cli.events.off(`layout_change.${this.id}`),flexbe_cli.events.off(`entity_render:template.${this.id}`)},onHideShowUI(){this.fixOverlayContrast()},fixOverlayContrast(){if(this.isOverlayed&&this.ownContrast==="auto"){let t=(this.$area.parent().is(".b_block")?this.$area.parent():this.$area).nextAll(".b_block:visible:not([data-overlayed])").eq(0).attr("data-contrast");t&&(this.$area.attr("data-static-contrast",t),this.$area.attr("data-contrast",t))}}});flexbe_cli.entity.setClientJs("element","avatar01",{components:[H,L],isPure:!0});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.