@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
@@ -1,2 +0,0 @@
1
- "use strict";const y="react",I="[Builder.io]: ",d={log:(...e)=>console.log(I,...e),error:(...e)=>console.error(I,...e),warn:(...e)=>console.warn(I,...e),debug:(...e)=>console.debug(I,...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 G(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||"",$=()=>{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:P(e)}),Ee=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 P(e){return JSON.parse(JSON.stringify(e,(t,n)=>typeof n=="function"?Ee(n):n))}const F={};function J(e,t){e==="plugin"&&(t=P(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 Ie(e){if(c()){Object.assign(V,e);const t={type:"builder.settingsChange",data:V};parent.postMessage(t,"*")}}const M="builder.",ke="options.",C=e=>{if(!e)return{};const t=j(e),n={};return Object.keys(t).forEach(r=>{if(r.startsWith(M)){const s=r.replace(M,"").replace(ke,"");n[s]=t[r]}}),n},Ae=()=>{if(!c())return{};const e=new URLSearchParams(window.location.search);return C(e)},X="4.0.9",z=()=>({"X-Builder-SDK":y,"X-Builder-SDK-GEN":"2","X-Builder-SDK-Version":X}),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},k=({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=>k(e),Pe=e=>e.map(([t,n])=>n?`${t}=${n}`:t).filter(p).join("; "),Ce=[["secure",""],["SameSite","None"]],Ue=({name:e,value:t,expires:n})=>{const s=(c()?location.protocol==="https:":!0)?Ce:[[]],o=n?[["expires",n.toUTCString()]]:[[]],i=[[e,t],...o,["path","/"],["domain",Oe(window.location.hostname)],...s];return Pe(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=Re();return xe({id:n,canTrack:e}),n}},Re=()=>Q(),xe=({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 Me({id:n,canTrack:e}),n}},Ve=()=>Q(),Me=({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 De=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 De({canTrack:t}),userAttributes:$(),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 ee(r),fetch(r,{method:"POST",body:JSON.stringify({events:[await Ke(t)]}),headers:{"content-type":"application/json",...z()},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 D=!1;const re=e=>{var t,n;D||(D=!0,c()&&((t=window.parent)==null||t.postMessage({type:"builder.sdkInfo",data:{target:y,version:X,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}}},Ge=({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)}},$e="builder.tests",T=e=>`${$e}.${e}`,Je=({contentId:e})=>H({name:T(e),canTrack:!0}),Xe=({contentId:e})=>k({name:T(e),canTrack:!0}),ze=({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 ze({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=Xe({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(k({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,R=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:x,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 x=="boolean"&&a.searchParams.set("includeUnpublished",String(x)),g&&_(g)&&a.searchParams.set("cacheSeconds",String(g)),h&&_(h)&&a.searchParams.set("staleCacheSeconds",String(h)),v){const f=O({sort:v});for(const E in f)a.searchParams.set(E,JSON.stringify(f[E]))}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 E in f)a.searchParams.set(E,JSON.stringify(f[E]))}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=R(e),n=(i=e.fetch)!=null?i:nt,r={...e.fetchOptions,headers:{...(u=e.fetchOptions)==null?void 0:u.headers,...z()}};return await(await n(t.href,r)).json()},de=async(e,t,n=R(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=R(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:C(e.searchParams||((o=e.url)==null?void 0:o.searchParams)||e.options)};return{apiKey:n.apiKey,model:n.model,content:await le(n)}};exports.MSG_PREFIX=I;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=C;exports.getCookieSync=k;exports.getDefaultCanTrack=ce;exports.getUserAttributes=$;exports.handleABTestingSync=Qe;exports.isBrowser=c;exports.isEditing=G;exports.isPreviewing=we;exports.logFetch=ee;exports.logger=d;exports.register=J;exports.registerInsertMenu=We;exports.serializeIncludingFunctions=P;exports.setClientUserAttributes=qe;exports.setEditorSettings=Ie;exports.setupBrowserForEditing=re;exports.subscribeToEditor=Ge;exports.track=_e;exports.userAttributesService=B;