var _FlexpaLink=function(t){"use strict";var N=Object.defineProperty;var h=(t,n,I)=>n in t?N(t,n,{enumerable:!0,configurable:!0,writable:!0,value:I}):t[n]=I;var e=(t,n,I)=>h(t,typeof n!="symbol"?n+"":n,I);class n{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,"onReset");e(this,"onIframeCreated");e(this,"boundListenEvent");e(this,"_ial2Mode");e(this,"_chatbotMode");e(this,"lineOfBusiness");e(this,"hasStateParam",!1);e(this,"patientAuthorizationId");this.boundListenEvent=this.listen.bind(this)}getStateParam(){return typeof window<"u"?new URLSearchParams(window.location.search).get("flexpaLinkState"):null}decodeStateParam(a){if(!a)return null;try{return JSON.parse(atob(a))}catch{return null}}listen(a){a.origin==="https://link.flexpa.com"&&this.handleLinkMessageEvent(a.data)}handleLinkMessageEvent(a){switch(a.type){case"SUCCESS":this.close(),this.onSuccess&&this.onSuccess(a.payload);break;case"SYNCING":this.onSyncing&&this.onSyncing(a.payload);break;case"LOADED":this.onLoad&&this.onLoad();break;case"CLOSED":this.close(),this.onExit&&this.onExit(a.payload);break;case"RESET":this.onReset&&this.onReset();break}}create(a){Object.entries(a).forEach(([s,l])=>{this[s]=l}),this.targetUrl=this.buildTargetUrl()}open(a){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 s=this.onIframeCreated?` position: relative; width: 100%; height: 100%; border: none; margin: 0; padding: 0; overflow: hidden;`:` 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=s,this.iframe.allow="clipboard-write https://link.flexpa.com",this.iframe.src=this.buildTargetUrl(a==null?void 0:a.endpoint).toString(),this.iframe.title="Flexpa Link",this.onIframeCreated?this.onIframeCreated(this.iframe):document.body.appendChild(this.iframe),window.addEventListener("message",this.boundListenEvent)}}exit(){this.close(),this.onExit&&this.onExit()}close(){this.iframe&&(this.iframe.parentElement&&this.iframe.parentElement.removeChild(this.iframe),this.iframe=void 0,window.removeEventListener("message",this.boundListenEvent))}buildTargetUrl(a){if(!this.publishableKey)throw new Error("publishableKey required");if(!this.onSuccess)throw new Error("onSuccess required");const s=new URL("https://link.flexpa.com");return s.searchParams.append("publishableKey",this.publishableKey),s.searchParams.append("openerUrl",window.location.href),s.searchParams.append("strict",this.strict?"true":"false"),s.searchParams.append("autoExit",this.autoExit?"true":"false"),s.searchParams.append("skipSyncing",this.skipSyncing?"true":"false"),s.searchParams.append("skipExplainer",this.skipExplainer?"true":"false"),this.user&&s.searchParams.append("user",JSON.stringify(this.user)),this.requestedResources&&s.searchParams.append("requestedResources",encodeURIComponent(this.requestedResources.join(","))),a?s.searchParams.append("endpoint",a):this.endpoint&&s.searchParams.append("endpoint",this.endpoint),this.usage&&s.searchParams.append("usage",this.usage),this._ial2Mode&&s.searchParams.append("_ial2Mode",this._ial2Mode?"true":"false"),this._chatbotMode&&s.searchParams.append("_chatbotMode",this._chatbotMode?"true":"false"),this.lineOfBusiness&&["EMPLOYER","OFF_EXCHANGE","MEDICARE_ADV","ON_EXCHANGE","MEDICAID"].includes(this.lineOfBusiness)&&s.searchParams.append("lineOfBusiness",this.lineOfBusiness),this.onIframeCreated&&s.searchParams.append("displayMode","inline"),this.patientAuthorizationId&&s.searchParams.append("patientAuthorizationId",this.patientAuthorizationId),s}}var I=(i=>(i.MISSING_MFA_METHODS="MISSING_MFA_METHODS",i.INVALID_MFA_CODE="INVALID_MFA_CODE",i.INVALID_MFA_METHOD="INVALID_MFA_METHOD",i.INVALID_CREDENTIALS="INVALID_CREDENTIALS",i.INVALID_STEP="INVALID_STEP",i.INVALID_AUTH_STATE="INVALID_AUTH_STATE",i.DATA_FETCH_FAILED="DATA_FETCH_FAILED",i.INVALID_SESSION="INVALID_SESSION",i.INVALID_PATIENT_AUTHORIZATION="INVALID_PATIENT_AUTHORIZATION",i.INVALID_ENDPOINT="INVALID_ENDPOINT",i.RATE_LIMIT_EXCEEDED="RATE_LIMIT_EXCEEDED",i.UNKNOWN_ERROR="UNKNOWN_ERROR",i.CONNECTION_TIMEOUT="CONNECTION_TIMEOUT",i.CONNECTION_ERROR="CONNECTION_ERROR",i.INVALID_EVENT="INVALID_EVENT",i.INVALID_AUTH_HEADER="INVALID_AUTH_HEADER",i.INVALID_PATIENT_ID="INVALID_PATIENT_ID",i.TERMS_OF_USE_NOT_ACCEPTED="TERMS_OF_USE_NOT_ACCEPTED",i.SERVER_ERROR="SERVER_ERROR",i.UNSUPPORTED_PLAN_SELECTION="UNSUPPORTED_PLAN_SELECTION",i))(I||{});const E=new n;typeof window<"u"&&(window.FlexpaLink=E);const _=Object.values(I),r=["API_DOWN","MISSING_PAT","MISSING_PAT_ID","MISSING_PATIENT_ID","MISSING_ENDPOINT","MISSING_SMART_CONFIG","MISSING_APPLICATION","MISSING_SESSION_TOKEN","INVALID_ENDPOINT","INVALID_ENDPOINT_MODE","INVALID_STATE","INVALID_REQUEST","INVALID_SESSION_TOKEN","INVALID_PUBLISHABLE_KEY","INVALID_REDIRECT_URL","INVALID_USER","INVALID_USAGE","INVALID_TYPE","INVALID_PATIENT_AUTHORIZATION","QUERY_REJECTED","QUERY_TIMEOUT","QUERY_INELIGIBLE","QUERY_UNKNOWN","QUERY_SERVER_ERROR","QUERY_INVALID_CONFIG","QUERY_INVALID_SCOPE","AUTHORIZATION_CODE_EXCHANGE","SYNC_FAILED",..._];return t.AuthenticatorErrorCodes=I,t.CredentialsFailureTypes=_,t.FailureTypes=r,t.default=E,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}}),t}({});