-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlink.js
1 lines (1 loc) · 2.07 KB
/
link.js
1
!function(){"use strict";var e=document.createElement("iframe"),n={isLinkOpen:!1,linkId:null,accountIdentifier:void 0,redirectURL:void 0,baseURL:"https://app.poozle.dev",isIFrameCreated:!1,isIFrameReady:!1,onValidationError:function(){},onExit:function(){},onSuccess:function(){},onIFrameReady:function(){},savedBodyStyles:{overflow:"auto",height:"auto"}},i=function(){e.contentWindow&&e.contentWindow.postMessage({messageType:"SEND_INFO_TO_IFRAME",linkId:n.linkId||"0",accountIdentifier:n.accountIdentifier,redirectURL:n.redirectURL,isLinkOpen:n.isLinkOpen},"*")};window.addEventListener("message",function(e){var o=e.data,a=o.messageType,d=o.validationErrors;switch(a){case"SEND_VALIDATION_ERRORS_TO_PARENT":d&&d.length&&n.onValidationError(d);break;case"LINKING_FLOW_READY_FOR_LINK_TOKEN":n.isIFrameReady=!0,n.onIFrameReady(),i();break;case"CLOSE_LINKING_FLOW":t(),n.onExit&&n.onExit()}});var t=function(){document.body.style.margin=n.savedBodyStyles.margin,e.style.display="none",n.isLinkOpen=!1,e.contentWindow&&e.contentWindow.postMessage({messageType:"EXIT_POOZLE_LINK"},"*")};window.PoozleLink={initialize:function(i){n.linkId=i.linkId,n.accountIdentifier=i.accountIdentifier,n.redirectURL=i.redirectURL,i.baseURL&&(n.baseURL=i.baseURL),n.onValidationError=i.onValidationError||function(){},n.onSuccess=i.onSuccess||function(){},n.onIFrameReady=i.onReady||function(){},n.onExit=i.onExit||function(){};var t=n.accountIdentifier?`accountIdentifier=${n.accountIdentifier}`:"",o=n.redirectURL?t?`&redirectURL=${n.redirectURL}`:`redirectURL=${n.redirectURL}`:"";e.src=`${n.baseURL}/link/frame/${n.linkId}?${t}${o}`,n.isIFrameCreated||(n.isIFrameCreated=!0,e.style.display="none",document.body.appendChild(e)),n.isIFrameReady&&n.onIFrameReady()},openLink:function(){n.isLinkOpen=!0,n.linkId?i():e.contentWindow&&e.contentWindow.postMessage({messageType:"SEND_INFO_TO_IFRAME",isLinkOpen:n.isLinkOpen},"*"),e.style.display="block",e.style.width="100vw",e.style.height="100vh",e.style.position="fixed",e.style.top=0,n.savedBodyStyles={margin:document.body.style.margin},document.body.style.margin=0},closeLink:t}}();