@sitecore-feaas/clientside 0.4.0-alpha.2 → 0.4.0-alpha.3
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.
- package/build/components/FEAASComponent.js.map +1 -1
- package/build/ui/react.js +1 -1
- package/build/ui/react.js.map +1 -1
- package/dist/browser/headless.cjs.map +2 -2
- package/dist/browser/headless.esm.js.map +1 -1
- package/dist/browser/index.cjs.map +2 -2
- package/dist/browser/index.esm.js.map +1 -1
- package/dist/browser/react.cjs +1 -1
- package/dist/browser/react.cjs.map +2 -2
- package/dist/browser/react.esm.js +1 -1
- package/dist/browser/react.esm.js.map +1 -1
- package/dist/node/headless.cjs.map +2 -2
- package/dist/node/headless.esm.js.map +2 -2
- package/dist/node/index.cjs.map +2 -2
- package/dist/node/index.esm.js.map +2 -2
- package/dist/node/react.cjs +1 -1
- package/dist/node/react.cjs.map +2 -2
- package/dist/node/react.esm.js +1 -1
- package/dist/node/react.esm.js.map +2 -2
- package/headless.cjs.map +2 -2
- package/headless.js.map +2 -2
- package/package.json +1 -1
- package/react.cjs +1 -1
- package/react.cjs.map +2 -2
- package/react.js +1 -1
- package/react.js.map +2 -2
- package/src/components/FEAASComponent.tsx +2 -1
- package/src/ui/react.tsx +1 -0
- package/test/FEAASComponent.react.test.tsx +11 -11
- package/test/ServerComponent.test.tsx +8 -8
- package/types/components/FEAASComponent.d.ts +1 -0
- package/types/components/FEAASComponent.d.ts.map +1 -1
- package/types/ui/FEAASContext.d.ts +1 -1
- package/types/ui/react.d.ts.map +1 -1
- package/types/utils/settings.d.ts +5 -5
package/dist/node/react.cjs
CHANGED
|
@@ -68,5 +68,5 @@ var Nr=Object.create;var Nt=Object.defineProperty;var Tr=Object.getOwnPropertyDe
|
|
|
68
68
|
body, html { padding: 0; margin: 0; overflow: hidden }
|
|
69
69
|
`;let h=s.contentWindow.document.createElement("style");h.textContent=`
|
|
70
70
|
body, html { padding: 0; margin: 0; overflow: hidden }
|
|
71
|
-
`,s.contentWindow.document.head.appendChild(c),s.contentWindow.document.head.appendChild(h);let p=$t({template:r,data:n});p.classList.add(...t,"-feaas--preview","-emulate--"+e.details.slug),s.contentWindow.document.body.appendChild(p)})}async function ar(t,e,r){let n=e?e.getThumbnailURL():t.getThumbnailURL(),i=new Date(Math.max(Number(t.modifiedAt),Number(t.library.stylesheet.modifiedAt)));try{await t.sdk.uploadBlob("thumbnails",n.split(/\/thumbnails\//)[1],r,{headers:{"x-ms-blob-content-type":"image/jpg","x-ms-blob-cache-control":"public,max-age=31536000,immutable","x-ms-meta-versionId":e?e.id:null,"x-ms-meta-versionRevision":e?e.revision.toString():null,"x-ms-meta-componentId":t.id,"x-ms-meta-componentRenderedAt":i.toUTCString(),"x-ms-meta-componentModifiedAt":t.modifiedAt.toUTCString(),"x-ms-meta-componentCreatedAt":t.createdAt.toUTCString(),"x-ms-meta-modifiedAt":t.modifiedAt.toUTCString()}}),fetch(n,{cache:"no-cache"}).then(()=>{t.sdk.log("FEAAS: Thumbnail uploaded",n)})}catch(o){t.sdk.log("FEAAS: Thumbnail failed to upload",n,o)}return n}var ye;typeof window!="undefined"&&(window.FEAASReactElement=tt,(ye=window.FEAASLoading)!==null&&ye!==void 0||(window.FEAASLoading=Promise.resolve()));function be(t){let e=[];if(t){let r=t.ownerDocument.defaultView,n,i;for(;r!==window.top;){n=r.parent;for(let o=0;o<n.frames.length;o++)if(n.frames[o]===r){for(let s of n.document.getElementsByTagName("iframe"))if(s.contentWindow===r){i=s.getBoundingClientRect();let a=s.contentWindow.getComputedStyle(s);e.push({left:i.left+parseInt(a.borderLeftWidth),top:i.top+parseInt(a.borderTopWidth)})}r=n;break}}}return e.reduce((r,n)=>({left:r.left+n.left,top:r.top+n.top}),{left:0,top:0})}function Ce(t){var e;return{context:HTMLElement,frontend:t==null?void 0:t.getContextAttribute("frontend"),src:(e=t==null?void 0:t.getAttribute("src"))!==null&&e!==void 0?e:"/editor.js",library:t==null?void 0:t.getAttribute("library"),component:t==null?void 0:t.getAttribute("component"),version:t==null?void 0:t.getAttribute("version"),instance:t==null?void 0:t.getAttribute("instance"),forked:t==null?void 0:t.getAttribute("forked"),revision:(t==null?void 0:t.getAttribute("revision"))||"saved",hidden:(t==null?void 0:t.getAttribute("hidden"))!=null,for:t==null?void 0:t.getAttribute("for"),state:(t==null?void 0:t.getAttribute("state"))||"idle",changed:(t==null?void 0:t.getAttribute("changed"))!=null}}var at=class extends b{constructor(){super(...arguments),this.framePoint={top:0,left:0},this.wrapperRect={top:0,left:0,width:0,height:0},this.bodyRect={top:0,left:0,width:0,height:0},this.defaultProps={hidden:!1},this.setTarget=(e,r={component:e.getAttribute("component"),version:e.getAttribute("version"),revision:e.getAttribute("revision"),instance:e.getAttribute("instance")})=>{if(!this.closing&&(!this.target||e==null))return this.set(r),this.target=e,!0},this.onChromeMeasureElement=(e,r=e.getBoundingClientRect())=>e.ownerDocument==document?{left:r.left-this.bodyRect.left,top:r.top-this.bodyRect.top,width:r.width,height:r.height}:{left:r.left+this.framePoint.left-this.bodyRect.left,top:r.top+this.framePoint.top-this.bodyRect.top,width:r.width,height:r.height},this.onBeforeMeasure=e=>{e.memoized.focusable&&(this.framePoint=be(e.memoized.focusable)),this.chrome&&(this.wrapperRect=this.chrome.positionable.getBoundingClientRect(),this.bodyRect=this.chrome.positionable.ownerDocument.body.parentElement.getBoundingClientRect())},this.onMeasure=()=>{},this.onPosition=({focusable:e,root:r})=>{!this.chrome||this.props.hidden||(e?(this.chrome.wrapper.style.width=e.width+16*2+"px",this.chrome.wrapper.style.height=e.height+16*1+64+"px",this.chrome.wrapper.style.left=e.left-16+"px",this.chrome.wrapper.style.top=e.top-64+"px",this.chrome.wrapper.style.opacity="1",this.chrome.absolute=this.querySelector(".ui.overlays"),this.chrome.absolute&&(this.chrome.absolute.style.left=r.left+"px",this.chrome.absolute.style.top=r.top+"px")):(this.chrome.wrapper.style.opacity="0",this.chrome.wrapper.style.left="-1000px",this.chrome.wrapper.style.top="-1000px"))},this.onWindowMessage=e=>{var r;switch((r=e.data)===null||r===void 0?void 0:r.type){case"feaasEdit":let n=this.getPlaceholder();this.setTarget(n.editable,e.data)&&(this.loader=n.loader,document.body.appendChild(n.clipper),this.editedUID=e.data.id,this.setPlaceholder(),this.open());break;case"feaasMeasurements":this.measurements=e.data.measurements,this.props.hidden||this.setPlaceholder();break}},this.onContentChange=()=>{this.setAttribute("changed","changed"),requestAnimationFrame(()=>{this.setIframeComponentContent()})},this.onClose=()=>{var e;this.setAttribute("hidden","hidden"),this.placeholder&&(this.placeholder.positionable.style.opacity="0",this.placeholder.positionable.style.pointerEvents="none"),this.chrome&&(this.chrome.wrapper.style.opacity="0"),!((e=this.target)===null||e===void 0)&&e.parentNode&&(this.target.outerHTML=this.target.outerHTML),this.setTarget(null,{component:null,version:null,instance:null,revision:null}),this.setEditorContext({isFocused:!1})},this.onVersionStateChange=(e,r)=>{this.versionContext=e,this.setVersionContext=r},this.onEditorStateChange=(e,r)=>{this.editorContext=e,this.setEditorContext=r,e.editor&&this.props.state=="loading"&&!this.props.hidden&&(this.setAttribute("state","ready"),this.ownerDocument.fonts.ready.then(()=>setTimeout(()=>{this.setReadyState(),this.setIframeComponentContent()},100)))}}getProps(){return Ce(this)}getReactRootElement(){return this.reactRootElement||(this.reactRootElement=document.createElement("div"),this.getRoot().appendChild(this.reactRootElement)),this.reactRootElement}showLoader(){this.loader||(this.loader=document.createElement("feaas-loader"),this.loader.setAttribute("opacity","0.6"),this.loader.style.zIndex="1000",this.target.appendChild(this.loader),this.target.tagName=="FEAAS-COMPONENT"&&(this.target.style.position="relative"))}hideLoader(){this.loader&&(this.loader.setAttribute("hidden","hidden"),this.target.tagName=="FEAAS-COMPONENT"&&(this.target.style.position="relative",this.target.style.position=""))}load(){return import( /*@vite-ignore*/ /* webpackIgnore: true */ this.formatURL(this.props.src,this.props.frontend))}connectedCallback(){super.connectedCallback(),window.addEventListener("message",this.onWindowMessage)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.onWindowMessage)}setIframe(e){this.iframe=e}setIframeComponentContent(){this.placeholder&&this.iframe&&this.placeholder.editable.innerHTML&&this.iframe.contentWindow.postMessage({type:"feaasUpdate",id:this.editedUID,content:this.placeholder.editable.innerHTML})}setPlaceholder(){if(!this.iframe)return;let e=this.iframe.clientWidth,r=this.iframe.clientHeight,n=this.iframe.getBoundingClientRect(),i=this.getPlaceholder(),o=document.body.getBoundingClientRect(),s=this.measurements[this.editedUID];s&&(Object.assign(i.clipper.style,{position:"absolute",top:n.top+this.iframe.clientTop-o.top+"px",left:n.left+this.iframe.clientLeft-o.left+"px",width:e+"px",height:r+"px",pointerEvents:"none",zIndex:1,overflow:"hidden"}),Object.assign(i.positionable.style,{position:"absolute",top:s.top+"px",left:s.left+"px",width:s.width+"px",zIndex:2,transition:"opacity 0.4s",pointerEvents:this.props.hidden?"none":"all"}),Object.assign(i.loader.style,{position:"absolute",top:s.top+"px",left:s.left+"px",width:s.width+"px",height:s.height+"px",filter:"opacity(0.6)",zIndex:3,pointerEvents:"none"}),document.dispatchEvent(new Event("feaasRefresh",{bubbles:!0})))}getPlaceholder(){return this.placeholder?this.placeholder:(this.placeholder={clipper:document.createElement("div"),positionable:document.createElement("div"),editable:Object.assign(document.createElement("div"),{className:"-feaas"}),loader:document.createElement("feaas-loader")},this.placeholder.clipper.appendChild(this.placeholder.positionable),this.placeholder.positionable.appendChild(this.placeholder.editable),this.placeholder.clipper.appendChild(this.placeholder.loader),this.placeholder)}attributeChangedCallback(e,r,n){r!==n&&(e=="hidden"&&(this.style.setProperty("display","block","important"),this.style.setProperty("transition","opacity 0.3s","important"),n?(this.style.setProperty("opacity","0","important"),this.style.pointerEvents="none"):(this.style.setProperty("opacity","1","important"),this.style.pointerEvents="all")),super.attributeChangedCallback(e,r,n))}open(){clearTimeout(this.closing),this.removeAttribute("hidden"),this.removeAttribute("changed"),this.setLoadingState()}shouldFork(e){return e.forkOriginId==null&&this.props.instance!=null}cleanup(){var e;this.placeholder&&((e=this.placeholder.clipper)===null||e===void 0||e.remove(),this.placeholder=null)}close(){console.log("Editor is not ready")}unfork(){console.log("Editor is not ready")}discard(){console.log("Editor is not ready")}save(){console.log("Editor is not ready")}setVersionContext(e){console.log("Editor is not ready")}setEditorContext(e){console.log("Editor is not ready")}setLoadingState(){this.showLoader(),this.setAttribute("state","loading")}setReadyState(){this.hideLoader(),this.setEditorContext({activeVersionId:this.component.versions[0].id}),this.setAttribute("state","ready")}render({children:e,component:r,version:n,instance:i},{Editor:o,VersionStatusList:s,VersionStatusButton:a,Version:l,VersionMenu:d,EditorUIUndo:c,EditorUIMode:h,React:{useEffect:p,useMemo:u,useState:f,useContext:g},Chakra:{HStack:y,Box:C,Button:St,MenuItem:Rt},Chrome:Ht,ReactDOM:Fe,useSDK:Ot,useLibrary:Wt,useSlots:q,useModelObserver:Jt,ConfirmationContext:zt,VersionContext:Ue}){if(!this.payload)return;let{React:v}=this.payload,L=Ot(),kt=Wt(),[w,A]=f(),{setConfirm:T}=g(zt),P=i||n;w&&(this.component=w),p(()=>{if(this.props.hidden)return;let _=kt.components.getItem(r).clone();return _.versions.search({ids:[n,i].filter(Boolean),componentIds:[r]}).then(Vt=>{_.versions.setItems(Vt);let k=_.findVersion(i,["staged","published"]),ut=_.findVersion(n,["staged","published"]);if(k)k.deletedAt?(k.getDraft().changeAndNotify(ut.toProperties()).restore(),console.error("FEAAS Editor: Restoring fork")):(console.error("FEAAS Editor: Pre-forked"),this.setAttribute("forked",k.id));else if(this.removeAttribute("forked"),this.shouldFork(ut)){console.error("FEAAS Editor: Forking");let Yt=ut.fork(i).id;this.setAttribute("instance",Yt)}else console.error("FEAAS Editor: Regular");A(_)}),()=>{this.closing=setTimeout(()=>{this.closing=null,this.cleanup(),A(null)},400)}},[n,this.props.hidden]);let Ie=Jt(w==null?void 0:w.versions,[]).filter(_=>_.id==P),ct=Ie[0];ct&&!this.props.hidden&&(this.version=ct),p(()=>(this.unfork=()=>{T({title:"Reverting component customizations",button:"Discard",body:"Are you sure to reset component to its original state? All changes will be lost.",action:()=>{let _=w.findVersion(n,["staged","published"]);w.findVersion(i).unstage().unpublish().changeAndNotify(_.toProperties()),w.saveVersions(!1),this.setVersionContext({needsWrite:!0}),this.removeAttribute("forked"),requestAnimationFrame(this.onClose)}})},this.discard=()=>{this.props.changed&&(w.findVersion(P).revert(),w.saveVersions(!1),this.setVersionContext({needsWrite:!0}))},this.close=()=>{T({title:"Component has unsaved changes",button:"Discard",body:"Are you sure to close editor and discard changes?",bypass:!this.props.changed,action:()=>{this.discard(),requestAnimationFrame(this.onClose)}})},this.save=()=>{T({bypass:!!this.props.forked,title:"Customizing component",button:"Save",body:"Changes to the component will only be visible on that page. Changes to component done in Component Builder will not be reflected here. It will be possible to revert the customization.",action:()=>{w.findVersion(P).commitData({view:this.editorContext.editor.getData({rootName:P}),model:""}).stage().publish(),this.removeAttribute("changed"),this.setAttribute("forked",P),w.saveVersions(!1)}})},()=>{delete this.unfork,delete this.discard,delete this.save,delete this.editorContext,delete this.versionContext,delete this.setEditorContext,delete this.setVersionContext}),[w]);let kr=u(()=>this.target,[w]);return u(()=>w&&q(e,({picker:_,children:Vt})=>v.createElement(C,{ref:k=>{this.chrome=k?{positionable:k,wrapper:k.querySelector(".editor-chrome"),absolute:this.querySelector(".ui.overlays")}:null}},v.createElement(C,{className:"editor-wrapper",position:"absolute",left:0,top:0},v.createElement(o,{datasources:L.datasources,sdk:L,library:kt,component:w,versions:Ie,context:{isAutosaveEnabled:!1,onChromeMeasure:this.onMeasure,onChromeBeforeMeasure:this.onBeforeMeasure,onChromeMeasureElement:this.onChromeMeasureElement,onChromePosition:this.onPosition,onContentChange:this.onContentChange}},{exports:this.onEditorStateChange,after:Vt,chrome:({editor:k})=>k&&v.createElement(Ht,null),children:({isArchivedDisplayed:k,editor:ut,status:Yt})=>v.createElement(C,{position:"absolute",left:0,top:0,className:"editor-chrome",p:4,boxShadow:"2xl",pointerEvents:"none",opacity:0,transition:"opacity 0.3s"},v.createElement(C,{left:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(C,{right:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(C,{top:0,height:"16",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(C,{bottom:0,height:"4",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),ct&&v.createElement(l,{version:ct,node:kr,ignoreBreakpoints:!0,deps:[this.props.forked,this.props.changed]},{exports:this.onVersionStateChange,left:v.createElement(y,{justifyContent:"space-between"},v.createElement(c,{size:"sm",editor:Yt=="ready"?ut:null}),v.createElement(h,{size:"sm"})),middle:(fn,mn)=>[!1],right:v.createElement(v.Fragment,null,v.createElement(St,{variant:"secondary",size:"sm",onClick:this.close},"Close"),v.createElement(St,{variant:"primary",size:"sm",onClick:this.save,isDisabled:!this.props.changed},this.props.changed?this.props.forked?"Save":"Save customization":"Up to date"),v.createElement(d,{isDisabled:!this.props.forked&&!this.props.changed},v.createElement(Rt,{onClick:this.unfork,isDisabled:!this.props.forked},"Unfork"),v.createElement(Rt,{onClick:this.discard,isDisabled:!this.props.changed},"Discard")))}))})))),[ct,this.props.forked,this.props.changed])}isReadyToLoad(){return this.props.component!=null&&this.props.version!=null&&!this.props.hidden}};at.observedAttributes=["library","component","version","revision","hidden","state","changed","forked"];at.register("feaas-editor");function we(t){var e,r;return{part:(t==null?void 0:t.getAttribute("part"))||"picker",slot:(t==null?void 0:t.getAttribute("part"))||"picker",mode:t==null?void 0:t.getAttribute("mode"),dialog:t==null?void 0:t.getAttribute("dialog"),placeholder:(t==null?void 0:t.getAttribute("placeholder"))||"No theme",frontend:(e=t==null?void 0:t.getContextAttribute("frontend"))!==null&&e!==void 0?e:"https://components.sitecorecloud.io",src:(r=t==null?void 0:t.getAttribute("src"))!==null&&r!==void 0?r:"/picker.js",hidden:(t==null?void 0:t.getAttribute("hidden"))!=null,variant:t==null?void 0:t.getAttribute("variant"),context:void 0,onClose:void 0,setAttribute:void 0,getAttribute:void 0}}var lt=class extends b{constructor(){super(...arguments),this.defaultProps={hidden:!1}}getProps(){return we(this)}load(){return this.import( /*@vite-ignore*/ /* webpackIgnore: true */ this.formatURL(this.props.src,this.props.frontend))}connectedCallback(){this.setAttribute("feaas-role","ui"),super.connectedCallback()}render({placeholder:e,context:r,mode:n,dialog:i,children:o,variant:s},{Picker:a,React:l,useContext:d,EnvironmentContext:c,useLibrary:h,useSDK:p,BYOC:u}){var f,g,y;let[C,St]=l.useReducer(A=>A+1,0),Rt=p(),Ht=d(c),Fe=h("collections"),Ot=h("components"),Wt=p("datasources"),q=h(),Jt=((g=(f=q.stylesheets)===null||f===void 0?void 0:f.first)===null||g===void 0?void 0:g.rules)||((y=q==null?void 0:q.stylesheet)===null||y===void 0?void 0:y.styles),zt=Ot.find(A=>A.id==(r==null?void 0:r.getAttribute("component"))),Ue=p("externalComponents");var v=r==null?void 0:r.getAttribute("data");if(v)try{v=JSON.parse(v)}catch(A){}if(r)var L=Rt.ExternalComponent.getDefinition(r),kt=L&&!L.getConfiguration(r),w=(L==null?void 0:L.type)=="feaas"?Ot.find(A=>A.id==r.getAttribute("component")):u==null?void 0:u.getComponent(String(r.getAttribute("data-external-id")));return l.createElement(a,{cdn:Ht.cdn,rules:Jt,collections:Fe,themeContext:r,placeholder:e,component:zt,embed:w,externalComponents:Ue,datasources:Wt,data:v,versionId:r==null?void 0:r.getAttribute("version"),mode:n||(kt?"library":w?"context":null),setAttribute:(A,T,P)=>{T=="data"&&P&&(P=JSON.stringify(P)),this.props.setAttribute(A,T,P),St()},getAttribute:(A,T)=>r==null?void 0:r.getAttribute(T),dialog:i,context:r,variant:s,onModeChange:(A,T)=>{this.set({mode:A,dialog:T})}},o)}};lt.observedAttributes=["library","mode","frontend","src","hidden","variant","dialog"];lt.register("feaas-picker");function Ee(t){var e,r,n,i,o;return{library:t==null?void 0:t.getAttribute("library"),src:(e=t==null?void 0:t.getAttribute("src"))!==null&&e!==void 0?e:"/context.js",environment:(r=t==null?void 0:t.getAttribute("environment"))!==null&&r!==void 0?r:void 0,frontend:(n=t==null?void 0:t.getAttribute("frontend"))!==null&&n!==void 0?n:"https://components.sitecorecloud.io",backend:(i=t==null?void 0:t.getAttribute("backend"))!==null&&i!==void 0?i:"https://components.sitecorecloud.io/api",cdn:(o=t==null?void 0:t.getAttribute("cdn"))!==null&&o!==void 0?o:"https://feaas.blob.core.windows.net",auth:null,isolate:(t==null?void 0:t.getAttribute("isolate"))==null||(t==null?void 0:t.getAttribute("isolate"))=="true"}}var H=class extends b{constructor(){super(...arguments),this.defaultProps={isolate:!0},this.onStatusChange=(e,r)=>{e=="ready"&&(this.whenSDKReady.resolve(r),this.dispatchEvent(new CustomEvent("feaasReady",{bubbles:!0,composed:!0,detail:r})))},this.whenSDKReady=R(e=>{this.sdk=e})}getProps(){return Ee(this)}load(){return this.import( /*@vite-ignore*/ /* webpackIgnore: true */ this.formatURL(this.props.src,this.props.frontend))}isReadyToLoad(){return super.isReadyToLoad()&&this.props.library!=null}getTheme(e){return e}getRoot(){return this.getAttribute("isolate")==="false"?this:this.shadowRoot||this.attachShadow({mode:"open"})}getReactRootElement(){return this.reactRootElement||(this.reactRootElement=document.createElement("div"),this.getRoot().appendChild(this.reactRootElement)),this.reactRootElement}connectedCallback(){this.setAttribute("feaas-role","ui"),Array.from(this.children).forEach(e=>{this.getRoot().appendChild(e)}),document.addEventListener("feaasMount",this),document.addEventListener("feaasUnmount",this),super.connectedCallback()}disconnectedCallback(){document.removeEventListener("feaasMount",this),document.removeEventListener("feaasUnmount",this),super.disconnectedCallback()}getPortalRoot(){return this.getRoot()}render({children:e,library:r},{AppContext:n,Chakra:{Button:i,Tooltip:o},React:s}){let a={containerRef:{current:this.getPortalRoot()}};return o.defaultProps={hasArrow:!0,placement:"top",portalProps:a},s.createElement(n,{environment:this.props.environment,backend:this.props.backend,libraryId:this.props.library,container:this.getRoot(),auth:this.props.auth,getTheme:this.getTheme,onStatusChange:this.onStatusChange,modalProps:{portalProps:a},chakraProps:{resetScope:':where([feaas-role="ui"])',cssVarsRoot:":host",resetCSS:!0,toastOptions:{portalProps:a}}},e)}};H.observedAttributes=["library","component","version","revision","hostname","template"];H.register("feaas-context");H.prototype.clientside=Ae;var O=ht(require("react"),1),lr=(t={})=>Object.keys(t).reduce((e,r)=>Object.assign(e,{[Ft(r)]:t[r]}),{});function Ft(t){let e=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;return Ut(t).replace(e,function(r){return"-"+r.toLowerCase()})}function Ut(t){return t=t.replace(/[-_ ]+/g," "),t=t.charAt(0).toLowerCase()+t.slice(1),t.split(/\s+/).map((e,r)=>r===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join("")}function Hr(t,e={}){let r=t.properties||{};return{type:"object",...t,properties:Object.keys(r).reduce((n,i)=>Object.assign(n,{[i]:{...r[i],default:e.hasOwnProperty(i)?e[i]:r[i].default,title:r[i].title||Ft(i).split("-").map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ")}}),{})}}var Wr=(t,e)=>{let r={...t};return Object.keys(e).filter(n=>/(integer|number)/.test(e[n].type)).forEach(n=>{var i;!((i=r[n])===null||i===void 0)&&i["ui:widget"]||(r[n]={...r[n],"ui:widget":"updown"})}),r};function cr(t,e){switch(e){case"string":return t;case"object":try{return typeof t=="object"&&t!=null?t:JSON.parse(t)}catch{return null}case"array":try{return Array.isArray(t)?t:JSON.parse(t)}catch{return null}case"number":return parseFloat(t);case"integer":return parseInt(t);case"boolean":return t=="true"||t=="1";default:return t}}function Jr(t,e){return Object.keys(e).reduce((r,n)=>{let i=e[n],o=Ut(n),s=t?.properties[o],a=s?.type,l=cr(i,a);return l!=null&&!n.startsWith("data-attribute")&&!["class","id","contenteditable"].includes(n)?{...r,[o]:l}:r},{})}function zr(t,e){return{...Vr(t),...Jr(t,e)}}function Vr(t){return Object.keys(t.properties).reduce((e,r)=>{var n,i;return((n=t.properties[r])===null||n===void 0?void 0:n.default)!=null?{...e,[r]:(i=t.properties[r])===null||i===void 0?void 0:i.default}:e},{})}function Yr(t,e,r){let{thumbnail:n="https://feaasstatic.blob.core.windows.net/assets/thumbnails/byoc.svg",name:i,id:o=t.name,group:s=null,ui:a,isHidden:l=!1,uiSchema:d,schema:c,...h}=t,p=c||h||{},u=d||a||{},f=Hr({description:"External component",...p,type:"object"},r),g=Wr(u,f.properties||{});return{component:e,name:i,schema:f,uiSchema:g,thumbnail:n,group:s,isHidden:l,id:o,title:f?.title||h?.title||i}}var dr,dt=typeof window<"u"&&window.BYOCComponents||{};function Kr(t,e,r={}){if(!(e!=null&&e.name))throw new Error("Could not register external component. Please make sure you provide a name in the options"+JSON.stringify(e));let n=Yr(e,t,r);dt[n.id]=n,t&&t.prototype instanceof Re&&hr.register("byoc-"+Ft(e.name),void 0,t),ur()}function qr(t,e={}){var r;let n=(r=Se(t))===null||r===void 0?void 0:r.schema;return n?zr(n,e):e}function Se(t){if(typeof t!="string"){if(t&&"schema"in t)return t;throw new Error(`Component name should be a string, got ${typeof t}`)}let[e,r]=t.split("?");var n=dt[e];if(r){let i=dt[t];if(!i&&!n)return null;i&&(n={...n,...i,component:i.component||n?.component}),r.split(/\&/g).forEach(o=>{var s,a,l;let[d,c]=o.split("="),h=((s=n.schema.properties)===null||s===void 0?void 0:s[d])||{type:"string"};n={...n,schema:{...n.schema,properties:{...n.schema.properties,[d]:{...h,default:cr(decodeURIComponent(c),h.type)}}},uiSchema:{...n.uiSchema,[d]:{...n.uiSchema[d],"ui:widget":(l=(a=n.uiSchema[d])===null||a===void 0?void 0:a["ui:widget"])!==null&&l!==void 0?l:"hidden"}}}})}return n}function ur(){clearTimeout(dr),dr=setTimeout(()=>{var t;typeof window<"u"&&window.parent!==window&&((t=window.parent)===null||t===void 0||t.postMessage(JSON.stringify({action:"register-components",data:Object.values(dt)}),"*"))},30)}ur();typeof window<"u"&&window&&(window.BYOCComponents||(window.BYOCComponents=dt));var Re=typeof HTMLElement>"u"?typeof windowJSDOM<"u"?windowJSDOM.HTMLElement:class{}:HTMLElement,hr=class extends Re{connectedCallback(){try{JSON.parse(String(this.getAttribute("components"))).forEach(t=>{Kr(null,t)})}catch{}}static register(t,e,r=this){e==null&&(e=typeof window<"u"?window:void 0),e&&!e.customElements.get(t)&&e.customElements.define(t,r)}};hr.register("byoc-registration");var xe=new Map,Oe=null,ke=null;function Ne(t){var e;let{componentName:r,...n}=t,i=(e=Se(r))===null||e===void 0?void 0:e.component;if(!xe.get(r)){let s=ke(()=>Promise.resolve(Oe),{ssr:!1,loading:()=>O.default.createElement(It,{...n,componentName:r})});xe.set(r,s)}let o=xe.get(r);return O.default.createElement(o,{...t,fallback:i?O.default.createElement(i,{...t}):null})}function pr(t,e){return ke=t,Oe=e,e}function Te(t){if(Object.keys(t).length!=0)return ke?Ne(t):It(t)}function fr(){return O.default.createElement(O.default.Fragment,null,O.default.createElement("byoc-registration",{components:JSON.stringify(Object.values(dt)),suppressHydrationWarning:!0}),O.default.createElement(Oe,null))}function It(t){let{componentName:e,fallback:r,...n}=t,i=Se(e),o=i?.component;if(!o&&r||!e)return O.default.createElement("feaas-external",{"data-external-id":e,suppressHydrationWarning:!0,hydrate:"false"},r);let s=qr(e,n);delete s.suppressHydrationWarning;var a=null;return i&&o&&o.prototype instanceof Re?O.default.createElement("byoc-"+Ft(i.id),{...lr(s),suppressHydrationWarning:!0}):O.default.createElement(O.default.Fragment,null,O.default.createElement("feaas-external",{...lr(s),"data-external-id":e,suppressHydrationWarning:!0,hydrate:"false"},o==null?null:O.default.createElement(o,{...s})))}var gr=(t={})=>Object.keys(t).reduce((e,r)=>Object.assign(e,{[Pe(r)]:t[r]}),{});function vr(t){let e=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;return Pe(t).replace(e,function(r){return"-"+r.toLowerCase()})}function Pe(t){return t=t.replace(/[-_ ]+/g," "),t=t.charAt(0).toLowerCase()+t.slice(1),t.split(/\s+/).map((e,r)=>r===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join("")}function Zr(t,e={}){let r=t.properties||{};return{type:"object",...t,properties:Object.keys(r).reduce((n,i)=>Object.assign(n,{[i]:{...r[i],default:e.hasOwnProperty(i)?e[i]:r[i].default,title:r[i].title||vr(i).split("-").map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ")}}),{})}}var Qr=(t,e)=>{let r={...t};return Object.keys(e).filter(n=>/(integer|number)/.test(e[n].type)).forEach(n=>{var i;!((i=r[n])===null||i===void 0)&&i["ui:widget"]||(r[n]={...r[n],"ui:widget":"updown"})}),r};function yr(t,e){switch(e){case"string":return t;case"object":try{return typeof t=="object"&&t!=null?t:JSON.parse(t)}catch{return null}case"array":try{return Array.isArray(t)?t:JSON.parse(t)}catch{return null}case"number":return parseFloat(t);case"integer":return parseInt(t);case"boolean":return t=="true"||t=="1";default:return t}}function Xr(t,e){return Object.keys(e).reduce((r,n)=>{let i=e[n],o=Pe(n),s=t?.properties[o],a=s?.type,l=yr(i,a);return l!=null&&!n.startsWith("data-attribute")&&!["class","id","contenteditable"].includes(n)?{...r,[o]:l}:r},{})}function tn(t,e){return{...en(t),...Xr(t,e)}}function en(t){return Object.keys(t.properties).reduce((e,r)=>{var n,i;return((n=t.properties[r])===null||n===void 0?void 0:n.default)!=null?{...e,[r]:(i=t.properties[r])===null||i===void 0?void 0:i.default}:e},{})}function rn(t,e,r){let{thumbnail:n="https://feaasstatic.blob.core.windows.net/assets/thumbnails/byoc.svg",name:i,id:o=t.name,group:s=null,ui:a,isHidden:l=!1,uiSchema:d,schema:c,...h}=t,p=c||h||{},u=d||a||{},f=Zr({description:"External component",...p,type:"object"},r),g=Qr(u,f.properties||{});return{component:e,name:i,schema:f,uiSchema:g,thumbnail:n,group:s,isHidden:l,id:o,title:f?.title||h?.title||i}}var mr,K=typeof window<"u"&&window.BYOCComponents||{};function _e(t,e,r={}){if(!(e!=null&&e.name))throw new Error("Could not register external component. Please make sure you provide a name in the options"+JSON.stringify(e));let n=rn(e,t,r);K[n.id]=n,t&&t.prototype instanceof Cr&&wr.register("byoc-"+vr(e.name),void 0,t),Bt()}function br(t,e={}){var r;let n=(r=xt(t))===null||r===void 0?void 0:r.schema;return n?tn(n,e):e}function xt(t){if(typeof t!="string"){if(t&&"schema"in t)return t;throw new Error(`Component name should be a string, got ${typeof t}`)}let[e,r]=t.split("?");var n=K[e];if(r){let i=K[t];if(!i&&!n)return null;i&&(n={...n,...i,component:i.component||n?.component}),r.split(/\&/g).forEach(o=>{var s,a,l;let[d,c]=o.split("="),h=((s=n.schema.properties)===null||s===void 0?void 0:s[d])||{type:"string"};n={...n,schema:{...n.schema,properties:{...n.schema.properties,[d]:{...h,default:yr(decodeURIComponent(c),h.type)}}},uiSchema:{...n.uiSchema,[d]:{...n.uiSchema[d],"ui:widget":(l=(a=n.uiSchema[d])===null||a===void 0?void 0:a["ui:widget"])!==null&&l!==void 0?l:"hidden"}}}})}return n}function Bt(){clearTimeout(mr),mr=setTimeout(()=>{var t;typeof window<"u"&&window.parent!==window&&((t=window.parent)===null||t===void 0||t.postMessage(JSON.stringify({action:"register-components",data:Object.values(K)}),"*"))},30)}Bt();typeof window<"u"&&window&&(window.BYOCComponents||(window.BYOCComponents=K));var Cr=typeof HTMLElement>"u"?typeof windowJSDOM<"u"?windowJSDOM.HTMLElement:class{}:HTMLElement,wr=class extends Cr{connectedCallback(){try{JSON.parse(String(this.getAttribute("components"))).forEach(t=>{_e(null,t)})}catch{}}static register(t,e,r=this){e==null&&(e=typeof window<"u"?window:void 0),e&&!e.customElements.get(t)&&e.customElements.define(t,r)}};wr.register("byoc-registration");var Me=ht(require("react"),1),Er=ht(require("react-dom"),1);var De=br;function on(t){let e=gr(Array.from(t.attributes).reduce((r,{name:n,value:i})=>Object.assign(r,{[n]:i}),{}));return De(e.dataExternalId,e)}var M=class extends b{load(){return Promise.resolve({React:Me.default,ReactDOM:Er.default})}update(){var e;let{dataExternalId:r}=this.props;if(!(!(!((e=xt(r))===null||e===void 0)&&e.component)&&this.getAttribute("hydrate")=="false"))return super.update()}render(e,{React:r}){var n;let{dataExternalId:i}=e;console.log(e);let o=(n=xt(i))===null||n===void 0?void 0:n.component;return o||console.warn(`FEAASExternal: \`${i}\` is not registered`),r.createElement(r.Fragment,null,o&&r.createElement(o,{...e}))}getProps(){return on(this)}static Preview(e){var r;let n=(e==null?void 0:e.src)||(typeof window!="undefined"?(r=window.location.search.match(/feaasSrc=([^&]+)/))===null||r===void 0?void 0:r[1]:null);return n?Me.default.createElement(Le,{src:n,...e}):null}static linkComponents(e){return()=>e.map(r=>null)}};M.registered=K;M.registerComponent=_e;M.setRegistrationCallback=Bt;M.getComponent=xt;M.register("feaas-external");var{getComponent:Ar,linkComponents:xr,registerComponent:Sr}=M;var Rr=t=>("src"in t&&(t=V(t.src)),D.default.createElement("link",{rel:"stylesheet",href:Dt(t)})),Or=async({...t})=>{let e=await E.fetch((t==null?void 0:t.data)||{}),r={...t};if(("src"in t||"component"in t)&&(t==null?void 0:t.template)==null){let n=await Lt(t);r.template=n.template,r.lastModified=n.lastModified,r.hydrate=!1}return je({...r,data:e})};function je({data:t,...e}){let r=null,n;return"template"in e&&e.template&&(n=se(e.template,t||{}).map((i,o)=>$e(i,(s,a)=>{if(s.localName=="feaas-external"){let d={};for(var l in a){let c=l=="data-external-id"?"componentName":Ut(l);d[c]=a[l]}return[Te,d]}},o))),"src"in e&&(e={...I(e.src),...e}),D.default.createElement(D.default.Fragment,null,"preload"in e&&r===!0&&"src"in e&&D.default.createElement(D.default.Fragment,null,D.default.createElement("link",{rel:"preload",as:"fetch",href:it(e.src),crossOrigin:"anonymous"}),D.default.createElement("link",{rel:"preload",as:"style",href:B(e.src),crossOrigin:"anonymous"})),D.default.createElement("feaas-component",{...e,suppressHydrationWarning:!0,template:null,data:typeof t=="string"?t:t?JSON.stringify(t):null,hydrate:"false"},n))}function $e(t,e,r){if(t.nodeType===3)return t.textContent;let n=Array.from(t.childNodes).map((l,d)=>$e(l,e,d)),i={};for(let l=0;l<t.attributes.length;l++){let{name:d,value:c}=t.attributes[l];d=="style"?i[d]=String(c||"").trim().split(/\s*;\s*/).reduce((h,p)=>{let[u,f]=p.split(":");return{...h,[u]:f}},{}):d=="class"?i.className=c:i[d]=c}let o=e==null?void 0:e(t,i),s=(o==null?void 0:o[0])||t.nodeName.toLowerCase(),a=Object.assign({key:r,suppressHydrationWarning:!0},(o==null?void 0:o[1])||i);return D.default.createElement(s,a,["img","br","input"].includes(s)?null:n)}var sn=pr,an=fr,ln=Te,dn=It,cn=Ne,Le=je,un=Or,hn=Rr;0&&(module.exports={Component,ComponentProps,Context,ControlledPromise,DEFAULT_CDN_URL,DOM,DataPath,DataScope,DataSettings,Element,External,ExternalComponent,ExternalComponentBundle,FEAASComponent,FEAASComponentsProps,FEAASContext,FEAASContextProps,FEAASEditor,FEAASEditorProps,FEAASElement,FEAASExternalPropsObject,FEAASLoader,FEAASLoaderProps,FEAASPicker,FEAASPickerProps,FEAASReactComponent,FEAASReactServerComponent,FEAASReactStylesheet,FEAASStylesheet,FEAASStylesheetProps,HTMLNodeToReact,InvalidResponse,JSONPath,Loader,MyComponent,NextExternalComponent,Picker,ReactExternalComponent,ServerComponent,Stylesheet,Thumbnail,WebComponent,adjustNumbers,autoloadScripts,cleanCollectionBit,clearFetchCache,createStylesheet,enableNextClientsideComponents,fetchAndRevalidate,fetchAndRevalidateComponent,fetchAndRevalidateStylesheet,fetchBypassingCache,fetchCache,fetchComponent,fetchData,fetchToValidateCache,fetchWithCacheAwareness,findStylesheet,getComponent,getComponentSource,getComponentURL,getFetchCache,getFramePosition,getHumanizedLabel,getLastPathBit,getQualifier,getStylesheetSource,getStylesheetURL,linkComponents,loadScript,loadStylesheet,loadStylesheetAllowStale,normalizeCollectionScope,observeDOMElement,parseComponentSource,parseLimit,parseRange,parseStylesheetSource,queryObject,queryObjectRaw,queryScopes,registerComponent,renderComponent,renderComponentElement,renderComponentPromise,renderDOMContent,renderDOMElement,renderHTMLContent,renderStylesheet,renderStylesheetPromise,serializeCH1RichText,setDOMAttribute});
|
|
71
|
+
`,s.contentWindow.document.head.appendChild(c),s.contentWindow.document.head.appendChild(h);let p=$t({template:r,data:n});p.classList.add(...t,"-feaas--preview","-emulate--"+e.details.slug),s.contentWindow.document.body.appendChild(p)})}async function ar(t,e,r){let n=e?e.getThumbnailURL():t.getThumbnailURL(),i=new Date(Math.max(Number(t.modifiedAt),Number(t.library.stylesheet.modifiedAt)));try{await t.sdk.uploadBlob("thumbnails",n.split(/\/thumbnails\//)[1],r,{headers:{"x-ms-blob-content-type":"image/jpg","x-ms-blob-cache-control":"public,max-age=31536000,immutable","x-ms-meta-versionId":e?e.id:null,"x-ms-meta-versionRevision":e?e.revision.toString():null,"x-ms-meta-componentId":t.id,"x-ms-meta-componentRenderedAt":i.toUTCString(),"x-ms-meta-componentModifiedAt":t.modifiedAt.toUTCString(),"x-ms-meta-componentCreatedAt":t.createdAt.toUTCString(),"x-ms-meta-modifiedAt":t.modifiedAt.toUTCString()}}),fetch(n,{cache:"no-cache"}).then(()=>{t.sdk.log("FEAAS: Thumbnail uploaded",n)})}catch(o){t.sdk.log("FEAAS: Thumbnail failed to upload",n,o)}return n}var ye;typeof window!="undefined"&&(window.FEAASReactElement=tt,(ye=window.FEAASLoading)!==null&&ye!==void 0||(window.FEAASLoading=Promise.resolve()));function be(t){let e=[];if(t){let r=t.ownerDocument.defaultView,n,i;for(;r!==window.top;){n=r.parent;for(let o=0;o<n.frames.length;o++)if(n.frames[o]===r){for(let s of n.document.getElementsByTagName("iframe"))if(s.contentWindow===r){i=s.getBoundingClientRect();let a=s.contentWindow.getComputedStyle(s);e.push({left:i.left+parseInt(a.borderLeftWidth),top:i.top+parseInt(a.borderTopWidth)})}r=n;break}}}return e.reduce((r,n)=>({left:r.left+n.left,top:r.top+n.top}),{left:0,top:0})}function Ce(t){var e;return{context:HTMLElement,frontend:t==null?void 0:t.getContextAttribute("frontend"),src:(e=t==null?void 0:t.getAttribute("src"))!==null&&e!==void 0?e:"/editor.js",library:t==null?void 0:t.getAttribute("library"),component:t==null?void 0:t.getAttribute("component"),version:t==null?void 0:t.getAttribute("version"),instance:t==null?void 0:t.getAttribute("instance"),forked:t==null?void 0:t.getAttribute("forked"),revision:(t==null?void 0:t.getAttribute("revision"))||"saved",hidden:(t==null?void 0:t.getAttribute("hidden"))!=null,for:t==null?void 0:t.getAttribute("for"),state:(t==null?void 0:t.getAttribute("state"))||"idle",changed:(t==null?void 0:t.getAttribute("changed"))!=null}}var at=class extends b{constructor(){super(...arguments),this.framePoint={top:0,left:0},this.wrapperRect={top:0,left:0,width:0,height:0},this.bodyRect={top:0,left:0,width:0,height:0},this.defaultProps={hidden:!1},this.setTarget=(e,r={component:e.getAttribute("component"),version:e.getAttribute("version"),revision:e.getAttribute("revision"),instance:e.getAttribute("instance")})=>{if(!this.closing&&(!this.target||e==null))return this.set(r),this.target=e,!0},this.onChromeMeasureElement=(e,r=e.getBoundingClientRect())=>e.ownerDocument==document?{left:r.left-this.bodyRect.left,top:r.top-this.bodyRect.top,width:r.width,height:r.height}:{left:r.left+this.framePoint.left-this.bodyRect.left,top:r.top+this.framePoint.top-this.bodyRect.top,width:r.width,height:r.height},this.onBeforeMeasure=e=>{e.memoized.focusable&&(this.framePoint=be(e.memoized.focusable)),this.chrome&&(this.wrapperRect=this.chrome.positionable.getBoundingClientRect(),this.bodyRect=this.chrome.positionable.ownerDocument.body.parentElement.getBoundingClientRect())},this.onMeasure=()=>{},this.onPosition=({focusable:e,root:r})=>{!this.chrome||this.props.hidden||(e?(this.chrome.wrapper.style.width=e.width+16*2+"px",this.chrome.wrapper.style.height=e.height+16*1+64+"px",this.chrome.wrapper.style.left=e.left-16+"px",this.chrome.wrapper.style.top=e.top-64+"px",this.chrome.wrapper.style.opacity="1",this.chrome.absolute=this.querySelector(".ui.overlays"),this.chrome.absolute&&(this.chrome.absolute.style.left=r.left+"px",this.chrome.absolute.style.top=r.top+"px")):(this.chrome.wrapper.style.opacity="0",this.chrome.wrapper.style.left="-1000px",this.chrome.wrapper.style.top="-1000px"))},this.onWindowMessage=e=>{var r;switch((r=e.data)===null||r===void 0?void 0:r.type){case"feaasEdit":let n=this.getPlaceholder();this.setTarget(n.editable,e.data)&&(this.loader=n.loader,document.body.appendChild(n.clipper),this.editedUID=e.data.id,this.setPlaceholder(),this.open());break;case"feaasMeasurements":this.measurements=e.data.measurements,this.props.hidden||this.setPlaceholder();break}},this.onContentChange=()=>{this.setAttribute("changed","changed"),requestAnimationFrame(()=>{this.setIframeComponentContent()})},this.onClose=()=>{var e;this.setAttribute("hidden","hidden"),this.placeholder&&(this.placeholder.positionable.style.opacity="0",this.placeholder.positionable.style.pointerEvents="none"),this.chrome&&(this.chrome.wrapper.style.opacity="0"),!((e=this.target)===null||e===void 0)&&e.parentNode&&(this.target.outerHTML=this.target.outerHTML),this.setTarget(null,{component:null,version:null,instance:null,revision:null}),this.setEditorContext({isFocused:!1})},this.onVersionStateChange=(e,r)=>{this.versionContext=e,this.setVersionContext=r},this.onEditorStateChange=(e,r)=>{this.editorContext=e,this.setEditorContext=r,e.editor&&this.props.state=="loading"&&!this.props.hidden&&(this.setAttribute("state","ready"),this.ownerDocument.fonts.ready.then(()=>setTimeout(()=>{this.setReadyState(),this.setIframeComponentContent()},100)))}}getProps(){return Ce(this)}getReactRootElement(){return this.reactRootElement||(this.reactRootElement=document.createElement("div"),this.getRoot().appendChild(this.reactRootElement)),this.reactRootElement}showLoader(){this.loader||(this.loader=document.createElement("feaas-loader"),this.loader.setAttribute("opacity","0.6"),this.loader.style.zIndex="1000",this.target.appendChild(this.loader),this.target.tagName=="FEAAS-COMPONENT"&&(this.target.style.position="relative"))}hideLoader(){this.loader&&(this.loader.setAttribute("hidden","hidden"),this.target.tagName=="FEAAS-COMPONENT"&&(this.target.style.position="relative",this.target.style.position=""))}load(){return import( /*@vite-ignore*/ /* webpackIgnore: true */ this.formatURL(this.props.src,this.props.frontend))}connectedCallback(){super.connectedCallback(),window.addEventListener("message",this.onWindowMessage)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this.onWindowMessage)}setIframe(e){this.iframe=e}setIframeComponentContent(){this.placeholder&&this.iframe&&this.placeholder.editable.innerHTML&&this.iframe.contentWindow.postMessage({type:"feaasUpdate",id:this.editedUID,content:this.placeholder.editable.innerHTML})}setPlaceholder(){if(!this.iframe)return;let e=this.iframe.clientWidth,r=this.iframe.clientHeight,n=this.iframe.getBoundingClientRect(),i=this.getPlaceholder(),o=document.body.getBoundingClientRect(),s=this.measurements[this.editedUID];s&&(Object.assign(i.clipper.style,{position:"absolute",top:n.top+this.iframe.clientTop-o.top+"px",left:n.left+this.iframe.clientLeft-o.left+"px",width:e+"px",height:r+"px",pointerEvents:"none",zIndex:1,overflow:"hidden"}),Object.assign(i.positionable.style,{position:"absolute",top:s.top+"px",left:s.left+"px",width:s.width+"px",zIndex:2,transition:"opacity 0.4s",pointerEvents:this.props.hidden?"none":"all"}),Object.assign(i.loader.style,{position:"absolute",top:s.top+"px",left:s.left+"px",width:s.width+"px",height:s.height+"px",filter:"opacity(0.6)",zIndex:3,pointerEvents:"none"}),document.dispatchEvent(new Event("feaasRefresh",{bubbles:!0})))}getPlaceholder(){return this.placeholder?this.placeholder:(this.placeholder={clipper:document.createElement("div"),positionable:document.createElement("div"),editable:Object.assign(document.createElement("div"),{className:"-feaas"}),loader:document.createElement("feaas-loader")},this.placeholder.clipper.appendChild(this.placeholder.positionable),this.placeholder.positionable.appendChild(this.placeholder.editable),this.placeholder.clipper.appendChild(this.placeholder.loader),this.placeholder)}attributeChangedCallback(e,r,n){r!==n&&(e=="hidden"&&(this.style.setProperty("display","block","important"),this.style.setProperty("transition","opacity 0.3s","important"),n?(this.style.setProperty("opacity","0","important"),this.style.pointerEvents="none"):(this.style.setProperty("opacity","1","important"),this.style.pointerEvents="all")),super.attributeChangedCallback(e,r,n))}open(){clearTimeout(this.closing),this.removeAttribute("hidden"),this.removeAttribute("changed"),this.setLoadingState()}shouldFork(e){return e.forkOriginId==null&&this.props.instance!=null}cleanup(){var e;this.placeholder&&((e=this.placeholder.clipper)===null||e===void 0||e.remove(),this.placeholder=null)}close(){console.log("Editor is not ready")}unfork(){console.log("Editor is not ready")}discard(){console.log("Editor is not ready")}save(){console.log("Editor is not ready")}setVersionContext(e){console.log("Editor is not ready")}setEditorContext(e){console.log("Editor is not ready")}setLoadingState(){this.showLoader(),this.setAttribute("state","loading")}setReadyState(){this.hideLoader(),this.setEditorContext({activeVersionId:this.component.versions[0].id}),this.setAttribute("state","ready")}render({children:e,component:r,version:n,instance:i},{Editor:o,VersionStatusList:s,VersionStatusButton:a,Version:l,VersionMenu:d,EditorUIUndo:c,EditorUIMode:h,React:{useEffect:p,useMemo:u,useState:f,useContext:g},Chakra:{HStack:y,Box:C,Button:St,MenuItem:Rt},Chrome:Ht,ReactDOM:Fe,useSDK:Ot,useLibrary:Wt,useSlots:q,useModelObserver:Jt,ConfirmationContext:zt,VersionContext:Ue}){if(!this.payload)return;let{React:v}=this.payload,L=Ot(),kt=Wt(),[w,A]=f(),{setConfirm:T}=g(zt),P=i||n;w&&(this.component=w),p(()=>{if(this.props.hidden)return;let _=kt.components.getItem(r).clone();return _.versions.search({ids:[n,i].filter(Boolean),componentIds:[r]}).then(Vt=>{_.versions.setItems(Vt);let k=_.findVersion(i,["staged","published"]),ut=_.findVersion(n,["staged","published"]);if(k)k.deletedAt?(k.getDraft().changeAndNotify(ut.toProperties()).restore(),console.error("FEAAS Editor: Restoring fork")):(console.error("FEAAS Editor: Pre-forked"),this.setAttribute("forked",k.id));else if(this.removeAttribute("forked"),this.shouldFork(ut)){console.error("FEAAS Editor: Forking");let Yt=ut.fork(i).id;this.setAttribute("instance",Yt)}else console.error("FEAAS Editor: Regular");A(_)}),()=>{this.closing=setTimeout(()=>{this.closing=null,this.cleanup(),A(null)},400)}},[n,this.props.hidden]);let Ie=Jt(w==null?void 0:w.versions,[]).filter(_=>_.id==P),ct=Ie[0];ct&&!this.props.hidden&&(this.version=ct),p(()=>(this.unfork=()=>{T({title:"Reverting component customizations",button:"Discard",body:"Are you sure to reset component to its original state? All changes will be lost.",action:()=>{let _=w.findVersion(n,["staged","published"]);w.findVersion(i).unstage().unpublish().changeAndNotify(_.toProperties()),w.saveVersions(!1),this.setVersionContext({needsWrite:!0}),this.removeAttribute("forked"),requestAnimationFrame(this.onClose)}})},this.discard=()=>{this.props.changed&&(w.findVersion(P).revert(),w.saveVersions(!1),this.setVersionContext({needsWrite:!0}))},this.close=()=>{T({title:"Component has unsaved changes",button:"Discard",body:"Are you sure to close editor and discard changes?",bypass:!this.props.changed,action:()=>{this.discard(),requestAnimationFrame(this.onClose)}})},this.save=()=>{T({bypass:!!this.props.forked,title:"Customizing component",button:"Save",body:"Changes to the component will only be visible on that page. Changes to component done in Component Builder will not be reflected here. It will be possible to revert the customization.",action:()=>{w.findVersion(P).commitData({view:this.editorContext.editor.getData({rootName:P}),model:""}).stage().publish(),this.removeAttribute("changed"),this.setAttribute("forked",P),w.saveVersions(!1)}})},()=>{delete this.unfork,delete this.discard,delete this.save,delete this.editorContext,delete this.versionContext,delete this.setEditorContext,delete this.setVersionContext}),[w]);let kr=u(()=>this.target,[w]);return u(()=>w&&q(e,({picker:_,children:Vt})=>v.createElement(C,{ref:k=>{this.chrome=k?{positionable:k,wrapper:k.querySelector(".editor-chrome"),absolute:this.querySelector(".ui.overlays")}:null}},v.createElement(C,{className:"editor-wrapper",position:"absolute",left:0,top:0},v.createElement(o,{datasources:L.datasources,sdk:L,library:kt,component:w,versions:Ie,context:{isAutosaveEnabled:!1,onChromeMeasure:this.onMeasure,onChromeBeforeMeasure:this.onBeforeMeasure,onChromeMeasureElement:this.onChromeMeasureElement,onChromePosition:this.onPosition,onContentChange:this.onContentChange}},{exports:this.onEditorStateChange,after:Vt,chrome:({editor:k})=>k&&v.createElement(Ht,null),children:({isArchivedDisplayed:k,editor:ut,status:Yt})=>v.createElement(C,{position:"absolute",left:0,top:0,className:"editor-chrome",p:4,boxShadow:"2xl",pointerEvents:"none",opacity:0,transition:"opacity 0.3s"},v.createElement(C,{left:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(C,{right:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(C,{top:0,height:"16",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(C,{bottom:0,height:"4",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),ct&&v.createElement(l,{version:ct,node:kr,ignoreBreakpoints:!0,deps:[this.props.forked,this.props.changed]},{exports:this.onVersionStateChange,left:v.createElement(y,{justifyContent:"space-between"},v.createElement(c,{size:"sm",editor:Yt=="ready"?ut:null}),v.createElement(h,{size:"sm"})),middle:(fn,mn)=>[!1],right:v.createElement(v.Fragment,null,v.createElement(St,{variant:"secondary",size:"sm",onClick:this.close},"Close"),v.createElement(St,{variant:"primary",size:"sm",onClick:this.save,isDisabled:!this.props.changed},this.props.changed?this.props.forked?"Save":"Save customization":"Up to date"),v.createElement(d,{isDisabled:!this.props.forked&&!this.props.changed},v.createElement(Rt,{onClick:this.unfork,isDisabled:!this.props.forked},"Unfork"),v.createElement(Rt,{onClick:this.discard,isDisabled:!this.props.changed},"Discard")))}))})))),[ct,this.props.forked,this.props.changed])}isReadyToLoad(){return this.props.component!=null&&this.props.version!=null&&!this.props.hidden}};at.observedAttributes=["library","component","version","revision","hidden","state","changed","forked"];at.register("feaas-editor");function we(t){var e,r;return{part:(t==null?void 0:t.getAttribute("part"))||"picker",slot:(t==null?void 0:t.getAttribute("part"))||"picker",mode:t==null?void 0:t.getAttribute("mode"),dialog:t==null?void 0:t.getAttribute("dialog"),placeholder:(t==null?void 0:t.getAttribute("placeholder"))||"No theme",frontend:(e=t==null?void 0:t.getContextAttribute("frontend"))!==null&&e!==void 0?e:"https://components.sitecorecloud.io",src:(r=t==null?void 0:t.getAttribute("src"))!==null&&r!==void 0?r:"/picker.js",hidden:(t==null?void 0:t.getAttribute("hidden"))!=null,variant:t==null?void 0:t.getAttribute("variant"),context:void 0,onClose:void 0,setAttribute:void 0,getAttribute:void 0}}var lt=class extends b{constructor(){super(...arguments),this.defaultProps={hidden:!1}}getProps(){return we(this)}load(){return this.import( /*@vite-ignore*/ /* webpackIgnore: true */ this.formatURL(this.props.src,this.props.frontend))}connectedCallback(){this.setAttribute("feaas-role","ui"),super.connectedCallback()}render({placeholder:e,context:r,mode:n,dialog:i,children:o,variant:s},{Picker:a,React:l,useContext:d,EnvironmentContext:c,useLibrary:h,useSDK:p,BYOC:u}){var f,g,y;let[C,St]=l.useReducer(A=>A+1,0),Rt=p(),Ht=d(c),Fe=h("collections"),Ot=h("components"),Wt=p("datasources"),q=h(),Jt=((g=(f=q.stylesheets)===null||f===void 0?void 0:f.first)===null||g===void 0?void 0:g.rules)||((y=q==null?void 0:q.stylesheet)===null||y===void 0?void 0:y.styles),zt=Ot.find(A=>A.id==(r==null?void 0:r.getAttribute("component"))),Ue=p("externalComponents");var v=r==null?void 0:r.getAttribute("data");if(v)try{v=JSON.parse(v)}catch(A){}if(r)var L=Rt.ExternalComponent.getDefinition(r),kt=L&&!L.getConfiguration(r),w=(L==null?void 0:L.type)=="feaas"?Ot.find(A=>A.id==r.getAttribute("component")):u==null?void 0:u.getComponent(String(r.getAttribute("data-external-id")));return l.createElement(a,{cdn:Ht.cdn,rules:Jt,collections:Fe,themeContext:r,placeholder:e,component:zt,embed:w,externalComponents:Ue,datasources:Wt,data:v,versionId:r==null?void 0:r.getAttribute("version"),mode:n||(kt?"library":w?"context":null),setAttribute:(A,T,P)=>{T=="data"&&P&&(P=JSON.stringify(P)),this.props.setAttribute(A,T,P),St()},getAttribute:(A,T)=>r==null?void 0:r.getAttribute(T),dialog:i,context:r,variant:s,onModeChange:(A,T)=>{this.set({mode:A,dialog:T})}},o)}};lt.observedAttributes=["library","mode","frontend","src","hidden","variant","dialog"];lt.register("feaas-picker");function Ee(t){var e,r,n,i,o;return{library:t==null?void 0:t.getAttribute("library"),src:(e=t==null?void 0:t.getAttribute("src"))!==null&&e!==void 0?e:"/context.js",environment:(r=t==null?void 0:t.getAttribute("environment"))!==null&&r!==void 0?r:void 0,frontend:(n=t==null?void 0:t.getAttribute("frontend"))!==null&&n!==void 0?n:"https://components.sitecorecloud.io",backend:(i=t==null?void 0:t.getAttribute("backend"))!==null&&i!==void 0?i:"https://components.sitecorecloud.io/api",cdn:(o=t==null?void 0:t.getAttribute("cdn"))!==null&&o!==void 0?o:"https://feaas.blob.core.windows.net",auth:null,isolate:(t==null?void 0:t.getAttribute("isolate"))==null||(t==null?void 0:t.getAttribute("isolate"))=="true"}}var H=class extends b{constructor(){super(...arguments),this.defaultProps={isolate:!0},this.onStatusChange=(e,r)=>{e=="ready"&&(this.whenSDKReady.resolve(r),this.dispatchEvent(new CustomEvent("feaasReady",{bubbles:!0,composed:!0,detail:r})))},this.whenSDKReady=R(e=>{this.sdk=e})}getProps(){return Ee(this)}load(){return this.import( /*@vite-ignore*/ /* webpackIgnore: true */ this.formatURL(this.props.src,this.props.frontend))}isReadyToLoad(){return super.isReadyToLoad()&&this.props.library!=null}getTheme(e){return e}getRoot(){return this.getAttribute("isolate")==="false"?this:this.shadowRoot||this.attachShadow({mode:"open"})}getReactRootElement(){return this.reactRootElement||(this.reactRootElement=document.createElement("div"),this.getRoot().appendChild(this.reactRootElement)),this.reactRootElement}connectedCallback(){this.setAttribute("feaas-role","ui"),Array.from(this.children).forEach(e=>{this.getRoot().appendChild(e)}),document.addEventListener("feaasMount",this),document.addEventListener("feaasUnmount",this),super.connectedCallback()}disconnectedCallback(){document.removeEventListener("feaasMount",this),document.removeEventListener("feaasUnmount",this),super.disconnectedCallback()}getPortalRoot(){return this.getRoot()}render({children:e,library:r},{AppContext:n,Chakra:{Button:i,Tooltip:o},React:s}){let a={containerRef:{current:this.getPortalRoot()}};return o.defaultProps={hasArrow:!0,placement:"top",portalProps:a},s.createElement(n,{environment:this.props.environment,backend:this.props.backend,libraryId:this.props.library,container:this.getRoot(),auth:this.props.auth,getTheme:this.getTheme,onStatusChange:this.onStatusChange,modalProps:{portalProps:a},chakraProps:{resetScope:':where([feaas-role="ui"])',cssVarsRoot:":host",resetCSS:!0,toastOptions:{portalProps:a}}},e)}};H.observedAttributes=["library","component","version","revision","hostname","template"];H.register("feaas-context");H.prototype.clientside=Ae;var O=ht(require("react"),1),lr=(t={})=>Object.keys(t).reduce((e,r)=>Object.assign(e,{[Ft(r)]:t[r]}),{});function Ft(t){let e=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;return Ut(t).replace(e,function(r){return"-"+r.toLowerCase()})}function Ut(t){return t=t.replace(/[-_ ]+/g," "),t=t.charAt(0).toLowerCase()+t.slice(1),t.split(/\s+/).map((e,r)=>r===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join("")}function Hr(t,e={}){let r=t.properties||{};return{type:"object",...t,properties:Object.keys(r).reduce((n,i)=>Object.assign(n,{[i]:{...r[i],default:e.hasOwnProperty(i)?e[i]:r[i].default,title:r[i].title||Ft(i).split("-").map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ")}}),{})}}var Wr=(t,e)=>{let r={...t};return Object.keys(e).filter(n=>/(integer|number)/.test(e[n].type)).forEach(n=>{var i;!((i=r[n])===null||i===void 0)&&i["ui:widget"]||(r[n]={...r[n],"ui:widget":"updown"})}),r};function cr(t,e){switch(e){case"string":return t;case"object":try{return typeof t=="object"&&t!=null?t:JSON.parse(t)}catch{return null}case"array":try{return Array.isArray(t)?t:JSON.parse(t)}catch{return null}case"number":return parseFloat(t);case"integer":return parseInt(t);case"boolean":return t=="true"||t=="1";default:return t}}function Jr(t,e){return Object.keys(e).reduce((r,n)=>{let i=e[n],o=Ut(n),s=t?.properties[o],a=s?.type,l=cr(i,a);return l!=null&&!n.startsWith("data-attribute")&&!["class","id","contenteditable"].includes(n)?{...r,[o]:l}:r},{})}function zr(t,e){return{...Vr(t),...Jr(t,e)}}function Vr(t){return Object.keys(t.properties).reduce((e,r)=>{var n,i;return((n=t.properties[r])===null||n===void 0?void 0:n.default)!=null?{...e,[r]:(i=t.properties[r])===null||i===void 0?void 0:i.default}:e},{})}function Yr(t,e,r){let{thumbnail:n="https://feaasstatic.blob.core.windows.net/assets/thumbnails/byoc.svg",name:i,id:o=t.name,group:s=null,ui:a,isHidden:l=!1,uiSchema:d,schema:c,...h}=t,p=c||h||{},u=d||a||{},f=Hr({description:"External component",...p,type:"object"},r),g=Wr(u,f.properties||{});return{component:e,name:i,schema:f,uiSchema:g,thumbnail:n,group:s,isHidden:l,id:o,title:f?.title||h?.title||i}}var dr,dt=typeof window<"u"&&window.BYOCComponents||{};function Kr(t,e,r={}){if(!(e!=null&&e.name))throw new Error("Could not register external component. Please make sure you provide a name in the options"+JSON.stringify(e));let n=Yr(e,t,r);dt[n.id]=n,t&&t.prototype instanceof Re&&hr.register("byoc-"+Ft(e.name),void 0,t),ur()}function qr(t,e={}){var r;let n=(r=Se(t))===null||r===void 0?void 0:r.schema;return n?zr(n,e):e}function Se(t){if(typeof t!="string"){if(t&&"schema"in t)return t;throw new Error(`Component name should be a string, got ${typeof t}`)}let[e,r]=t.split("?");var n=dt[e];if(r){let i=dt[t];if(!i&&!n)return null;i&&(n={...n,...i,component:i.component||n?.component}),r.split(/\&/g).forEach(o=>{var s,a,l;let[d,c]=o.split("="),h=((s=n.schema.properties)===null||s===void 0?void 0:s[d])||{type:"string"};n={...n,schema:{...n.schema,properties:{...n.schema.properties,[d]:{...h,default:cr(decodeURIComponent(c),h.type)}}},uiSchema:{...n.uiSchema,[d]:{...n.uiSchema[d],"ui:widget":(l=(a=n.uiSchema[d])===null||a===void 0?void 0:a["ui:widget"])!==null&&l!==void 0?l:"hidden"}}}})}return n}function ur(){clearTimeout(dr),dr=setTimeout(()=>{var t;typeof window<"u"&&window.parent!==window&&((t=window.parent)===null||t===void 0||t.postMessage(JSON.stringify({action:"register-components",data:Object.values(dt)}),"*"))},30)}ur();typeof window<"u"&&window&&(window.BYOCComponents||(window.BYOCComponents=dt));var Re=typeof HTMLElement>"u"?typeof windowJSDOM<"u"?windowJSDOM.HTMLElement:class{}:HTMLElement,hr=class extends Re{connectedCallback(){try{JSON.parse(String(this.getAttribute("components"))).forEach(t=>{Kr(null,t)})}catch{}}static register(t,e,r=this){e==null&&(e=typeof window<"u"?window:void 0),e&&!e.customElements.get(t)&&e.customElements.define(t,r)}};hr.register("byoc-registration");var xe=new Map,Oe=null,ke=null;function Ne(t){var e;let{componentName:r,...n}=t,i=(e=Se(r))===null||e===void 0?void 0:e.component;if(!xe.get(r)){let s=ke(()=>Promise.resolve(Oe),{ssr:!1,loading:()=>O.default.createElement(It,{...n,componentName:r})});xe.set(r,s)}let o=xe.get(r);return O.default.createElement(o,{...t,fallback:i?O.default.createElement(i,{...t}):null})}function pr(t,e){return ke=t,Oe=e,e}function Te(t){if(Object.keys(t).length!=0)return ke?Ne(t):It(t)}function fr(){return O.default.createElement(O.default.Fragment,null,O.default.createElement("byoc-registration",{components:JSON.stringify(Object.values(dt)),suppressHydrationWarning:!0}),O.default.createElement(Oe,null))}function It(t){let{componentName:e,fallback:r,...n}=t,i=Se(e),o=i?.component;if(!o&&r||!e)return O.default.createElement("feaas-external",{"data-external-id":e,suppressHydrationWarning:!0,hydrate:"false"},r);let s=qr(e,n);delete s.suppressHydrationWarning;var a=null;return i&&o&&o.prototype instanceof Re?O.default.createElement("byoc-"+Ft(i.id),{...lr(s),suppressHydrationWarning:!0}):O.default.createElement(O.default.Fragment,null,O.default.createElement("feaas-external",{...lr(s),"data-external-id":e,suppressHydrationWarning:!0,hydrate:"false"},o==null?null:O.default.createElement(o,{...s})))}var gr=(t={})=>Object.keys(t).reduce((e,r)=>Object.assign(e,{[Pe(r)]:t[r]}),{});function vr(t){let e=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;return Pe(t).replace(e,function(r){return"-"+r.toLowerCase()})}function Pe(t){return t=t.replace(/[-_ ]+/g," "),t=t.charAt(0).toLowerCase()+t.slice(1),t.split(/\s+/).map((e,r)=>r===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join("")}function Zr(t,e={}){let r=t.properties||{};return{type:"object",...t,properties:Object.keys(r).reduce((n,i)=>Object.assign(n,{[i]:{...r[i],default:e.hasOwnProperty(i)?e[i]:r[i].default,title:r[i].title||vr(i).split("-").map(o=>o.charAt(0).toUpperCase()+o.slice(1).toLowerCase()).join(" ")}}),{})}}var Qr=(t,e)=>{let r={...t};return Object.keys(e).filter(n=>/(integer|number)/.test(e[n].type)).forEach(n=>{var i;!((i=r[n])===null||i===void 0)&&i["ui:widget"]||(r[n]={...r[n],"ui:widget":"updown"})}),r};function yr(t,e){switch(e){case"string":return t;case"object":try{return typeof t=="object"&&t!=null?t:JSON.parse(t)}catch{return null}case"array":try{return Array.isArray(t)?t:JSON.parse(t)}catch{return null}case"number":return parseFloat(t);case"integer":return parseInt(t);case"boolean":return t=="true"||t=="1";default:return t}}function Xr(t,e){return Object.keys(e).reduce((r,n)=>{let i=e[n],o=Pe(n),s=t?.properties[o],a=s?.type,l=yr(i,a);return l!=null&&!n.startsWith("data-attribute")&&!["class","id","contenteditable"].includes(n)?{...r,[o]:l}:r},{})}function tn(t,e){return{...en(t),...Xr(t,e)}}function en(t){return Object.keys(t.properties).reduce((e,r)=>{var n,i;return((n=t.properties[r])===null||n===void 0?void 0:n.default)!=null?{...e,[r]:(i=t.properties[r])===null||i===void 0?void 0:i.default}:e},{})}function rn(t,e,r){let{thumbnail:n="https://feaasstatic.blob.core.windows.net/assets/thumbnails/byoc.svg",name:i,id:o=t.name,group:s=null,ui:a,isHidden:l=!1,uiSchema:d,schema:c,...h}=t,p=c||h||{},u=d||a||{},f=Zr({description:"External component",...p,type:"object"},r),g=Qr(u,f.properties||{});return{component:e,name:i,schema:f,uiSchema:g,thumbnail:n,group:s,isHidden:l,id:o,title:f?.title||h?.title||i}}var mr,K=typeof window<"u"&&window.BYOCComponents||{};function _e(t,e,r={}){if(!(e!=null&&e.name))throw new Error("Could not register external component. Please make sure you provide a name in the options"+JSON.stringify(e));let n=rn(e,t,r);K[n.id]=n,t&&t.prototype instanceof Cr&&wr.register("byoc-"+vr(e.name),void 0,t),Bt()}function br(t,e={}){var r;let n=(r=xt(t))===null||r===void 0?void 0:r.schema;return n?tn(n,e):e}function xt(t){if(typeof t!="string"){if(t&&"schema"in t)return t;throw new Error(`Component name should be a string, got ${typeof t}`)}let[e,r]=t.split("?");var n=K[e];if(r){let i=K[t];if(!i&&!n)return null;i&&(n={...n,...i,component:i.component||n?.component}),r.split(/\&/g).forEach(o=>{var s,a,l;let[d,c]=o.split("="),h=((s=n.schema.properties)===null||s===void 0?void 0:s[d])||{type:"string"};n={...n,schema:{...n.schema,properties:{...n.schema.properties,[d]:{...h,default:yr(decodeURIComponent(c),h.type)}}},uiSchema:{...n.uiSchema,[d]:{...n.uiSchema[d],"ui:widget":(l=(a=n.uiSchema[d])===null||a===void 0?void 0:a["ui:widget"])!==null&&l!==void 0?l:"hidden"}}}})}return n}function Bt(){clearTimeout(mr),mr=setTimeout(()=>{var t;typeof window<"u"&&window.parent!==window&&((t=window.parent)===null||t===void 0||t.postMessage(JSON.stringify({action:"register-components",data:Object.values(K)}),"*"))},30)}Bt();typeof window<"u"&&window&&(window.BYOCComponents||(window.BYOCComponents=K));var Cr=typeof HTMLElement>"u"?typeof windowJSDOM<"u"?windowJSDOM.HTMLElement:class{}:HTMLElement,wr=class extends Cr{connectedCallback(){try{JSON.parse(String(this.getAttribute("components"))).forEach(t=>{_e(null,t)})}catch{}}static register(t,e,r=this){e==null&&(e=typeof window<"u"?window:void 0),e&&!e.customElements.get(t)&&e.customElements.define(t,r)}};wr.register("byoc-registration");var Me=ht(require("react"),1),Er=ht(require("react-dom"),1);var De=br;function on(t){let e=gr(Array.from(t.attributes).reduce((r,{name:n,value:i})=>Object.assign(r,{[n]:i}),{}));return De(e.dataExternalId,e)}var M=class extends b{load(){return Promise.resolve({React:Me.default,ReactDOM:Er.default})}update(){var e;let{dataExternalId:r}=this.props;if(!(!(!((e=xt(r))===null||e===void 0)&&e.component)&&this.getAttribute("hydrate")=="false"))return super.update()}render(e,{React:r}){var n;let{dataExternalId:i}=e;console.log(e);let o=(n=xt(i))===null||n===void 0?void 0:n.component;return o||console.warn(`FEAASExternal: \`${i}\` is not registered`),r.createElement(r.Fragment,null,o&&r.createElement(o,{...e}))}getProps(){return on(this)}static Preview(e){var r;let n=(e==null?void 0:e.src)||(typeof window!="undefined"?(r=window.location.search.match(/feaasSrc=([^&]+)/))===null||r===void 0?void 0:r[1]:null);return n?Me.default.createElement(Le,{src:n,...e}):null}static linkComponents(e){return()=>e.map(r=>null)}};M.registered=K;M.registerComponent=_e;M.setRegistrationCallback=Bt;M.getComponent=xt;M.register("feaas-external");var{getComponent:Ar,linkComponents:xr,registerComponent:Sr}=M;var Rr=t=>("src"in t&&(t=V(t.src)),D.default.createElement("link",{rel:"stylesheet",href:Dt(t)})),Or=async({...t})=>{let e=await E.fetch((t==null?void 0:t.data)||{}),r={...t};if(("src"in t||"component"in t)&&(t==null?void 0:t.template)==null){let n=await Lt(t);r.template=n.template,r.lastModified=n.lastModified,r.hydrate=!1}return je({...r,data:e})};function je({data:t,...e}){let r=null,n;return"template"in e&&e.template&&(n=se(e.template,t||{}).map((i,o)=>$e(i,(s,a)=>{if(s.localName=="feaas-external"){let d={};for(var l in a){let c=l=="data-external-id"?"componentName":Ut(l);d[c]=a[l]}return[Te,d]}},o))),"src"in e&&(e={...I(e.src),...e}),D.default.createElement(D.default.Fragment,null,"preload"in e&&r===!0&&"src"in e&&D.default.createElement(D.default.Fragment,null,D.default.createElement("link",{rel:"preload",as:"fetch",href:it(e.src),crossOrigin:"anonymous"}),D.default.createElement("link",{rel:"preload",as:"style",href:B(e.src),crossOrigin:"anonymous"})),D.default.createElement("feaas-component",{class:"-feaas",...e,suppressHydrationWarning:!0,template:null,data:typeof t=="string"?t:t?JSON.stringify(t):null,hydrate:"false"},n))}function $e(t,e,r){if(t.nodeType===3)return t.textContent;let n=Array.from(t.childNodes).map((l,d)=>$e(l,e,d)),i={};for(let l=0;l<t.attributes.length;l++){let{name:d,value:c}=t.attributes[l];d=="style"?i[d]=String(c||"").trim().split(/\s*;\s*/).reduce((h,p)=>{let[u,f]=p.split(":");return{...h,[u]:f}},{}):d=="class"?i.className=c:i[d]=c}let o=e==null?void 0:e(t,i),s=(o==null?void 0:o[0])||t.nodeName.toLowerCase(),a=Object.assign({key:r,suppressHydrationWarning:!0},(o==null?void 0:o[1])||i);return D.default.createElement(s,a,["img","br","input"].includes(s)?null:n)}var sn=pr,an=fr,ln=Te,dn=It,cn=Ne,Le=je,un=Or,hn=Rr;0&&(module.exports={Component,ComponentProps,Context,ControlledPromise,DEFAULT_CDN_URL,DOM,DataPath,DataScope,DataSettings,Element,External,ExternalComponent,ExternalComponentBundle,FEAASComponent,FEAASComponentsProps,FEAASContext,FEAASContextProps,FEAASEditor,FEAASEditorProps,FEAASElement,FEAASExternalPropsObject,FEAASLoader,FEAASLoaderProps,FEAASPicker,FEAASPickerProps,FEAASReactComponent,FEAASReactServerComponent,FEAASReactStylesheet,FEAASStylesheet,FEAASStylesheetProps,HTMLNodeToReact,InvalidResponse,JSONPath,Loader,MyComponent,NextExternalComponent,Picker,ReactExternalComponent,ServerComponent,Stylesheet,Thumbnail,WebComponent,adjustNumbers,autoloadScripts,cleanCollectionBit,clearFetchCache,createStylesheet,enableNextClientsideComponents,fetchAndRevalidate,fetchAndRevalidateComponent,fetchAndRevalidateStylesheet,fetchBypassingCache,fetchCache,fetchComponent,fetchData,fetchToValidateCache,fetchWithCacheAwareness,findStylesheet,getComponent,getComponentSource,getComponentURL,getFetchCache,getFramePosition,getHumanizedLabel,getLastPathBit,getQualifier,getStylesheetSource,getStylesheetURL,linkComponents,loadScript,loadStylesheet,loadStylesheetAllowStale,normalizeCollectionScope,observeDOMElement,parseComponentSource,parseLimit,parseRange,parseStylesheetSource,queryObject,queryObjectRaw,queryScopes,registerComponent,renderComponent,renderComponentElement,renderComponentPromise,renderDOMContent,renderDOMElement,renderHTMLContent,renderStylesheet,renderStylesheetPromise,serializeCH1RichText,setDOMAttribute});
|
|
72
72
|
//# sourceMappingURL=react.cjs.map
|