@sitecore-feaas/clientside 0.3.16 → 0.3.18
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/tsbuildinfo +1 -1
- package/types/ui/react.d.ts.map +1 -1
- package/types/ui/tsbuildinfo +1 -1
- package/types/utils/settings.d.ts +5 -5
package/dist/node/react.esm.js
CHANGED
|
@@ -68,5 +68,5 @@ var qe=Object.defineProperty;var Z=(e,t)=>{for(var r in t)qe(e,r,{get:t[r],enume
|
|
|
68
68
|
body, html { padding: 0; margin: 0; overflow: hidden }
|
|
69
69
|
`;let f=s.contentWindow.document.createElement("style");f.textContent=`
|
|
70
70
|
body, html { padding: 0; margin: 0; overflow: hidden }
|
|
71
|
-
`,s.contentWindow.document.head.appendChild(c),s.contentWindow.document.head.appendChild(f);let h=Wt({template:r,data:n});h.classList.add(...e,"-feaas--preview","-emulate--"+t.details.slug),s.contentWindow.document.body.appendChild(h)})}async function Me(e,t,r){let n=t?t.getThumbnailURL():e.getThumbnailURL(),i=new Date(Math.max(Number(e.modifiedAt),Number(e.library.stylesheet.modifiedAt)));try{await e.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":t?t.id:null,"x-ms-meta-versionRevision":t?t.revision.toString():null,"x-ms-meta-componentId":e.id,"x-ms-meta-componentRenderedAt":i.toUTCString(),"x-ms-meta-componentModifiedAt":e.modifiedAt.toUTCString(),"x-ms-meta-componentCreatedAt":e.createdAt.toUTCString(),"x-ms-meta-modifiedAt":e.modifiedAt.toUTCString()}}),fetch(n,{cache:"no-cache"}).then(()=>{e.sdk.log("FEAAS: Thumbnail uploaded",n)})}catch(o){e.sdk.log("FEAAS: Thumbnail failed to upload",n,o)}return n}var Vt;typeof window!="undefined"&&(window.FEAASReactElement=z,(Vt=window.FEAASLoading)!==null&&Vt!==void 0||(window.FEAASLoading=Promise.resolve()));function De(e){let t=[];if(e){let r=e.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);t.push({left:i.left+parseInt(a.borderLeftWidth),top:i.top+parseInt(a.borderTopWidth)})}r=n;break}}}return t.reduce((r,n)=>({left:r.left+n.left,top:r.top+n.top}),{left:0,top:0})}function Le(e){var t;return{context:HTMLElement,frontend:e==null?void 0:e.getContextAttribute("frontend"),src:(t=e==null?void 0:e.getAttribute("src"))!==null&&t!==void 0?t:"/editor.js",library:e==null?void 0:e.getAttribute("library"),component:e==null?void 0:e.getAttribute("component"),version:e==null?void 0:e.getAttribute("version"),instance:e==null?void 0:e.getAttribute("instance"),forked:e==null?void 0:e.getAttribute("forked"),revision:(e==null?void 0:e.getAttribute("revision"))||"saved",hidden:(e==null?void 0:e.getAttribute("hidden"))!=null,for:e==null?void 0:e.getAttribute("for"),state:(e==null?void 0:e.getAttribute("state"))||"idle",changed:(e==null?void 0:e.getAttribute("changed"))!=null}}var lt=class extends A{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=(t,r={component:t.getAttribute("component"),version:t.getAttribute("version"),revision:t.getAttribute("revision"),instance:t.getAttribute("instance")})=>{if(!this.closing&&(!this.target||t==null))return this.set(r),this.target=t,!0},this.onChromeMeasureElement=(t,r=t.getBoundingClientRect())=>t.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=t=>{t.memoized.focusable&&(this.framePoint=De(t.memoized.focusable)),this.chrome&&(this.wrapperRect=this.chrome.positionable.getBoundingClientRect(),this.bodyRect=this.chrome.positionable.ownerDocument.body.parentElement.getBoundingClientRect())},this.onMeasure=()=>{},this.onPosition=({focusable:t,root:r})=>{!this.chrome||this.props.hidden||(t?(this.chrome.wrapper.style.width=t.width+16*2+"px",this.chrome.wrapper.style.height=t.height+16*1+64+"px",this.chrome.wrapper.style.left=t.left-16+"px",this.chrome.wrapper.style.top=t.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=t=>{var r;switch((r=t.data)===null||r===void 0?void 0:r.type){case"feaasEdit":let n=this.getPlaceholder();this.setTarget(n.editable,t.data)&&(this.loader=n.loader,document.body.appendChild(n.clipper),this.editedUID=t.data.id,this.setPlaceholder(),this.open());break;case"feaasMeasurements":this.measurements=t.data.measurements,this.props.hidden||this.setPlaceholder();break}},this.onContentChange=()=>{this.setAttribute("changed","changed"),requestAnimationFrame(()=>{this.setIframeComponentContent()})},this.onClose=()=>{var t;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"),!((t=this.target)===null||t===void 0)&&t.parentNode&&(this.target.outerHTML=this.target.outerHTML),this.setTarget(null,{component:null,version:null,instance:null,revision:null}),this.setEditorContext({isFocused:!1})},this.onVersionStateChange=(t,r)=>{this.versionContext=t,this.setVersionContext=r},this.onEditorStateChange=(t,r)=>{this.editorContext=t,this.setEditorContext=r,t.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 Le(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(t){this.iframe=t}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 t=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:t+"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(t,r,n){r!==n&&(t=="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(t,r,n))}open(){clearTimeout(this.closing),this.removeAttribute("hidden"),this.removeAttribute("changed"),this.setLoadingState()}shouldFork(t){return t.forkOriginId==null&&this.props.instance!=null}cleanup(){var t;this.placeholder&&((t=this.placeholder.clipper)===null||t===void 0||t.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(t){console.log("Editor is not ready")}setEditorContext(t){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:t,component:r,version:n,instance:i},{Editor:o,VersionStatusList:s,VersionStatusButton:a,Version:l,VersionMenu:d,EditorUIUndo:c,EditorUIMode:f,React:{useEffect:h,useMemo:u,useState:p,useContext:b},Chakra:{HStack:C,Box:E,Button:K,MenuItem:ut},Chrome:H,ReactDOM:Qt,useSDK:w,useLibrary:_,useSlots:B,useModelObserver:ze,ConfirmationContext:Ve,VersionContext:yr}){if(!this.payload)return;let{React:v}=this.payload,te=w(),ee=_(),[x,re]=p(),{setConfirm:Tt}=b(Ve),G=i||n;x&&(this.component=x),h(()=>{if(this.props.hidden)return;let O=ee.components.getItem(r).clone();return O.versions.search({ids:[n,i].filter(Boolean),componentIds:[r]}).then(Ot=>{O.versions.setItems(Ot);let T=O.findVersion(i,["staged","published"]),X=O.findVersion(n,["staged","published"]);if(T)T.deletedAt?(T.getDraft().changeAndNotify(X.toProperties()).restore(),console.error("FEAAS Editor: Restoring fork")):(console.error("FEAAS Editor: Pre-forked"),this.setAttribute("forked",T.id));else if(this.removeAttribute("forked"),this.shouldFork(X)){console.error("FEAAS Editor: Forking");let Pt=X.fork(i).id;this.setAttribute("instance",Pt)}else console.error("FEAAS Editor: Regular");re(O)}),()=>{this.closing=setTimeout(()=>{this.closing=null,this.cleanup(),re(null)},400)}},[n,this.props.hidden]);let ne=ze(x==null?void 0:x.versions,[]).filter(O=>O.id==G),Y=ne[0];Y&&!this.props.hidden&&(this.version=Y),h(()=>(this.unfork=()=>{Tt({title:"Reverting component customizations",button:"Discard",body:"Are you sure to reset component to its original state? All changes will be lost.",action:()=>{let O=x.findVersion(n,["staged","published"]);x.findVersion(i).unstage().unpublish().changeAndNotify(O.toProperties()),x.saveVersions(!1),this.setVersionContext({needsWrite:!0}),this.removeAttribute("forked"),requestAnimationFrame(this.onClose)}})},this.discard=()=>{this.props.changed&&(x.findVersion(G).revert(),x.saveVersions(!1),this.setVersionContext({needsWrite:!0}))},this.close=()=>{Tt({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=()=>{Tt({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:()=>{x.findVersion(G).commitData({view:this.editorContext.editor.getData({rootName:G}),model:""}).stage().publish(),this.removeAttribute("changed"),this.setAttribute("forked",G),x.saveVersions(!1)}})},()=>{delete this.unfork,delete this.discard,delete this.save,delete this.editorContext,delete this.versionContext,delete this.setEditorContext,delete this.setVersionContext}),[x]);let Je=u(()=>this.target,[x]);return u(()=>x&&B(t,({picker:O,children:Ot})=>v.createElement(E,{ref:T=>{this.chrome=T?{positionable:T,wrapper:T.querySelector(".editor-chrome"),absolute:this.querySelector(".ui.overlays")}:null}},v.createElement(E,{className:"editor-wrapper",position:"absolute",left:0,top:0},v.createElement(o,{datasources:te.datasources,sdk:te,library:ee,component:x,versions:ne,context:{isAutosaveEnabled:!1,onChromeMeasure:this.onMeasure,onChromeBeforeMeasure:this.onBeforeMeasure,onChromeMeasureElement:this.onChromeMeasureElement,onChromePosition:this.onPosition,onContentChange:this.onContentChange}},{exports:this.onEditorStateChange,after:Ot,chrome:({editor:T})=>T&&v.createElement(H,null),children:({isArchivedDisplayed:T,editor:X,status:Pt})=>v.createElement(E,{position:"absolute",left:0,top:0,className:"editor-chrome",p:4,boxShadow:"2xl",pointerEvents:"none",opacity:0,transition:"opacity 0.3s"},v.createElement(E,{left:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(E,{right:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(E,{top:0,height:"16",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(E,{bottom:0,height:"4",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),Y&&v.createElement(l,{version:Y,node:Je,ignoreBreakpoints:!0,deps:[this.props.forked,this.props.changed]},{exports:this.onVersionStateChange,left:v.createElement(C,{justifyContent:"space-between"},v.createElement(c,{size:"sm",editor:Pt=="ready"?X:null}),v.createElement(f,{size:"sm"})),middle:(vr,Ar)=>[!1],right:v.createElement(v.Fragment,null,v.createElement(K,{variant:"secondary",size:"sm",onClick:this.close},"Close"),v.createElement(K,{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(ut,{onClick:this.unfork,isDisabled:!this.props.forked},"Unfork"),v.createElement(ut,{onClick:this.discard,isDisabled:!this.props.changed},"Discard")))}))})))),[Y,this.props.forked,this.props.changed])}isReadyToLoad(){return this.props.component!=null&&this.props.version!=null&&!this.props.hidden}};lt.observedAttributes=["library","component","version","revision","hidden","state","changed","forked"];lt.register("feaas-editor");function $e(e){var t,r;return{part:(e==null?void 0:e.getAttribute("part"))||"picker",slot:(e==null?void 0:e.getAttribute("part"))||"picker",mode:e==null?void 0:e.getAttribute("mode"),dialog:e==null?void 0:e.getAttribute("dialog"),placeholder:(e==null?void 0:e.getAttribute("placeholder"))||"No theme",frontend:(t=e==null?void 0:e.getContextAttribute("frontend"))!==null&&t!==void 0?t:"https://components.sitecorecloud.io",src:(r=e==null?void 0:e.getAttribute("src"))!==null&&r!==void 0?r:"/picker.js",hidden:(e==null?void 0:e.getAttribute("hidden"))!=null,variant:e==null?void 0:e.getAttribute("variant"),context:void 0,onClose:void 0,setAttribute:void 0,getAttribute:void 0}}var dt=class extends A{constructor(){super(...arguments),this.defaultProps={hidden:!1}}getProps(){return $e(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:t,context:r,mode:n,dialog:i,children:o,variant:s},{Picker:a,React:l,useLibrary:d,useSDK:c}){let[f,h]=l.useReducer(w=>w+1,0),u=d("collections"),p=d("components"),b=c("datasources"),C=d("stylesheet.styles"),E=p.find(w=>w.id==(r==null?void 0:r.getAttribute("component"))),K=r==null?void 0:r.getAttribute("data-external-id"),ut=c("externalComponents").find(w=>w.name==K);var H=r==null?void 0:r.getAttribute("data");if(H)try{H=JSON.parse(H)}catch(w){}let Qt=n=="datasources"?b.find(w=>w.id==i):null;return l.createElement(a,{rules:C,collections:u,themeContext:r,placeholder:t,component:E,externalComponent:ut,datasource:Qt,data:H,versionId:r==null?void 0:r.getAttribute("version"),mode:n||(E?"component":K?"external":null),setAttribute:(w,_,B)=>{_=="data"&&B&&(B=JSON.stringify(B)),this.props.setAttribute(w,_,B),h()},getAttribute:(w,_)=>r==null?void 0:r.getAttribute(_),dialog:i,context:r,variant:s,onModeChange:(w,_)=>{this.set({mode:w,dialog:_})}},o)}};dt.observedAttributes=["library","mode","frontend","src","hidden","variant","dialog"];dt.register("feaas-picker");function Fe(e){var t,r,n,i,o;return{library:e==null?void 0:e.getAttribute("library"),src:(t=e==null?void 0:e.getAttribute("src"))!==null&&t!==void 0?t:"/context.js",environment:(r=e==null?void 0:e.getAttribute("environment"))!==null&&r!==void 0?r:void 0,frontend:(n=e==null?void 0:e.getAttribute("frontend"))!==null&&n!==void 0?n:"https://components.sitecorecloud.io",backend:(i=e==null?void 0:e.getAttribute("backend"))!==null&&i!==void 0?i:"https://components.sitecorecloud.io/api",cdn:(o=e==null?void 0:e.getAttribute("cdn"))!==null&&o!==void 0?o:"https://feaas.blob.core.windows.net",auth:null,isolate:(e==null?void 0:e.getAttribute("isolate"))==null||(e==null?void 0:e.getAttribute("isolate"))=="true"}}var W=class extends A{constructor(){super(...arguments),this.defaultProps={isolate:!0},this.onStatusChange=(t,r)=>{t=="ready"&&(this.whenSDKReady.resolve(r),this.dispatchEvent(new CustomEvent("feaasReady",{bubbles:!0,composed:!0,detail:r})))},this.whenSDKReady=k(t=>{this.sdk=t})}getProps(){return Fe(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(t){return t}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(t=>{this.getRoot().appendChild(t)}),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:t,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}}},t)}};W.observedAttributes=["library","component","version","revision","hostname","template"];W.register("feaas-context");W.prototype.clientside=Jt;import y from"react";import je from"react";import ar from"react-dom";function qt(e){let t=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;return e.replace(t,function(r){return"-"+r.toLowerCase()})}function ct(e){let t=/-[a-z\u00E0-\u00F6\u00F8-\u00FE]/g;return e.replace(t,function(r){return r.slice(1).toUpperCase()})}var lr=e=>Object.keys(e).reduce((t,r)=>{if(e[r].title)t[r]=e[r];else{let n=r.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1).toLowerCase()).join(" ");t[r]={...e[r],title:n}}return t},{}),Rt=(e={})=>Object.keys(e).reduce((t,r)=>(t[qt(r)]=e[r],t),{}),dr=e=>{if(!e)return;if(!e.properties)return e;let t,r;return t=Rt(e.properties),r=(e.required||[]).map(i=>qt(i)),t=lr(t),{...e,properties:t,required:r,title:void 0}},cr=(e,t)=>{if(!e||!t)return;let r;return r=Rt(e),Object.keys(t).filter(i=>/(integer|number)/.test(t[i].type)).forEach(i=>{r[i]?r[i]["ui:widget"]||(r[i]["ui:widget"]="updown"):r[i]={"ui:widget":"updown"}}),r},ur=(e,t,r)=>{var n;switch((n=r==null?void 0:r[e])===null||n===void 0?void 0:n.type){case"string":return t;case"object":try{return typeof t=="object"&&t!=null?t:JSON.parse(t)}catch(i){return null}case"array":try{return Array.isArray(t)?t:JSON.parse(t)}catch(i){return null}case"number":return parseFloat(t);case"integer":return parseInt(t);case"boolean":return t=="true"||t=="1";default:return t}};function hr(e){let t=Array.from(e.attributes).reduce((r,{name:n,value:i})=>Object.assign(r,{[n]:i}),{});return kt(t["data-external-id"],t)}function kt(e,t){var r;let n=(r=g.registered[e])===null||r===void 0?void 0:r.schema;return Object.keys(t).reduce((i,o)=>{let s=t[o];return!o.startsWith("data-attribute")&&!["class","id","contenteditable"].includes(o)?{...i,[ct(o)]:ur(ct(o),s,n==null?void 0:n.properties)}:i},{})}var g=class extends A{load(){return Promise.resolve({React:je,ReactDOM:ar})}update(){var t;let{dataExternalId:r}=this.props;if(!(!(!((t=g.registered[r])===null||t===void 0)&&t.component)&&this.getAttribute("hydrate")=="false"))return super.update()}render(t,{React:r}){var n;let{dataExternalId:i}=t,o=(n=g.registered[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,{...t}))}getProps(){return hr(this)}static registerComponent(t,r){if(!r.name)throw new Error("Could not register external component. Please make sure you provide a name in the options"+JSON.stringify(r));let n=r.name,{thumbnail:i,group:o,ui:s,...a}=r,l={...a,type:"object"};g.registered[n]={component:t,name:n,schema:l,uiSchema:s,thumbnail:i,group:o,title:(l==null?void 0:l.title)||n},g.setRegistrationCallback()}static setRegistrationCallback(){clearTimeout(g.registrationCallback),g.registrationCallback=setTimeout(()=>{var t;if(typeof window!="undefined"){let r=Object.keys(g.registered).map(n=>{var i;return{...g.registered[n],name:n,schema:dr(g.registered[n].schema),uiSchema:cr(g.registered[n].uiSchema,(i=g.registered[n].schema)===null||i===void 0?void 0:i.properties)}});(t=window.parent)===null||t===void 0||t.postMessage(JSON.stringify({action:"register-components",data:r}),"*")}},30)}static Preview(t){var r;let n=(t==null?void 0:t.src)||(typeof window!="undefined"?(r=window.location.search.match(/feaasSrc=([^&]+)/))===null||r===void 0?void 0:r[1]:null);return n?je.createElement(Ue,{src:n,...t}):null}static linkComponents(t){return()=>t.map(r=>null)}static getComponent(t){return g.registered[t]}};g.registered={};var Kt=class extends ht{connectedCallback(){try{JSON.parse(this.getAttribute("components")).forEach(t=>{g.registerComponent(null,t)})}catch(t){}}static register(t){return A.register.call(this,t)}};typeof window!="undefined"&&window&&("FEAASExternalComponents"in window?location.hostname.startsWith("xmc-")||console.error("FEAAS Clientside is loaded twice into the bundle. This can lead to unexpected problems and needs to be resolved"):Object.defineProperty(window,"FEAASExternalComponents",{get:()=>g.registered}));g.register("feaas-external");g.setRegistrationCallback();Kt.register("feaas-registration");var{getComponent:Nt,linkComponents:pr,registerComponent:fr}=g;var mr=e=>("src"in e&&(e=J(e.src)),y.createElement("link",{rel:"stylesheet",href:jt(e)})),gr=async({...e})=>{let t=await S.fetch((e==null?void 0:e.data)||{}),r={...e};if(("src"in e||"component"in e)&&(e==null?void 0:e.template)==null){let n=await Ut(e);r.template=n.template,r.lastModified=n.lastModified,r.hydrate=!1}return Ie({...r,data:t})};function Ie({data:e,...t}){let r=null,n;return"template"in t&&t.template&&(n=Ft(t.template,e||{}).map((i,o)=>We(i,(s,a)=>{if(s.localName=="feaas-external"){let d={};for(var l in a){let c=l=="data-external-id"?"componentName":ct(l);d[c]=a[l]}return[Be,d]}},o))),"src"in t&&(t={...U(t.src),...t}),y.createElement(y.Fragment,null,"preload"in t&&r===!0&&"src"in t&&y.createElement(y.Fragment,null,y.createElement("link",{rel:"preload",as:"fetch",href:ot(t.src),crossOrigin:"anonymous"}),y.createElement("link",{rel:"preload",as:"style",href:I(t.src),crossOrigin:"anonymous"})),y.createElement("feaas-component",{...t,suppressHydrationWarning:!0,template:null,data:typeof e=="string"?e:e?JSON.stringify(e):null,hydrate:"false"},n))}function Yt(e){var t;let{componentName:r,fallback:n,...i}=e,o=(t=Nt(r))===null||t===void 0?void 0:t.component;if(!o&&n||!r)return y.createElement("feaas-external",{"data-external-id":r,suppressHydrationWarning:!0,hydrate:"false"},n);let s=kt(r,i);return delete s.suppressHydrationWarning,y.createElement(y.Fragment,null,y.createElement("feaas-external",{...Rt(s),"data-external-id":r,suppressHydrationWarning:!0,hydrate:"false"},o==null?null:y.createElement(o,{...s})))}function We(e,t,r){if(e.nodeType===3)return e.textContent;let n=Array.from(e.childNodes).map((l,d)=>We(l,t,d)),i={};for(let l=0;l<e.attributes.length;l++){let{name:d,value:c}=e.attributes[l];d=="style"?i[d]=String(c||"").trim().split(/\s*;\s*/).reduce((f,h)=>{let[u,p]=h.split(":");return{...f,[u]:p}},{}):d=="class"?i.className=c:i[d]=c}let o=t==null?void 0:t(e,i),s=(o==null?void 0:o[0])||e.nodeName.toLowerCase(),a=Object.assign({key:r,suppressHydrationWarning:!0},(o==null?void 0:o[1])||i);return y.createElement(s,a,["img","br","input"].includes(s)?null:n)}var Gt=new Map,Xt=null,Zt=null;function He(e){var t;let{componentName:r,...n}=e,i=(t=Nt(r))===null||t===void 0?void 0:t.component;if(!Gt.get(r)){let s=Zt(()=>Promise.resolve(Xt),{ssr:!1,loading:()=>y.createElement(Yt,{...n,componentName:r})});Gt.set(r,s)}let o=Gt.get(r);return y.createElement(o,{...e,fallback:i?y.createElement(i,{...e}):null})}function ni(e,t){return Zt=e,Xt=t,t}function Be(e){if(Object.keys(e).length!=0)return Zt?He(e):Yt(e)}function br(){return y.createElement(y.Fragment,null,y.createElement("feaas-registration",{components:JSON.stringify(Object.values(g.registered)),suppressHydrationWarning:!0}),y.createElement(Xt,null))}var ii=br,oi=Be,si=Yt,ai=He,Ue=Ie,li=gr,di=mr;export{Ue as Component,Re as ComponentProps,W as Context,k as ControlledPromise,P as DEFAULT_CDN_URL,yt as DOM,bt as DataPath,ft as DataScope,S as DataSettings,A as Element,g as External,oi as ExternalComponent,ii as ExternalComponentBundle,st as FEAASComponent,Re as FEAASComponentsProps,W as FEAASContext,Fe as FEAASContextProps,lt as FEAASEditor,Le as FEAASEditorProps,A as FEAASElement,Be as FEAASExternalComponent,kt as FEAASExternalPropsObject,at as FEAASLoader,ke as FEAASLoaderProps,He as FEAASNextExternalComponent,dt as FEAASPicker,$e as FEAASPickerProps,Ie as FEAASReactComponent,Yt as FEAASReactExternalComponent,br as FEAASReactExternalComponentBundle,gr as FEAASReactServerComponent,mr as FEAASReactStylesheet,wt as FEAASStylesheet,Ne as FEAASStylesheetProps,We as HTMLNodeToReact,vt as InvalidResponse,m as JSONPath,at as Loader,pt as MyComponent,ai as NextExternalComponent,dt as Picker,si as ReactExternalComponent,li as ServerComponent,di as Stylesheet,St as Thumbnail,ht as WebComponent,ce as adjustNumbers,se as autoloadScripts,et as cleanCollectionBit,tr as clearFetchCache,xe as createStylesheet,ni as enableNextClientsideComponents,nt as fetchAndRevalidate,q as fetchAndRevalidateComponent,Et as fetchAndRevalidateStylesheet,At as fetchBypassingCache,rt as fetchCache,Ut as fetchComponent,Bt as fetchData,it as fetchToValidateCache,j as fetchWithCacheAwareness,Ce as findStylesheet,Nt as getComponent,er as getComponentSource,ot as getComponentURL,Ae as getFetchCache,De as getFramePosition,ue as getHumanizedLabel,he as getLastPathBit,de as getQualifier,jt as getStylesheetSource,I as getStylesheetURL,pr as linkComponents,tt as loadScript,Ct as loadStylesheet,It as loadStylesheetAllowStale,gt as normalizeCollectionScope,oe as observeDOMElement,U as parseComponentSource,ae as parseLimit,le as parseRange,J as parseStylesheetSource,V as queryObject,Lt as queryObjectRaw,Q as queryScopes,fr as registerComponent,Wt as renderComponent,nr as renderComponentElement,we as renderComponentPromise,F as renderDOMContent,N as renderDOMElement,Xe as renderHTMLContent,rr as renderStylesheet,Ee as renderStylesheetPromise,D as serializeCH1RichText,$ as setDOMAttribute};
|
|
71
|
+
`,s.contentWindow.document.head.appendChild(c),s.contentWindow.document.head.appendChild(f);let h=Wt({template:r,data:n});h.classList.add(...e,"-feaas--preview","-emulate--"+t.details.slug),s.contentWindow.document.body.appendChild(h)})}async function Me(e,t,r){let n=t?t.getThumbnailURL():e.getThumbnailURL(),i=new Date(Math.max(Number(e.modifiedAt),Number(e.library.stylesheet.modifiedAt)));try{await e.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":t?t.id:null,"x-ms-meta-versionRevision":t?t.revision.toString():null,"x-ms-meta-componentId":e.id,"x-ms-meta-componentRenderedAt":i.toUTCString(),"x-ms-meta-componentModifiedAt":e.modifiedAt.toUTCString(),"x-ms-meta-componentCreatedAt":e.createdAt.toUTCString(),"x-ms-meta-modifiedAt":e.modifiedAt.toUTCString()}}),fetch(n,{cache:"no-cache"}).then(()=>{e.sdk.log("FEAAS: Thumbnail uploaded",n)})}catch(o){e.sdk.log("FEAAS: Thumbnail failed to upload",n,o)}return n}var Vt;typeof window!="undefined"&&(window.FEAASReactElement=z,(Vt=window.FEAASLoading)!==null&&Vt!==void 0||(window.FEAASLoading=Promise.resolve()));function De(e){let t=[];if(e){let r=e.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);t.push({left:i.left+parseInt(a.borderLeftWidth),top:i.top+parseInt(a.borderTopWidth)})}r=n;break}}}return t.reduce((r,n)=>({left:r.left+n.left,top:r.top+n.top}),{left:0,top:0})}function Le(e){var t;return{context:HTMLElement,frontend:e==null?void 0:e.getContextAttribute("frontend"),src:(t=e==null?void 0:e.getAttribute("src"))!==null&&t!==void 0?t:"/editor.js",library:e==null?void 0:e.getAttribute("library"),component:e==null?void 0:e.getAttribute("component"),version:e==null?void 0:e.getAttribute("version"),instance:e==null?void 0:e.getAttribute("instance"),forked:e==null?void 0:e.getAttribute("forked"),revision:(e==null?void 0:e.getAttribute("revision"))||"saved",hidden:(e==null?void 0:e.getAttribute("hidden"))!=null,for:e==null?void 0:e.getAttribute("for"),state:(e==null?void 0:e.getAttribute("state"))||"idle",changed:(e==null?void 0:e.getAttribute("changed"))!=null}}var lt=class extends A{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=(t,r={component:t.getAttribute("component"),version:t.getAttribute("version"),revision:t.getAttribute("revision"),instance:t.getAttribute("instance")})=>{if(!this.closing&&(!this.target||t==null))return this.set(r),this.target=t,!0},this.onChromeMeasureElement=(t,r=t.getBoundingClientRect())=>t.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=t=>{t.memoized.focusable&&(this.framePoint=De(t.memoized.focusable)),this.chrome&&(this.wrapperRect=this.chrome.positionable.getBoundingClientRect(),this.bodyRect=this.chrome.positionable.ownerDocument.body.parentElement.getBoundingClientRect())},this.onMeasure=()=>{},this.onPosition=({focusable:t,root:r})=>{!this.chrome||this.props.hidden||(t?(this.chrome.wrapper.style.width=t.width+16*2+"px",this.chrome.wrapper.style.height=t.height+16*1+64+"px",this.chrome.wrapper.style.left=t.left-16+"px",this.chrome.wrapper.style.top=t.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=t=>{var r;switch((r=t.data)===null||r===void 0?void 0:r.type){case"feaasEdit":let n=this.getPlaceholder();this.setTarget(n.editable,t.data)&&(this.loader=n.loader,document.body.appendChild(n.clipper),this.editedUID=t.data.id,this.setPlaceholder(),this.open());break;case"feaasMeasurements":this.measurements=t.data.measurements,this.props.hidden||this.setPlaceholder();break}},this.onContentChange=()=>{this.setAttribute("changed","changed"),requestAnimationFrame(()=>{this.setIframeComponentContent()})},this.onClose=()=>{var t;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"),!((t=this.target)===null||t===void 0)&&t.parentNode&&(this.target.outerHTML=this.target.outerHTML),this.setTarget(null,{component:null,version:null,instance:null,revision:null}),this.setEditorContext({isFocused:!1})},this.onVersionStateChange=(t,r)=>{this.versionContext=t,this.setVersionContext=r},this.onEditorStateChange=(t,r)=>{this.editorContext=t,this.setEditorContext=r,t.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 Le(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(t){this.iframe=t}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 t=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:t+"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(t,r,n){r!==n&&(t=="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(t,r,n))}open(){clearTimeout(this.closing),this.removeAttribute("hidden"),this.removeAttribute("changed"),this.setLoadingState()}shouldFork(t){return t.forkOriginId==null&&this.props.instance!=null}cleanup(){var t;this.placeholder&&((t=this.placeholder.clipper)===null||t===void 0||t.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(t){console.log("Editor is not ready")}setEditorContext(t){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:t,component:r,version:n,instance:i},{Editor:o,VersionStatusList:s,VersionStatusButton:a,Version:l,VersionMenu:d,EditorUIUndo:c,EditorUIMode:f,React:{useEffect:h,useMemo:u,useState:p,useContext:b},Chakra:{HStack:C,Box:E,Button:K,MenuItem:ut},Chrome:H,ReactDOM:Qt,useSDK:w,useLibrary:_,useSlots:B,useModelObserver:ze,ConfirmationContext:Ve,VersionContext:yr}){if(!this.payload)return;let{React:v}=this.payload,te=w(),ee=_(),[x,re]=p(),{setConfirm:Tt}=b(Ve),G=i||n;x&&(this.component=x),h(()=>{if(this.props.hidden)return;let O=ee.components.getItem(r).clone();return O.versions.search({ids:[n,i].filter(Boolean),componentIds:[r]}).then(Ot=>{O.versions.setItems(Ot);let T=O.findVersion(i,["staged","published"]),X=O.findVersion(n,["staged","published"]);if(T)T.deletedAt?(T.getDraft().changeAndNotify(X.toProperties()).restore(),console.error("FEAAS Editor: Restoring fork")):(console.error("FEAAS Editor: Pre-forked"),this.setAttribute("forked",T.id));else if(this.removeAttribute("forked"),this.shouldFork(X)){console.error("FEAAS Editor: Forking");let Pt=X.fork(i).id;this.setAttribute("instance",Pt)}else console.error("FEAAS Editor: Regular");re(O)}),()=>{this.closing=setTimeout(()=>{this.closing=null,this.cleanup(),re(null)},400)}},[n,this.props.hidden]);let ne=ze(x==null?void 0:x.versions,[]).filter(O=>O.id==G),Y=ne[0];Y&&!this.props.hidden&&(this.version=Y),h(()=>(this.unfork=()=>{Tt({title:"Reverting component customizations",button:"Discard",body:"Are you sure to reset component to its original state? All changes will be lost.",action:()=>{let O=x.findVersion(n,["staged","published"]);x.findVersion(i).unstage().unpublish().changeAndNotify(O.toProperties()),x.saveVersions(!1),this.setVersionContext({needsWrite:!0}),this.removeAttribute("forked"),requestAnimationFrame(this.onClose)}})},this.discard=()=>{this.props.changed&&(x.findVersion(G).revert(),x.saveVersions(!1),this.setVersionContext({needsWrite:!0}))},this.close=()=>{Tt({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=()=>{Tt({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:()=>{x.findVersion(G).commitData({view:this.editorContext.editor.getData({rootName:G}),model:""}).stage().publish(),this.removeAttribute("changed"),this.setAttribute("forked",G),x.saveVersions(!1)}})},()=>{delete this.unfork,delete this.discard,delete this.save,delete this.editorContext,delete this.versionContext,delete this.setEditorContext,delete this.setVersionContext}),[x]);let Je=u(()=>this.target,[x]);return u(()=>x&&B(t,({picker:O,children:Ot})=>v.createElement(E,{ref:T=>{this.chrome=T?{positionable:T,wrapper:T.querySelector(".editor-chrome"),absolute:this.querySelector(".ui.overlays")}:null}},v.createElement(E,{className:"editor-wrapper",position:"absolute",left:0,top:0},v.createElement(o,{datasources:te.datasources,sdk:te,library:ee,component:x,versions:ne,context:{isAutosaveEnabled:!1,onChromeMeasure:this.onMeasure,onChromeBeforeMeasure:this.onBeforeMeasure,onChromeMeasureElement:this.onChromeMeasureElement,onChromePosition:this.onPosition,onContentChange:this.onContentChange}},{exports:this.onEditorStateChange,after:Ot,chrome:({editor:T})=>T&&v.createElement(H,null),children:({isArchivedDisplayed:T,editor:X,status:Pt})=>v.createElement(E,{position:"absolute",left:0,top:0,className:"editor-chrome",p:4,boxShadow:"2xl",pointerEvents:"none",opacity:0,transition:"opacity 0.3s"},v.createElement(E,{left:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(E,{right:0,width:"4",top:0,bottom:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(E,{top:0,height:"16",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),v.createElement(E,{bottom:0,height:"4",left:0,right:0,backdropFilter:"blur(2px)",background:"rgb(244 244 244 / 80%)",position:"absolute"}),Y&&v.createElement(l,{version:Y,node:Je,ignoreBreakpoints:!0,deps:[this.props.forked,this.props.changed]},{exports:this.onVersionStateChange,left:v.createElement(C,{justifyContent:"space-between"},v.createElement(c,{size:"sm",editor:Pt=="ready"?X:null}),v.createElement(f,{size:"sm"})),middle:(vr,Ar)=>[!1],right:v.createElement(v.Fragment,null,v.createElement(K,{variant:"secondary",size:"sm",onClick:this.close},"Close"),v.createElement(K,{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(ut,{onClick:this.unfork,isDisabled:!this.props.forked},"Unfork"),v.createElement(ut,{onClick:this.discard,isDisabled:!this.props.changed},"Discard")))}))})))),[Y,this.props.forked,this.props.changed])}isReadyToLoad(){return this.props.component!=null&&this.props.version!=null&&!this.props.hidden}};lt.observedAttributes=["library","component","version","revision","hidden","state","changed","forked"];lt.register("feaas-editor");function $e(e){var t,r;return{part:(e==null?void 0:e.getAttribute("part"))||"picker",slot:(e==null?void 0:e.getAttribute("part"))||"picker",mode:e==null?void 0:e.getAttribute("mode"),dialog:e==null?void 0:e.getAttribute("dialog"),placeholder:(e==null?void 0:e.getAttribute("placeholder"))||"No theme",frontend:(t=e==null?void 0:e.getContextAttribute("frontend"))!==null&&t!==void 0?t:"https://components.sitecorecloud.io",src:(r=e==null?void 0:e.getAttribute("src"))!==null&&r!==void 0?r:"/picker.js",hidden:(e==null?void 0:e.getAttribute("hidden"))!=null,variant:e==null?void 0:e.getAttribute("variant"),context:void 0,onClose:void 0,setAttribute:void 0,getAttribute:void 0}}var dt=class extends A{constructor(){super(...arguments),this.defaultProps={hidden:!1}}getProps(){return $e(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:t,context:r,mode:n,dialog:i,children:o,variant:s},{Picker:a,React:l,useLibrary:d,useSDK:c}){let[f,h]=l.useReducer(w=>w+1,0),u=d("collections"),p=d("components"),b=c("datasources"),C=d("stylesheet.styles"),E=p.find(w=>w.id==(r==null?void 0:r.getAttribute("component"))),K=r==null?void 0:r.getAttribute("data-external-id"),ut=c("externalComponents").find(w=>w.name==K);var H=r==null?void 0:r.getAttribute("data");if(H)try{H=JSON.parse(H)}catch(w){}let Qt=n=="datasources"?b.find(w=>w.id==i):null;return l.createElement(a,{rules:C,collections:u,themeContext:r,placeholder:t,component:E,externalComponent:ut,datasource:Qt,data:H,versionId:r==null?void 0:r.getAttribute("version"),mode:n||(E?"component":K?"external":null),setAttribute:(w,_,B)=>{_=="data"&&B&&(B=JSON.stringify(B)),this.props.setAttribute(w,_,B),h()},getAttribute:(w,_)=>r==null?void 0:r.getAttribute(_),dialog:i,context:r,variant:s,onModeChange:(w,_)=>{this.set({mode:w,dialog:_})}},o)}};dt.observedAttributes=["library","mode","frontend","src","hidden","variant","dialog"];dt.register("feaas-picker");function Fe(e){var t,r,n,i,o;return{library:e==null?void 0:e.getAttribute("library"),src:(t=e==null?void 0:e.getAttribute("src"))!==null&&t!==void 0?t:"/context.js",environment:(r=e==null?void 0:e.getAttribute("environment"))!==null&&r!==void 0?r:void 0,frontend:(n=e==null?void 0:e.getAttribute("frontend"))!==null&&n!==void 0?n:"https://components.sitecorecloud.io",backend:(i=e==null?void 0:e.getAttribute("backend"))!==null&&i!==void 0?i:"https://components.sitecorecloud.io/api",cdn:(o=e==null?void 0:e.getAttribute("cdn"))!==null&&o!==void 0?o:"https://feaas.blob.core.windows.net",auth:null,isolate:(e==null?void 0:e.getAttribute("isolate"))==null||(e==null?void 0:e.getAttribute("isolate"))=="true"}}var W=class extends A{constructor(){super(...arguments),this.defaultProps={isolate:!0},this.onStatusChange=(t,r)=>{t=="ready"&&(this.whenSDKReady.resolve(r),this.dispatchEvent(new CustomEvent("feaasReady",{bubbles:!0,composed:!0,detail:r})))},this.whenSDKReady=k(t=>{this.sdk=t})}getProps(){return Fe(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(t){return t}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(t=>{this.getRoot().appendChild(t)}),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:t,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}}},t)}};W.observedAttributes=["library","component","version","revision","hostname","template"];W.register("feaas-context");W.prototype.clientside=Jt;import y from"react";import je from"react";import ar from"react-dom";function qt(e){let t=/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g;return e.replace(t,function(r){return"-"+r.toLowerCase()})}function ct(e){let t=/-[a-z\u00E0-\u00F6\u00F8-\u00FE]/g;return e.replace(t,function(r){return r.slice(1).toUpperCase()})}var lr=e=>Object.keys(e).reduce((t,r)=>{if(e[r].title)t[r]=e[r];else{let n=r.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1).toLowerCase()).join(" ");t[r]={...e[r],title:n}}return t},{}),Rt=(e={})=>Object.keys(e).reduce((t,r)=>(t[qt(r)]=e[r],t),{}),dr=e=>{if(!e)return;if(!e.properties)return e;let t,r;return t=Rt(e.properties),r=(e.required||[]).map(i=>qt(i)),t=lr(t),{...e,properties:t,required:r,title:void 0}},cr=(e,t)=>{if(!e||!t)return;let r;return r=Rt(e),Object.keys(t).filter(i=>/(integer|number)/.test(t[i].type)).forEach(i=>{r[i]?r[i]["ui:widget"]||(r[i]["ui:widget"]="updown"):r[i]={"ui:widget":"updown"}}),r},ur=(e,t,r)=>{var n;switch((n=r==null?void 0:r[e])===null||n===void 0?void 0:n.type){case"string":return t;case"object":try{return typeof t=="object"&&t!=null?t:JSON.parse(t)}catch(i){return null}case"array":try{return Array.isArray(t)?t:JSON.parse(t)}catch(i){return null}case"number":return parseFloat(t);case"integer":return parseInt(t);case"boolean":return t=="true"||t=="1";default:return t}};function hr(e){let t=Array.from(e.attributes).reduce((r,{name:n,value:i})=>Object.assign(r,{[n]:i}),{});return kt(t["data-external-id"],t)}function kt(e,t){var r;let n=(r=g.registered[e])===null||r===void 0?void 0:r.schema;return Object.keys(t).reduce((i,o)=>{let s=t[o];return!o.startsWith("data-attribute")&&!["class","id","contenteditable"].includes(o)?{...i,[ct(o)]:ur(ct(o),s,n==null?void 0:n.properties)}:i},{})}var g=class extends A{load(){return Promise.resolve({React:je,ReactDOM:ar})}update(){var t;let{dataExternalId:r}=this.props;if(!(!(!((t=g.registered[r])===null||t===void 0)&&t.component)&&this.getAttribute("hydrate")=="false"))return super.update()}render(t,{React:r}){var n;let{dataExternalId:i}=t,o=(n=g.registered[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,{...t}))}getProps(){return hr(this)}static registerComponent(t,r){if(!r.name)throw new Error("Could not register external component. Please make sure you provide a name in the options"+JSON.stringify(r));let n=r.name,{thumbnail:i,group:o,ui:s,...a}=r,l={...a,type:"object"};g.registered[n]={component:t,name:n,schema:l,uiSchema:s,thumbnail:i,group:o,title:(l==null?void 0:l.title)||n},g.setRegistrationCallback()}static setRegistrationCallback(){clearTimeout(g.registrationCallback),g.registrationCallback=setTimeout(()=>{var t;if(typeof window!="undefined"){let r=Object.keys(g.registered).map(n=>{var i;return{...g.registered[n],name:n,schema:dr(g.registered[n].schema),uiSchema:cr(g.registered[n].uiSchema,(i=g.registered[n].schema)===null||i===void 0?void 0:i.properties)}});(t=window.parent)===null||t===void 0||t.postMessage(JSON.stringify({action:"register-components",data:r}),"*")}},30)}static Preview(t){var r;let n=(t==null?void 0:t.src)||(typeof window!="undefined"?(r=window.location.search.match(/feaasSrc=([^&]+)/))===null||r===void 0?void 0:r[1]:null);return n?je.createElement(Ue,{src:n,...t}):null}static linkComponents(t){return()=>t.map(r=>null)}static getComponent(t){return g.registered[t]}};g.registered={};var Kt=class extends ht{connectedCallback(){try{JSON.parse(this.getAttribute("components")).forEach(t=>{g.registerComponent(null,t)})}catch(t){}}static register(t){return A.register.call(this,t)}};typeof window!="undefined"&&window&&("FEAASExternalComponents"in window?location.hostname.startsWith("xmc-")||console.error("FEAAS Clientside is loaded twice into the bundle. This can lead to unexpected problems and needs to be resolved"):Object.defineProperty(window,"FEAASExternalComponents",{get:()=>g.registered}));g.register("feaas-external");g.setRegistrationCallback();Kt.register("feaas-registration");var{getComponent:Nt,linkComponents:pr,registerComponent:fr}=g;var mr=e=>("src"in e&&(e=J(e.src)),y.createElement("link",{rel:"stylesheet",href:jt(e)})),gr=async({...e})=>{let t=await S.fetch((e==null?void 0:e.data)||{}),r={...e};if(("src"in e||"component"in e)&&(e==null?void 0:e.template)==null){let n=await Ut(e);r.template=n.template,r.lastModified=n.lastModified,r.hydrate=!1}return Ie({...r,data:t})};function Ie({data:e,...t}){let r=null,n;return"template"in t&&t.template&&(n=Ft(t.template,e||{}).map((i,o)=>We(i,(s,a)=>{if(s.localName=="feaas-external"){let d={};for(var l in a){let c=l=="data-external-id"?"componentName":ct(l);d[c]=a[l]}return[Be,d]}},o))),"src"in t&&(t={...U(t.src),...t}),y.createElement(y.Fragment,null,"preload"in t&&r===!0&&"src"in t&&y.createElement(y.Fragment,null,y.createElement("link",{rel:"preload",as:"fetch",href:ot(t.src),crossOrigin:"anonymous"}),y.createElement("link",{rel:"preload",as:"style",href:I(t.src),crossOrigin:"anonymous"})),y.createElement("feaas-component",{class:"-feaas",...t,suppressHydrationWarning:!0,template:null,data:typeof e=="string"?e:e?JSON.stringify(e):null,hydrate:"false"},n))}function Yt(e){var t;let{componentName:r,fallback:n,...i}=e,o=(t=Nt(r))===null||t===void 0?void 0:t.component;if(!o&&n||!r)return y.createElement("feaas-external",{"data-external-id":r,suppressHydrationWarning:!0,hydrate:"false"},n);let s=kt(r,i);return delete s.suppressHydrationWarning,y.createElement(y.Fragment,null,y.createElement("feaas-external",{...Rt(s),"data-external-id":r,suppressHydrationWarning:!0,hydrate:"false"},o==null?null:y.createElement(o,{...s})))}function We(e,t,r){if(e.nodeType===3)return e.textContent;let n=Array.from(e.childNodes).map((l,d)=>We(l,t,d)),i={};for(let l=0;l<e.attributes.length;l++){let{name:d,value:c}=e.attributes[l];d=="style"?i[d]=String(c||"").trim().split(/\s*;\s*/).reduce((f,h)=>{let[u,p]=h.split(":");return{...f,[u]:p}},{}):d=="class"?i.className=c:i[d]=c}let o=t==null?void 0:t(e,i),s=(o==null?void 0:o[0])||e.nodeName.toLowerCase(),a=Object.assign({key:r,suppressHydrationWarning:!0},(o==null?void 0:o[1])||i);return y.createElement(s,a,["img","br","input"].includes(s)?null:n)}var Gt=new Map,Xt=null,Zt=null;function He(e){var t;let{componentName:r,...n}=e,i=(t=Nt(r))===null||t===void 0?void 0:t.component;if(!Gt.get(r)){let s=Zt(()=>Promise.resolve(Xt),{ssr:!1,loading:()=>y.createElement(Yt,{...n,componentName:r})});Gt.set(r,s)}let o=Gt.get(r);return y.createElement(o,{...e,fallback:i?y.createElement(i,{...e}):null})}function ni(e,t){return Zt=e,Xt=t,t}function Be(e){if(Object.keys(e).length!=0)return Zt?He(e):Yt(e)}function br(){return y.createElement(y.Fragment,null,y.createElement("feaas-registration",{components:JSON.stringify(Object.values(g.registered)),suppressHydrationWarning:!0}),y.createElement(Xt,null))}var ii=br,oi=Be,si=Yt,ai=He,Ue=Ie,li=gr,di=mr;export{Ue as Component,Re as ComponentProps,W as Context,k as ControlledPromise,P as DEFAULT_CDN_URL,yt as DOM,bt as DataPath,ft as DataScope,S as DataSettings,A as Element,g as External,oi as ExternalComponent,ii as ExternalComponentBundle,st as FEAASComponent,Re as FEAASComponentsProps,W as FEAASContext,Fe as FEAASContextProps,lt as FEAASEditor,Le as FEAASEditorProps,A as FEAASElement,Be as FEAASExternalComponent,kt as FEAASExternalPropsObject,at as FEAASLoader,ke as FEAASLoaderProps,He as FEAASNextExternalComponent,dt as FEAASPicker,$e as FEAASPickerProps,Ie as FEAASReactComponent,Yt as FEAASReactExternalComponent,br as FEAASReactExternalComponentBundle,gr as FEAASReactServerComponent,mr as FEAASReactStylesheet,wt as FEAASStylesheet,Ne as FEAASStylesheetProps,We as HTMLNodeToReact,vt as InvalidResponse,m as JSONPath,at as Loader,pt as MyComponent,ai as NextExternalComponent,dt as Picker,si as ReactExternalComponent,li as ServerComponent,di as Stylesheet,St as Thumbnail,ht as WebComponent,ce as adjustNumbers,se as autoloadScripts,et as cleanCollectionBit,tr as clearFetchCache,xe as createStylesheet,ni as enableNextClientsideComponents,nt as fetchAndRevalidate,q as fetchAndRevalidateComponent,Et as fetchAndRevalidateStylesheet,At as fetchBypassingCache,rt as fetchCache,Ut as fetchComponent,Bt as fetchData,it as fetchToValidateCache,j as fetchWithCacheAwareness,Ce as findStylesheet,Nt as getComponent,er as getComponentSource,ot as getComponentURL,Ae as getFetchCache,De as getFramePosition,ue as getHumanizedLabel,he as getLastPathBit,de as getQualifier,jt as getStylesheetSource,I as getStylesheetURL,pr as linkComponents,tt as loadScript,Ct as loadStylesheet,It as loadStylesheetAllowStale,gt as normalizeCollectionScope,oe as observeDOMElement,U as parseComponentSource,ae as parseLimit,le as parseRange,J as parseStylesheetSource,V as queryObject,Lt as queryObjectRaw,Q as queryScopes,fr as registerComponent,Wt as renderComponent,nr as renderComponentElement,we as renderComponentPromise,F as renderDOMContent,N as renderDOMElement,Xe as renderHTMLContent,rr as renderStylesheet,Ee as renderStylesheetPromise,D as serializeCH1RichText,$ as setDOMAttribute};
|
|
72
72
|
//# sourceMappingURL=react.esm.js.map
|