@spot-flow/checkout-inline-js 0.1.22 → 0.1.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28839,7 +28839,7 @@ class ao {
28839
28839
  this.rdtCode,
28840
28840
  this.url
28841
28841
  );
28842
- o.status === "failed" ? this.currentStep = 4 : ["success", "successful"].includes(o.status) ? e(o) : console.log("wating");
28842
+ o.status === "failed" ? this.currentStep = 4 : ["success", "successful"].includes(o.status) && e(o);
28843
28843
  } catch (o) {
28844
28844
  console.error(o), n(new Error("failed"));
28845
28845
  }
@@ -29363,13 +29363,12 @@ class kt {
29363
29363
  closeModal: n,
29364
29364
  container: o,
29365
29365
  email: a,
29366
- planId: s,
29367
- token: t,
29368
- currency: d,
29369
- rdtCode: r,
29370
- url: l,
29371
- reference: c,
29372
- onSuccess: h
29366
+ token: s,
29367
+ currency: t,
29368
+ rdtCode: d,
29369
+ url: r,
29370
+ reference: l,
29371
+ onSuccess: c
29373
29372
  }) {
29374
29373
  b(this, "container");
29375
29374
  b(this, "contents");
@@ -29384,7 +29383,6 @@ class kt {
29384
29383
  b(this, "mainLoader");
29385
29384
  b(this, "token");
29386
29385
  b(this, "currency");
29387
- b(this, "planId");
29388
29386
  b(this, "amount");
29389
29387
  b(this, "rdtCode");
29390
29388
  b(this, "url");
@@ -29396,14 +29394,14 @@ class kt {
29396
29394
  b(this, "timeLeft");
29397
29395
  b(this, "timerId");
29398
29396
  b(this, "abortController", null);
29399
- var v;
29400
- this.currency = d, this.onSuccess = h || (() => null), this.container = o, console.log({ sjksfj: `${this.planId + "ffff"}` }), this.contents = this.container.querySelector(
29397
+ var m;
29398
+ this.currency = t, this.onSuccess = c || (() => null), this.container = o, this.contents = this.container.querySelector(
29401
29399
  "#payment-content-view"
29402
- ), this.closeModal = n, this.token = t, this.email = a, this.amount = e, this.planId = s, this.rdtCode = r, this.url = l, this.reference = c, this._currentStep = 1, this.renderTransferContent(), this.paymentResponse = null, this.activeRef = "", this.initialTime = 1800, this.timeLeft = this.initialTime, this.timerId = null, this.mainLoader = new bi(this.contents), this.mainLoader.mountLoader();
29403
- const m = this.contents.querySelector("#loader");
29400
+ ), this.closeModal = n, this.token = s, this.email = a, this.amount = e, this.rdtCode = d, this.url = r, this.reference = l, this._currentStep = 1, this.renderTransferContent(), this.paymentResponse = null, this.activeRef = "", this.initialTime = 1800, this.timeLeft = this.initialTime, this.timerId = null, this.mainLoader = new bi(this.contents), this.mainLoader.mountLoader();
29401
+ const h = this.contents.querySelector("#loader");
29404
29402
  k.track("transfer_opens", {
29405
29403
  payment_method: "Transfer"
29406
- }), m && (m.classList.remove("hidden"), m.parentElement.classList.add("mx-auto"), (v = m.querySelector("img")) == null || v.setAttribute("src", Mi)), this.currentStep === 1 && (this.abortController = new AbortController(), this.createTransfer());
29404
+ }), h && (h.classList.remove("hidden"), h.parentElement.classList.add("mx-auto"), (m = h.querySelector("img")) == null || m.setAttribute("src", Mi)), this.currentStep === 1 && (this.abortController = new AbortController(), this.createTransfer());
29407
29405
  }
29408
29406
  get currentStep() {
29409
29407
  return this._currentStep;
@@ -29437,7 +29435,6 @@ class kt {
29437
29435
  amount: this.amount,
29438
29436
  channel: "bank_transfer",
29439
29437
  currency: this.currency || "USD",
29440
- // planId: this.planId,
29441
29438
  customer: {
29442
29439
  email: this.email
29443
29440
  },
@@ -29820,7 +29817,7 @@ class Mt extends Ln {
29820
29817
  }
29821
29818
  return e.json();
29822
29819
  } catch (e) {
29823
- throw e instanceof F ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof ge ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
29820
+ throw e instanceof F ? (O.showToast(e.message, "error", 9e3), console.error(`FetchError: ${e.message} (status: ${e.status})`)) : e instanceof ge ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
29824
29821
  }
29825
29822
  }
29826
29823
  }
@@ -30061,14 +30058,13 @@ class Xo {
30061
30058
  secret: o,
30062
30059
  amount: a,
30063
30060
  currency: s,
30064
- planId: t,
30065
- email: d,
30066
- fullname: r,
30067
- reference: l,
30068
- rdtCode: c,
30069
- url: h,
30070
- closeModal: m,
30071
- switchTab: v
30061
+ email: t,
30062
+ fullname: d,
30063
+ reference: r,
30064
+ rdtCode: l,
30065
+ url: c,
30066
+ closeModal: h,
30067
+ switchTab: m
30072
30068
  }) {
30073
30069
  // private container: HTMLElement;
30074
30070
  b(this, "contents");
@@ -30076,7 +30072,6 @@ class Xo {
30076
30072
  b(this, "secret");
30077
30073
  b(this, "amount");
30078
30074
  b(this, "currency");
30079
- b(this, "planId", "");
30080
30075
  b(this, "fullname");
30081
30076
  b(this, "email");
30082
30077
  b(this, "pageLoader");
@@ -30097,9 +30092,9 @@ class Xo {
30097
30092
  b(this, "intervalPayment");
30098
30093
  b(this, "rdtCode");
30099
30094
  b(this, "url");
30100
- this.onSuccess = n || (() => null), this.container = e, this.secret = o, this.amount = a, this.planId = t, this.currency = s, this.fullname = r, this.reference = l, this.email = d, this.rdtCode = c, this.url = h, this.closeModal = m, this.switchTab = v, this.contents = this.container.querySelector(
30095
+ this.onSuccess = n || (() => null), this.container = e, this.secret = o, this.amount = a, this.currency = s, this.fullname = d, this.reference = r, this.email = t, this.rdtCode = l, this.url = c, this.closeModal = h, this.switchTab = m, this.contents = this.container.querySelector(
30101
30096
  "#payment-content-view"
30102
- ), this._currentStep = 1, this.renderUssdContent(), this.paymentService = new Zo({
30097
+ ), this._currentStep = 1, this.paymentService = new Zo({
30103
30098
  token: this.secret,
30104
30099
  rdtCode: this.rdtCode,
30105
30100
  url: this.url
@@ -30113,41 +30108,10 @@ class Xo {
30113
30108
  set currentStep(e) {
30114
30109
  this._currentStep = e, this.renderUssdContent();
30115
30110
  }
30116
- // private makePayment() {
30117
- // this.paymentService
30118
- // .createUssdPayment({
30119
- // amount: this.amount,
30120
- // currency: this.currency,
30121
- // channel: "ussd",
30122
- // customer: {
30123
- // email: this.email,
30124
- // name: this.fullname,
30125
- // },
30126
- // bank: {
30127
- // code: this.selectedCode?.code || "",
30128
- // },
30129
- // reference: this.reference || generatePaymentReference(),
30130
- // })
30131
- // .then((values) => {
30132
- // this.activeRef = values.reference || "";
30133
- //
30134
- // if (values.status === "failed") {
30135
- // Toast.showToast("Payment failed", "error");
30136
- // this.currentStep = 3;
30137
- // this.warningScreen.setPaymentError(
30138
- // values.providerMessage || "Payment Failed",
30139
- // true,
30140
- // );
30141
- // } else if (values.status !== "successful") {
30142
- // this.onSuccess(values);
30143
- // this.currentStep = 4;
30144
- // }
30145
- // });
30146
- // }
30147
30111
  onCodeSelect(e) {
30148
30112
  this.selectedCode = e || "", setTimeout(() => {
30149
30113
  this.currentStep = 2;
30150
- }, 1e3), console.log({ dsfdff: this.planId });
30114
+ }, 1e3);
30151
30115
  }
30152
30116
  validate() {
30153
30117
  let e;
@@ -30355,7 +30319,7 @@ class Pt {
30355
30319
  Array.from(e).forEach((o, a) => {
30356
30320
  const s = o.dataset.name || "", t = o.dataset.tab || "0", d = o.querySelector(".tab-button-icon"), r = o.querySelector(".tab-button-label");
30357
30321
  d && (d.innerHTML = ne[s].icon), r && (r.textContent = ne[s].label), o.addEventListener("click", (l) => {
30358
- l.preventDefault(), this.onAction(+t || a), console.log("Tab clicked", { idx: a, dataNumber: t, dataName: s });
30322
+ l.preventDefault(), this.onAction(+t || a);
30359
30323
  });
30360
30324
  });
30361
30325
  }
@@ -30465,7 +30429,7 @@ class Qt {
30465
30429
  const o = this.container.querySelectorAll(".close-btn"), a = Array.from(o);
30466
30430
  a.length > 0 && a.forEach((p) => {
30467
30431
  p.addEventListener("click", () => {
30468
- k.track("checkout_closes"), this.onClose();
30432
+ this.onClose();
30469
30433
  });
30470
30434
  });
30471
30435
  const s = this.container.querySelector(
@@ -30502,7 +30466,7 @@ class Ft {
30502
30466
  const e = this.container.querySelector("#change-method"), n = this.container.querySelectorAll(".close-btn"), o = Array.from(n);
30503
30467
  o.length > 0 && o.forEach((a) => {
30504
30468
  a.addEventListener("click", () => {
30505
- k.track("checkout_closes"), this.onClose();
30469
+ this.onClose();
30506
30470
  });
30507
30471
  }), e && e.addEventListener("click", () => {
30508
30472
  this.onAction();
@@ -30594,13 +30558,15 @@ class Ut {
30594
30558
  this.closeBTN();
30595
30559
  }
30596
30560
  closeBTN() {
30597
- const e = document.body.querySelectorAll(
30598
- ".close-btn"
30599
- ), n = Array.from(e);
30600
- n.length > 0 && n.forEach((o) => {
30601
- o.addEventListener("click", () => {
30602
- k.track("checkout_closes"), this.cleanup(), this.closeModal();
30603
- });
30561
+ Array.from(
30562
+ document.querySelectorAll(".close-btn")
30563
+ ).forEach((n) => {
30564
+ if (!n.dataset.listenerAttached) {
30565
+ const o = () => {
30566
+ k.track("checkout_closes"), this.cleanup(), this.closeModal();
30567
+ };
30568
+ n.dataset.listenerAttached = "true", n.addEventListener("click", o);
30569
+ }
30604
30570
  });
30605
30571
  }
30606
30572
  updatePaymentMethodView(e, n, o, a) {
@@ -30630,7 +30596,6 @@ class Ut {
30630
30596
  token: e,
30631
30597
  container: this.modalContainer,
30632
30598
  email: n,
30633
- planId: this.planId,
30634
30599
  rdtCode: this.rdtCode,
30635
30600
  url: this.url,
30636
30601
  reference: this.reference,
@@ -30641,9 +30606,8 @@ class Ut {
30641
30606
  container: this.modalContainer,
30642
30607
  onSuccess: this.onSuccess.bind(this),
30643
30608
  secret: this.merchantKey,
30644
- amount: this.amount,
30609
+ amount: o,
30645
30610
  currency: a || "NGN",
30646
- planId: this.planId,
30647
30611
  rdtCode: this.rdtCode,
30648
30612
  url: this.url,
30649
30613
  email: this.email,
@@ -30864,7 +30828,6 @@ class Yt {
30864
30828
  );
30865
30829
  n && (n.classList.remove("hidden"), n.parentElement.classList.add("mx-auto"), (o = n.querySelector("img")) == null || o.setAttribute("src", Vt)), console.error({ err: e }), this.closeBTN();
30866
30830
  }).finally(() => {
30867
- console.log("plan detail merchant informatio reached");
30868
30831
  });
30869
30832
  }
30870
30833
  closeModal() {
@@ -417,7 +417,7 @@ or you can use record.mirror to access the mirror instance during recording.`;le
417
417
  <div id="loader-message" class="hidden"></div>
418
418
  </div>
419
419
  </div>
420
- `;class Ai{constructor(e){b(this,"container");this.container=e}renderContent(){return this.container}mountLoader(){var n;this.container.innerHTML=this.render();const e=this.container.querySelector("#loader");e&&(e.classList.remove("hidden"),e.parentElement.classList.add("mx-auto"),(n=e.querySelector("img"))==null||n.setAttribute("src",Si))}updateMessage(e){const n=this.container.querySelector("#loader-message");n&&(n.textContent=e,n.classList.remove("hidden"))}renderComponent(){}render(){return ms}}class qo{constructor({amount:e,closeModal:n,container:o,email:a,encryption:t,planId:s,switchTab:d,token:r,currency:u,rdtCode:c,url:h,reference:m,onSuccess:v}){b(this,"contents");b(this,"cardDetailForm");b(this,"cardOtpValidationForm");b(this,"merchantPlanDetail",{});b(this,"cardPinForm");b(this,"avsForm");b(this,"successScreen");b(this,"pageLoader");b(this,"warningScreen");b(this,"container");b(this,"closeModal");b(this,"onSuccess");b(this,"planId","");b(this,"email");b(this,"token");b(this,"amount");b(this,"encryption");b(this,"currency");b(this,"_currentStep");b(this,"activeRef");b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"creditCardTypes");b(this,"switchTab");this.currency=u,this.onSuccess=v||(()=>null),this.container=o,this.encryption=t,this.closeModal=n,this.token=r,this.email=a,this.planId=s,this.amount=e,this.rdtCode=c,this.url=h,this.reference=m,this._currentStep=1,this.activeRef="",this.contents=this.container.querySelector("#payment-content-view"),this.creditCardTypes=[...we],this.switchTab=d,this.renderCardContent(),this.currentStep===1&&this.displayCardTypes(),w.track("card_opens",{payment_method:"Card"}),this.attachInputListeners()}displayCardTypes(){requestAnimationFrame(()=>{const e=this.container.querySelector("#card-types");this.creditCardTypes.length===1&&this.creditCardTypes[0].name==="Unknown"?we.forEach(n=>{const o=document.createElement("div");o.classList.add("card-type"),o.innerHTML=n.icon,e.appendChild(o)}):(e.innerHTML="",this.creditCardTypes.forEach(n=>{const o=document.createElement("div");o.classList.add("card-type"),o.innerHTML=n.icon,e.appendChild(o)}))})}get currentStep(){return this._currentStep}set currentStep(e){this._currentStep=e,this.renderCardContent(),e===1&&(this.displayCardTypes(),this.creditCardTypes=[...we])}defaultStep(){this.currentStep=1}attachInputListeners(){}handlePinRequest(e){if(e.length===4){const n={authorization:{pin:e},reference:this.activeRef};w.track("input_cardPin",{payment_method:"Card",authentication_type:"PIN"}),setTimeout(()=>{this.currentStep=6,this.showLoader(),Ji(this.token,n,this.rdtCode,this.url).then(a=>{if(a.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),a.providerMessage?(D.showToast(a.providerMessage,"error"),this.warningScreen.setPaymentError(a.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(["success","successful","failed"].includes(a.status))D.showToast("Payment Authorized!","success"),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"PIN"});else{if(D.showToast("Payment Authorized!","success"),a.authorization.mode==="3DS"){a.authorization.redirectUrl&&this.redirectTo3DS(a.authorization.redirectUrl);return}if(a.authorization.mode==="otp"){this.currentStep=3;return}if(a.authorization.mode==="avs"){this.currentStep=7;return}}}).catch(a=>{D.showToast(a.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),this.warningScreen.setPaymentError("Payment failed")})},500)}}showLoader(){var n;const e=this.container.querySelector("#loader");e&&(e.classList.remove("hidden"),(n=e.querySelector("img"))==null||n.setAttribute("src",Si))}setPaymentError(e){const n=this.container.querySelector("#payment-warning-text"),o=this.container.querySelector(".warning-list");n&&(n.textContent=e),o&&[{text:"Try again with your card",action:"go-to-card"},{text:"Try again with transfer",action:"go-to-transfer"}].forEach(({action:t,text:s})=>{const d=document.createElement("button");d.textContent=s,d.setAttribute("id",t),d.classList.add("warning-button");const r=document.createElement("div");r.appendChild(d),o.appendChild(r)}),this.attachInputListeners()}validatedAVS(e,n){e.stopPropagation(),e.preventDefault();const o=this.container.querySelector(".spinner"),a=this.container.querySelector("#details-form-button-avs"),t={authorization:{avs:{state:n==null?void 0:n.state,city:n==null?void 0:n.city,country:n==null?void 0:n.country,address:n==null?void 0:n.address,zipCode:(n==null?void 0:n.code)||"-"}},reference:this.activeRef};w.track("input_address",{payment_method:"Card",authentication_type:"AVS"}),o&&a&&(o.classList.remove("hidden"),a.classList.add("hidden")),Ji(this.token,t,this.rdtCode,this.url).then(d=>{if(d.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"AVS"}),d.providerMessage?(D.showToast(d.providerMessage,"error"),this.warningScreen.setPaymentError(d.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(["success","successful","failed"].includes(d.status))["success","successful"].includes(d.status)&&(this.onSuccess(d),w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"AVS"}),this.currentStep=5);else{if(D.showToast("Validation Successfull!","success"),d.authorization.mode==="pin"){this.currentStep=2;return}if(d.authorization.mode==="3DS"){d.authorization.redirectUrl&&this.redirectTo3DS(d.authorization.redirectUrl),this.currentStep=6;return}if(d.authorization.mode==="otp"){this.currentStep=3;return}}}).catch(d=>{D.showToast(d.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"AVS"}),this.warningScreen.setPaymentError("Payment failed")}).finally(()=>{o&&a&&(o.classList.add("hidden"),a.classList.remove("hidden"))})}submitOtp(e,n){e.preventDefault();const o={authorization:{otp:n},reference:this.activeRef};this.currentStep=6,this.showLoader(),w.track("input_cardOTP",{payment_method:"Card",authentication_type:"PIN+0TP"}),Ji(this.token,o,this.rdtCode,this.url).then(t=>{if(t.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN+0TP"}),t.providerMessage?(D.showToast(t.providerMessage,"error"),this.warningScreen.setPaymentError(t.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(["success","successful","failed"].includes(t.status))["success","successful"].includes(t.status)&&(this.onSuccess(t),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"PIN+0TP"}));else{if(this.activeRef=t.reference,D.showToast("Payment Authorized!","success"),t.authorization.mode==="pin"){this.currentStep=2;return}if(t.authorization.mode==="3DS"){t.authorization.redirectUrl&&this.redirectTo3DS(t.authorization.redirectUrl);return}if(t.authorization.mode==="otp"){this.currentStep=3;return}if(t.authorization.mode==="avs"){this.currentStep=7;return}}}).catch(t=>{D.showToast(t.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN+0TP"}),this.warningScreen.setPaymentError("Payment failed")})}async handleSubmit(e,n){e.preventDefault(),w.track("input_cardDetails",{payment_method:"Card",authentication_type:"PIN"});const o=this.container.querySelector(".spinner"),a=this.container.querySelector("#details-form-button-text"),t=await ma(JSON.stringify(n),this.encryption),s={amount:this.amount,channel:"card",currency:this.currency||"USD",planId:this.planId,customer:{email:this.email},reference:this.reference?this.reference:oi(),encryptedCard:t};o&&a&&(o.classList.remove("hidden"),a.classList.add("hidden")),aa(this.token,s,this.rdtCode,this.url).then(r=>{if(r.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),r.providerMessage?(D.showToast(r.providerMessage,"error"),this.warningScreen.setPaymentError(r.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(!["success","successful"].includes(r.status)&&r.status!=="failed"){if(this.activeRef=r.reference,D.showToast("Payment Created!","success"),r.authorization.mode==="pin"){this.currentStep=2;return}if(r.authorization.mode==="3DS"){r.authorization.redirectUrl&&this.redirectTo3DS(r.authorization.redirectUrl);return}if(r.authorization.mode==="otp"){this.currentStep=3;return}if(r.authorization.mode==="avs"){this.currentStep=7;return}}else["success","successful"].includes(r.status)&&(this.onSuccess(r),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"PIN"}))}).catch(r=>{D.showToast(r.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),this.warningScreen.setPaymentError("Payment failed")}).finally(()=>{o&&a&&(o.classList.add("hidden"),a.classList.remove("hidden"))})}redirectTo3DS(e){const n=window.open(e,"_blank");if(n){w.track("auth_redirect",{payment_method:"Card",authentication_type:"3DS"}),this.currentStep=6,this.showLoader();const o=setInterval(()=>{n.closed&&(clearInterval(o),this.verifyPayment(a=>{this.onSuccess(a),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"3DS"})},a=>{D.showToast(a.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"3DS"})}))},2e3)}else alert("Please enable popups for this site to complete the authentication.")}async verifyPayment(e,n){try{const o=await Yi(this.token,this.activeRef,void 0,this.rdtCode,this.url);o.status==="failed"?this.currentStep=4:["success","successful"].includes(o.status)?e(o):console.log("wating")}catch(o){console.error(o),n(new Error("failed"))}}renderCardContent(e){if(e&&(this.merchantPlanDetail=e),this.contents){switch(this.currentStep){case 1:this.cardDetailForm=new _n({container:this.contents,onAction:n=>o=>this.handleSubmit.bind(this)(n,o)}),this.cardDetailForm.renderContent();break;case 2:this.cardPinForm=new ds({container:this.contents,onAction:n=>this.handlePinRequest.bind(this)(n)}),this.cardPinForm.renderComponent();break;case 3:this.cardOtpValidationForm=new ss({container:this.contents,onClose:this.closeModal.bind(this),onAction:n=>o=>this.submitOtp.bind(this)(n,o),email:this.email}),this.cardOtpValidationForm.renderComponent();break;case 4:this.warningScreen=new Vo({container:this.contents,switchTab:this.switchTab.bind(this),setCurrentTab:this.defaultStep.bind(this),msg:""}),this.contents.innerHTML=this.warningScreen.render(),this.warningScreen.attachListener();break;case 5:this.successScreen=new zo(this.contents,this.closeModal.bind(this)),this.contents.innerHTML=this.successScreen.render(),this.successScreen.attachListener();break;case 6:this.pageLoader=new Ai(this.contents),this.pageLoader.mountLoader(),this.pageLoader.updateMessage("Verifying Payment");break;case 7:this.avsForm=new cs({container:this.contents,onAction:n=>o=>this.validatedAVS.bind(this)(n,o)}),this.avsForm.renderComponent();break;default:this.cardDetailForm=new _n({container:this.contents,onAction:n=>o=>this.handleSubmit.bind(this)(n,o)}),this.cardDetailForm.renderContent();break}this.attachInputListeners(),this.displayButtonText()}}displayButtonText(e){var o,a,t,s,d,r;const n=this.container.querySelector("#details-form-button-text");if(n){const u=this.currency||((a=(o=this.merchantPlanDetail)==null?void 0:o.plan)==null?void 0:a.currency)||"USD",c=u==="USD"?(s=(t=this.merchantPlanDetail)==null?void 0:t.rate)==null?void 0:s.from:u;e?n.textContent=e:n.textContent=`Pay ${c} ${ai((this.amount||0)*(u==="USD"?(r=(d=this.merchantPlanDetail)==null?void 0:d.rate)==null?void 0:r.rate:1),2)}`}}}const hs=`<div class="box-container">
420
+ `;class Ai{constructor(e){b(this,"container");this.container=e}renderContent(){return this.container}mountLoader(){var n;this.container.innerHTML=this.render();const e=this.container.querySelector("#loader");e&&(e.classList.remove("hidden"),e.parentElement.classList.add("mx-auto"),(n=e.querySelector("img"))==null||n.setAttribute("src",Si))}updateMessage(e){const n=this.container.querySelector("#loader-message");n&&(n.textContent=e,n.classList.remove("hidden"))}renderComponent(){}render(){return ms}}class qo{constructor({amount:e,closeModal:n,container:o,email:a,encryption:t,planId:s,switchTab:d,token:r,currency:u,rdtCode:c,url:h,reference:m,onSuccess:v}){b(this,"contents");b(this,"cardDetailForm");b(this,"cardOtpValidationForm");b(this,"merchantPlanDetail",{});b(this,"cardPinForm");b(this,"avsForm");b(this,"successScreen");b(this,"pageLoader");b(this,"warningScreen");b(this,"container");b(this,"closeModal");b(this,"onSuccess");b(this,"planId","");b(this,"email");b(this,"token");b(this,"amount");b(this,"encryption");b(this,"currency");b(this,"_currentStep");b(this,"activeRef");b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"creditCardTypes");b(this,"switchTab");this.currency=u,this.onSuccess=v||(()=>null),this.container=o,this.encryption=t,this.closeModal=n,this.token=r,this.email=a,this.planId=s,this.amount=e,this.rdtCode=c,this.url=h,this.reference=m,this._currentStep=1,this.activeRef="",this.contents=this.container.querySelector("#payment-content-view"),this.creditCardTypes=[...we],this.switchTab=d,this.renderCardContent(),this.currentStep===1&&this.displayCardTypes(),w.track("card_opens",{payment_method:"Card"}),this.attachInputListeners()}displayCardTypes(){requestAnimationFrame(()=>{const e=this.container.querySelector("#card-types");this.creditCardTypes.length===1&&this.creditCardTypes[0].name==="Unknown"?we.forEach(n=>{const o=document.createElement("div");o.classList.add("card-type"),o.innerHTML=n.icon,e.appendChild(o)}):(e.innerHTML="",this.creditCardTypes.forEach(n=>{const o=document.createElement("div");o.classList.add("card-type"),o.innerHTML=n.icon,e.appendChild(o)}))})}get currentStep(){return this._currentStep}set currentStep(e){this._currentStep=e,this.renderCardContent(),e===1&&(this.displayCardTypes(),this.creditCardTypes=[...we])}defaultStep(){this.currentStep=1}attachInputListeners(){}handlePinRequest(e){if(e.length===4){const n={authorization:{pin:e},reference:this.activeRef};w.track("input_cardPin",{payment_method:"Card",authentication_type:"PIN"}),setTimeout(()=>{this.currentStep=6,this.showLoader(),Ji(this.token,n,this.rdtCode,this.url).then(a=>{if(a.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),a.providerMessage?(D.showToast(a.providerMessage,"error"),this.warningScreen.setPaymentError(a.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(["success","successful","failed"].includes(a.status))D.showToast("Payment Authorized!","success"),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"PIN"});else{if(D.showToast("Payment Authorized!","success"),a.authorization.mode==="3DS"){a.authorization.redirectUrl&&this.redirectTo3DS(a.authorization.redirectUrl);return}if(a.authorization.mode==="otp"){this.currentStep=3;return}if(a.authorization.mode==="avs"){this.currentStep=7;return}}}).catch(a=>{D.showToast(a.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),this.warningScreen.setPaymentError("Payment failed")})},500)}}showLoader(){var n;const e=this.container.querySelector("#loader");e&&(e.classList.remove("hidden"),(n=e.querySelector("img"))==null||n.setAttribute("src",Si))}setPaymentError(e){const n=this.container.querySelector("#payment-warning-text"),o=this.container.querySelector(".warning-list");n&&(n.textContent=e),o&&[{text:"Try again with your card",action:"go-to-card"},{text:"Try again with transfer",action:"go-to-transfer"}].forEach(({action:t,text:s})=>{const d=document.createElement("button");d.textContent=s,d.setAttribute("id",t),d.classList.add("warning-button");const r=document.createElement("div");r.appendChild(d),o.appendChild(r)}),this.attachInputListeners()}validatedAVS(e,n){e.stopPropagation(),e.preventDefault();const o=this.container.querySelector(".spinner"),a=this.container.querySelector("#details-form-button-avs"),t={authorization:{avs:{state:n==null?void 0:n.state,city:n==null?void 0:n.city,country:n==null?void 0:n.country,address:n==null?void 0:n.address,zipCode:(n==null?void 0:n.code)||"-"}},reference:this.activeRef};w.track("input_address",{payment_method:"Card",authentication_type:"AVS"}),o&&a&&(o.classList.remove("hidden"),a.classList.add("hidden")),Ji(this.token,t,this.rdtCode,this.url).then(d=>{if(d.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"AVS"}),d.providerMessage?(D.showToast(d.providerMessage,"error"),this.warningScreen.setPaymentError(d.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(["success","successful","failed"].includes(d.status))["success","successful"].includes(d.status)&&(this.onSuccess(d),w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"AVS"}),this.currentStep=5);else{if(D.showToast("Validation Successfull!","success"),d.authorization.mode==="pin"){this.currentStep=2;return}if(d.authorization.mode==="3DS"){d.authorization.redirectUrl&&this.redirectTo3DS(d.authorization.redirectUrl),this.currentStep=6;return}if(d.authorization.mode==="otp"){this.currentStep=3;return}}}).catch(d=>{D.showToast(d.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"AVS"}),this.warningScreen.setPaymentError("Payment failed")}).finally(()=>{o&&a&&(o.classList.add("hidden"),a.classList.remove("hidden"))})}submitOtp(e,n){e.preventDefault();const o={authorization:{otp:n},reference:this.activeRef};this.currentStep=6,this.showLoader(),w.track("input_cardOTP",{payment_method:"Card",authentication_type:"PIN+0TP"}),Ji(this.token,o,this.rdtCode,this.url).then(t=>{if(t.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN+0TP"}),t.providerMessage?(D.showToast(t.providerMessage,"error"),this.warningScreen.setPaymentError(t.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(["success","successful","failed"].includes(t.status))["success","successful"].includes(t.status)&&(this.onSuccess(t),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"PIN+0TP"}));else{if(this.activeRef=t.reference,D.showToast("Payment Authorized!","success"),t.authorization.mode==="pin"){this.currentStep=2;return}if(t.authorization.mode==="3DS"){t.authorization.redirectUrl&&this.redirectTo3DS(t.authorization.redirectUrl);return}if(t.authorization.mode==="otp"){this.currentStep=3;return}if(t.authorization.mode==="avs"){this.currentStep=7;return}}}).catch(t=>{D.showToast(t.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN+0TP"}),this.warningScreen.setPaymentError("Payment failed")})}async handleSubmit(e,n){e.preventDefault(),w.track("input_cardDetails",{payment_method:"Card",authentication_type:"PIN"});const o=this.container.querySelector(".spinner"),a=this.container.querySelector("#details-form-button-text"),t=await ma(JSON.stringify(n),this.encryption),s={amount:this.amount,channel:"card",currency:this.currency||"USD",planId:this.planId,customer:{email:this.email},reference:this.reference?this.reference:oi(),encryptedCard:t};o&&a&&(o.classList.remove("hidden"),a.classList.add("hidden")),aa(this.token,s,this.rdtCode,this.url).then(r=>{if(r.status==="failed")this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),r.providerMessage?(D.showToast(r.providerMessage,"error"),this.warningScreen.setPaymentError(r.providerMessage)):(D.showToast("Payment failed","error"),this.warningScreen.setPaymentError("Payment failed"));else if(!["success","successful"].includes(r.status)&&r.status!=="failed"){if(this.activeRef=r.reference,D.showToast("Payment Created!","success"),r.authorization.mode==="pin"){this.currentStep=2;return}if(r.authorization.mode==="3DS"){r.authorization.redirectUrl&&this.redirectTo3DS(r.authorization.redirectUrl);return}if(r.authorization.mode==="otp"){this.currentStep=3;return}if(r.authorization.mode==="avs"){this.currentStep=7;return}}else["success","successful"].includes(r.status)&&(this.onSuccess(r),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"PIN"}))}).catch(r=>{D.showToast(r.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"PIN"}),this.warningScreen.setPaymentError("Payment failed")}).finally(()=>{o&&a&&(o.classList.add("hidden"),a.classList.remove("hidden"))})}redirectTo3DS(e){const n=window.open(e,"_blank");if(n){w.track("auth_redirect",{payment_method:"Card",authentication_type:"3DS"}),this.currentStep=6,this.showLoader();const o=setInterval(()=>{n.closed&&(clearInterval(o),this.verifyPayment(a=>{this.onSuccess(a),this.currentStep=5,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Success",authentication_type:"3DS"})},a=>{D.showToast(a.message,"error"),this.currentStep=4,w.track("verify_cardPayment",{payment_method:"Card",verification_status:"Failed",authentication_type:"3DS"})}))},2e3)}else alert("Please enable popups for this site to complete the authentication.")}async verifyPayment(e,n){try{const o=await Yi(this.token,this.activeRef,void 0,this.rdtCode,this.url);o.status==="failed"?this.currentStep=4:["success","successful"].includes(o.status)&&e(o)}catch(o){console.error(o),n(new Error("failed"))}}renderCardContent(e){if(e&&(this.merchantPlanDetail=e),this.contents){switch(this.currentStep){case 1:this.cardDetailForm=new _n({container:this.contents,onAction:n=>o=>this.handleSubmit.bind(this)(n,o)}),this.cardDetailForm.renderContent();break;case 2:this.cardPinForm=new ds({container:this.contents,onAction:n=>this.handlePinRequest.bind(this)(n)}),this.cardPinForm.renderComponent();break;case 3:this.cardOtpValidationForm=new ss({container:this.contents,onClose:this.closeModal.bind(this),onAction:n=>o=>this.submitOtp.bind(this)(n,o),email:this.email}),this.cardOtpValidationForm.renderComponent();break;case 4:this.warningScreen=new Vo({container:this.contents,switchTab:this.switchTab.bind(this),setCurrentTab:this.defaultStep.bind(this),msg:""}),this.contents.innerHTML=this.warningScreen.render(),this.warningScreen.attachListener();break;case 5:this.successScreen=new zo(this.contents,this.closeModal.bind(this)),this.contents.innerHTML=this.successScreen.render(),this.successScreen.attachListener();break;case 6:this.pageLoader=new Ai(this.contents),this.pageLoader.mountLoader(),this.pageLoader.updateMessage("Verifying Payment");break;case 7:this.avsForm=new cs({container:this.contents,onAction:n=>o=>this.validatedAVS.bind(this)(n,o)}),this.avsForm.renderComponent();break;default:this.cardDetailForm=new _n({container:this.contents,onAction:n=>o=>this.handleSubmit.bind(this)(n,o)}),this.cardDetailForm.renderContent();break}this.attachInputListeners(),this.displayButtonText()}}displayButtonText(e){var o,a,t,s,d,r;const n=this.container.querySelector("#details-form-button-text");if(n){const u=this.currency||((a=(o=this.merchantPlanDetail)==null?void 0:o.plan)==null?void 0:a.currency)||"USD",c=u==="USD"?(s=(t=this.merchantPlanDetail)==null?void 0:t.rate)==null?void 0:s.from:u;e?n.textContent=e:n.textContent=`Pay ${c} ${ai((this.amount||0)*(u==="USD"?(r=(d=this.merchantPlanDetail)==null?void 0:d.rate)==null?void 0:r.rate:1),2)}`}}}const hs=`<div class="box-container">
421
421
  <div class="container-center h-[40vh] hidden" id="loader">
422
422
  <img src="" alt="loader gif" />
423
423
  </div>
@@ -653,7 +653,7 @@ or you can use record.mirror to access the mirror instance during recording.`;le
653
653
  fill="white" />
654
654
  </svg>
655
655
  <span id="custom-toast-msg"></span>
656
- `;class Cs{constructor(e){b(this,"container");this.container=e.container}attachListeners(){}renderComponent(){this.container.innerHTML=this.render()}render(){return ys}}class Ss{constructor({amount:e,closeModal:n,container:o,email:a,planId:t,token:s,currency:d,rdtCode:r,url:u,reference:c,onSuccess:h}){b(this,"container");b(this,"contents");b(this,"closeModal");b(this,"onSuccess");b(this,"email");b(this,"transferDetails");b(this,"transferConfirmationOne");b(this,"transferConfirmationTwo");b(this,"transferConfirmationProgress");b(this,"transferExpired");b(this,"mainLoader");b(this,"token");b(this,"currency");b(this,"planId");b(this,"amount");b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"_currentStep");b(this,"activeRef");b(this,"paymentResponse");b(this,"initialTime");b(this,"timeLeft");b(this,"timerId");b(this,"abortController",null);var v;this.currency=d,this.onSuccess=h||(()=>null),this.container=o,console.log({sjksfj:`${this.planId+"ffff"}`}),this.contents=this.container.querySelector("#payment-content-view"),this.closeModal=n,this.token=s,this.email=a,this.amount=e,this.planId=t,this.rdtCode=r,this.url=u,this.reference=c,this._currentStep=1,this.renderTransferContent(),this.paymentResponse=null,this.activeRef="",this.initialTime=1800,this.timeLeft=this.initialTime,this.timerId=null,this.mainLoader=new Ai(this.contents),this.mainLoader.mountLoader();const m=this.contents.querySelector("#loader");w.track("transfer_opens",{payment_method:"Transfer"}),m&&(m.classList.remove("hidden"),m.parentElement.classList.add("mx-auto"),(v=m.querySelector("img"))==null||v.setAttribute("src",Si)),this.currentStep===1&&(this.abortController=new AbortController,this.createTransfer())}get currentStep(){return this._currentStep}set currentStep(e){this._currentStep=e,this.renderTransferContent(),e===1&&this.createTransfer()}attachInputListeners(){const e=this.container.querySelector("#transfer-try-again"),n=this.container.querySelector("#transfer-sent"),o=this.container.querySelector(".success-button");e&&e.addEventListener("click",()=>{this.currentStep=1}),n&&n.addEventListener("click",()=>{this.abortController&&(this.abortController.abort(),this.currentStep=5)}),o&&o.addEventListener("click",()=>{this.closeModal(),w.track("checkout_closes")})}onSentVerify(e){e===5?this.abortController&&(this.abortController.abort(),this.currentStep=5):this.currentStep=3}async createTransfer(){requestAnimationFrame(()=>{var t;const e=this.container.querySelector("#loader"),n=this.container.querySelector("#details-content");e&&n&&(e.classList.remove("hidden"),(t=e.querySelector("img"))==null||t.setAttribute("src",Si),n.classList.add("hidden")),w.track("start_transferProcess",{payment_method:"Transfer"});const o={amount:this.amount,channel:"bank_transfer",currency:this.currency||"USD",customer:{email:this.email},reference:this.reference||oi()};ta(this.token,o,this.rdtCode,this.url).then(s=>{s.status==="failed"?(s.providerMessage?D.showToast(s.providerMessage,"error"):D.showToast("Payment failed","error"),this.currentStep=2,w.track("stop_transferProcess",{payment_method:"Transfer"})):(e&&n&&(e.classList.add("hidden"),n.classList.remove("hidden")),this.activeRef=s.reference,this.paymentResponse=s,this.transferDetails=new Mn({container:this.contents,onAction:d=>{this.onSentVerify.bind(this)(d)}}),this.transferDetails.renderComponent(this.paymentResponse))}).catch(s=>{D.showToast(s.message,"error")})})}async verifyTransfer(e,n,o,a){let t,s=0,d=n,r=!0,u;this.abortController&&(u=this.abortController.signal);const c=async()=>{if(this.timeLeft<=0){r=!1,a(new Error("Max polling time reached")),w.track("verify_transferPayment",{payment_method:"Transfer",verification_status:"Pending"}),this.currentStep=2;return}s+=1;try{const h=await Yi(e,this.activeRef,u,this.rdtCode,this.url);h.status==="failed"?r&&(d=n*(s+1),t=setTimeout(c,d)):!["success","successful"].includes(h.status)&&h.status!=="failed"||(r=!1,clearTimeout(t),w.track("verify_transferPayment",{payment_method:"Transfer",verification_status:"Success"}),o(h))}catch{r&&(d=n*(s+1),t=setTimeout(c,d))}};c()}renderTransferContent(){if(this.contents){switch(this.currentStep){case 1:this.transferDetails=new Mn({container:this.contents,onAction:()=>this.createTransfer.bind(this)()});break;case 2:this.transferExpired=new Cs({container:this.contents}),this.transferExpired.renderComponent();break;case 3:this.transferConfirmationOne=new vs({container:this.contents,onAction:e=>{this.currentStep=e}}),this.transferConfirmationOne.renderComponent();break;case 4:this.transferConfirmationTwo=new As({container:this.contents,onClose:()=>this.closeModal.bind(this)()}),this.transferConfirmationTwo.renderComponent();break;case 5:this.transferConfirmationProgress=new fs({container:this.contents,onAction:e=>{this.currentStep=e},ref:this.activeRef,onSuccess:this.onSuccess.bind(this),token:this.token,rdtCode:this.rdtCode,url:this.url}),this.transferConfirmationProgress.renderComponent();break;case 6:this.contents.innerHTML=Dn;break;default:return this.transferDetails=new Mn({container:this.contents,onAction:()=>this.createTransfer.bind(this)()}),this.transferDetails.render()}this.attachInputListeners()}}stopTimer(){this.timerId!==null&&(clearInterval(this.timerId),this.timerId=null)}stopProgressBar(){const e=this.container.querySelector(".progress-bar");e&&(e.style.animationPlayState="paused")}copyToClipboard(e,n){navigator.clipboard.writeText(e).then(()=>{n.innerHTML="Copied!"}).catch(()=>{n.innerHTML="Failed to copy"})}destroyTimer(){this.stopTimer()}stopPolling(){this.abortController&&this.abortController.abort()}}function jo(){return function(i,e){let n=i[e];Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:()=>n,set:t=>{n=t}})}}class F extends Error{constructor(e,n){super(e),this.status=n,this.name="FetchError"}}class ke extends Error{constructor(e){super(e),this.name="AuthorizationError"}}class Bn{constructor(e){b(this,"token");b(this,"baseurl","https://api.spotflow.co/api/v1");b(this,"headers");b(this,"rdtCode");b(this,"url");b(this,"getHeaders",(e,n)=>{if(!e)throw new ke("Missing authorization token");const o=new Headers;return o.append("Content-Type","application/json"),o.append("Authorization",`Bearer ${e}`),n&&o.append("Spotflow-Payment-Code",n),o});this.token=e.token,this.rdtCode=e.rdtCode,this.url=e.url,this.headers=this.getHeaders(this.token,this.rdtCode)}}class Jo extends Bn{constructor(e){super(e)}async createCardPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async createUssdPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async validateCardPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments/validate`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async authorizeCardPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments/authorize`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async createTransferPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async verifyPayment(e,n){try{const o=await fetch(`${te(this.baseurl,this.url)}/payments/verify?reference=${e}`,{method:"GET",headers:this.headers,signal:n});if(!o.ok){const t=await o.json();throw t.message?new F(t.message,o.status):new F("Network response was not ok",o.status)}return await o.json()}catch(o){throw o instanceof F?console.error(`FetchError: ${o.message} (status: ${o.status})`):o instanceof ke?console.error(`AuthorizationError: ${o.message}`):console.error(`Unexpected error: ${o}`),o}}}class ks extends Bn{constructor(e){super(e)}async getMerchantConfig(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/checkout-configurations?planId=${e||""}`,{headers:this.headers,method:"GET"});if(!n.ok){const o=await n.json();throw o.message?new F(o.message,n.status):new F("Network response was not ok",n.status)}return n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}}class ws extends Bn{constructor(e){super(e)}async getBankList(){try{const e=await fetch(`${te(this.baseurl,this.url)}/banks?ussd=true`,{headers:this.headers,method:"GET"});if(!e.ok){const n=await e.json();throw n.message?new F(n.message,e.status):new F("Network response was not ok",e.status)}return e.json()}catch(e){throw e instanceof F?console.error(`FetchError: ${e.message} (status: ${e.status})`):e instanceof ke?console.error(`AuthorizationError: ${e.message}`):console.error(`Unexpected error: ${e}`),e}}}const Es=`<div id="ussdBanks">
656
+ `;class Cs{constructor(e){b(this,"container");this.container=e.container}attachListeners(){}renderComponent(){this.container.innerHTML=this.render()}render(){return ys}}class Ss{constructor({amount:e,closeModal:n,container:o,email:a,token:t,currency:s,rdtCode:d,url:r,reference:u,onSuccess:c}){b(this,"container");b(this,"contents");b(this,"closeModal");b(this,"onSuccess");b(this,"email");b(this,"transferDetails");b(this,"transferConfirmationOne");b(this,"transferConfirmationTwo");b(this,"transferConfirmationProgress");b(this,"transferExpired");b(this,"mainLoader");b(this,"token");b(this,"currency");b(this,"amount");b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"_currentStep");b(this,"activeRef");b(this,"paymentResponse");b(this,"initialTime");b(this,"timeLeft");b(this,"timerId");b(this,"abortController",null);var m;this.currency=s,this.onSuccess=c||(()=>null),this.container=o,this.contents=this.container.querySelector("#payment-content-view"),this.closeModal=n,this.token=t,this.email=a,this.amount=e,this.rdtCode=d,this.url=r,this.reference=u,this._currentStep=1,this.renderTransferContent(),this.paymentResponse=null,this.activeRef="",this.initialTime=1800,this.timeLeft=this.initialTime,this.timerId=null,this.mainLoader=new Ai(this.contents),this.mainLoader.mountLoader();const h=this.contents.querySelector("#loader");w.track("transfer_opens",{payment_method:"Transfer"}),h&&(h.classList.remove("hidden"),h.parentElement.classList.add("mx-auto"),(m=h.querySelector("img"))==null||m.setAttribute("src",Si)),this.currentStep===1&&(this.abortController=new AbortController,this.createTransfer())}get currentStep(){return this._currentStep}set currentStep(e){this._currentStep=e,this.renderTransferContent(),e===1&&this.createTransfer()}attachInputListeners(){const e=this.container.querySelector("#transfer-try-again"),n=this.container.querySelector("#transfer-sent"),o=this.container.querySelector(".success-button");e&&e.addEventListener("click",()=>{this.currentStep=1}),n&&n.addEventListener("click",()=>{this.abortController&&(this.abortController.abort(),this.currentStep=5)}),o&&o.addEventListener("click",()=>{this.closeModal(),w.track("checkout_closes")})}onSentVerify(e){e===5?this.abortController&&(this.abortController.abort(),this.currentStep=5):this.currentStep=3}async createTransfer(){requestAnimationFrame(()=>{var t;const e=this.container.querySelector("#loader"),n=this.container.querySelector("#details-content");e&&n&&(e.classList.remove("hidden"),(t=e.querySelector("img"))==null||t.setAttribute("src",Si),n.classList.add("hidden")),w.track("start_transferProcess",{payment_method:"Transfer"});const o={amount:this.amount,channel:"bank_transfer",currency:this.currency||"USD",customer:{email:this.email},reference:this.reference||oi()};ta(this.token,o,this.rdtCode,this.url).then(s=>{s.status==="failed"?(s.providerMessage?D.showToast(s.providerMessage,"error"):D.showToast("Payment failed","error"),this.currentStep=2,w.track("stop_transferProcess",{payment_method:"Transfer"})):(e&&n&&(e.classList.add("hidden"),n.classList.remove("hidden")),this.activeRef=s.reference,this.paymentResponse=s,this.transferDetails=new Mn({container:this.contents,onAction:d=>{this.onSentVerify.bind(this)(d)}}),this.transferDetails.renderComponent(this.paymentResponse))}).catch(s=>{D.showToast(s.message,"error")})})}async verifyTransfer(e,n,o,a){let t,s=0,d=n,r=!0,u;this.abortController&&(u=this.abortController.signal);const c=async()=>{if(this.timeLeft<=0){r=!1,a(new Error("Max polling time reached")),w.track("verify_transferPayment",{payment_method:"Transfer",verification_status:"Pending"}),this.currentStep=2;return}s+=1;try{const h=await Yi(e,this.activeRef,u,this.rdtCode,this.url);h.status==="failed"?r&&(d=n*(s+1),t=setTimeout(c,d)):!["success","successful"].includes(h.status)&&h.status!=="failed"||(r=!1,clearTimeout(t),w.track("verify_transferPayment",{payment_method:"Transfer",verification_status:"Success"}),o(h))}catch{r&&(d=n*(s+1),t=setTimeout(c,d))}};c()}renderTransferContent(){if(this.contents){switch(this.currentStep){case 1:this.transferDetails=new Mn({container:this.contents,onAction:()=>this.createTransfer.bind(this)()});break;case 2:this.transferExpired=new Cs({container:this.contents}),this.transferExpired.renderComponent();break;case 3:this.transferConfirmationOne=new vs({container:this.contents,onAction:e=>{this.currentStep=e}}),this.transferConfirmationOne.renderComponent();break;case 4:this.transferConfirmationTwo=new As({container:this.contents,onClose:()=>this.closeModal.bind(this)()}),this.transferConfirmationTwo.renderComponent();break;case 5:this.transferConfirmationProgress=new fs({container:this.contents,onAction:e=>{this.currentStep=e},ref:this.activeRef,onSuccess:this.onSuccess.bind(this),token:this.token,rdtCode:this.rdtCode,url:this.url}),this.transferConfirmationProgress.renderComponent();break;case 6:this.contents.innerHTML=Dn;break;default:return this.transferDetails=new Mn({container:this.contents,onAction:()=>this.createTransfer.bind(this)()}),this.transferDetails.render()}this.attachInputListeners()}}stopTimer(){this.timerId!==null&&(clearInterval(this.timerId),this.timerId=null)}stopProgressBar(){const e=this.container.querySelector(".progress-bar");e&&(e.style.animationPlayState="paused")}copyToClipboard(e,n){navigator.clipboard.writeText(e).then(()=>{n.innerHTML="Copied!"}).catch(()=>{n.innerHTML="Failed to copy"})}destroyTimer(){this.stopTimer()}stopPolling(){this.abortController&&this.abortController.abort()}}function jo(){return function(i,e){let n=i[e];Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:()=>n,set:t=>{n=t}})}}class F extends Error{constructor(e,n){super(e),this.status=n,this.name="FetchError"}}class ke extends Error{constructor(e){super(e),this.name="AuthorizationError"}}class Bn{constructor(e){b(this,"token");b(this,"baseurl","https://api.spotflow.co/api/v1");b(this,"headers");b(this,"rdtCode");b(this,"url");b(this,"getHeaders",(e,n)=>{if(!e)throw new ke("Missing authorization token");const o=new Headers;return o.append("Content-Type","application/json"),o.append("Authorization",`Bearer ${e}`),n&&o.append("Spotflow-Payment-Code",n),o});this.token=e.token,this.rdtCode=e.rdtCode,this.url=e.url,this.headers=this.getHeaders(this.token,this.rdtCode)}}class Jo extends Bn{constructor(e){super(e)}async createCardPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async createUssdPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async validateCardPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments/validate`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async authorizeCardPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments/authorize`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async createTransferPayment(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/payments`,{method:"POST",headers:this.headers,body:JSON.stringify(e)});if(!n.ok){const a=await n.json();throw a.message?new F(a.message,n.status):new F("Network response was not ok",n.status)}return await n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}async verifyPayment(e,n){try{const o=await fetch(`${te(this.baseurl,this.url)}/payments/verify?reference=${e}`,{method:"GET",headers:this.headers,signal:n});if(!o.ok){const t=await o.json();throw t.message?new F(t.message,o.status):new F("Network response was not ok",o.status)}return await o.json()}catch(o){throw o instanceof F?console.error(`FetchError: ${o.message} (status: ${o.status})`):o instanceof ke?console.error(`AuthorizationError: ${o.message}`):console.error(`Unexpected error: ${o}`),o}}}class ks extends Bn{constructor(e){super(e)}async getMerchantConfig(e){try{const n=await fetch(`${te(this.baseurl,this.url)}/checkout-configurations?planId=${e||""}`,{headers:this.headers,method:"GET"});if(!n.ok){const o=await n.json();throw o.message?new F(o.message,n.status):new F("Network response was not ok",n.status)}return n.json()}catch(n){throw n instanceof F?console.error(`FetchError: ${n.message} (status: ${n.status})`):n instanceof ke?console.error(`AuthorizationError: ${n.message}`):console.error(`Unexpected error: ${n}`),n}}}class ws extends Bn{constructor(e){super(e)}async getBankList(){try{const e=await fetch(`${te(this.baseurl,this.url)}/banks?ussd=true`,{headers:this.headers,method:"GET"});if(!e.ok){const n=await e.json();throw n.message?new F(n.message,e.status):new F("Network response was not ok",e.status)}return e.json()}catch(e){throw e instanceof F?(D.showToast(e.message,"error",9e3),console.error(`FetchError: ${e.message} (status: ${e.status})`)):e instanceof ke?console.error(`AuthorizationError: ${e.message}`):console.error(`Unexpected error: ${e}`),e}}}const Es=`<div id="ussdBanks">
657
657
  <div class="px-0 md:px-5 lg:px-7 grid gap-4 md:gap-6">
658
658
  <div class="text-center my-6">
659
659
  <svg class="mx-auto w-5 h-5 md:w-8 md:h-8 mb-1" width="18" height="18" viewBox="0 0 18 18" fill="none"
@@ -731,7 +731,7 @@ or you can use record.mirror to access the mirror instance during recording.`;le
731
731
  </div>
732
732
  </div>
733
733
  </div>
734
- `;class Bs{constructor(e){b(this,"container");b(this,"selected");b(this,"secret");b(this,"onAction");b(this,"paymentService");b(this,"currency");b(this,"amount");b(this,"ussd_detail");b(this,"fullname");b(this,"reference");b(this,"email");b(this,"abortController");b(this,"activeRef","");b(this,"pageLoader");b(this,"onError");this.container=e.container,this.selected=e.selected,this.onAction=e.onAction,this.secret=e.secret,this.abortController=new AbortController,this.paymentService=new Jo({token:this.secret,rdtCode:e.rdtCode,url:e.url}),this.currency=e.currency,this.amount=e.amount||0,this.email=e.email,this.fullname=e.fullname,this.reference=e.reference,this.onError=e.onError??(()=>null),this.pageLoader=new Ai(this.container),this.pageLoader.mountLoader(),this.pageLoader.updateMessage("Fetching selected bank code detail")}makePayment(){var e;w.track("start_ussdProcess",{payment_method:"USSD"}),this.paymentService.createUssdPayment({amount:this.amount,currency:this.currency,channel:"ussd",customer:{email:this.email,name:this.fullname},bank:{code:((e=this.selected)==null?void 0:e.code)||""},reference:this.reference||oi()}).then(n=>{var o;if(this.ussd_detail=n.ussd,this.activeRef=n.reference||"",n.status==="failed"){D.showToast(n.providerMessage||"Payment failed","error"),this.onError(n.providerMessage||"Payment failed"),w.track("stop_ussdProcess",{payment_method:"USSD"});return}else if(n.status!=="success"){this.container.innerHTML=this.render();const a=this.container.querySelectorAll(".bank-dial-code"),t=this.container.querySelector("#bank-dial-code");t&&(t.innerHTML=((o=n==null?void 0:n.ussd)==null?void 0:o.paymentCode)||""),Array.from(a).forEach(d=>{var r;d.innerHTML=((r=n==null?void 0:n.ussd)==null?void 0:r.code)||""}),this.attachListener();return}this.container.innerHTML=this.render(),this.attachListener()}).catch(n=>{D.showToast("Payment failed","error"),this.onError("Payment failed")})}attachListener(){const e=this.container.querySelectorAll(".copy-code-button"),n=this.container.querySelectorAll(".copy-code-button-1"),o=this.container.querySelector("#bank-completed-payment");Array.from(e).forEach(s=>{s.addEventListener("click",d=>{var r;w.track("copy_ussdCode",{payment_method:"USSD"}),window.navigator.clipboard.writeText(((r=this.ussd_detail)==null?void 0:r.code)||"")})}),Array.from(n).forEach(s=>{s.addEventListener("click",d=>{var r;w.track("copy_ussdCode",{payment_method:"USSD"}),window.navigator.clipboard.writeText(((r=this.ussd_detail)==null?void 0:r.code)||"")})}),o&&o.addEventListener("click",s=>{s.preventDefault(),this.onAction(this.selected,this.activeRef)})}verifyPayment(){let e;this.abortController?e=this.abortController.signal:e=new AbortController().signal,console.log({signal:e})}renderComponent(){this.makePayment();const e=this.container.querySelectorAll(".bank-name-ussd"),n=this.container.querySelectorAll(".bank-dial-code");Array.from(e).forEach(t=>{t.innerHTML=this.selected.name||""}),Array.from(n).forEach(t=>{t.innerHTML=this.selected.code||""}),this.attachListener()}render(){return Ms}}var Is=Object.defineProperty,Ls=(i,e,n,o)=>{for(var a=void 0,t=i.length-1,s;t>=0;t--)(s=i[t])&&(a=s(e,n,a)||a);return a&&Is(e,n,a),a};class Zo{constructor({container:e,onSuccess:n,secret:o,amount:a,currency:t,planId:s,email:d,fullname:r,reference:u,rdtCode:c,url:h,closeModal:m,switchTab:v}){b(this,"contents");b(this,"selectedCode");b(this,"secret");b(this,"amount");b(this,"currency");b(this,"planId","");b(this,"fullname");b(this,"email");b(this,"pageLoader");b(this,"reference");b(this,"onSuccess");b(this,"closeModal");b(this,"warningScreen");b(this,"switchTab");b(this,"bankDetail");b(this,"viewUssdCode");b(this,"_currentStep");b(this,"container");b(this,"paymentService");b(this,"successScreen");b(this,"activeRef","");b(this,"abortController");b(this,"_retry_count",10);b(this,"intervalPayment");b(this,"rdtCode");b(this,"url");this.onSuccess=n||(()=>null),this.container=e,this.secret=o,this.amount=a,this.planId=s,this.currency=t,this.fullname=r,this.reference=u,this.email=d,this.rdtCode=c,this.url=h,this.closeModal=m,this.switchTab=v,this.contents=this.container.querySelector("#payment-content-view"),this._currentStep=1,this.renderUssdContent(),this.paymentService=new Jo({token:this.secret,rdtCode:this.rdtCode,url:this.url}),w.track("ussd_opens",{payment_method:"USSD"})}get currentStep(){return this._currentStep}set currentStep(e){this._currentStep=e,this.renderUssdContent()}onCodeSelect(e){this.selectedCode=e||"",setTimeout(()=>{this.currentStep=2},1e3),console.log({dsfdff:this.planId})}validate(){let e;if(this.abortController?e=this.abortController.signal:(this.abortController=new AbortController,e=this.abortController.signal),this._retry_count<=0){D.showToast("Max polling time reached","error"),clearInterval(this.intervalPayment),this.currentStep=3,w.track("verify_ussdPayment",{payment_method:"USSD",verification_status:"Pending"});return}this.paymentService.verifyPayment(this.activeRef,e||this.abortController.signal).then(n=>{n.status==="failed"?this._retry_count-=1:["successful","failed"].includes(n.status)?["success","successful"].includes(n.status)&&(this.onSuccess(n),this.currentStep=5,clearInterval(this.intervalPayment),w.track("verify_ussdPayment",{payment_method:"USSD",verification_status:"Success"})):this._retry_count-=1}).catch(n=>{D.showToast(n.message,"error"),this.currentStep=3,clearInterval(this.intervalPayment),w.track("verify_ussdPayment",{payment_method:"USSD",verification_status:"Pending"})})}renderUssdContent(){switch(this.currentStep){case 1:this.bankDetail=new Yo({container:this.contents,merchantKey:this.secret,onAction:this.onCodeSelect.bind(this),rdtCode:this.rdtCode,url:this.url}),this.bankDetail.renderContent();break;case 2:this.reference||oi(),this.viewUssdCode=new Bs({container:this.contents,onAction:(e,n)=>{this.activeRef=n,this.currentStep=4,this.intervalPayment=setInterval(()=>{this.validate()},5e3)},selected:this.selectedCode||{},secret:this.secret,amount:this.amount,currency:this.currency,email:this.email||"",fullname:this.fullname||void 0,onError:e=>{this.currentStep=3,this.warningScreen.setPaymentError(e,!0)},rdtCode:this.rdtCode,url:this.url}),this.viewUssdCode.renderComponent();break;case 3:this.contents.innerHTML=Wo,this.warningScreen=new Vo({container:this.contents,switchTab:this.switchTab.bind(this),setCurrentTab:this.switchTab.bind(this),msg:""});break;case 4:this.pageLoader=new Ai(this.contents),this.pageLoader.mountLoader(),this.pageLoader.updateMessage("Verifying Payment");break;case 5:this.successScreen=new zo(this.contents,this.closeModal.bind(this)),this.contents.innerHTML=this.successScreen.render(),this.successScreen.attachListener();break;default:this.bankDetail=new Yo({container:this.contents,merchantKey:this.secret,onAction:this.onCodeSelect.bind(this)}),this.bankDetail.renderContent();break}}handleSelectChange(e){setTimeout(()=>{this.currentStep=2},400),this.currentStep=2}}Ls([jo(),jo()],Zo.prototype,"selectedCode");const Xo="data:image/svg+xml,%3csvg%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='40'%20height='40'%20rx='8'%20fill='%2301008E'/%3e%3cpath%20d='M13.0056%2026.2977C13.6398%2024.8735%2014.2552%2023.4941%2014.9174%2022.0054C15.1257%2022.3264%2015.2645%2022.5363%2015.3977%2022.748C16.4897%2024.4753%2017.8837%2025.9103%2019.7673%2026.8699C20.9305%2027.4618%2022.1632%2027.7721%2023.4877%2027.7219C24.5459%2027.6824%2025.15%2027.0295%2025.0412%2026.0286C24.9887%2025.5479%2024.8198%2025.0977%2024.4296%2024.7946C23.8855%2024.3713%2023.3339%2023.921%2022.7091%2023.6358C21.2814%2022.9829%2019.7936%2022.4538%2018.3602%2021.8134C17.4146%2021.3919%2016.4728%2020.9309%2015.6135%2020.3677C14.3546%2019.5408%2013.5628%2018.3982%2013.4859%2016.8772C13.3996%2015.1444%2014.1576%2013.8673%2015.7167%2013.0063C16.7054%2012.4593%2017.7936%2012.1992%2018.9099%2012.0754C21.3864%2011.801%2023.7091%2012.2763%2025.8592%2013.4906C25.9605%2013.548%2026.0506%2013.627%2026.2044%2013.7364C25.5797%2014.9238%2024.9587%2016.1005%2024.2983%2017.3561C24.0675%2017.139%2023.8817%2016.9722%2023.7073%2016.7964C22.5891%2015.679%2021.3921%2014.6601%2019.9418%2013.9444C18.9268%2013.444%2017.8536%2013.1678%2016.711%2013.1929C15.4915%2013.218%2014.8293%2014.0664%2015.0619%2015.2216C15.1914%2015.8583%2015.5272%2016.3695%2016.06%2016.7139C16.7617%2017.1677%2017.499%2017.5928%2018.2683%2017.9265C19.4427%2018.4341%2020.6622%2018.8484%2021.8592%2019.3112C22.9493%2019.7327%2023.9906%2020.2404%2024.893%2020.9704C26.3376%2022.1399%2026.9024%2023.6179%2026.5346%2025.4044C26.3132%2026.4771%2025.6547%2027.2537%2024.7166%2027.8349C23.8817%2028.3515%2022.9512%2028.6259%2021.9793%2028.7569C19.9756%2029.0277%2017.9925%2028.9685%2016.0732%2028.2708C14.9193%2027.851%2013.9043%2027.225%2013%2026.2995L13.0056%2026.2977Z'%20fill='white'/%3e%3c/svg%3e",Ts=i=>i==null?void 0:i.replace(/_/g," ");function xs(i){return i.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}const Ns=i=>{if(i){const e=Ts(i);return xs(e)}return""},Rs=`<div class="grid grid-cols-[auto_1fr] gap-3 border-b border-b-white pb-[9.6px] py-2">
734
+ `;class Bs{constructor(e){b(this,"container");b(this,"selected");b(this,"secret");b(this,"onAction");b(this,"paymentService");b(this,"currency");b(this,"amount");b(this,"ussd_detail");b(this,"fullname");b(this,"reference");b(this,"email");b(this,"abortController");b(this,"activeRef","");b(this,"pageLoader");b(this,"onError");this.container=e.container,this.selected=e.selected,this.onAction=e.onAction,this.secret=e.secret,this.abortController=new AbortController,this.paymentService=new Jo({token:this.secret,rdtCode:e.rdtCode,url:e.url}),this.currency=e.currency,this.amount=e.amount||0,this.email=e.email,this.fullname=e.fullname,this.reference=e.reference,this.onError=e.onError??(()=>null),this.pageLoader=new Ai(this.container),this.pageLoader.mountLoader(),this.pageLoader.updateMessage("Fetching selected bank code detail")}makePayment(){var e;w.track("start_ussdProcess",{payment_method:"USSD"}),this.paymentService.createUssdPayment({amount:this.amount,currency:this.currency,channel:"ussd",customer:{email:this.email,name:this.fullname},bank:{code:((e=this.selected)==null?void 0:e.code)||""},reference:this.reference||oi()}).then(n=>{var o;if(this.ussd_detail=n.ussd,this.activeRef=n.reference||"",n.status==="failed"){D.showToast(n.providerMessage||"Payment failed","error"),this.onError(n.providerMessage||"Payment failed"),w.track("stop_ussdProcess",{payment_method:"USSD"});return}else if(n.status!=="success"){this.container.innerHTML=this.render();const a=this.container.querySelectorAll(".bank-dial-code"),t=this.container.querySelector("#bank-dial-code");t&&(t.innerHTML=((o=n==null?void 0:n.ussd)==null?void 0:o.paymentCode)||""),Array.from(a).forEach(d=>{var r;d.innerHTML=((r=n==null?void 0:n.ussd)==null?void 0:r.code)||""}),this.attachListener();return}this.container.innerHTML=this.render(),this.attachListener()}).catch(n=>{D.showToast("Payment failed","error"),this.onError("Payment failed")})}attachListener(){const e=this.container.querySelectorAll(".copy-code-button"),n=this.container.querySelectorAll(".copy-code-button-1"),o=this.container.querySelector("#bank-completed-payment");Array.from(e).forEach(s=>{s.addEventListener("click",d=>{var r;w.track("copy_ussdCode",{payment_method:"USSD"}),window.navigator.clipboard.writeText(((r=this.ussd_detail)==null?void 0:r.code)||"")})}),Array.from(n).forEach(s=>{s.addEventListener("click",d=>{var r;w.track("copy_ussdCode",{payment_method:"USSD"}),window.navigator.clipboard.writeText(((r=this.ussd_detail)==null?void 0:r.code)||"")})}),o&&o.addEventListener("click",s=>{s.preventDefault(),this.onAction(this.selected,this.activeRef)})}verifyPayment(){let e;this.abortController?e=this.abortController.signal:e=new AbortController().signal,console.log({signal:e})}renderComponent(){this.makePayment();const e=this.container.querySelectorAll(".bank-name-ussd"),n=this.container.querySelectorAll(".bank-dial-code");Array.from(e).forEach(t=>{t.innerHTML=this.selected.name||""}),Array.from(n).forEach(t=>{t.innerHTML=this.selected.code||""}),this.attachListener()}render(){return Ms}}var Is=Object.defineProperty,Ls=(i,e,n,o)=>{for(var a=void 0,t=i.length-1,s;t>=0;t--)(s=i[t])&&(a=s(e,n,a)||a);return a&&Is(e,n,a),a};class Zo{constructor({container:e,onSuccess:n,secret:o,amount:a,currency:t,email:s,fullname:d,reference:r,rdtCode:u,url:c,closeModal:h,switchTab:m}){b(this,"contents");b(this,"selectedCode");b(this,"secret");b(this,"amount");b(this,"currency");b(this,"fullname");b(this,"email");b(this,"pageLoader");b(this,"reference");b(this,"onSuccess");b(this,"closeModal");b(this,"warningScreen");b(this,"switchTab");b(this,"bankDetail");b(this,"viewUssdCode");b(this,"_currentStep");b(this,"container");b(this,"paymentService");b(this,"successScreen");b(this,"activeRef","");b(this,"abortController");b(this,"_retry_count",10);b(this,"intervalPayment");b(this,"rdtCode");b(this,"url");this.onSuccess=n||(()=>null),this.container=e,this.secret=o,this.amount=a,this.currency=t,this.fullname=d,this.reference=r,this.email=s,this.rdtCode=u,this.url=c,this.closeModal=h,this.switchTab=m,this.contents=this.container.querySelector("#payment-content-view"),this._currentStep=1,this.paymentService=new Jo({token:this.secret,rdtCode:this.rdtCode,url:this.url}),w.track("ussd_opens",{payment_method:"USSD"})}get currentStep(){return this._currentStep}set currentStep(e){this._currentStep=e,this.renderUssdContent()}onCodeSelect(e){this.selectedCode=e||"",setTimeout(()=>{this.currentStep=2},1e3)}validate(){let e;if(this.abortController?e=this.abortController.signal:(this.abortController=new AbortController,e=this.abortController.signal),this._retry_count<=0){D.showToast("Max polling time reached","error"),clearInterval(this.intervalPayment),this.currentStep=3,w.track("verify_ussdPayment",{payment_method:"USSD",verification_status:"Pending"});return}this.paymentService.verifyPayment(this.activeRef,e||this.abortController.signal).then(n=>{n.status==="failed"?this._retry_count-=1:["successful","failed"].includes(n.status)?["success","successful"].includes(n.status)&&(this.onSuccess(n),this.currentStep=5,clearInterval(this.intervalPayment),w.track("verify_ussdPayment",{payment_method:"USSD",verification_status:"Success"})):this._retry_count-=1}).catch(n=>{D.showToast(n.message,"error"),this.currentStep=3,clearInterval(this.intervalPayment),w.track("verify_ussdPayment",{payment_method:"USSD",verification_status:"Pending"})})}renderUssdContent(){switch(this.currentStep){case 1:this.bankDetail=new Yo({container:this.contents,merchantKey:this.secret,onAction:this.onCodeSelect.bind(this),rdtCode:this.rdtCode,url:this.url}),this.bankDetail.renderContent();break;case 2:this.reference||oi(),this.viewUssdCode=new Bs({container:this.contents,onAction:(e,n)=>{this.activeRef=n,this.currentStep=4,this.intervalPayment=setInterval(()=>{this.validate()},5e3)},selected:this.selectedCode||{},secret:this.secret,amount:this.amount,currency:this.currency,email:this.email||"",fullname:this.fullname||void 0,onError:e=>{this.currentStep=3,this.warningScreen.setPaymentError(e,!0)},rdtCode:this.rdtCode,url:this.url}),this.viewUssdCode.renderComponent();break;case 3:this.contents.innerHTML=Wo,this.warningScreen=new Vo({container:this.contents,switchTab:this.switchTab.bind(this),setCurrentTab:this.switchTab.bind(this),msg:""});break;case 4:this.pageLoader=new Ai(this.contents),this.pageLoader.mountLoader(),this.pageLoader.updateMessage("Verifying Payment");break;case 5:this.successScreen=new zo(this.contents,this.closeModal.bind(this)),this.contents.innerHTML=this.successScreen.render(),this.successScreen.attachListener();break;default:this.bankDetail=new Yo({container:this.contents,merchantKey:this.secret,onAction:this.onCodeSelect.bind(this)}),this.bankDetail.renderContent();break}}handleSelectChange(e){setTimeout(()=>{this.currentStep=2},400),this.currentStep=2}}Ls([jo(),jo()],Zo.prototype,"selectedCode");const Xo="data:image/svg+xml,%3csvg%20width='40'%20height='40'%20viewBox='0%200%2040%2040'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='40'%20height='40'%20rx='8'%20fill='%2301008E'/%3e%3cpath%20d='M13.0056%2026.2977C13.6398%2024.8735%2014.2552%2023.4941%2014.9174%2022.0054C15.1257%2022.3264%2015.2645%2022.5363%2015.3977%2022.748C16.4897%2024.4753%2017.8837%2025.9103%2019.7673%2026.8699C20.9305%2027.4618%2022.1632%2027.7721%2023.4877%2027.7219C24.5459%2027.6824%2025.15%2027.0295%2025.0412%2026.0286C24.9887%2025.5479%2024.8198%2025.0977%2024.4296%2024.7946C23.8855%2024.3713%2023.3339%2023.921%2022.7091%2023.6358C21.2814%2022.9829%2019.7936%2022.4538%2018.3602%2021.8134C17.4146%2021.3919%2016.4728%2020.9309%2015.6135%2020.3677C14.3546%2019.5408%2013.5628%2018.3982%2013.4859%2016.8772C13.3996%2015.1444%2014.1576%2013.8673%2015.7167%2013.0063C16.7054%2012.4593%2017.7936%2012.1992%2018.9099%2012.0754C21.3864%2011.801%2023.7091%2012.2763%2025.8592%2013.4906C25.9605%2013.548%2026.0506%2013.627%2026.2044%2013.7364C25.5797%2014.9238%2024.9587%2016.1005%2024.2983%2017.3561C24.0675%2017.139%2023.8817%2016.9722%2023.7073%2016.7964C22.5891%2015.679%2021.3921%2014.6601%2019.9418%2013.9444C18.9268%2013.444%2017.8536%2013.1678%2016.711%2013.1929C15.4915%2013.218%2014.8293%2014.0664%2015.0619%2015.2216C15.1914%2015.8583%2015.5272%2016.3695%2016.06%2016.7139C16.7617%2017.1677%2017.499%2017.5928%2018.2683%2017.9265C19.4427%2018.4341%2020.6622%2018.8484%2021.8592%2019.3112C22.9493%2019.7327%2023.9906%2020.2404%2024.893%2020.9704C26.3376%2022.1399%2026.9024%2023.6179%2026.5346%2025.4044C26.3132%2026.4771%2025.6547%2027.2537%2024.7166%2027.8349C23.8817%2028.3515%2022.9512%2028.6259%2021.9793%2028.7569C19.9756%2029.0277%2017.9925%2028.9685%2016.0732%2028.2708C14.9193%2027.851%2013.9043%2027.225%2013%2026.2995L13.0056%2026.2977Z'%20fill='white'/%3e%3c/svg%3e",Ts=i=>i==null?void 0:i.replace(/_/g," ");function xs(i){return i.split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ")}const Ns=i=>{if(i){const e=Ts(i);return xs(e)}return""},Rs=`<div class="grid grid-cols-[auto_1fr] gap-3 border-b border-b-white pb-[9.6px] py-2">
735
735
  <p class="text-xs text-left" id="merchant-email"></p>
736
736
  <p class="text-xs justify-self-end break-words whitespace-normal" id="plan-name">-</p>
737
737
  </div>
@@ -788,7 +788,7 @@ or you can use record.mirror to access the mirror instance during recording.`;le
788
788
  <!-- Tab options -->
789
789
  </div>
790
790
  </div>
791
- `;class Os{constructor(e){b(this,"container");b(this,"merchantDetail");b(this,"onAction");this.container=e.container,this.merchantDetail=e.merchantDetail,this.onAction=e.onAction}attachListeners(){const e=this.container.querySelectorAll(".tab-button");Array.from(e).forEach((o,a)=>{const t=o.dataset.name||"",s=o.dataset.tab||"0",d=o.querySelector(".tab-button-icon"),r=o.querySelector(".tab-button-label");d&&(d.innerHTML=oe[t].icon),r&&(r.textContent=oe[t].label),o.addEventListener("click",u=>{u.preventDefault(),this.onAction(+s||a),console.log("Tab clicked",{idx:a,dataNumber:s,dataName:t})})})}renderComponent(){var o;this.container.innerHTML=this.render();const e=this.container.querySelector("#merchantLogo");e&&e.setAttribute("src",((o=this.merchantDetail)==null?void 0:o.merchantLogo)||Xo);const n=this.container.querySelector(".payment-options");n&&(n.innerHTML=`<div> ${Rn.filter(a=>(this.merchantDetail.paymentMethods||[]).includes(a.key)).map((a,t)=>`<div class="tab">
791
+ `;class Os{constructor(e){b(this,"container");b(this,"merchantDetail");b(this,"onAction");this.container=e.container,this.merchantDetail=e.merchantDetail,this.onAction=e.onAction}attachListeners(){const e=this.container.querySelectorAll(".tab-button");Array.from(e).forEach((o,a)=>{const t=o.dataset.name||"",s=o.dataset.tab||"0",d=o.querySelector(".tab-button-icon"),r=o.querySelector(".tab-button-label");d&&(d.innerHTML=oe[t].icon),r&&(r.textContent=oe[t].label),o.addEventListener("click",u=>{u.preventDefault(),this.onAction(+s||a)})})}renderComponent(){var o;this.container.innerHTML=this.render();const e=this.container.querySelector("#merchantLogo");e&&e.setAttribute("src",((o=this.merchantDetail)==null?void 0:o.merchantLogo)||Xo);const n=this.container.querySelector(".payment-options");n&&(n.innerHTML=`<div> ${Rn.filter(a=>(this.merchantDetail.paymentMethods||[]).includes(a.key)).map((a,t)=>`<div class="tab">
792
792
  <button class="tab-button flex items-center gap-3 group" data-name="${a.key}" data-tab="${t}">
793
793
  <div class="min-w-8 md:container-center lg:block">
794
794
  ${a.icon}
@@ -832,13 +832,13 @@ or you can use record.mirror to access the mirror instance during recording.`;le
832
832
  </div>
833
833
  <span>${A.label}</span>
834
834
  </button>
835
- </div>`).join(""));const n=document.getElementById("mob-action-btns");n&&(n.classList.add("hidden"),n.classList.remove("md:hidden"));const o=this.container.querySelectorAll(".close-btn"),a=Array.from(o);a.length>0&&a.forEach(A=>{A.addEventListener("click",()=>{w.track("checkout_closes"),this.onClose()})});const t=this.container.querySelector("#main-option-currency-text");if(t){const A=((d=(s=this.merchantPlanDetail)==null?void 0:s.plan)==null?void 0:d.amount)||this.amount,p=((u=(r=this.merchantPlanDetail)==null?void 0:r.plan)==null?void 0:u.currency)||"USD",f=p==="USD"?(h=(c=this.merchantPlanDetail)==null?void 0:c.rate)==null?void 0:h.from:p;t.textContent=`Pay ${f} ${ai((A||0)*(p==="USD"?(v=(m=this.merchantPlanDetail)==null?void 0:m.rate)==null?void 0:v.rate:1),2)}`}this.attachListener()}render(){return Hs}}const Ks=`<button type="button" class="button-outline px-3 w-auto whitespace-nowrap" id="change-method">
835
+ </div>`).join(""));const n=document.getElementById("mob-action-btns");n&&(n.classList.add("hidden"),n.classList.remove("md:hidden"));const o=this.container.querySelectorAll(".close-btn"),a=Array.from(o);a.length>0&&a.forEach(A=>{A.addEventListener("click",()=>{this.onClose()})});const t=this.container.querySelector("#main-option-currency-text");if(t){const A=((d=(s=this.merchantPlanDetail)==null?void 0:s.plan)==null?void 0:d.amount)||this.amount,p=((u=(r=this.merchantPlanDetail)==null?void 0:r.plan)==null?void 0:u.currency)||"USD",f=p==="USD"?(h=(c=this.merchantPlanDetail)==null?void 0:c.rate)==null?void 0:h.from:p;t.textContent=`Pay ${f} ${ai((A||0)*(p==="USD"?(v=(m=this.merchantPlanDetail)==null?void 0:m.rate)==null?void 0:v.rate:1),2)}`}this.attachListener()}render(){return Hs}}const Ks=`<button type="button" class="button-outline px-3 w-auto whitespace-nowrap" id="change-method">
836
836
  <span class="text-[10px] mr-1 ">x</span> Change Payment Method
837
837
  </button>
838
838
  <button type="button" class="button-outline px-6 w-auto close-btn whitespace-nowrap">
839
839
  <span class="text-[10px] mr-1 whitespace-nowrap">x</span> Cancel Payment
840
840
  </button>
841
- `;class Qs{constructor(e){b(this,"container");b(this,"onAction");b(this,"onClose");this.container=e.container,this.onAction=e.onAction,this.onClose=e.onClose}attachListener(){const e=this.container.querySelector("#change-method"),n=this.container.querySelectorAll(".close-btn"),o=Array.from(n);o.length>0&&o.forEach(a=>{a.addEventListener("click",()=>{w.track("checkout_closes"),this.onClose()})}),e&&e.addEventListener("click",()=>{this.onAction()})}renderComponent(){this.container.innerHTML=this.render(),this.attachListener()}render(){return Ks}}class Gs{constructor({container:e,email:n,encryption:o,merchantKey:a,modalContainer:t,amount:s,onClose:d,onSuccess:r,planId:u,rdtCode:c,url:h,reference:m}){b(this,"modalContainer");b(this,"currentPaymentMethod");b(this,"mainLayout");b(this,"mainHeader");b(this,"mainSidebar");b(this,"mainFooter");b(this,"mainOption");b(this,"currentStep");b(this,"merchantPlanDetail",{});b(this,"onSuccess");b(this,"onClose");b(this,"mainScreen");b(this,"currency","NGN");b(this,"card");b(this,"transfer");b(this,"ussd");b(this,"encryption");b(this,"merchantKey");b(this,"planId");b(this,"email");b(this,"amount",0);b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"isMobile",!1);this.modalContainer=t,this.encryption=o,this.planId=u||"",this.merchantKey=a,this.email=n,this.amount=s||0,this.rdtCode=c||"",this.url=h||"",this.reference=m||"",this.mainLayout=e,this.onSuccess=r||(()=>null),this.onClose=d||(()=>null),this.isMobile=window.matchMedia("(max-width: 767px)").matches,this.currentPaymentMethod=this.isMobile?3:0,this.currentStep=1}mountScreen(e,n){var a,t,s;this.mainLayout.innerHTML=this.render(),this.merchantPlanDetail=e,this.currency=((a=e==null?void 0:e.plan)==null?void 0:a.currency)||n,this.amount=((s=(t=this.merchantPlanDetail)==null?void 0:t.plan)==null?void 0:s.amount)||this.amount,this.mainHeader=new _s({container:document.getElementById("main-header"),email:this.email,amount:this.amount}),this.mainSidebar=new Os({container:document.getElementById("main-sidebar"),merchantDetail:e,onAction:this.switchTab.bind(this)}),this.mainHeader.renderComponent(e,this.amount,this.currency),this.mainSidebar.renderComponent(),this.mainFooter=new Qs({container:document.getElementById("mob-action-btns"),onAction:()=>{this.cleanup.bind(this);const d=document.querySelector("#mob-tab-co"),r=document.querySelector("#mob-tab-c");d&&r&&r.parentNode&&d.removeChild(r),this.currentPaymentMethod=3,this.updatePaymentMethodView(this.merchantKey,this.email,this.amount,this.currency),this.renderPaymentMethodContent()},onClose:this.closeBTN.bind(this)}),this.mainFooter.renderComponent();const o=document.getElementById("merchantLogoMob");o&&o.setAttribute("src",e.merchantLogo||Xo),this.updatePaymentMethodView(this.merchantKey,this.email,this.amount,this.currency),this.renderPaymentMethodContent(),this.setCurrentPaymentMethod(this.currentPaymentMethod),this.attachInputListeners(),this.switchTab=this.switchTab.bind(this)}attachInputListeners(){this.closeBTN()}closeBTN(){const e=document.body.querySelectorAll(".close-btn"),n=Array.from(e);n.length>0&&n.forEach(o=>{o.addEventListener("click",()=>{w.track("checkout_closes"),this.cleanup(),this.closeModal()})})}updatePaymentMethodView(e,n,o,a){var t,s,d,r;switch(this.currentPaymentMethod){case 0:return this.card=new qo({amount:o,currency:((s=(t=this.merchantPlanDetail)==null?void 0:t.plan)==null?void 0:s.currency)||a||"NGN",closeModal:this.closeModal.bind(this),token:e,container:this.modalContainer,email:n,planId:this.planId,rdtCode:this.rdtCode,url:this.url,reference:this.reference,onSuccess:this.onSuccess.bind(this),encryption:this.encryption,switchTab:()=>this.switchTab(1)});case 1:return this.transfer=new Ss({amount:o,currency:a,closeModal:this.closeModal.bind(this),token:e,container:this.modalContainer,email:n,planId:this.planId,rdtCode:this.rdtCode,url:this.url,reference:this.reference,onSuccess:this.onSuccess.bind(this)});case 2:return this.ussd=new Zo({container:this.modalContainer,onSuccess:this.onSuccess.bind(this),secret:this.merchantKey,amount:this.amount,currency:a||"NGN",planId:this.planId,rdtCode:this.rdtCode,url:this.url,email:this.email,fullname:void 0,reference:this.reference,closeModal:()=>this.closeModal(),switchTab:c=>this.switchTab.bind(c)});case 3:const u=this.mainLayout.querySelector("#payment-content-view");return this.mainOption=new Ps({container:u,merchantPlanDetail:this.merchantPlanDetail,amount:this.amount,onAction:c=>{this.switchTab.bind(this)(c)},onCleanup:this.cleanup.bind(this),onClose:this.closeBTN.bind(this)});default:return this.card=new qo({amount:o,currency:((r=(d=this.merchantPlanDetail)==null?void 0:d.plan)==null?void 0:r.currency)||a||"NGN",closeModal:this.closeModal.bind(this),token:e,container:this.modalContainer,email:n,rdtCode:this.rdtCode,url:this.url,reference:this.reference,planId:this.planId,onSuccess:this.onSuccess.bind(this),encryption:this.encryption,switchTab:()=>this.switchTab(1)})}}renderPaymentMethodContent(){return(()=>{switch(this.currentPaymentMethod){case 0:return this.card.renderCardContent(this.merchantPlanDetail);case 1:return this.transfer.renderTransferContent();case 2:return this.ussd.renderUssdContent();case 3:return this.mainOption.renderComponent();default:return this.card.renderCardContent(this.merchantPlanDetail)}})()}setCurrentPaymentMethod(e){this.currentPaymentMethod=e;const n=document.querySelectorAll(".tab-button"),o=document.getElementById("mob-action-btns");n.forEach(a=>a.classList.remove("active")),n[e]&&n[e].classList.add("active"),e!==3&&o&&(o.classList.remove("hidden"),o.classList.add("md:hidden"))}switchTab(e){this.setCurrentPaymentMethod(e),this.updatePaymentMethodView(this.merchantKey,this.email,this.amount,this.currency),this.cleanup(),this.renderPaymentMethodContent(),this.attachInputListeners()}cleanup(){this.transfer&&this.transfer.destroyTimer()}closeModal(e){this.modalContainer&&this.modalContainer.parentNode&&document.body.removeChild(this.modalContainer),e&&e(),this.onClose&&this.onClose()}setupParent(e){e&&e()}render(){return oa}}class Fs{constructor(e){b(this,"container");this.container=e}renderContent(e){this.container.innerHTML=this.render();const n=document.getElementById("error-message-div");n&&(n.classList.remove("hidden"),n.innerHTML=e||"Failed")}render(){return`
841
+ `;class Qs{constructor(e){b(this,"container");b(this,"onAction");b(this,"onClose");this.container=e.container,this.onAction=e.onAction,this.onClose=e.onClose}attachListener(){const e=this.container.querySelector("#change-method"),n=this.container.querySelectorAll(".close-btn"),o=Array.from(n);o.length>0&&o.forEach(a=>{a.addEventListener("click",()=>{this.onClose()})}),e&&e.addEventListener("click",()=>{this.onAction()})}renderComponent(){this.container.innerHTML=this.render(),this.attachListener()}render(){return Ks}}class Gs{constructor({container:e,email:n,encryption:o,merchantKey:a,modalContainer:t,amount:s,onClose:d,onSuccess:r,planId:u,rdtCode:c,url:h,reference:m}){b(this,"modalContainer");b(this,"currentPaymentMethod");b(this,"mainLayout");b(this,"mainHeader");b(this,"mainSidebar");b(this,"mainFooter");b(this,"mainOption");b(this,"currentStep");b(this,"merchantPlanDetail",{});b(this,"onSuccess");b(this,"onClose");b(this,"mainScreen");b(this,"currency","NGN");b(this,"card");b(this,"transfer");b(this,"ussd");b(this,"encryption");b(this,"merchantKey");b(this,"planId");b(this,"email");b(this,"amount",0);b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"isMobile",!1);this.modalContainer=t,this.encryption=o,this.planId=u||"",this.merchantKey=a,this.email=n,this.amount=s||0,this.rdtCode=c||"",this.url=h||"",this.reference=m||"",this.mainLayout=e,this.onSuccess=r||(()=>null),this.onClose=d||(()=>null),this.isMobile=window.matchMedia("(max-width: 767px)").matches,this.currentPaymentMethod=this.isMobile?3:0,this.currentStep=1}mountScreen(e,n){var a,t,s;this.mainLayout.innerHTML=this.render(),this.merchantPlanDetail=e,this.currency=((a=e==null?void 0:e.plan)==null?void 0:a.currency)||n,this.amount=((s=(t=this.merchantPlanDetail)==null?void 0:t.plan)==null?void 0:s.amount)||this.amount,this.mainHeader=new _s({container:document.getElementById("main-header"),email:this.email,amount:this.amount}),this.mainSidebar=new Os({container:document.getElementById("main-sidebar"),merchantDetail:e,onAction:this.switchTab.bind(this)}),this.mainHeader.renderComponent(e,this.amount,this.currency),this.mainSidebar.renderComponent(),this.mainFooter=new Qs({container:document.getElementById("mob-action-btns"),onAction:()=>{this.cleanup.bind(this);const d=document.querySelector("#mob-tab-co"),r=document.querySelector("#mob-tab-c");d&&r&&r.parentNode&&d.removeChild(r),this.currentPaymentMethod=3,this.updatePaymentMethodView(this.merchantKey,this.email,this.amount,this.currency),this.renderPaymentMethodContent()},onClose:this.closeBTN.bind(this)}),this.mainFooter.renderComponent();const o=document.getElementById("merchantLogoMob");o&&o.setAttribute("src",e.merchantLogo||Xo),this.updatePaymentMethodView(this.merchantKey,this.email,this.amount,this.currency),this.renderPaymentMethodContent(),this.setCurrentPaymentMethod(this.currentPaymentMethod),this.attachInputListeners(),this.switchTab=this.switchTab.bind(this)}attachInputListeners(){this.closeBTN()}closeBTN(){Array.from(document.querySelectorAll(".close-btn")).forEach(n=>{if(!n.dataset.listenerAttached){const o=()=>{w.track("checkout_closes"),this.cleanup(),this.closeModal()};n.dataset.listenerAttached="true",n.addEventListener("click",o)}})}updatePaymentMethodView(e,n,o,a){var t,s,d,r;switch(this.currentPaymentMethod){case 0:return this.card=new qo({amount:o,currency:((s=(t=this.merchantPlanDetail)==null?void 0:t.plan)==null?void 0:s.currency)||a||"NGN",closeModal:this.closeModal.bind(this),token:e,container:this.modalContainer,email:n,planId:this.planId,rdtCode:this.rdtCode,url:this.url,reference:this.reference,onSuccess:this.onSuccess.bind(this),encryption:this.encryption,switchTab:()=>this.switchTab(1)});case 1:return this.transfer=new Ss({amount:o,currency:a,closeModal:this.closeModal.bind(this),token:e,container:this.modalContainer,email:n,rdtCode:this.rdtCode,url:this.url,reference:this.reference,onSuccess:this.onSuccess.bind(this)});case 2:return this.ussd=new Zo({container:this.modalContainer,onSuccess:this.onSuccess.bind(this),secret:this.merchantKey,amount:o,currency:a||"NGN",rdtCode:this.rdtCode,url:this.url,email:this.email,fullname:void 0,reference:this.reference,closeModal:()=>this.closeModal(),switchTab:c=>this.switchTab.bind(c)});case 3:const u=this.mainLayout.querySelector("#payment-content-view");return this.mainOption=new Ps({container:u,merchantPlanDetail:this.merchantPlanDetail,amount:this.amount,onAction:c=>{this.switchTab.bind(this)(c)},onCleanup:this.cleanup.bind(this),onClose:this.closeBTN.bind(this)});default:return this.card=new qo({amount:o,currency:((r=(d=this.merchantPlanDetail)==null?void 0:d.plan)==null?void 0:r.currency)||a||"NGN",closeModal:this.closeModal.bind(this),token:e,container:this.modalContainer,email:n,rdtCode:this.rdtCode,url:this.url,reference:this.reference,planId:this.planId,onSuccess:this.onSuccess.bind(this),encryption:this.encryption,switchTab:()=>this.switchTab(1)})}}renderPaymentMethodContent(){return(()=>{switch(this.currentPaymentMethod){case 0:return this.card.renderCardContent(this.merchantPlanDetail);case 1:return this.transfer.renderTransferContent();case 2:return this.ussd.renderUssdContent();case 3:return this.mainOption.renderComponent();default:return this.card.renderCardContent(this.merchantPlanDetail)}})()}setCurrentPaymentMethod(e){this.currentPaymentMethod=e;const n=document.querySelectorAll(".tab-button"),o=document.getElementById("mob-action-btns");n.forEach(a=>a.classList.remove("active")),n[e]&&n[e].classList.add("active"),e!==3&&o&&(o.classList.remove("hidden"),o.classList.add("md:hidden"))}switchTab(e){this.setCurrentPaymentMethod(e),this.updatePaymentMethodView(this.merchantKey,this.email,this.amount,this.currency),this.cleanup(),this.renderPaymentMethodContent(),this.attachInputListeners()}cleanup(){this.transfer&&this.transfer.destroyTimer()}closeModal(e){this.modalContainer&&this.modalContainer.parentNode&&document.body.removeChild(this.modalContainer),e&&e(),this.onClose&&this.onClose()}setupParent(e){e&&e()}render(){return oa}}class Fs{constructor(e){b(this,"container");this.container=e}renderContent(e){this.container.innerHTML=this.render();const n=document.getElementById("error-message-div");n&&(n.classList.remove("hidden"),n.innerHTML=e||"Failed")}render(){return`
842
842
  <div class="box-container">
843
843
  <button type="button"
844
844
  class="hidden top-0 right-0 text-lg fixed hover:bg-primary hover:text-white h-6 w-6 md:flex justify-center items-end rounded-full close-btn">x</button>
@@ -847,4 +847,4 @@ or you can use record.mirror to access the mirror instance during recording.`;le
847
847
  <div id="error-message-div" class="hidden"></div>
848
848
  </div>
849
849
  </div>
850
- `}}const Us="data:image/png;base64,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",zs="11162d9a0801daeaf786f1200cd3112b";class Ws{constructor(e){b(this,"modalContainer");b(this,"currentPaymentMethod");b(this,"currentStep");b(this,"mainLayout");b(this,"onSuccess");b(this,"onClose");b(this,"encryption");b(this,"mainScreen");b(this,"merchantConfigService");b(this,"mainError");b(this,"mainLoader");b(this,"merchantPlanDetail",{});b(this,"merchantKey");b(this,"planId");b(this,"email");b(this,"amount");b(this,"isMobile",!1);b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"currency");const{email:n,encryptionKey:o,merchantKey:a,planId:t,amount:s,rdtCode:d,reference:r,currency:u,url:c,onClose:h,onSuccess:m}=e;this.onSuccess=m||(()=>null),this.onClose=h||(()=>null),this.merchantKey=a||"",this.email=n||"",this.amount=s||0,this.planId=t||"",this.encryption=o||"",this.modalContainer=document.createElement("div"),this.rdtCode=d||"",this.reference=r||"",this.currency=u||"",this.url=c||"",this.modalContainer.innerHTML=Ue,w.init(zs,{debug:!0}),document.body.appendChild(this.modalContainer),this.isMobile=window.matchMedia("(max-width: 767px)").matches,this.currentPaymentMethod=this.isMobile?3:0,this.currentStep=1;const v=document.getElementById("main-layout-container-screen");if(!v)throw new Error("SDK Layout not available");this.mainLayout=v}closeBTN(){const e=document.body.querySelectorAll(".close-btn"),n=Array.from(e);n.length>0&&n.forEach(o=>{o.addEventListener("click",()=>{w.track("checkout_closes"),this.closeModal()})})}getDeviceType(){const e=navigator.userAgent;return/mobile/i.test(e)?"Mobile":/tablet/i.test(e)?"Tablet":"Desktop"}setup(e){const{email:n,encryptionKey:o,merchantKey:a,planId:t,amount:s,rdtCode:d,reference:r,currency:u,url:c,onClose:h,onSuccess:m}=e;if(this.onSuccess=m||this.onSuccess,this.onClose=h||this.onClose,this.merchantKey=a||"",this.email=n||"",this.amount=s||0,this.encryption=o||"",this.planId=t||"",this.rdtCode=d||"",this.reference=r||oi(),this.url=c||"",this.currency=u||"",this.merchantConfigService=new ks({token:this.merchantKey,rdtCode:this.rdtCode,url:this.url}),!a||!n||!o)throw this.closeModal.bind(this),new Error("Merchant key or email or encryption key is required");this.mainScreen=new Gs({container:this.mainLayout,modalContainer:this.modalContainer,merchantKey:a,email:n,encryption:this.encryption,planId:this.planId,amount:this.amount,rdtCode:this.rdtCode,url:this.url,reference:this.reference,onClose:this.onClose.bind(this),onSuccess:this.onSuccess.bind(this)}),this.mainLoader=new Ai(this.mainLayout),this.mainError=new Fs(this.mainLayout),this.mainLoader.mountLoader(),this.getPlanDetails()}async getPlanDetails(){this.merchantConfigService.getMerchantConfig(this.planId).then(e=>{this.merchantPlanDetail=e,w.register({device_type:this.getDeviceType(),session_id:this.reference,env:"Test",checkout_env:this.rdtCode?"Redirect":"SDK",merchant:this.merchantPlanDetail.merchantName}),w.track("checkout_opens"),this.mainScreen.mountScreen(this.merchantPlanDetail,this.currency)}).catch(e=>{var o;this.mainError.renderContent((e==null?void 0:e.message)||"Failed to called payment");const n=this.mainLayout.querySelector("#shared-error-container");n&&(n.classList.remove("hidden"),n.parentElement.classList.add("mx-auto"),(o=n.querySelector("img"))==null||o.setAttribute("src",Us)),console.error({err:e}),this.closeBTN()}).finally(()=>{console.log("plan detail merchant informatio reached")})}closeModal(){this.modalContainer&&this.modalContainer.parentNode&&document.body.removeChild(this.modalContainer),this.mainScreen.closeModal(),this.onClose&&this.onClose()}}ae.CheckoutForm=Ws,Object.defineProperty(ae,Symbol.toStringTag,{value:"Module"})});
850
+ `}}const Us="data:image/png;base64,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",zs="11162d9a0801daeaf786f1200cd3112b";class Ws{constructor(e){b(this,"modalContainer");b(this,"currentPaymentMethod");b(this,"currentStep");b(this,"mainLayout");b(this,"onSuccess");b(this,"onClose");b(this,"encryption");b(this,"mainScreen");b(this,"merchantConfigService");b(this,"mainError");b(this,"mainLoader");b(this,"merchantPlanDetail",{});b(this,"merchantKey");b(this,"planId");b(this,"email");b(this,"amount");b(this,"isMobile",!1);b(this,"rdtCode");b(this,"url");b(this,"reference");b(this,"currency");const{email:n,encryptionKey:o,merchantKey:a,planId:t,amount:s,rdtCode:d,reference:r,currency:u,url:c,onClose:h,onSuccess:m}=e;this.onSuccess=m||(()=>null),this.onClose=h||(()=>null),this.merchantKey=a||"",this.email=n||"",this.amount=s||0,this.planId=t||"",this.encryption=o||"",this.modalContainer=document.createElement("div"),this.rdtCode=d||"",this.reference=r||"",this.currency=u||"",this.url=c||"",this.modalContainer.innerHTML=Ue,w.init(zs,{debug:!0}),document.body.appendChild(this.modalContainer),this.isMobile=window.matchMedia("(max-width: 767px)").matches,this.currentPaymentMethod=this.isMobile?3:0,this.currentStep=1;const v=document.getElementById("main-layout-container-screen");if(!v)throw new Error("SDK Layout not available");this.mainLayout=v}closeBTN(){const e=document.body.querySelectorAll(".close-btn"),n=Array.from(e);n.length>0&&n.forEach(o=>{o.addEventListener("click",()=>{w.track("checkout_closes"),this.closeModal()})})}getDeviceType(){const e=navigator.userAgent;return/mobile/i.test(e)?"Mobile":/tablet/i.test(e)?"Tablet":"Desktop"}setup(e){const{email:n,encryptionKey:o,merchantKey:a,planId:t,amount:s,rdtCode:d,reference:r,currency:u,url:c,onClose:h,onSuccess:m}=e;if(this.onSuccess=m||this.onSuccess,this.onClose=h||this.onClose,this.merchantKey=a||"",this.email=n||"",this.amount=s||0,this.encryption=o||"",this.planId=t||"",this.rdtCode=d||"",this.reference=r||oi(),this.url=c||"",this.currency=u||"",this.merchantConfigService=new ks({token:this.merchantKey,rdtCode:this.rdtCode,url:this.url}),!a||!n||!o)throw this.closeModal.bind(this),new Error("Merchant key or email or encryption key is required");this.mainScreen=new Gs({container:this.mainLayout,modalContainer:this.modalContainer,merchantKey:a,email:n,encryption:this.encryption,planId:this.planId,amount:this.amount,rdtCode:this.rdtCode,url:this.url,reference:this.reference,onClose:this.onClose.bind(this),onSuccess:this.onSuccess.bind(this)}),this.mainLoader=new Ai(this.mainLayout),this.mainError=new Fs(this.mainLayout),this.mainLoader.mountLoader(),this.getPlanDetails()}async getPlanDetails(){this.merchantConfigService.getMerchantConfig(this.planId).then(e=>{this.merchantPlanDetail=e,w.register({device_type:this.getDeviceType(),session_id:this.reference,env:"Test",checkout_env:this.rdtCode?"Redirect":"SDK",merchant:this.merchantPlanDetail.merchantName}),w.track("checkout_opens"),this.mainScreen.mountScreen(this.merchantPlanDetail,this.currency)}).catch(e=>{var o;this.mainError.renderContent((e==null?void 0:e.message)||"Failed to called payment");const n=this.mainLayout.querySelector("#shared-error-container");n&&(n.classList.remove("hidden"),n.parentElement.classList.add("mx-auto"),(o=n.querySelector("img"))==null||o.setAttribute("src",Us)),console.error({err:e}),this.closeBTN()}).finally(()=>{})}closeModal(){this.modalContainer&&this.modalContainer.parentNode&&document.body.removeChild(this.modalContainer),this.mainScreen.closeModal(),this.onClose&&this.onClose()}}ae.CheckoutForm=Ws,Object.defineProperty(ae,Symbol.toStringTag,{value:"Module"})});
@@ -7,7 +7,6 @@ type Props = {
7
7
  token: string;
8
8
  email: string;
9
9
  amount: number;
10
- planId: string;
11
10
  onSuccess?: (_val?: any) => void;
12
11
  currency?: string;
13
12
  rdtCode?: string;
@@ -28,7 +27,6 @@ declare class Transfer {
28
27
  mainLoader: PageLoader;
29
28
  private token;
30
29
  private currency?;
31
- private planId;
32
30
  private amount;
33
31
  private rdtCode?;
34
32
  private url?;
@@ -40,7 +38,7 @@ declare class Transfer {
40
38
  private timeLeft;
41
39
  private timerId;
42
40
  private abortController;
43
- constructor({ amount, closeModal, container, email, planId, token, currency, rdtCode, url, reference, onSuccess, }: Props);
41
+ constructor({ amount, closeModal, container, email, token, currency, rdtCode, url, reference, onSuccess, }: Props);
44
42
  get currentStep(): number;
45
43
  set currentStep(step: number);
46
44
  attachInputListeners(): void;
@@ -4,7 +4,6 @@ type Props = {
4
4
  secret: string;
5
5
  amount: number;
6
6
  currency: string;
7
- planId: string;
8
7
  reference?: string;
9
8
  email?: string;
10
9
  fullname?: string;
@@ -19,7 +18,6 @@ declare class Ussd {
19
18
  private secret;
20
19
  private amount;
21
20
  private currency;
22
- private planId?;
23
21
  private fullname?;
24
22
  private email?;
25
23
  private pageLoader;
@@ -40,7 +38,7 @@ declare class Ussd {
40
38
  private intervalPayment?;
41
39
  private rdtCode?;
42
40
  private url?;
43
- constructor({ container, onSuccess, secret, amount, currency, planId, email, fullname, reference, rdtCode, url, closeModal, switchTab, }: Props);
41
+ constructor({ container, onSuccess, secret, amount, currency, email, fullname, reference, rdtCode, url, closeModal, switchTab, }: Props);
44
42
  get currentStep(): number;
45
43
  set currentStep(step: number);
46
44
  private onCodeSelect;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spot-flow/checkout-inline-js",
3
- "version": "0.1.22",
3
+ "version": "0.1.24",
4
4
  "description": "",
5
5
  "main": "dist/checkout-inline.js",
6
6
  "module": "dist/checkout-inline.es.js",