@flows/js-components
Version:
Built-in components for Flows JS SDK
2 lines (1 loc) • 2.14 kB
JavaScript
;var m=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var C=(o,t)=>{for(var n in t)m(o,n,{get:t[n],enumerable:!0})},y=(o,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of h(t))!f.call(o,e)&&e!==n&&m(o,e,{get:()=>t[e],enumerable:!(s=u(t,e))||s.enumerable});return o};var g=o=>y(m({},"__esModule",{value:!0}),o);var L={};C(L,{render:()=>v,updateSlotComponents:()=>E});module.exports=g(L);var d=[],v=o=>{d.forEach(t=>{t.cleanup(),t.el&&t.el.remove()}),d=[],o.blocks.forEach(t=>{let n=t.type==="component"?o.components[t.component]:t.type==="tour-component"?o.tourComponents[t.component]:null;if(n){let{cleanup:s,element:e}=n(t.props);d.push({el:e,cleanup:s,blockId:t.id}),e&&document.body.appendChild(e)}})};var l=require("@flows/js"),c={},a={},k=o=>{if(typeof window=="undefined"||customElements.get("flows-slot"))return;class t extends HTMLElement{constructor(){super(...arguments);this.mountedElements=[];this.blocks=[]}get slotId(){var e;return(e=this.getAttribute("data-slot-id"))!=null?e:""}get placeholderElement(){return this.querySelector("[data-placeholder]")}connectedCallback(){var r;this.blocks=(0,l.getCurrentSlotBlocks)(this.slotId);let e=(r=o.addSlotBlocksChangeListener)!=null?r:l.addSlotBlocksChangeListener;this.changeListenerDispose=e(this.slotId,i=>{this.blocks=i,this.render()}),this.render()}disconnectedCallback(){var e;(e=this.changeListenerDispose)==null||e.call(this),this.unmount()}render(){this.unmount(),this.placeholderElement&&(this.blocks.length?this.placeholderElement.hidden=!0:this.placeholderElement.hidden=!1),this.blocks.forEach(e=>{let r=e.type==="component"?c[e.component]:e.type==="tour-component"?a[e.component]:null;if(r){let{cleanup:i,element:p}=r(e.props);this.mountedElements.push({el:p,cleanup:i,blockId:e.id}),p&&this.appendChild(p)}})}unmount(){this.mountedElements.forEach(e=>{e.cleanup(),e.el&&e.el.remove()}),this.mountedElements=[]}}customElements.define("flows-slot",t)},E=o=>{k({addSlotBlocksChangeListener:o.addSlotBlocksChangeListener}),c=o.components,a=o.tourComponents};