UNPKG

@builder.io/sdk-vue

Version:
131 lines (128 loc) 130 kB
var ls=require("./style.css");const o=require("vue"),$t=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),Rt=e=>typeof e=="string"&&$t.has(e.toLowerCase());function I(e={},t,n){const r={};for(const i in e){if(!e[i]||n&&!i.startsWith(t))continue;const s=n?i.replace(t,""):i;r[s]=e[i]}return r}const Pt=o.defineComponent({name:"dynamic-renderer",props:["TagName","attributes","actionAttributes"],data(){return{isEmptyElement:Rt}}}),g=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n};function Vt(e,t,n,r,i,s){return e.isEmptyElement(e.TagName)?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(e.TagName),o.mergeProps({key:1},e.attributes,o.toHandlers(e.actionAttributes)),null,16)):(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[typeof e.TagName=="string"?(o.openBlock(),o.createBlock(o.resolveDynamicComponent(e.TagName),o.mergeProps({key:0},e.attributes,o.toHandlers(e.actionAttributes)),{default:o.withCtx(()=>[o.renderSlot(e.$slots,"default")]),_:3},16)):(o.openBlock(),o.createBlock(o.resolveDynamicComponent(e.TagName),o.mergeProps({key:1},e.attributes,o.toHandlers(e.actionAttributes)),{default:o.withCtx(()=>[o.renderSlot(e.$slots,"default")]),_:3},16))],64))}const se=g(Pt,[["render",Vt]]),At=Object.freeze(Object.defineProperty({__proto__:null,default:se},Symbol.toStringTag,{value:"Module"})),v="vue",R=()=>{switch(v){case"react":case"reactNative":case"rsc":return"className";case"svelte":case"vue":case"solid":case"qwik":case"angular":return"class"}},Nt=o.defineComponent({name:"builder-button",components:{DynamicRenderer:se},props:["attributes","link","openLinkInNewTab","builderLinkComponent","text"],data(){return{filterAttrs:I}},methods:{attrs(){return{...I(this.attributes,"v-on:",!1),[R()]:`${this.link?"":"builder-button"} ${this.attributes[R()]||""}`,...this.link?{href:this.link,target:this.openLinkInNewTab?"_blank":void 0,role:"link"}:{role:"button"}}}}});function xt(e,t,n,r,i,s){const a=o.resolveComponent("DynamicRenderer");return o.openBlock(),o.createBlock(a,{attributes:e.attrs(),TagName:e.link?e.builderLinkComponent||"a":"button",actionAttributes:e.filterAttrs(e.attributes,"v-on:",!0)},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(e.text),1)]),_:1},8,["attributes","TagName","actionAttributes"])}const Pe=g(Nt,[["render",xt]]),Wt=Symbol(),j={Builder:{content:null,context:{},localState:void 0,rootSetState(){},rootState:{},apiKey:null,apiVersion:void 0,componentInfos:{},inheritedStyles:{},BlocksWrapper:"div",BlocksWrapperProps:{},nonce:"",model:""},key:Wt},Dt=Symbol(),Ve={Components:{registeredComponents:{}},key:Dt},L="[Builder.io]: ",T={log:(...e)=>console.log(L,...e),error:(...e)=>console.error(L,...e),warn:(...e)=>console.warn(L,...e),debug:(...e)=>console.debug(L,...e)},Ae=(e,t,n)=>{const r=String.prototype.split.call(t,/[,[\].]+?/).filter(Boolean).reduce((i,s)=>i!=null?i[s]:i,e);return r===void 0||r===e?n:r};function y(){return typeof window<"u"&&typeof document<"u"}const Ot=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},Ne=e=>e instanceof URLSearchParams?Ot(e):e,xe=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function Ut(){return y()&&window.self!==window.top}function S(e){return Ut()&&xe(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const Ft=()=>{if(y()){const e=new URL(location.href);return e.pathname===""&&(e.pathname="/"),e}else return console.warn("Cannot get location for tracking in non-browser environment"),null},Lt=()=>typeof navigator=="object"&&navigator.userAgent||"",We=()=>{const e=Lt(),t={Android(){return e.match(/Android/i)},BlackBerry(){return e.match(/BlackBerry/i)},iOS(){return e.match(/iPhone|iPod/i)},Opera(){return e.match(/Opera Mini/i)},Windows(){return e.match(/IEMobile/i)||e.match(/WPDesktop/i)},any(){return t.Android()||t.BlackBerry()||t.iOS()||t.Opera()||t.Windows()||v==="reactNative"}},n=e.match(/Tablet|iPad/i),r=Ft();return{urlPath:r==null?void 0:r.pathname,host:(r==null?void 0:r.host)||(r==null?void 0:r.hostname),device:n?"tablet":t.any()?"mobile":"desktop"}},Ht=({builder:e,context:t,event:n,state:r})=>Object.entries({state:r,Builder:e,builder:e,context:t,event:n}),Mt=()=>({isEditing:S(),isBrowser:y(),isServer:!y(),getUserAttributes:()=>We()}),zt=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e;function De({rootState:e,localState:t,rootSetState:n}){return new Proxy(e,{get:(r,i)=>{if(t&&i in t)return t[i];const s=r[i];return typeof s=="object"&&s!==null?De({rootState:s,localState:void 0,rootSetState:n?a=>{r[i]=a,n(r)}:void 0}):s},set:(r,i,s)=>{if(t&&i in t)throw new Error("Writing to local state is not allowed as it is read-only.");return r[i]=s,n==null||n(r),!0}})}const ye=({code:e,builder:t,context:n,event:r,localState:i,rootSetState:s,rootState:a})=>{const c=Ht({builder:t,context:n,event:r,state:De({rootState:a,localState:i,rootSetState:s})});return new Function(...c.map(([l])=>l),e)(...c.map(([,l])=>l))},P=e=>e!=null;function jt(){var e;return typeof process<"u"&&P((e=process==null?void 0:process.versions)==null?void 0:e.node)}const qt=({shouldLogWarning:e})=>{var i;if(!jt())return!1;const t=process.arch==="arm64",n=process.version.startsWith("v20"),r=(i=process.env.NODE_OPTIONS)==null?void 0:i.includes("--no-node-snapshot");return t&&n&&!r?(e&&T.log("Skipping usage of `isolated-vm` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the `isolated-vm` package on this machine, please provide the `NODE_OPTIONS=--no-node-snapshot` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n "),!0):!1},Kt=e=>(y()||qt({shouldLogWarning:!0}),ye(e)),Gt=/^(return )?(\s*)?state(?<getPath>(\.\w+)+)(\s*);?$/,Jt=/(\s)*var(\s)+_virtual_index(\s)*=(\s)*state(?<getPath>(\.\w+)+)(\s*);?(\s)*return(\s)*_virtual_index(\s)*/,Qt=e=>{var t,n,r,i,s,a;return((r=(n=(t=Gt.exec(e.trim()))==null?void 0:t.groups)==null?void 0:n.getPath)==null?void 0:r.slice(1))||((a=(s=(i=Jt.exec(e.trim()))==null?void 0:i.groups)==null?void 0:s.getPath)==null?void 0:a.slice(1))};function x({code:e,context:t,localState:n,rootState:r,rootSetState:i,event:s,isExpression:a=!0}){if(e.trim()==="")return;const c=Qt(e.trim());if(c)return Ae({...r,...n},c);const l={code:zt(e,{isExpression:a}),builder:Mt(),context:t,event:s,rootSetState:i,rootState:r,localState:n};try{return Kt(l)}catch(u){T.error("Failed code evaluation: "+u.message,{code:e});return}}function Yt(e,t){var n;return{...(n=e.component)==null?void 0:n.options,...e.options,...Xt(e,t)}}const Xt=(e,t)=>{var n,r;if(((n=e.component)==null?void 0:n.name)==="Text"&&((r=e.component.options)!=null&&r.text)&&typeof e.component.options.text=="string")return{...e.component.options,text:e.component.options.text.replace(/{{([^}]+)}}/g,(i,s)=>x({code:s,context:t,localState:t.localState,rootState:t.rootState,rootSetState:t.rootSetState}))}};function _t(e,...t){const n=Object.assign({},e);for(const r of t)delete n[r];return n}function q(e,t,n=null,r=null,i=new WeakSet){if(e==null||typeof e!="object"){t(e,s=>{n!==null&&r!==null&&(n[r]=s)});return}i.has(e)||(i.add(e),Array.isArray(e)?e.forEach((s,a)=>{t(s,l=>{e[a]=l}),q(s,t,e,a,i)}):Object.entries(e).forEach(([s,a])=>{t(a,l=>{e[s]=l}),q(a,t,e,s,i)}))}function Oe(e){return e&&typeof e=="object"&&e["@type"]==="@builder.io/core:LocalizedValue"}function Zt(e){if(!e||!Object.getOwnPropertyNames(e).length)return!1;let t=!1;return q(e,n=>{if(Oe(n)){t=!0;return}}),t}function en(e,t){return!e||!Object.getOwnPropertyNames(e).length?{}:(q(e,(n,r)=>{Oe(n)&&r(n[t]??void 0)}),e)}function tn(e,t){var n,r;return(n=e.component)!=null&&n.options&&Zt((r=e.component)==null?void 0:r.options)&&(t||console.warn("[Builder.io] In order to use localized fields in Builder, you must pass a locale prop to the BuilderComponent or to options object while fetching the content to resolve localized fields. Learn more: https://www.builder.io/c/docs/localization-inline#targeting-and-inline-localization"),e.component.options=en(e.component.options,t??"Default")),e}const ae=e=>JSON.parse(JSON.stringify(e)),Ue=(e,t,n)=>{if(Object(e)!==e)return e;const r=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return r.slice(0,-1).reduce((i,s,a)=>Object(i[s])===i[s]?i[s]:i[s]=Math.abs(Number(r[a+1]))>>0===+r[a+1]?[]:{},e)[r[r.length-1]]=n,e};function ne(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(n=>ne(n));if(e["@type"]==="@builder.io/sdk:Element")return e;const t={};for(const n in e)n!=="meta"&&Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=ne(e[n]));return t}const nn=["svelte","vue","angular","qwik","solid"].includes(v),on=e=>{if(nn){const t=ae(e);return{...t,properties:{...t.properties},actions:{...t.actions}}}else{const t=ne(_t(e,"children","meta"));return{...t,properties:{...t.properties},actions:{...t.actions},children:e.children,meta:e.meta}}},rn=({block:e,context:t,localState:n,rootState:r,rootSetState:i})=>{if(!e.bindings)return e;const s=on(e);for(const a in e.bindings){const c=e.bindings[a],l=x({code:c,localState:n,rootState:r,rootSetState:i,context:t});Ue(s,a,l)}return s};function Fe({block:e,context:t,localState:n,rootState:r,rootSetState:i}){let s=e;return s=rn({block:s,localState:n,rootState:r,rootSetState:i,context:t}),s=tn(s,r.locale),s}function J(e){const t=e||(y()?window.location.search:void 0);return t?xe(t).indexOf("builder.preview=")!==-1:!1}const Le=e=>({type:"builder.registerComponent",data:K(e)}),sn=e=>{const t=e.toString().trim(),n=/^[a-zA-Z0-9_]+\s*=>/i.test(t);return`return (${!t.startsWith("function")&&!t.startsWith("async")&&!t.startsWith("(")&&!n?"function ":""}${t}).apply(this, arguments)`};function K(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?sn(n):n))}const ke={};function an(e,t){e==="plugin"&&(t=K(t));let n=ke[e];if(n||(n=ke[e]=[]),n.push(t),y()){const r={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(r,"*"),parent!==window&&window.postMessage(r,"*")}catch(i){console.debug("Could not postmessage",i)}}}function ln(e){var t;if(y()){const n=JSON.parse(JSON.stringify(e));e.action&&(n.action=e.action.toString()),(t=window.parent)==null||t.postMessage({type:"builder.registerAction",data:n},"*")}}const ve={};function cn(e){if(y()){Object.assign(ve,e);const t={type:"builder.settingsChange",data:ve};parent.postMessage(t,"*")}}const Se="builder.",dn="options.",le=e=>{if(!e)return{};const t=Ne(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(Se)){const i=r.replace(Se,"").replace(dn,"");n[i]=t[r]}}),n},un=()=>{if(!y())return{};const e=new URLSearchParams(window.location.search);return le(e)},He="5.1.0",Me=()=>({"X-Builder-SDK":v,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":He}),pn=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},Q=({name:e,canTrack:t})=>{var n;try{return t?(n=document.cookie.split("; ").find(r=>r.startsWith(`${e}=`)))==null?void 0:n.split("=")[1]:void 0}catch(r){T.warn("[COOKIE] GET error: ",(r==null?void 0:r.message)||r);return}},ze=async e=>Q(e),mn=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(P).join("; "),hn=[["secure",""],["SameSite","None"]],fn=({name:e,value:t,expires:n})=>{const i=(y()?location.protocol==="https:":!0)?hn:[[]],s=n?[["expires",n.toUTCString()]]:[[]],a=[[e,t],...s,["path","/"],["domain",pn(window.location.hostname)],...i];return mn(a)},ce=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const i=fn({name:e,value:t,expires:n});document.cookie=i}catch(i){T.warn("[COOKIE] SET error: ",(i==null?void 0:i.message)||i)}};function bn(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}function je(){return bn().replace(/-/g,"")}const qe="builderSessionId",gn=async({canTrack:e})=>{if(!e)return;const t=await ze({name:qe,canTrack:e});if(P(t))return t;{const n=yn();return kn({id:n,canTrack:e}),n}},yn=()=>je(),kn=({id:e,canTrack:t})=>ce({name:qe,value:e,canTrack:t}),Ke=()=>y()&&typeof localStorage<"u"?localStorage:void 0,vn=({key:e,canTrack:t})=>{var n;try{return t?(n=Ke())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Sn=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=Ke())==null||r.setItem(e,n))}catch(i){console.debug("[LocalStorage] SET error: ",i)}},Ge="builderVisitorId",Cn=({canTrack:e})=>{if(!e)return;const t=vn({key:Ge,canTrack:e});if(P(t))return t;{const n=Tn();return wn({id:n,canTrack:e}),n}},Tn=()=>je(),wn=({id:e,canTrack:t})=>Sn({key:Ge,value:e,canTrack:t});function de(e){var t;typeof process<"u"&&((t=process.env)!=null&&t.DEBUG)&&String(process.env.DEBUG)=="true"&&T.log(e)}const In=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await gn({canTrack:e}),n=Cn({canTrack:e});return{sessionId:t,visitorId:n}},Bn=async({type:e,canTrack:t,apiKey:n,metadata:r,...i})=>({type:e,data:{...i,metadata:{url:location.href,...r},...await In({canTrack:t}),userAttributes:We(),ownerId:n}});async function oe({apiHost:e,...t}){if(!t.apiKey){T.error("Missing API key for track call. Please provide your API key.");return}if(!t.canTrack||S()||!(y()||v==="reactNative"))return;const r=`${e||"https://cdn.builder.io"}/api/v1/track`;return de(r),fetch(r,{method:"POST",body:JSON.stringify({events:[await Bn(t)]}),headers:{"content-type":"application/json",...Me()},mode:"cors"}).catch(i=>{console.error("Failed to track: ",i)})}const En=e=>oe({...e,canTrack:!0}),$n=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function Je(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||$n).findIndex(i=>i.startsWith("*.")?r.endsWith(i.slice(1)):i===r)>-1}let Ce=!1;const Qe=e=>{var t,n;Ce||(Ce=!0,y()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:v,version:He,supportsPatchUpdates:!1,supportsAddBlockScoping:!0,supportsCustomBreakpoints:!0,modelName:e.modelName,apiKey:e.apiKey,supportsXSmallBreakpoint:!0,blockLevelPersonalization:!0}},"*"),(n=window.parent)==null||n.postMessage({type:"builder.updateContent",data:{options:e}},"*"),window.addEventListener("message",r=>{var s,a;if(!Je(e.trustedHosts,r))return;const{data:i}=r;if(i!=null&&i.type)switch(i.type){case"builder.evaluate":{const c=i.data.text,l=i.data.arguments||[],u=i.data.id,p=new Function(c);let h,d=null;try{h=p.apply(null,l)}catch(m){d=m}d?(s=window.parent)==null||s.postMessage({type:"builder.evaluateError",data:{id:u,error:d.message}},"*"):h&&typeof h.then=="function"?h.then(m=>{var f;(f=window.parent)==null||f.postMessage({type:"builder.evaluateResult",data:{id:u,result:m}},"*")}).catch(console.error):(a=window.parent)==null||a.postMessage({type:"builder.evaluateResult",data:{result:h,id:u}},"*");break}}})))},Ye=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!Je(t,r))return;const{data:i}=r;if(i)switch(i.type){case"builder.configureSdk":{n.configureSdk(i.data);break}case"builder.triggerAnimation":{n.animation(i.data);break}case"builder.resetState":{const s=i.data,a=s.model,c=s==null?void 0:s.state,l=s.editType;a===e&&c&&n.stateUpdate(c,l);break}case"builder.contentUpdate":{const s=i.data,a=s.key||s.alias||s.entry||s.modelName,c=s.data,l=s.editType;a===e&&n.contentUpdate(c,l);break}}},Rn=({model:e,apiKey:t,callback:n,trustedHosts:r})=>{if(!y)return T.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};Qe({modelName:e,apiKey:t});const i=Ye({callbacks:{contentUpdate:n,animation:()=>{},configureSdk:()=>{},stateUpdate:()=>{}},model:e,trustedHosts:r});return window.addEventListener("message",i),()=>{window.removeEventListener("message",i)}},Pn="builder.tests",ue=e=>`${Pn}.${e}`,Vn=({contentId:e})=>ze({name:ue(e),canTrack:!0}),An=({contentId:e})=>Q({name:ue(e),canTrack:!0}),Nn=({contentId:e,value:t})=>ce({name:ue(e),value:t,canTrack:!0}),Xe=e=>P(e.id)&&P(e.variations)&&Object.keys(e.variations).length>0,xn=({id:e,variations:t})=>{var i;let n=0;const r=Math.random();for(const s in t){const a=(i=t[s])==null?void 0:i.testRatio;if(n+=a,r<n)return s}return e},_e=e=>{const t=xn(e);return Nn({contentId:e.id,value:t}).catch(n=>{T.error("could not store A/B test variation: ",n)}),t},Ze=({item:e,testGroupId:t})=>{const n=e.variations[t];return t===e.id||!n?{testVariationId:e.id,testVariationName:"Default"}:{data:n.data,testVariationId:n.id,testVariationName:n.name||(n.id===e.id?"Default":"")}},Wn=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!Xe(e))return e;const n=An({contentId:e.id})||_e({variations:e.variations,id:e.id}),r=Ze({item:e,testGroupId:n});return{...e,...r}},Dn=async({item:e,canTrack:t})=>{if(!t||!Xe(e))return e;const r=await Vn({contentId:e.id})||_e({variations:e.variations,id:e.id}),i=Ze({item:e,testGroupId:r});return{...e,...i}};const Te="builder.userAttributes";function we(){let e=!0;const t=new Set;return{setUserAttributes(n){if(!y())return;const r={...this.getUserAttributes(),...n};ce({name:Te,value:JSON.stringify(r),canTrack:e}),t.forEach(i=>i(r))},getUserAttributes(){return y()?JSON.parse(Q({name:Te,canTrack:e})||"{}"):{}},subscribeOnUserAttributesChange(n,{fireImmediately:r}={}){return t.add(n),r&&n(this.getUserAttributes()),function(){t.delete(n)}},setCanTrack(n){e=n}}}let re;y()&&v==="qwik"?(window.__BUILDER_USER_ATTRIBUTES_SERVICE__||(window.__BUILDER_USER_ATTRIBUTES_SERVICE__=we()),re=window.__BUILDER_USER_ATTRIBUTES_SERVICE__):re=we();const G=re,On=e=>{G.setUserAttributes(e)},N=e=>{const t=P(e)?e:!0;return G.setCanTrack(t),t};function Un(){return typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:globalThis}function Fn(){const e=Un().fetch;if(typeof e>"u")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project. For more information, read https://github.com/BuilderIO/this-package-uses-fetch`),new Error("Builder SDK could not find a global `fetch` function");return e}const Ln=Fn();function ie(e,t=null,n="."){return Object.keys(e).reduce((r,i)=>{const s=e[i],a=[t,i].filter(Boolean).join(n);return[typeof s=="object",s!==null,!(Array.isArray(s)&&s.length===0)].every(Boolean)?{...r,...ie(s,a,n)}:{...r,[a]:s}},{})}function et(e,t,n={}){for(const r in e){const i=e[r],s=t?t+"."+r:r;i&&typeof i=="object"&&!Array.isArray(i)&&!Object.keys(i).find(a=>a.startsWith("$"))?et(i,s,n):n[s]=i}return n}function Hn(e){const t={};for(const n in e){const r=n.split(".");let i=t;for(let s=0;s<r.length;s++){const a=r[s];s===r.length-1?i[a]=e[n]:(i[a]=i[a]||{},i=i[a])}}return t}const Mn="v3",Ie=e=>typeof e=="number"&&!isNaN(e)&&e>=0,pe=e=>{const{limit:t=30,userAttributes:n,query:r,model:i,apiKey:s,enrich:a,locale:c,apiVersion:l=Mn,fields:u,omit:p,offset:h,cacheSeconds:d,staleCacheSeconds:m,sort:f,includeUnpublished:b,apiHost:C}=e;if(!s)throw new Error("Missing API key");if(!["v3"].includes(l))throw new Error(`Invalid apiVersion: expected 'v3', received '${l}'`);const $=t!==1,w=C||"https://cdn.builder.io",k=new URL(`${w}/api/${l}/content/${i}`);k.searchParams.set("apiKey",s),k.searchParams.set("limit",String(t)),k.searchParams.set("noTraverse",String($)),k.searchParams.set("includeRefs",String(!0)),c&&k.searchParams.set("locale",c);let B=n||{};if(a&&k.searchParams.set("enrich",String(a)),k.searchParams.set("omit",p??"meta.componentsUsed"),u&&k.searchParams.set("fields",u),Number.isFinite(h)&&h>-1&&k.searchParams.set("offset",String(Math.floor(h))),typeof b=="boolean"&&k.searchParams.set("includeUnpublished",String(b)),d&&Ie(d)&&k.searchParams.set("cacheSeconds",String(d)),m&&Ie(m)&&k.searchParams.set("staleCacheSeconds",String(m)),f){const E=ie({sort:f});for(const V in E)k.searchParams.set(V,JSON.stringify(E[V]))}const W={...un(),...Ne(e.options||{})};B={...B,...jn(W)};const D=ie(W);for(const E in D)k.searchParams.set(E,String(D[E]));if(Object.keys(B).length>0&&k.searchParams.set("userAttributes",JSON.stringify(B)),r){const E=et({query:r});for(const V in E)k.searchParams.set(V,JSON.stringify(E[V]))}return k},zn=e=>{const t={};for(const n in e)n.startsWith("userAttributes.")&&(t[n]=e[n],delete e[n]);return t},jn=e=>{if(y()&&e.preview==="BUILDER_STUDIO"){e["userAttributes.urlPath"]=window.location.pathname,e["userAttributes.host"]=window.location.host;const t=zn(e),{userAttributes:n}=Hn(t);return n}return{}},qn=e=>"results"in e;async function Y(e){var r;const t=e.locale||((r=e.userAttributes)==null?void 0:r.locale);t&&(e.locale=t,e.userAttributes={locale:t,...e.userAttributes});const n=await nt({...e,limit:1});return n&&n[0]||null}const Kn=async e=>{var a;const t=pe(e),n=e.fetch??Ln,r={...e.fetchOptions,headers:{...(a=e.fetchOptions)==null?void 0:a.headers,...Me()}};return await(await n(t.href,r)).json()},tt=async(e,t,n=pe(e))=>{const r=N(e.canTrack);if(n.search.includes("preview="),!r||!(y()||v==="reactNative"))return t.results;try{const i=[];for(const s of t.results)i.push(await Dn({item:s,canTrack:r}));t.results=i}catch(i){T.error("Could not process A/B tests. ",i)}return t.results};async function nt(e){const t=pe(e),n=await Kn(e);if(!qn(n))throw T.error("Error fetching data. ",{url:t,content:n,options:e}),n;return tt(e,n)}const Gn=async e=>{var r,i,s;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((i=e.userAttributes)==null?void 0:i.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:le(e.searchParams||((s=e.url)==null?void 0:s.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await Y(n)}},X=e=>e?e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase():"";function Jn(e,t,n={}){let r,i,s,a=null,c=0;const l=function(){c=n.leading===!1?0:Date.now(),a=null,s=e.apply(r,i),a||(r=i=null)};return function(){const u=Date.now();!c&&n.leading===!1&&(c=u);const p=t-(u-c);return r=this,i=arguments,p<=0||p>t?(a&&(clearTimeout(a),a=null),c=u,s=e.apply(r,i),a||(r=i=null)):!a&&n.trailing!==!1&&(a=setTimeout(l,p)),s}}function O(e,...t){const n=Object(e);for(let r=1;r<arguments.length;r++){const i=arguments[r];if(i!=null)for(const s in i)Object.prototype.hasOwnProperty.call(i,s)&&(n[s]=i[s])}return n}function Qn(e){for(const t of e)switch(t.trigger){case"pageLoad":it(t);break;case"scrollInView":Xn(t);break}}function ot(e){console.warn(`Cannot animate element: element with ID ${e} not found!`)}function rt(e,t){const n=Yn(e),r=getComputedStyle(t),i=e.steps[0].styles,s=e.steps[e.steps.length-1].styles,a=[i,s];for(const c of a)for(const l of n)l in c||(c[l]=r[l])}function Yn(e){const t=[];for(const n of e.steps)for(const r in n.styles)t.indexOf(r)===-1&&t.push(r);return t}function it(e){const t=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!t.length){ot(e.elementId||e.id||"");return}Array.from(t).forEach(n=>{rt(e,n),n.style.transition="none",n.style.transitionDelay="0",O(n.style,e.steps[0].styles),setTimeout(()=>{n.style.transition=`all ${e.duration}s ${X(e.easing)}`,e.delay&&(n.style.transitionDelay=e.delay+"s"),O(n.style,e.steps[1].styles),setTimeout(()=>{n.style.transition="",n.style.transitionDelay=""},(e.delay||0)*1e3+e.duration*1e3+100)})})}function Xn(e){const t=Array.prototype.slice.call(document.getElementsByClassName(e.elementId||e.id||""));if(!t.length){ot(e.elementId||e.id||"");return}Array.from(t).forEach(n=>{rt(e,n);let r=!1,i=!1;function s(){!r&&c(n)?(r=!0,i=!0,setTimeout(()=>{O(n.style,e.steps[1].styles),e.repeat||document.removeEventListener("scroll",a),setTimeout(()=>{i=!1,e.repeat||(n.style.transition="",n.style.transitionDelay="")},(e.duration+(e.delay||0))*1e3+100)})):e.repeat&&r&&!i&&!c(n)&&(r=!1,O(n.style,e.steps[0].styles))}const a=Jn(s,200,{leading:!1});function c(p){const h=p.getBoundingClientRect(),d=window.innerHeight,f=(e.thresholdPercent||0)/100*d;return h.bottom>f&&h.top<d-f}const l=e.steps[0].styles;function u(){O(n.style,l)}u(),setTimeout(()=>{n.style.transition=`all ${e.duration}s ${X(e.easing)}`,e.delay&&(n.style.transitionDelay=e.delay+"s")}),document.addEventListener("scroll",a,{capture:!0,passive:!0}),s()})}const st=e=>Object.entries(e).map(([n,r])=>{if(typeof r=="string")return`${X(n)}: ${r};`}).filter(P),_n=e=>st(e).join(` `),Zn=({mediaQuery:e,className:t,styles:n})=>{const r=`.${t} { ${_n(n)} }`;return e?`${e} { ${r} }`:r};function eo({style:e}){return e}const to=({block:e,context:t})=>at(eo({style:e.style||{},context:t,block:e}));function at(e){switch(v){case"svelte":case"vue":case"solid":case"angular":return st(e).join(" ");case"qwik":case"reactNative":case"react":case"rsc":return e}}const lt=(e,t)=>e?t?e.models&&e.models.length>0&&!e.models.includes(t):!1:!0,no=({block:e,registeredComponents:t,model:n})=>{var s;const r=(s=e.component)==null?void 0:s.name;if(!r)return null;const i=t[r];if(!i||lt(i,n)){console.warn(` Could not find a registered component named "${r}". If you registered it, is the file that registered it imported by the file that needs to render it?`);return}else return i},oo=({block:e,context:t})=>{const{repeat:n,...r}=e;if(!(n!=null&&n.collection))return;const i=x({code:n.collection,localState:t.localState,rootState:t.rootState,rootSetState:t.rootSetState,context:t.context});if(!Array.isArray(i))return;const s=n.collection.split(".").pop(),a=n.itemName||(s?s+"Item":"item");return i.map((l,u)=>({context:{...t,localState:{...t.localState,$index:u,$item:l,[a]:l,[`$${a}Index`]:u}},block:r}))},ro=(e,t)=>{var n;return(n=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&n.builderLinkComponent?{builderLinkComponent:t}:{}},io=(e,t,n)=>{var r;return(r=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&r.builderComponents?{builderComponents:Object.fromEntries(Object.entries(t).filter(([s,a])=>!lt(a,n)))}:{}},so=(e,t)=>{var n;return(n=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&n.builderBlock?{builderBlock:t}:{}},ao=(e,t)=>{var n;return(n=e==null?void 0:e.shouldReceiveBuilderProps)!=null&&n.builderContext?{builderContext:t}:{}},lo=e=>e.toString(),co=()=>Promise.resolve().then(()=>Io).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component DynamicDiv at ../dynamic-div.vue",e),e}),uo=()=>Promise.resolve().then(()=>require("./block-wrapper-8v7I2JSB.cjs")).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component BlockWrapper at ./components/block-wrapper.vue",e),e}),po=()=>Promise.resolve().then(()=>require("./component-ref-r7lSDLc0.cjs")).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component ComponentRef at ./components/component-ref/component-ref.vue",e),e}),mo=()=>Promise.resolve().then(()=>require("./repeated-block-uNYlrd8d.cjs")).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component RepeatedBlock at ./components/repeated-block.vue",e),e}),ho=()=>Promise.resolve().then(()=>require("./style-wrapper-jthdwC6f.cjs")).then(e=>e.default).catch(e=>{throw console.error("Error while attempting to dynamically import component StyleWrapper at ./components/style-wrapper.vue",e),e}),fo=o.defineComponent({name:"block",components:{StyleWrapper:o.defineAsyncComponent(ho),RepeatedBlock:o.defineAsyncComponent(mo),ComponentRef:o.defineAsyncComponent(po),BlockWrapper:o.defineAsyncComponent(uo),DynamicDiv:o.defineAsyncComponent(co)},props:["block","context","registeredComponents","linkComponent"],data(){return{_processedBlock:{value:null,update:!1},generateKey:lo}},mounted(){const e=this.processedBlock.id,t=this.processedBlock.animations;t&&e&&Qn(t.map(n=>({...n,elementId:e})))},updated(){},computed:{repeatItem(){return oo({block:this.block,context:this.context})},processedBlock(){var t;return(t=this.block.repeat)!=null&&t.collection?this.block:Fe({block:this.block,localState:this.context.localState,rootState:this.context.rootState,rootSetState:this.context.rootSetState,context:this.context.context})},blockComponent(){return no({block:this.processedBlock,registeredComponents:this.registeredComponents,model:this.context.model})},Tag(){var t;return this.block.tagName==="a"||((t=this.processedBlock.properties)==null?void 0:t.href)||this.processedBlock.href?this.linkComponent||"a":this.block.tagName||"div"},canShowBlock(){var n,r;if((n=this.block.repeat)!=null&&n.collection)return!!((r=this.repeatItem)!=null&&r.length);const e="hide"in this.processedBlock?this.processedBlock.hide:!1;return("show"in this.processedBlock?this.processedBlock.show:!0)&&!e},childrenWithoutParentComponent(){var t;return!((t=this.blockComponent)!=null&&t.component)&&!this.repeatItem?this.processedBlock.children??[]:[]},componentRefProps(){var e,t,n;return{blockChildren:this.processedBlock.children??[],componentRef:(e=this.blockComponent)==null?void 0:e.component,componentOptions:{...Yt(this.processedBlock,this.context),...so(this.blockComponent,this.processedBlock),...ao(this.blockComponent,this.context),...ro(this.blockComponent,this.linkComponent),...io(this.blockComponent,this.registeredComponents,this.context.model)},context:this.context,linkComponent:this.linkComponent,registeredComponents:this.registeredComponents,builderBlock:this.processedBlock,includeBlockProps:((t=this.blockComponent)==null?void 0:t.noWrap)===!0,isInteractive:!((n=this.blockComponent)!=null&&n.isRSC&&v==="rsc")}}}});function bo(e,t,n,r,i,s){var h;const a=o.resolveComponent("StyleWrapper"),c=o.resolveComponent("ComponentRef"),l=o.resolveComponent("Block",!0),u=o.resolveComponent("BlockWrapper"),p=o.resolveComponent("RepeatedBlock");return e.canShowBlock?(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[o.createVNode(a,{block:e.processedBlock,context:e.context,id:e.block.id},null,8,["block","context","id"]),(h=e.blockComponent)!=null&&h.noWrap?(o.openBlock(),o.createElementBlock(o.Fragment,{key:1},[e.repeatItem?(o.openBlock(!0),o.createElementBlock(o.Fragment,{key:1},o.renderList(e.repeatItem,(d,m)=>(o.openBlock(),o.createBlock(p,{key:e.generateKey(m),repeatContext:d.context,block:d.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},null,8,["repeatContext","block","registeredComponents","linkComponent"]))),128)):(o.openBlock(),o.createBlock(c,{key:0,componentRef:e.componentRefProps.componentRef,componentOptions:e.componentRefProps.componentOptions,blockChildren:e.componentRefProps.blockChildren,context:e.componentRefProps.context,registeredComponents:e.componentRefProps.registeredComponents,linkComponent:e.componentRefProps.linkComponent,builderBlock:e.componentRefProps.builderBlock,includeBlockProps:e.componentRefProps.includeBlockProps,isInteractive:e.componentRefProps.isInteractive},null,8,["componentRef","componentOptions","blockChildren","context","registeredComponents","linkComponent","builderBlock","includeBlockProps","isInteractive"]))],64)):(o.openBlock(),o.createElementBlock(o.Fragment,{key:0},[e.repeatItem?(o.openBlock(!0),o.createElementBlock(o.Fragment,{key:1},o.renderList(e.repeatItem,(d,m)=>(o.openBlock(),o.createBlock(p,{key:e.generateKey(m),repeatContext:d.context,block:d.block,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent},null,8,["repeatContext","block","registeredComponents","linkComponent"]))),128)):(o.openBlock(),o.createBlock(u,{key:0,Wrapper:e.Tag,block:e.processedBlock,context:e.context},{default:o.withCtx(()=>[o.createVNode(c,{componentRef:e.componentRefProps.componentRef,componentOptions:e.componentRefProps.componentOptions,blockChildren:e.componentRefProps.blockChildren,context:e.componentRefProps.context,registeredComponents:e.componentRefProps.registeredComponents,linkComponent:e.componentRefProps.linkComponent,builderBlock:e.componentRefProps.builderBlock,includeBlockProps:e.componentRefProps.includeBlockProps,isInteractive:e.componentRefProps.isInteractive},null,8,["componentRef","componentOptions","blockChildren","context","registeredComponents","linkComponent","builderBlock","includeBlockProps","isInteractive"]),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(e.childrenWithoutParentComponent,(d,m)=>(o.openBlock(),o.createBlock(l,{key:d.id,block:d,registeredComponents:e.registeredComponents,linkComponent:e.linkComponent,context:e.context},null,8,["block","registeredComponents","linkComponent","context"]))),128))]),_:1},8,["Wrapper","block","context"]))],64))],64)):o.createCommentVNode("",!0)}const me=g(fo,[["render",bo]]),go=Object.freeze(Object.defineProperty({__proto__:null,default:me},Symbol.toStringTag,{value:"Module"})),yo=o.defineComponent({name:"builder-blocks-wrapper",props:["blocks","classNameProp","path","parent","styleProp","BlocksWrapperProps","BlocksWrapper"],data(){return{shouldUpdate:!1}},mounted(){},watch:{onUpdateHook0:{handler(){},immediate:!0}},computed:{className(){var e;return["builder-blocks",(e=this.blocks)!=null&&e.length?"":"no-blocks",this.classNameProp].filter(Boolean).join(" ")},dataPath(){if(!this.path)return;const e="this.",t="component.options.";return this.path.startsWith(e)?this.path.replace(e,""):this.path.startsWith(t)?this.path:`${t}${this.path||""}`},onUpdateHook0(){return{0:this.blocks}}},methods:{onClick(){var e,t;S()&&!((e=this.blocks)!=null&&e.length)&&((t=window.parent)==null||t.postMessage({type:"builder.clickEmptyBlocks",data:{parentElementId:this.parent,dataPath:this.dataPath}},"*"))},onMouseEnter(){var e,t;S()&&!((e=this.blocks)!=null&&e.length)&&((t=window.parent)==null||t.postMessage({type:"builder.hoverEmptyBlocks",data:{parentElementId:this.parent,dataPath:this.dataPath}},"*"))}}});function ko(e,t,n,r,i,s){return o.openBlock(),o.createBlock(o.resolveDynamicComponent(e.BlocksWrapper),o.mergeProps({ref:"blocksWrapperRef",class:e.className+" component-5vz8uirn7sc","builder-path":e.dataPath,"builder-parent-id":e.parent,style:e.styleProp,onClick:a=>e.onClick(),onMouseEnter:a=>e.onMouseEnter(),onKeyPress:a=>e.onClick()},{...e.BlocksWrapperProps}),{default:o.withCtx(()=>[o.renderSlot(e.$slots,"default",{},void 0,!0)]),_:3},16,["class","builder-path","builder-parent-id","style","onClick","onMouseEnter","onKeyPress"])}const vo=g(yo,[["render",ko],["__scopeId","data-v-82fc93d6"]]),So=o.defineComponent({name:"builder-blocks",components:{BlocksWrapper:vo,Block:me},props:["blocks","parent","path","styleProp","BlocksWrapperProps","context","className","linkComponent","registeredComponents"],inject:{builderContext:j.key,componentsContext:Ve.key}});function Co(e,t,n,r,i,s){var l,u,p,h;const a=o.resolveComponent("Block"),c=o.resolveComponent("BlocksWrapper");return o.openBlock(),o.createBlock(c,{blocks:e.blocks,parent:e.parent,path:e.path,styleProp:e.styleProp,BlocksWrapperProps:e.BlocksWrapperProps||((l=e.context)==null?void 0:l.BlocksWrapperProps)||((u=e.builderContext)==null?void 0:u.BlocksWrapperProps),classNameProp:e.className,BlocksWrapper:((p=e.context)==null?void 0:p.BlocksWrapper)||((h=e.builderContext)==null?void 0:h.BlocksWrapper)},{default:o.withCtx(()=>[o.renderSlot(e.$slots,"default"),e.blocks?(o.openBlock(!0),o.createElementBlock(o.Fragment,{key:0},o.renderList(e.blocks,(d,m)=>{var f;return o.openBlock(),o.createBlock(a,{key:d.id,block:d,linkComponent:e.linkComponent,context:e.context||e.builderContext,registeredComponents:e.registeredComponents||((f=e.componentsContext)==null?void 0:f.registeredComponents)},null,8,["block","linkComponent","context","registeredComponents"])}),128)):o.createCommentVNode("",!0)]),_:3},8,["blocks","parent","path","styleProp","BlocksWrapperProps","classNameProp","BlocksWrapper"])}const A=g(So,[["render",Co]]),To=o.defineComponent({name:"dynamic-div",props:[]});function wo(e,t,n,r,i,s){return o.openBlock(),o.createElementBlock("div",null,[o.renderSlot(e.$slots,"default")])}const U=g(To,[["render",wo]]),Io=Object.freeze(Object.defineProperty({__proto__:null,default:U},Symbol.toStringTag,{value:"Module"})),F=o.defineComponent({render(){return o.h("style",{innerHTML:this.styles,"data-id":this.id,nonce:this.nonce})},name:"inlined-styles",props:["styles","id","nonce"]}),ct={xsmall:{min:0,default:160,max:320},small:{min:321,default:321,max:640},medium:{min:641,default:642,max:991},large:{min:990,default:991,max:1200}},Bo=(e,t=ct)=>`@media (max-width: ${t[e].max}px)`,dt=e=>{const t=ae(ct);if(!e)return t;const{xsmall:n,small:r,medium:i}=e;if(n){const l=Math.floor(n/2);t.xsmall={max:n,min:l,default:l+1}}if(!r||!i)return t;const s=n?t.xsmall.max+1:Math.floor(r/2);t.small={max:r,min:s,default:s+1};const a=t.small.max+1;t.medium={max:i,min:a,default:a+1};const c=t.medium.max+1;return t.large={max:2e3,min:c,default:c+1},t},Eo=e=>`builder-columns ${e}-breakpoints`,$o=o.defineComponent({name:"builder-columns",components:{InlinedStyles:F,DynamicRenderer:se,Blocks:A,DynamicDiv:U},props:["space","columns","stackColumnsAt","builderLinkComponent","reverseColumnsWhenStacked","builderContext","builderBlock","builderComponents"],data(){return{TARGET:v,getColumnsClass:Eo}},computed:{gutterSize(){return typeof this.space=="number"?this.space||0:20},cols(){return this.columns||[]},stackAt(){return this.stackColumnsAt||"tablet"},flexDir(){return this.stackColumnsAt==="never"?"row":this.reverseColumnsWhenStacked?"column-reverse":"column"}},methods:{getTagName(e){return e.link?this.builderLinkComponent||"a":"div"},getWidth(e){var t;return((t=this.cols[e])==null?void 0:t.width)||100/this.cols.length},getColumnCssWidth(e){const t=this.getWidth(e),n=this.gutterSize*(this.cols.length-1)*(t/100);return`calc(${t}% - ${n}px)`},getTabletStyle({stackedStyle:e,desktopStyle:t}){return this.stackAt==="tablet"?e:t},getMobileStyle({stackedStyle:e,desktopStyle:t}){return this.stackAt==="never"?t:e},columnsCssVars(){return{"--flex-dir":this.flexDir,"--flex-dir-tablet":this.getTabletStyle({stackedStyle:this.flexDir,desktopStyle:"row"})}},columnCssVars(e){const t=e===0?0:this.gutterSize,n=this.getColumnCssWidth(e),r=`${t}px`,i="100%",s=0;return{...{display:"flex",flexDirection:"column",alignItems:"stretch"},width:n,["margin-left"]:r,"--column-width-mobile":this.getMobileStyle({stackedStyle:i,desktopStyle:n}),"--column-margin-left-mobile":this.getMobileStyle({stackedStyle:s,desktopStyle:r}),"--column-width-tablet":this.getTabletStyle({stackedStyle:i,desktopStyle:n}),"--column-margin-left-tablet":this.getTabletStyle({stackedStyle:s,desktopStyle:r})}},getWidthForBreakpointSize(e){var n,r;return dt(((r=(n=this.builderContext.content)==null?void 0:n.meta)==null?void 0:r.breakpoints)||{})[e].max},columnsStyles(){const e=`.${this.builderBlock.id}-breakpoints > .builder-column`;return` @media (max-width: ${this.getWidthForBreakpointSize("medium")}px) { .${this.builderBlock.id}-breakpoints { flex-direction: var(--flex-dir-tablet); align-items: stretch; } ${e} { width: var(--column-width-tablet) !important; margin-left: var(--column-margin-left-tablet) !important; } } @media (max-width: ${this.getWidthForBreakpointSize("small")}px) { .${this.builderBlock.id}-breakpoints { flex-direction: var(--flex-dir); align-items: stretch; } ${e} { width: var(--column-width-mobile) !important; margin-left: var(--column-margin-left-mobile) !important; } }, `},getAttributes(e,t){return{...e.link?{href:e.link}:{},[R()]:"builder-column",style:at(this.columnCssVars(t))}}}});function Ro(e,t,n,r,i,s){var u;const a=o.resolveComponent("InlinedStyles"),c=o.resolveComponent("Blocks"),l=o.resolveComponent("DynamicRenderer");return o.openBlock(),o.createElementBlock("div",o.mergeProps({class:e.getColumnsClass((u=e.builderBlock)==null?void 0:u.id)+" div-1be3j8m9ewb",style:e.columnsCssVars()},{}),[e.TARGET!=="reactNative"?(o.openBlock(),o.createBlock(a,{key:0,id:"builderio-columns",styles:e.columnsStyles(),nonce:e.builderContext.nonce},null,8,["styles","nonce"])):o.createCommentVNode("",!0),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(e.columns,(p,h)=>(o.openBlock(),o.createBlock(l,{key:h,TagName:e.getTagName(p),actionAttributes:{},attributes:e.getAttributes(p,h)},{default:o.withCtx(()=>[o.createVNode(c,{path:`columns.${h}.blocks`,parent:e.builderBlock.id,context:e.builderContext,registeredComponents:e.builderComponents,linkComponent:e.builderLinkComponent,blocks:p.blocks,styleProp:{flexGrow:"1"}},null,8,["path","parent","context","registeredComponents","linkComponent","blocks"])]),_:2},1032,["TagName","attributes"]))),128))],16)}const ut=g($o,[["render",Ro],["__scopeId","data-v-ab15749a"]]),Po=o.defineComponent({name:"builder-fragment-component",props:[]});function Vo(e,t,n,r,i,s){return o.openBlock(),o.createElementBlock("span",null,[o.renderSlot(e.$slots,"default")])}const pt=g(Po,[["render",Vo]]);function Be(e){return e.replace(/http(s)?:/,"")}function Ao(e="",t,n){const r=new RegExp("([?&])"+t+"=.*?(&|$)","i"),i=e.indexOf("?")!==-1?"&":"?";return e.match(r)?e.replace(r,"$1"+t+"="+encodeURIComponent(n)+"$2"):e+i+t+"="+encodeURIComponent(n)}function No(e,t){if(!e||!(e!=null&&e.match(/cdn\.shopify\.com/))||!t)return e;if(t==="master")return Be(e);const n=e.match(/(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i);if(n){const r=e.split(n[0]),i=n[3],s=t.match("x")?t:`${t}x`;return Be(`${r[0]}_${s}${i}`)}return null}function H(e){if(!e)return e;const t=[100,200,400,800,1200,1600,2e3];if(e.match(/builder\.io/)){let n=e;const r=Number(e.split("?width=")[1]);return isNaN(r)||(n=`${n} ${r}w`),t.filter(i=>i!==r).map(i=>`${Ao(e,"width",i)} ${i}w`).concat([n]).join(", ")}return e.match(/cdn\.shopify\.com/)?t.map(n=>[No(e,`${n}x${n}`),n]).filter(([n])=>!!n).map(([n,r])=>`${n} ${r}w`).concat([e]).join(", "):e}const xo=o.defineComponent({name:"builder-image",props:["lazy","image","src","srcset","noWebp","aspectRatio","highPriority","altText","title","backgroundPosition","backgroundSize","className","sizes","builderBlock","fitContent"],computed:{srcSetToUse(){var n;const t=this.image||this.src;if(!t||!(typeof t=="string"&&(t.match(/builder\.io/)||t.match(/cdn\.shopify\.com/))))return this.srcset;if(!this.noWebp){if(this.srcset&&((n=this.image)!=null&&n.includes("builder.io/api/v1/image"))){if(!this.srcset.includes(this.image.split("?")[0]))return console.debug("Removed given srcset"),H(t)}else if(this.image&&!this.srcset)return H(t);return H(t)}},webpSrcSet(){var e;return(e=this.srcSetToUse)!=null&&e.match(/builder\.io/)&&!this.noWebp?this.srcSetToUse.replace(/\?/g,"?format=webp&"):""},aspectRatioCss(){const e={position:"absolute",height:"100%",width:"100%",left:"0px",top:"0px"};return this.aspectRatio?e:void 0}}}),Wo=["srcset"],Do=["loading","fetchpriority","alt","title","role","src","srcset","sizes"],Oo={key:2,class:"div-t43jfuqn6g-2"};function Uo(e,t,n,r,i,s){var a,c,l,u,p,h;return o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createElementVNode("picture",null,[e.webpSrcSet?(o.openBlock(),o.createElementBlock("source",{key:0,type:"image/webp",srcset:e.webpSrcSet},null,8,Wo)):o.createCommentVNode("",!0),o.createElementVNode("img",{loading:e.highPriority?"eager":"lazy",fetchpriority:e.highPriority?"high":"auto",alt:e.altText,title:e.title,role:e.altText?void 0:"presentation",style:o.normalizeStyle({objectPosition:e.backgroundPosition||"center",objectFit:e.backgroundSize||"cover",...e.aspectRatioCss}),class:o.normalizeClass("builder-image"+(e.className?" "+e.className:"")+" img-t43jfuqn6g"),src:e.image,srcset:e.srcSetToUse,sizes:e.sizes},null,14,Do)]),e.aspectRatio&&!((c=(a=e.builderBlock)==null?void 0:a.children)!=null&&c.length&&e.fitContent)?(o.openBlock(),o.createElementBlock("div",{key:0,class:"builder-image-sizer div-t43jfuqn6g",style:o.normalizeStyle({paddingTop:e.aspectRatio*100+"%"})},null,4)):o.createCommentVNode("",!0),(u=(l=e.builderBlock)==null?void 0:l.children)!=null&&u.length&&e.fitContent?o.renderSlot(e.$slots,"default",{key:1},void 0,!0):o.createCommentVNode("",!0),!e.fitContent&&((h=(p=e.builderBlock)==null?void 0:p.children)!=null&&h.length)?(o.openBlock(),o.createElementBlock("div",Oo,[o.renderSlot(e.$slots,"default",{},void 0,!0)])):o.createCommentVNode("",!0)],64)}const mt=g(xo,[["render",Uo],["__scopeId","data-v-741b9bbc"]]),Fo=o.defineComponent({name:"builder-section-component",props:["attributes","maxWidth"],data(){return{filterAttrs:I}}});function Lo(e,t,n,r,i,s){return o.openBlock(),o.createElementBlock("section",o.mergeProps({style:{width:"100%",alignSelf:"stretch",flexGrow:1,boxSizing:"border-box",maxWidth:e.maxWidth||1200,display:"flex",flexDirection:"column",alignItems:"stretch",marginLeft:"auto",marginRight:"auto"}},e.filterAttrs(e.attributes,"v-on:",!1),o.toHandlers(e.filterAttrs(e.attributes,"v-on:",!0),!0)),[o.renderSlot(e.$slots,"default")],16)}const ht=g(Fo,[["render",Lo]]);function Ho(e,t,n,r){function i(u){return typeof u=="string"}function s(u){return typeof u=="number"}function a(u,p){return(()=>{const d=p.property,m=p.operator;let f=p.value;if(p&&p.property==="urlPath"&&p.value&&typeof p.value=="string"&&p.value!=="/"&&p.value.endsWith("/")&&(f=p.value.slice(0,-1)),!(d&&m))return!0;if(Array.isArray(f))return m==="isNot"?f.every(C=>a(u,{property:d,operator:m,value:C})):!!f.find(C=>a(u,{property:d,operator:m,value:C}));const b=u[d];if(Array.isArray(b))return b.includes(f);switch(m){case"is":return b===f;case"isNot":return b!==f;case"contains":return(i(b)||Array.isArray(b))&&b.includes(String(f));case"startsWith":return i(b)&&b.startsWith(String(f));case"endsWith":return i(b)&&b.endsWith(String(f));case"greaterThan":return s(b)&&s(f)&&b>f;case"lessThan":return s(b)&&s(f)&&b<f;case"greaterThanOrEqualTo":return s(b)&&s(f)&&b>=f;case"lessThanOrEqualTo":return s(b)&&s(f)&&b<=f;default:return!1}})()}const c={query:t,startDate:n,endDate:r},l=e.date&&new Date(e.date)||new Date;return c.startDate&&new Date(c.startDate)>l||c.endDate&&new Date(c.endDate)<l?!1:!c.query||!c.query.length?!0:c.query.every(u=>a(e,u))}const Mo=`function getPersonalizedVariant(variants, blockId, isHydrationTarget, locale) { if (!navigator.cookieEnabled) { return; } function getCookie(name) { const nameEQ = name + '='; const ca = document.cookie.split(';'); for (let i = 0; i < ca.length; i++) { let c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } const attributes = JSON.parse(getCookie('builder.userAttributes') || '{}'); if (locale) { attributes.locale = locale; } const winningVariantIndex = variants?.findIndex(function (variant) { return window.filterWithCustomTargeting(attributes, variant.query, variant.startDate, variant.endDate); }); const parentDiv = document.currentScript?.parentElement; const variantId = parentDiv?.getAttribute('data-variant-id'); const isDefaultVariant = variantId === \`\${blockId}-default\`; const isWinningVariant = winningVariantIndex !== -1 && variantId === \`\${blockId}-\${winningVariantIndex}\` || winningVariantIndex === -1 && isDefaultVariant; if (isWinningVariant && !isDefaultVariant) { parentDiv?.removeAttribute('hidden'); parentDiv?.removeAttribute('aria-hidden'); } else if (!isWinningVariant && isDefaultVariant) { parentDiv?.setAttribute('hidden', 'true'); parentDiv?.setAttribute('aria-hidden', 'true'); } if (isHydrationTarget) { if (!isWinningVariant) { const itsStyleEl = parentDiv?.previousElementSibling; if (itsStyleEl) { itsStyleEl.remove(); } parentDiv?.remove(); } const thisScript = document.currentScript; if (thisScript) { thisScript.remove(); } } }`,zo=`function filterWithCustomTargeting(userAttributes, query, startDate, endDate) { function isString(val) { return typeof val === 'string'; } function isNumber(val) { return typeof val === 'number'; } function objectMatchesQuery(userattr, query) { const result = (() => { const property = query.property; const operator = query.operator; let testValue = query.value; if (query && query.property === 'urlPath' && query.value && typeof query.value === 'string' && query.value !== '/' && query.value.endsWith('/')) { testValue = query.value.slice(0, -1); } if (!(property && operator)) { return true; } if (Array.isArray(testValue)) { if (operator === 'isNot') { return testValue.every(val => objectMatchesQuery(userattr, { property, operator, value: val })); } return !!testValue.find(val => objectMatchesQuery(userattr, { property, operator, value: val })); } const value = userattr[property]; if (Array.isArray(value)) { return value.includes(testValue); } switch (operator) { case 'is': return value === testValue; case 'isNot': return value !== testValue; case 'contains': return (isString(value) || Array.isArray(value)) && value.includes(String(testValue)); case 'startsWith': return isString(value) && value.startsWith(String(testValue)); case 'endsWith': return isString(value) && value.endsWith(String(testValue)); case 'greaterThan': return isNumber(value) && isNumber(testValue) && value > testValue; case 'lessThan': return isNumber(value) && isNumber(testValue) && value < testValue; case 'greaterThanOrEqualTo': return isNumber(value) && isNumber(testValue) && value >= testValue; case 'le