@dhanyatra/checkout-js
Version:
Check Js Module For Instant Web Checkout
3 lines (2 loc) • 3.86 kB
JavaScript
var e=document.createElement("div");e.innerHTML="<style>\n .dhanyatra-container > iframe { min-height: 100%!important; }\n @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }\n @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }\n</style>",e.className="dhanyatra-container",e.style.cssText="z-index: 2147483647; position: fixed; top: 0px; display: none; left: 0px; height: 100%; width: 100%; backface-visibility: hidden; overflow-y: visible;";var t=document.createElement("div");t.className="dhanyatra-backdrop";var s=document.createElement("div");s.className="dhanyatra-loader",Object.assign(t.style,{"min-height":"100%",transition:"0.3s ease-out",position:"fixed",top:"0",left:"0",width:"100%",height:"100%",background:"rgba(0, 0, 0, 0.6)",display:"flex","justify-content":"center","align-items":"center"}),Object.assign(s.style,{border:"5px solid #ffffff","border-bottom-color":"transparent","border-radius":"50%",display:"inline-block","box-sizing":"border-box",width:"48px",height:"48px",animation:"spin 2s linear infinite"}),t.appendChild(s),e.appendChild(t),document.body.appendChild(e);class n{constructor(e){if(this.options=void 0,this.baseUrl="https://checkout.dhanyatra.brighthustle.in",this.eventListenerAttached=!1,this.onSuccessHandled=!1,this.onDismissHandled=!1,this.onErrorHandled=!1,this.handleMessage=e=>{var{origin:t,data:s}=e;if(t===this.baseUrl)switch(s.action){case"dismissModal":this.handleDismissModal(s.data);break;case"paymentSuccess":this.handlePaymentResponse(s.data);break;default:this.handleErrorResponse(s.data)}},this.handleDismissModal=e=>{document.getElementById("dhanyatraIframe")&&(this.onDismissHandled||(this.options.modal.onDismiss(e),this.onDismissHandled=!0))},this.handlePaymentResponse=e=>{!this.onSuccessHandled&&this.options&&this.options.modal&&"function"==typeof this.options.modal.onSuccess&&(this.options.modal.onSuccess(e),this.onSuccessHandled=!0)},this.handleErrorResponse=e=>{!this.onErrorHandled&&this.options&&this.options.modal&&"function"==typeof this.options.modal.onError&&(this.options.modal.onError(e),this.onErrorHandled=!0)},!e)throw new Error("Options must be provided to the Dhanyatra constructor.");this.options=e,this.attachEventListener()}close(){var t=document.getElementById("dhanyatraIframe");t&&(t.style.animation="fadeOut 0.5s",this.removeEventListener(),setTimeout(()=>{var s;null==(s=t.parentNode)||s.removeChild(t),e.style.display="none"},500))}open(){this.onSuccessHandled=!1,this.onDismissHandled=!1,this.onErrorHandled=!1,s.style.display="block",e.style.display="block";var t=document.createElement("iframe");t.setAttribute("id","dhanyatraIframe"),Object.assign(t.style,{opacity:"0",height:"100%",position:"relative",background:"none",display:"none",border:"0px none transparent",margin:"0px",padding:"0px",zIndex:"2",width:"100%",animation:"fadeIn 0.5s forwards"}),t.frameBorder="0",t.setAttribute("allowTransparency","true");var n="?_="+(new Date).getTime();t.src=""+this.baseUrl+n,e.appendChild(t);var i=JSON.stringify(this.options);t.setAttribute("referrerpolicy","no-referrer-when-downgrade"),t.addEventListener("load",()=>{setTimeout(()=>{var e;null==(e=t.contentWindow)||e.postMessage(i,"*")},500),setTimeout(()=>{s.style.display="none",t.style.display="block"},1e3)}),t.addEventListener("error",()=>{console.error("Iframe failed to load. Retrying..."),setTimeout(()=>{t.src=""+this.baseUrl+n},3e3)})}attachEventListener(){this.eventListenerAttached||(window.addEventListener("message",e=>this.handleMessage(e)),this.eventListenerAttached=!0)}removeEventListener(){this.eventListenerAttached&&(window.removeEventListener("message",e=>this.handleMessage(e)),this.eventListenerAttached=!1)}}export{n as Dhanyatra};
//# sourceMappingURL=checkout.module.js.map