@spot-flow/checkout-inline-js 0.0.7 → 0.1.16

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.
@@ -1,471 +1,134 @@
1
- import './index.css';var D = Object.defineProperty;
2
- var J = (r, e, t) => e in r ? D(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var o = (r, e, t) => J(r, typeof e != "symbol" ? e + "" : e, t);
4
- const K = `<div id="checkout-modal">
1
+ import './index.css';var J = Object.defineProperty;
2
+ var O = (o, t, e) => t in o ? J(o, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[t] = e;
3
+ var a = (o, t, e) => O(o, typeof t != "symbol" ? t + "" : t, e);
4
+ const Z = `<div id="checkout-modal">
5
5
  <div role="dialog" class="relative z-10" aria-labelledby="modal-title" aria-modal="true">
6
6
  <div class="fixed inset-0 bg-[#fafaff] bg-opacity-100 transition-opacity" aria-hidden="true"></div>
7
-
7
+
8
8
  <div id="toast-container"></div>
9
-
9
+
10
10
  <div class="fixed inset-0 z-10 w-screen overflow-y-auto">
11
11
  <div class="relative flex min-h-full items-end justify-center text-center sm:items-center p-0">
12
- <div
12
+ <button type="button"
13
+ 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>
14
+ <div id="main-layout-container-screen"
13
15
  class="relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all sm:my-8 w-full sm:w-4/5 md:w-[90%] lg:w-[900px] min-h-screen sm:min-h-[70%] flex">
14
-
15
- <aside class="px-2 py-4 md:flex justify-center w-[250px] bg-[#f4f4ff] overflow-auto hidden">
16
- <div class="w-full py-8">
17
- <div class="container-center">
18
- <img src="" alt="Nba Logo" id="merchantLogo" class="hidden md:flex" />
19
- </div>
20
- <h5 class="text-xl font-semibold text-common pt-10 pb-4 text-center">PAYMENT OPTIONS</h5>
21
- <div class="payment-options">
22
-
23
- <!-- Tab options -->
24
- </div>
25
- </div>
26
- </aside>
27
- <div class="main" id="main">
28
- <div class="container-center w-full bg-primary-lighter">
29
- <img src="" alt="Nba Logo" id="merchantLogoMob" class="md:hidden" />
30
- </div>
31
- <div id="mob-tab-co">
32
-
33
- </div>
34
- <button
35
- 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>
36
-
37
- <div class="box-container relative max-sm:py-4 max-sm:px-4">
38
- <!-- header -->
39
- <div class="header-container">
40
- <div class="container-between border-b border-b-white pb-[9.6px]">
41
- <p class="text-xs" id="merchant-email"></p>
42
- <p class="text-xs">League Pass</p>
43
- </div>
44
- <div class="container-between pt-[9.6px] pb-[6.4px]">
45
- <div class="align-center">
46
- <p class="text-sm mr-1">USD 1 = NGN 1,483.98</p>
47
- <div class="group relative flex flex-col items-center cursor-pointer">
48
- <svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
49
- <path
50
- d="M5 8C4.72386 8 4.5 7.77614 4.5 7.5L4.5 4C4.5 3.72386 4.72386 3.5 5 3.5C5.27614 3.5 5.5 3.72386 5.5 4L5.5 7.5C5.5 7.77614 5.27614 8 5 8Z"
51
- fill="#CCCCE8" />
52
- <path
53
- d="M5.625 2.625C5.625 2.27982 5.34518 2 5 2C4.65482 2 4.375 2.27982 4.375 2.625C4.375 2.97018 4.65482 3.25 5 3.25C5.34518 3.25 5.625 2.97018 5.625 2.625Z"
54
- fill="#CCCCE8" />
55
- <path fill-rule="evenodd" clip-rule="evenodd"
56
- d="M10 5C10 7.76142 7.76142 10 5 10C2.23858 10 1.95703e-07 7.76142 4.37114e-07 5C6.78525e-07 2.23858 2.23858 -6.78525e-07 5 -4.37114e-07C7.76142 -1.95703e-07 10 2.23858 10 5ZM5 9C7.20914 9 9 7.20914 9 5C9 2.79086 7.20914 1 5 1C2.79086 0.999999 1 2.79086 1 5C1 7.20914 2.79086 9 5 9Z"
57
- fill="#CCCCE8" />
58
- </svg>
59
-
60
- <div class="tooltip">
61
- <div class="tooltip-textbox">
62
- <p class="tooltip-title">
63
- What is this?
64
- </p>
65
- <p class="tooltip-text">
66
- This rate reflects the current exchange rate for
67
- converting United States Dollars (USD) to Nigerian Naira
68
- (NGN). Please note that exchange rates are subject to
69
- change and may vary slightly at the time of the
70
- transaction.
71
- </p>
72
- </div>
73
- </div>
74
- </div>
75
- </div>
76
- <div>
77
- <p class="text-sm"> Pay
78
- <span> USD 14.99</span>
79
- </p>
80
- </div>
81
-
82
- </div>
83
-
84
- <div class="flex justify-end">
85
- <div class="header-chip">
86
- NGN 22,244.86
87
- </div>
88
- </div>
89
- </div>
90
- <!-- body -->
91
- <div class="box-container-method">
92
- <div class="content active" data-content="0">
93
- </div>
94
- <div class="content" data-content="1"></div>
95
- <div class="content" data-content="2"></div>
96
- </div>
97
-
98
- <div id="mob-container" class="md:hidden">
99
-
100
-
101
- </div>
102
- <!-- footer -->
103
- <div class="container-between gap-2 mt-20 mb-8 md:hidden" id="mob-action-btns">
104
- <button class="button-outline px-3 w-auto" id="change-method">
105
- <span class="text-[10px] mr-1">x</span> Change Payment Method
106
- </button>
107
- <button class="button-outline px-6 w-auto close-btn">
108
- <span class="text-[10px] mr-1">x</span> Cancel Payment
109
- </button>
110
- </div>
111
- <div class="container-center pt-2 pb-8 gap-1">
112
- <svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
113
- <path
114
- d="M4.884 0.68L1.384 2.235C1.024 2.395 0.789001 2.755 0.789001 3.15V5.5C0.789001 8.275 2.709 10.87 5.289 11.5C7.869 10.87 9.789 8.275 9.789 5.5V3.15C9.789 2.755 9.554 2.395 9.194 2.235L5.694 0.68C5.439 0.565 5.139 0.565 4.884 0.68ZM5.289 5.995H8.789C8.524 8.055 7.149 9.89 5.289 10.465V6H1.789V3.15L5.289 1.595V5.995Z"
115
- fill="#6D6A73" />
116
- </svg>
117
-
118
- <p class="text-[10px] text-grey-100">
119
- PCI DSS Certified
120
- </p>
121
- </div>
122
- </div>
123
- </div>
124
- </div>
125
-
126
- </div>
127
- </div>
128
- </div>
129
- </div>
130
- `, M = "data:image/png;base64,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", x = `<form id="checkoutcard">
131
- <div class="box-container">
132
- <h5 class="content-heading">Enter your card details to pay</h5>
133
- <div class="mt-8">
134
- <div class="relative mx-4 md:mx-6 mb-4">
135
- <span
136
- class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]"
137
- >CARD NUMBER</span
138
- >
139
- <div>
140
- <input
141
- class="details-input-container"
142
- type="tel"
143
- id="card-number"
144
- name="number"
145
- placeholder="0000 0000 0000 0000"
146
- required
147
- />
148
- </div>
149
- <div class="absolute right-3 top-1/2 -translate-y-2/4 max-sm:hidden">
150
- <div id="card-types" class="align-center gap-2">
151
- </div>
152
- </div>
153
- </div>
154
-
155
- <div class="grid grid-cols-2 gap-4 my-4 mx-4 md:mx-6">
156
- <div class="relative w-full">
157
- <span
158
- class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]"
159
- >CARD EXPIRY</span
160
- >
161
- <div>
162
- <input
163
- class="details-input-container"
164
- type="tel"
165
- id="card-expiry"
166
- name="expiry"
167
- placeholder="MM / YY"
168
- required
169
- />
170
- </div>
171
- </div>
172
-
173
- <div class="relative w-full">
174
- <span
175
- class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]"
176
- >CVV</span
177
- >
178
- <div>
179
- <input
180
- class="details-input-container"
181
- type="tel"
182
- id="card-cvv"
183
- name="cvv"
184
- placeholder="123"
185
- required
186
- />
187
- </div>
188
- </div>
189
- </div>
190
-
191
- <div class="mx-4 md:mx-6 my-8">
192
- <button type="submit" disabled="true" class="details-form-button">
193
- <svg class="spinner hidden" id="spinner" viewBox="0 0 24 24">
194
- <path
195
- d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
196
- ></path>
197
- </svg>
198
- <span id="details-form-button-text"> Pay USD 14.99 </span>
199
- </button>
200
- </div>
201
- </div>
202
- </div>
203
- </form>
204
- `, O = `<div id="checkoutcardpin">
205
- <div class="box-container md:w-4/5 mx-auto py-8 md:py-16">
206
- <div class="container-center h-[20vh] hidden" id="loader">
207
- <img src="" alt="loader gif" />
208
- </div>
209
- <div id="pin-content">
210
- <h5 class="pin-text">
211
- Please enter your 4-digit card pin to authorize this payment
212
- </h5>
213
-
214
- <div class="mt-8">
215
- <div class="pin-container">
216
- <input type="tel" class="pin-input" maxlength="1" id="pin1" />
217
- <input type="tel" class="pin-input" maxlength="1" id="pin2" />
218
- <input type="tel" class="pin-input" maxlength="1" id="pin3" />
219
- <input type="tel" class="pin-input" maxlength="1" id="pin4" />
220
- </div>
221
16
 
222
- <div class="container-center mt-8">
223
- <button class="pin-cancel close-btn">Cancel</button>
224
- </div>
225
- </div>
226
- </div>
227
- </div>
228
- </div>
229
- `, Z = `<div id="checkoutcardotp">
230
- <div class="box-containe w-11/12 md:w-4/5 mx-auto py-8 md:py-16">
231
- <div class="container-center h-[20vh] hidden" id="loader">
232
- <img src="" alt="loader gif" />
233
- </div>
234
- <div id="otp-content">
235
- <h5 class="otp-text">Kindly enter the OTP sent to 234249***3875</h5>
236
-
237
- <div class="mt-8">
238
- <div class="relative w-full grid grid-cols-1 md:grid-cols-3 gap-7 md:gap-5">
239
- <div class="col-span-2">
240
- <input
241
- class="otp-input"
242
- type="tel"
243
- id="card-otp"
244
- name="otp"
245
- required
246
- />
247
- </div>
248
-
249
- <div class="max-sm:text-center max-sm:w-4/5 max-sm:mx-auto">
250
- <button class="otp-button" disabled="true">Authorize</button>
251
- </div>
252
- </div>
253
17
 
254
- <div class="py-5">
255
- <p class="otp-subtext">
256
- A token should be sent to you  within 6 minutes
257
- </p>
258
18
  </div>
259
19
 
260
- <div class="container-center">
261
- <button class="pin-cancel">Cancel</button>
262
- </div>
263
20
  </div>
264
21
  </div>
265
22
  </div>
266
23
  </div>
267
- `, I = `<div id="paymentWarning">
268
- <div class="box-container">
269
- <div class="text-center mt-7">
270
- <svg
271
- class="mx-auto"
272
- width="48"
273
- height="46"
274
- viewBox="0 0 48 46"
275
- fill="none"
276
- xmlns="http://www.w3.org/2000/svg"
277
- >
278
- <path
279
- d="M47.4936 39.5624L27.5213 2.47251C26.1057 -0.157178 22.3346 -0.157178 20.9178 2.47251L0.946695 39.5624C0.639327 40.1332 0.485227 40.7741 0.499436 41.4223C0.513645 42.0705 0.695678 42.7039 1.02777 43.2608C1.35986 43.8177 1.83065 44.2789 2.39421 44.5995C2.95776 44.9201 3.59481 45.0892 4.24318 45.0901H44.1912C44.8401 45.0902 45.4779 44.9219 46.0422 44.6017C46.6066 44.2815 47.0782 43.8204 47.411 43.2633C47.7438 42.7063 47.9263 42.0724 47.9408 41.4237C47.9553 40.775 47.8012 40.1337 47.4936 39.5624V39.5624ZM24.2201 39.3479C23.7566 39.3479 23.3034 39.2104 22.918 38.9529C22.5326 38.6954 22.2322 38.3293 22.0548 37.9011C21.8774 37.4728 21.831 37.0016 21.9214 36.5469C22.0119 36.0923 22.2351 35.6746 22.5629 35.3469C22.8906 35.0191 23.3082 34.7959 23.7629 34.7054C24.2175 34.615 24.6888 34.6614 25.117 34.8388C25.5453 35.0162 25.9114 35.3166 26.1689 35.702C26.4264 36.0875 26.5639 36.5406 26.5639 37.0042C26.5639 37.3119 26.5033 37.6167 26.3855 37.9011C26.2677 38.1854 26.095 38.4438 25.8774 38.6614C25.6598 38.8791 25.4014 39.0517 25.117 39.1695C24.8327 39.2873 24.5279 39.3479 24.2201 39.3479ZM26.7654 15.7756L26.0928 30.0725C26.0928 30.5698 25.8952 31.0467 25.5436 31.3983C25.192 31.75 24.7151 31.9475 24.2178 31.9475C23.7205 31.9475 23.2436 31.75 22.892 31.3983C22.5403 31.0467 22.3428 30.5698 22.3428 30.0725L21.6701 15.7815C21.655 15.44 21.7088 15.099 21.8283 14.7787C21.9478 14.4584 22.1306 14.1655 22.3657 13.9174C22.6008 13.6692 22.8835 13.471 23.1968 13.3344C23.5102 13.1979 23.8478 13.1258 24.1897 13.1225H24.2143C24.5584 13.1223 24.899 13.1919 25.2156 13.327C25.5321 13.462 25.818 13.6598 26.0559 13.9085C26.2939 14.1571 26.4791 14.4513 26.6002 14.7734C26.7213 15.0955 26.776 15.4389 26.7608 15.7827L26.7654 15.7756Z"
280
- fill="#FF9B00"
281
- />
282
- </svg>
283
-
284
- <p id="payment-warning-text" class="warning-text"></p>
285
- </div>
286
-
287
- <div class="warning-list box-container">
288
- </div>
289
- </div>
290
- </div>
291
- `, H = `<div id="paymentSuccess">
292
- <div class="box-container">
293
- <div class="text-center mt-7"></div>
294
- <svg class="mx-auto" width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
295
- <circle cx="50" cy="50" r="50" fill="#D6F1E4" />
296
- <circle opacity="0.52" cx="49.5" cy="49.5" r="37.5" fill="#99DDBC" />
297
- <ellipse cx="48.4502" cy="48.45" rx="23.25" ry="23.25" fill="white" />
298
- <path
299
- d="M50.0003 75.8333C35.7395 75.8177 24.1827 64.2609 24.167 50V49.4833C24.451 35.2867 36.1397 23.9806 50.3379 24.1689C64.5361 24.3573 75.9207 35.9696 75.8279 50.1688C75.7352 64.368 64.1998 75.8305 50.0003 75.8333ZM39.9658 50.7568C38.9584 49.7533 37.3288 49.7549 36.3233 50.7603C35.3165 51.7671 35.3165 53.3995 36.3233 54.4064L42.0453 60.1283C43.5853 61.6683 46.0821 61.6683 47.622 60.1283L63.6791 44.0713C64.686 43.0644 64.6888 41.4328 63.6855 40.4223C62.6772 39.4068 61.0356 39.4039 60.0237 40.4158L45.4287 55.0108C45.0999 55.3396 44.5669 55.3401 44.2374 55.0119L39.9658 50.7568Z"
300
- fill="#54C68F" />
301
- </svg>
302
-
303
- <h5 class="success-text">
304
- Your payment has been received
305
- </h5>
306
- </div>
307
-
308
- <div class="mt-12 mx-auto w-3/5">
309
- <button class="success-button close-btn">
310
- Close
311
- </button>
312
- </div>
313
-
314
- </div>
315
- </div>
316
- </div>`, N = `<div class="box-container">
317
- <div class="container-center h-[40vh] hidden" id="loader">
318
- <img src="" alt="loader gif" />
319
- </div>
320
- </div>
321
24
  `;
322
- class p extends Error {
323
- constructor(e, t) {
324
- super(e), this.status = t, this.name = "FetchError";
25
+ class h extends Error {
26
+ constructor(t, e) {
27
+ super(t), this.status = e, this.name = "FetchError";
325
28
  }
326
29
  }
327
- class g extends Error {
328
- constructor(e) {
329
- super(e), this.name = "AuthorizationError";
30
+ class E extends Error {
31
+ constructor(t) {
32
+ super(t), this.name = "AuthorizationError";
330
33
  }
331
34
  }
332
- const y = (r) => {
333
- if (!r)
334
- throw new g("Missing authorization token");
335
- const e = new Headers();
336
- return e.append("Content-Type", "application/json"), e.append("Authorization", `Bearer ${r}`), e;
337
- }, L = "http://dev-api.spotflow.one/api/v1", q = async (r, e) => {
35
+ const B = (o) => {
36
+ if (!o)
37
+ throw new E("Missing authorization token");
38
+ const t = new Headers();
39
+ return t.append("Content-Type", "application/json"), t.append("Authorization", `Bearer ${o}`), t;
40
+ }, y = "https://dev-api.spotflow.one/api/v1", Y = async (o, t) => {
338
41
  try {
339
- const t = y(r), n = await fetch(`${L}/payments`, {
42
+ const e = B(o), n = await fetch(`${y}/payments`, {
340
43
  method: "POST",
341
- headers: t,
342
- body: JSON.stringify(e)
44
+ headers: e,
45
+ body: JSON.stringify(t)
343
46
  });
344
47
  if (!n.ok) {
345
48
  const s = await n.json();
346
- throw s.message ? new p(s.message, n.status) : new p("Network response was not ok", n.status);
49
+ throw s.message ? new h(s.message, n.status) : new h("Network response was not ok", n.status);
347
50
  }
348
51
  return await n.json();
349
- } catch (t) {
350
- throw t instanceof p ? console.error(`FetchError: ${t.message} (status: ${t.status})`) : t instanceof g ? console.error(`AuthorizationError: ${t.message}`) : console.error(`Unexpected error: ${t}`), t;
52
+ } catch (e) {
53
+ throw e instanceof h ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof E ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
351
54
  }
352
- }, P = async (r, e) => {
55
+ }, z = async (o, t) => {
353
56
  try {
354
- const t = y(r), n = await fetch(`${L}/payments/authorize`, {
57
+ const e = B(o), n = await fetch(`${y}/payments/authorize`, {
355
58
  method: "POST",
356
- headers: t,
357
- body: JSON.stringify(e)
59
+ headers: e,
60
+ body: JSON.stringify(t)
358
61
  });
359
62
  if (!n.ok) {
360
63
  const s = await n.json();
361
- throw s.message ? new p(s.message, n.status) : new p("Network response was not ok", n.status);
64
+ throw s.message ? new h(s.message, n.status) : new h("Network response was not ok", n.status);
362
65
  }
363
66
  return await n.json();
364
- } catch (t) {
365
- throw t instanceof p ? console.error(`FetchError: ${t.message} (status: ${t.status})`) : t instanceof g ? console.error(`AuthorizationError: ${t.message}`) : console.error(`Unexpected error: ${t}`), t;
67
+ } catch (e) {
68
+ throw e instanceof h ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof E ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
366
69
  }
367
- }, Y = async (r, e) => {
70
+ }, x = async (o, t) => {
368
71
  try {
369
- const t = y(r), n = await fetch(`${L}/payments/validate`, {
72
+ const e = B(o), n = await fetch(`${y}/payments/validate`, {
370
73
  method: "POST",
371
- headers: t,
372
- body: JSON.stringify(e)
74
+ headers: e,
75
+ body: JSON.stringify(t)
373
76
  });
374
77
  if (!n.ok) {
375
78
  const s = await n.json();
376
- throw s.message ? new p(s.message, n.status) : new p("Network response was not ok", n.status);
79
+ throw s.message ? new h(s.message, n.status) : new h("Network response was not ok", n.status);
377
80
  }
378
81
  return await n.json();
379
- } catch (t) {
380
- throw t instanceof p ? console.error(`FetchError: ${t.message} (status: ${t.status})`) : t instanceof g ? console.error(`AuthorizationError: ${t.message}`) : console.error(`Unexpected error: ${t}`), t;
82
+ } catch (e) {
83
+ throw e instanceof h ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof E ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
381
84
  }
382
- }, z = async (r, e) => {
85
+ }, W = async (o, t) => {
383
86
  try {
384
- const t = y(r), n = await fetch(`${L}/payments`, {
87
+ const e = B(o), n = await fetch(`${y}/payments`, {
385
88
  method: "POST",
386
- headers: t,
387
- body: JSON.stringify(e)
89
+ headers: e,
90
+ body: JSON.stringify(t)
388
91
  });
389
92
  if (!n.ok) {
390
93
  const s = await n.json();
391
- throw s.message ? new p(s.message, n.status) : new p("Network response was not ok", n.status);
94
+ throw s.message ? new h(s.message, n.status) : new h("Network response was not ok", n.status);
392
95
  }
393
96
  return await n.json();
394
- } catch (t) {
395
- throw t instanceof p ? console.error(`FetchError: ${t.message} (status: ${t.status})`) : t instanceof g ? console.error(`AuthorizationError: ${t.message}`) : console.error(`Unexpected error: ${t}`), t;
97
+ } catch (e) {
98
+ throw e instanceof h ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof E ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
396
99
  }
397
- }, k = async (r, e, t) => {
100
+ }, K = async (o, t, e) => {
398
101
  try {
399
- const n = y(r), A = await fetch(`${L}/payments/verify?reference=${e}`, {
102
+ const n = B(o), A = await fetch(`${y}/payments/verify?reference=${t}`, {
400
103
  method: "GET",
401
104
  headers: n,
402
- signal: t
105
+ signal: e
403
106
  });
404
107
  if (!A.ok) {
405
- const i = await A.json();
406
- throw i.message ? new p(i.message, A.status) : new p("Network response was not ok", A.status);
108
+ const c = await A.json();
109
+ throw c.message ? new h(c.message, A.status) : new h("Network response was not ok", A.status);
407
110
  }
408
111
  return await A.json();
409
112
  } catch (n) {
410
- throw n instanceof p ? console.error(`FetchError: ${n.message} (status: ${n.status})`) : n instanceof g ? console.error(`AuthorizationError: ${n.message}`) : console.error(`Unexpected error: ${n}`), n;
411
- }
412
- }, T = () => {
413
- const r = Date.now().toString(36), e = "xxxx-xxxx-xxx-xxxx".replace(/[x]/g, () => Math.floor(Math.random() * 16).toString(16));
414
- return `SPF-${r}-${e}`.toUpperCase();
415
- }, S = (r = "") => r.replace(/\D+/g, ""), V = (r) => {
416
- if (!r)
417
- return r;
418
- const e = S(r);
419
- return `${e.slice(0, 4)} ${e.slice(
420
- 4,
421
- 8
422
- )} ${e.slice(8, 12)} ${e.slice(12, 16)}`.trim();
423
- }, W = (r) => S(r).slice(0, 3), j = (r) => {
424
- const e = S(r);
425
- return e.length >= 3 ? `${e.slice(0, 2)} / ${e.slice(2, 4)}` : e;
426
- }, X = (r) => {
427
- if (!r)
428
- return r;
429
- const e = S(r);
430
- return `${e.slice(0, 4)}${e.slice(
431
- 4,
432
- 8
433
- )}${e.slice(8, 12)}${e.slice(12, 16)}`.trim();
434
- }, B = (r) => {
435
- const e = Math.floor(r / 60), t = r % 60;
436
- return `${String(e).padStart(2, "0")}:${String(t).padStart(2, "0")}`;
437
- }, $ = (r) => {
438
- r = r.replace(/\D/g, "");
439
- const e = {
440
- Visa: /^4/,
441
- MasterCard: /^5[1-5]|^2(2[2-9]|[3-6]|7[01])/,
442
- "American Express": /^3[47]/,
443
- Discover: /^6(?:011|5|4[4-9]|22)/,
444
- UnionPay: /^62/,
445
- Verve: /^506099|^5061[0-8]|^50619|^6500[02]|^5078[6-9]|^65003[1-3]/
446
- };
447
- for (const [t, n] of Object.entries(e))
448
- if (n.test(r))
449
- return t;
450
- return "Unknown";
451
- }, _ = (r, e) => {
452
- const t = document.createElement("div");
453
- t.classList.add("toast", e);
454
- const n = document.createElement("span");
455
- n.textContent = r, t.appendChild(n);
456
- const A = document.createElement("span");
457
- return A.textContent = "×", A.classList.add("close-btn"), A.onclick = () => F(t), t.appendChild(A), t;
458
- }, h = (r, e, t = 3e3) => {
459
- const n = document.getElementById("toast-container");
460
- if (n) {
461
- const A = _(r, e);
462
- n.appendChild(A), A.offsetHeight, A.classList.add("show"), setTimeout(() => F(A), t);
113
+ throw n instanceof h ? console.error(`FetchError: ${n.message} (status: ${n.status})`) : n instanceof E ? console.error(`AuthorizationError: ${n.message}`) : console.error(`Unexpected error: ${n}`), n;
463
114
  }
464
- }, F = (r) => {
465
- r.classList.remove("show"), r.addEventListener("transitionend", () => {
466
- r.parentElement && r.parentElement.removeChild(r);
467
- });
468
- }, G = "data:image/gif;base64,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", E = [
115
+ };
116
+ async function P(o, t) {
117
+ try {
118
+ const e = B(o), n = await fetch(`${y}/checkout-configurations?planId=${t || ""}`, {
119
+ headers: e,
120
+ method: "GET"
121
+ });
122
+ if (!n.ok) {
123
+ const A = await n.json();
124
+ throw A.message ? new h(A.message, n.status) : new h("Network response was not ok", n.status);
125
+ }
126
+ return n.json();
127
+ } catch (e) {
128
+ throw e instanceof h ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof E ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
129
+ }
130
+ }
131
+ const g = [
469
132
  {
470
133
  label: "Pay with Card",
471
134
  icon: `<svg width="23" height="19" viewBox="0 0 23 19" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -487,7 +150,7 @@ const y = (r) => {
487
150
  <path class="group-hover:fill-white" d="M5.24738 6.19386C5.43819 6.39741 5.78802 6.39741 5.97883 6.19386L8.14137 3.83845C8.39579 3.54766 8.17318 3.11147 7.75975 3.11147H6.71028V0.436187C6.71028 0.174475 6.48766 0 6.23325 0H5.05657C4.77035 0 4.57954 0.203554 4.57954 0.436187V3.11147H3.53007C3.11664 3.11147 2.89402 3.54766 3.14844 3.83845L5.24738 6.19386Z" fill="#9E9BA1"/>
488
151
  </svg>
489
152
  `,
490
- key: "transfer"
153
+ key: "bank_transfer"
491
154
  },
492
155
  {
493
156
  label: "Pay with USSD",
@@ -497,7 +160,7 @@ const y = (r) => {
497
160
  `,
498
161
  key: "ussd"
499
162
  }
500
- ], t1 = [
163
+ ], j = [
501
164
  {
502
165
  name: "First City Monument Bank",
503
166
  code: "*329#"
@@ -577,132 +240,679 @@ const y = (r) => {
577
240
  </svg>
578
241
  `
579
242
  }
580
- ];
581
- class f {
582
- constructor(e, t, n, A, s, i) {
583
- o(this, "cardDetailsValues");
584
- o(this, "cardPin");
585
- o(this, "cardOtp");
586
- o(this, "contents");
587
- o(this, "container");
588
- o(this, "closeModal");
589
- o(this, "email");
590
- o(this, "token");
591
- o(this, "amount");
592
- o(this, "_currentStep");
593
- o(this, "activeRef");
594
- o(this, "creditCardTypes");
595
- o(this, "switchTab");
596
- this.container = e, this.closeModal = t, this.token = n, this.email = A, this.amount = s, this._currentStep = 1, this.cardDetailsValues = {
597
- number: "",
598
- expiry: "",
599
- cvv: ""
600
- }, this.cardPin = "", this.cardOtp = "", this.activeRef = "", this.contents = document.querySelectorAll(".content"), this.creditCardTypes = [...u], this.switchTab = i, this.renderCardContent(), this.currentStep === 1 && this.displayCardTypes(), this.attachInputListeners();
243
+ ], X = `<aside class="px-2 py-4 md:flex justify-center w-[250px] bg-[#f4f4ff] overflow-auto hidden">
244
+ <div class="w-full py-8">
245
+ <div class="container-center">
246
+ <img src="" alt="Nba Logo" id="merchantLogo" class="hidden md:flex" />
247
+ </div>
248
+ <h5 class="text-xl font-semibold text-common pt-10 pb-4 text-center">PAYMENT OPTIONS</h5>
249
+ <div class="payment-options">
250
+
251
+ <!-- Tab options -->
252
+ </div>
253
+ </div>
254
+ </aside>
255
+ <div class="main" id="main">
256
+ <div class="container-center w-full bg-primary-lighter">
257
+ <img src="" alt="Nba Logo" id="merchantLogoMob" class="md:hidden" />
258
+ </div>
259
+ <div id="mob-tab-co">
260
+
261
+ </div>
262
+ <button type="button"
263
+ 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>
264
+
265
+ <div class="box-container relative max-sm:py-4 max-sm:px-4">
266
+ <!-- header -->
267
+ <div class="header-container">
268
+ <div class="container-between border-b border-b-white pb-[9.6px]">
269
+ <p class="text-xs" id="merchant-email"></p>
270
+ <p class="text-xs" id="plan-name">-</p>
271
+ </div>
272
+ <div class="container-between pt-[9.6px] pb-[6.4px]">
273
+ <div class="align-center">
274
+ <p class="text-sm mr-1" id="payment-rate-display">USD 1 = NGN 1</p>
275
+ <div class="group relative flex flex-col items-center cursor-pointer">
276
+ <svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
277
+ <path
278
+ d="M5 8C4.72386 8 4.5 7.77614 4.5 7.5L4.5 4C4.5 3.72386 4.72386 3.5 5 3.5C5.27614 3.5 5.5 3.72386 5.5 4L5.5 7.5C5.5 7.77614 5.27614 8 5 8Z"
279
+ fill="#CCCCE8" />
280
+ <path
281
+ d="M5.625 2.625C5.625 2.27982 5.34518 2 5 2C4.65482 2 4.375 2.27982 4.375 2.625C4.375 2.97018 4.65482 3.25 5 3.25C5.34518 3.25 5.625 2.97018 5.625 2.625Z"
282
+ fill="#CCCCE8" />
283
+ <path fill-rule="evenodd" clip-rule="evenodd"
284
+ d="M10 5C10 7.76142 7.76142 10 5 10C2.23858 10 1.95703e-07 7.76142 4.37114e-07 5C6.78525e-07 2.23858 2.23858 -6.78525e-07 5 -4.37114e-07C7.76142 -1.95703e-07 10 2.23858 10 5ZM5 9C7.20914 9 9 7.20914 9 5C9 2.79086 7.20914 1 5 1C2.79086 0.999999 1 2.79086 1 5C1 7.20914 2.79086 9 5 9Z"
285
+ fill="#CCCCE8" />
286
+ </svg>
287
+
288
+ <div class="tooltip">
289
+ <div class="tooltip-textbox">
290
+ <p class="tooltip-title">
291
+ What is this?
292
+ </p>
293
+ <p class="tooltip-text">
294
+ This rate reflects the current exchange rate for
295
+ converting United States Dollars (USD) to Nigerian Naira
296
+ (NGN). Please note that exchange rates are subject to
297
+ change and may vary slightly at the time of the
298
+ transaction.
299
+ </p>
300
+ </div>
301
+ </div>
302
+ </div>
303
+ </div>
304
+ <div>
305
+ <p class="text-sm"> Pay
306
+ <span id="container-payment-text"> USD 0</span>
307
+ </p>
308
+ </div>
309
+
310
+ </div>
311
+
312
+ <div class="flex justify-end">
313
+ <div id="header-chip-amount" class="header-chip">
314
+ NGN 1
315
+ </div>
316
+ </div>
317
+ </div>
318
+ <!-- body -->
319
+ <div class="box-container-method">
320
+ <div class="content active" data-content="0">
321
+ </div>
322
+ <div class="content" data-content="1"></div>
323
+ <div class="content" data-content="2"></div>
324
+ </div>
325
+
326
+ <div id="mob-container" class="md:hidden">
327
+
328
+
329
+ </div>
330
+ <!-- footer -->
331
+ <div class="container-between gap-2 mt-20 mb-8 md:hidden" id="mob-action-btns">
332
+ <button type="button" class="button-outline px-3 w-auto" id="change-method">
333
+ <span class="text-[10px] mr-1">x</span> Change Payment Method
334
+ </button>
335
+ <button type="button" class="button-outline px-6 w-auto close-btn">
336
+ <span class="text-[10px] mr-1">x</span> Cancel Payment
337
+ </button>
338
+ </div>
339
+ <div class="container-center pt-2 pb-8 gap-1">
340
+ <svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
341
+ <path
342
+ d="M4.884 0.68L1.384 2.235C1.024 2.395 0.789001 2.755 0.789001 3.15V5.5C0.789001 8.275 2.709 10.87 5.289 11.5C7.869 10.87 9.789 8.275 9.789 5.5V3.15C9.789 2.755 9.554 2.395 9.194 2.235L5.694 0.68C5.439 0.565 5.139 0.565 4.884 0.68ZM5.289 5.995H8.789C8.524 8.055 7.149 9.89 5.289 10.465V6H1.789V3.15L5.289 1.595V5.995Z"
343
+ fill="#6D6A73" />
344
+ </svg>
345
+
346
+ <p class="text-[10px] text-grey-100">
347
+ PCI DSS Certified
348
+ </p>
349
+ </div>
350
+ </div>
351
+ </div>
352
+ `, T = `<div class="box-container">
353
+ <div class="container-center h-[40vh] hidden" id="loader">
354
+ <img src="" alt="loader gif" />
355
+ </div>
356
+ </div>
357
+ `, U = () => {
358
+ const o = Date.now().toString(36), t = "xxxx-xxxx-xxx-xxxx".replace(/[x]/g, () => Math.floor(Math.random() * 16).toString(16));
359
+ return `SPF-${o}-${t}`.toUpperCase();
360
+ }, w = (o = "") => o.replace(/\D+/g, ""), $ = (o) => {
361
+ if (!o)
362
+ return o;
363
+ const t = w(o);
364
+ return `${t.slice(0, 4)} ${t.slice(
365
+ 4,
366
+ 8
367
+ )} ${t.slice(8, 12)} ${t.slice(12, 16)}`.trim();
368
+ }, _ = (o) => w(o).slice(0, 3), t1 = (o) => {
369
+ const t = w(o);
370
+ return t.length >= 3 ? `${t.slice(0, 2)} / ${t.slice(2, 4)}` : t;
371
+ }, e1 = (o) => {
372
+ if (!o)
373
+ return o;
374
+ const t = w(o);
375
+ return `${t.slice(0, 4)}${t.slice(
376
+ 4,
377
+ 8
378
+ )}${t.slice(8, 12)}${t.slice(12, 16)}`.trim();
379
+ }, f = (o) => {
380
+ const t = Math.floor(o / 60), e = o % 60;
381
+ return `${String(t).padStart(2, "0")}:${String(e).padStart(2, "0")}`;
382
+ }, n1 = (o) => {
383
+ o = o.replace(/\D/g, "");
384
+ const t = {
385
+ Visa: /^4/,
386
+ MasterCard: /^5[1-5]|^2(2[2-9]|[3-6]|7[01])/,
387
+ "American Express": /^3[47]/,
388
+ Discover: /^6(?:011|5|4[4-9]|22)/,
389
+ UnionPay: /^62/,
390
+ Verve: /^506099|^5061[0-8]|^50619|^6500[02]|^5078[6-9]|^65003[1-3]/
391
+ };
392
+ for (const [e, n] of Object.entries(t))
393
+ if (n.test(o))
394
+ return e;
395
+ return "Unknown";
396
+ }, A1 = (o, t) => {
397
+ const e = document.createElement("div");
398
+ e.classList.add("toast", t);
399
+ const n = document.createElement("span");
400
+ n.textContent = o, e.appendChild(n);
401
+ const A = document.createElement("span");
402
+ return A.textContent = "×", A.classList.add("close-btn"), A.onclick = () => q(e), e.appendChild(A), e;
403
+ }, d = (o, t, e = 3e3) => {
404
+ const n = document.getElementById("toast-container");
405
+ if (n) {
406
+ const A = A1(o, t);
407
+ n.appendChild(A), A.offsetHeight, A.classList.add("show"), setTimeout(() => q(A), e);
408
+ }
409
+ }, q = (o) => {
410
+ o.classList.remove("show"), o.addEventListener("transitionend", () => {
411
+ o.parentElement && o.parentElement.removeChild(o);
412
+ });
413
+ }, b = "data:image/gif;base64,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", M = (o, t) => {
414
+ const e = new Intl.NumberFormat("ng-NG", {
415
+ style: "decimal",
416
+ maximumFractionDigits: t || 0,
417
+ minimumFractionDigits: t || 0
418
+ });
419
+ return isNaN(parseFloat(e.format(o))) ? "-" : e.format(o);
420
+ }, s1 = `<form id="checkoutcard">
421
+ <div class="box-container">
422
+ <h5 class="content-heading">Enter your card details to pay</h5>
423
+ <div class="mt-8">
424
+ <div class="relative mx-4 md:mx-6 mb-4">
425
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">CARD NUMBER</span>
426
+ <div>
427
+ <input class="details-input-container" type="tel" id="card-number" name="number"
428
+ placeholder="0000 0000 0000 0000" required minlength="16" />
429
+ </div>
430
+ <div class="absolute right-3 top-1/2 -translate-y-2/4 max-sm:hidden">
431
+ <div id="card-types" class="align-center gap-2">
432
+ </div>
433
+ </div>
434
+ </div>
435
+
436
+ <div class="grid grid-cols-2 gap-4 my-4 mx-4 md:mx-6">
437
+ <div class="relative w-full">
438
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">CARD EXPIRY</span>
439
+ <div>
440
+ <input class="details-input-container" type="tel" id="card-expiry" name="expiry" placeholder="MM / YY"
441
+ required minlength="4" />
442
+ </div>
443
+ </div>
444
+
445
+ <div class="relative w-full">
446
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">CVV</span>
447
+ <div>
448
+ <input class="details-input-container" type="tel" id="card-cvv" name="cvv" placeholder="123" required
449
+ minlength="3" />
450
+ </div>
451
+ </div>
452
+ </div>
453
+
454
+ <div class="mx-4 md:mx-6 my-8">
455
+ <button type="submit" disabled="true" class="details-form-button">
456
+ <svg class="spinner hidden" id="spinner" viewBox="0 0 24 24">
457
+ <path
458
+ d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z">
459
+ </path>
460
+ </svg>
461
+ <span id="details-form-button-text"> Pay USD 0 </span>
462
+ </button>
463
+ </div>
464
+ </div>
465
+ </div>
466
+ </form>
467
+ `;
468
+ class F {
469
+ constructor(t) {
470
+ a(this, "container");
471
+ a(this, "cardDetailsValues");
472
+ a(this, "creditCardTypes");
473
+ this.container = t, this.creditCardTypes = [...u], this.cardDetailsValues = {
474
+ number: "",
475
+ expiry: "",
476
+ cvv: ""
477
+ };
478
+ }
479
+ /**
480
+ *
481
+ * @param func
482
+ *
483
+ pan: unFormatCreditCardNumber(this.cardDetailsValues.number),
484
+ cvv: this.cardDetailsValues.cvv,
485
+ expiryMonth: this.cardDetailsValues?.expiry.split("/")[0].trim(),
486
+ expiryYear: this.cardDetailsValues?.expiry.split("/")[1].trim(),
487
+ */
488
+ attachListener(t) {
489
+ const e = document.querySelector('input[name="number"]'), n = document.querySelector('input[name="expiry"]'), A = document.querySelector('input[name="cvv"]'), s = document.querySelector(".details-form-button"), c = document.querySelector("#checkoutcard");
490
+ e && e.addEventListener("input", (i) => this.handleInputChange(i, s)), n && n.addEventListener("input", (i) => this.handleInputChange(i, s)), A && A.addEventListener("input", (i) => this.handleInputChange(i, s)), c && c.addEventListener("submit", (i) => {
491
+ var r, l;
492
+ i.preventDefault(), console.log("Submitted form here"), t && t(i)({
493
+ pan: e1(this.cardDetailsValues.number),
494
+ cvv: this.cardDetailsValues.cvv,
495
+ expiryMonth: (r = this.cardDetailsValues) == null ? void 0 : r.expiry.split("/")[0].trim(),
496
+ expiryYear: (l = this.cardDetailsValues) == null ? void 0 : l.expiry.split("/")[1].trim()
497
+ });
498
+ });
499
+ }
500
+ handleInputChange(t, e) {
501
+ const n = t.target, { name: A, value: s } = n;
502
+ let c = s;
503
+ A === "number" ? (c = $(s), this.filterCreditCardType(s)) : A === "expiry" ? c = t1(s) : A === "cvv" && (c = _(s)), this.cardDetailsValues = {
504
+ ...this.cardDetailsValues,
505
+ [A]: c
506
+ }, n.value = c, this.cardDetailsValues.number && this.cardDetailsValues.expiry && this.cardDetailsValues.cvv && e && e.removeAttribute("disabled");
507
+ }
508
+ displayCardTypes() {
509
+ requestAnimationFrame(() => {
510
+ const t = this.container.querySelector("#card-types");
511
+ this.creditCardTypes.length === 1 && this.creditCardTypes[0].name === "Unknown" ? u.forEach((e) => {
512
+ const n = document.createElement("div");
513
+ n.classList.add("card-type"), n.innerHTML = e.icon, t.appendChild(n);
514
+ }) : (t.innerHTML = "", this.creditCardTypes.forEach((e) => {
515
+ const n = document.createElement("div");
516
+ n.classList.add("card-type"), n.innerHTML = e.icon, t.appendChild(n);
517
+ }));
518
+ });
519
+ }
520
+ filterCreditCardType(t) {
521
+ t ? (this.creditCardTypes = u.filter((e) => e.name === n1(t)), this.creditCardTypes.length >= 1 ? this.displayCardTypes() : (this.creditCardTypes = [...u], this.displayCardTypes())) : (this.creditCardTypes = [...u], this.displayCardTypes());
522
+ }
523
+ renderContent() {
524
+ this.container.innerHTML = this.render();
525
+ }
526
+ render() {
527
+ return s1;
528
+ }
529
+ }
530
+ async function i1(o, t) {
531
+ const e = Uint8Array.from(atob(t), (r) => r.charCodeAt(0)), n = crypto.getRandomValues(new Uint8Array(12)), A = new TextEncoder().encode(o), s = await crypto.subtle.importKey("raw", e, { name: "AES-GCM" }, !1, ["encrypt"]), c = await crypto.subtle.encrypt({ name: "AES-GCM", iv: n }, s, A), i = new Uint8Array(n.length + c.byteLength);
532
+ return i.set(n), i.set(new Uint8Array(c), n.length), btoa(String.fromCharCode.apply(null, i));
533
+ }
534
+ class r1 {
535
+ constructor(t, e) {
536
+ a(this, "container");
537
+ a(this, "closeModal");
538
+ this.container = t, this.closeModal = e;
539
+ }
540
+ attachListener() {
541
+ const t = this.container.querySelector(".success-button");
542
+ t && t.addEventListener("click", () => this.closeModal());
543
+ }
544
+ render() {
545
+ return `
546
+ <div id="paymentSuccess">
547
+ <div class="box-container">
548
+ <div class="text-center mt-7"></div>
549
+ <svg class="mx-auto" width="100" height="100" viewBox="0 0 100 100" fill="none"
550
+ xmlns="http://www.w3.org/2000/svg">
551
+ <circle cx="50" cy="50" r="50" fill="#D6F1E4" />
552
+ <circle opacity="0.52" cx="49.5" cy="49.5" r="37.5" fill="#99DDBC" />
553
+ <ellipse cx="48.4502" cy="48.45" rx="23.25" ry="23.25" fill="white" />
554
+ <path
555
+ d="M50.0003 75.8333C35.7395 75.8177 24.1827 64.2609 24.167 50V49.4833C24.451 35.2867 36.1397 23.9806 50.3379 24.1689C64.5361 24.3573 75.9207 35.9696 75.8279 50.1688C75.7352 64.368 64.1998 75.8305 50.0003 75.8333ZM39.9658 50.7568C38.9584 49.7533 37.3288 49.7549 36.3233 50.7603C35.3165 51.7671 35.3165 53.3995 36.3233 54.4064L42.0453 60.1283C43.5853 61.6683 46.0821 61.6683 47.622 60.1283L63.6791 44.0713C64.686 43.0644 64.6888 41.4328 63.6855 40.4223C62.6772 39.4068 61.0356 39.4039 60.0237 40.4158L45.4287 55.0108C45.0999 55.3396 44.5669 55.3401 44.2374 55.0119L39.9658 50.7568Z"
556
+ fill="#54C68F" />
557
+ </svg>
558
+
559
+ <h5 class="success-text">
560
+ Your payment has been received
561
+ </h5>
562
+ </div>
563
+
564
+ <div class="mt-12 mx-auto w-3/5">
565
+ <button type="button" class="success-button close-btn">
566
+ Close
567
+ </button>
568
+ </div>
569
+ </div>
570
+
571
+ `;
572
+ }
573
+ }
574
+ class a1 {
575
+ constructor(t, e, n) {
576
+ a(this, "container");
577
+ a(this, "switchTab");
578
+ a(this, "setCurrentTab");
579
+ this.container = t, this.switchTab = e, this.setCurrentTab = n;
580
+ }
581
+ attachListener() {
582
+ const t = this.container.querySelector("#go-to-card"), e = document.querySelector("#go-to-transfer");
583
+ t && t.addEventListener("click", () => {
584
+ this.setCurrentTab(1);
585
+ }), e && e.addEventListener("click", () => {
586
+ this.switchTab(1);
587
+ });
588
+ }
589
+ setPaymentError(t) {
590
+ const e = this.container.querySelector("#payment-warning-text"), n = this.container.querySelector(".warning-list");
591
+ e && (e.textContent = t), n && [
592
+ {
593
+ text: "Try again with your card",
594
+ action: "go-to-card"
595
+ },
596
+ {
597
+ text: "Try again with transfer",
598
+ action: "go-to-transfer"
599
+ }
600
+ ].forEach(({ action: s, text: c }) => {
601
+ const i = document.createElement("button");
602
+ i.textContent = c, i.setAttribute("id", s), i.classList.add("warning-button");
603
+ const r = document.createElement("div");
604
+ r.appendChild(i), n.appendChild(r);
605
+ }), this.attachListener();
606
+ }
607
+ render() {
608
+ return `
609
+ <div id="paymentWarning">
610
+ <div class="box-container">
611
+ <div class="text-center mt-7">
612
+ <svg
613
+ class="mx-auto"
614
+ width="48"
615
+ height="46"
616
+ viewBox="0 0 48 46"
617
+ fill="none"
618
+ xmlns="http://www.w3.org/2000/svg"
619
+ >
620
+ <path
621
+ d="M47.4936 39.5624L27.5213 2.47251C26.1057 -0.157178 22.3346 -0.157178 20.9178 2.47251L0.946695 39.5624C0.639327 40.1332 0.485227 40.7741 0.499436 41.4223C0.513645 42.0705 0.695678 42.7039 1.02777 43.2608C1.35986 43.8177 1.83065 44.2789 2.39421 44.5995C2.95776 44.9201 3.59481 45.0892 4.24318 45.0901H44.1912C44.8401 45.0902 45.4779 44.9219 46.0422 44.6017C46.6066 44.2815 47.0782 43.8204 47.411 43.2633C47.7438 42.7063 47.9263 42.0724 47.9408 41.4237C47.9553 40.775 47.8012 40.1337 47.4936 39.5624V39.5624ZM24.2201 39.3479C23.7566 39.3479 23.3034 39.2104 22.918 38.9529C22.5326 38.6954 22.2322 38.3293 22.0548 37.9011C21.8774 37.4728 21.831 37.0016 21.9214 36.5469C22.0119 36.0923 22.2351 35.6746 22.5629 35.3469C22.8906 35.0191 23.3082 34.7959 23.7629 34.7054C24.2175 34.615 24.6888 34.6614 25.117 34.8388C25.5453 35.0162 25.9114 35.3166 26.1689 35.702C26.4264 36.0875 26.5639 36.5406 26.5639 37.0042C26.5639 37.3119 26.5033 37.6167 26.3855 37.9011C26.2677 38.1854 26.095 38.4438 25.8774 38.6614C25.6598 38.8791 25.4014 39.0517 25.117 39.1695C24.8327 39.2873 24.5279 39.3479 24.2201 39.3479ZM26.7654 15.7756L26.0928 30.0725C26.0928 30.5698 25.8952 31.0467 25.5436 31.3983C25.192 31.75 24.7151 31.9475 24.2178 31.9475C23.7205 31.9475 23.2436 31.75 22.892 31.3983C22.5403 31.0467 22.3428 30.5698 22.3428 30.0725L21.6701 15.7815C21.655 15.44 21.7088 15.099 21.8283 14.7787C21.9478 14.4584 22.1306 14.1655 22.3657 13.9174C22.6008 13.6692 22.8835 13.471 23.1968 13.3344C23.5102 13.1979 23.8478 13.1258 24.1897 13.1225H24.2143C24.5584 13.1223 24.899 13.1919 25.2156 13.327C25.5321 13.462 25.818 13.6598 26.0559 13.9085C26.2939 14.1571 26.4791 14.4513 26.6002 14.7734C26.7213 15.0955 26.776 15.4389 26.7608 15.7827L26.7654 15.7756Z"
622
+ fill="#FF9B00"
623
+ />
624
+ </svg>
625
+
626
+ <p id="payment-warning-text" class="warning-text"></p>
627
+ </div>
628
+
629
+ <div class="warning-list box-container">
630
+ </div>
631
+ </div>
632
+ </div>
633
+ `;
634
+ }
635
+ }
636
+ const o1 = `<div id="checkoutcardotp">
637
+ <div class="box-containe w-11/12 md:w-4/5 mx-auto py-8 md:py-16">
638
+ <div class="container-center h-[20vh] hidden" id="loader">
639
+ <img src="" alt="loader gif" />
640
+ </div>
641
+ <div id="otp-content">
642
+ <h5 class="otp-text">Kindly enter the OTP sent to 234249***3875</h5>
643
+
644
+ <div class="mt-8">
645
+ <div class="relative w-full grid grid-cols-1 md:grid-cols-3 gap-7 md:gap-5">
646
+ <div class="col-span-2">
647
+ <input class="otp-input" type="tel" id="card-otp" name="otp" required />
648
+ </div>
649
+
650
+ <div class="max-sm:text-center max-sm:w-4/5 max-sm:mx-auto">
651
+ <button class="otp-button" disabled="true">Authorize</button>
652
+ </div>
653
+ </div>
654
+
655
+ <div class="py-5">
656
+ <p class="otp-subtext">
657
+ A token should be sent to you  within 6 minutes
658
+ </p>
659
+ </div>
660
+
661
+ <div class="container-center">
662
+ <button class="pin-cancel">Cancel</button>
663
+ </div>
664
+ </div>
665
+ </div>
666
+ </div>
667
+ </div>
668
+ `;
669
+ class c1 {
670
+ constructor(t, e) {
671
+ a(this, "container");
672
+ a(this, "cardOtp");
673
+ a(this, "closeModal");
674
+ this.container = t, this.cardOtp = "", this.closeModal = e;
675
+ }
676
+ attachListener(t) {
677
+ const e = this.container.querySelector(".otp-input"), n = this.container.querySelector(".otp-button"), A = this.container.querySelector(".success-button");
678
+ e && e.addEventListener("input", (s) => this.handleOtpInput(s, n)), n && n.addEventListener("click", (s) => {
679
+ t && t(s)(this.cardOtp);
680
+ }), A && A.addEventListener("click", () => this.closeModal());
681
+ }
682
+ handleOtpInput(t, e) {
683
+ const n = t.target, { value: A } = n;
684
+ this.cardOtp = "", this.cardOtp = A, this.cardOtp.length > 3 && e && e.removeAttribute("disabled");
685
+ }
686
+ render() {
687
+ return o1;
688
+ }
689
+ }
690
+ const l1 = `<div id="checkoutcardpin">
691
+ <div class="box-container md:w-4/5 mx-auto py-8 md:py-16">
692
+ <div class="container-center h-[20vh] hidden" id="loader">
693
+ <img src="" alt="loader gif" />
694
+ </div>
695
+ <div id="pin-content">
696
+ <h5 class="pin-text">
697
+ Please enter your 4-digit card pin to authorize this payment
698
+ </h5>
699
+
700
+ <div class="mt-8">
701
+ <div class="pin-container">
702
+ <input type="tel" class="pin-input" maxlength="1" id="pin1" />
703
+ <input type="tel" class="pin-input" maxlength="1" id="pin2" />
704
+ <input type="tel" class="pin-input" maxlength="1" id="pin3" />
705
+ <input type="tel" class="pin-input" maxlength="1" id="pin4" />
706
+ </div>
707
+
708
+ <div class="container-center mt-8">
709
+ <button class="pin-cancel close-btn">Cancel</button>
710
+ </div>
711
+ </div>
712
+ </div>
713
+ </div>
714
+ </div>
715
+ `;
716
+ class C1 {
717
+ constructor(t) {
718
+ a(this, "container");
719
+ a(this, "cardPin");
720
+ this.container = t, this.cardPin = "";
721
+ }
722
+ attachListener(t) {
723
+ const e = Array.from(this.container.querySelectorAll(".pin-input"));
724
+ e.forEach((n, A) => {
725
+ n.addEventListener("input", (s) => this.handlePinInputChange(s, A, e, t)), n.addEventListener("paste", (s) => this.handlePinPaste(s, e, t));
726
+ });
727
+ }
728
+ handlePinPaste(t, e, n) {
729
+ var c;
730
+ t.preventDefault(), this.cardPin = "";
731
+ const s = (((c = t.clipboardData) == null ? void 0 : c.getData("text").trim()) || "").split("");
732
+ e.forEach((i, r) => {
733
+ i.value = s[r] || "";
734
+ });
735
+ for (let i = 0; i < e.length; i++)
736
+ if (!e[i].value) {
737
+ e[i].focus();
738
+ break;
739
+ }
740
+ this.cardPin = e.map((i) => i.value).join(""), n && n(this.cardPin);
741
+ }
742
+ handlePinInputChange(t, e, n, A) {
743
+ this.cardPin = "", t.target.value ? e < n.length - 1 && n[e + 1].focus() : e > 0 && n[e - 1].focus(), this.cardPin = n.map((i) => i.value).join(""), A && A(this.cardPin);
744
+ }
745
+ render() {
746
+ return l1;
747
+ }
748
+ }
749
+ const d1 = `<form id="card-avs-form">
750
+ <div class="box-container">
751
+ <h5 class="content-heading mb-4">Fill In Your Billing Address</h5>
752
+ <div class="grid grid-cols-1 gap-y-4 gap-x-3 md:gap-y-6 md:gap-x-4 md:grid-cols-2">
753
+ <div class="relative w-full md:col-span-2">
754
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">Address</span>
755
+ <div>
756
+ <input class="details-input-container" type="tel" id="avs-address-input" name="address"
757
+ placeholder="Enter your Address" required />
758
+ </div>
759
+ </div>
760
+
761
+ <div class="relative w-full">
762
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">City</span>
763
+ <div>
764
+ <input class="details-input-container" type="tel" id="avs-city-input" name="city"
765
+ placeholder="Enter your city" required />
766
+ </div>
767
+ </div>
768
+
769
+ <div class="relative w-full">
770
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">State</span>
771
+ <div>
772
+ <input class="details-input-container" type="tel" id="avs-state-input" name="state"
773
+ placeholder="Enter you state/Province" required />
774
+ </div>
775
+ </div>
776
+
777
+ <div class="relative w-full">
778
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">Country</span>
779
+ <div>
780
+ <input class="details-input-container" type="tel" id="avs-country-select" name="country" minlength="2"
781
+ placeholder="Enter your country" required />
782
+ </div>
783
+ </div>
784
+
785
+ <div class="relative w-full">
786
+ <span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">Zipcode
787
+ (Optional)</span>
788
+ <div>
789
+ <input class="details-input-container" type="tel" id="avs-zipcode-input" name="code"
790
+ placeholder="Enter your Zip-code" inputmode="numeric" />
791
+ </div>
792
+ </div>
793
+ </div>
794
+ <div class="mx-4 md:mx-6 my-8">
795
+ <button type="submit" disabled="true" class="details-form-button">
796
+ <svg class="spinner hidden" id="spinner" viewBox="0 0 24 24">
797
+ <path
798
+ d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z">
799
+ </path>
800
+ </svg>
801
+ <span id="details-form-button-avs">Submit</span>
802
+ </button>
803
+ </div>
804
+ </div>
805
+ </form>
806
+ `;
807
+ class h1 {
808
+ constructor(t) {
809
+ a(this, "container");
810
+ a(this, "contactDetails");
811
+ this.container = t, this.contactDetails = {
812
+ address: "",
813
+ country: "",
814
+ city: "",
815
+ state: ""
816
+ };
817
+ }
818
+ attachListeners(t) {
819
+ const e = this.container.querySelector("input[name='address']"), n = this.container.querySelector("input[name='country']"), A = this.container.querySelector("input[name='city']"), s = this.container.querySelector("input[name='state']"), c = this.container.querySelector("input[name='code']"), i = document.querySelector("#card-avs-form");
820
+ e && e.addEventListener("input", (r) => this.handleInputChange(r)), n && n.addEventListener("input", (r) => this.handleInputChange(r)), A && A.addEventListener("input", (r) => this.handleInputChange(r)), s && s.addEventListener("input", (r) => this.handleInputChange(r)), c && c.addEventListener("input", (r) => this.handleInputChange(r)), i && i.addEventListener("submit", (r) => {
821
+ r.preventDefault(), console.log("Submitted form here"), t && this.validate((l) => {
822
+ t(r)(l);
823
+ });
824
+ });
825
+ }
826
+ handleInputChange(t) {
827
+ const e = t.target, { name: n, value: A } = e;
828
+ let s = A;
829
+ n === "address" && (console.log("address"), this.contactDetails.address = A), n === "country" && (console.log("country"), this.contactDetails.country = A), n === "city" && (console.log("city"), this.contactDetails.city = A), n === "state" && (console.log("state"), this.contactDetails.state = A), n === "code" && (console.log("code"), this.contactDetails.code = w(A), s = w(A)), e.value = s, this.validate();
830
+ }
831
+ validate(t) {
832
+ const e = this.container.querySelector(".details-form-button");
833
+ [
834
+ this.contactDetails.country,
835
+ this.contactDetails.address,
836
+ this.contactDetails.city,
837
+ this.contactDetails.state
838
+ ].every((n) => !!n) && (e && e.removeAttribute("disabled"), console.log("AVS card validation logic here"), t && t(this.contactDetails));
839
+ }
840
+ render() {
841
+ return d1;
842
+ }
843
+ }
844
+ class R {
845
+ constructor(t, e, n, A, s, c, i, r, l) {
846
+ a(this, "contents");
847
+ a(this, "cardDetailForm");
848
+ a(this, "cardOtpValidationForm");
849
+ a(this, "cardPinForm");
850
+ a(this, "avsForm");
851
+ a(this, "successScreen");
852
+ a(this, "warningScreen");
853
+ a(this, "container");
854
+ a(this, "closeModal");
855
+ a(this, "onSuccess");
856
+ a(this, "planId", "");
857
+ a(this, "email");
858
+ a(this, "token");
859
+ a(this, "amount");
860
+ a(this, "encryption");
861
+ a(this, "currency");
862
+ a(this, "_currentStep");
863
+ a(this, "activeRef");
864
+ a(this, "creditCardTypes");
865
+ a(this, "switchTab");
866
+ this.onSuccess = l || (() => null), console.log({ onSuccess: l }, "Card"), this.container = t, this.encryption = A, this.closeModal = e, this.token = n, this.email = s, this.planId = r, this.amount = c, this._currentStep = 1, this.activeRef = "", this.contents = document.querySelectorAll(".content"), this.creditCardTypes = [...u], this.switchTab = i, this.renderCardContent(), this.currentStep === 1 && this.displayCardTypes(), this.attachInputListeners();
601
867
  }
602
868
  displayCardTypes() {
603
869
  requestAnimationFrame(() => {
604
- const e = this.container.querySelector(
605
- "#card-types"
606
- );
607
- this.creditCardTypes.length === 1 && this.creditCardTypes[0].name === "Unknown" ? u.forEach((t) => {
870
+ const t = this.container.querySelector("#card-types");
871
+ this.creditCardTypes.length === 1 && this.creditCardTypes[0].name === "Unknown" ? u.forEach((e) => {
608
872
  const n = document.createElement("div");
609
- n.classList.add("card-type"), n.innerHTML = t.icon, e.appendChild(n);
610
- }) : (e.innerHTML = "", this.creditCardTypes.forEach((t) => {
873
+ n.classList.add("card-type"), n.innerHTML = e.icon, t.appendChild(n);
874
+ }) : (t.innerHTML = "", this.creditCardTypes.forEach((e) => {
611
875
  const n = document.createElement("div");
612
- n.classList.add("card-type"), n.innerHTML = t.icon, e.appendChild(n);
876
+ n.classList.add("card-type"), n.innerHTML = e.icon, t.appendChild(n);
613
877
  }));
614
878
  });
615
879
  }
616
880
  get currentStep() {
617
881
  return this._currentStep;
618
882
  }
619
- set currentStep(e) {
620
- this._currentStep = e, this.renderCardContent(), e === 1 && (this.displayCardTypes(), this.creditCardTypes = [...u]);
883
+ set currentStep(t) {
884
+ this._currentStep = t, this.renderCardContent(), t === 1 && (this.displayCardTypes(), this.creditCardTypes = [...u]);
621
885
  }
622
- attachInputListeners() {
623
- const e = this.container.querySelector(
624
- 'input[name="number"]'
625
- ), t = this.container.querySelector(
626
- 'input[name="expiry"]'
627
- ), n = this.container.querySelector(
628
- 'input[name="cvv"]'
629
- ), A = this.container.querySelector(
630
- ".details-form-button"
631
- ), s = document.querySelector("#checkoutcard"), i = Array.from(
632
- this.container.querySelectorAll(".pin-input")
633
- ), c = this.container.querySelector(
634
- ".otp-input"
635
- ), a = this.container.querySelector(
636
- ".otp-button"
637
- ), l = this.container.querySelector(
638
- ".success-button"
639
- ), C = this.container.querySelector(
640
- "#go-to-card"
641
- ), m = document.querySelector(
642
- "#go-to-transfer"
643
- );
644
- e && e.addEventListener(
645
- "input",
646
- (d) => this.handleInputChange(d, A)
647
- ), t && t.addEventListener(
648
- "input",
649
- (d) => this.handleInputChange(d, A)
650
- ), n && n.addEventListener(
651
- "input",
652
- (d) => this.handleInputChange(d, A)
653
- ), s && s.addEventListener("submit", (d) => this.handleSubmit(d)), i.forEach((d, Q) => {
654
- d.addEventListener(
655
- "input",
656
- (w) => this.handlePinInputChange(w, Q, i)
657
- ), d.addEventListener(
658
- "paste",
659
- (w) => this.handlePinPaste(w, i)
660
- );
661
- }), c && c.addEventListener(
662
- "input",
663
- (d) => this.handleOtpInput(d, a)
664
- ), a && a.addEventListener("click", (d) => this.submitOtp(d)), l && l.addEventListener("click", () => this.closeModal()), C && C.addEventListener("click", () => {
665
- this.currentStep = 1;
666
- }), m && m.addEventListener("click", () => {
667
- this.switchTab(1);
668
- });
886
+ defaultStep() {
887
+ this.currentStep = 1;
669
888
  }
670
- handleInputChange(e, t) {
671
- const n = e.target, { name: A, value: s } = n;
672
- let i = s;
673
- A === "number" ? (i = V(s), this.filterCreditCardType(s)) : A === "expiry" ? i = j(s) : A === "cvv" && (i = W(s)), this.cardDetailsValues = {
674
- ...this.cardDetailsValues,
675
- [A]: i
676
- }, n.value = i, this.cardDetailsValues.number && this.cardDetailsValues.expiry && this.cardDetailsValues.cvv && t && t.removeAttribute("disabled");
889
+ attachInputListeners() {
677
890
  }
678
- handlePinRequest() {
679
- if (this.cardPin.length === 4) {
891
+ handlePinRequest(t) {
892
+ if (t.length === 4) {
680
893
  const e = {
681
894
  authorization: {
682
- pin: this.cardPin
895
+ pin: t
683
896
  },
684
897
  reference: this.activeRef
685
898
  };
686
899
  setTimeout(() => {
687
- this.currentStep = 6, this.showLoader(), P(this.token, e).then((n) => {
688
- n.status === "failed" ? (this.currentStep = 4, n.providerMessage ? (h(n.providerMessage, "error"), this.setPaymentError(n.providerMessage)) : (h("Payment failed", "error"), this.setPaymentError("Payment failed"))) : (h("Payment Authorized!", "success"), this.currentStep = 3);
689
- }).catch((n) => {
690
- h(n.message, "error"), this.currentStep = 4, this.setPaymentError("Payment failed");
900
+ this.currentStep = 6, this.showLoader(), z(this.token, e).then((A) => {
901
+ A.status === "failed" ? (this.currentStep = 4, A.providerMessage ? (d(A.providerMessage, "error"), this.warningScreen.setPaymentError(A.providerMessage)) : (d("Payment failed", "error"), this.warningScreen.setPaymentError("Payment failed"))) : (d("Payment Authorized!", "success"), this.currentStep = 3);
902
+ }).catch((A) => {
903
+ d(A.message, "error"), this.currentStep = 4, this.warningScreen.setPaymentError("Payment failed");
691
904
  });
692
905
  }, 500);
693
906
  }
694
907
  }
695
- handlePinInputChange(e, t, n) {
696
- this.cardPin = "", e.target.value ? t < n.length - 1 && n[t + 1].focus() : t > 0 && n[t - 1].focus(), this.cardPin = n.map((i) => i.value).join(""), this.handlePinRequest();
697
- }
698
908
  showLoader() {
699
- var t;
700
- const e = this.container.querySelector("#loader");
701
- e && (e.classList.remove("hidden"), (t = e.querySelector("img")) == null || t.setAttribute("src", G));
909
+ var e;
910
+ const t = this.container.querySelector("#loader");
911
+ t && (t.classList.remove("hidden"), (e = t.querySelector("img")) == null || e.setAttribute("src", b));
702
912
  }
703
- setPaymentError(e) {
704
- const t = this.container.querySelector("#payment-warning-text"), n = this.container.querySelector(".warning-list");
705
- t && (t.textContent = e), n && [
913
+ setPaymentError(t) {
914
+ const e = this.container.querySelector("#payment-warning-text"), n = this.container.querySelector(".warning-list");
915
+ e && (e.textContent = t), n && [
706
916
  {
707
917
  text: "Try again with your card",
708
918
  action: "go-to-card"
@@ -711,128 +921,189 @@ class f {
711
921
  text: "Try again with transfer",
712
922
  action: "go-to-transfer"
713
923
  }
714
- ].forEach(({ action: s, text: i }) => {
715
- const c = document.createElement("button");
716
- c.textContent = i, c.setAttribute("id", s), c.classList.add("warning-button");
717
- const a = document.createElement("div");
718
- a.appendChild(c), n.appendChild(a);
924
+ ].forEach(({ action: s, text: c }) => {
925
+ const i = document.createElement("button");
926
+ i.textContent = c, i.setAttribute("id", s), i.classList.add("warning-button");
927
+ const r = document.createElement("div");
928
+ r.appendChild(i), n.appendChild(r);
719
929
  }), this.attachInputListeners();
720
930
  }
721
- handlePinPaste(e, t) {
722
- var s;
723
- e.preventDefault(), this.cardPin = "";
724
- const A = (((s = e.clipboardData) == null ? void 0 : s.getData("text").trim()) || "").split("");
725
- t.forEach((i, c) => {
726
- i.value = A[c] || "";
931
+ validatedAVS(t, e) {
932
+ t.stopPropagation(), t.preventDefault();
933
+ const n = this.container.querySelector(".spinner"), A = this.container.querySelector("#details-form-button-avs"), s = {
934
+ authorization: {
935
+ avs: {
936
+ state: e == null ? void 0 : e.state,
937
+ city: e == null ? void 0 : e.city,
938
+ country: e == null ? void 0 : e.country,
939
+ address: e == null ? void 0 : e.address,
940
+ zipCode: (e == null ? void 0 : e.code) || "-"
941
+ }
942
+ },
943
+ reference: this.activeRef
944
+ };
945
+ n && A && (n.classList.remove("hidden"), A.classList.add("hidden")), x(this.token, s).then((i) => {
946
+ if (i.status === "failed")
947
+ this.currentStep = 4, i.providerMessage ? (d(i.providerMessage, "error"), this.warningScreen.setPaymentError(i.providerMessage)) : (d("Payment failed", "error"), this.warningScreen.setPaymentError("Payment failed"));
948
+ else if (i.status !== "successful" && i.status !== "fialed") {
949
+ if (d("Validation Successfull!", "success"), i.authorization.mode === "pin") {
950
+ this.currentStep = 2;
951
+ return;
952
+ }
953
+ if (i.authorization.mode === "3DS") {
954
+ i.authorization.redirectUrl && this.redirectTo3DS(i.authorization.redirectUrl);
955
+ return;
956
+ }
957
+ if (i.authorization.mode === "otp") {
958
+ this.currentStep = 3;
959
+ return;
960
+ }
961
+ } else i.status === "successful" && (this.onSuccess(i), this.currentStep = 5);
962
+ }).catch((i) => {
963
+ d(i.message, "error"), this.currentStep = 4, this.warningScreen.setPaymentError("Payment failed");
964
+ }).finally(() => {
965
+ n && A && (n.classList.add("hidden"), A.classList.remove("hidden"));
727
966
  });
728
- for (let i = 0; i < t.length; i++)
729
- if (!t[i].value) {
730
- t[i].focus();
731
- break;
732
- }
733
- this.cardPin = t.map((i) => i.value).join(""), this.handlePinRequest();
734
- }
735
- handleOtpInput(e, t) {
736
- const n = e.target, { value: A } = n;
737
- this.cardOtp = "", this.cardOtp = A, this.cardOtp.length > 3 && t && t.removeAttribute("disabled");
738
967
  }
739
- submitOtp(e) {
740
- e.preventDefault();
741
- const t = {
968
+ submitOtp(t, e) {
969
+ t.preventDefault();
970
+ const n = {
742
971
  authorization: {
743
- otp: this.cardPin
972
+ otp: e
744
973
  },
745
974
  reference: this.activeRef
746
975
  };
747
- this.currentStep = 6, this.showLoader(), Y(this.token, t).then((A) => {
748
- A.status === "failed" ? (this.currentStep = 4, A.providerMessage ? (h(A.providerMessage, "error"), this.setPaymentError(A.providerMessage)) : (h("Payment failed", "error"), this.setPaymentError("Payment failed"))) : A.status === "successful" && (this.currentStep = 5);
749
- }).catch((A) => {
750
- h(A.message, "error"), this.currentStep = 4, this.setPaymentError("Payment failed");
976
+ this.currentStep = 6, this.showLoader(), x(this.token, n).then((s) => {
977
+ s.status === "failed" ? (this.currentStep = 4, s.providerMessage ? (d(s.providerMessage, "error"), this.warningScreen.setPaymentError(s.providerMessage)) : (d("Payment failed", "error"), this.warningScreen.setPaymentError("Payment failed"))) : s.status === "successful" && (this.onSuccess(s), this.currentStep = 5);
978
+ }).catch((s) => {
979
+ d(s.message, "error"), this.currentStep = 4, this.warningScreen.setPaymentError("Payment failed");
751
980
  });
752
981
  }
753
- async handleSubmit(e) {
754
- var i, c;
755
- e.preventDefault();
756
- const t = this.container.querySelector(".spinner"), n = this.container.querySelector(
757
- "#details-form-button-text"
758
- ), A = {
982
+ async handleSubmit(t, e) {
983
+ t.preventDefault();
984
+ const n = this.container.querySelector(".spinner"), A = this.container.querySelector("#details-form-button-text"), s = await i1(JSON.stringify(e), this.encryption), c = {
759
985
  amount: this.amount,
760
986
  channel: "card",
761
987
  currency: "USD",
988
+ planId: this.planId,
762
989
  customer: {
763
990
  email: this.email
764
991
  },
765
- reference: T(),
766
- card: {
767
- pan: X(this.cardDetailsValues.number),
768
- cvv: this.cardDetailsValues.cvv,
769
- expiryMonth: (i = this.cardDetailsValues) == null ? void 0 : i.expiry.split("/")[0].trim(),
770
- expiryYear: (c = this.cardDetailsValues) == null ? void 0 : c.expiry.split("/")[1].trim()
771
- }
992
+ reference: U(),
993
+ // card: {
994
+ // ..._values,
995
+ // },
996
+ encryptedCard: s
772
997
  };
773
- t && n && (t.classList.remove("hidden"), n.classList.add("hidden")), q(this.token, A).then((a) => {
774
- a.status === "failed" ? (this.currentStep = 4, a.providerMessage ? (h(a.providerMessage, "error"), this.setPaymentError(a.providerMessage)) : (h("Payment failed", "error"), this.setPaymentError("Payment failed"))) : a.status === "pending_authorization" ? (h("Payment Created!", "success"), this.activeRef = a.reference, this.currentStep = 2) : a.status === "pending_validation" && a.authorization.mode === "3DS" && a.authorization.redirectUrl && (this.activeRef = a.reference, this.redirectTo3DS(a.authorization.redirectUrl));
775
- }).catch((a) => {
776
- h(a.message, "error"), this.currentStep = 4, this.setPaymentError("Payment failed");
998
+ console.log({ payload: c }), n && A && (n.classList.remove("hidden"), A.classList.add("hidden")), Y(this.token, c).then((r) => {
999
+ if (r.status === "failed")
1000
+ this.currentStep = 4, r.providerMessage ? (d(r.providerMessage, "error"), this.warningScreen.setPaymentError(r.providerMessage)) : (d("Payment failed", "error"), this.warningScreen.setPaymentError("Payment failed"));
1001
+ else if (r.status !== "successful" && r.status !== "failed") {
1002
+ if (this.activeRef = r.reference, d("Payment Created!", "success"), r.authorization.mode === "pin") {
1003
+ this.currentStep = 2;
1004
+ return;
1005
+ }
1006
+ if (r.authorization.mode === "3DS") {
1007
+ r.authorization.redirectUrl && this.redirectTo3DS(r.authorization.redirectUrl);
1008
+ return;
1009
+ }
1010
+ if (r.authorization.mode === "otp") {
1011
+ this.currentStep = 3;
1012
+ return;
1013
+ }
1014
+ if (r.authorization.mode === "avs") {
1015
+ this.currentStep = 7;
1016
+ return;
1017
+ }
1018
+ } else r.status === "successful" && (this.onSuccess(r), this.currentStep = 5);
1019
+ }).catch((r) => {
1020
+ d(r.message, "error"), this.currentStep = 4, this.warningScreen.setPaymentError("Payment failed");
777
1021
  }).finally(() => {
778
- t && n && (t.classList.add("hidden"), n.classList.remove("hidden"));
1022
+ n && A && (n.classList.add("hidden"), A.classList.remove("hidden"));
779
1023
  });
780
1024
  }
781
- redirectTo3DS(e) {
782
- const t = window.open(e, "_blank");
783
- if (t) {
784
- this.currentStep = 6, this.showLoader();
1025
+ redirectTo3DS(t) {
1026
+ const e = window.open(t, "_blank");
1027
+ if (e) {
1028
+ console.log({ newWindow: e }), this.currentStep = 6, this.showLoader();
785
1029
  const n = setInterval(() => {
786
- t.closed && (clearInterval(n), this.verifyPayment(
787
- () => {
788
- this.currentStep = 5;
1030
+ e.closed && (clearInterval(n), this.verifyPayment(
1031
+ (A) => {
1032
+ this.onSuccess(A), this.currentStep = 5;
789
1033
  },
790
1034
  (A) => {
791
- h(A.message, "error"), this.currentStep = 4;
1035
+ d(A.message, "error"), this.currentStep = 4;
792
1036
  }
793
1037
  ));
794
1038
  }, 2e3);
795
1039
  } else
796
- alert(
797
- "Please enable popups for this site to complete the authentication."
798
- );
1040
+ alert("Please enable popups for this site to complete the authentication.");
799
1041
  }
800
- async verifyPayment(e, t) {
1042
+ async verifyPayment(t, e) {
801
1043
  try {
802
- const n = await k(this.token, this.activeRef);
803
- n.status === "failed" ? this.currentStep = 4 : e(n);
1044
+ const n = await K(this.token, this.activeRef);
1045
+ n.status === "failed" ? this.currentStep = 4 : n.status === "successful" ? t(n) : console.log("wating");
804
1046
  } catch (n) {
805
- console.error(n), t(new Error("failed"));
1047
+ console.error(n), e(new Error("failed"));
806
1048
  }
807
1049
  }
808
1050
  getCardStepContent() {
809
1051
  switch (this.currentStep) {
810
1052
  case 1:
811
- return x;
1053
+ return this.cardDetailForm = new F(this.contents[0]), this.cardDetailForm.render();
812
1054
  case 2:
813
- return O;
1055
+ return this.cardPinForm = new C1(this.contents[0]), this.cardPinForm.render();
814
1056
  case 3:
815
- return Z;
1057
+ return this.cardOtpValidationForm = new c1(this.contents[0], this.closeModal.bind(this)), this.cardOtpValidationForm.render();
816
1058
  case 4:
817
- return I;
1059
+ return this.warningScreen = new a1(
1060
+ this.contents[0],
1061
+ this.switchTab.bind(this),
1062
+ this.defaultStep.bind(this)
1063
+ ), this.warningScreen.render();
818
1064
  case 5:
819
- return H;
1065
+ return this.successScreen = new r1(this.contents[0], this.closeModal.bind(this)), this.successScreen.render();
820
1066
  case 6:
821
- return N;
1067
+ return T;
1068
+ case 7:
1069
+ return this.avsForm = new h1(this.contents[0]), this.avsForm.render();
822
1070
  default:
823
- return x;
1071
+ return this.cardDetailForm = new F(this.contents[0]), this.cardDetailForm.render();
824
1072
  }
825
1073
  }
826
- filterCreditCardType(e) {
827
- e ? (this.creditCardTypes = u.filter(
828
- (t) => t.name === $(e)
829
- ), this.creditCardTypes.length >= 1 ? this.displayCardTypes() : (this.creditCardTypes = [...u], this.displayCardTypes())) : (this.creditCardTypes = [...u], this.displayCardTypes());
830
- }
831
1074
  renderCardContent() {
832
- this.contents[0] && (this.contents[0].innerHTML = this.getCardStepContent(), this.attachInputListeners());
1075
+ switch (this.contents[0] && (this.contents[0].innerHTML = this.getCardStepContent(), this.attachInputListeners(), this.displayButtonText()), this.currentStep) {
1076
+ case 1:
1077
+ this.cardDetailForm.attachListener((t) => (e) => this.handleSubmit.bind(this)(t, e));
1078
+ break;
1079
+ case 2:
1080
+ this.cardPinForm.attachListener((t) => this.handlePinRequest.bind(this)(t));
1081
+ break;
1082
+ case 3:
1083
+ this.cardOtpValidationForm.attachListener((t) => (e) => this.submitOtp.bind(this)(t, e));
1084
+ break;
1085
+ case 4:
1086
+ this.warningScreen.attachListener();
1087
+ break;
1088
+ case 5:
1089
+ this.successScreen.attachListener();
1090
+ break;
1091
+ case 6:
1092
+ return T;
1093
+ case 7:
1094
+ this.avsForm.attachListeners((t) => (e) => this.validatedAVS.bind(this)(t, e));
1095
+ break;
1096
+ default:
1097
+ this.cardDetailForm.attachListener((t) => (e) => this.handleSubmit.bind(this)(t, e));
1098
+ break;
1099
+ }
1100
+ }
1101
+ displayButtonText(t) {
1102
+ const e = this.container.querySelector("#details-form-button-text");
1103
+ e && (t ? e.textContent = t : e.textContent = `Pay ${this.currency || "USD"} ${M(this.amount || 0)}`);
833
1104
  }
834
1105
  }
835
- const R = `<div>
1106
+ const k = `<div>
836
1107
  <div class="box-container">
837
1108
  <div class="container-center h-[40vh] hidden" id="loader">
838
1109
  <img src="" alt="loader gif" />
@@ -1013,7 +1284,7 @@ const R = `<div>
1013
1284
  </div>
1014
1285
  </div>
1015
1286
  </div>
1016
- `, e1 = `<div id="paymentWarning">
1287
+ `, p1 = `<div id="paymentWarning">
1017
1288
  <div class="box-container">
1018
1289
  <div class="text-center mt-7">
1019
1290
  <svg class="mx-auto" width="48" height="46" viewBox="0 0 48 46" fill="none"
@@ -1039,7 +1310,7 @@ const R = `<div>
1039
1310
  </div>
1040
1311
  </div>
1041
1312
  </div>
1042
- </div>`, n1 = `<div id="trasferConfirmationOne">
1313
+ </div>`, m1 = `<div id="trasferConfirmationOne">
1043
1314
  <div class="box-container">
1044
1315
  <div class="text-center mt-7 w-4/5 md:w-3/5 mx-auto">
1045
1316
  <h5 class="text-center text-grey-400 w-4/5 mx-auto mt-4 mb-7 flex">
@@ -1058,7 +1329,7 @@ const R = `<div>
1058
1329
  </div>
1059
1330
  </div>
1060
1331
  </div>
1061
- </div>`, A1 = `<div id="trasferConfirmationOne">
1332
+ </div>`, g1 = `<div id="trasferConfirmationOne">
1062
1333
  <div class="box-container">
1063
1334
  <div class="text-center mt-7 w-4/5 md:w-3/5 mx-auto">
1064
1335
  <h5 class="text-center text-grey-400 w-4/5 mx-auto mt-4 mb-7 flex">
@@ -1086,7 +1357,7 @@ const R = `<div>
1086
1357
  </div>
1087
1358
  </div>
1088
1359
  </div>
1089
- `, s1 = `<div id="trasferConfirmationProgress">
1360
+ `, u1 = `<div id="trasferConfirmationProgress">
1090
1361
  <div class="box-container">
1091
1362
  <div class="text-center mt-7 w-11/12 md:w-4/5 mx-auto">
1092
1363
  <h5
@@ -1135,122 +1406,144 @@ const R = `<div>
1135
1406
  </div>
1136
1407
  </div>
1137
1408
  </div>
1409
+ `, N = `<div id="paymentSuccess">
1410
+ <div class="box-container">
1411
+ <div class="text-center mt-7"></div>
1412
+ <svg class="mx-auto" width="100" height="100" viewBox="0 0 100 100" fill="none"
1413
+ xmlns="http://www.w3.org/2000/svg">
1414
+ <circle cx="50" cy="50" r="50" fill="#D6F1E4" />
1415
+ <circle opacity="0.52" cx="49.5" cy="49.5" r="37.5" fill="#99DDBC" />
1416
+ <ellipse cx="48.4502" cy="48.45" rx="23.25" ry="23.25" fill="white" />
1417
+ <path
1418
+ d="M50.0003 75.8333C35.7395 75.8177 24.1827 64.2609 24.167 50V49.4833C24.451 35.2867 36.1397 23.9806 50.3379 24.1689C64.5361 24.3573 75.9207 35.9696 75.8279 50.1688C75.7352 64.368 64.1998 75.8305 50.0003 75.8333ZM39.9658 50.7568C38.9584 49.7533 37.3288 49.7549 36.3233 50.7603C35.3165 51.7671 35.3165 53.3995 36.3233 54.4064L42.0453 60.1283C43.5853 61.6683 46.0821 61.6683 47.622 60.1283L63.6791 44.0713C64.686 43.0644 64.6888 41.4328 63.6855 40.4223C62.6772 39.4068 61.0356 39.4039 60.0237 40.4158L45.4287 55.0108C45.0999 55.3396 44.5669 55.3401 44.2374 55.0119L39.9658 50.7568Z"
1419
+ fill="#54C68F" />
1420
+ </svg>
1421
+
1422
+ <h5 class="success-text">
1423
+ Your payment has been received
1424
+ </h5>
1425
+ </div>
1426
+
1427
+ <div class="mt-12 mx-auto w-3/5">
1428
+ <button type="button" class="success-button close-btn">
1429
+ Close
1430
+ </button>
1431
+ </div>
1432
+
1433
+ </div>
1138
1434
  `;
1139
- class i1 {
1140
- constructor(e, t, n, A, s) {
1141
- o(this, "container");
1142
- o(this, "contents");
1143
- o(this, "closeModal");
1144
- o(this, "email");
1145
- o(this, "token");
1146
- o(this, "amount");
1147
- o(this, "_currentStep");
1148
- o(this, "activeRef");
1149
- o(this, "paymentResponse");
1150
- o(this, "initialTime");
1151
- o(this, "timeLeft");
1152
- o(this, "timerId");
1153
- o(this, "abortController", null);
1154
- this.container = e, this.contents = document.querySelectorAll(".content"), this.closeModal = t, this.token = n, this.email = A, this.amount = s, this._currentStep = 1, this.renderTransferContent(), this.paymentResponse = null, this.activeRef = "", this.initialTime = 600, this.timeLeft = this.initialTime, this.timerId = null, this.attachInputListeners(), this.currentStep === 1 && (this.abortController = new AbortController(), this.createTransfer());
1435
+ class E1 {
1436
+ constructor(t, e, n, A, s, c, i) {
1437
+ a(this, "container");
1438
+ a(this, "contents");
1439
+ a(this, "closeModal");
1440
+ a(this, "onSuccess");
1441
+ a(this, "email");
1442
+ a(this, "token");
1443
+ a(this, "planId");
1444
+ a(this, "amount");
1445
+ a(this, "_currentStep");
1446
+ a(this, "activeRef");
1447
+ a(this, "paymentResponse");
1448
+ a(this, "initialTime");
1449
+ a(this, "timeLeft");
1450
+ a(this, "timerId");
1451
+ a(this, "abortController", null);
1452
+ this.onSuccess = i || (() => null), this.container = t, this.contents = document.querySelectorAll(".content"), this.closeModal = e, this.token = n, this.email = A, this.amount = s, this.planId = c, this._currentStep = 1, this.renderTransferContent(), this.paymentResponse = null, this.activeRef = "", this.initialTime = 600, this.timeLeft = this.initialTime, this.timerId = null, this.attachInputListeners(), this.currentStep === 1 && (this.abortController = new AbortController(), this.createTransfer());
1155
1453
  }
1156
1454
  get currentStep() {
1157
1455
  return this._currentStep;
1158
1456
  }
1159
- set currentStep(e) {
1160
- this._currentStep = e, this.renderTransferContent(), e === 1 && this.createTransfer(), e === 5 && this.startTimer("check");
1457
+ set currentStep(t) {
1458
+ this._currentStep = t, this.renderTransferContent(), t === 1 && this.createTransfer(), t === 5 && this.startTimer("check");
1161
1459
  }
1162
1460
  attachInputListeners() {
1163
- const e = this.container.querySelector("#transfer-acn"), t = this.container.querySelector("#copy-acn"), n = this.container.querySelector("#acn-tooltip"), A = this.container.querySelector("#transfer-amount"), s = this.container.querySelector("#copy-amount"), i = this.container.querySelector("#amount-tooltip"), c = this.container.querySelector("#transfer-try-again"), a = this.container.querySelector("#transfer-sent"), l = this.container.querySelector(".transfer-button"), C = this.container.querySelector("#show-acn"), m = this.container.querySelector("#ctd-timer"), d = this.container.querySelector(
1164
- ".success-button"
1165
- ), Q = this.container.querySelector("#confirm-one"), w = this.container.querySelector(".transfer-close");
1166
- if (t && e && t.addEventListener("click", () => {
1167
- n && this.copyToClipboard(e.innerHTML, n);
1461
+ const t = this.container.querySelector("#transfer-acn"), e = this.container.querySelector("#copy-acn"), n = this.container.querySelector("#acn-tooltip"), A = this.container.querySelector("#transfer-amount"), s = this.container.querySelector("#copy-amount"), c = this.container.querySelector("#amount-tooltip"), i = this.container.querySelector("#transfer-try-again"), r = this.container.querySelector("#transfer-sent"), l = this.container.querySelector(".transfer-button"), C = this.container.querySelector("#show-acn"), p = this.container.querySelector("#ctd-timer"), m = this.container.querySelector(".success-button"), Q = this.container.querySelector("#confirm-one"), S = this.container.querySelector(".transfer-close");
1462
+ if (e && t && e.addEventListener("click", () => {
1463
+ n && this.copyToClipboard(t.innerHTML, n);
1168
1464
  }), s && A && s.addEventListener("click", () => {
1169
- i && this.copyToClipboard(A.innerHTML.split(" ")[1], i);
1465
+ c && this.copyToClipboard(A.innerHTML.split(" ")[1], c);
1170
1466
  }), l && l.addEventListener("click", () => {
1171
1467
  this.abortController && (this.abortController.abort(), this.currentStep = 5);
1172
- }), c && c.addEventListener("click", () => {
1468
+ }), i && i.addEventListener("click", () => {
1173
1469
  this.currentStep = 1;
1174
- }), a && a.addEventListener("click", () => {
1470
+ }), r && r.addEventListener("click", () => {
1175
1471
  this.abortController && (this.abortController.abort(), this.currentStep = 5);
1176
1472
  }), C && C.addEventListener("click", () => {
1177
1473
  this.stopProgressBar(), this.currentStep = 1;
1178
1474
  }), this.currentStep === 5) {
1179
- this.initialTime = 300, this.timeLeft = this.initialTime, m && (m.innerHTML = B(this.initialTime));
1180
- const U = 3e4;
1475
+ this.initialTime = 300, this.timeLeft = this.initialTime, p && (p.innerHTML = f(this.initialTime));
1476
+ const L = 3e4;
1181
1477
  this.abortController = new AbortController(), setTimeout(() => {
1182
1478
  this.verifyTransfer(
1183
1479
  this.token,
1184
- U,
1185
- () => {
1186
- this.currentStep = 6;
1480
+ L,
1481
+ (v) => {
1482
+ this.onSuccess(v), this.currentStep = 6;
1187
1483
  },
1188
1484
  (v) => {
1189
- console.error("Polling failed:", v), h(v.message, "error");
1485
+ console.error("Polling failed:", v), d(v.message, "error");
1190
1486
  }
1191
1487
  );
1192
1488
  }, 5e3), this.startTimer("check");
1193
1489
  }
1194
1490
  Q && Q.addEventListener("click", () => {
1195
1491
  this.currentStep = 4;
1196
- }), d && d.addEventListener("click", () => this.closeModal()), w && w.addEventListener("click", () => this.closeModal());
1492
+ }), m && m.addEventListener("click", () => this.closeModal()), S && S.addEventListener("click", () => this.closeModal());
1197
1493
  }
1198
1494
  async createTransfer() {
1199
1495
  requestAnimationFrame(() => {
1200
- var s;
1201
- const e = this.container.querySelector("#loader"), t = this.container.querySelector("#details-content");
1202
- e && t && (e.classList.remove("hidden"), (s = e.querySelector("img")) == null || s.setAttribute("src", G), t.classList.add("hidden"));
1496
+ var s, c;
1497
+ const t = this.container.querySelector("#loader"), e = this.container.querySelector("#details-content");
1498
+ t && e && (t.classList.remove("hidden"), (s = t.querySelector("img")) == null || s.setAttribute("src", b), e.classList.add("hidden")), console.log((c = this.planId) == null ? void 0 : c.toUpperCase());
1203
1499
  const n = {
1204
1500
  amount: this.amount,
1205
1501
  channel: "bank_transfer",
1206
1502
  currency: "USD",
1503
+ // planId: this.planId,
1207
1504
  customer: {
1208
1505
  email: this.email
1209
1506
  },
1210
- reference: T()
1507
+ reference: U()
1211
1508
  };
1212
- z(this.token, n).then((i) => {
1509
+ W(this.token, n).then((i) => {
1213
1510
  if (i.status === "failed")
1214
- i.providerMessage ? h(i.providerMessage, "error") : h("Payment failed", "error"), this.currentStep = 2;
1511
+ i.providerMessage ? d(i.providerMessage, "error") : d("Payment failed", "error"), this.currentStep = 2;
1215
1512
  else {
1216
- e && t && (e.classList.add("hidden"), t.classList.remove("hidden")), this.activeRef = i.reference, this.paymentResponse = i, this.updateTransferDetailsContent();
1217
- const c = 3e4;
1513
+ t && e && (t.classList.add("hidden"), e.classList.remove("hidden")), this.activeRef = i.reference, this.paymentResponse = i, this.updateTransferDetailsContent();
1514
+ const r = 3e4;
1218
1515
  setTimeout(() => {
1219
1516
  this.verifyTransfer(
1220
1517
  this.token,
1221
- c,
1222
- () => {
1223
- this.currentStep = 6;
1518
+ r,
1519
+ (l) => {
1520
+ this.currentStep = 6, this.onSuccess(l);
1224
1521
  },
1225
- (a) => {
1226
- console.error("Polling failed:", a), h(a.message, "error");
1522
+ (l) => {
1523
+ console.error("Polling failed:", l), d(l.message, "error");
1227
1524
  }
1228
1525
  );
1229
- }, c);
1526
+ }, r);
1230
1527
  }
1231
1528
  }).catch((i) => {
1232
- h(i.message, "error");
1529
+ d(i.message, "error");
1233
1530
  });
1234
1531
  });
1235
1532
  }
1236
- async verifyTransfer(e, t, n, A) {
1237
- let s = 0, i = t, c = !0, a;
1238
- this.abortController && (a = this.abortController.signal);
1533
+ async verifyTransfer(t, e, n, A) {
1534
+ let s = 0, c = e, i = !0, r;
1535
+ this.abortController && (r = this.abortController.signal);
1239
1536
  const l = async () => {
1240
1537
  if (this.timeLeft <= 0) {
1241
- c = !1, A(new Error("Max polling time reached")), this.currentStep = 2;
1538
+ i = !1, A(new Error("Max polling time reached")), this.currentStep = 2;
1242
1539
  return;
1243
1540
  }
1244
1541
  s += 1;
1245
1542
  try {
1246
- const C = await k(
1247
- e,
1248
- this.activeRef,
1249
- a
1250
- );
1251
- C.status === "failed" ? c && (i = t * (s + 1), setTimeout(l, i)) : (c = !1, n(C));
1543
+ const C = await K(t, this.activeRef, r);
1544
+ C.status === "failed" ? i && (c = e * (s + 1), setTimeout(l, c)) : (i = !1, n(C));
1252
1545
  } catch {
1253
- c && (i = t * (s + 1), setTimeout(l, i));
1546
+ i && (c = e * (s + 1), setTimeout(l, c));
1254
1547
  }
1255
1548
  };
1256
1549
  l();
@@ -1258,43 +1551,43 @@ class i1 {
1258
1551
  getTransferStepContent() {
1259
1552
  switch (this.currentStep) {
1260
1553
  case 1:
1261
- return R;
1554
+ return k;
1262
1555
  case 2:
1263
- return e1;
1556
+ return p1;
1264
1557
  case 3:
1265
- return n1;
1558
+ return m1;
1266
1559
  case 4:
1267
- return A1;
1560
+ return g1;
1268
1561
  case 5:
1269
- return s1;
1562
+ return u1;
1270
1563
  case 6:
1271
- return H;
1564
+ return N;
1272
1565
  default:
1273
- return R;
1566
+ return k;
1274
1567
  }
1275
1568
  }
1276
1569
  updateTransferDetailsContent() {
1277
1570
  var s;
1278
- const e = this.container.querySelectorAll(".transfer-curr-amount"), t = this.container.querySelector("#transfer-bank"), n = this.container.querySelector("#transfer-acn"), A = this.container.querySelector("#time-left");
1279
- this.paymentResponse && (e.length && e.forEach(
1280
- (i) => {
1281
- var c, a;
1282
- return i.innerHTML = `${(c = this.paymentResponse) == null ? void 0 : c.currency} ${(a = this.paymentResponse) == null ? void 0 : a.amount}`;
1571
+ const t = this.container.querySelectorAll(".transfer-curr-amount"), e = this.container.querySelector("#transfer-bank"), n = this.container.querySelector("#transfer-acn"), A = this.container.querySelector("#time-left");
1572
+ this.paymentResponse && (t.length && t.forEach(
1573
+ (c) => {
1574
+ var i, r;
1575
+ return c.innerHTML = `${(i = this.paymentResponse) == null ? void 0 : i.currency} ${(r = this.paymentResponse) == null ? void 0 : r.amount}`;
1283
1576
  }
1284
- ), t && this.paymentResponse.bankDetails && (t.innerHTML = (s = this.paymentResponse.bankDetails) == null ? void 0 : s.bankName), n && this.paymentResponse.bankDetails && (n.innerHTML = this.paymentResponse.bankDetails.accountNumber), A && (A.innerHTML = B(this.initialTime)), this.startTimer("poll"));
1577
+ ), e && this.paymentResponse.bankDetails && (e.innerHTML = (s = this.paymentResponse.bankDetails) == null ? void 0 : s.bankName), n && this.paymentResponse.bankDetails && (n.innerHTML = this.paymentResponse.bankDetails.accountNumber), A && (A.innerHTML = f(this.initialTime)), this.startTimer("poll"));
1285
1578
  }
1286
1579
  renderTransferContent() {
1287
1580
  this.contents[1] && (this.contents[1].innerHTML = this.getTransferStepContent(), this.attachInputListeners());
1288
1581
  }
1289
- startTimer(e) {
1290
- const t = this.container.querySelector("#ctd-timer");
1582
+ startTimer(t) {
1583
+ const e = this.container.querySelector("#ctd-timer");
1291
1584
  this.stopTimer(), this.timerId = window.setInterval(() => {
1292
- this.timeLeft > 0 ? (this.timeLeft -= 1, e === "poll" ? this.updateProgressTimerContent() : t && (t.innerHTML = B(this.timeLeft), this.startTimer("check"))) : (this.stopTimer(), e === "check" && (this.currentStep = 3));
1585
+ this.timeLeft > 0 ? (this.timeLeft -= 1, t === "poll" ? this.updateProgressTimerContent() : e && (e.innerHTML = f(this.timeLeft), this.startTimer("check"))) : (this.stopTimer(), t === "check" && (this.currentStep = 3));
1293
1586
  }, 1e3);
1294
1587
  }
1295
1588
  updateProgressTimerContent() {
1296
- const t = 2 * Math.PI * 40, A = (this.initialTime - this.timeLeft) / this.initialTime * 100 / 100 * t, s = this.container.querySelector(".circle-progress"), i = this.container.querySelector("#time-left");
1297
- s && (s.setAttribute("stroke-dasharray", `${t}`), s.setAttribute("stroke-dashoffset", `${A}`)), i && (i.innerHTML = B(this.timeLeft));
1589
+ const e = 2 * Math.PI * 40, A = (this.initialTime - this.timeLeft) / this.initialTime * 100 / 100 * e, s = this.container.querySelector(".circle-progress"), c = this.container.querySelector("#time-left");
1590
+ s && (s.setAttribute("stroke-dasharray", `${e}`), s.setAttribute("stroke-dashoffset", `${A}`)), c && (c.innerHTML = f(this.timeLeft));
1298
1591
  }
1299
1592
  stopTimer() {
1300
1593
  this.timerId !== null && (clearInterval(this.timerId), this.timerId = null);
@@ -1306,16 +1599,14 @@ class i1 {
1306
1599
  // }
1307
1600
  // }
1308
1601
  stopProgressBar() {
1309
- const e = this.container.querySelector(
1310
- ".progress-bar"
1311
- );
1312
- e && (e.style.animationPlayState = "paused");
1313
- }
1314
- copyToClipboard(e, t) {
1315
- navigator.clipboard.writeText(e).then(() => {
1316
- t.innerHTML = "Copied!";
1602
+ const t = this.container.querySelector(".progress-bar");
1603
+ t && (t.style.animationPlayState = "paused");
1604
+ }
1605
+ copyToClipboard(t, e) {
1606
+ navigator.clipboard.writeText(t).then(() => {
1607
+ e.innerHTML = "Copied!";
1317
1608
  }).catch(() => {
1318
- t.innerHTML = "Failed to copy";
1609
+ e.innerHTML = "Failed to copy";
1319
1610
  });
1320
1611
  }
1321
1612
  destroyTimer() {
@@ -1325,203 +1616,331 @@ class i1 {
1325
1616
  this.abortController && this.abortController.abort();
1326
1617
  }
1327
1618
  }
1328
- const b = `<div id="ussdBanks">
1619
+ const w1 = `<div id="paymentWarning">
1329
1620
  <div class="box-container">
1330
- <div class="text-center my-6">
1621
+ <div class="text-center mt-7">
1331
1622
  <svg
1332
- class="mx-auto w-8 h-8 mb-3"
1333
- width="18"
1334
- height="18"
1335
- viewBox="0 0 18 18"
1623
+ class="mx-auto"
1624
+ width="48"
1625
+ height="46"
1626
+ viewBox="0 0 48 46"
1336
1627
  fill="none"
1337
1628
  xmlns="http://www.w3.org/2000/svg"
1338
1629
  >
1339
1630
  <path
1340
- d="M17 10.994H12.7L13.43 7.00603H17C17.2652 7.00603 17.5196 6.90099 17.7071 6.71402C17.8946 6.52705 18 6.27346 18 6.00905C18 5.74463 17.8946 5.49104 17.7071 5.30407C17.5196 5.1171 17.2652 5.01206 17 5.01206H13.79L14.48 1.21355C14.5073 1.08026 14.5069 0.942815 14.4789 0.809676C14.4509 0.676537 14.3958 0.550522 14.3171 0.439385C14.2385 0.328249 14.1378 0.234342 14.0213 0.163445C13.9049 0.0925489 13.7751 0.046162 13.64 0.02714C13.5057 -0.0047662 13.3662 -0.00858576 13.2303 0.0159217C13.0944 0.0404292 12.965 0.0927325 12.8504 0.169536C12.7358 0.24634 12.6384 0.345978 12.5643 0.462174C12.4902 0.578369 12.4411 0.708602 12.42 0.844667L11.67 5.01206H7.79L8.48 1.21355C8.50727 1.08026 8.50688 0.942815 8.47887 0.809676C8.45086 0.676537 8.39582 0.550522 8.31714 0.439385C8.23845 0.328249 8.13778 0.234342 8.02133 0.163445C7.90488 0.0925489 7.77511 0.046162 7.64 0.02714C7.50566 -0.0047662 7.36615 -0.00858576 7.23026 0.0159217C7.09437 0.0404292 6.96504 0.0927325 6.85042 0.169536C6.73581 0.24634 6.63839 0.345978 6.56431 0.462174C6.49024 0.578369 6.4411 0.708602 6.42 0.844667L5.67 5.01206H1C0.734784 5.01206 0.48043 5.1171 0.292893 5.30407C0.105357 5.49104 0 5.74463 0 6.00905C0 6.27346 0.105357 6.52705 0.292893 6.71402C0.48043 6.90099 0.734784 7.00603 1 7.00603H5.3L4.57 10.994H1C0.734784 10.994 0.48043 11.099 0.292893 11.286C0.105357 11.4729 0 11.7265 0 11.991C0 12.2554 0.105357 12.509 0.292893 12.6959C0.48043 12.8829 0.734784 12.9879 1 12.9879H4.21L3.52 16.7864C3.49273 16.9197 3.49312 17.0572 3.52113 17.1903C3.54914 17.3235 3.60418 17.4495 3.68286 17.5606C3.76155 17.6718 3.86222 17.7657 3.97867 17.8366C4.09512 17.9075 4.22489 17.9538 4.36 17.9729C4.49434 18.0048 4.63385 18.0086 4.76974 17.9841C4.90563 17.9596 5.03496 17.9073 5.14958 17.8305C5.26419 17.7537 5.36161 17.654 5.43569 17.5378C5.50976 17.4216 5.5589 17.2914 5.58 17.1553L6.33 12.9879H10.21L9.52 16.7864C9.49273 16.9197 9.49312 17.0572 9.52113 17.1903C9.54914 17.3235 9.60418 17.4495 9.68286 17.5606C9.76155 17.6718 9.86222 17.7657 9.97867 17.8366C10.0951 17.9075 10.2249 17.9538 10.36 17.9729C10.4943 18.0048 10.6338 18.0086 10.7697 17.9841C10.9056 17.9596 11.035 17.9073 11.1496 17.8305C11.2642 17.7537 11.3616 17.654 11.4357 17.5378C11.5098 17.4216 11.5589 17.2914 11.58 17.1553L12.33 12.9879H17C17.2652 12.9879 17.5196 12.8829 17.7071 12.6959C17.8946 12.509 18 12.2554 18 11.991C18 11.7265 17.8946 11.4729 17.7071 11.286C17.5196 11.099 17.2652 10.994 17 10.994ZM6.7 10.994L7.43 7.00603H11.3L10.57 10.994H6.7Z"
1341
- fill="#01008E"
1631
+ d="M47.4936 39.5624L27.5213 2.47251C26.1057 -0.157178 22.3346 -0.157178 20.9178 2.47251L0.946695 39.5624C0.639327 40.1332 0.485227 40.7741 0.499436 41.4223C0.513645 42.0705 0.695678 42.7039 1.02777 43.2608C1.35986 43.8177 1.83065 44.2789 2.39421 44.5995C2.95776 44.9201 3.59481 45.0892 4.24318 45.0901H44.1912C44.8401 45.0902 45.4779 44.9219 46.0422 44.6017C46.6066 44.2815 47.0782 43.8204 47.411 43.2633C47.7438 42.7063 47.9263 42.0724 47.9408 41.4237C47.9553 40.775 47.8012 40.1337 47.4936 39.5624V39.5624ZM24.2201 39.3479C23.7566 39.3479 23.3034 39.2104 22.918 38.9529C22.5326 38.6954 22.2322 38.3293 22.0548 37.9011C21.8774 37.4728 21.831 37.0016 21.9214 36.5469C22.0119 36.0923 22.2351 35.6746 22.5629 35.3469C22.8906 35.0191 23.3082 34.7959 23.7629 34.7054C24.2175 34.615 24.6888 34.6614 25.117 34.8388C25.5453 35.0162 25.9114 35.3166 26.1689 35.702C26.4264 36.0875 26.5639 36.5406 26.5639 37.0042C26.5639 37.3119 26.5033 37.6167 26.3855 37.9011C26.2677 38.1854 26.095 38.4438 25.8774 38.6614C25.6598 38.8791 25.4014 39.0517 25.117 39.1695C24.8327 39.2873 24.5279 39.3479 24.2201 39.3479ZM26.7654 15.7756L26.0928 30.0725C26.0928 30.5698 25.8952 31.0467 25.5436 31.3983C25.192 31.75 24.7151 31.9475 24.2178 31.9475C23.7205 31.9475 23.2436 31.75 22.892 31.3983C22.5403 31.0467 22.3428 30.5698 22.3428 30.0725L21.6701 15.7815C21.655 15.44 21.7088 15.099 21.8283 14.7787C21.9478 14.4584 22.1306 14.1655 22.3657 13.9174C22.6008 13.6692 22.8835 13.471 23.1968 13.3344C23.5102 13.1979 23.8478 13.1258 24.1897 13.1225H24.2143C24.5584 13.1223 24.899 13.1919 25.2156 13.327C25.5321 13.462 25.818 13.6598 26.0559 13.9085C26.2939 14.1571 26.4791 14.4513 26.6002 14.7734C26.7213 15.0955 26.776 15.4389 26.7608 15.7827L26.7654 15.7756Z"
1632
+ fill="#FF9B00"
1342
1633
  />
1343
1634
  </svg>
1344
1635
 
1345
- <h5 class="content-heading">Choose your bank to start the payment</h5>
1636
+ <p id="payment-warning-text" class="warning-text"></p>
1346
1637
  </div>
1347
1638
 
1348
- <div class="my-12">
1349
- <div class="relative md:mx-[18px] mb-4 mx-0">
1350
- <div class="relative">
1351
- <input
1352
- type="text"
1353
- id="bank-search-input"
1354
- class=""
1355
- placeholder="Search..."
1356
- autocomplete="off"
1357
- />
1358
- <div class="bank-options" id="bank-options"></div>
1359
- </div>
1360
- </div>
1639
+ <div class="warning-list box-container">
1361
1640
  </div>
1362
1641
  </div>
1363
1642
  </div>
1364
- `, r1 = `<div id="viewCode">
1365
- <div class="box-container">
1366
- <div class="text-center pb-5 mt-4 mb-6">
1367
- <svg
1368
- class="mx-auto w-8 h-8 mb-3"
1369
- width="18"
1370
- height="18"
1371
- viewBox="0 0 18 18"
1372
- fill="none"
1373
- xmlns="http://www.w3.org/2000/svg"
1374
- >
1375
- <path
1376
- d="M17 10.994H12.7L13.43 7.00603H17C17.2652 7.00603 17.5196 6.90099 17.7071 6.71402C17.8946 6.52705 18 6.27346 18 6.00905C18 5.74463 17.8946 5.49104 17.7071 5.30407C17.5196 5.1171 17.2652 5.01206 17 5.01206H13.79L14.48 1.21355C14.5073 1.08026 14.5069 0.942815 14.4789 0.809676C14.4509 0.676537 14.3958 0.550522 14.3171 0.439385C14.2385 0.328249 14.1378 0.234342 14.0213 0.163445C13.9049 0.0925489 13.7751 0.046162 13.64 0.02714C13.5057 -0.0047662 13.3662 -0.00858576 13.2303 0.0159217C13.0944 0.0404292 12.965 0.0927325 12.8504 0.169536C12.7358 0.24634 12.6384 0.345978 12.5643 0.462174C12.4902 0.578369 12.4411 0.708602 12.42 0.844667L11.67 5.01206H7.79L8.48 1.21355C8.50727 1.08026 8.50688 0.942815 8.47887 0.809676C8.45086 0.676537 8.39582 0.550522 8.31714 0.439385C8.23845 0.328249 8.13778 0.234342 8.02133 0.163445C7.90488 0.0925489 7.77511 0.046162 7.64 0.02714C7.50566 -0.0047662 7.36615 -0.00858576 7.23026 0.0159217C7.09437 0.0404292 6.96504 0.0927325 6.85042 0.169536C6.73581 0.24634 6.63839 0.345978 6.56431 0.462174C6.49024 0.578369 6.4411 0.708602 6.42 0.844667L5.67 5.01206H1C0.734784 5.01206 0.48043 5.1171 0.292893 5.30407C0.105357 5.49104 0 5.74463 0 6.00905C0 6.27346 0.105357 6.52705 0.292893 6.71402C0.48043 6.90099 0.734784 7.00603 1 7.00603H5.3L4.57 10.994H1C0.734784 10.994 0.48043 11.099 0.292893 11.286C0.105357 11.4729 0 11.7265 0 11.991C0 12.2554 0.105357 12.509 0.292893 12.6959C0.48043 12.8829 0.734784 12.9879 1 12.9879H4.21L3.52 16.7864C3.49273 16.9197 3.49312 17.0572 3.52113 17.1903C3.54914 17.3235 3.60418 17.4495 3.68286 17.5606C3.76155 17.6718 3.86222 17.7657 3.97867 17.8366C4.09512 17.9075 4.22489 17.9538 4.36 17.9729C4.49434 18.0048 4.63385 18.0086 4.76974 17.9841C4.90563 17.9596 5.03496 17.9073 5.14958 17.8305C5.26419 17.7537 5.36161 17.654 5.43569 17.5378C5.50976 17.4216 5.5589 17.2914 5.58 17.1553L6.33 12.9879H10.21L9.52 16.7864C9.49273 16.9197 9.49312 17.0572 9.52113 17.1903C9.54914 17.3235 9.60418 17.4495 9.68286 17.5606C9.76155 17.6718 9.86222 17.7657 9.97867 17.8366C10.0951 17.9075 10.2249 17.9538 10.36 17.9729C10.4943 18.0048 10.6338 18.0086 10.7697 17.9841C10.9056 17.9596 11.035 17.9073 11.1496 17.8305C11.2642 17.7537 11.3616 17.654 11.4357 17.5378C11.5098 17.4216 11.5589 17.2914 11.58 17.1553L12.33 12.9879H17C17.2652 12.9879 17.5196 12.8829 17.7071 12.6959C17.8946 12.509 18 12.2554 18 11.991C18 11.7265 17.8946 11.4729 17.7071 11.286C17.5196 11.099 17.2652 10.994 17 10.994ZM6.7 10.994L7.43 7.00603H11.3L10.57 10.994H6.7Z"
1377
- fill="#01008E"
1378
- />
1379
- </svg>
1643
+ `;
1644
+ function G() {
1645
+ return function(o, t) {
1646
+ let e = o[t];
1647
+ console.log({ key: t }, "Property"), Object.defineProperty(o, t, {
1648
+ configurable: !0,
1649
+ enumerable: !0,
1650
+ get: () => e,
1651
+ set: (s) => {
1652
+ console.log({ values: s }), e = s;
1653
+ }
1654
+ });
1655
+ };
1656
+ }
1657
+ class D {
1658
+ constructor(t) {
1659
+ a(this, "container");
1660
+ this.container = t;
1661
+ }
1662
+ attachListerner(t) {
1663
+ const e = document.getElementById("bank-search-input"), n = document.querySelectorAll(".select-option-tag"), A = document.getElementById("bank-code-span");
1664
+ e && e.addEventListener("change", (s) => {
1665
+ s.stopPropagation(), A && (A.innerHTML = e.value), t && t({ code: e.value, name: "" });
1666
+ }), n && (Array.from(n).forEach((c) => {
1667
+ c.addEventListener("click", function(i) {
1668
+ i.stopPropagation(), A && (A.innerHTML = c.value), console.log(`${c.value} clicked`, { spanTag: A });
1669
+ });
1670
+ }), console.log("option add listerner", { options: n }));
1671
+ }
1672
+ renderContent() {
1673
+ this.container.innerHTML = this.render();
1674
+ }
1675
+ render() {
1676
+ return console.log("render card detail form"), `
1677
+ <div id="ussdBanks">
1678
+ <div class="box-container">
1679
+ <div class="text-center my-6">
1680
+ <svg class="mx-auto w-8 h-8 mb-3" width="18" height="18" viewBox="0 0 18 18" fill="none"
1681
+ xmlns="http://www.w3.org/2000/svg">
1682
+ <path
1683
+ d="M17 10.994H12.7L13.43 7.00603H17C17.2652 7.00603 17.5196 6.90099 17.7071 6.71402C17.8946 6.52705 18 6.27346 18 6.00905C18 5.74463 17.8946 5.49104 17.7071 5.30407C17.5196 5.1171 17.2652 5.01206 17 5.01206H13.79L14.48 1.21355C14.5073 1.08026 14.5069 0.942815 14.4789 0.809676C14.4509 0.676537 14.3958 0.550522 14.3171 0.439385C14.2385 0.328249 14.1378 0.234342 14.0213 0.163445C13.9049 0.0925489 13.7751 0.046162 13.64 0.02714C13.5057 -0.0047662 13.3662 -0.00858576 13.2303 0.0159217C13.0944 0.0404292 12.965 0.0927325 12.8504 0.169536C12.7358 0.24634 12.6384 0.345978 12.5643 0.462174C12.4902 0.578369 12.4411 0.708602 12.42 0.844667L11.67 5.01206H7.79L8.48 1.21355C8.50727 1.08026 8.50688 0.942815 8.47887 0.809676C8.45086 0.676537 8.39582 0.550522 8.31714 0.439385C8.23845 0.328249 8.13778 0.234342 8.02133 0.163445C7.90488 0.0925489 7.77511 0.046162 7.64 0.02714C7.50566 -0.0047662 7.36615 -0.00858576 7.23026 0.0159217C7.09437 0.0404292 6.96504 0.0927325 6.85042 0.169536C6.73581 0.24634 6.63839 0.345978 6.56431 0.462174C6.49024 0.578369 6.4411 0.708602 6.42 0.844667L5.67 5.01206H1C0.734784 5.01206 0.48043 5.1171 0.292893 5.30407C0.105357 5.49104 0 5.74463 0 6.00905C0 6.27346 0.105357 6.52705 0.292893 6.71402C0.48043 6.90099 0.734784 7.00603 1 7.00603H5.3L4.57 10.994H1C0.734784 10.994 0.48043 11.099 0.292893 11.286C0.105357 11.4729 0 11.7265 0 11.991C0 12.2554 0.105357 12.509 0.292893 12.6959C0.48043 12.8829 0.734784 12.9879 1 12.9879H4.21L3.52 16.7864C3.49273 16.9197 3.49312 17.0572 3.52113 17.1903C3.54914 17.3235 3.60418 17.4495 3.68286 17.5606C3.76155 17.6718 3.86222 17.7657 3.97867 17.8366C4.09512 17.9075 4.22489 17.9538 4.36 17.9729C4.49434 18.0048 4.63385 18.0086 4.76974 17.9841C4.90563 17.9596 5.03496 17.9073 5.14958 17.8305C5.26419 17.7537 5.36161 17.654 5.43569 17.5378C5.50976 17.4216 5.5589 17.2914 5.58 17.1553L6.33 12.9879H10.21L9.52 16.7864C9.49273 16.9197 9.49312 17.0572 9.52113 17.1903C9.54914 17.3235 9.60418 17.4495 9.68286 17.5606C9.76155 17.6718 9.86222 17.7657 9.97867 17.8366C10.0951 17.9075 10.2249 17.9538 10.36 17.9729C10.4943 18.0048 10.6338 18.0086 10.7697 17.9841C10.9056 17.9596 11.035 17.9073 11.1496 17.8305C11.2642 17.7537 11.3616 17.654 11.4357 17.5378C11.5098 17.4216 11.5589 17.2914 11.58 17.1553L12.33 12.9879H17C17.2652 12.9879 17.5196 12.8829 17.7071 12.6959C17.8946 12.509 18 12.2554 18 11.991C18 11.7265 17.8946 11.4729 17.7071 11.286C17.5196 11.099 17.2652 10.994 17 10.994ZM6.7 10.994L7.43 7.00603H11.3L10.57 10.994H6.7Z"
1684
+ fill="#01008E" />
1685
+ </svg>
1686
+
1687
+ <h5 class="content-heading">Choose your bank to start the payment</h5>
1688
+ </div>
1689
+
1690
+ <!-- <div class="my-12">
1691
+ <div class="relative md:mx-[18px] mb-4 mx-0">
1692
+ <div class="relative">
1693
+ <div id="bank-select-container">
1694
+
1695
+ <input type="text" id="bank-search-input" class="" placeholder="Search..." autocomplete="off" />
1696
+ <span id="bank-code-span">3244</span>
1697
+ </div>
1698
+ <div class="bank-options" id="bank-options"></div>
1699
+ </div>
1700
+ </div>
1701
+ </div> -->
1380
1702
 
1381
- <div class="w-4/5 mx-auto">
1382
- <h5 class="content-heading">
1383
- Dial the code below to complete this transaction with FCMB’s 329
1384
- </h5>
1385
1703
 
1386
- <p class="text-primary-dark my-4">How to pay with FCMB USSD</p>
1704
+ <div class="my-12">
1705
+ <div class="relative md:mx-[18px] mb-4 mx-0">
1706
+ <div class="relative bank-select-relative">
1707
+ <div id="bank-select-container">
1708
+ <select type="text" id="bank-search-input" class="" placeholder="Search..." autocomplete="off">
1709
+ <option class="select-option-tag" value="-#"></option>
1710
+ <option class="select-option-tag" value="*233#">FCMB</option>
1711
+ <option class="select-option-tag" value="*334#">First Bank</option>
1712
+ <option class="select-option-tag" value="*3*#239#">Zenith</option>
1713
+ <option class="select-option-tag" value="*377#">GTBank</option>
1714
+ </select>
1715
+ <span id="bank-code-span">3244</span>
1716
+ </div>
1717
+ <!-- <div class="bank-options" id="bank-options"></div> -->
1718
+ </div>
1719
+ </div>
1720
+ </div>
1721
+ </div>
1387
1722
  </div>
1388
- </div>
1389
1723
 
1390
- <div>
1391
- <button class="copy-code-button">
1392
- <span> *329*33*4*343788#</span>
1724
+ `;
1725
+ }
1726
+ }
1727
+ class B1 {
1728
+ constructor(t) {
1729
+ a(this, "container");
1730
+ this.container = t;
1731
+ }
1732
+ render() {
1733
+ return `
1734
+ <div id="viewCode">
1735
+ <div class="box-container">
1736
+ <div class="text-center pb-5 mt-4 mb-6">
1737
+ <svg
1738
+ class="mx-auto w-8 h-8 mb-3"
1739
+ width="18"
1740
+ height="18"
1741
+ viewBox="0 0 18 18"
1742
+ fill="none"
1743
+ xmlns="http://www.w3.org/2000/svg"
1744
+ >
1745
+ <path
1746
+ d="M17 10.994H12.7L13.43 7.00603H17C17.2652 7.00603 17.5196 6.90099 17.7071 6.71402C17.8946 6.52705 18 6.27346 18 6.00905C18 5.74463 17.8946 5.49104 17.7071 5.30407C17.5196 5.1171 17.2652 5.01206 17 5.01206H13.79L14.48 1.21355C14.5073 1.08026 14.5069 0.942815 14.4789 0.809676C14.4509 0.676537 14.3958 0.550522 14.3171 0.439385C14.2385 0.328249 14.1378 0.234342 14.0213 0.163445C13.9049 0.0925489 13.7751 0.046162 13.64 0.02714C13.5057 -0.0047662 13.3662 -0.00858576 13.2303 0.0159217C13.0944 0.0404292 12.965 0.0927325 12.8504 0.169536C12.7358 0.24634 12.6384 0.345978 12.5643 0.462174C12.4902 0.578369 12.4411 0.708602 12.42 0.844667L11.67 5.01206H7.79L8.48 1.21355C8.50727 1.08026 8.50688 0.942815 8.47887 0.809676C8.45086 0.676537 8.39582 0.550522 8.31714 0.439385C8.23845 0.328249 8.13778 0.234342 8.02133 0.163445C7.90488 0.0925489 7.77511 0.046162 7.64 0.02714C7.50566 -0.0047662 7.36615 -0.00858576 7.23026 0.0159217C7.09437 0.0404292 6.96504 0.0927325 6.85042 0.169536C6.73581 0.24634 6.63839 0.345978 6.56431 0.462174C6.49024 0.578369 6.4411 0.708602 6.42 0.844667L5.67 5.01206H1C0.734784 5.01206 0.48043 5.1171 0.292893 5.30407C0.105357 5.49104 0 5.74463 0 6.00905C0 6.27346 0.105357 6.52705 0.292893 6.71402C0.48043 6.90099 0.734784 7.00603 1 7.00603H5.3L4.57 10.994H1C0.734784 10.994 0.48043 11.099 0.292893 11.286C0.105357 11.4729 0 11.7265 0 11.991C0 12.2554 0.105357 12.509 0.292893 12.6959C0.48043 12.8829 0.734784 12.9879 1 12.9879H4.21L3.52 16.7864C3.49273 16.9197 3.49312 17.0572 3.52113 17.1903C3.54914 17.3235 3.60418 17.4495 3.68286 17.5606C3.76155 17.6718 3.86222 17.7657 3.97867 17.8366C4.09512 17.9075 4.22489 17.9538 4.36 17.9729C4.49434 18.0048 4.63385 18.0086 4.76974 17.9841C4.90563 17.9596 5.03496 17.9073 5.14958 17.8305C5.26419 17.7537 5.36161 17.654 5.43569 17.5378C5.50976 17.4216 5.5589 17.2914 5.58 17.1553L6.33 12.9879H10.21L9.52 16.7864C9.49273 16.9197 9.49312 17.0572 9.52113 17.1903C9.54914 17.3235 9.60418 17.4495 9.68286 17.5606C9.76155 17.6718 9.86222 17.7657 9.97867 17.8366C10.0951 17.9075 10.2249 17.9538 10.36 17.9729C10.4943 18.0048 10.6338 18.0086 10.7697 17.9841C10.9056 17.9596 11.035 17.9073 11.1496 17.8305C11.2642 17.7537 11.3616 17.654 11.4357 17.5378C11.5098 17.4216 11.5589 17.2914 11.58 17.1553L12.33 12.9879H17C17.2652 12.9879 17.5196 12.8829 17.7071 12.6959C17.8946 12.509 18 12.2554 18 11.991C18 11.7265 17.8946 11.4729 17.7071 11.286C17.5196 11.099 17.2652 10.994 17 10.994ZM6.7 10.994L7.43 7.00603H11.3L10.57 10.994H6.7Z"
1747
+ fill="#01008E"
1748
+ />
1749
+ </svg>
1750
+
1751
+ <div class="w-4/5 mx-auto">
1752
+ <h5 class="content-heading">
1753
+ Dial the code below to complete this transaction with FCMB’s 329
1754
+ </h5>
1393
1755
 
1394
- <svg
1395
- width="14"
1396
- height="14"
1397
- viewBox="0 0 14 14"
1398
- fill="none"
1399
- xmlns="http://www.w3.org/2000/svg"
1400
- >
1401
- <path
1402
- d="M8.33337 4.33337H1.66671C0.931374 4.33337 0.333374 4.93137 0.333374 5.66671V12.3334C0.333374 13.0687 0.931374 13.6667 1.66671 13.6667H8.33337C9.06871 13.6667 9.66671 13.0687 9.66671 12.3334V5.66671C9.66671 4.93137 9.06871 4.33337 8.33337 4.33337Z"
1403
- fill="#F4F4FF"
1404
- />
1405
- <path
1406
- d="M12.3334 0.333374H5.66671C5.31309 0.333374 4.97395 0.47385 4.7239 0.723898C4.47385 0.973947 4.33337 1.31309 4.33337 1.66671V3.00004H9.66671C10.0203 3.00004 10.3595 3.14052 10.6095 3.39056C10.8596 3.64061 11 3.97975 11 4.33337V9.66671H12.3334C12.687 9.66671 13.0261 9.52623 13.2762 9.27618C13.5262 9.02613 13.6667 8.687 13.6667 8.33337V1.66671C13.6667 1.31309 13.5262 0.973947 13.2762 0.723898C13.0261 0.47385 12.687 0.333374 12.3334 0.333374Z"
1407
- fill="#F4F4FF"
1408
- />
1409
- </svg>
1410
- </button>
1756
+ <p class="text-primary-dark my-4">How to pay with FCMB USSD</p>
1757
+ </div>
1758
+ </div>
1411
1759
 
1412
- <div class="container-center">
1413
- <button class="text-grey-400 text-sm text-center hover:underline">
1414
- Click to copy
1415
- </button>
1760
+ <div>
1761
+ <button class="copy-code-button">
1762
+ <span> *329*33*4*343788#</span>
1763
+
1764
+ <svg
1765
+ width="14"
1766
+ height="14"
1767
+ viewBox="0 0 14 14"
1768
+ fill="none"
1769
+ xmlns="http://www.w3.org/2000/svg"
1770
+ >
1771
+ <path
1772
+ d="M8.33337 4.33337H1.66671C0.931374 4.33337 0.333374 4.93137 0.333374 5.66671V12.3334C0.333374 13.0687 0.931374 13.6667 1.66671 13.6667H8.33337C9.06871 13.6667 9.66671 13.0687 9.66671 12.3334V5.66671C9.66671 4.93137 9.06871 4.33337 8.33337 4.33337Z"
1773
+ fill="#F4F4FF"
1774
+ />
1775
+ <path
1776
+ d="M12.3334 0.333374H5.66671C5.31309 0.333374 4.97395 0.47385 4.7239 0.723898C4.47385 0.973947 4.33337 1.31309 4.33337 1.66671V3.00004H9.66671C10.0203 3.00004 10.3595 3.14052 10.6095 3.39056C10.8596 3.64061 11 3.97975 11 4.33337V9.66671H12.3334C12.687 9.66671 13.0261 9.52623 13.2762 9.27618C13.5262 9.02613 13.6667 8.687 13.6667 8.33337V1.66671C13.6667 1.31309 13.5262 0.973947 13.2762 0.723898C13.0261 0.47385 12.687 0.333374 12.3334 0.333374Z"
1777
+ fill="#F4F4FF"
1778
+ />
1779
+ </svg>
1780
+ </button>
1781
+
1782
+ <div class="container-center">
1783
+ <button class="text-grey-400 text-sm text-center hover:underline">
1784
+ Click to copy
1785
+ </button>
1786
+ </div>
1787
+ </div>
1788
+
1789
+ <div class="pt-16 mb-2">
1790
+ <button class="ussd-button text-grey-700">I have completed the payment</button>
1791
+ </div>
1792
+ <div class="container-center">
1793
+ <button class="text-grey-400 text-center hover:underline">Cancel</button>
1794
+ </div>
1795
+ </div>
1416
1796
  </div>
1417
- </div>
1418
1797
 
1419
- <div class="pt-16 mb-2">
1420
- <button class="ussd-button text-grey-700">I have completed the payment</button>
1421
- </div>
1422
- <div class="container-center">
1423
- <button class="text-grey-400 text-center hover:underline">Cancel</button>
1424
- </div>
1425
- </div>
1426
- </div>
1427
- `;
1428
- class a1 {
1429
- constructor() {
1798
+
1799
+ `;
1800
+ }
1801
+ }
1802
+ var y1 = Object.defineProperty, V = (o, t, e, n) => {
1803
+ for (var A = void 0, s = o.length - 1, c; s >= 0; s--)
1804
+ (c = o[s]) && (A = c(t, e, A) || A);
1805
+ return A && y1(t, e, A), A;
1806
+ };
1807
+ class H {
1808
+ // private container: HTMLElement;
1809
+ constructor(t, e) {
1430
1810
  // private container: HTMLElement;
1431
- o(this, "contents");
1432
- o(this, "banks");
1433
- o(this, "_currentStep");
1434
- this.contents = document.querySelectorAll(".content"), this.banks = t1, this._currentStep = 1, this.renderUssdContent();
1811
+ a(this, "contents");
1812
+ a(this, "banks");
1813
+ a(this, "selectedCode");
1814
+ a(this, "onSuccess");
1815
+ a(this, "bankDetail");
1816
+ a(this, "viewUssdCode");
1817
+ a(this, "_currentStep");
1818
+ this.onSuccess = e || (() => null);
1819
+ const n = [
1820
+ { code: "*334#", name: "First City Bank" },
1821
+ { code: "*334#", name: "First Bank" }
1822
+ ];
1823
+ this.contents = document.querySelectorAll(".content"), this.banks = j, this._currentStep = 1, this.renderUssdContent(), this.banks = n, console.log({ ddd: this.onSuccess });
1435
1824
  }
1436
1825
  get currentStep() {
1437
1826
  return this._currentStep;
1438
1827
  }
1439
- set currentStep(e) {
1440
- this._currentStep = e, this.renderUssdContent();
1828
+ set currentStep(t) {
1829
+ this._currentStep = t, this.renderUssdContent();
1441
1830
  }
1442
1831
  getUssdStepContent() {
1443
1832
  switch (this.currentStep) {
1444
1833
  case 1:
1445
- return b;
1834
+ return this.bankDetail = new D(this.contents[2]), this.bankDetail.render();
1446
1835
  case 2:
1447
- return r1;
1836
+ return this.viewUssdCode = new B1(this.contents[2]), this.viewUssdCode.render();
1448
1837
  case 3:
1449
- return I;
1838
+ return w1;
1450
1839
  case 4:
1451
- return H;
1840
+ return N;
1452
1841
  default:
1453
- return b;
1842
+ return this.bankDetail = new D(this.contents[2]), this.bankDetail.render();
1454
1843
  }
1455
1844
  }
1845
+ onCodeSelect(t) {
1846
+ console.log({ val: t }), this.selectedCode = t || "", setTimeout(() => {
1847
+ this.currentStep = 2;
1848
+ }, 1e3), console.log({ selectedCode: this == null ? void 0 : this.selectedCode });
1849
+ }
1456
1850
  renderUssdContent() {
1457
- this.contents[2] && (this.contents[2].innerHTML = this.getUssdStepContent());
1851
+ switch (this.contents[2] && (this.contents[2].innerHTML = this.getUssdStepContent()), this.currentStep) {
1852
+ case 1:
1853
+ this.bankDetail.attachListerner(this.onCodeSelect.bind(this));
1854
+ break;
1855
+ default:
1856
+ this.bankDetail.attachListerner(this.onCodeSelect.bind(this));
1857
+ break;
1858
+ }
1859
+ }
1860
+ handleSelectChange(t) {
1861
+ console.log({ _e: t }, "knksnbskjb EVENT"), setTimeout(() => {
1862
+ this.currentStep = 2;
1863
+ }, 400), this.currentStep = 2;
1458
1864
  }
1459
- renderSearchOptions(e, t, n) {
1460
- n.innerHTML = "", e.forEach((A) => {
1865
+ renderSearchOptions(t, e, n) {
1866
+ n.innerHTML = "", t.forEach((A) => {
1461
1867
  const s = document.createElement("div");
1462
1868
  s.classList.add("bank-option"), s.textContent = A.name, s.addEventListener("click", () => {
1463
- t.value = A.name, n.style.display = "none";
1869
+ e.value = A.name, n.style.display = "none";
1464
1870
  }), n.appendChild(s);
1465
- }), n.style.display = e.length ? "block" : "none";
1871
+ }), n.style.display = t.length ? "block" : "none";
1466
1872
  }
1467
- searchBanksOnInput(e, t) {
1468
- const n = e.value.toLowerCase(), A = this.banks.filter(
1469
- (s) => s.name.toLowerCase().includes(n)
1470
- );
1471
- this.renderSearchOptions(A, e, t);
1873
+ searchBanksOnInput(t, e) {
1874
+ const n = t.value.toLowerCase(), A = this.banks.filter((s) => s.name.toLowerCase().includes(n));
1875
+ this.renderSearchOptions(A, t, e);
1472
1876
  }
1473
- openSearchOnFocus(e, t) {
1474
- this.renderSearchOptions(this.banks, e, t);
1877
+ openSearchOnFocus(t, e) {
1878
+ this.renderSearchOptions(this.banks, t, e);
1475
1879
  }
1476
- closeSearchOptionsOutsideFocus(e, t, n) {
1477
- !t.contains(e.target) && !n.contains(e.target) && (n.style.display = "none");
1880
+ closeSearchOptionsOutsideFocus(t, e, n) {
1881
+ !e.contains(t.target) && !n.contains(t.target) && (n.style.display = "none");
1478
1882
  }
1479
1883
  }
1480
- class c1 {
1481
- constructor(e, t, n) {
1482
- o(this, "modalContainer");
1483
- o(this, "currentPaymentMethod");
1484
- o(this, "currentStep");
1485
- o(this, "container");
1486
- o(this, "card");
1487
- o(this, "transfer");
1488
- o(this, "ussd");
1489
- o(this, "merchantKey");
1490
- o(this, "email");
1491
- o(this, "amount");
1492
- o(this, "isMobile", !1);
1493
- if (this.modalContainer = document.createElement("div"), this.modalContainer.innerHTML = K, document.body.appendChild(this.modalContainer), this.isMobile = window.matchMedia("(max-width: 767px)").matches, this.currentPaymentMethod = this.isMobile ? 3 : 0, this.currentStep = 1, this.container = document.querySelectorAll(".content")[0], this.merchantKey = e, this.email = t, this.amount = n, this.attachInputListeners(), this.switchTab = this.switchTab.bind(this), e === "" || t === "")
1494
- throw this.closeModal(), new Error("Merchant key or email is required");
1884
+ V([
1885
+ G()
1886
+ ], H.prototype, "banks");
1887
+ V([
1888
+ G()
1889
+ ], H.prototype, "selectedCode");
1890
+ const I = "data:image/svg+xml,%3csvg%20width='196'%20height='56'%20viewBox='0%200%20196%2056'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M156.567%2013.9786H162.726C162.843%2014.3804%20162.98%2014.7947%20163.084%2015.2185C164.888%2022.4978%20166.667%2029.7833%20168.505%2037.0532C168.781%2038.1455%20169.215%2039.2316%20169.76%2040.2204C170.439%2041.4572%20171.336%2041.5262%20172.363%2040.5625C172.69%2040.2581%20172.975%2039.8971%20173.225%2039.5298C174.544%2037.6025%20175.356%2035.4617%20175.574%2033.164C175.682%2032.0559%20175.495%2030.8882%20175.254%2029.7865C174.113%2024.5758%20172.908%2019.3776%20171.71%2014.1042C172.753%2013.7338%20173.777%2013.9661%20174.772%2013.9252C175.755%2013.8844%20176.744%2013.9158%20177.816%2013.9158C177.939%2014.2894%20178.072%2014.619%20178.152%2014.9611C179.388%2020.2785%20180.577%2025.6085%20181.864%2030.9165C182.46%2033.3712%20183.214%2035.7882%20183.969%2038.1989C184.219%2039.0056%20184.615%2039.7935%20185.085%2040.4966C185.674%2041.3787%20186.483%2041.4666%20187.297%2040.7697C187.786%2040.3522%20188.201%2039.8155%20188.534%2039.263C189.672%2037.3922%20190.296%2035.3173%20190.829%2033.2205C191.637%2030.0533%20192.265%2026.8641%20192.192%2023.5713C192.109%2019.7951%20190.721%2016.6781%20187.586%2014.4149C187.424%2014.2988%20187.278%2014.1544%20186.993%2013.9096C187.751%2013.4638%20188.429%2013.0589%20189.117%2012.6602C189.862%2012.2271%20190.645%2011.8441%20191.352%2011.3576C191.986%2010.9181%20192.474%2011.0656%20193.019%2011.4768C194.991%2012.971%20195.891%2014.9831%20195.986%2017.3969C196.094%2020.0745%20195.54%2022.6673%20194.953%2025.2507C194.091%2029.0363%20192.934%2032.7277%20191.228%2036.2339C190.385%2037.9666%20189.355%2039.5675%20188.096%2041.0491C185.373%2044.254%20180.057%2043.4222%20178.418%2039.7213C177.793%2038.3119%20177.286%2036.8491%20176.668%2035.2546C176.459%2035.6093%20176.275%2035.8918%20176.123%2036.1868C175.181%2038.0043%20174.126%2039.7276%20172.737%2041.2751C170.154%2044.1504%20164.983%2043.3343%20163.424%2039.9881C162.91%2038.8801%20162.441%2037.7438%20162.064%2036.5855C160.383%2031.4627%20159.252%2026.2018%20158.114%2020.944C157.622%2018.6776%20157.109%2016.4176%20156.57%2013.9817L156.567%2013.9786Z'%20fill='%2301008E'/%3e%3cpath%20d='M33.0448%2042.6249V56H26.8378C26.8378%2055.4821%2026.8378%2055.005%2026.8378%2054.5247C26.8378%2043.0173%2026.8378%2031.5098%2026.8378%2020.0023C26.8378%2019.5534%2026.8505%2019.1014%2026.8061%2018.6557C26.692%2017.5006%2026.3306%2017.1459%2025.1228%2016.9042C24.771%2016.8351%2024.4254%2016.7441%2024.0704%2016.5777C27.1517%2015.9782%2030.084%2015.0051%2032.9941%2013.5392V20.6427L33.1843%2020.6992C33.2953%2020.4763%2033.4316%2020.266%2033.5172%2020.0337C34.0815%2018.4799%2034.8676%2017.0611%2036.0437%2015.8746C39.553%2012.337%2045.0119%2012.6822%2048.0266%2016.6405C49.3422%2018.3701%2050.1125%2020.3507%2050.4612%2022.4633C51.2442%2027.2251%2050.6704%2031.8205%2048.3658%2036.1084C47.735%2037.2824%2046.9107%2038.3935%2045.9882%2039.3635C43.8801%2041.5859%2041.2078%2042.6186%2038.1296%2042.6217C36.4875%2042.6217%2034.8486%2042.6217%2033.0448%2042.6217V42.6249ZM33.0448%2041.8244C35.9772%2042.0693%2038.5417%2041.6173%2040.6625%2039.6962C42.2%2038.3025%2043.0496%2036.4976%2043.6044%2034.5452C44.53%2031.2901%2044.7044%2027.9565%2044.5205%2024.6103C44.4317%2022.9938%2044.1084%2021.3929%2043.4078%2019.8768C41.7372%2016.2701%2037.2262%2016.0661%2035.0769%2019.1203C34.3858%2020.1028%2033.831%2021.261%2033.5457%2022.4162C33.197%2023.8256%2033.0829%2025.3166%2033.0639%2026.7731C33.0068%2031.2995%2033.0417%2035.829%2033.0417%2040.3554C33.0417%2040.798%2033.0417%2041.2437%2033.0417%2041.8244H33.0448Z'%20fill='%2301008E'/%3e%3cpath%20d='M0.00951021%2038.472C1.08099%2035.9796%202.12078%2033.5658%203.23981%2030.9604C3.59169%2031.5223%203.82628%2031.8895%204.05135%2032.2599C5.89633%2035.2828%208.2517%2037.7939%2011.4344%2039.4733C13.3999%2040.5092%2015.4826%2041.0522%2017.7207%2040.9643C19.5086%2040.8952%2020.5294%2039.7527%2020.3455%2038.0011C20.2568%2037.1599%2019.9714%2036.372%2019.3121%2035.8415C18.3928%2035.1007%2017.4608%2034.3128%2016.4051%2033.8137C13.9927%2032.6711%2011.4788%2031.7451%209.05689%2030.6245C7.45918%2029.8869%205.8678%2029.0802%204.41591%2028.0945C2.28879%2026.6475%200.951021%2024.6479%200.821048%2021.9861C0.675225%2018.9538%201.95593%2016.7189%204.59026%2015.2122C6.26089%2014.2548%208.09953%2013.7997%209.98572%2013.5831C14.1702%2013.1028%2018.0948%2013.9346%2021.7277%2016.0597C21.8989%2016.1602%2022.051%2016.2983%2022.311%2016.4898C21.2553%2018.5678%2020.206%2020.6269%2019.0902%2022.8242C18.7002%2022.4444%2018.3864%2022.1525%2018.0916%2021.8448C16.2022%2019.8893%2014.1797%2018.1063%2011.7293%2016.8539C10.0143%2015.9781%208.20097%2015.4947%206.2704%2015.5386C4.20985%2015.5826%203.09082%2017.0673%203.48391%2019.0888C3.70264%2020.2032%204.27009%2021.0978%205.17039%2021.7004C6.35599%2022.4946%207.60183%2023.2385%208.90156%2023.8224C10.886%2024.7107%2012.9466%2025.4358%2014.9691%2026.2457C16.8109%2026.9833%2018.5703%2027.8717%2020.0951%2029.1492C22.536%2031.1958%2023.4902%2033.7823%2022.8689%2036.9088C22.4948%2038.7859%2021.3821%2040.145%2019.7971%2041.1621C18.3864%2042.0661%2016.8141%2042.5463%2015.172%2042.7755C11.7863%2043.2495%208.43556%2043.1459%205.19258%2041.9248C3.24298%2041.1903%201.52797%2040.0948%200%2038.4751L0.00951021%2038.472Z'%20fill='%2301008E'/%3e%3cpath%20d='M79.125%2028.3614C79.144%2029.4381%2079.0837%2030.5147%2078.9252%2031.582C78.1676%2036.7079%2075.0229%2041.6675%2069.6274%2042.7504C64.3397%2043.8114%2059.1313%2041.8903%2056.5287%2036.4411C55.6728%2034.6487%2055.2353%2032.7434%2055.0705%2030.791C54.8169%2027.8152%2054.8866%2024.8363%2055.7837%2021.9548C57.0993%2017.7266%2059.7083%2014.71%2064.2415%2013.7683C67.8585%2013.015%2071.7165%2013.7118%2074.5474%2016.1477C77.8981%2019.0292%2078.9189%2023.5619%2079.1059%2027.787C79.1154%2027.9816%2079.1218%2028.1731%2079.125%2028.3677V28.3614ZM59.8668%2023.5148C59.9112%2026.9018%2060.8653%2030.3923%2061.9527%2033.3335C62.8213%2035.6846%2063.9562%2037.9133%2065.7124%2039.7402C66.4352%2040.4904%2067.3196%2041.1558%2068.2484%2041.633C71.241%2043.1585%2073.0131%2039.5487%2073.5108%2037.1976C74.5696%2032.1847%2073.7517%2027.2282%2071.8972%2022.5072C71.1776%2020.674%2070.2583%2018.9476%2069.0156%2017.4032C68.2136%2016.4082%2067.3196%2015.5104%2066.1499%2014.936C64.4761%2014.1199%2062.8466%2014.4903%2061.8227%2016.0347C60.3581%2018.2539%2059.8287%2020.853%2059.8636%2023.518L59.8668%2023.5148Z'%20fill='%2301008E'/%3e%3cpath%20d='M153.72%2028.3614C153.739%2029.4381%20153.679%2030.5147%20153.52%2031.582C152.763%2036.7079%20149.618%2041.6675%20144.222%2042.7504C138.935%2043.8114%20133.726%2041.8903%20131.124%2036.4411C130.268%2034.6487%20129.83%2032.7434%20129.665%2030.791C129.412%2027.8152%20129.482%2024.8363%20130.379%2021.9548C131.694%2017.7266%20134.303%2014.71%20138.836%2013.7683C142.453%2013.015%20146.311%2013.7118%20149.142%2016.1477C152.493%2019.0292%20153.514%2023.5619%20153.701%2027.787C153.71%2027.9816%20153.717%2028.1731%20153.72%2028.3677V28.3614ZM134.465%2023.5148C134.509%2026.9018%20135.463%2030.3923%20136.551%2033.3335C137.419%2035.6846%20138.554%2037.9133%20140.311%2039.7402C141.033%2040.4904%20141.918%2041.1558%20142.847%2041.633C145.839%2043.1585%20147.611%2039.5487%20148.109%2037.1976C149.168%2032.1847%20148.35%2027.2282%20146.495%2022.5072C145.776%2020.674%20144.856%2018.9476%20143.614%2017.4032C142.812%2016.4082%20141.918%2015.5104%20140.748%2014.936C139.074%2014.1199%20137.445%2014.4903%20136.421%2016.0347C134.956%2018.2539%20134.427%2020.853%20134.462%2023.518L134.465%2023.5148Z'%20fill='%2301008E'/%3e%3cpath%20d='M115.689%201.6142C114.487%204.04062%20113.305%206.42624%20112.125%208.81186C112.056%208.78989%20111.986%208.76791%20111.916%208.7428C111.824%207.99573%20111.821%207.22354%20111.618%206.50785C111.285%205.34016%20110.87%204.19129%20110.391%203.07696C110.192%202.60925%20109.795%202.18863%20109.396%201.85276C108.153%200.804345%20106.502%201.05546%20105.728%202.47114C105.303%203.24646%20104.986%204.11596%20104.812%204.98231C104.226%207.87958%20104.438%2010.8177%20104.438%2013.9158C105.57%2013.9158%20106.629%2013.875%20107.684%2013.9284C108.664%2013.9755%20109.681%2013.693%20110.629%2014.2642C109.656%2014.7382%20108.613%2014.5154%20107.602%2014.5562C106.584%2014.597%20105.567%2014.5656%20104.438%2014.5656V42.6029C102.343%2042.6531%20100.358%2042.6248%2098.288%2042.6248C98.2627%2042.1069%2098.2247%2041.7114%2098.2247%2041.3159C98.2215%2032.6304%2098.1929%2023.948%2098.2373%2015.2624C98.2532%2011.9571%2098.9886%208.78989%20100.7%205.90831C103.157%201.75859%20106.892%20-0.131068%20111.704%200.00704625C113.476%200.0572698%20114.703%200.565783%20115.689%201.61106V1.6142Z'%20fill='%2301008E'/%3e%3cpath%20d='M115.888%203.21818C118.966%202.52133%20121.937%201.51058%20124.872%200.0446777V42.5463H118.786C118.757%2042.0535%20118.706%2041.545%20118.706%2041.0365C118.703%2029.6609%20118.706%2018.2852%20118.697%206.90961C118.697%206.30065%20118.659%205.68855%20118.58%205.08273C118.431%203.95897%20118.158%203.68588%20117.083%203.4536C116.687%203.36885%20116.288%203.29665%20115.888%203.21818Z'%20fill='%2301008E'/%3e%3cpath%20d='M90.9272%205.21149V13.8531C92.3981%2013.8939%2093.8405%2013.9315%2095.286%2013.9724C95.305%2014.0571%2095.3209%2014.1419%2095.3399%2014.2266C95.1719%2014.3365%2095.0039%2014.5311%2094.8327%2014.5374C93.9704%2014.5719%2093.105%2014.5531%2092.2396%2014.5656C91.8402%2014.5719%2091.4376%2014.6064%2090.962%2014.6315C90.9367%2015.1087%2090.9018%2015.5042%2090.9018%2015.8997C90.8986%2022.548%2090.8923%2029.1932%2090.9113%2035.8416C90.9113%2036.5259%2091.0033%2037.229%2091.1776%2037.8913C91.501%2039.1249%2092.3125%2039.7245%2093.6027%2039.737C94.3762%2039.7433%2095.1529%2039.6648%2096.0468%2039.6177C95.7964%2039.8343%2095.6157%2040.0384%2095.3938%2040.1733C94.2336%2040.8702%2093.0226%2041.4948%2091.9004%2042.2451C88.9681%2044.2069%2085.0087%2042.2733%2084.6885%2038.3402C84.6504%2037.8536%2084.6568%2037.3608%2084.6568%2036.8743C84.6568%2029.9403%2084.6568%2023.0094%2084.6568%2016.0755C84.6568%2015.6329%2084.6568%2015.1903%2084.6568%2014.5719H81.3884C84.6568%2011.3701%2087.7951%208.29396%2090.9367%205.21149H90.9272Z'%20fill='%2301008E'/%3e%3c/svg%3e";
1891
+ class Q1 {
1892
+ constructor(t, e, n, A, s, c, i, r, l) {
1893
+ a(this, "modalContainer");
1894
+ a(this, "currentPaymentMethod");
1895
+ a(this, "mainLayout");
1896
+ a(this, "currentStep");
1897
+ a(this, "merchantPlanDetail", {});
1898
+ a(this, "onSuccess");
1899
+ a(this, "onClose");
1900
+ // container: HTMLDivElement;
1901
+ a(this, "mainScreen");
1902
+ a(this, "card");
1903
+ a(this, "transfer");
1904
+ a(this, "ussd");
1905
+ a(this, "encryption");
1906
+ a(this, "merchantKey");
1907
+ a(this, "planId");
1908
+ a(this, "email");
1909
+ a(this, "amount", 0);
1910
+ a(this, "isMobile", !1);
1911
+ this.modalContainer = e, this.encryption = A, this.planId = i || "", this.mainLayout = t, this.onSuccess = r || (() => null), this.onClose = l || (() => null), console.log({ onSuccess: r, onClose: l }, "main page"), this.isMobile = window.matchMedia("(max-width: 767px)").matches, this.currentPaymentMethod = this.isMobile ? 3 : 0, this.currentStep = 1, this.merchantKey = n, this.email = s, this.amount = c || 0;
1912
+ }
1913
+ mountScreen(t) {
1914
+ var i, r, l, C, p, m, Q, S, L;
1915
+ this.mainLayout.innerHTML = this.render(), this.merchantPlanDetail = t, this.amount = ((r = (i = this.merchantPlanDetail) == null ? void 0 : i.plan) == null ? void 0 : r.amount) || 0;
1916
+ const e = document.getElementById("plan-name"), n = document.getElementById("payment-rate-display"), A = document.getElementById("container-payment-text"), s = document.getElementById("header-chip-amount"), c = document.getElementById("merchant-email");
1917
+ c && (c.innerHTML = this.email), e && (e.textContent = ((l = t == null ? void 0 : t.plan) == null ? void 0 : l.title) || "N/A"), n && (n.innerHTML = `1 ${((C = t == null ? void 0 : t.rate) == null ? void 0 : C.to) || "-"} = ${((p = t.rate) == null ? void 0 : p.rate) || 1} ${((m = t == null ? void 0 : t.rate) == null ? void 0 : m.from) || "-"}`), A && (A.innerHTML = `${((Q = t == null ? void 0 : t.plan) == null ? void 0 : Q.currency) || "NGN"} ${M(((S = t == null ? void 0 : t.plan) == null ? void 0 : S.amount) || 0, 2)}`), s && (s.innerHTML = `NGN ${M((this.amount || 0) * (((L = t == null ? void 0 : t.rate) == null ? void 0 : L.rate) || 1), 2)}`), this.setupComponent(), this.attachInputListeners(), this.switchTab = this.switchTab.bind(this);
1495
1918
  }
1496
1919
  attachInputListeners() {
1497
- const e = document.body.querySelector(
1498
- "#change-method"
1499
- ), t = document.body.querySelectorAll(
1500
- ".close-btn"
1501
- ), n = document.querySelector("#mob-container"), A = document.querySelector("#mob-tab-co"), s = document.querySelector("#mob-tab-c");
1502
- e && (this.cleanup(), e.addEventListener("click", () => {
1503
- this.currentPaymentMethod = 3, this.attachInputListeners(), n && (n.innerHTML = this.mobileContainerContent()), this.setup(), A && s && s.parentNode && A.removeChild(s);
1504
- })), t.length > 0 && t.forEach((i) => {
1505
- i.addEventListener("click", () => {
1920
+ const t = document.body.querySelector("#change-method"), e = document.querySelector("#mob-container"), n = document.querySelector("#mob-tab-co"), A = document.querySelector("#mob-tab-c");
1921
+ t && (this.cleanup(), t.addEventListener("click", () => {
1922
+ this.currentPaymentMethod = 3, this.attachInputListeners(), e && (e.innerHTML = this.mobileContainerContent()), this.setupComponent(), n && A && A.parentNode && n.removeChild(A);
1923
+ })), this.closeBTN();
1924
+ }
1925
+ closeBTN() {
1926
+ const t = document.body.querySelectorAll(".close-btn"), e = Array.from(t);
1927
+ e.length > 0 && e.forEach((n) => {
1928
+ n.addEventListener("click", () => {
1506
1929
  this.cleanup(), this.closeModal();
1507
1930
  });
1508
1931
  });
1509
1932
  }
1510
1933
  displayTabLayout() {
1511
- const e = document.querySelectorAll(".tab-button"), t = document.querySelectorAll(".mob-tab-button"), n = document.querySelector(".box-container-method"), A = document.querySelector("#mob-container"), s = document.querySelector("#inner-mob-container"), i = document.querySelector("#mob-tab-co");
1512
- this.isMobile ? t && n && A && s && t.forEach((c) => {
1513
- c.addEventListener("click", (a) => {
1514
- if (a.currentTarget instanceof HTMLElement && a.currentTarget.dataset.tab) {
1515
- const l = parseInt(a.currentTarget.dataset.tab);
1516
- this.updatePaymentMethodView(
1517
- this.merchantKey,
1518
- this.email,
1519
- this.amount
1520
- ), this.setCurrentPaymentMethod(l), A.removeChild(s), this.cleanup(), E.forEach((C, m) => {
1521
- this.currentPaymentMethod === m && i && (i.innerHTML = `
1934
+ const t = document.querySelectorAll(".tab-button"), e = document.querySelectorAll(".mob-tab-button"), n = document.querySelector(".box-container-method"), A = document.querySelector("#mob-container"), s = document.querySelector("#inner-mob-container"), c = document.querySelector("#mob-tab-co");
1935
+ this.isMobile ? e && n && A && s && e.forEach((i) => {
1936
+ i.addEventListener("click", (r) => {
1937
+ if (r.currentTarget instanceof HTMLElement && r.currentTarget.dataset.tab) {
1938
+ const l = parseInt(r.currentTarget.dataset.tab);
1939
+ this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.setCurrentPaymentMethod(l), A.removeChild(s), this.cleanup(), g.forEach((C, p) => {
1940
+ this.currentPaymentMethod === p && c && (c.innerHTML = `
1522
1941
  <div id="mob-tab-c" class="w-full pt-2 px-5 md:hidden">
1523
1942
  <div>
1524
- <button class="pt-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${m}">
1943
+ <button class="pt-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${p}">
1525
1944
  <div class="min-w-8 mr-2 align-center">
1526
1945
  ${C.icon}
1527
1946
  </div>
@@ -1533,44 +1952,52 @@ class c1 {
1533
1952
  }), this.renderPaymentMethodContent(), this.attachInputListeners();
1534
1953
  }
1535
1954
  });
1536
- }) : e && n && e.forEach((c) => {
1537
- c.addEventListener("click", (a) => {
1538
- if (a.currentTarget instanceof HTMLElement && a.currentTarget.dataset.tab) {
1539
- const l = parseInt(a.currentTarget.dataset.tab);
1955
+ }) : t && n && t.forEach((i) => {
1956
+ i.addEventListener("click", (r) => {
1957
+ if (r.currentTarget instanceof HTMLElement && r.currentTarget.dataset.tab) {
1958
+ const l = parseInt(r.currentTarget.dataset.tab);
1540
1959
  this.switchTab(l);
1541
1960
  }
1542
1961
  });
1543
1962
  }), this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.renderPaymentMethodContent(), this.attachInputListeners(), this.setCurrentPaymentMethod(this.currentPaymentMethod);
1544
1963
  }
1545
- updatePaymentMethodView(e, t, n) {
1964
+ updatePaymentMethodView(t, e, n) {
1546
1965
  switch (this.currentPaymentMethod) {
1547
1966
  case 0:
1548
- return this.card = new f(
1967
+ return this.card = new R(
1549
1968
  this.modalContainer,
1550
1969
  () => this.closeModal(),
1551
- e,
1552
1970
  t,
1971
+ this.encryption,
1972
+ e,
1553
1973
  n,
1554
- () => this.switchTab(1)
1974
+ () => this.switchTab(1),
1975
+ this.planId,
1976
+ this.onSuccess.bind(this)
1555
1977
  );
1556
1978
  case 1:
1557
- return this.transfer = new i1(
1979
+ return this.transfer = new E1(
1558
1980
  this.modalContainer,
1559
1981
  () => this.closeModal(),
1560
- e,
1561
1982
  t,
1562
- n
1983
+ e,
1984
+ n,
1985
+ this.planId,
1986
+ this.onSuccess.bind(this)
1563
1987
  );
1564
1988
  case 2:
1565
- return this.ussd = new a1();
1989
+ return this.ussd = new H(this.modalContainer);
1566
1990
  default:
1567
- return this.card = new f(
1991
+ return this.card = new R(
1568
1992
  this.modalContainer,
1569
1993
  () => this.closeModal(),
1570
- e,
1571
1994
  t,
1995
+ this.encryption,
1996
+ e,
1572
1997
  n,
1573
- () => this.switchTab(1)
1998
+ () => this.switchTab(1),
1999
+ this.planId,
2000
+ this.onSuccess.bind(this)
1574
2001
  );
1575
2002
  }
1576
2003
  }
@@ -1590,52 +2017,98 @@ class c1 {
1590
2017
  }
1591
2018
  })();
1592
2019
  }
1593
- setCurrentPaymentMethod(e) {
1594
- this.currentPaymentMethod = e;
1595
- const t = document.querySelectorAll(".tab-button");
2020
+ setCurrentPaymentMethod(t) {
2021
+ this.currentPaymentMethod = t;
2022
+ const e = document.querySelectorAll(".tab-button");
1596
2023
  let n = document.querySelectorAll(".content");
1597
2024
  const A = document.getElementById("mob-action-btns");
1598
- t.forEach((s) => s.classList.remove("active")), n.forEach((s) => s.classList.remove("active")), t[e] && t[e].classList.add("active"), n[e] && n[e].classList.add("active"), e !== 3 && A && (A.classList.remove("hidden"), A.classList.add("md:hidden"));
2025
+ e.forEach((s) => s.classList.remove("active")), n.forEach((s) => s.classList.remove("active")), e[t] && e[t].classList.add("active"), n[t] && n[t].classList.add("active"), t !== 3 && A && (A.classList.remove("hidden"), A.classList.add("md:hidden"));
1599
2026
  }
1600
- switchTab(e) {
1601
- this.setCurrentPaymentMethod(e), this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.cleanup(), this.renderPaymentMethodContent(), this.attachInputListeners();
2027
+ switchTab(t) {
2028
+ this.setCurrentPaymentMethod(t), this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.cleanup(), this.renderPaymentMethodContent(), this.attachInputListeners();
2029
+ }
2030
+ setupComponent() {
2031
+ const t = document.getElementById("merchantLogo"), e = document.getElementById("merchantLogoMob"), n = document.getElementById("mob-action-btns"), A = document.getElementById("merchant-email"), s = document.querySelector("#mob-container");
2032
+ if (A && (A.innerHTML = this.email), this.isMobile) {
2033
+ e && e.setAttribute("src", I), s && (s.innerHTML = this.mobileContainerContent());
2034
+ let c = document.querySelector(".mob-options");
2035
+ c && this.viewMobileOptions(c);
2036
+ const i = document.querySelectorAll(".mob-tab-button");
2037
+ g.forEach((r, l) => {
2038
+ const C = i[l];
2039
+ C && (C.dataset.tab = l.toString(), C.addEventListener("click", () => {
2040
+ this.setCurrentPaymentMethod(l);
2041
+ }));
2042
+ }), n && this.currentPaymentMethod === 3 && (n.classList.add("hidden"), n.classList.remove("md:hidden"));
2043
+ } else {
2044
+ t && t.setAttribute("src", I);
2045
+ let c = document.querySelector(".payment-options");
2046
+ c && (c.innerHTML = `<div>
2047
+ ${g.filter((r) => {
2048
+ var l;
2049
+ return (((l = this.merchantPlanDetail) == null ? void 0 : l.paymentMethods) || []).includes(r.key);
2050
+ }).map(
2051
+ (r, l) => `
2052
+ <div class="tab">
2053
+ <button class="tab-button group" data-tab="${l}">
2054
+ <div class="min-w-8 md:container-center lg:block">
2055
+ ${r.icon}
2056
+ </div>
2057
+ <span>${r.label}</span>
2058
+ </button>
2059
+ </div>
2060
+ `
2061
+ ).join("")}
2062
+ </div>`);
2063
+ const i = document.querySelectorAll(".tab-button");
2064
+ g.forEach((r, l) => {
2065
+ const C = i[l];
2066
+ if (C) {
2067
+ const p = C.querySelector(".tab-button-icon"), m = C.querySelector(".tab-button-label");
2068
+ p && (p.innerHTML = r.icon), m && (m.textContent = r.label), C.dataset.tab = l.toString(), C.addEventListener("click", () => {
2069
+ this.setCurrentPaymentMethod(l);
2070
+ });
2071
+ }
2072
+ });
2073
+ }
2074
+ this.displayTabLayout();
1602
2075
  }
1603
- setup() {
1604
- const e = document.getElementById("merchantLogo"), t = document.getElementById("merchantLogoMob"), n = document.getElementById("mob-action-btns"), A = document.getElementById("merchant-email"), s = document.querySelector("#mob-container");
2076
+ _setup() {
2077
+ const t = document.getElementById("merchantLogo"), e = document.getElementById("merchantLogoMob"), n = document.getElementById("mob-action-btns"), A = document.getElementById("merchant-email"), s = document.querySelector("#mob-container");
1605
2078
  if (A && (A.innerHTML = this.email), this.isMobile) {
1606
- t && t.setAttribute("src", M), s && (s.innerHTML = this.mobileContainerContent());
1607
- let i = document.querySelector(".mob-options");
1608
- i && this.viewMobileOptions(i);
1609
- const c = document.querySelectorAll(".mob-tab-button");
1610
- E.forEach((a, l) => {
1611
- const C = c[l];
2079
+ e && e.setAttribute("src", I), s && (s.innerHTML = this.mobileContainerContent());
2080
+ let c = document.querySelector(".mob-options");
2081
+ c && this.viewMobileOptions(c);
2082
+ const i = document.querySelectorAll(".mob-tab-button");
2083
+ g.forEach((r, l) => {
2084
+ const C = i[l];
1612
2085
  C && (C.dataset.tab = l.toString(), C.addEventListener("click", () => {
1613
2086
  this.setCurrentPaymentMethod(l);
1614
2087
  }));
1615
2088
  }), n && this.currentPaymentMethod === 3 && (n.classList.add("hidden"), n.classList.remove("md:hidden"));
1616
2089
  } else {
1617
- e && e.setAttribute("src", M);
1618
- let i = document.querySelector(".payment-options");
1619
- i && (i.innerHTML = `<div>
1620
- ${E.map(
1621
- (a, l) => `
2090
+ t && t.setAttribute("src", I);
2091
+ let c = document.querySelector(".payment-options");
2092
+ c && (c.innerHTML = `<div>
2093
+ ${g.map(
2094
+ (r, l) => `
1622
2095
  <div class="tab">
1623
2096
  <button class="tab-button group" data-tab="${l}">
1624
2097
  <div class="min-w-8 md:container-center lg:block">
1625
- ${a.icon}
2098
+ ${r.icon}
1626
2099
  </div>
1627
- <span>${a.label}</span>
2100
+ <span>${r.label}</span>
1628
2101
  </button>
1629
2102
  </div>
1630
2103
  `
1631
2104
  ).join("")}
1632
2105
  </div>`);
1633
- const c = document.querySelectorAll(".tab-button");
1634
- E.forEach((a, l) => {
1635
- const C = c[l];
2106
+ const i = document.querySelectorAll(".tab-button");
2107
+ g.forEach((r, l) => {
2108
+ const C = i[l];
1636
2109
  if (C) {
1637
- const m = C.querySelector(".tab-button-icon"), d = C.querySelector(".tab-button-label");
1638
- m && (m.innerHTML = a.icon), d && (d.textContent = a.label), C.dataset.tab = l.toString(), C.addEventListener("click", () => {
2110
+ const p = C.querySelector(".tab-button-icon"), m = C.querySelector(".tab-button-label");
2111
+ p && (p.innerHTML = r.icon), m && (m.textContent = r.label), C.dataset.tab = l.toString(), C.addEventListener("click", () => {
1639
2112
  this.setCurrentPaymentMethod(l);
1640
2113
  });
1641
2114
  }
@@ -1664,16 +2137,19 @@ class c1 {
1664
2137
  </div>
1665
2138
  </div>`;
1666
2139
  }
1667
- viewMobileOptions(e) {
1668
- e.innerHTML = `
1669
- ${E.map(
1670
- (t, n) => `
2140
+ viewMobileOptions(t) {
2141
+ t.innerHTML = `
2142
+ ${g.filter((e) => {
2143
+ var n;
2144
+ return (((n = this.merchantPlanDetail) == null ? void 0 : n.paymentMethods) || []).includes(e.key);
2145
+ }).map(
2146
+ (e, n) => `
1671
2147
  <div class="tab">
1672
2148
  <button class="mob-tab-button py-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${n}">
1673
2149
  <div class="min-w-8 mr-3 align-center">
1674
- ${t.icon}
2150
+ ${e.icon}
1675
2151
  </div>
1676
- <span>${t.label}</span>
2152
+ <span>${e.label}</span>
1677
2153
  </button>
1678
2154
  </div>
1679
2155
  `
@@ -1682,10 +2158,134 @@ class c1 {
1682
2158
  cleanup() {
1683
2159
  this.transfer && this.transfer.destroyTimer();
1684
2160
  }
2161
+ closeModal(t) {
2162
+ this.modalContainer && this.modalContainer.parentNode && document.body.removeChild(this.modalContainer), t && t(), this.onClose && this.onClose();
2163
+ }
2164
+ setupParent(t) {
2165
+ t && t();
2166
+ }
2167
+ render() {
2168
+ return X;
2169
+ }
2170
+ }
2171
+ class S1 {
2172
+ constructor(t) {
2173
+ a(this, "container");
2174
+ this.container = t;
2175
+ }
2176
+ renderContent(t) {
2177
+ this.container.innerHTML = this.render();
2178
+ const e = document.getElementById("error-message-div");
2179
+ e && (e.classList.remove("hidden"), e.innerHTML = t || "Failed");
2180
+ }
2181
+ render() {
2182
+ return `
2183
+ <div class="box-container">
2184
+ <button type="button"
2185
+ 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>
2186
+ <div class="container-center h-[40vh] hidden mx-auto" id="shared-error-container">
2187
+ <img src="" alt="error gif" class=" h-[50px] w-16" />
2188
+ <div id="error-message-div" class="hidden"></div>
2189
+ </div>
2190
+ </div>
2191
+ `;
2192
+ }
2193
+ }
2194
+ class L1 {
2195
+ constructor(t) {
2196
+ a(this, "container");
2197
+ this.container = t;
2198
+ }
2199
+ renderContent() {
2200
+ return this.container;
2201
+ }
2202
+ mountLoader() {
2203
+ this.container.innerHTML = this.render();
2204
+ }
2205
+ updateMessage(t) {
2206
+ const e = document.getElementById("loader-message");
2207
+ e && (e.textContent = t, e.classList.remove("hidden"));
2208
+ }
2209
+ render() {
2210
+ return `
2211
+ <div class="box-container">
2212
+ <div class="container-center h-[40vh] hidden" id="loader">
2213
+ <img src="" alt="loader gif" />
2214
+ <div id="loader-message" class="hidden"></div>
2215
+ </div>
2216
+ </div>
2217
+ `;
2218
+ }
2219
+ }
2220
+ const v1 = "data:image/png;base64,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";
2221
+ class I1 {
2222
+ constructor(t) {
2223
+ a(this, "modalContainer");
2224
+ a(this, "currentPaymentMethod");
2225
+ a(this, "currentStep");
2226
+ a(this, "mainLayout");
2227
+ a(this, "onSuccess");
2228
+ a(this, "onClose");
2229
+ a(this, "encryption");
2230
+ // container: HTMLDivElement;
2231
+ a(this, "mainScreen");
2232
+ a(this, "mainError");
2233
+ a(this, "mainLoader");
2234
+ a(this, "merchantPlanDetail", {});
2235
+ a(this, "merchantKey");
2236
+ a(this, "planId");
2237
+ a(this, "email");
2238
+ a(this, "amount");
2239
+ a(this, "isMobile", !1);
2240
+ const { email: e, encryptionKey: n, merchantKey: A, planId: s, amount: c, onClose: i, onSuccess: r } = t;
2241
+ this.onSuccess = r || (() => null), this.onClose = i || (() => null), this.merchantKey = A || "", this.email = e || "", this.amount = c || 0, this.planId = s || "", this.encryption = n || "", this.modalContainer = document.createElement("div"), this.modalContainer.innerHTML = Z, document.body.appendChild(this.modalContainer), this.isMobile = window.matchMedia("(max-width: 767px)").matches, this.currentPaymentMethod = this.isMobile ? 3 : 0, this.currentStep = 1;
2242
+ const l = document.getElementById("main-layout-container-screen");
2243
+ if (!l) throw new Error("SDK Layout not available");
2244
+ this.mainLayout = l;
2245
+ }
2246
+ closeBTN() {
2247
+ const t = document.body.querySelectorAll(".close-btn"), e = Array.from(t);
2248
+ e.length > 0 && e.forEach((n) => {
2249
+ n.addEventListener("click", () => {
2250
+ this.closeModal();
2251
+ });
2252
+ });
2253
+ }
2254
+ setup(t) {
2255
+ var C;
2256
+ const { email: e, encryptionKey: n, merchantKey: A, planId: s, amount: c, onClose: i, onSuccess: r } = t;
2257
+ if (console.log({ onClose: i, onSuccess: r }), this.onSuccess = r || (() => null), this.onClose = i || (() => null), this.merchantKey = A || "", this.email = e || "", this.amount = c || 0, this.encryption = n || "", this.planId = s || "", !A || !e || !n)
2258
+ throw this.closeModal.bind(this), new Error("Merchant key or email or encryption key is required");
2259
+ this.mainScreen = new Q1(
2260
+ this.mainLayout,
2261
+ this.modalContainer,
2262
+ A,
2263
+ this.encryption,
2264
+ e,
2265
+ c,
2266
+ this.planId,
2267
+ this.onSuccess.bind(this),
2268
+ this.onClose.bind(this)
2269
+ ), this.mainLoader = new L1(this.mainLayout), this.mainError = new S1(this.mainLayout), this.mainLoader.mountLoader();
2270
+ const l = this.mainLayout.querySelector("#loader");
2271
+ l && (l.classList.remove("hidden"), l.parentElement.classList.add("mx-auto"), (C = l.querySelector("img")) == null || C.setAttribute("src", b)), this.getPlanDetails();
2272
+ }
2273
+ getPlanDetails() {
2274
+ P(this.merchantKey, this.planId).then((t) => {
2275
+ this.merchantPlanDetail = t, this.mainScreen.mountScreen(this.merchantPlanDetail);
2276
+ }).catch((t) => {
2277
+ var n;
2278
+ this.mainError.renderContent((t == null ? void 0 : t.message) || "Failed to called payment");
2279
+ const e = this.mainLayout.querySelector("#shared-error-container");
2280
+ e && (e.classList.remove("hidden"), e.parentElement.classList.add("mx-auto"), (n = e.querySelector("img")) == null || n.setAttribute("src", v1)), console.error({ err: t }), this.closeBTN();
2281
+ }).finally(() => {
2282
+ console.log("plan detail merchant informatio reached");
2283
+ });
2284
+ }
1685
2285
  closeModal() {
1686
- this.modalContainer && this.modalContainer.parentNode && document.body.removeChild(this.modalContainer);
2286
+ this.modalContainer && this.modalContainer.parentNode && document.body.removeChild(this.modalContainer), this.mainScreen.closeModal(), this.onClose && this.onClose();
1687
2287
  }
1688
2288
  }
1689
2289
  export {
1690
- c1 as CheckoutForm
2290
+ I1 as CheckoutForm
1691
2291
  };