var _FlexpaLink=function(){"use strict";var o=Object.defineProperty;var h=(a,t,n)=>t in a?o(a,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[t]=n;var e=(a,t,n)=>(h(a,typeof t!="symbol"?t+"":t,n),n);class a{constructor(){e(this,"iframe");e(this,"publishableKey");e(this,"user");e(this,"endpoint");e(this,"targetUrl");e(this,"strict",!0);e(this,"autoExit",!0);e(this,"skipExplainer",!1);e(this,"skipSyncing",!1);e(this,"requestedResources");e(this,"usage");e(this,"onSuccess");e(this,"onSyncing");e(this,"onExit");e(this,"onLoad");e(this,"boundListenEvent");this.boundListenEvent=this.listen.bind(this)}listen(s){if(s.origin==="https://link.flexpa.com")switch(s.data.type){case"SUCCESS":this.close(),this.onSuccess&&this.onSuccess(s.data.payload);break;case"SYNCING":this.onSyncing&&this.onSyncing(s.data.payload);break;case"LOADED":this.onLoad&&this.onLoad();break;case"CLOSED":this.close(),this.onExit&&this.onExit(s.data.payload);break}}create(s){Object.entries(s).forEach(([i,r])=>{this[i]=r}),this.targetUrl=this.buildTargetUrl()}open(s){if(!this.publishableKey)throw new Error("You must call `FlexpaLink.create(config)` before calling `FlexpaLink.open()`");if(!this.iframe){this.iframe=document.createElement("iframe");const i=` position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; border: none; margin: 0; padding: 0; overflow: hidden; z-index: 999999;`;this.iframe.id="flexpa-link-iframe",this.iframe.style.cssText=i,this.iframe.allow="clipboard-write https://link.flexpa.com",this.iframe.src=this.buildTargetUrl(s==null?void 0:s.endpoint).toString(),this.iframe.title="Flexpa Link",document.body.appendChild(this.iframe),window.addEventListener("message",this.boundListenEvent)}}exit(){this.close(),this.onExit&&this.onExit()}close(){this.iframe&&(document.body.removeChild(this.iframe),this.iframe=void 0,window.removeEventListener("message",this.boundListenEvent))}buildTargetUrl(s){if(!this.publishableKey)throw"publishableKey required";if(!this.onSuccess)throw"onSuccess required";const i=new URL("https://link.flexpa.com");return i.searchParams.append("publishableKey",this.publishableKey),i.searchParams.append("openerUrl",window.location.href),i.searchParams.append("strict",this.strict?"true":"false"),i.searchParams.append("autoExit",this.autoExit?"true":"false"),i.searchParams.append("skipSyncing",this.skipSyncing?"true":"false"),i.searchParams.append("skipExplainer",this.skipExplainer?"true":"false"),this.user&&i.searchParams.append("user",JSON.stringify(this.user)),this.requestedResources&&i.searchParams.append("requestedResources",encodeURIComponent(this.requestedResources.join(","))),s?i.searchParams.append("endpoint",s):this.endpoint&&i.searchParams.append("endpoint",this.endpoint),this.usage&&i.searchParams.append("usage",this.usage),i}}const t=new a;return typeof window<"u"&&(window.FlexpaLink=t),t}();