@builder.io/sdk-react 4.0.9 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/lib/browser/blocks-exports.cjs +10 -10
  2. package/lib/browser/blocks-exports.mjs +480 -459
  3. package/lib/browser/index.cjs +1 -1
  4. package/lib/browser/index.mjs +1 -1
  5. package/lib/browser/server-entry-9ed7eace.cjs +2 -0
  6. package/lib/{edge/server-entry-8dc3478a.js → browser/server-entry-cddec22e.js} +272 -265
  7. package/lib/browser/server-entry.cjs +1 -1
  8. package/lib/browser/server-entry.mjs +1 -1
  9. package/lib/edge/{accordion-e3f81e74.cjs → accordion-59aed902.cjs} +1 -1
  10. package/lib/edge/{accordion-b551e135.js → accordion-88f5ca79.js} +1 -1
  11. package/lib/edge/{blocks-cd1feef2.js → blocks-1bfa0619.js} +2 -2
  12. package/lib/edge/{blocks-eb6fa21f.cjs → blocks-e5610e53.cjs} +1 -1
  13. package/lib/edge/blocks-exports.cjs +1 -1
  14. package/lib/edge/blocks-exports.mjs +2 -2
  15. package/lib/edge/{button-f390f723.js → button-cfcad5ee.js} +2 -2
  16. package/lib/edge/{button-5c6a9392.cjs → button-d4969c10.cjs} +1 -1
  17. package/lib/edge/{columns-ad17139e.cjs → columns-4c22f5f9.cjs} +1 -1
  18. package/lib/edge/{columns-7018a027.js → columns-840b77f4.js} +3 -3
  19. package/lib/edge/{content-variants-dc54ce4f.js → content-variants-5b95a71c.js} +13 -13
  20. package/lib/edge/{content-variants-c72ca81f.cjs → content-variants-9084d7cf.cjs} +3 -3
  21. package/lib/edge/{custom-code-0daf1c91.js → custom-code-c12691cc.js} +1 -1
  22. package/lib/edge/{custom-code-e87af7b1.cjs → custom-code-f0f3bef1.cjs} +1 -1
  23. package/lib/edge/{embed-1dfcba43.js → embed-46acac57.js} +1 -1
  24. package/lib/edge/{embed-c695c98e.cjs → embed-95c874d3.cjs} +1 -1
  25. package/lib/edge/form-49928227.js +178 -0
  26. package/lib/edge/form-e74d90ef.cjs +1 -0
  27. package/lib/edge/{get-class-prop-name-c479656a.cjs → get-class-prop-name-5d642918.cjs} +1 -1
  28. package/lib/edge/{get-class-prop-name-5edacc3b.js → get-class-prop-name-de337a1b.js} +1 -1
  29. package/lib/edge/image-209835f4.js +94 -0
  30. package/lib/edge/image-87a4e006.cjs +17 -0
  31. package/lib/edge/image.helpers-3e926d47.js +33 -0
  32. package/lib/edge/image.helpers-dba8a869.cjs +1 -0
  33. package/lib/edge/img-0fe56811.cjs +1 -0
  34. package/lib/edge/img-a0115c68.js +27 -0
  35. package/lib/edge/index.cjs +1 -1
  36. package/lib/edge/index.mjs +1 -1
  37. package/lib/edge/{input-3d4f956b.js → input-2a39a1a8.js} +1 -1
  38. package/lib/edge/{input-8c7008b5.cjs → input-4f2e451f.cjs} +1 -1
  39. package/lib/edge/personalization-container-9ddd7a55.cjs +1 -0
  40. package/lib/edge/{personalization-container-3a8dc18a.js → personalization-container-d477347e.js} +35 -32
  41. package/lib/edge/{select-2efc7503.cjs → select-b5449eba.cjs} +1 -1
  42. package/lib/edge/{select-153586f8.js → select-d1902b94.js} +1 -1
  43. package/lib/{node/server-entry-f03c1146.js → edge/server-entry-50618347.js} +306 -303
  44. package/lib/edge/server-entry-a24928b8.cjs +2 -0
  45. package/lib/edge/server-entry.cjs +1 -1
  46. package/lib/edge/server-entry.mjs +1 -1
  47. package/lib/edge/{slot-f1f7513c.cjs → slot-e2f8c494.cjs} +1 -1
  48. package/lib/edge/{slot-d268693c.js → slot-f37576fc.js} +3 -3
  49. package/lib/edge/{symbol-0344516c.cjs → symbol-8424cd54.cjs} +1 -1
  50. package/lib/edge/{symbol-378e19ee.js → symbol-a34eea2a.js} +2 -2
  51. package/lib/edge/{tabs-29ff78a0.js → tabs-b97f9798.js} +3 -3
  52. package/lib/edge/{tabs-4e931765.cjs → tabs-e686d11f.cjs} +1 -1
  53. package/lib/node/blocks-exports.cjs +16 -16
  54. package/lib/node/blocks-exports.mjs +502 -481
  55. package/lib/node/index.cjs +1 -1
  56. package/lib/node/index.mjs +3 -3
  57. package/lib/node/init.cjs +1 -1
  58. package/lib/node/init.mjs +3 -3
  59. package/lib/{browser/server-entry-231f8ecd.js → node/server-entry-1556528d.js} +205 -199
  60. package/lib/node/server-entry-ecee24b6.cjs +2 -0
  61. package/lib/node/server-entry.cjs +1 -1
  62. package/lib/node/server-entry.mjs +1 -1
  63. package/lib/node/{setIvm-044ce9e7.js → setIvm-15c96eda.js} +1 -1
  64. package/lib/node/{setIvm-3761bb10.cjs → setIvm-432010ba.cjs} +1 -1
  65. package/lib/node/setIvm.cjs +1 -1
  66. package/lib/node/setIvm.mjs +2 -2
  67. package/lib/node/{should-force-browser-runtime-in-node-e760d4f2.cjs → should-force-browser-runtime-in-node-4128d124.cjs} +1 -1
  68. package/lib/node/{should-force-browser-runtime-in-node-f620dcdc.js → should-force-browser-runtime-in-node-d0bca779.js} +1 -1
  69. package/package.json +1 -1
  70. package/types/constants/sdk-version.d.ts +1 -1
  71. package/types/helpers/no-serialize-wrapper.d.ts +1 -0
  72. package/types/helpers/user-attributes.d.ts +6 -2
  73. package/lib/browser/server-entry-bdbd3c0d.cjs +0 -2
  74. package/lib/edge/form-5a0c89d9.js +0 -166
  75. package/lib/edge/form-ba54942c.cjs +0 -1
  76. package/lib/edge/image-cce92f6c.cjs +0 -17
  77. package/lib/edge/image-d87761af.js +0 -123
  78. package/lib/edge/img-6982d6eb.cjs +0 -1
  79. package/lib/edge/img-882c7222.js +0 -20
  80. package/lib/edge/personalization-container-4557a50b.cjs +0 -1
  81. package/lib/edge/server-entry-9d269960.cjs +0 -2
  82. package/lib/node/server-entry-916c726c.cjs +0 -2
@@ -0,0 +1,2 @@
1
+ "use strict";const m="react",v="[Builder.io]: ",d={log:(...e)=>console.log(v,...e),error:(...e)=>console.error(v,...e),warn:(...e)=>console.warn(v,...e),debug:(...e)=>console.debug(v,...e)};function c(){return typeof window!="undefined"&&typeof document!="undefined"}const be=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},G=e=>e instanceof URLSearchParams?be(e):e,$=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function ye(){return c()&&window.self!==window.top}function z(e){return ye()&&$(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const we=()=>{if(c()){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},Ee=()=>typeof navigator=="object"&&navigator.userAgent||"",J=()=>{const e=Ee(),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()||m==="reactNative"}},n=e.match(/Tablet|iPad/i),r=we();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"}},p=e=>e!=null;function Ie(e){const t=e||(c()?window.location.search:void 0);return t?$(t).indexOf("builder.preview=")!==-1:!1}const ve=e=>({type:"builder.registerComponent",data:C(e)}),Ae=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 C(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?Ae(n):n))}const V={};function X(e,t){e==="plugin"&&(t=C(t));let n=V[e];if(n||(n=V[e]=[]),n.push(t),c()){const r={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(r,"*"),parent!==window&&window.postMessage(r,"*")}catch(s){console.debug("Could not postmessage",s)}}}const D={};function ke(e){if(c()){Object.assign(D,e);const t={type:"builder.settingsChange",data:D};parent.postMessage(t,"*")}}const F="builder.",Ue="options.",O=e=>{if(!e)return{};const t=G(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(F)){const s=r.replace(F,"").replace(Ue,"");n[s]=t[r]}}),n},Te=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return O(e)},H="4.1.0",Q=()=>({"X-Builder-SDK":m,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":H}),Ce=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},A=({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){d.warn("[COOKIE] GET error: ",(r==null?void 0:r.message)||r);return}},Y=async e=>A(e),Oe=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),Pe=[["secure",""],["SameSite","None"]],Re=({name:e,value:t,expires:n})=>{const s=(c()?location.protocol==="https:":!0)?Pe:[[]],o=n?[["expires",n.toUTCString()]]:[[]],i=[[e,t],...o,["path","/"],["domain",Ce(window.location.hostname)],...s];return Oe(i)},P=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const s=Re({name:e,value:t,expires:n});document.cookie=s}catch(s){d.warn("[COOKIE] SET error: ",(s==null?void 0:s.message)||s)}};function Be(){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 Z(){return Be().replace(/-/g,"")}const q="builderSessionId",xe=async({canTrack:e})=>{if(!e)return;const t=await Y({name:q,canTrack:e});if(p(t))return t;{const n=_e();return Le({id:n,canTrack:e}),n}},_e=()=>Z(),Le=({id:e,canTrack:t})=>P({name:q,value:e,canTrack:t}),ee=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Ne=({key:e,canTrack:t})=>{var n;try{return t?(n=ee())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Ve=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=ee())==null||r.setItem(e,n))}catch(s){console.debug("[LocalStorage] SET error: ",s)}},te="builderVisitorId",De=({canTrack:e})=>{if(!e)return;const t=Ne({key:te,canTrack:e});if(p(t))return t;{const n=Fe();return Me({id:n,canTrack:e}),n}},Fe=()=>Z(),Me=({id:e,canTrack:t})=>Ve({key:te,value:e,canTrack:t});function ne(e){var t;typeof process!="undefined"&&((t=process.env)!=null&&t.DEBUG)&&String(process.env.DEBUG)=="true"&&d.log(e)}const Ke=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await xe({canTrack:e}),n=De({canTrack:e});return{sessionId:t,visitorId:n}},We=async({type:e,canTrack:t,apiKey:n,metadata:r,...s})=>({type:e,data:{...s,metadata:{url:location.href,...r},...await Ke({canTrack:t}),userAttributes:J(),ownerId:n}});async function re({apiHost:e,...t}){if(!t.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(!t.canTrack||z()||!(c()||m==="reactNative"))return;const r=`${e||"https://cdn.builder.io"}/api/v1/track`;return ne(r),fetch(r,{method:"POST",body:JSON.stringify({events:[await We(t)]}),headers:{"content-type":"application/json",...Q()},mode:"cors"}).catch(s=>{console.error("Failed to track: ",s)})}const je=e=>re({...e,canTrack:!0}),Ge=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function se(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||Ge).findIndex(s=>s.startsWith("*.")?r.endsWith(s.slice(1)):s===r)>-1}const $e=()=>{X("insertMenu",{name:"_default",default:!0,items:[{name:"Box"},{name:"Text"},{name:"Image"},{name:"Columns"},{name:"Core:Section"},{name:"Core:Button"},{name:"Embed"},{name:"Custom Code"}]})};let M=!1;const oe=e=>{var t,n;M||(M=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:m,version:H,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 o,i;if(!se(e.trustedHosts,r))return;const{data:s}=r;if(s!=null&&s.type)switch(s.type){case"builder.evaluate":{const u=s.data.text,y=s.data.arguments||[],S=s.data.id,w=new Function(u);let l,g=null;try{l=w.apply(null,y)}catch(h){g=h}g?(o=window.parent)==null||o.postMessage({type:"builder.evaluateError",data:{id:S,error:g.message}},"*"):l&&typeof l.then=="function"?l.then(h=>{var E;(E=window.parent)==null||E.postMessage({type:"builder.evaluateResult",data:{id:S,result:h}},"*")}).catch(console.error):(i=window.parent)==null||i.postMessage({type:"builder.evaluateResult",data:{result:l,id:S}},"*");break}}})))},ie=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!se(t,r))return;const{data:s}=r;if(s)switch(s.type){case"builder.configureSdk":{n.configureSdk(s.data);break}case"builder.triggerAnimation":{n.animation(s.data);break}case"builder.resetState":{const o=s.data,i=o.model,u=o==null?void 0:o.state;i===e&&u&&n.stateUpdate(u);break}case"builder.contentUpdate":{const o=s.data,i=o.key||o.alias||o.entry||o.modelName,u=o.data;i===e&&n.contentUpdate(u);break}}},ze=({model:e,apiKey:t,callback:n,trustedHosts:r})=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};oe({modelName:e,apiKey:t});const s=ie({callbacks:{contentUpdate:n,animation:()=>{},configureSdk:()=>{},stateUpdate:()=>{}},model:e,trustedHosts:r});return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},Je="builder.tests",R=e=>`${Je}.${e}`,Xe=({contentId:e})=>Y({name:R(e),canTrack:!0}),He=({contentId:e})=>A({name:R(e),canTrack:!0}),Qe=({contentId:e,value:t})=>P({name:R(e),value:t,canTrack:!0}),ae=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,Ye=({id:e,variations:t})=>{var s;let n=0;const r=Math.random();for(const o in t){const i=(s=t[o])==null?void 0:s.testRatio;if(n+=i,r<n)return o}return e},ce=e=>{const t=Ye(e);return Qe({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},ue=({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":"")}},Ze=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!ae(e))return e;const n=He({contentId:e.id})||ce({variations:e.variations,id:e.id}),r=ue({item:e,testGroupId:n});return{...e,...r}},qe=async({item:e,canTrack:t})=>{if(!t||!ae(e))return e;const r=await Xe({contentId:e.id})||ce({variations:e.variations,id:e.id}),s=ue({item:e,testGroupId:r});return{...e,...s}};const K="builder.userAttributes";function W(){let e=!0;const t=new Set;return{setUserAttributes(n){if(!c())return;const r={...this.getUserAttributes(),...n};P({name:K,value:JSON.stringify(r),canTrack:e}),t.forEach(s=>s(r))},getUserAttributes(){return c()?JSON.parse(A({name:K,canTrack:e})||"{}"):{}},subscribeOnUserAttributesChange(n,{fireImmediately:r}={}){return t.add(n),r&&n(this.getUserAttributes()),function(){t.delete(n)}},setCanTrack(n){e=n}}}let U;c()&&m==="qwik"?(window.__BUILDER_USER_ATTRIBUTES_SERVICE__||(window.__BUILDER_USER_ATTRIBUTES_SERVICE__=W()),U=window.__BUILDER_USER_ATTRIBUTES_SERVICE__):U=W();const B=U,et=e=>{B.setUserAttributes(e)},le=e=>{const t=p(e)?e:!0;return B.setCanTrack(t),t};function tt(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function nt(){const e=tt().fetch;if(typeof e=="undefined")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
2
+ 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 rt=nt();function T(e,t=null,n="."){return Object.keys(e).reduce((r,s)=>{const o=e[s],i=[t,s].filter(Boolean).join(n);return[typeof o=="object",o!==null,!(Array.isArray(o)&&o.length===0)].every(Boolean)?{...r,...T(o,i,n)}:{...r,[i]:o}},{})}function de(e,t,n={}){for(const r in e){const s=e[r],o=t?t+"."+r:r;s&&typeof s=="object"&&!Array.isArray(s)&&!Object.keys(s).find(i=>i.startsWith("$"))?de(s,o,n):n[o]=s}return n}function st(e){const t={};for(const n in e){const r=n.split(".");let s=t;for(let o=0;o<r.length;o++){const i=r[o];o===r.length-1?s[i]=e[n]:(s[i]=s[i]||{},s=s[i])}}return t}const ot="v3",j=e=>typeof e=="number"&&!isNaN(e)&&e>=0,x=e=>{const{limit:t=30,userAttributes:n,query:r,model:s,apiKey:o,enrich:i,locale:u,apiVersion:y=ot,fields:S,omit:w,offset:l,cacheSeconds:g,staleCacheSeconds:h,sort:E,includeUnpublished:_,apiHost:pe}=e;if(!o)throw new Error("Missing API key");if(!["v3"].includes(y))throw new Error(`Invalid apiVersion: expected 'v3', received '${y}'`);const me=t!==1,Se=pe||"https://cdn.builder.io",a=new URL(`${Se}/api/${y}/content/${s}`);a.searchParams.set("apiKey",o),a.searchParams.set("limit",String(t)),a.searchParams.set("noTraverse",String(me)),a.searchParams.set("includeRefs",String(!0));const k=u||(n==null?void 0:n.locale);let b=n||{};if(k&&(a.searchParams.set("locale",k),b={locale:k,...b}),i&&a.searchParams.set("enrich",String(i)),a.searchParams.set("omit",w!=null?w:"meta.componentsUsed"),S&&a.searchParams.set("fields",S),Number.isFinite(l)&&l>-1&&a.searchParams.set("offset",String(Math.floor(l))),typeof _=="boolean"&&a.searchParams.set("includeUnpublished",String(_)),g&&j(g)&&a.searchParams.set("cacheSeconds",String(g)),h&&j(h)&&a.searchParams.set("staleCacheSeconds",String(h)),E){const f=T({sort:E});for(const I in f)a.searchParams.set(I,JSON.stringify(f[I]))}const L={...Te(),...G(e.options||{})};b={...b,...at(L)};const N=T(L);for(const f in N)a.searchParams.set(f,String(N[f]));if(Object.keys(b).length>0&&a.searchParams.set("userAttributes",JSON.stringify(b)),r){const f=de({query:r});for(const I in f)a.searchParams.set(I,JSON.stringify(f[I]))}return a},it=e=>{const t={};for(const n in e)n.startsWith("userAttributes.")&&(t[n]=e[n],delete e[n]);return t},at=e=>{if(c()&&e.preview==="BUILDER_STUDIO"){e["userAttributes.urlPath"]=window.location.pathname,e["userAttributes.host"]=window.location.host;const t=it(e),{userAttributes:n}=st(t);return n}return{}},ct=e=>"results"in e;async function fe(e){const t=await he({...e,limit:1});return t&&t[0]||null}const ut=async e=>{var i,u;const t=x(e),n=(i=e.fetch)!=null?i:rt,r={...e.fetchOptions,headers:{...(u=e.fetchOptions)==null?void 0:u.headers,...Q()}};return await(await n(t.href,r)).json()},ge=async(e,t,n=x(e))=>{const r=le(e.canTrack);if(n.search.includes("preview="),!r||!(c()||m==="reactNative"))return t.results;try{const s=[];for(const o of t.results)s.push(await qe({item:o,canTrack:r}));t.results=s}catch(s){d.error("Could not process A/B tests. ",s)}return t.results};async function he(e){const t=x(e),n=await ut(e);if(!ct(n))throw d.error("Error fetching data. ",{url:t,content:n,options:e}),n;return ge(e,n)}const lt=async e=>{var r,s,o;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((s=e.userAttributes)==null?void 0:s.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:O(e.searchParams||((o=e.url)==null?void 0:o.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await fe(n)}};exports.MSG_PREFIX=v;exports.TARGET=m;exports._processContentResult=ge;exports._track=re;exports.checkIsDefined=p;exports.createEditorListener=ie;exports.createRegisterComponentMessage=ve;exports.fetchBuilderProps=lt;exports.fetchEntries=he;exports.fetchOneEntry=fe;exports.getBuilderSearchParams=O;exports.getCookieSync=A;exports.getDefaultCanTrack=le;exports.getUserAttributes=J;exports.handleABTestingSync=Ze;exports.isBrowser=c;exports.isEditing=z;exports.isPreviewing=Ie;exports.logFetch=ne;exports.logger=d;exports.register=X;exports.registerInsertMenu=$e;exports.serializeIncludingFunctions=C;exports.setClientUserAttributes=et;exports.setEditorSettings=ke;exports.setupBrowserForEditing=oe;exports.subscribeToEditor=ze;exports.track=je;exports.userAttributesService=B;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-916c726c.cjs");exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-entry-ecee24b6.cjs");exports._processContentResult=e._processContentResult;exports.createRegisterComponentMessage=e.createRegisterComponentMessage;exports.fetchBuilderProps=e.fetchBuilderProps;exports.fetchEntries=e.fetchEntries;exports.fetchOneEntry=e.fetchOneEntry;exports.getBuilderSearchParams=e.getBuilderSearchParams;exports.isEditing=e.isEditing;exports.isPreviewing=e.isPreviewing;exports.register=e.register;exports.setEditorSettings=e.setEditorSettings;exports.subscribeToEditor=e.subscribeToEditor;exports.track=e.track;
@@ -1,4 +1,4 @@
1
- import { _processContentResult as r, createRegisterComponentMessage as s, fetchBuilderProps as i, fetchEntries as n, fetchOneEntry as o, getBuilderSearchParams as c, isEditing as g, isPreviewing as a, register as d, setEditorSettings as E, subscribeToEditor as f, track as h } from "./server-entry-f03c1146.js";
1
+ import { _processContentResult as r, createRegisterComponentMessage as s, fetchBuilderProps as i, fetchEntries as n, fetchOneEntry as o, getBuilderSearchParams as c, isEditing as g, isPreviewing as a, register as d, setEditorSettings as E, subscribeToEditor as f, track as h } from "./server-entry-1556528d.js";
2
2
  export {
3
3
  r as _processContentResult,
4
4
  s as createRegisterComponentMessage,
@@ -1,4 +1,4 @@
1
- import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX } from "./server-entry-f03c1146.js";
1
+ import { isEditing, isBrowser, getUserAttributes, TARGET, logger, MSG_PREFIX } from "./server-entry-1556528d.js";
2
2
  const getFunctionArguments = ({
3
3
  builder: e,
4
4
  context: t,
@@ -1,4 +1,4 @@
1
- "use strict";const serverEntry=require("./server-entry-916c726c.cjs"),getFunctionArguments=({builder:e,context:t,event:s,state:r})=>Object.entries({state:r,Builder:e,builder:e,context:t,event:s}),getBuilderGlobals=()=>({isEditing:serverEntry.isEditing(),isBrowser:serverEntry.isBrowser(),isServer:!serverEntry.isBrowser(),getUserAttributes:()=>serverEntry.getUserAttributes()}),parseCode=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e;function flattenState({rootState:e,localState:t,rootSetState:s}){return new Proxy(e,{get:(r,n)=>{if(t&&n in t)return t[n];const o=r[n];return typeof o=="object"&&o!==null?flattenState({rootState:o,localState:void 0,rootSetState:s?i=>{r[n]=i,s(r)}:void 0}):o},set:(r,n,o)=>{if(t&&n in t)throw new Error("Writing to local state is not allowed as it is read-only.");return r[n]=o,s==null||s(r),!0}})}const SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,fastClone=e=>JSON.parse(JSON.stringify(e)),set=(e,t,s)=>{if(Object(e)!==e)return e;const r=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return r.slice(0,-1).reduce((n,o,i)=>Object(n[o])===n[o]?n[o]:n[o]=Math.abs(Number(r[i+1]))>>0===+r[i+1]?[]:{},e)[r[r.length-1]]=s,e},noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(e){}const getSyncValName=e=>`bldr_${e}_sync`,BUILDER_SET_STATE_NAME="BUILDER_SET_STATE",INJECTED_IVM_GLOBAL="BUILDER_IVM",REF_TO_PROXY_FN=`
1
+ "use strict";const serverEntry=require("./server-entry-ecee24b6.cjs"),getFunctionArguments=({builder:e,context:t,event:s,state:r})=>Object.entries({state:r,Builder:e,builder:e,context:t,event:s}),getBuilderGlobals=()=>({isEditing:serverEntry.isEditing(),isBrowser:serverEntry.isBrowser(),isServer:!serverEntry.isBrowser(),getUserAttributes:()=>serverEntry.getUserAttributes()}),parseCode=(e,{isExpression:t=!0})=>t&&!(e.includes(";")||e.includes(" return ")||e.trim().startsWith("return "))?`return (${e});`:e;function flattenState({rootState:e,localState:t,rootSetState:s}){return new Proxy(e,{get:(r,n)=>{if(t&&n in t)return t[n];const o=r[n];return typeof o=="object"&&o!==null?flattenState({rootState:o,localState:void 0,rootSetState:s?i=>{r[n]=i,s(r)}:void 0}):o},set:(r,n,o)=>{if(t&&n in t)throw new Error("Writing to local state is not allowed as it is read-only.");return r[n]=o,s==null||s(r),!0}})}const SDK_NAME_FOR_TARGET=(()=>{switch(serverEntry.TARGET){case"rsc":return"react-nextjs";case"reactNative":return"react-native";default:return serverEntry.TARGET}})(),SDK_NAME=`@builder.io/sdk-${SDK_NAME_FOR_TARGET}`,fastClone=e=>JSON.parse(JSON.stringify(e)),set=(e,t,s)=>{if(Object(e)!==e)return e;const r=Array.isArray(t)?t:t.toString().match(/[^.[\]]+/g);return r.slice(0,-1).reduce((n,o,i)=>Object(n[o])===n[o]?n[o]:n[o]=Math.abs(Number(r[i+1]))>>0===+r[i+1]?[]:{},e)[r[r.length-1]]=s,e},noop=()=>{};let safeDynamicRequire=noop;try{safeDynamicRequire=eval("require")}catch(e){}const getSyncValName=e=>`bldr_${e}_sync`,BUILDER_SET_STATE_NAME="BUILDER_SET_STATE",INJECTED_IVM_GLOBAL="BUILDER_IVM",REF_TO_PROXY_FN=`
2
2
  var refToProxy = (obj) => {
3
3
  if (typeof obj !== 'object' || obj === null) {
4
4
  return obj;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./setIvm-3761bb10.cjs");require("./server-entry-916c726c.cjs");exports.setIvm=e.setIvm;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./setIvm-432010ba.cjs");require("./server-entry-ecee24b6.cjs");exports.setIvm=e.setIvm;
@@ -1,5 +1,5 @@
1
- import { setIvm as t } from "./setIvm-044ce9e7.js";
2
- import "./server-entry-f03c1146.js";
1
+ import { setIvm as t } from "./setIvm-15c96eda.js";
2
+ import "./server-entry-1556528d.js";
3
3
  export {
4
4
  t as setIvm
5
5
  };
@@ -1 +1 @@
1
- "use strict";const s=require("./server-entry-916c726c.cjs");function t(){var e;return typeof process!="undefined"&&s.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const c=({shouldLogWarning:e})=>{var o;if(!t())return!1;const n=process.arch==="arm64",r=process.version.startsWith("v20"),i=(o=process.env.NODE_OPTIONS)==null?void 0:o.includes("--no-node-snapshot");return n&&r&&!i?(e&&s.logger.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};exports.shouldForceBrowserRuntimeInNode=c;
1
+ "use strict";const s=require("./server-entry-ecee24b6.cjs");function t(){var e;return typeof process!="undefined"&&s.checkIsDefined((e=process==null?void 0:process.versions)==null?void 0:e.node)}const c=({shouldLogWarning:e})=>{var o;if(!t())return!1;const n=process.arch==="arm64",r=process.version.startsWith("v20"),i=(o=process.env.NODE_OPTIONS)==null?void 0:o.includes("--no-node-snapshot");return n&&r&&!i?(e&&s.logger.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};exports.shouldForceBrowserRuntimeInNode=c;
@@ -1,4 +1,4 @@
1
- import { checkIsDefined as i, logger as t } from "./server-entry-f03c1146.js";
1
+ import { checkIsDefined as i, logger as t } from "./server-entry-1556528d.js";
2
2
  function a() {
3
3
  var o;
4
4
  return typeof process != "undefined" && i((o = process == null ? void 0 : process.versions) == null ? void 0 : o.node);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@builder.io/sdk-react",
3
3
  "description": "Builder.io SDK for React",
4
- "version": "4.0.9",
4
+ "version": "4.1.0",
5
5
  "homepage": "https://github.com/BuilderIO/builder/tree/main/packages/sdks/output/react",
6
6
  "type": "module",
7
7
  "repository": {
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "4.0.9";
1
+ export declare const SDK_VERSION = "4.1.0";
@@ -0,0 +1 @@
1
+ export declare function noSerializeWrapper(fn: () => void): () => void;
@@ -5,13 +5,17 @@ export declare const USER_ATTRIBUTES_COOKIE_NAME = "builder.userAttributes";
5
5
  export declare function createUserAttributesService(): {
6
6
  setUserAttributes(newAttrs: UserAttributes): void;
7
7
  getUserAttributes(): any;
8
- subscribeOnUserAttributesChange(callback: (attrs: UserAttributes) => void): () => void;
8
+ subscribeOnUserAttributesChange(callback: (attrs: UserAttributes) => void, { fireImmediately }?: {
9
+ fireImmediately?: boolean;
10
+ }): () => void;
9
11
  setCanTrack(value: boolean): void;
10
12
  };
11
13
  export declare const userAttributesService: {
12
14
  setUserAttributes(newAttrs: UserAttributes): void;
13
15
  getUserAttributes(): any;
14
- subscribeOnUserAttributesChange(callback: (attrs: UserAttributes) => void): () => void;
16
+ subscribeOnUserAttributesChange(callback: (attrs: UserAttributes) => void, { fireImmediately }?: {
17
+ fireImmediately?: boolean;
18
+ }): () => void;
15
19
  setCanTrack(value: boolean): void;
16
20
  };
17
21
  export declare const setClientUserAttributes: (attributes: UserAttributes) => void;
@@ -1,2 +0,0 @@
1
- "use strict";const y="react",E="[Builder.io]: ",d={log:(...e)=>console.log(E,...e),error:(...e)=>console.error(E,...e),warn:(...e)=>console.warn(E,...e),debug:(...e)=>console.debug(E,...e)};function c(){return typeof window!="undefined"&&typeof document!="undefined"}const me=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},j=e=>e instanceof URLSearchParams?me(e):e,W=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function be(){return c()&&window.self!==window.top}function $(e){return be()&&W(e||window.location.search).indexOf("builder.frameEditing=")!==-1}const ye=()=>{if(c()){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},Se=()=>typeof navigator=="object"&&navigator.userAgent||"",G=()=>{const e=Se(),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()||y==="reactNative"}},n=e.match(/Tablet|iPad/i),r=ye();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"}},p=e=>e!=null;function we(e){const t=e||(c()?window.location.search:void 0);return t?W(t).indexOf("builder.preview=")!==-1:!1}const ve=e=>({type:"builder.registerComponent",data:C(e)}),ke=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 C(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?ke(n):n))}const F={};function J(e,t){e==="plugin"&&(t=C(t));let n=F[e];if(n||(n=F[e]=[]),n.push(t),c()){const r={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(r,"*"),parent!==window&&window.postMessage(r,"*")}catch(s){console.debug("Could not postmessage",s)}}}const V={};function Ee(e){if(c()){Object.assign(V,e);const t={type:"builder.settingsChange",data:V};parent.postMessage(t,"*")}}const D="builder.",Ie="options.",P=e=>{if(!e)return{};const t=j(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(D)){const s=r.replace(D,"").replace(Ie,"");n[s]=t[r]}}),n},Ae=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return P(e)},z="4.0.9",X=()=>({"X-Builder-SDK":y,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":z}),Oe=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},I=({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){d.warn("[COOKIE] GET error: ",(r==null?void 0:r.message)||r);return}},H=async e=>I(e),Ce=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),Pe=[["secure",""],["SameSite","None"]],Ue=({name:e,value:t,expires:n})=>{const s=(c()?location.protocol==="https:":!0)?Pe:[[]],o=n?[["expires",n.toUTCString()]]:[[]],i=[[e,t],...o,["path","/"],["domain",Oe(window.location.hostname)],...s];return Ce(i)},U=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const s=Ue({name:e,value:t,expires:n});document.cookie=s}catch(s){d.warn("[COOKIE] SET error: ",(s==null?void 0:s.message)||s)}};function Te(){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 Q(){return Te().replace(/-/g,"")}const Y="builderSessionId",Be=async({canTrack:e})=>{if(!e)return;const t=await H({name:Y,canTrack:e});if(p(t))return t;{const n=xe();return Re({id:n,canTrack:e}),n}},xe=()=>Q(),Re=({id:e,canTrack:t})=>U({name:Y,value:e,canTrack:t}),Z=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Le=({key:e,canTrack:t})=>{var n;try{return t?(n=Z())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Ne=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=Z())==null||r.setItem(e,n))}catch(s){console.debug("[LocalStorage] SET error: ",s)}},q="builderVisitorId",Fe=({canTrack:e})=>{if(!e)return;const t=Le({key:q,canTrack:e});if(p(t))return t;{const n=Ve();return De({id:n,canTrack:e}),n}},Ve=()=>Q(),De=({id:e,canTrack:t})=>Ne({key:q,value:e,canTrack:t});function ee(e){var t;typeof process!="undefined"&&((t=process.env)!=null&&t.DEBUG)&&String(process.env.DEBUG)=="true"&&d.log(e)}const Me=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Be({canTrack:e}),n=Fe({canTrack:e});return{sessionId:t,visitorId:n}},Ke=async({type:e,canTrack:t,apiKey:n,metadata:r,...s})=>({type:e,data:{...s,metadata:{url:location.href,...r},...await Me({canTrack:t}),userAttributes:G(),ownerId:n}});async function te({apiHost:e,...t}){if(!t.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(!t.canTrack||$()||!(c()||y==="reactNative"))return;const r=`${e||"https://cdn.builder.io"}/api/v1/track`;return ee(r),fetch(r,{method:"POST",body:JSON.stringify({events:[await Ke(t)]}),headers:{"content-type":"application/json",...X()},mode:"cors"}).catch(s=>{console.error("Failed to track: ",s)})}const _e=e=>te({...e,canTrack:!0}),je=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function ne(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||je).findIndex(s=>s.startsWith("*.")?r.endsWith(s.slice(1)):s===r)>-1}const We=()=>{J("insertMenu",{name:"_default",default:!0,items:[{name:"Box"},{name:"Text"},{name:"Image"},{name:"Columns"},{name:"Core:Section"},{name:"Core:Button"},{name:"Embed"},{name:"Custom Code"}]})};let M=!1;const re=e=>{var t,n;M||(M=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:y,version:z,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 o,i;if(!ne(e.trustedHosts,r))return;const{data:s}=r;if(s!=null&&s.type)switch(s.type){case"builder.evaluate":{const u=s.data.text,S=s.data.arguments||[],m=s.data.id,w=new Function(u);let l,g=null;try{l=w.apply(null,S)}catch(h){g=h}g?(o=window.parent)==null||o.postMessage({type:"builder.evaluateError",data:{id:m,error:g.message}},"*"):l&&typeof l.then=="function"?l.then(h=>{var v;(v=window.parent)==null||v.postMessage({type:"builder.evaluateResult",data:{id:m,result:h}},"*")}).catch(console.error):(i=window.parent)==null||i.postMessage({type:"builder.evaluateResult",data:{result:l,id:m}},"*");break}}})))},se=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!ne(t,r))return;const{data:s}=r;if(s)switch(s.type){case"builder.configureSdk":{n.configureSdk(s.data);break}case"builder.triggerAnimation":{n.animation(s.data);break}case"builder.resetState":{const o=s.data,i=o.model,u=o==null?void 0:o.state;i===e&&u&&n.stateUpdate(u);break}case"builder.contentUpdate":{const o=s.data,i=o.key||o.alias||o.entry||o.modelName,u=o.data;i===e&&n.contentUpdate(u);break}}},$e=({model:e,apiKey:t,callback:n,trustedHosts:r})=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};re({modelName:e,apiKey:t});const s=se({callbacks:{contentUpdate:n,animation:()=>{},configureSdk:()=>{},stateUpdate:()=>{}},model:e,trustedHosts:r});return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},Ge="builder.tests",T=e=>`${Ge}.${e}`,Je=({contentId:e})=>H({name:T(e),canTrack:!0}),ze=({contentId:e})=>I({name:T(e),canTrack:!0}),Xe=({contentId:e,value:t})=>U({name:T(e),value:t,canTrack:!0}),oe=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,He=({id:e,variations:t})=>{var s;let n=0;const r=Math.random();for(const o in t){const i=(s=t[o])==null?void 0:s.testRatio;if(n+=i,r<n)return o}return e},ie=e=>{const t=He(e);return Xe({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},ae=({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":"")}},Qe=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!oe(e))return e;const n=ze({contentId:e.id})||ie({variations:e.variations,id:e.id}),r=ae({item:e,testGroupId:n});return{...e,...r}},Ye=async({item:e,canTrack:t})=>{if(!t||!oe(e))return e;const r=await Je({contentId:e.id})||ie({variations:e.variations,id:e.id}),s=ae({item:e,testGroupId:r});return{...e,...s}},K="builder.userAttributes";function Ze(){let e=!0;const t=new Set;return{setUserAttributes(n){if(!c())return;const r={...this.getUserAttributes(),...n};U({name:K,value:JSON.stringify(r),canTrack:e}),t.forEach(s=>s(r))},getUserAttributes(){return c()?JSON.parse(I({name:K,canTrack:e})||"{}"):{}},subscribeOnUserAttributesChange(n){return t.add(n),()=>{t.delete(n)}},setCanTrack(n){e=n}}}const B=Ze(),qe=e=>{B.setUserAttributes(e)},ce=e=>{const t=p(e)?e:!0;return B.setCanTrack(t),t};function et(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function tt(){const e=et().fetch;if(typeof e=="undefined")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
2
- 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 nt=tt();function O(e,t=null,n="."){return Object.keys(e).reduce((r,s)=>{const o=e[s],i=[t,s].filter(Boolean).join(n);return[typeof o=="object",o!==null,!(Array.isArray(o)&&o.length===0)].every(Boolean)?{...r,...O(o,i,n)}:{...r,[i]:o}},{})}function ue(e,t,n={}){for(const r in e){const s=e[r],o=t?t+"."+r:r;s&&typeof s=="object"&&!Array.isArray(s)&&!Object.keys(s).find(i=>i.startsWith("$"))?ue(s,o,n):n[o]=s}return n}function rt(e){const t={};for(const n in e){const r=n.split(".");let s=t;for(let o=0;o<r.length;o++){const i=r[o];o===r.length-1?s[i]=e[n]:(s[i]=s[i]||{},s=s[i])}}return t}const st="v3",_=e=>typeof e=="number"&&!isNaN(e)&&e>=0,x=e=>{const{limit:t=30,userAttributes:n,query:r,model:s,apiKey:o,enrich:i,locale:u,apiVersion:S=st,fields:m,omit:w,offset:l,cacheSeconds:g,staleCacheSeconds:h,sort:v,includeUnpublished:R,apiHost:ge}=e;if(!o)throw new Error("Missing API key");if(!["v3"].includes(S))throw new Error(`Invalid apiVersion: expected 'v3', received '${S}'`);const he=t!==1,pe=ge||"https://cdn.builder.io",a=new URL(`${pe}/api/${S}/content/${s}`);a.searchParams.set("apiKey",o),a.searchParams.set("limit",String(t)),a.searchParams.set("noTraverse",String(he)),a.searchParams.set("includeRefs",String(!0));const A=u||(n==null?void 0:n.locale);let b=n||{};if(A&&(a.searchParams.set("locale",A),b={locale:A,...b}),i&&a.searchParams.set("enrich",String(i)),a.searchParams.set("omit",w!=null?w:"meta.componentsUsed"),m&&a.searchParams.set("fields",m),Number.isFinite(l)&&l>-1&&a.searchParams.set("offset",String(Math.floor(l))),typeof R=="boolean"&&a.searchParams.set("includeUnpublished",String(R)),g&&_(g)&&a.searchParams.set("cacheSeconds",String(g)),h&&_(h)&&a.searchParams.set("staleCacheSeconds",String(h)),v){const f=O({sort:v});for(const k in f)a.searchParams.set(k,JSON.stringify(f[k]))}const L={...Ae(),...j(e.options||{})};b={...b,...it(L)};const N=O(L);for(const f in N)a.searchParams.set(f,String(N[f]));if(Object.keys(b).length>0&&a.searchParams.set("userAttributes",JSON.stringify(b)),r){const f=ue({query:r});for(const k in f)a.searchParams.set(k,JSON.stringify(f[k]))}return a},ot=e=>{const t={};for(const n in e)n.startsWith("userAttributes.")&&(t[n]=e[n],delete e[n]);return t},it=e=>{if(c()&&e.preview==="BUILDER_STUDIO"){e["userAttributes.urlPath"]=window.location.pathname,e["userAttributes.host"]=window.location.host;const t=ot(e),{userAttributes:n}=rt(t);return n}return{}},at=e=>"results"in e;async function le(e){const t=await fe({...e,limit:1});return t&&t[0]||null}const ct=async e=>{var i,u;const t=x(e),n=(i=e.fetch)!=null?i:nt,r={...e.fetchOptions,headers:{...(u=e.fetchOptions)==null?void 0:u.headers,...X()}};return await(await n(t.href,r)).json()},de=async(e,t,n=x(e))=>{const r=ce(e.canTrack);if(n.search.includes("preview="),!r||!(c()||y==="reactNative"))return t.results;try{const s=[];for(const o of t.results)s.push(await Ye({item:o,canTrack:r}));t.results=s}catch(s){d.error("Could not process A/B tests. ",s)}return t.results};async function fe(e){const t=x(e),n=await ct(e);if(!at(n))throw d.error("Error fetching data. ",{url:t,content:n,options:e}),n;return de(e,n)}const ut=async e=>{var r,s,o;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((s=e.userAttributes)==null?void 0:s.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:P(e.searchParams||((o=e.url)==null?void 0:o.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await le(n)}};exports.TARGET=y;exports._processContentResult=de;exports._track=te;exports.checkIsDefined=p;exports.createEditorListener=se;exports.createRegisterComponentMessage=ve;exports.fetchBuilderProps=ut;exports.fetchEntries=fe;exports.fetchOneEntry=le;exports.getBuilderSearchParams=P;exports.getCookieSync=I;exports.getDefaultCanTrack=ce;exports.getUserAttributes=G;exports.handleABTestingSync=Qe;exports.isBrowser=c;exports.isEditing=$;exports.isPreviewing=we;exports.logFetch=ee;exports.logger=d;exports.register=J;exports.registerInsertMenu=We;exports.serializeIncludingFunctions=C;exports.setClientUserAttributes=qe;exports.setEditorSettings=Ee;exports.setupBrowserForEditing=re;exports.subscribeToEditor=$e;exports.track=_e;exports.userAttributesService=B;
@@ -1,166 +0,0 @@
1
- import { jsxs as k, Fragment as A, jsx as m } from "react/jsx-runtime";
2
- import { useRef as j, useState as h } from "react";
3
- import { Blocks as g, set as J, get as O } from "./blocks-cd1feef2.js";
4
- import { isEditing as U, logFetch as R } from "./server-entry-8dc3478a.js";
5
- import "./blocks-exports.mjs";
6
- import "./get-class-prop-name-5edacc3b.js";
7
- import "./dynamic-renderer-8b343325.js";
8
- const $ = ["production", "qa", "test", "development", "dev", "cdn-qa", "cloud", "fast", "cdn2", "cdn-prod"], q = () => {
9
- const e = process.env.NODE_ENV || "production";
10
- return $.includes(e) ? e : "production";
11
- };
12
- function _(e) {
13
- const r = j(null), [T, b] = h(() => "unsubmitted"), [v, y] = h(() => null), [L, F] = h(() => "");
14
- function N(s) {
15
- var u, l;
16
- const c = {
17
- ...e.builderContext.rootState,
18
- ...s
19
- };
20
- e.builderContext.rootSetState ? (l = (u = e.builderContext).rootSetState) == null || l.call(u, c) : e.builderContext.rootState = c;
21
- }
22
- function f() {
23
- return U() && e.previewState || T;
24
- }
25
- function w(s) {
26
- var u;
27
- const c = e.sendWithJs || e.sendSubmissionsTo === "email";
28
- if (e.sendSubmissionsTo === "zapier")
29
- s.preventDefault();
30
- else if (c) {
31
- if (!(e.action || e.sendSubmissionsTo === "email")) {
32
- s.preventDefault();
33
- return;
34
- }
35
- s.preventDefault();
36
- const l = s.currentTarget || s.target, S = e.customHeaders || {};
37
- let d;
38
- const D = new FormData(l), E = Array.from(l.querySelectorAll("input,select,textarea")).filter((t) => !!t.name).map((t) => {
39
- let n;
40
- const o = t.name;
41
- if (t instanceof HTMLInputElement)
42
- if (t.type === "radio") {
43
- if (t.checked)
44
- return n = t.name, {
45
- key: o,
46
- value: n
47
- };
48
- } else if (t.type === "checkbox")
49
- n = t.checked;
50
- else if (t.type === "number" || t.type === "range") {
51
- const i = t.valueAsNumber;
52
- isNaN(i) || (n = i);
53
- } else
54
- t.type === "file" ? n = t.files : n = t.value;
55
- else
56
- n = t.value;
57
- return {
58
- key: o,
59
- value: n
60
- };
61
- });
62
- let a = e.contentType;
63
- if (e.sendSubmissionsTo === "email" && (a = "multipart/form-data"), Array.from(E).forEach(({ value: t }) => {
64
- (t instanceof File || Array.isArray(t) && t[0] instanceof File || t instanceof FileList) && (a = "multipart/form-data");
65
- }), a !== "application/json")
66
- d = D;
67
- else {
68
- const t = {};
69
- Array.from(E).forEach(({ value: n, key: o }) => {
70
- J(t, o, n);
71
- }), d = JSON.stringify(t);
72
- }
73
- a && a !== "multipart/form-data" && (c && ((u = e.action) != null && u.includes("zapier.com")) || (S["content-type"] = a));
74
- const x = new CustomEvent("presubmit", { detail: { body: d } });
75
- if (r.current && (r.current.dispatchEvent(x), x.defaultPrevented))
76
- return;
77
- b("sending");
78
- const P = `${q() === "dev" ? "http://localhost:5000" : "https://builder.io"}/api/v1/form-submit?apiKey=${e.builderContext.apiKey}&to=${btoa(
79
- e.sendSubmissionsToEmail || ""
80
- )}&name=${encodeURIComponent(e.name || "")}`, C = e.sendSubmissionsTo === "email" ? P : e.action;
81
- R(C), fetch(C, { body: d, headers: S, method: e.method || "post" }).then(
82
- async (t) => {
83
- let n;
84
- const o = t.headers.get("content-type");
85
- if (o && o.indexOf("application/json") !== -1 ? n = await t.json() : n = await t.text(), !t.ok && e.errorMessagePath) {
86
- let i = O(n, e.errorMessagePath);
87
- i && (typeof i != "string" && (i = JSON.stringify(i)), F(i), N({ formErrorMessage: i }));
88
- }
89
- if (y(n), b(t.ok ? "success" : "error"), t.ok) {
90
- const i = new CustomEvent("submit:success", {
91
- detail: { res: t, body: n }
92
- });
93
- if (r.current) {
94
- if (r.current.dispatchEvent(i), i.defaultPrevented)
95
- return;
96
- e.resetFormOnSubmit !== !1 && r.current.reset();
97
- }
98
- if (e.successUrl)
99
- if (r.current) {
100
- const M = new CustomEvent("route", {
101
- detail: { url: e.successUrl }
102
- });
103
- r.current.dispatchEvent(M), M.defaultPrevented || (location.href = e.successUrl);
104
- } else
105
- location.href = e.successUrl;
106
- }
107
- },
108
- (t) => {
109
- const n = new CustomEvent("submit:error", {
110
- detail: { error: t }
111
- });
112
- r.current && (r.current.dispatchEvent(n), n.defaultPrevented) || (y(t), b("error"));
113
- }
114
- );
115
- }
116
- }
117
- return /* @__PURE__ */ k(A, { children: [
118
- " ",
119
- /* @__PURE__ */ m("style", { children: ".pre-7acc3b46 { padding: 10px; color: red; text-align: center; }" }),
120
- " ",
121
- /* @__PURE__ */ k(
122
- "form",
123
- {
124
- validate: e.validate,
125
- ref: r,
126
- action: !e.sendWithJs && e.action,
127
- method: e.method,
128
- name: e.name,
129
- onSubmit: (s) => w(s),
130
- ...e.attributes,
131
- children: [
132
- e.children,
133
- f() === "error" ? /* @__PURE__ */ m(
134
- g,
135
- {
136
- path: "errorMessage",
137
- blocks: e.errorMessage,
138
- context: e.builderContext
139
- }
140
- ) : null,
141
- f() === "sending" ? /* @__PURE__ */ m(
142
- g,
143
- {
144
- path: "sendingMessage",
145
- blocks: e.sendingMessage,
146
- context: e.builderContext
147
- }
148
- ) : null,
149
- f() === "error" && v ? /* @__PURE__ */ m("pre", { className: "builder-form-error-text pre-7acc3b46", children: JSON.stringify(v, null, 2) }) : null,
150
- f() === "success" ? /* @__PURE__ */ m(
151
- g,
152
- {
153
- path: "successMessage",
154
- blocks: e.successMessage,
155
- context: e.builderContext
156
- }
157
- ) : null
158
- ]
159
- }
160
- ),
161
- " "
162
- ] });
163
- }
164
- export {
165
- _ as default
166
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),h=require("react"),f=require("./blocks-eb6fa21f.cjs"),j=require("./server-entry-9d269960.cjs");require("./blocks-exports.cjs");require("./get-class-prop-name-c479656a.cjs");require("./dynamic-renderer-b29b45ca.cjs");const P=["production","qa","test","development","dev","cdn-qa","cloud","fast","cdn2","cdn-prod"],D=()=>{const e=process.env.NODE_ENV||"production";return P.includes(e)?e:"production"};function A(e){const s=h.useRef(null),[M,g]=h.useState(()=>"unsubmitted"),[y,S]=h.useState(()=>null),[O,T]=h.useState(()=>"");function q(i){var l,d;const u={...e.builderContext.rootState,...i};e.builderContext.rootSetState?(d=(l=e.builderContext).rootSetState)==null||d.call(l,u):e.builderContext.rootState=u}function m(){return j.isEditing()&&e.previewState||M}function F(i){var l;const u=e.sendWithJs||e.sendSubmissionsTo==="email";if(e.sendSubmissionsTo==="zapier")i.preventDefault();else if(u){if(!(e.action||e.sendSubmissionsTo==="email")){i.preventDefault();return}i.preventDefault();const d=i.currentTarget||i.target,v=e.customHeaders||{};let b;const N=new FormData(d),x=Array.from(d.querySelectorAll("input,select,textarea")).filter(t=>!!t.name).map(t=>{let n;const a=t.name;if(t instanceof HTMLInputElement)if(t.type==="radio"){if(t.checked)return n=t.name,{key:a,value:n}}else if(t.type==="checkbox")n=t.checked;else if(t.type==="number"||t.type==="range"){const r=t.valueAsNumber;isNaN(r)||(n=r)}else t.type==="file"?n=t.files:n=t.value;else n=t.value;return{key:a,value:n}});let c=e.contentType;if(e.sendSubmissionsTo==="email"&&(c="multipart/form-data"),Array.from(x).forEach(({value:t})=>{(t instanceof File||Array.isArray(t)&&t[0]instanceof File||t instanceof FileList)&&(c="multipart/form-data")}),c!=="application/json")b=N;else{const t={};Array.from(x).forEach(({value:n,key:a})=>{f.set(t,a,n)}),b=JSON.stringify(t)}c&&c!=="multipart/form-data"&&(u&&((l=e.action)!=null&&l.includes("zapier.com"))||(v["content-type"]=c));const E=new CustomEvent("presubmit",{detail:{body:b}});if(s.current&&(s.current.dispatchEvent(E),E.defaultPrevented))return;g("sending");const w=`${D()==="dev"?"http://localhost:5000":"https://builder.io"}/api/v1/form-submit?apiKey=${e.builderContext.apiKey}&to=${btoa(e.sendSubmissionsToEmail||"")}&name=${encodeURIComponent(e.name||"")}`,C=e.sendSubmissionsTo==="email"?w:e.action;j.logFetch(C),fetch(C,{body:b,headers:v,method:e.method||"post"}).then(async t=>{let n;const a=t.headers.get("content-type");if(a&&a.indexOf("application/json")!==-1?n=await t.json():n=await t.text(),!t.ok&&e.errorMessagePath){let r=f.get(n,e.errorMessagePath);r&&(typeof r!="string"&&(r=JSON.stringify(r)),T(r),q({formErrorMessage:r}))}if(S(n),g(t.ok?"success":"error"),t.ok){const r=new CustomEvent("submit:success",{detail:{res:t,body:n}});if(s.current){if(s.current.dispatchEvent(r),r.defaultPrevented)return;e.resetFormOnSubmit!==!1&&s.current.reset()}if(e.successUrl)if(s.current){const k=new CustomEvent("route",{detail:{url:e.successUrl}});s.current.dispatchEvent(k),k.defaultPrevented||(location.href=e.successUrl)}else location.href=e.successUrl}},t=>{const n=new CustomEvent("submit:error",{detail:{error:t}});s.current&&(s.current.dispatchEvent(n),n.defaultPrevented)||(S(t),g("error"))})}}return o.jsxs(o.Fragment,{children:[" ",o.jsx("style",{children:".pre-7acc3b46 { padding: 10px; color: red; text-align: center; }"})," ",o.jsxs("form",{validate:e.validate,ref:s,action:!e.sendWithJs&&e.action,method:e.method,name:e.name,onSubmit:i=>F(i),...e.attributes,children:[e.children,m()==="error"?o.jsx(f.Blocks,{path:"errorMessage",blocks:e.errorMessage,context:e.builderContext}):null,m()==="sending"?o.jsx(f.Blocks,{path:"sendingMessage",blocks:e.sendingMessage,context:e.builderContext}):null,m()==="error"&&y?o.jsx("pre",{className:"builder-form-error-text pre-7acc3b46",children:JSON.stringify(y,null,2)}):null,m()==="success"?o.jsx(f.Blocks,{path:"successMessage",blocks:e.successMessage,context:e.builderContext}):null]})," "]})}exports.default=A;
@@ -1,17 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),b=require("react");function g(e){return e.replace(/http(s)?:/,"")}function x(e="",i,t){const n=new RegExp("([?&])"+i+"=.*?(&|$)","i"),a=e.indexOf("?")!==-1?"&":"?";return e.match(n)?e.replace(n,"$1"+i+"="+encodeURIComponent(t)+"$2"):e+a+i+"="+encodeURIComponent(t)}function y(e,i){if(!e||!(e!=null&&e.match(/cdn\.shopify\.com/))||!i)return e;if(i==="master")return g(e);const t=e.match(/(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i);if(t){const n=e.split(t[0]),a=t[3],r=i.match("x")?i:`${i}x`;return g(`${n[0]}_${r}${a}`)}return null}function d(e){if(!e)return e;const i=[100,200,400,800,1200,1600,2e3];if(e.match(/builder\.io/)){let t=e;const n=Number(e.split("?width=")[1]);return isNaN(n)||(t=`${t} ${n}w`),i.filter(a=>a!==n).map(a=>`${x(e,"width",a)} ${a}w`).concat([t]).join(", ")}return e.match(/cdn\.shopify\.com/)?i.map(t=>[y(e,`${t}x${t}`),t]).filter(([t])=>!!t).map(([t,n])=>`${t} ${n}w`).concat([e]).join(", "):e}function j(e){var a,r,s,u,m,f;function i(){var h;const o=e.image||e.src;if(!o||!(typeof o=="string"&&(o.match(/builder\.io/)||o.match(/cdn\.shopify\.com/))))return e.srcset;if(!e.noWebp){if(e.srcset&&((h=e.image)!=null&&h.includes("builder.io/api/v1/image"))){if(!e.srcset.includes(e.image.split("?")[0]))return console.debug("Removed given srcset"),d(o)}else if(e.image&&!e.srcset)return d(o);return d(o)}}function t(){var l;return(l=i==null?void 0:i())!=null&&l.match(/builder\.io/)&&!e.noWebp?i().replace(/\?/g,"?format=webp&"):""}function n(){const l={position:"absolute",height:"100%",width:"100%",left:"0px",top:"0px"};return e.aspectRatio?l:void 0}return b.useEffect(()=>{},[]),c.jsxs(c.Fragment,{children:[c.jsx("style",{children:`.img-3cc22d08 {
2
- opacity: 1;
3
- transition: opacity 0.2s ease-in-out;
4
- }.div-3cc22d08 {
5
- width: 100%;
6
- pointer-events: none;
7
- font-size: 0;
8
- }.div-3cc22d08-2 {
9
- display: flex;
10
- flex-direction: column;
11
- align-items: stretch;
12
- position: absolute;
13
- top: 0;
14
- left: 0;
15
- width: 100%;
16
- height: 100%;
17
- }`}),c.jsxs(c.Fragment,{children:[c.jsxs("picture",{children:[t()?c.jsx("source",{type:"image/webp",srcSet:t()}):null,c.jsx("img",{loading:e.highPriority?"eager":"lazy",fetchPriority:e.highPriority?"high":"auto",alt:e.altText,title:e.title,role:e.altText?void 0:"presentation",style:{objectPosition:e.backgroundPosition||"center",objectFit:e.backgroundSize||"cover",...n()},className:"builder-image"+(e.className?" "+e.className:"")+" img-3cc22d08",src:e.image,srcSet:i(),sizes:e.sizes})]}),e.aspectRatio&&!((r=(a=e.builderBlock)==null?void 0:a.children)!=null&&r.length&&e.fitContent)?c.jsx("div",{className:"builder-image-sizer div-3cc22d08",style:{paddingTop:e.aspectRatio*100+"%"}}):null,(u=(s=e.builderBlock)==null?void 0:s.children)!=null&&u.length&&e.fitContent?c.jsx(c.Fragment,{children:e.children}):null,!e.fitContent&&((f=(m=e.builderBlock)==null?void 0:m.children)!=null&&f.length)?c.jsx("div",{className:"div-3cc22d08-2",children:e.children}):null]})]})}exports.default=j;
@@ -1,123 +0,0 @@
1
- import { jsxs as d, Fragment as m, jsx as o } from "react/jsx-runtime";
2
- import { useEffect as y } from "react";
3
- function x(e) {
4
- return e.replace(/http(s)?:/, "");
5
- }
6
- function v(e = "", i, t) {
7
- const n = new RegExp("([?&])" + i + "=.*?(&|$)", "i"), c = e.indexOf("?") !== -1 ? "&" : "?";
8
- return e.match(n) ? e.replace(n, "$1" + i + "=" + encodeURIComponent(t) + "$2") : e + c + i + "=" + encodeURIComponent(t);
9
- }
10
- function $(e, i) {
11
- if (!e || !(e != null && e.match(/cdn\.shopify\.com/)) || !i)
12
- return e;
13
- if (i === "master")
14
- return x(e);
15
- const t = e.match(/(_\d+x(\d+)?)?(\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?)/i);
16
- if (t) {
17
- const n = e.split(t[0]), c = t[3], r = i.match("x") ? i : `${i}x`;
18
- return x(`${n[0]}_${r}${c}`);
19
- }
20
- return null;
21
- }
22
- function f(e) {
23
- if (!e)
24
- return e;
25
- const i = [100, 200, 400, 800, 1200, 1600, 2e3];
26
- if (e.match(/builder\.io/)) {
27
- let t = e;
28
- const n = Number(e.split("?width=")[1]);
29
- return isNaN(n) || (t = `${t} ${n}w`), i.filter((c) => c !== n).map((c) => `${v(e, "width", c)} ${c}w`).concat([t]).join(", ");
30
- }
31
- return e.match(/cdn\.shopify\.com/) ? i.map((t) => [$(e, `${t}x${t}`), t]).filter(([t]) => !!t).map(([t, n]) => `${t} ${n}w`).concat([e]).join(", ") : e;
32
- }
33
- function R(e) {
34
- var c, r, u, h, s, g;
35
- function i() {
36
- var b;
37
- const a = e.image || e.src;
38
- if (!a || // We can auto add srcset for cdn.builder.io and shopify
39
- // images, otherwise you can supply this prop manually
40
- !(typeof a == "string" && (a.match(/builder\.io/) || a.match(/cdn\.shopify\.com/))))
41
- return e.srcset;
42
- if (!e.noWebp) {
43
- if (e.srcset && ((b = e.image) != null && b.includes("builder.io/api/v1/image"))) {
44
- if (!e.srcset.includes(e.image.split("?")[0]))
45
- return console.debug("Removed given srcset"), f(a);
46
- } else if (e.image && !e.srcset)
47
- return f(a);
48
- return f(a);
49
- }
50
- }
51
- function t() {
52
- var l;
53
- return (l = i == null ? void 0 : i()) != null && l.match(/builder\.io/) && !e.noWebp ? i().replace(/\?/g, "?format=webp&") : "";
54
- }
55
- function n() {
56
- const l = {
57
- position: "absolute",
58
- height: "100%",
59
- width: "100%",
60
- left: "0px",
61
- top: "0px"
62
- };
63
- return e.aspectRatio ? l : void 0;
64
- }
65
- return y(() => {
66
- }, []), /* @__PURE__ */ d(m, { children: [
67
- /* @__PURE__ */ o("style", { children: `.img-3cc22d08 {
68
- opacity: 1;
69
- transition: opacity 0.2s ease-in-out;
70
- }.div-3cc22d08 {
71
- width: 100%;
72
- pointer-events: none;
73
- font-size: 0;
74
- }.div-3cc22d08-2 {
75
- display: flex;
76
- flex-direction: column;
77
- align-items: stretch;
78
- position: absolute;
79
- top: 0;
80
- left: 0;
81
- width: 100%;
82
- height: 100%;
83
- }` }),
84
- /* @__PURE__ */ d(m, { children: [
85
- /* @__PURE__ */ d("picture", { children: [
86
- t() ? /* @__PURE__ */ o("source", { type: "image/webp", srcSet: t() }) : null,
87
- /* @__PURE__ */ o(
88
- "img",
89
- {
90
- loading: e.highPriority ? "eager" : "lazy",
91
- fetchPriority: e.highPriority ? "high" : "auto",
92
- alt: e.altText,
93
- title: e.title,
94
- role: e.altText ? void 0 : "presentation",
95
- style: {
96
- objectPosition: e.backgroundPosition || "center",
97
- objectFit: e.backgroundSize || "cover",
98
- ...n()
99
- },
100
- className: "builder-image" + (e.className ? " " + e.className : "") + " img-3cc22d08",
101
- src: e.image,
102
- srcSet: i(),
103
- sizes: e.sizes
104
- }
105
- )
106
- ] }),
107
- e.aspectRatio && !((r = (c = e.builderBlock) == null ? void 0 : c.children) != null && r.length && e.fitContent) ? /* @__PURE__ */ o(
108
- "div",
109
- {
110
- className: "builder-image-sizer div-3cc22d08",
111
- style: {
112
- paddingTop: e.aspectRatio * 100 + "%"
113
- }
114
- }
115
- ) : null,
116
- (h = (u = e.builderBlock) == null ? void 0 : u.children) != null && h.length && e.fitContent ? /* @__PURE__ */ o(m, { children: e.children }) : null,
117
- !e.fitContent && ((g = (s = e.builderBlock) == null ? void 0 : s.children) != null && g.length) ? /* @__PURE__ */ o("div", { className: "div-3cc22d08-2", children: e.children }) : null
118
- ] })
119
- ] });
120
- }
121
- export {
122
- R as default
123
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("./server-entry-9d269960.cjs");function n(e){return t.jsx("img",{style:{objectFit:e.backgroundSize||"cover",objectPosition:e.backgroundPosition||"center"},alt:e.altText,src:e.imgSrc||e.image,...e.attributes},i.isEditing()&&e.imgSrc||"default-key")}exports.default=n;
@@ -1,20 +0,0 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { isEditing as e } from "./server-entry-8dc3478a.js";
3
- function c(t) {
4
- return /* @__PURE__ */ i(
5
- "img",
6
- {
7
- style: {
8
- objectFit: t.backgroundSize || "cover",
9
- objectPosition: t.backgroundPosition || "center"
10
- },
11
- alt: t.altText,
12
- src: t.imgSrc || t.image,
13
- ...t.attributes
14
- },
15
- e() && t.imgSrc || "default-key"
16
- );
17
- }
18
- export {
19
- c as default
20
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),l=require("react"),k=require("./blocks-eb6fa21f.cjs"),r=require("./content-variants-c72ca81f.cjs"),s=require("./server-entry-9d269960.cjs"),U=require("./get-class-prop-name-c479656a.cjs");require("./blocks-exports.cjs");require("./dynamic-renderer-b29b45ca.cjs");function O(e){var f,B,R,g,m,P,y,A,T,$,I,j,D;const u=l.useRef(null),[V,q]=l.useState(()=>s.userAttributesService.getUserAttributes()),[C,F]=l.useState(()=>{var t,n,i;return r.getPersonalizationScript(e.variants,((t=e.builderBlock)==null?void 0:t.id)||"none",(i=(n=e.builderContext)==null?void 0:n.rootState)==null?void 0:i.locale)}),[N,H]=l.useState(()=>{var t,n,i;return r.getUpdateVisibilityStylesScript(e.variants,((t=e.builderBlock)==null?void 0:t.id)||"none",(i=(n=e.builderContext)==null?void 0:n.rootState)==null?void 0:i.locale)}),[x,L]=l.useState(()=>[]),[E,z]=l.useState(()=>{var t;return r.checkShouldRenderVariants(e.variants,s.getDefaultCanTrack((t=e.builderContext)==null?void 0:t.canTrack))}),[v,W]=l.useState(()=>!1);function w(){return{...e.attributes,[U.getClassPropName()]:`builder-personalization-container ${e.attributes[U.getClassPropName()]||""}`}}function h(){return(e.variants||[]).filter(t=>{var n,i,d,c;return r.filterWithCustomTargeting({...(i=(n=e.builderContext)==null?void 0:n.rootState)!=null&&i.locale?{locale:(c=(d=e.builderContext)==null?void 0:d.rootState)==null?void 0:c.locale}:{},...V},t.query,t.startDate,t.endDate)})}function o(){var t;return r.getBlocksToRender({variants:e.variants,fallbackBlocks:(t=e.builderBlock)==null?void 0:t.children,isHydrated:v,filteredVariants:h(),previewingIndex:e.previewingIndex})}function G(){return(e.variants||[]).map((t,n)=>{var i;return`div[data-variant-id="${(i=e.builderBlock)==null?void 0:i.id}-${n}"] { display: none !important; } `}).join("")}return l.useEffect(()=>{var n;W(!0);const t=s.userAttributesService.subscribeOnUserAttributesChange(i=>{q(i)});if(!(s.isEditing()||s.isPreviewing())){const i=h()[0];u.current&&(u.current.dispatchEvent(new CustomEvent("builder.variantLoaded",{detail:{variant:i||r.DEFAULT_INDEX,content:(n=e.builderContext)==null?void 0:n.content},bubbles:!0})),new IntersectionObserver(c=>{c.forEach(S=>{var b;S.isIntersecting&&u.current&&u.current.dispatchEvent(new CustomEvent("builder.variantDisplayed",{detail:{variant:i||r.DEFAULT_INDEX,content:(b=e.builderContext)==null?void 0:b.content},bubbles:!0}))})}).observe(u.current))}x.push(t)},[]),l.useEffect(()=>()=>{x.forEach(t=>t())},[]),a.jsxs("div",{ref:u,...w(),children:[v&&r.SDKS_REQUIRING_RESET_APPROACH.includes(s.TARGET)?a.jsx(k.Blocks,{blocks:o().blocks,parent:(f=e.builderBlock)==null?void 0:f.id,path:o().path,context:e.builderContext,registeredComponents:e.builderComponents,BlocksWrapperProps:{...(B=e.builderContext)==null?void 0:B.BlocksWrapperProps,"data-variant-id":`${(R=e.builderBlock)==null?void 0:R.id}-${o().index}`}}):null,!v&&r.SDKS_REQUIRING_RESET_APPROACH.includes(s.TARGET)||!r.SDKS_REQUIRING_RESET_APPROACH.includes(s.TARGET)?a.jsxs(a.Fragment,{children:[E?a.jsxs(a.Fragment,{children:[a.jsx(k.InlinedStyles,{nonce:((g=e.builderContext)==null?void 0:g.nonce)||"",styles:G(),id:`variants-styles-${(m=e.builderBlock)==null?void 0:m.id}`}),a.jsx(r.InlinedScript,{nonce:((P=e.builderContext)==null?void 0:P.nonce)||"",scriptStr:N,id:`variants-visibility-script-${(y=e.builderBlock)==null?void 0:y.id}`}),(A=e.variants)==null?void 0:A.map((t,n)=>{var i,d,c,S,b,_;return a.jsx(k.Blocks,{BlocksWrapperProps:{...(i=e.builderContext)==null?void 0:i.BlocksWrapperProps,"aria-hidden":!0,hidden:!0,"data-variant-id":`${(d=e.builderBlock)==null?void 0:d.id}-${n}`},blocks:t.blocks,parent:(c=e.builderBlock)==null?void 0:c.id,path:`component.options.variants.${n}.blocks`,context:e.builderContext,registeredComponents:e.builderComponents,children:a.jsx(r.InlinedScript,{nonce:((S=e.builderContext)==null?void 0:S.nonce)||"",scriptStr:C,id:`variants-script-${(b=e.builderBlock)==null?void 0:b.id}-${n}`})},`${(_=e.builderBlock)==null?void 0:_.id}-${n}`)})]}):null,a.jsx(k.Blocks,{blocks:o().blocks,parent:(T=e.builderBlock)==null?void 0:T.id,path:o().path,context:e.builderContext,registeredComponents:e.builderComponents,BlocksWrapperProps:{...($=e.builderContext)==null?void 0:$.BlocksWrapperProps,"data-variant-id":`${(I=e.builderBlock)==null?void 0:I.id}-${o().index}`},children:E?a.jsx(r.InlinedScript,{nonce:((j=e.builderContext)==null?void 0:j.nonce)||"",scriptStr:C,id:`variants-script-${(D=e.builderBlock)==null?void 0:D.id}-${r.DEFAULT_INDEX}`}):null})]}):null]})}exports.default=O;
@@ -1,2 +0,0 @@
1
- "use strict";function c(){return typeof window!="undefined"&&typeof document!="undefined"}const E="[Builder.io]: ",d={log:(...e)=>console.log(E,...e),error:(...e)=>console.error(E,...e),warn:(...e)=>console.warn(E,...e),debug:(...e)=>console.debug(E,...e)},p=e=>e!=null,me=e=>{if(e==="localhost"||e==="127.0.0.1")return e;const t=e.split(".");return t.length>2?t.slice(1).join("."):e},I=({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){d.warn("[COOKIE] GET error: ",(r==null?void 0:r.message)||r);return}},j=async e=>I(e),be=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),ye=[["secure",""],["SameSite","None"]],Se=({name:e,value:t,expires:n})=>{const s=(c()?location.protocol==="https:":!0)?ye:[[]],o=n?[["expires",n.toUTCString()]]:[[]],i=[[e,t],...o,["path","/"],["domain",me(window.location.hostname)],...s];return be(i)},C=async({name:e,value:t,expires:n,canTrack:r})=>{try{if(!r)return;const s=Se({name:e,value:t,expires:n});document.cookie=s}catch(s){d.warn("[COOKIE] SET error: ",(s==null?void 0:s.message)||s)}},F="builder.userAttributes";function we(){let e=!0;const t=new Set;return{setUserAttributes(n){if(!c())return;const r={...this.getUserAttributes(),...n};C({name:F,value:JSON.stringify(r),canTrack:e}),t.forEach(s=>s(r))},getUserAttributes(){return c()?JSON.parse(I({name:F,canTrack:e})||"{}"):{}},subscribeOnUserAttributesChange(n){return t.add(n),()=>{t.delete(n)}},setCanTrack(n){e=n}}}const P=we(),ve=e=>{P.setUserAttributes(e)},y="react",ke=e=>{const t={};return e.forEach((n,r)=>{t[r]=n}),t},W=e=>e instanceof URLSearchParams?ke(e):e,$=e=>typeof e=="string"?e:e instanceof URLSearchParams?e.toString():new URLSearchParams(e).toString();function Ee(){return c()&&window.self!==window.top}function G(e){return Ee()&&$(e||window.location.search).indexOf("builder.frameEditing=")!==-1}function Ie(e){const t=e||(c()?window.location.search:void 0);return t?$(t).indexOf("builder.preview=")!==-1:!1}const Ae=e=>({type:"builder.registerComponent",data:U(e)}),Oe=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 U(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?Oe(n):n))}const V={};function J(e,t){e==="plugin"&&(t=U(t));let n=V[e];if(n||(n=V[e]=[]),n.push(t),c()){const r={type:"builder.register",data:{type:e,info:t}};try{parent.postMessage(r,"*"),parent!==window&&window.postMessage(r,"*")}catch(s){console.debug("Could not postmessage",s)}}}const D={};function Ce(e){if(c()){Object.assign(D,e);const t={type:"builder.settingsChange",data:D};parent.postMessage(t,"*")}}const M="builder.",Pe="options.",T=e=>{if(!e)return{};const t=W(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(M)){const s=r.replace(M,"").replace(Pe,"");n[s]=t[r]}}),n},Ue=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return T(e)},z="4.0.9",X=()=>({"X-Builder-SDK":y,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":z});function Te(){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 H(){return Te().replace(/-/g,"")}const Q="builderSessionId",Be=async({canTrack:e})=>{if(!e)return;const t=await j({name:Q,canTrack:e});if(p(t))return t;{const n=xe();return Re({id:n,canTrack:e}),n}},xe=()=>H(),Re=({id:e,canTrack:t})=>C({name:Q,value:e,canTrack:t}),Y=()=>c()&&typeof localStorage!="undefined"?localStorage:void 0,Le=({key:e,canTrack:t})=>{var n;try{return t?(n=Y())==null?void 0:n.getItem(e):void 0}catch(r){console.debug("[LocalStorage] GET error: ",r);return}},Ne=({key:e,canTrack:t,value:n})=>{var r;try{t&&((r=Y())==null||r.setItem(e,n))}catch(s){console.debug("[LocalStorage] SET error: ",s)}},Z="builderVisitorId",Fe=({canTrack:e})=>{if(!e)return;const t=Le({key:Z,canTrack:e});if(p(t))return t;{const n=Ve();return De({id:n,canTrack:e}),n}},Ve=()=>H(),De=({id:e,canTrack:t})=>Ne({key:Z,value:e,canTrack:t});function q(e){var t;typeof process!="undefined"&&((t=process.env)!=null&&t.DEBUG)&&String(process.env.DEBUG)=="true"&&d.log(e)}const Me=()=>{if(c()){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},Ke=()=>typeof navigator=="object"&&navigator.userAgent||"",ee=()=>{const e=Ke(),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()||y==="reactNative"}},n=e.match(/Tablet|iPad/i),r=Me();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"}},_e=async({canTrack:e})=>{if(!e)return{visitorId:void 0,sessionId:void 0};const t=await Be({canTrack:e}),n=Fe({canTrack:e});return{sessionId:t,visitorId:n}},je=async({type:e,canTrack:t,apiKey:n,metadata:r,...s})=>({type:e,data:{...s,metadata:{url:location.href,...r},...await _e({canTrack:t}),userAttributes:ee(),ownerId:n}});async function te({apiHost:e,...t}){if(!t.apiKey){d.error("Missing API key for track call. Please provide your API key.");return}if(!t.canTrack||G()||!(c()||y==="reactNative"))return;const r=`${e||"https://cdn.builder.io"}/api/v1/track`;return q(r),fetch(r,{method:"POST",body:JSON.stringify({events:[await je(t)]}),headers:{"content-type":"application/json",...X()},mode:"cors"}).catch(s=>{console.error("Failed to track: ",s)})}const We=e=>te({...e,canTrack:!0}),$e=["*.beta.builder.io","beta.builder.io","builder.io","localhost","qa.builder.io"];function ne(e,t){if(!t.origin.startsWith("http")&&!t.origin.startsWith("https"))return!1;const n=new URL(t.origin),r=n.hostname;return(e||$e).findIndex(s=>s.startsWith("*.")?r.endsWith(s.slice(1)):s===r)>-1}const Ge=()=>{J("insertMenu",{name:"_default",default:!0,items:[{name:"Box"},{name:"Text"},{name:"Image"},{name:"Columns"},{name:"Core:Section"},{name:"Core:Button"},{name:"Embed"},{name:"Custom Code"}]})};let K=!1;const re=e=>{var t,n;K||(K=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:y,version:z,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 o,i;if(!ne(e.trustedHosts,r))return;const{data:s}=r;if(s!=null&&s.type)switch(s.type){case"builder.evaluate":{const u=s.data.text,S=s.data.arguments||[],m=s.data.id,w=new Function(u);let l,g=null;try{l=w.apply(null,S)}catch(h){g=h}g?(o=window.parent)==null||o.postMessage({type:"builder.evaluateError",data:{id:m,error:g.message}},"*"):l&&typeof l.then=="function"?l.then(h=>{var v;(v=window.parent)==null||v.postMessage({type:"builder.evaluateResult",data:{id:m,result:h}},"*")}).catch(console.error):(i=window.parent)==null||i.postMessage({type:"builder.evaluateResult",data:{result:l,id:m}},"*");break}}})))},se=({model:e,trustedHosts:t,callbacks:n})=>r=>{if(!ne(t,r))return;const{data:s}=r;if(s)switch(s.type){case"builder.configureSdk":{n.configureSdk(s.data);break}case"builder.triggerAnimation":{n.animation(s.data);break}case"builder.resetState":{const o=s.data,i=o.model,u=o==null?void 0:o.state;i===e&&u&&n.stateUpdate(u);break}case"builder.contentUpdate":{const o=s.data,i=o.key||o.alias||o.entry||o.modelName,u=o.data;i===e&&n.contentUpdate(u);break}}},Je=({model:e,apiKey:t,callback:n,trustedHosts:r})=>{if(!c)return d.warn("`subscribeToEditor` only works in the browser. It currently seems to be running on the server."),()=>{};re({modelName:e,apiKey:t});const s=se({callbacks:{contentUpdate:n,animation:()=>{},configureSdk:()=>{},stateUpdate:()=>{}},model:e,trustedHosts:r});return window.addEventListener("message",s),()=>{window.removeEventListener("message",s)}},ze="builder.tests",B=e=>`${ze}.${e}`,Xe=({contentId:e})=>j({name:B(e),canTrack:!0}),He=({contentId:e})=>I({name:B(e),canTrack:!0}),Qe=({contentId:e,value:t})=>C({name:B(e),value:t,canTrack:!0}),oe=e=>p(e.id)&&p(e.variations)&&Object.keys(e.variations).length>0,Ye=({id:e,variations:t})=>{var s;let n=0;const r=Math.random();for(const o in t){const i=(s=t[o])==null?void 0:s.testRatio;if(n+=i,r<n)return o}return e},ie=e=>{const t=Ye(e);return Qe({contentId:e.id,value:t}).catch(n=>{d.error("could not store A/B test variation: ",n)}),t},ae=({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":"")}},Ze=({item:e,canTrack:t})=>{if(!t)return e;if(!e)return;if(!oe(e))return e;const n=He({contentId:e.id})||ie({variations:e.variations,id:e.id}),r=ae({item:e,testGroupId:n});return{...e,...r}},qe=async({item:e,canTrack:t})=>{if(!t||!oe(e))return e;const r=await Xe({contentId:e.id})||ie({variations:e.variations,id:e.id}),s=ae({item:e,testGroupId:r});return{...e,...s}},ce=e=>{const t=p(e)?e:!0;return P.setCanTrack(t),t};function et(){return typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:globalThis}function tt(){const e=et().fetch;if(typeof e=="undefined")throw console.warn(`Builder SDK could not find a global fetch function. Make sure you have a polyfill for fetch in your project.
2
- 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 nt=tt();function O(e,t=null,n="."){return Object.keys(e).reduce((r,s)=>{const o=e[s],i=[t,s].filter(Boolean).join(n);return[typeof o=="object",o!==null,!(Array.isArray(o)&&o.length===0)].every(Boolean)?{...r,...O(o,i,n)}:{...r,[i]:o}},{})}function ue(e,t,n={}){for(const r in e){const s=e[r],o=t?t+"."+r:r;s&&typeof s=="object"&&!Array.isArray(s)&&!Object.keys(s).find(i=>i.startsWith("$"))?ue(s,o,n):n[o]=s}return n}function rt(e){const t={};for(const n in e){const r=n.split(".");let s=t;for(let o=0;o<r.length;o++){const i=r[o];o===r.length-1?s[i]=e[n]:(s[i]=s[i]||{},s=s[i])}}return t}const st="v3",_=e=>typeof e=="number"&&!isNaN(e)&&e>=0,x=e=>{const{limit:t=30,userAttributes:n,query:r,model:s,apiKey:o,enrich:i,locale:u,apiVersion:S=st,fields:m,omit:w,offset:l,cacheSeconds:g,staleCacheSeconds:h,sort:v,includeUnpublished:R,apiHost:ge}=e;if(!o)throw new Error("Missing API key");if(!["v3"].includes(S))throw new Error(`Invalid apiVersion: expected 'v3', received '${S}'`);const he=t!==1,pe=ge||"https://cdn.builder.io",a=new URL(`${pe}/api/${S}/content/${s}`);a.searchParams.set("apiKey",o),a.searchParams.set("limit",String(t)),a.searchParams.set("noTraverse",String(he)),a.searchParams.set("includeRefs",String(!0));const A=u||(n==null?void 0:n.locale);let b=n||{};if(A&&(a.searchParams.set("locale",A),b={locale:A,...b}),i&&a.searchParams.set("enrich",String(i)),a.searchParams.set("omit",w!=null?w:"meta.componentsUsed"),m&&a.searchParams.set("fields",m),Number.isFinite(l)&&l>-1&&a.searchParams.set("offset",String(Math.floor(l))),typeof R=="boolean"&&a.searchParams.set("includeUnpublished",String(R)),g&&_(g)&&a.searchParams.set("cacheSeconds",String(g)),h&&_(h)&&a.searchParams.set("staleCacheSeconds",String(h)),v){const f=O({sort:v});for(const k in f)a.searchParams.set(k,JSON.stringify(f[k]))}const L={...Ue(),...W(e.options||{})};b={...b,...it(L)};const N=O(L);for(const f in N)a.searchParams.set(f,String(N[f]));if(Object.keys(b).length>0&&a.searchParams.set("userAttributes",JSON.stringify(b)),r){const f=ue({query:r});for(const k in f)a.searchParams.set(k,JSON.stringify(f[k]))}return a},ot=e=>{const t={};for(const n in e)n.startsWith("userAttributes.")&&(t[n]=e[n],delete e[n]);return t},it=e=>{if(c()&&e.preview==="BUILDER_STUDIO"){e["userAttributes.urlPath"]=window.location.pathname,e["userAttributes.host"]=window.location.host;const t=ot(e),{userAttributes:n}=rt(t);return n}return{}},at=e=>"results"in e;async function le(e){const t=await fe({...e,limit:1});return t&&t[0]||null}const ct=async e=>{var i,u;const t=x(e),n=(i=e.fetch)!=null?i:nt,r={...e.fetchOptions,headers:{...(u=e.fetchOptions)==null?void 0:u.headers,...X()}};return await(await n(t.href,r)).json()},de=async(e,t,n=x(e))=>{const r=ce(e.canTrack);if(n.search.includes("preview="),!r||!(c()||y==="reactNative"))return t.results;try{const s=[];for(const o of t.results)s.push(await qe({item:o,canTrack:r}));t.results=s}catch(s){d.error("Could not process A/B tests. ",s)}return t.results};async function fe(e){const t=x(e),n=await ct(e);if(!at(n))throw d.error("Error fetching data. ",{url:t,content:n,options:e}),n;return de(e,n)}const ut=async e=>{var r,s,o;const t=e.path||((r=e.url)==null?void 0:r.pathname)||((s=e.userAttributes)==null?void 0:s.urlPath),n={...e,apiKey:e.apiKey,model:e.model||"page",userAttributes:{...e.userAttributes,...t?{urlPath:t}:{}},options:T(e.searchParams||((o=e.url)==null?void 0:o.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await le(n)}};exports.TARGET=y;exports._processContentResult=de;exports._track=te;exports.checkIsDefined=p;exports.createEditorListener=se;exports.createRegisterComponentMessage=Ae;exports.fetchBuilderProps=ut;exports.fetchEntries=fe;exports.fetchOneEntry=le;exports.getBuilderSearchParams=T;exports.getCookieSync=I;exports.getDefaultCanTrack=ce;exports.getUserAttributes=ee;exports.handleABTestingSync=Ze;exports.isBrowser=c;exports.isEditing=G;exports.isPreviewing=Ie;exports.logFetch=q;exports.logger=d;exports.register=J;exports.registerInsertMenu=Ge;exports.serializeIncludingFunctions=U;exports.setClientUserAttributes=ve;exports.setEditorSettings=Ce;exports.setupBrowserForEditing=re;exports.subscribeToEditor=Je;exports.track=We;exports.userAttributesService=P;