@spot-flow/checkout-inline-js 0.0.7 → 0.1.14
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.
- package/dist/api.d.ts +3 -1
- package/dist/checkout-class.d.ts +13 -16
- package/dist/checkout-inline.es.js +1192 -883
- package/dist/checkout-inline.js +379 -359
- package/dist/decorators/property.d.ts +1 -0
- package/dist/index.css +1 -1
- package/dist/modules/Card.d.ts +12 -3
- package/dist/modules/Ussd.d.ts +6 -1
- package/dist/types/types.d.ts +27 -1
- package/dist/utils/encryption.d.ts +8 -0
- package/dist/utils/number-format.d.ts +8 -0
- package/dist/views/card/card-detail-form.d.ts +26 -0
- package/dist/views/card/card-otp-validation-form.d.ts +5 -0
- package/dist/views/card/card-pin-form.d.ts +5 -0
- package/dist/views/shared/main-page.d.ts +39 -0
- package/dist/views/shared/page-loader.d.ts +8 -0
- package/dist/views/shared/shared-error-page.d.ts +6 -0
- package/dist/views/ussd/ussd-bank-detail-form.d.ts +9 -0
- package/dist/views/ussd/ussd-view-code.d.ts +5 -0
- package/package.json +3 -2
|
@@ -1,471 +1,134 @@
|
|
|
1
|
-
import './index.css';var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
const
|
|
1
|
+
import './index.css';var P = Object.defineProperty;
|
|
2
|
+
var j = (r, t, e) => t in r ? P(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
|
|
3
|
+
var a = (r, t, e) => j(r, typeof t != "symbol" ? t + "" : t, e);
|
|
4
|
+
const X = `<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
|
-
<
|
|
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
16
|
|
|
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
17
|
|
|
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
18
|
</div>
|
|
221
19
|
|
|
222
|
-
<div class="container-center mt-8">
|
|
223
|
-
<button class="pin-cancel close-btn">Cancel</button>
|
|
224
|
-
</div>
|
|
225
20
|
</div>
|
|
226
21
|
</div>
|
|
227
22
|
</div>
|
|
228
23
|
</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
|
-
|
|
254
|
-
<div class="py-5">
|
|
255
|
-
<p class="otp-subtext">
|
|
256
|
-
A token should be sent to you within 6 minutes
|
|
257
|
-
</p>
|
|
258
|
-
</div>
|
|
259
|
-
|
|
260
|
-
<div class="container-center">
|
|
261
|
-
<button class="pin-cancel">Cancel</button>
|
|
262
|
-
</div>
|
|
263
|
-
</div>
|
|
264
|
-
</div>
|
|
265
|
-
</div>
|
|
266
|
-
</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
|
|
323
|
-
constructor(
|
|
324
|
-
super(
|
|
25
|
+
class d extends Error {
|
|
26
|
+
constructor(t, e) {
|
|
27
|
+
super(t), this.status = e, this.name = "FetchError";
|
|
325
28
|
}
|
|
326
29
|
}
|
|
327
|
-
class
|
|
328
|
-
constructor(
|
|
329
|
-
super(
|
|
30
|
+
class u extends Error {
|
|
31
|
+
constructor(t) {
|
|
32
|
+
super(t), this.name = "AuthorizationError";
|
|
330
33
|
}
|
|
331
34
|
}
|
|
332
|
-
const
|
|
35
|
+
const B = (r) => {
|
|
333
36
|
if (!r)
|
|
334
|
-
throw new
|
|
335
|
-
const
|
|
336
|
-
return
|
|
337
|
-
},
|
|
37
|
+
throw new u("Missing authorization token");
|
|
38
|
+
const t = new Headers();
|
|
39
|
+
return t.append("Content-Type", "application/json"), t.append("Authorization", `Bearer ${r}`), t;
|
|
40
|
+
}, w = "https://dev-api.spotflow.one/api/v1", $ = async (r, t) => {
|
|
338
41
|
try {
|
|
339
|
-
const
|
|
42
|
+
const e = B(r), A = await fetch(`${w}/payments`, {
|
|
340
43
|
method: "POST",
|
|
341
|
-
headers:
|
|
342
|
-
body: JSON.stringify(
|
|
44
|
+
headers: e,
|
|
45
|
+
body: JSON.stringify(t)
|
|
343
46
|
});
|
|
344
|
-
if (!
|
|
345
|
-
const s = await
|
|
346
|
-
throw s.message ? new
|
|
47
|
+
if (!A.ok) {
|
|
48
|
+
const s = await A.json();
|
|
49
|
+
throw s.message ? new d(s.message, A.status) : new d("Network response was not ok", A.status);
|
|
347
50
|
}
|
|
348
|
-
return await
|
|
349
|
-
} catch (
|
|
350
|
-
throw
|
|
51
|
+
return await A.json();
|
|
52
|
+
} catch (e) {
|
|
53
|
+
throw e instanceof d ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof u ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
|
|
351
54
|
}
|
|
352
|
-
},
|
|
55
|
+
}, _ = async (r, t) => {
|
|
353
56
|
try {
|
|
354
|
-
const
|
|
57
|
+
const e = B(r), A = await fetch(`${w}/payments/authorize`, {
|
|
355
58
|
method: "POST",
|
|
356
|
-
headers:
|
|
357
|
-
body: JSON.stringify(
|
|
59
|
+
headers: e,
|
|
60
|
+
body: JSON.stringify(t)
|
|
358
61
|
});
|
|
359
|
-
if (!
|
|
360
|
-
const s = await
|
|
361
|
-
throw s.message ? new
|
|
62
|
+
if (!A.ok) {
|
|
63
|
+
const s = await A.json();
|
|
64
|
+
throw s.message ? new d(s.message, A.status) : new d("Network response was not ok", A.status);
|
|
362
65
|
}
|
|
363
|
-
return await
|
|
364
|
-
} catch (
|
|
365
|
-
throw
|
|
66
|
+
return await A.json();
|
|
67
|
+
} catch (e) {
|
|
68
|
+
throw e instanceof d ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof u ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
|
|
366
69
|
}
|
|
367
|
-
},
|
|
70
|
+
}, t1 = async (r, t) => {
|
|
368
71
|
try {
|
|
369
|
-
const
|
|
72
|
+
const e = B(r), A = await fetch(`${w}/payments/validate`, {
|
|
370
73
|
method: "POST",
|
|
371
|
-
headers:
|
|
372
|
-
body: JSON.stringify(
|
|
74
|
+
headers: e,
|
|
75
|
+
body: JSON.stringify(t)
|
|
373
76
|
});
|
|
374
|
-
if (!
|
|
375
|
-
const s = await
|
|
376
|
-
throw s.message ? new
|
|
77
|
+
if (!A.ok) {
|
|
78
|
+
const s = await A.json();
|
|
79
|
+
throw s.message ? new d(s.message, A.status) : new d("Network response was not ok", A.status);
|
|
377
80
|
}
|
|
378
|
-
return await
|
|
379
|
-
} catch (
|
|
380
|
-
throw
|
|
81
|
+
return await A.json();
|
|
82
|
+
} catch (e) {
|
|
83
|
+
throw e instanceof d ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof u ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
|
|
381
84
|
}
|
|
382
|
-
},
|
|
85
|
+
}, e1 = async (r, t) => {
|
|
383
86
|
try {
|
|
384
|
-
const
|
|
87
|
+
const e = B(r), A = await fetch(`${w}/payments`, {
|
|
385
88
|
method: "POST",
|
|
386
|
-
headers:
|
|
387
|
-
body: JSON.stringify(
|
|
89
|
+
headers: e,
|
|
90
|
+
body: JSON.stringify(t)
|
|
91
|
+
});
|
|
92
|
+
if (!A.ok) {
|
|
93
|
+
const s = await A.json();
|
|
94
|
+
throw s.message ? new d(s.message, A.status) : new d("Network response was not ok", A.status);
|
|
95
|
+
}
|
|
96
|
+
return await A.json();
|
|
97
|
+
} catch (e) {
|
|
98
|
+
throw e instanceof d ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof u ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
|
|
99
|
+
}
|
|
100
|
+
}, N = async (r, t, e) => {
|
|
101
|
+
try {
|
|
102
|
+
const A = B(r), n = await fetch(`${w}/payments/verify?reference=${t}`, {
|
|
103
|
+
method: "GET",
|
|
104
|
+
headers: A,
|
|
105
|
+
signal: e
|
|
388
106
|
});
|
|
389
107
|
if (!n.ok) {
|
|
390
|
-
const
|
|
391
|
-
throw
|
|
108
|
+
const i = await n.json();
|
|
109
|
+
throw i.message ? new d(i.message, n.status) : new d("Network response was not ok", n.status);
|
|
392
110
|
}
|
|
393
111
|
return await n.json();
|
|
394
|
-
} catch (
|
|
395
|
-
throw
|
|
112
|
+
} catch (A) {
|
|
113
|
+
throw A instanceof d ? console.error(`FetchError: ${A.message} (status: ${A.status})`) : A instanceof u ? console.error(`AuthorizationError: ${A.message}`) : console.error(`Unexpected error: ${A}`), A;
|
|
396
114
|
}
|
|
397
|
-
}
|
|
115
|
+
};
|
|
116
|
+
async function A1(r, t) {
|
|
398
117
|
try {
|
|
399
|
-
const
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
signal: t
|
|
118
|
+
const e = B(r), A = await fetch(`${w}/checkout-configurations?planId=${t || ""}`, {
|
|
119
|
+
headers: e,
|
|
120
|
+
method: "GET"
|
|
403
121
|
});
|
|
404
122
|
if (!A.ok) {
|
|
405
|
-
const
|
|
406
|
-
throw
|
|
123
|
+
const n = await A.json();
|
|
124
|
+
throw n.message ? new d(n.message, A.status) : new d("Network response was not ok", A.status);
|
|
407
125
|
}
|
|
408
|
-
return
|
|
409
|
-
} catch (
|
|
410
|
-
throw
|
|
126
|
+
return A.json();
|
|
127
|
+
} catch (e) {
|
|
128
|
+
throw e instanceof d ? console.error(`FetchError: ${e.message} (status: ${e.status})`) : e instanceof u ? console.error(`AuthorizationError: ${e.message}`) : console.error(`Unexpected error: ${e}`), e;
|
|
411
129
|
}
|
|
412
|
-
}
|
|
413
|
-
|
|
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);
|
|
463
|
-
}
|
|
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 = [
|
|
130
|
+
}
|
|
131
|
+
const E = [
|
|
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: "
|
|
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
|
-
],
|
|
163
|
+
], n1 = [
|
|
501
164
|
{
|
|
502
165
|
name: "First City Monument Bank",
|
|
503
166
|
code: "*329#"
|
|
@@ -506,7 +169,7 @@ const y = (r) => {
|
|
|
506
169
|
name: "First Bank",
|
|
507
170
|
code: "*268#"
|
|
508
171
|
}
|
|
509
|
-
],
|
|
172
|
+
], m = [
|
|
510
173
|
{
|
|
511
174
|
name: "MasterCard",
|
|
512
175
|
icon: `<svg width="24" height="14" viewBox="0 0 24 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
@@ -577,132 +240,395 @@ const y = (r) => {
|
|
|
577
240
|
</svg>
|
|
578
241
|
`
|
|
579
242
|
}
|
|
580
|
-
]
|
|
581
|
-
class
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
243
|
+
], R = `<div id="checkoutcardpin">
|
|
244
|
+
<div class="box-container md:w-4/5 mx-auto py-8 md:py-16">
|
|
245
|
+
<div class="container-center h-[20vh] hidden" id="loader">
|
|
246
|
+
<img src="" alt="loader gif" />
|
|
247
|
+
</div>
|
|
248
|
+
<div id="pin-content">
|
|
249
|
+
<h5 class="pin-text">
|
|
250
|
+
Please enter your 4-digit card pin to authorize this payment
|
|
251
|
+
</h5>
|
|
252
|
+
|
|
253
|
+
<div class="mt-8">
|
|
254
|
+
<div class="pin-container">
|
|
255
|
+
<input type="tel" class="pin-input" maxlength="1" id="pin1" />
|
|
256
|
+
<input type="tel" class="pin-input" maxlength="1" id="pin2" />
|
|
257
|
+
<input type="tel" class="pin-input" maxlength="1" id="pin3" />
|
|
258
|
+
<input type="tel" class="pin-input" maxlength="1" id="pin4" />
|
|
259
|
+
</div>
|
|
260
|
+
|
|
261
|
+
<div class="container-center mt-8">
|
|
262
|
+
<button class="pin-cancel close-btn">Cancel</button>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
`, k = `<div id="checkoutcardotp">
|
|
269
|
+
<div class="box-containe w-11/12 md:w-4/5 mx-auto py-8 md:py-16">
|
|
270
|
+
<div class="container-center h-[20vh] hidden" id="loader">
|
|
271
|
+
<img src="" alt="loader gif" />
|
|
272
|
+
</div>
|
|
273
|
+
<div id="otp-content">
|
|
274
|
+
<h5 class="otp-text">Kindly enter the OTP sent to 234249***3875</h5>
|
|
275
|
+
|
|
276
|
+
<div class="mt-8">
|
|
277
|
+
<div class="relative w-full grid grid-cols-1 md:grid-cols-3 gap-7 md:gap-5">
|
|
278
|
+
<div class="col-span-2">
|
|
279
|
+
<input
|
|
280
|
+
class="otp-input"
|
|
281
|
+
type="tel"
|
|
282
|
+
id="card-otp"
|
|
283
|
+
name="otp"
|
|
284
|
+
required
|
|
285
|
+
/>
|
|
286
|
+
</div>
|
|
287
|
+
|
|
288
|
+
<div class="max-sm:text-center max-sm:w-4/5 max-sm:mx-auto">
|
|
289
|
+
<button class="otp-button" disabled="true">Authorize</button>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
|
|
293
|
+
<div class="py-5">
|
|
294
|
+
<p class="otp-subtext">
|
|
295
|
+
A token should be sent to you within 6 minutes
|
|
296
|
+
</p>
|
|
297
|
+
</div>
|
|
298
|
+
|
|
299
|
+
<div class="container-center">
|
|
300
|
+
<button class="pin-cancel">Cancel</button>
|
|
301
|
+
</div>
|
|
302
|
+
</div>
|
|
303
|
+
</div>
|
|
304
|
+
</div>
|
|
305
|
+
</div>
|
|
306
|
+
`, f = `<div id="paymentWarning">
|
|
307
|
+
<div class="box-container">
|
|
308
|
+
<div class="text-center mt-7">
|
|
309
|
+
<svg
|
|
310
|
+
class="mx-auto"
|
|
311
|
+
width="48"
|
|
312
|
+
height="46"
|
|
313
|
+
viewBox="0 0 48 46"
|
|
314
|
+
fill="none"
|
|
315
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
316
|
+
>
|
|
317
|
+
<path
|
|
318
|
+
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"
|
|
319
|
+
fill="#FF9B00"
|
|
320
|
+
/>
|
|
321
|
+
</svg>
|
|
322
|
+
|
|
323
|
+
<p id="payment-warning-text" class="warning-text"></p>
|
|
324
|
+
</div>
|
|
325
|
+
|
|
326
|
+
<div class="warning-list box-container">
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
</div>
|
|
330
|
+
`, v = `<div id="paymentSuccess">
|
|
331
|
+
<div class="box-container">
|
|
332
|
+
<div class="text-center mt-7"></div>
|
|
333
|
+
<svg class="mx-auto" width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
334
|
+
<circle cx="50" cy="50" r="50" fill="#D6F1E4" />
|
|
335
|
+
<circle opacity="0.52" cx="49.5" cy="49.5" r="37.5" fill="#99DDBC" />
|
|
336
|
+
<ellipse cx="48.4502" cy="48.45" rx="23.25" ry="23.25" fill="white" />
|
|
337
|
+
<path
|
|
338
|
+
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"
|
|
339
|
+
fill="#54C68F" />
|
|
340
|
+
</svg>
|
|
341
|
+
|
|
342
|
+
<h5 class="success-text">
|
|
343
|
+
Your payment has been received
|
|
344
|
+
</h5>
|
|
345
|
+
</div>
|
|
346
|
+
|
|
347
|
+
<div class="mt-12 mx-auto w-3/5">
|
|
348
|
+
<button class="success-button close-btn">
|
|
349
|
+
Close
|
|
350
|
+
</button>
|
|
351
|
+
</div>
|
|
352
|
+
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
355
|
+
</div>`, F = `<div class="box-container">
|
|
356
|
+
<div class="container-center h-[40vh] hidden" id="loader">
|
|
357
|
+
<img src="" alt="loader gif" />
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
`, G = () => {
|
|
361
|
+
const r = Date.now().toString(36), t = "xxxx-xxxx-xxx-xxxx".replace(/[x]/g, () => Math.floor(Math.random() * 16).toString(16));
|
|
362
|
+
return `SPF-${r}-${t}`.toUpperCase();
|
|
363
|
+
}, M = (r = "") => r.replace(/\D+/g, ""), V = (r) => {
|
|
364
|
+
if (!r)
|
|
365
|
+
return r;
|
|
366
|
+
const t = M(r);
|
|
367
|
+
return `${t.slice(0, 4)} ${t.slice(
|
|
368
|
+
4,
|
|
369
|
+
8
|
|
370
|
+
)} ${t.slice(8, 12)} ${t.slice(12, 16)}`.trim();
|
|
371
|
+
}, J = (r) => M(r).slice(0, 3), O = (r) => {
|
|
372
|
+
const t = M(r);
|
|
373
|
+
return t.length >= 3 ? `${t.slice(0, 2)} / ${t.slice(2, 4)}` : t;
|
|
374
|
+
}, s1 = (r) => {
|
|
375
|
+
if (!r)
|
|
376
|
+
return r;
|
|
377
|
+
const t = M(r);
|
|
378
|
+
return `${t.slice(0, 4)}${t.slice(
|
|
379
|
+
4,
|
|
380
|
+
8
|
|
381
|
+
)}${t.slice(8, 12)}${t.slice(12, 16)}`.trim();
|
|
382
|
+
}, S = (r) => {
|
|
383
|
+
const t = Math.floor(r / 60), e = r % 60;
|
|
384
|
+
return `${String(t).padStart(2, "0")}:${String(e).padStart(2, "0")}`;
|
|
385
|
+
}, Z = (r) => {
|
|
386
|
+
r = r.replace(/\D/g, "");
|
|
387
|
+
const t = {
|
|
388
|
+
Visa: /^4/,
|
|
389
|
+
MasterCard: /^5[1-5]|^2(2[2-9]|[3-6]|7[01])/,
|
|
390
|
+
"American Express": /^3[47]/,
|
|
391
|
+
Discover: /^6(?:011|5|4[4-9]|22)/,
|
|
392
|
+
UnionPay: /^62/,
|
|
393
|
+
Verve: /^506099|^5061[0-8]|^50619|^6500[02]|^5078[6-9]|^65003[1-3]/
|
|
394
|
+
};
|
|
395
|
+
for (const [e, A] of Object.entries(t))
|
|
396
|
+
if (A.test(r))
|
|
397
|
+
return e;
|
|
398
|
+
return "Unknown";
|
|
399
|
+
}, i1 = (r, t) => {
|
|
400
|
+
const e = document.createElement("div");
|
|
401
|
+
e.classList.add("toast", t);
|
|
402
|
+
const A = document.createElement("span");
|
|
403
|
+
A.textContent = r, e.appendChild(A);
|
|
404
|
+
const n = document.createElement("span");
|
|
405
|
+
return n.textContent = "×", n.classList.add("close-btn"), n.onclick = () => Y(e), e.appendChild(n), e;
|
|
406
|
+
}, h = (r, t, e = 3e3) => {
|
|
407
|
+
const A = document.getElementById("toast-container");
|
|
408
|
+
if (A) {
|
|
409
|
+
const n = i1(r, t);
|
|
410
|
+
A.appendChild(n), n.offsetHeight, n.classList.add("show"), setTimeout(() => Y(n), e);
|
|
411
|
+
}
|
|
412
|
+
}, Y = (r) => {
|
|
413
|
+
r.classList.remove("show"), r.addEventListener("transitionend", () => {
|
|
414
|
+
r.parentElement && r.parentElement.removeChild(r);
|
|
415
|
+
});
|
|
416
|
+
}, b = "data:image/gif;base64,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", H = (r, t) => {
|
|
417
|
+
const e = new Intl.NumberFormat("ng-NG", {
|
|
418
|
+
style: "decimal",
|
|
419
|
+
maximumFractionDigits: t || 0,
|
|
420
|
+
minimumFractionDigits: t || 0
|
|
421
|
+
});
|
|
422
|
+
return isNaN(parseFloat(e.format(r))) ? "-" : e.format(r);
|
|
423
|
+
};
|
|
424
|
+
class D {
|
|
425
|
+
constructor(t) {
|
|
426
|
+
a(this, "container");
|
|
427
|
+
a(this, "cardDetailsValues");
|
|
428
|
+
a(this, "creditCardTypes");
|
|
429
|
+
this.container = t, this.creditCardTypes = [...m], this.cardDetailsValues = {
|
|
430
|
+
number: "",
|
|
431
|
+
expiry: "",
|
|
432
|
+
cvv: ""
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
*
|
|
437
|
+
* @param func
|
|
438
|
+
*
|
|
439
|
+
pan: unFormatCreditCardNumber(this.cardDetailsValues.number),
|
|
440
|
+
cvv: this.cardDetailsValues.cvv,
|
|
441
|
+
expiryMonth: this.cardDetailsValues?.expiry.split("/")[0].trim(),
|
|
442
|
+
expiryYear: this.cardDetailsValues?.expiry.split("/")[1].trim(),
|
|
443
|
+
*/
|
|
444
|
+
attachListener(t) {
|
|
445
|
+
const e = document.querySelector('input[name="number"]'), A = document.querySelector('input[name="expiry"]'), n = document.querySelector('input[name="cvv"]'), s = document.querySelector(".details-form-button"), i = document.querySelector("#checkoutcard");
|
|
446
|
+
console.log({ button: s, cardNumberInput: e, formCard: i, cardExpiryInput: A }), e && e.addEventListener("input", (o) => this.handleInputChange(o, s)), A && A.addEventListener("input", (o) => this.handleInputChange(o, s)), n && n.addEventListener("input", (o) => this.handleInputChange(o, s)), i && i.addEventListener("submit", (o) => {
|
|
447
|
+
var c, C;
|
|
448
|
+
console.log("Submitted form here"), t && t(o)({
|
|
449
|
+
pan: s1(this.cardDetailsValues.number),
|
|
450
|
+
cvv: this.cardDetailsValues.cvv,
|
|
451
|
+
expiryMonth: (c = this.cardDetailsValues) == null ? void 0 : c.expiry.split("/")[0].trim(),
|
|
452
|
+
expiryYear: (C = this.cardDetailsValues) == null ? void 0 : C.expiry.split("/")[1].trim()
|
|
453
|
+
});
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
handleInputChange(t, e) {
|
|
457
|
+
const A = t.target, { name: n, value: s } = A;
|
|
458
|
+
let i = s;
|
|
459
|
+
n === "number" ? (i = V(s), this.filterCreditCardType(s)) : n === "expiry" ? i = O(s) : n === "cvv" && (i = J(s)), this.cardDetailsValues = {
|
|
460
|
+
...this.cardDetailsValues,
|
|
461
|
+
[n]: i
|
|
462
|
+
}, A.value = i, this.cardDetailsValues.number && this.cardDetailsValues.expiry && this.cardDetailsValues.cvv && e && e.removeAttribute("disabled");
|
|
463
|
+
}
|
|
464
|
+
displayCardTypes() {
|
|
465
|
+
requestAnimationFrame(() => {
|
|
466
|
+
const t = this.container.querySelector("#card-types");
|
|
467
|
+
this.creditCardTypes.length === 1 && this.creditCardTypes[0].name === "Unknown" ? m.forEach((e) => {
|
|
468
|
+
const A = document.createElement("div");
|
|
469
|
+
A.classList.add("card-type"), A.innerHTML = e.icon, t.appendChild(A);
|
|
470
|
+
}) : (t.innerHTML = "", this.creditCardTypes.forEach((e) => {
|
|
471
|
+
const A = document.createElement("div");
|
|
472
|
+
A.classList.add("card-type"), A.innerHTML = e.icon, t.appendChild(A);
|
|
473
|
+
}));
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
filterCreditCardType(t) {
|
|
477
|
+
t ? (this.creditCardTypes = m.filter((e) => e.name === Z(t)), this.creditCardTypes.length >= 1 ? this.displayCardTypes() : (this.creditCardTypes = [...m], this.displayCardTypes())) : (this.creditCardTypes = [...m], this.displayCardTypes());
|
|
478
|
+
}
|
|
479
|
+
renderContent() {
|
|
480
|
+
this.container.innerHTML = this.render();
|
|
481
|
+
}
|
|
482
|
+
render() {
|
|
483
|
+
return `
|
|
484
|
+
<form id="checkoutcard">
|
|
485
|
+
<div class="box-container">
|
|
486
|
+
<h5 class="content-heading">Enter your card details to pay</h5>
|
|
487
|
+
<div class="mt-8">
|
|
488
|
+
<div class="relative mx-4 md:mx-6 mb-4">
|
|
489
|
+
<span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">CARD NUMBER</span>
|
|
490
|
+
<div>
|
|
491
|
+
<input class="details-input-container" type="tel" id="card-number" name="number"
|
|
492
|
+
placeholder="0000 0000 0000 0000" required />
|
|
493
|
+
</div>
|
|
494
|
+
<div class="absolute right-3 top-1/2 -translate-y-2/4 max-sm:hidden">
|
|
495
|
+
<div id="card-types" class="align-center gap-2">
|
|
496
|
+
</div>
|
|
497
|
+
</div>
|
|
498
|
+
</div>
|
|
499
|
+
|
|
500
|
+
<div class="grid grid-cols-2 gap-4 my-4 mx-4 md:mx-6">
|
|
501
|
+
<div class="relative w-full">
|
|
502
|
+
<span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">CARD EXPIRY</span>
|
|
503
|
+
<div>
|
|
504
|
+
<input class="details-input-container" type="tel" id="card-expiry" name="expiry" placeholder="MM / YY"
|
|
505
|
+
required />
|
|
506
|
+
</div>
|
|
507
|
+
</div>
|
|
508
|
+
|
|
509
|
+
<div class="relative w-full">
|
|
510
|
+
<span class="absolute text-xs left-0 top-1 text-grey-100 pt-1 pb-1 px-3 tracking-[0.5px]">CVV</span>
|
|
511
|
+
<div>
|
|
512
|
+
<input class="details-input-container" type="tel" id="card-cvv" name="cvv" placeholder="123" required />
|
|
513
|
+
</div>
|
|
514
|
+
</div>
|
|
515
|
+
</div>
|
|
516
|
+
|
|
517
|
+
<div class="mx-4 md:mx-6 my-8">
|
|
518
|
+
<button type="submit" disabled="true" class="details-form-button">
|
|
519
|
+
<svg class="spinner hidden" id="spinner" viewBox="0 0 24 24">
|
|
520
|
+
<path
|
|
521
|
+
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">
|
|
522
|
+
</path>
|
|
523
|
+
</svg>
|
|
524
|
+
<span id="details-form-button-text"> Pay USD 0 </span>
|
|
525
|
+
</button>
|
|
526
|
+
</div>
|
|
527
|
+
</div>
|
|
528
|
+
</div>
|
|
529
|
+
</form>
|
|
530
|
+
|
|
531
|
+
`;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
async function r1(r, t) {
|
|
535
|
+
const e = Uint8Array.from(atob(t), (c) => c.charCodeAt(0));
|
|
536
|
+
console.log({ keyData: e });
|
|
537
|
+
const A = crypto.getRandomValues(new Uint8Array(12));
|
|
538
|
+
console.log({ iv: A });
|
|
539
|
+
const n = new TextEncoder().encode(r), s = await crypto.subtle.importKey("raw", e, { name: "AES-GCM" }, !1, ["encrypt"]);
|
|
540
|
+
console.log({ cryptoKey: s });
|
|
541
|
+
const i = await crypto.subtle.encrypt({ name: "AES-GCM", iv: A }, s, n), o = new Uint8Array(A.length + i.byteLength);
|
|
542
|
+
return o.set(A), o.set(new Uint8Array(i), A.length), console.log({ result: o }), btoa(String.fromCharCode.apply(null, o));
|
|
543
|
+
}
|
|
544
|
+
class K {
|
|
545
|
+
constructor(t, e, A, n, s, i, o) {
|
|
546
|
+
a(this, "cardDetailsValues");
|
|
547
|
+
a(this, "cardPin");
|
|
548
|
+
a(this, "cardOtp");
|
|
549
|
+
a(this, "contents");
|
|
550
|
+
a(this, "cardDetailForm");
|
|
551
|
+
a(this, "container");
|
|
552
|
+
a(this, "closeModal");
|
|
553
|
+
a(this, "email");
|
|
554
|
+
a(this, "token");
|
|
555
|
+
a(this, "amount");
|
|
556
|
+
a(this, "encryption");
|
|
557
|
+
a(this, "currency");
|
|
558
|
+
a(this, "_currentStep");
|
|
559
|
+
a(this, "activeRef");
|
|
560
|
+
a(this, "creditCardTypes");
|
|
561
|
+
a(this, "switchTab");
|
|
562
|
+
this.container = t, this.encryption = n, this.closeModal = e, this.token = A, this.email = s, this.amount = i, this._currentStep = 1, this.cardDetailsValues = {
|
|
597
563
|
number: "",
|
|
598
564
|
expiry: "",
|
|
599
565
|
cvv: ""
|
|
600
|
-
}, this.cardPin = "", this.cardOtp = "", this.activeRef = "", this.contents = document.querySelectorAll(".content"), this.creditCardTypes = [...
|
|
566
|
+
}, this.cardPin = "", this.cardOtp = "", this.activeRef = "", this.contents = document.querySelectorAll(".content"), this.creditCardTypes = [...m], this.switchTab = o, this.renderCardContent(), this.currentStep === 1 && this.displayCardTypes(), this.attachInputListeners();
|
|
601
567
|
}
|
|
602
568
|
displayCardTypes() {
|
|
603
569
|
requestAnimationFrame(() => {
|
|
604
|
-
const
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
const n = document.createElement("div");
|
|
612
|
-
n.classList.add("card-type"), n.innerHTML = t.icon, e.appendChild(n);
|
|
570
|
+
const t = this.container.querySelector("#card-types");
|
|
571
|
+
this.creditCardTypes.length === 1 && this.creditCardTypes[0].name === "Unknown" ? m.forEach((e) => {
|
|
572
|
+
const A = document.createElement("div");
|
|
573
|
+
A.classList.add("card-type"), A.innerHTML = e.icon, t.appendChild(A);
|
|
574
|
+
}) : (t.innerHTML = "", this.creditCardTypes.forEach((e) => {
|
|
575
|
+
const A = document.createElement("div");
|
|
576
|
+
A.classList.add("card-type"), A.innerHTML = e.icon, t.appendChild(A);
|
|
613
577
|
}));
|
|
614
578
|
});
|
|
615
579
|
}
|
|
616
580
|
get currentStep() {
|
|
617
581
|
return this._currentStep;
|
|
618
582
|
}
|
|
619
|
-
set currentStep(
|
|
620
|
-
this._currentStep =
|
|
583
|
+
set currentStep(t) {
|
|
584
|
+
this._currentStep = t, this.renderCardContent(), t === 1 && (this.displayCardTypes(), this.creditCardTypes = [...m]);
|
|
621
585
|
}
|
|
622
586
|
attachInputListeners() {
|
|
623
|
-
const e = this.container.querySelector(
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
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", () => {
|
|
587
|
+
const t = Array.from(this.container.querySelectorAll(".pin-input")), e = this.container.querySelector(".otp-input"), A = this.container.querySelector(".otp-button"), n = this.container.querySelector(".success-button"), s = this.container.querySelector("#go-to-card"), i = document.querySelector("#go-to-transfer");
|
|
588
|
+
t.forEach((o, c) => {
|
|
589
|
+
o.addEventListener("input", (C) => this.handlePinInputChange(C, c, t)), o.addEventListener("paste", (C) => this.handlePinPaste(C, t));
|
|
590
|
+
}), e && e.addEventListener("input", (o) => this.handleOtpInput(o, A)), A && A.addEventListener("click", (o) => this.submitOtp(o)), n && n.addEventListener("click", () => this.closeModal()), s && s.addEventListener("click", () => {
|
|
665
591
|
this.currentStep = 1;
|
|
666
|
-
}),
|
|
592
|
+
}), i && i.addEventListener("click", () => {
|
|
667
593
|
this.switchTab(1);
|
|
668
594
|
});
|
|
669
595
|
}
|
|
670
|
-
handleInputChange(
|
|
671
|
-
const
|
|
596
|
+
handleInputChange(t, e) {
|
|
597
|
+
const A = t.target, { name: n, value: s } = A;
|
|
672
598
|
let i = s;
|
|
673
|
-
|
|
599
|
+
n === "number" ? (i = V(s), this.filterCreditCardType(s)) : n === "expiry" ? i = O(s) : n === "cvv" && (i = J(s)), this.cardDetailsValues = {
|
|
674
600
|
...this.cardDetailsValues,
|
|
675
|
-
[
|
|
676
|
-
},
|
|
601
|
+
[n]: i
|
|
602
|
+
}, A.value = i, this.cardDetailsValues.number && this.cardDetailsValues.expiry && this.cardDetailsValues.cvv && e && e.removeAttribute("disabled");
|
|
677
603
|
}
|
|
678
604
|
handlePinRequest() {
|
|
679
605
|
if (this.cardPin.length === 4) {
|
|
680
|
-
const
|
|
606
|
+
const t = {
|
|
681
607
|
authorization: {
|
|
682
608
|
pin: this.cardPin
|
|
683
609
|
},
|
|
684
610
|
reference: this.activeRef
|
|
685
611
|
};
|
|
686
612
|
setTimeout(() => {
|
|
687
|
-
this.currentStep = 6, this.showLoader(),
|
|
688
|
-
|
|
689
|
-
}).catch((
|
|
690
|
-
h(
|
|
613
|
+
this.currentStep = 6, this.showLoader(), _(this.token, t).then((A) => {
|
|
614
|
+
A.status === "failed" ? (this.currentStep = 4, A.providerMessage ? (h(A.providerMessage, "error"), this.setPaymentError(A.providerMessage)) : (h("Payment failed", "error"), this.setPaymentError("Payment failed"))) : (h("Payment Authorized!", "success"), this.currentStep = 3);
|
|
615
|
+
}).catch((A) => {
|
|
616
|
+
h(A.message, "error"), this.currentStep = 4, this.setPaymentError("Payment failed");
|
|
691
617
|
});
|
|
692
618
|
}, 500);
|
|
693
619
|
}
|
|
694
620
|
}
|
|
695
|
-
handlePinInputChange(
|
|
696
|
-
this.cardPin = "",
|
|
621
|
+
handlePinInputChange(t, e, A) {
|
|
622
|
+
this.cardPin = "", t.target.value ? e < A.length - 1 && A[e + 1].focus() : e > 0 && A[e - 1].focus(), this.cardPin = A.map((i) => i.value).join(""), this.handlePinRequest();
|
|
697
623
|
}
|
|
698
624
|
showLoader() {
|
|
699
|
-
var
|
|
700
|
-
const
|
|
701
|
-
|
|
625
|
+
var e;
|
|
626
|
+
const t = this.container.querySelector("#loader");
|
|
627
|
+
t && (t.classList.remove("hidden"), (e = t.querySelector("img")) == null || e.setAttribute("src", b));
|
|
702
628
|
}
|
|
703
|
-
setPaymentError(
|
|
704
|
-
const
|
|
705
|
-
|
|
629
|
+
setPaymentError(t) {
|
|
630
|
+
const e = this.container.querySelector("#payment-warning-text"), A = this.container.querySelector(".warning-list");
|
|
631
|
+
e && (e.textContent = t), A && [
|
|
706
632
|
{
|
|
707
633
|
text: "Try again with your card",
|
|
708
634
|
action: "go-to-card"
|
|
@@ -712,127 +638,139 @@ class f {
|
|
|
712
638
|
action: "go-to-transfer"
|
|
713
639
|
}
|
|
714
640
|
].forEach(({ action: s, text: i }) => {
|
|
715
|
-
const
|
|
716
|
-
|
|
717
|
-
const
|
|
718
|
-
|
|
641
|
+
const o = document.createElement("button");
|
|
642
|
+
o.textContent = i, o.setAttribute("id", s), o.classList.add("warning-button");
|
|
643
|
+
const c = document.createElement("div");
|
|
644
|
+
c.appendChild(o), A.appendChild(c);
|
|
719
645
|
}), this.attachInputListeners();
|
|
720
646
|
}
|
|
721
|
-
handlePinPaste(
|
|
647
|
+
handlePinPaste(t, e) {
|
|
722
648
|
var s;
|
|
723
|
-
|
|
724
|
-
const
|
|
725
|
-
|
|
726
|
-
i.value =
|
|
649
|
+
t.preventDefault(), this.cardPin = "";
|
|
650
|
+
const n = (((s = t.clipboardData) == null ? void 0 : s.getData("text").trim()) || "").split("");
|
|
651
|
+
e.forEach((i, o) => {
|
|
652
|
+
i.value = n[o] || "";
|
|
727
653
|
});
|
|
728
|
-
for (let i = 0; i <
|
|
729
|
-
if (!
|
|
730
|
-
|
|
654
|
+
for (let i = 0; i < e.length; i++)
|
|
655
|
+
if (!e[i].value) {
|
|
656
|
+
e[i].focus();
|
|
731
657
|
break;
|
|
732
658
|
}
|
|
733
|
-
this.cardPin =
|
|
659
|
+
this.cardPin = e.map((i) => i.value).join(""), this.handlePinRequest();
|
|
734
660
|
}
|
|
735
|
-
handleOtpInput(
|
|
736
|
-
const
|
|
737
|
-
this.cardOtp = "", this.cardOtp =
|
|
661
|
+
handleOtpInput(t, e) {
|
|
662
|
+
const A = t.target, { value: n } = A;
|
|
663
|
+
this.cardOtp = "", this.cardOtp = n, this.cardOtp.length > 3 && e && e.removeAttribute("disabled");
|
|
738
664
|
}
|
|
739
|
-
submitOtp(
|
|
740
|
-
|
|
741
|
-
const
|
|
665
|
+
submitOtp(t) {
|
|
666
|
+
t.preventDefault();
|
|
667
|
+
const e = {
|
|
742
668
|
authorization: {
|
|
743
|
-
otp: this.
|
|
669
|
+
otp: this.cardOtp
|
|
744
670
|
},
|
|
745
671
|
reference: this.activeRef
|
|
746
672
|
};
|
|
747
|
-
this.currentStep = 6, this.showLoader(),
|
|
748
|
-
|
|
749
|
-
}).catch((
|
|
750
|
-
h(
|
|
673
|
+
this.currentStep = 6, this.showLoader(), t1(this.token, e).then((n) => {
|
|
674
|
+
n.status === "failed" ? (this.currentStep = 4, n.providerMessage ? (h(n.providerMessage, "error"), this.setPaymentError(n.providerMessage)) : (h("Payment failed", "error"), this.setPaymentError("Payment failed"))) : n.status === "successful" && (this.currentStep = 5);
|
|
675
|
+
}).catch((n) => {
|
|
676
|
+
h(n.message, "error"), this.currentStep = 4, this.setPaymentError("Payment failed");
|
|
751
677
|
});
|
|
752
678
|
}
|
|
753
|
-
async handleSubmit(e) {
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
const t = this.container.querySelector(".spinner"), n = this.container.querySelector(
|
|
757
|
-
"#details-form-button-text"
|
|
758
|
-
), A = {
|
|
679
|
+
async handleSubmit(t, e) {
|
|
680
|
+
t.preventDefault();
|
|
681
|
+
const A = this.container.querySelector(".spinner"), n = this.container.querySelector("#details-form-button-text"), s = await r1(JSON.stringify(e), this.encryption), i = {
|
|
759
682
|
amount: this.amount,
|
|
760
683
|
channel: "card",
|
|
761
684
|
currency: "USD",
|
|
762
685
|
customer: {
|
|
763
686
|
email: this.email
|
|
764
687
|
},
|
|
765
|
-
reference:
|
|
766
|
-
card: {
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
expiryYear: (c = this.cardDetailsValues) == null ? void 0 : c.expiry.split("/")[1].trim()
|
|
771
|
-
}
|
|
688
|
+
reference: G(),
|
|
689
|
+
// card: {
|
|
690
|
+
// ..._values,
|
|
691
|
+
// },
|
|
692
|
+
encryptedCard: s
|
|
772
693
|
};
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
}).catch((
|
|
776
|
-
h(
|
|
694
|
+
console.log({ payload: i }), A && n && (A.classList.remove("hidden"), n.classList.add("hidden")), $(this.token, i).then((c) => {
|
|
695
|
+
c.status === "failed" ? (this.currentStep = 4, c.providerMessage ? (h(c.providerMessage, "error"), this.setPaymentError(c.providerMessage)) : (h("Payment failed", "error"), this.setPaymentError("Payment failed"))) : c.status === "pending_authorization" ? (h("Payment Created!", "success"), this.activeRef = c.reference, this.currentStep = 2) : c.status === "pending_validation" && c.authorization.mode === "3DS" && c.authorization.redirectUrl && (this.activeRef = c.reference, this.redirectTo3DS(c.authorization.redirectUrl));
|
|
696
|
+
}).catch((c) => {
|
|
697
|
+
h(c.message, "error"), this.currentStep = 4, this.setPaymentError("Payment failed");
|
|
777
698
|
}).finally(() => {
|
|
778
|
-
|
|
699
|
+
A && n && (A.classList.add("hidden"), n.classList.remove("hidden"));
|
|
779
700
|
});
|
|
780
701
|
}
|
|
781
|
-
redirectTo3DS(
|
|
782
|
-
const
|
|
783
|
-
if (
|
|
702
|
+
redirectTo3DS(t) {
|
|
703
|
+
const e = window.open(t, "_blank");
|
|
704
|
+
if (e) {
|
|
784
705
|
this.currentStep = 6, this.showLoader();
|
|
785
|
-
const
|
|
786
|
-
|
|
706
|
+
const A = setInterval(() => {
|
|
707
|
+
e.closed && (clearInterval(A), this.verifyPayment(
|
|
787
708
|
() => {
|
|
788
709
|
this.currentStep = 5;
|
|
789
710
|
},
|
|
790
|
-
(
|
|
791
|
-
h(
|
|
711
|
+
(n) => {
|
|
712
|
+
h(n.message, "error"), this.currentStep = 4;
|
|
792
713
|
}
|
|
793
714
|
));
|
|
794
715
|
}, 2e3);
|
|
795
716
|
} else
|
|
796
|
-
alert(
|
|
797
|
-
"Please enable popups for this site to complete the authentication."
|
|
798
|
-
);
|
|
717
|
+
alert("Please enable popups for this site to complete the authentication.");
|
|
799
718
|
}
|
|
800
|
-
async verifyPayment(
|
|
719
|
+
async verifyPayment(t, e) {
|
|
801
720
|
try {
|
|
802
|
-
const
|
|
803
|
-
|
|
804
|
-
} catch (
|
|
805
|
-
console.error(
|
|
721
|
+
const A = await N(this.token, this.activeRef);
|
|
722
|
+
A.status === "failed" ? this.currentStep = 4 : A.status === "successful" ? t(A) : console.log("wating");
|
|
723
|
+
} catch (A) {
|
|
724
|
+
console.error(A), e(new Error("failed"));
|
|
806
725
|
}
|
|
807
726
|
}
|
|
808
727
|
getCardStepContent() {
|
|
809
728
|
switch (this.currentStep) {
|
|
810
729
|
case 1:
|
|
811
|
-
return
|
|
730
|
+
return this.cardDetailForm = new D(this.contents[0]), this.cardDetailForm.render();
|
|
812
731
|
case 2:
|
|
813
|
-
return
|
|
732
|
+
return R;
|
|
814
733
|
case 3:
|
|
815
|
-
return
|
|
734
|
+
return k;
|
|
816
735
|
case 4:
|
|
817
|
-
return
|
|
736
|
+
return f;
|
|
818
737
|
case 5:
|
|
819
|
-
return
|
|
738
|
+
return v;
|
|
820
739
|
case 6:
|
|
821
|
-
return
|
|
740
|
+
return F;
|
|
822
741
|
default:
|
|
823
|
-
return
|
|
742
|
+
return this.cardDetailForm = new D(this.contents[0]), this.cardDetailForm.render();
|
|
824
743
|
}
|
|
825
744
|
}
|
|
826
|
-
filterCreditCardType(
|
|
827
|
-
|
|
828
|
-
(t) => t.name === $(e)
|
|
829
|
-
), this.creditCardTypes.length >= 1 ? this.displayCardTypes() : (this.creditCardTypes = [...u], this.displayCardTypes())) : (this.creditCardTypes = [...u], this.displayCardTypes());
|
|
745
|
+
filterCreditCardType(t) {
|
|
746
|
+
t ? (this.creditCardTypes = m.filter((e) => e.name === Z(t)), this.creditCardTypes.length >= 1 ? this.displayCardTypes() : (this.creditCardTypes = [...m], this.displayCardTypes())) : (this.creditCardTypes = [...m], this.displayCardTypes());
|
|
830
747
|
}
|
|
831
748
|
renderCardContent() {
|
|
832
|
-
this.contents[0] && (this.contents[0].innerHTML = this.getCardStepContent(), this.attachInputListeners())
|
|
749
|
+
switch (this.contents[0] && (this.contents[0].innerHTML = this.getCardStepContent(), this.attachInputListeners(), this.displayButtonText()), this.currentStep) {
|
|
750
|
+
case 1:
|
|
751
|
+
this.cardDetailForm.attachListener((t) => (e) => this.handleSubmit.bind(this)(t, e));
|
|
752
|
+
break;
|
|
753
|
+
case 2:
|
|
754
|
+
return R;
|
|
755
|
+
case 3:
|
|
756
|
+
return k;
|
|
757
|
+
case 4:
|
|
758
|
+
return f;
|
|
759
|
+
case 5:
|
|
760
|
+
return v;
|
|
761
|
+
case 6:
|
|
762
|
+
return F;
|
|
763
|
+
default:
|
|
764
|
+
this.cardDetailForm.attachListener((t) => (e) => this.handleSubmit.bind(this)(t, e));
|
|
765
|
+
break;
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
displayButtonText(t) {
|
|
769
|
+
const e = this.container.querySelector("#details-form-button-text");
|
|
770
|
+
e && (t ? e.textContent = t : e.textContent = `Pay ${this.currency || "USD"} ${H(this.amount || 0)}`);
|
|
833
771
|
}
|
|
834
772
|
}
|
|
835
|
-
const
|
|
773
|
+
const U = `<div>
|
|
836
774
|
<div class="box-container">
|
|
837
775
|
<div class="container-center h-[40vh] hidden" id="loader">
|
|
838
776
|
<img src="" alt="loader gif" />
|
|
@@ -1013,7 +951,7 @@ const R = `<div>
|
|
|
1013
951
|
</div>
|
|
1014
952
|
</div>
|
|
1015
953
|
</div>
|
|
1016
|
-
`,
|
|
954
|
+
`, a1 = `<div id="paymentWarning">
|
|
1017
955
|
<div class="box-container">
|
|
1018
956
|
<div class="text-center mt-7">
|
|
1019
957
|
<svg class="mx-auto" width="48" height="46" viewBox="0 0 48 46" fill="none"
|
|
@@ -1039,7 +977,7 @@ const R = `<div>
|
|
|
1039
977
|
</div>
|
|
1040
978
|
</div>
|
|
1041
979
|
</div>
|
|
1042
|
-
</div>`,
|
|
980
|
+
</div>`, o1 = `<div id="trasferConfirmationOne">
|
|
1043
981
|
<div class="box-container">
|
|
1044
982
|
<div class="text-center mt-7 w-4/5 md:w-3/5 mx-auto">
|
|
1045
983
|
<h5 class="text-center text-grey-400 w-4/5 mx-auto mt-4 mb-7 flex">
|
|
@@ -1058,7 +996,7 @@ const R = `<div>
|
|
|
1058
996
|
</div>
|
|
1059
997
|
</div>
|
|
1060
998
|
</div>
|
|
1061
|
-
</div>`,
|
|
999
|
+
</div>`, c1 = `<div id="trasferConfirmationOne">
|
|
1062
1000
|
<div class="box-container">
|
|
1063
1001
|
<div class="text-center mt-7 w-4/5 md:w-3/5 mx-auto">
|
|
1064
1002
|
<h5 class="text-center text-grey-400 w-4/5 mx-auto mt-4 mb-7 flex">
|
|
@@ -1086,7 +1024,7 @@ const R = `<div>
|
|
|
1086
1024
|
</div>
|
|
1087
1025
|
</div>
|
|
1088
1026
|
</div>
|
|
1089
|
-
`,
|
|
1027
|
+
`, C1 = `<div id="trasferConfirmationProgress">
|
|
1090
1028
|
<div class="box-container">
|
|
1091
1029
|
<div class="text-center mt-7 w-11/12 md:w-4/5 mx-auto">
|
|
1092
1030
|
<h5
|
|
@@ -1136,165 +1074,165 @@ const R = `<div>
|
|
|
1136
1074
|
</div>
|
|
1137
1075
|
</div>
|
|
1138
1076
|
`;
|
|
1139
|
-
class
|
|
1140
|
-
constructor(e,
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
this.container =
|
|
1077
|
+
class l1 {
|
|
1078
|
+
constructor(t, e, A, n, s) {
|
|
1079
|
+
a(this, "container");
|
|
1080
|
+
a(this, "contents");
|
|
1081
|
+
a(this, "closeModal");
|
|
1082
|
+
a(this, "email");
|
|
1083
|
+
a(this, "token");
|
|
1084
|
+
a(this, "amount");
|
|
1085
|
+
a(this, "_currentStep");
|
|
1086
|
+
a(this, "activeRef");
|
|
1087
|
+
a(this, "paymentResponse");
|
|
1088
|
+
a(this, "initialTime");
|
|
1089
|
+
a(this, "timeLeft");
|
|
1090
|
+
a(this, "timerId");
|
|
1091
|
+
a(this, "abortController", null);
|
|
1092
|
+
this.container = t, this.contents = document.querySelectorAll(".content"), this.closeModal = e, this.token = A, this.email = n, 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());
|
|
1155
1093
|
}
|
|
1156
1094
|
get currentStep() {
|
|
1157
1095
|
return this._currentStep;
|
|
1158
1096
|
}
|
|
1159
|
-
set currentStep(
|
|
1160
|
-
this._currentStep =
|
|
1097
|
+
set currentStep(t) {
|
|
1098
|
+
this._currentStep = t, this.renderTransferContent(), t === 1 && this.createTransfer(), t === 5 && this.startTimer("check");
|
|
1161
1099
|
}
|
|
1162
1100
|
attachInputListeners() {
|
|
1163
|
-
const
|
|
1101
|
+
const t = this.container.querySelector("#transfer-acn"), e = this.container.querySelector("#copy-acn"), A = this.container.querySelector("#acn-tooltip"), n = this.container.querySelector("#transfer-amount"), s = this.container.querySelector("#copy-amount"), i = this.container.querySelector("#amount-tooltip"), o = this.container.querySelector("#transfer-try-again"), c = this.container.querySelector("#transfer-sent"), C = this.container.querySelector(".transfer-button"), l = this.container.querySelector("#show-acn"), p = this.container.querySelector("#ctd-timer"), g = this.container.querySelector(
|
|
1164
1102
|
".success-button"
|
|
1165
|
-
), Q = this.container.querySelector("#confirm-one"),
|
|
1166
|
-
if (
|
|
1167
|
-
|
|
1168
|
-
}), s &&
|
|
1169
|
-
i && this.copyToClipboard(
|
|
1170
|
-
}),
|
|
1103
|
+
), Q = this.container.querySelector("#confirm-one"), y = this.container.querySelector(".transfer-close");
|
|
1104
|
+
if (e && t && e.addEventListener("click", () => {
|
|
1105
|
+
A && this.copyToClipboard(t.innerHTML, A);
|
|
1106
|
+
}), s && n && s.addEventListener("click", () => {
|
|
1107
|
+
i && this.copyToClipboard(n.innerHTML.split(" ")[1], i);
|
|
1108
|
+
}), C && C.addEventListener("click", () => {
|
|
1171
1109
|
this.abortController && (this.abortController.abort(), this.currentStep = 5);
|
|
1172
|
-
}),
|
|
1110
|
+
}), o && o.addEventListener("click", () => {
|
|
1173
1111
|
this.currentStep = 1;
|
|
1174
|
-
}),
|
|
1112
|
+
}), c && c.addEventListener("click", () => {
|
|
1175
1113
|
this.abortController && (this.abortController.abort(), this.currentStep = 5);
|
|
1176
|
-
}),
|
|
1114
|
+
}), l && l.addEventListener("click", () => {
|
|
1177
1115
|
this.stopProgressBar(), this.currentStep = 1;
|
|
1178
1116
|
}), this.currentStep === 5) {
|
|
1179
|
-
this.initialTime = 300, this.timeLeft = this.initialTime,
|
|
1180
|
-
const
|
|
1117
|
+
this.initialTime = 300, this.timeLeft = this.initialTime, p && (p.innerHTML = S(this.initialTime));
|
|
1118
|
+
const L = 3e4;
|
|
1181
1119
|
this.abortController = new AbortController(), setTimeout(() => {
|
|
1182
1120
|
this.verifyTransfer(
|
|
1183
1121
|
this.token,
|
|
1184
|
-
|
|
1122
|
+
L,
|
|
1185
1123
|
() => {
|
|
1186
1124
|
this.currentStep = 6;
|
|
1187
1125
|
},
|
|
1188
|
-
(
|
|
1189
|
-
console.error("Polling failed:",
|
|
1126
|
+
(T) => {
|
|
1127
|
+
console.error("Polling failed:", T), h(T.message, "error");
|
|
1190
1128
|
}
|
|
1191
1129
|
);
|
|
1192
1130
|
}, 5e3), this.startTimer("check");
|
|
1193
1131
|
}
|
|
1194
1132
|
Q && Q.addEventListener("click", () => {
|
|
1195
1133
|
this.currentStep = 4;
|
|
1196
|
-
}),
|
|
1134
|
+
}), g && g.addEventListener("click", () => this.closeModal()), y && y.addEventListener("click", () => this.closeModal());
|
|
1197
1135
|
}
|
|
1198
1136
|
async createTransfer() {
|
|
1199
1137
|
requestAnimationFrame(() => {
|
|
1200
1138
|
var s;
|
|
1201
|
-
const
|
|
1202
|
-
|
|
1203
|
-
const
|
|
1139
|
+
const t = this.container.querySelector("#loader"), e = this.container.querySelector("#details-content");
|
|
1140
|
+
t && e && (t.classList.remove("hidden"), (s = t.querySelector("img")) == null || s.setAttribute("src", b), e.classList.add("hidden"));
|
|
1141
|
+
const A = {
|
|
1204
1142
|
amount: this.amount,
|
|
1205
1143
|
channel: "bank_transfer",
|
|
1206
1144
|
currency: "USD",
|
|
1207
1145
|
customer: {
|
|
1208
1146
|
email: this.email
|
|
1209
1147
|
},
|
|
1210
|
-
reference:
|
|
1148
|
+
reference: G()
|
|
1211
1149
|
};
|
|
1212
|
-
|
|
1150
|
+
e1(this.token, A).then((i) => {
|
|
1213
1151
|
if (i.status === "failed")
|
|
1214
1152
|
i.providerMessage ? h(i.providerMessage, "error") : h("Payment failed", "error"), this.currentStep = 2;
|
|
1215
1153
|
else {
|
|
1216
|
-
|
|
1217
|
-
const
|
|
1154
|
+
t && e && (t.classList.add("hidden"), e.classList.remove("hidden")), this.activeRef = i.reference, this.paymentResponse = i, this.updateTransferDetailsContent();
|
|
1155
|
+
const o = 3e4;
|
|
1218
1156
|
setTimeout(() => {
|
|
1219
1157
|
this.verifyTransfer(
|
|
1220
1158
|
this.token,
|
|
1221
|
-
|
|
1159
|
+
o,
|
|
1222
1160
|
() => {
|
|
1223
1161
|
this.currentStep = 6;
|
|
1224
1162
|
},
|
|
1225
|
-
(
|
|
1226
|
-
console.error("Polling failed:",
|
|
1163
|
+
(c) => {
|
|
1164
|
+
console.error("Polling failed:", c), h(c.message, "error");
|
|
1227
1165
|
}
|
|
1228
1166
|
);
|
|
1229
|
-
},
|
|
1167
|
+
}, o);
|
|
1230
1168
|
}
|
|
1231
1169
|
}).catch((i) => {
|
|
1232
1170
|
h(i.message, "error");
|
|
1233
1171
|
});
|
|
1234
1172
|
});
|
|
1235
1173
|
}
|
|
1236
|
-
async verifyTransfer(e,
|
|
1237
|
-
let s = 0, i =
|
|
1238
|
-
this.abortController && (
|
|
1239
|
-
const
|
|
1174
|
+
async verifyTransfer(t, e, A, n) {
|
|
1175
|
+
let s = 0, i = e, o = !0, c;
|
|
1176
|
+
this.abortController && (c = this.abortController.signal);
|
|
1177
|
+
const C = async () => {
|
|
1240
1178
|
if (this.timeLeft <= 0) {
|
|
1241
|
-
|
|
1179
|
+
o = !1, n(new Error("Max polling time reached")), this.currentStep = 2;
|
|
1242
1180
|
return;
|
|
1243
1181
|
}
|
|
1244
1182
|
s += 1;
|
|
1245
1183
|
try {
|
|
1246
|
-
const
|
|
1247
|
-
|
|
1184
|
+
const l = await N(
|
|
1185
|
+
t,
|
|
1248
1186
|
this.activeRef,
|
|
1249
|
-
|
|
1187
|
+
c
|
|
1250
1188
|
);
|
|
1251
|
-
|
|
1189
|
+
l.status === "failed" ? o && (i = e * (s + 1), setTimeout(C, i)) : (o = !1, A(l));
|
|
1252
1190
|
} catch {
|
|
1253
|
-
|
|
1191
|
+
o && (i = e * (s + 1), setTimeout(C, i));
|
|
1254
1192
|
}
|
|
1255
1193
|
};
|
|
1256
|
-
|
|
1194
|
+
C();
|
|
1257
1195
|
}
|
|
1258
1196
|
getTransferStepContent() {
|
|
1259
1197
|
switch (this.currentStep) {
|
|
1260
1198
|
case 1:
|
|
1261
|
-
return
|
|
1199
|
+
return U;
|
|
1262
1200
|
case 2:
|
|
1263
|
-
return
|
|
1201
|
+
return a1;
|
|
1264
1202
|
case 3:
|
|
1265
|
-
return
|
|
1203
|
+
return o1;
|
|
1266
1204
|
case 4:
|
|
1267
|
-
return
|
|
1205
|
+
return c1;
|
|
1268
1206
|
case 5:
|
|
1269
|
-
return
|
|
1207
|
+
return C1;
|
|
1270
1208
|
case 6:
|
|
1271
|
-
return
|
|
1209
|
+
return v;
|
|
1272
1210
|
default:
|
|
1273
|
-
return
|
|
1211
|
+
return U;
|
|
1274
1212
|
}
|
|
1275
1213
|
}
|
|
1276
1214
|
updateTransferDetailsContent() {
|
|
1277
1215
|
var s;
|
|
1278
|
-
const
|
|
1279
|
-
this.paymentResponse && (
|
|
1216
|
+
const t = this.container.querySelectorAll(".transfer-curr-amount"), e = this.container.querySelector("#transfer-bank"), A = this.container.querySelector("#transfer-acn"), n = this.container.querySelector("#time-left");
|
|
1217
|
+
this.paymentResponse && (t.length && t.forEach(
|
|
1280
1218
|
(i) => {
|
|
1281
|
-
var
|
|
1282
|
-
return i.innerHTML = `${(
|
|
1219
|
+
var o, c;
|
|
1220
|
+
return i.innerHTML = `${(o = this.paymentResponse) == null ? void 0 : o.currency} ${(c = this.paymentResponse) == null ? void 0 : c.amount}`;
|
|
1283
1221
|
}
|
|
1284
|
-
),
|
|
1222
|
+
), e && this.paymentResponse.bankDetails && (e.innerHTML = (s = this.paymentResponse.bankDetails) == null ? void 0 : s.bankName), A && this.paymentResponse.bankDetails && (A.innerHTML = this.paymentResponse.bankDetails.accountNumber), n && (n.innerHTML = S(this.initialTime)), this.startTimer("poll"));
|
|
1285
1223
|
}
|
|
1286
1224
|
renderTransferContent() {
|
|
1287
1225
|
this.contents[1] && (this.contents[1].innerHTML = this.getTransferStepContent(), this.attachInputListeners());
|
|
1288
1226
|
}
|
|
1289
|
-
startTimer(
|
|
1290
|
-
const
|
|
1227
|
+
startTimer(t) {
|
|
1228
|
+
const e = this.container.querySelector("#ctd-timer");
|
|
1291
1229
|
this.stopTimer(), this.timerId = window.setInterval(() => {
|
|
1292
|
-
this.timeLeft > 0 ? (this.timeLeft -= 1,
|
|
1230
|
+
this.timeLeft > 0 ? (this.timeLeft -= 1, t === "poll" ? this.updateProgressTimerContent() : e && (e.innerHTML = S(this.timeLeft), this.startTimer("check"))) : (this.stopTimer(), t === "check" && (this.currentStep = 3));
|
|
1293
1231
|
}, 1e3);
|
|
1294
1232
|
}
|
|
1295
1233
|
updateProgressTimerContent() {
|
|
1296
|
-
const
|
|
1297
|
-
s && (s.setAttribute("stroke-dasharray", `${
|
|
1234
|
+
const e = 2 * Math.PI * 40, n = (this.initialTime - this.timeLeft) / this.initialTime * 100 / 100 * e, s = this.container.querySelector(".circle-progress"), i = this.container.querySelector("#time-left");
|
|
1235
|
+
s && (s.setAttribute("stroke-dasharray", `${e}`), s.setAttribute("stroke-dashoffset", `${n}`)), i && (i.innerHTML = S(this.timeLeft));
|
|
1298
1236
|
}
|
|
1299
1237
|
stopTimer() {
|
|
1300
1238
|
this.timerId !== null && (clearInterval(this.timerId), this.timerId = null);
|
|
@@ -1306,16 +1244,16 @@ class i1 {
|
|
|
1306
1244
|
// }
|
|
1307
1245
|
// }
|
|
1308
1246
|
stopProgressBar() {
|
|
1309
|
-
const
|
|
1247
|
+
const t = this.container.querySelector(
|
|
1310
1248
|
".progress-bar"
|
|
1311
1249
|
);
|
|
1312
|
-
|
|
1250
|
+
t && (t.style.animationPlayState = "paused");
|
|
1313
1251
|
}
|
|
1314
|
-
copyToClipboard(
|
|
1315
|
-
navigator.clipboard.writeText(
|
|
1316
|
-
|
|
1252
|
+
copyToClipboard(t, e) {
|
|
1253
|
+
navigator.clipboard.writeText(t).then(() => {
|
|
1254
|
+
e.innerHTML = "Copied!";
|
|
1317
1255
|
}).catch(() => {
|
|
1318
|
-
|
|
1256
|
+
e.innerHTML = "Failed to copy";
|
|
1319
1257
|
});
|
|
1320
1258
|
}
|
|
1321
1259
|
destroyTimer() {
|
|
@@ -1325,207 +1263,306 @@ class i1 {
|
|
|
1325
1263
|
this.abortController && this.abortController.abort();
|
|
1326
1264
|
}
|
|
1327
1265
|
}
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1266
|
+
function z() {
|
|
1267
|
+
return function(r, t) {
|
|
1268
|
+
let e = r[t];
|
|
1269
|
+
console.log({ key: t }, "Property"), Object.defineProperty(r, t, {
|
|
1270
|
+
configurable: !0,
|
|
1271
|
+
enumerable: !0,
|
|
1272
|
+
get: () => e,
|
|
1273
|
+
set: (s) => {
|
|
1274
|
+
console.log({ values: s }), e = s;
|
|
1275
|
+
}
|
|
1276
|
+
});
|
|
1277
|
+
};
|
|
1278
|
+
}
|
|
1279
|
+
class q {
|
|
1280
|
+
constructor(t) {
|
|
1281
|
+
a(this, "container");
|
|
1282
|
+
this.container = t;
|
|
1283
|
+
}
|
|
1284
|
+
attachListerner(t) {
|
|
1285
|
+
const e = document.getElementById("bank-search-input"), A = document.querySelectorAll(".select-option-tag"), n = document.getElementById("bank-code-span");
|
|
1286
|
+
e && e.addEventListener("change", (s) => {
|
|
1287
|
+
s.stopPropagation(), n && (n.innerHTML = e.value), t && t({ code: e.value, name: "" });
|
|
1288
|
+
}), A && (Array.from(A).forEach((i) => {
|
|
1289
|
+
i.addEventListener("click", function(o) {
|
|
1290
|
+
o.stopPropagation(), n && (n.innerHTML = i.value), console.log(`${i.value} clicked`, { spanTag: n });
|
|
1291
|
+
});
|
|
1292
|
+
}), console.log("option add listerner", { options: A }));
|
|
1293
|
+
}
|
|
1294
|
+
renderContent() {
|
|
1295
|
+
this.container.innerHTML = this.render();
|
|
1296
|
+
}
|
|
1297
|
+
render() {
|
|
1298
|
+
return console.log("render card detail form"), `
|
|
1299
|
+
<div id="ussdBanks">
|
|
1300
|
+
<div class="box-container">
|
|
1301
|
+
<div class="text-center my-6">
|
|
1302
|
+
<svg class="mx-auto w-8 h-8 mb-3" width="18" height="18" viewBox="0 0 18 18" fill="none"
|
|
1303
|
+
xmlns="http://www.w3.org/2000/svg">
|
|
1304
|
+
<path
|
|
1305
|
+
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"
|
|
1306
|
+
fill="#01008E" />
|
|
1307
|
+
</svg>
|
|
1344
1308
|
|
|
1345
|
-
|
|
1346
|
-
|
|
1309
|
+
<h5 class="content-heading">Choose your bank to start the payment</h5>
|
|
1310
|
+
</div>
|
|
1347
1311
|
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1312
|
+
<!-- <div class="my-12">
|
|
1313
|
+
<div class="relative md:mx-[18px] mb-4 mx-0">
|
|
1314
|
+
<div class="relative">
|
|
1315
|
+
<div id="bank-select-container">
|
|
1316
|
+
|
|
1317
|
+
<input type="text" id="bank-search-input" class="" placeholder="Search..." autocomplete="off" />
|
|
1318
|
+
<span id="bank-code-span">3244</span>
|
|
1319
|
+
</div>
|
|
1320
|
+
<div class="bank-options" id="bank-options"></div>
|
|
1321
|
+
</div>
|
|
1322
|
+
</div>
|
|
1323
|
+
</div> -->
|
|
1324
|
+
|
|
1325
|
+
|
|
1326
|
+
<div class="my-12">
|
|
1327
|
+
<div class="relative md:mx-[18px] mb-4 mx-0">
|
|
1328
|
+
<div class="relative bank-select-relative">
|
|
1329
|
+
<div id="bank-select-container">
|
|
1330
|
+
<select type="text" id="bank-search-input" class="" placeholder="Search..." autocomplete="off">
|
|
1331
|
+
<option class="select-option-tag" value="-#"></option>
|
|
1332
|
+
<option class="select-option-tag" value="*233#">FCMB</option>
|
|
1333
|
+
<option class="select-option-tag" value="*334#">First Bank</option>
|
|
1334
|
+
<option class="select-option-tag" value="*3*#239#">Zenith</option>
|
|
1335
|
+
<option class="select-option-tag" value="*377#">GTBank</option>
|
|
1336
|
+
</select>
|
|
1337
|
+
<span id="bank-code-span">3244</span>
|
|
1338
|
+
</div>
|
|
1339
|
+
<!-- <div class="bank-options" id="bank-options"></div> -->
|
|
1340
|
+
</div>
|
|
1341
|
+
</div>
|
|
1342
|
+
</div>
|
|
1359
1343
|
</div>
|
|
1360
1344
|
</div>
|
|
1361
|
-
</div>
|
|
1362
|
-
</div>
|
|
1363
|
-
</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>
|
|
1380
1345
|
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1346
|
+
`;
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
class d1 {
|
|
1350
|
+
constructor(t) {
|
|
1351
|
+
a(this, "container");
|
|
1352
|
+
this.container = t;
|
|
1353
|
+
}
|
|
1354
|
+
render() {
|
|
1355
|
+
return `
|
|
1356
|
+
<div id="viewCode">
|
|
1357
|
+
<div class="box-container">
|
|
1358
|
+
<div class="text-center pb-5 mt-4 mb-6">
|
|
1359
|
+
<svg
|
|
1360
|
+
class="mx-auto w-8 h-8 mb-3"
|
|
1361
|
+
width="18"
|
|
1362
|
+
height="18"
|
|
1363
|
+
viewBox="0 0 18 18"
|
|
1364
|
+
fill="none"
|
|
1365
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
1366
|
+
>
|
|
1367
|
+
<path
|
|
1368
|
+
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"
|
|
1369
|
+
fill="#01008E"
|
|
1370
|
+
/>
|
|
1371
|
+
</svg>
|
|
1385
1372
|
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1373
|
+
<div class="w-4/5 mx-auto">
|
|
1374
|
+
<h5 class="content-heading">
|
|
1375
|
+
Dial the code below to complete this transaction with FCMB’s 329
|
|
1376
|
+
</h5>
|
|
1389
1377
|
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1378
|
+
<p class="text-primary-dark my-4">How to pay with FCMB USSD</p>
|
|
1379
|
+
</div>
|
|
1380
|
+
</div>
|
|
1393
1381
|
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
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>
|
|
1382
|
+
<div>
|
|
1383
|
+
<button class="copy-code-button">
|
|
1384
|
+
<span> *329*33*4*343788#</span>
|
|
1411
1385
|
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1386
|
+
<svg
|
|
1387
|
+
width="14"
|
|
1388
|
+
height="14"
|
|
1389
|
+
viewBox="0 0 14 14"
|
|
1390
|
+
fill="none"
|
|
1391
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
1392
|
+
>
|
|
1393
|
+
<path
|
|
1394
|
+
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"
|
|
1395
|
+
fill="#F4F4FF"
|
|
1396
|
+
/>
|
|
1397
|
+
<path
|
|
1398
|
+
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"
|
|
1399
|
+
fill="#F4F4FF"
|
|
1400
|
+
/>
|
|
1401
|
+
</svg>
|
|
1402
|
+
</button>
|
|
1403
|
+
|
|
1404
|
+
<div class="container-center">
|
|
1405
|
+
<button class="text-grey-400 text-sm text-center hover:underline">
|
|
1406
|
+
Click to copy
|
|
1407
|
+
</button>
|
|
1408
|
+
</div>
|
|
1409
|
+
</div>
|
|
1410
|
+
|
|
1411
|
+
<div class="pt-16 mb-2">
|
|
1412
|
+
<button class="ussd-button text-grey-700">I have completed the payment</button>
|
|
1413
|
+
</div>
|
|
1414
|
+
<div class="container-center">
|
|
1415
|
+
<button class="text-grey-400 text-center hover:underline">Cancel</button>
|
|
1416
|
+
</div>
|
|
1417
|
+
</div>
|
|
1416
1418
|
</div>
|
|
1417
|
-
</div>
|
|
1418
1419
|
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
class
|
|
1429
|
-
|
|
1420
|
+
|
|
1421
|
+
`;
|
|
1422
|
+
}
|
|
1423
|
+
}
|
|
1424
|
+
var h1 = Object.defineProperty, W = (r, t, e, A) => {
|
|
1425
|
+
for (var n = void 0, s = r.length - 1, i; s >= 0; s--)
|
|
1426
|
+
(i = r[s]) && (n = i(t, e, n) || n);
|
|
1427
|
+
return n && h1(t, e, n), n;
|
|
1428
|
+
};
|
|
1429
|
+
class x {
|
|
1430
|
+
// private container: HTMLElement;
|
|
1431
|
+
constructor(t) {
|
|
1430
1432
|
// private container: HTMLElement;
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
this
|
|
1433
|
+
a(this, "contents");
|
|
1434
|
+
a(this, "banks");
|
|
1435
|
+
a(this, "selectedCode");
|
|
1436
|
+
a(this, "bankDetail");
|
|
1437
|
+
a(this, "viewUssdCode");
|
|
1438
|
+
a(this, "_currentStep");
|
|
1439
|
+
const e = [
|
|
1440
|
+
{ code: "*334#", name: "First City Bank" },
|
|
1441
|
+
{ code: "*334#", name: "First Bank" }
|
|
1442
|
+
];
|
|
1443
|
+
this.contents = document.querySelectorAll(".content"), this.banks = n1, this._currentStep = 1, this.renderUssdContent(), this.banks = e;
|
|
1435
1444
|
}
|
|
1436
1445
|
get currentStep() {
|
|
1437
1446
|
return this._currentStep;
|
|
1438
1447
|
}
|
|
1439
|
-
set currentStep(
|
|
1440
|
-
this._currentStep =
|
|
1448
|
+
set currentStep(t) {
|
|
1449
|
+
this._currentStep = t, this.renderUssdContent();
|
|
1441
1450
|
}
|
|
1442
1451
|
getUssdStepContent() {
|
|
1443
1452
|
switch (this.currentStep) {
|
|
1444
1453
|
case 1:
|
|
1445
|
-
return
|
|
1454
|
+
return this.bankDetail = new q(this.contents[2]), this.bankDetail.render();
|
|
1446
1455
|
case 2:
|
|
1447
|
-
return
|
|
1456
|
+
return this.viewUssdCode = new d1(this.contents[2]), this.viewUssdCode.render();
|
|
1448
1457
|
case 3:
|
|
1449
|
-
return
|
|
1458
|
+
return f;
|
|
1450
1459
|
case 4:
|
|
1451
|
-
return
|
|
1460
|
+
return v;
|
|
1452
1461
|
default:
|
|
1453
|
-
return
|
|
1462
|
+
return this.bankDetail = new q(this.contents[2]), this.bankDetail.render();
|
|
1454
1463
|
}
|
|
1455
1464
|
}
|
|
1465
|
+
onCodeSelect(t) {
|
|
1466
|
+
console.log({ val: t }), this.selectedCode = t || "", setTimeout(() => {
|
|
1467
|
+
this.currentStep = 2;
|
|
1468
|
+
}, 1e3), console.log({ selectedCode: this == null ? void 0 : this.selectedCode });
|
|
1469
|
+
}
|
|
1456
1470
|
renderUssdContent() {
|
|
1457
|
-
this.contents[2] && (this.contents[2].innerHTML = this.getUssdStepContent())
|
|
1471
|
+
switch (this.contents[2] && (this.contents[2].innerHTML = this.getUssdStepContent()), this.currentStep) {
|
|
1472
|
+
case 1:
|
|
1473
|
+
this.bankDetail.attachListerner(this.onCodeSelect.bind(this));
|
|
1474
|
+
break;
|
|
1475
|
+
default:
|
|
1476
|
+
this.bankDetail.attachListerner(this.onCodeSelect.bind(this));
|
|
1477
|
+
break;
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
1480
|
+
handleSelectChange(t) {
|
|
1481
|
+
console.log({ _e: t }, "knksnbskjb EVENT"), setTimeout(() => {
|
|
1482
|
+
this.currentStep = 2;
|
|
1483
|
+
}, 400), this.currentStep = 2;
|
|
1458
1484
|
}
|
|
1459
|
-
renderSearchOptions(
|
|
1460
|
-
|
|
1485
|
+
renderSearchOptions(t, e, A) {
|
|
1486
|
+
A.innerHTML = "", t.forEach((n) => {
|
|
1461
1487
|
const s = document.createElement("div");
|
|
1462
|
-
s.classList.add("bank-option"), s.textContent =
|
|
1463
|
-
|
|
1464
|
-
}),
|
|
1465
|
-
}),
|
|
1466
|
-
}
|
|
1467
|
-
searchBanksOnInput(
|
|
1468
|
-
const
|
|
1469
|
-
|
|
1470
|
-
);
|
|
1471
|
-
this.renderSearchOptions(A, e, t);
|
|
1488
|
+
s.classList.add("bank-option"), s.textContent = n.name, s.addEventListener("click", () => {
|
|
1489
|
+
e.value = n.name, A.style.display = "none";
|
|
1490
|
+
}), A.appendChild(s);
|
|
1491
|
+
}), A.style.display = t.length ? "block" : "none";
|
|
1492
|
+
}
|
|
1493
|
+
searchBanksOnInput(t, e) {
|
|
1494
|
+
const A = t.value.toLowerCase(), n = this.banks.filter((s) => s.name.toLowerCase().includes(A));
|
|
1495
|
+
this.renderSearchOptions(n, t, e);
|
|
1472
1496
|
}
|
|
1473
|
-
openSearchOnFocus(
|
|
1474
|
-
this.renderSearchOptions(this.banks,
|
|
1497
|
+
openSearchOnFocus(t, e) {
|
|
1498
|
+
this.renderSearchOptions(this.banks, t, e);
|
|
1475
1499
|
}
|
|
1476
|
-
closeSearchOptionsOutsideFocus(
|
|
1477
|
-
!
|
|
1500
|
+
closeSearchOptionsOutsideFocus(t, e, A) {
|
|
1501
|
+
!e.contains(t.target) && !A.contains(t.target) && (A.style.display = "none");
|
|
1478
1502
|
}
|
|
1479
1503
|
}
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
o(this, "card");
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1504
|
+
W([
|
|
1505
|
+
z()
|
|
1506
|
+
], x.prototype, "banks");
|
|
1507
|
+
W([
|
|
1508
|
+
z()
|
|
1509
|
+
], x.prototype, "selectedCode");
|
|
1510
|
+
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";
|
|
1511
|
+
class p1 {
|
|
1512
|
+
constructor(t, e, A, n, s, i, o) {
|
|
1513
|
+
a(this, "modalContainer");
|
|
1514
|
+
a(this, "currentPaymentMethod");
|
|
1515
|
+
a(this, "mainLayout");
|
|
1516
|
+
a(this, "currentStep");
|
|
1517
|
+
a(this, "merchantPlanDetail", {});
|
|
1518
|
+
// container: HTMLDivElement;
|
|
1519
|
+
a(this, "mainScreen");
|
|
1520
|
+
a(this, "card");
|
|
1521
|
+
a(this, "transfer");
|
|
1522
|
+
a(this, "ussd");
|
|
1523
|
+
a(this, "encryption");
|
|
1524
|
+
a(this, "merchantKey");
|
|
1525
|
+
a(this, "planId");
|
|
1526
|
+
a(this, "email");
|
|
1527
|
+
a(this, "amount", 0);
|
|
1528
|
+
a(this, "isMobile", !1);
|
|
1529
|
+
this.modalContainer = e, this.encryption = n, this.planId = o || "", this.mainLayout = t, this.isMobile = window.matchMedia("(max-width: 767px)").matches, this.currentPaymentMethod = this.isMobile ? 3 : 0, this.currentStep = 1, this.merchantKey = A, this.email = s, this.amount = i || 0;
|
|
1530
|
+
}
|
|
1531
|
+
mountScreen(t) {
|
|
1532
|
+
var o, c, C, l, p, g, Q, y, L;
|
|
1533
|
+
this.mainLayout.innerHTML = this.render(), this.merchantPlanDetail = t, this.amount = ((c = (o = this.merchantPlanDetail) == null ? void 0 : o.plan) == null ? void 0 : c.amount) || 0;
|
|
1534
|
+
const e = document.getElementById("plan-name"), A = document.getElementById("payment-rate-display"), n = document.getElementById("container-payment-text"), s = document.getElementById("header-chip-amount"), i = document.getElementById("merchant-email");
|
|
1535
|
+
i && (i.innerHTML = this.email), e && (e.textContent = ((C = t == null ? void 0 : t.plan) == null ? void 0 : C.title) || "N/A"), A && (A.innerHTML = `1 ${((l = t == null ? void 0 : t.rate) == null ? void 0 : l.to) || "-"} = ${((p = t.rate) == null ? void 0 : p.rate) || 1} ${((g = t == null ? void 0 : t.rate) == null ? void 0 : g.from) || "-"}`), n && (n.innerHTML = `${((Q = t == null ? void 0 : t.plan) == null ? void 0 : Q.currency) || "NGN"} ${H(((y = t == null ? void 0 : t.plan) == null ? void 0 : y.amount) || 0, 2)}`), s && (s.innerHTML = `NGN ${H((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
1536
|
}
|
|
1496
1537
|
attachInputListeners() {
|
|
1497
|
-
const
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
})
|
|
1505
|
-
|
|
1538
|
+
const t = document.body.querySelector("#change-method"), e = document.querySelector("#mob-container"), A = document.querySelector("#mob-tab-co"), n = document.querySelector("#mob-tab-c");
|
|
1539
|
+
t && (this.cleanup(), t.addEventListener("click", () => {
|
|
1540
|
+
this.currentPaymentMethod = 3, this.attachInputListeners(), e && (e.innerHTML = this.mobileContainerContent()), this.setupComponent(), A && n && n.parentNode && A.removeChild(n);
|
|
1541
|
+
})), this.closeBTN();
|
|
1542
|
+
}
|
|
1543
|
+
closeBTN() {
|
|
1544
|
+
const t = document.body.querySelectorAll(".close-btn"), e = Array.from(t);
|
|
1545
|
+
console.log({ close: t }), e.length > 0 && e.forEach((A) => {
|
|
1546
|
+
A.addEventListener("click", () => {
|
|
1506
1547
|
this.cleanup(), this.closeModal();
|
|
1507
1548
|
});
|
|
1508
1549
|
});
|
|
1509
1550
|
}
|
|
1510
1551
|
displayTabLayout() {
|
|
1511
|
-
const
|
|
1512
|
-
this.isMobile ?
|
|
1513
|
-
|
|
1514
|
-
if (
|
|
1515
|
-
const
|
|
1516
|
-
this.updatePaymentMethodView(
|
|
1517
|
-
this.
|
|
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 = `
|
|
1552
|
+
const t = document.querySelectorAll(".tab-button"), e = document.querySelectorAll(".mob-tab-button"), A = document.querySelector(".box-container-method"), n = document.querySelector("#mob-container"), s = document.querySelector("#inner-mob-container"), i = document.querySelector("#mob-tab-co");
|
|
1553
|
+
this.isMobile ? e && A && n && s && e.forEach((o) => {
|
|
1554
|
+
o.addEventListener("click", (c) => {
|
|
1555
|
+
if (c.currentTarget instanceof HTMLElement && c.currentTarget.dataset.tab) {
|
|
1556
|
+
const C = parseInt(c.currentTarget.dataset.tab);
|
|
1557
|
+
this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.setCurrentPaymentMethod(C), n.removeChild(s), this.cleanup(), E.forEach((l, p) => {
|
|
1558
|
+
this.currentPaymentMethod === p && i && (i.innerHTML = `
|
|
1522
1559
|
<div id="mob-tab-c" class="w-full pt-2 px-5 md:hidden">
|
|
1523
1560
|
<div>
|
|
1524
|
-
<button class="pt-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${
|
|
1561
|
+
<button class="pt-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${p}">
|
|
1525
1562
|
<div class="min-w-8 mr-2 align-center">
|
|
1526
|
-
${
|
|
1563
|
+
${l.icon}
|
|
1527
1564
|
</div>
|
|
1528
|
-
<span>${
|
|
1565
|
+
<span>${l.label}</span>
|
|
1529
1566
|
</button>
|
|
1530
1567
|
</div>
|
|
1531
1568
|
</div>
|
|
@@ -1533,43 +1570,39 @@ class c1 {
|
|
|
1533
1570
|
}), this.renderPaymentMethodContent(), this.attachInputListeners();
|
|
1534
1571
|
}
|
|
1535
1572
|
});
|
|
1536
|
-
}) :
|
|
1537
|
-
|
|
1538
|
-
if (
|
|
1539
|
-
const
|
|
1540
|
-
this.switchTab(
|
|
1573
|
+
}) : t && A && t.forEach((o) => {
|
|
1574
|
+
o.addEventListener("click", (c) => {
|
|
1575
|
+
if (c.currentTarget instanceof HTMLElement && c.currentTarget.dataset.tab) {
|
|
1576
|
+
const C = parseInt(c.currentTarget.dataset.tab);
|
|
1577
|
+
this.switchTab(C);
|
|
1541
1578
|
}
|
|
1542
1579
|
});
|
|
1543
1580
|
}), this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.renderPaymentMethodContent(), this.attachInputListeners(), this.setCurrentPaymentMethod(this.currentPaymentMethod);
|
|
1544
1581
|
}
|
|
1545
|
-
updatePaymentMethodView(
|
|
1582
|
+
updatePaymentMethodView(t, e, A) {
|
|
1546
1583
|
switch (this.currentPaymentMethod) {
|
|
1547
1584
|
case 0:
|
|
1548
|
-
return this.card = new
|
|
1585
|
+
return this.card = new K(
|
|
1549
1586
|
this.modalContainer,
|
|
1550
1587
|
() => this.closeModal(),
|
|
1551
|
-
e,
|
|
1552
1588
|
t,
|
|
1553
|
-
|
|
1589
|
+
this.encryption,
|
|
1590
|
+
e,
|
|
1591
|
+
A,
|
|
1554
1592
|
() => this.switchTab(1)
|
|
1555
1593
|
);
|
|
1556
1594
|
case 1:
|
|
1557
|
-
return this.transfer = new
|
|
1558
|
-
this.modalContainer,
|
|
1559
|
-
() => this.closeModal(),
|
|
1560
|
-
e,
|
|
1561
|
-
t,
|
|
1562
|
-
n
|
|
1563
|
-
);
|
|
1595
|
+
return this.transfer = new l1(this.modalContainer, () => this.closeModal(), t, e, A);
|
|
1564
1596
|
case 2:
|
|
1565
|
-
return this.ussd = new
|
|
1597
|
+
return this.ussd = new x(this.modalContainer);
|
|
1566
1598
|
default:
|
|
1567
|
-
return this.card = new
|
|
1599
|
+
return this.card = new K(
|
|
1568
1600
|
this.modalContainer,
|
|
1569
1601
|
() => this.closeModal(),
|
|
1570
|
-
e,
|
|
1571
1602
|
t,
|
|
1572
|
-
|
|
1603
|
+
this.encryption,
|
|
1604
|
+
e,
|
|
1605
|
+
A,
|
|
1573
1606
|
() => this.switchTab(1)
|
|
1574
1607
|
);
|
|
1575
1608
|
}
|
|
@@ -1590,53 +1623,99 @@ class c1 {
|
|
|
1590
1623
|
}
|
|
1591
1624
|
})();
|
|
1592
1625
|
}
|
|
1593
|
-
setCurrentPaymentMethod(
|
|
1594
|
-
this.currentPaymentMethod =
|
|
1595
|
-
const
|
|
1596
|
-
let
|
|
1597
|
-
const
|
|
1598
|
-
|
|
1626
|
+
setCurrentPaymentMethod(t) {
|
|
1627
|
+
this.currentPaymentMethod = t;
|
|
1628
|
+
const e = document.querySelectorAll(".tab-button");
|
|
1629
|
+
let A = document.querySelectorAll(".content");
|
|
1630
|
+
const n = document.getElementById("mob-action-btns");
|
|
1631
|
+
e.forEach((s) => s.classList.remove("active")), A.forEach((s) => s.classList.remove("active")), e[t] && e[t].classList.add("active"), A[t] && A[t].classList.add("active"), t !== 3 && n && (n.classList.remove("hidden"), n.classList.add("md:hidden"));
|
|
1599
1632
|
}
|
|
1600
|
-
switchTab(
|
|
1601
|
-
this.setCurrentPaymentMethod(
|
|
1633
|
+
switchTab(t) {
|
|
1634
|
+
this.setCurrentPaymentMethod(t), this.updatePaymentMethodView(this.merchantKey, this.email, this.amount), this.cleanup(), this.renderPaymentMethodContent(), this.attachInputListeners();
|
|
1602
1635
|
}
|
|
1603
|
-
|
|
1604
|
-
const
|
|
1605
|
-
if (
|
|
1606
|
-
|
|
1636
|
+
setupComponent() {
|
|
1637
|
+
const t = document.getElementById("merchantLogo"), e = document.getElementById("merchantLogoMob"), A = document.getElementById("mob-action-btns"), n = document.getElementById("merchant-email"), s = document.querySelector("#mob-container");
|
|
1638
|
+
if (n && (n.innerHTML = this.email), this.isMobile) {
|
|
1639
|
+
e && e.setAttribute("src", I), s && (s.innerHTML = this.mobileContainerContent());
|
|
1640
|
+
let i = document.querySelector(".mob-options");
|
|
1641
|
+
i && this.viewMobileOptions(i);
|
|
1642
|
+
const o = document.querySelectorAll(".mob-tab-button");
|
|
1643
|
+
E.forEach((c, C) => {
|
|
1644
|
+
const l = o[C];
|
|
1645
|
+
l && (l.dataset.tab = C.toString(), l.addEventListener("click", () => {
|
|
1646
|
+
this.setCurrentPaymentMethod(C);
|
|
1647
|
+
}));
|
|
1648
|
+
}), A && this.currentPaymentMethod === 3 && (A.classList.add("hidden"), A.classList.remove("md:hidden"));
|
|
1649
|
+
} else {
|
|
1650
|
+
t && t.setAttribute("src", I);
|
|
1651
|
+
let i = document.querySelector(".payment-options");
|
|
1652
|
+
i && (i.innerHTML = `<div>
|
|
1653
|
+
${E.filter((c) => {
|
|
1654
|
+
var C;
|
|
1655
|
+
return (((C = this.merchantPlanDetail) == null ? void 0 : C.paymentMethods) || []).includes(c.key);
|
|
1656
|
+
}).map(
|
|
1657
|
+
(c, C) => `
|
|
1658
|
+
<div class="tab">
|
|
1659
|
+
<button class="tab-button group" data-tab="${C}">
|
|
1660
|
+
<div class="min-w-8 md:container-center lg:block">
|
|
1661
|
+
${c.icon}
|
|
1662
|
+
</div>
|
|
1663
|
+
<span>${c.label}</span>
|
|
1664
|
+
</button>
|
|
1665
|
+
</div>
|
|
1666
|
+
`
|
|
1667
|
+
).join("")}
|
|
1668
|
+
</div>`);
|
|
1669
|
+
const o = document.querySelectorAll(".tab-button");
|
|
1670
|
+
E.forEach((c, C) => {
|
|
1671
|
+
const l = o[C];
|
|
1672
|
+
if (l) {
|
|
1673
|
+
const p = l.querySelector(".tab-button-icon"), g = l.querySelector(".tab-button-label");
|
|
1674
|
+
p && (p.innerHTML = c.icon), g && (g.textContent = c.label), l.dataset.tab = C.toString(), l.addEventListener("click", () => {
|
|
1675
|
+
this.setCurrentPaymentMethod(C);
|
|
1676
|
+
});
|
|
1677
|
+
}
|
|
1678
|
+
});
|
|
1679
|
+
}
|
|
1680
|
+
this.displayTabLayout();
|
|
1681
|
+
}
|
|
1682
|
+
_setup() {
|
|
1683
|
+
const t = document.getElementById("merchantLogo"), e = document.getElementById("merchantLogoMob"), A = document.getElementById("mob-action-btns"), n = document.getElementById("merchant-email"), s = document.querySelector("#mob-container");
|
|
1684
|
+
if (n && (n.innerHTML = this.email), this.isMobile) {
|
|
1685
|
+
e && e.setAttribute("src", I), s && (s.innerHTML = this.mobileContainerContent());
|
|
1607
1686
|
let i = document.querySelector(".mob-options");
|
|
1608
1687
|
i && this.viewMobileOptions(i);
|
|
1609
|
-
const
|
|
1610
|
-
E.forEach((
|
|
1611
|
-
const
|
|
1612
|
-
|
|
1613
|
-
this.setCurrentPaymentMethod(
|
|
1688
|
+
const o = document.querySelectorAll(".mob-tab-button");
|
|
1689
|
+
E.forEach((c, C) => {
|
|
1690
|
+
const l = o[C];
|
|
1691
|
+
l && (l.dataset.tab = C.toString(), l.addEventListener("click", () => {
|
|
1692
|
+
this.setCurrentPaymentMethod(C);
|
|
1614
1693
|
}));
|
|
1615
|
-
}),
|
|
1694
|
+
}), A && this.currentPaymentMethod === 3 && (A.classList.add("hidden"), A.classList.remove("md:hidden"));
|
|
1616
1695
|
} else {
|
|
1617
|
-
|
|
1696
|
+
t && t.setAttribute("src", I);
|
|
1618
1697
|
let i = document.querySelector(".payment-options");
|
|
1619
1698
|
i && (i.innerHTML = `<div>
|
|
1620
1699
|
${E.map(
|
|
1621
|
-
(
|
|
1700
|
+
(c, C) => `
|
|
1622
1701
|
<div class="tab">
|
|
1623
|
-
<button class="tab-button group" data-tab="${
|
|
1702
|
+
<button class="tab-button group" data-tab="${C}">
|
|
1624
1703
|
<div class="min-w-8 md:container-center lg:block">
|
|
1625
|
-
${
|
|
1704
|
+
${c.icon}
|
|
1626
1705
|
</div>
|
|
1627
|
-
<span>${
|
|
1706
|
+
<span>${c.label}</span>
|
|
1628
1707
|
</button>
|
|
1629
1708
|
</div>
|
|
1630
1709
|
`
|
|
1631
1710
|
).join("")}
|
|
1632
1711
|
</div>`);
|
|
1633
|
-
const
|
|
1634
|
-
E.forEach((
|
|
1635
|
-
const
|
|
1636
|
-
if (
|
|
1637
|
-
const
|
|
1638
|
-
|
|
1639
|
-
this.setCurrentPaymentMethod(
|
|
1712
|
+
const o = document.querySelectorAll(".tab-button");
|
|
1713
|
+
E.forEach((c, C) => {
|
|
1714
|
+
const l = o[C];
|
|
1715
|
+
if (l) {
|
|
1716
|
+
const p = l.querySelector(".tab-button-icon"), g = l.querySelector(".tab-button-label");
|
|
1717
|
+
p && (p.innerHTML = c.icon), g && (g.textContent = c.label), l.dataset.tab = C.toString(), l.addEventListener("click", () => {
|
|
1718
|
+
this.setCurrentPaymentMethod(C);
|
|
1640
1719
|
});
|
|
1641
1720
|
}
|
|
1642
1721
|
});
|
|
@@ -1664,16 +1743,19 @@ class c1 {
|
|
|
1664
1743
|
</div>
|
|
1665
1744
|
</div>`;
|
|
1666
1745
|
}
|
|
1667
|
-
viewMobileOptions(
|
|
1668
|
-
|
|
1669
|
-
${E.
|
|
1670
|
-
|
|
1746
|
+
viewMobileOptions(t) {
|
|
1747
|
+
t.innerHTML = `
|
|
1748
|
+
${E.filter((e) => {
|
|
1749
|
+
var A;
|
|
1750
|
+
return (((A = this.merchantPlanDetail) == null ? void 0 : A.paymentMethods) || []).includes(e.key);
|
|
1751
|
+
}).map(
|
|
1752
|
+
(e, A) => `
|
|
1671
1753
|
<div class="tab">
|
|
1672
|
-
<button class="mob-tab-button py-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${
|
|
1754
|
+
<button class="mob-tab-button py-3 px-2 grow align-center text-grey-600 tex-sm font-semibold" data-tab="${A}">
|
|
1673
1755
|
<div class="min-w-8 mr-3 align-center">
|
|
1674
|
-
${
|
|
1756
|
+
${e.icon}
|
|
1675
1757
|
</div>
|
|
1676
|
-
<span>${
|
|
1758
|
+
<span>${e.label}</span>
|
|
1677
1759
|
</button>
|
|
1678
1760
|
</div>
|
|
1679
1761
|
`
|
|
@@ -1682,10 +1764,237 @@ class c1 {
|
|
|
1682
1764
|
cleanup() {
|
|
1683
1765
|
this.transfer && this.transfer.destroyTimer();
|
|
1684
1766
|
}
|
|
1767
|
+
closeModal(t) {
|
|
1768
|
+
this.modalContainer && this.modalContainer.parentNode && document.body.removeChild(this.modalContainer), t && t();
|
|
1769
|
+
}
|
|
1770
|
+
setupParent(t) {
|
|
1771
|
+
t && t();
|
|
1772
|
+
}
|
|
1773
|
+
render() {
|
|
1774
|
+
return `
|
|
1775
|
+
<aside class="px-2 py-4 md:flex justify-center w-[250px] bg-[#f4f4ff] overflow-auto hidden">
|
|
1776
|
+
<div class="w-full py-8">
|
|
1777
|
+
<div class="container-center">
|
|
1778
|
+
<img src="" alt="Nba Logo" id="merchantLogo" class="hidden md:flex" />
|
|
1779
|
+
</div>
|
|
1780
|
+
<h5 class="text-xl font-semibold text-common pt-10 pb-4 text-center">PAYMENT OPTIONS</h5>
|
|
1781
|
+
<div class="payment-options">
|
|
1782
|
+
|
|
1783
|
+
<!-- Tab options -->
|
|
1784
|
+
</div>
|
|
1785
|
+
</div>
|
|
1786
|
+
</aside>
|
|
1787
|
+
<div class="main" id="main">
|
|
1788
|
+
<div class="container-center w-full bg-primary-lighter">
|
|
1789
|
+
<img src="" alt="Nba Logo" id="merchantLogoMob" class="md:hidden" />
|
|
1790
|
+
</div>
|
|
1791
|
+
<div id="mob-tab-co">
|
|
1792
|
+
|
|
1793
|
+
</div>
|
|
1794
|
+
<button type="button"
|
|
1795
|
+
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>
|
|
1796
|
+
|
|
1797
|
+
<div class="box-container relative max-sm:py-4 max-sm:px-4">
|
|
1798
|
+
<!-- header -->
|
|
1799
|
+
<div class="header-container">
|
|
1800
|
+
<div class="container-between border-b border-b-white pb-[9.6px]">
|
|
1801
|
+
<p class="text-xs" id="merchant-email"></p>
|
|
1802
|
+
<p class="text-xs" id="plan-name">-</p>
|
|
1803
|
+
</div>
|
|
1804
|
+
<div class="container-between pt-[9.6px] pb-[6.4px]">
|
|
1805
|
+
<div class="align-center">
|
|
1806
|
+
<p class="text-sm mr-1" id="payment-rate-display">USD 1 = NGN 1</p>
|
|
1807
|
+
<div class="group relative flex flex-col items-center cursor-pointer">
|
|
1808
|
+
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
1809
|
+
<path
|
|
1810
|
+
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"
|
|
1811
|
+
fill="#CCCCE8" />
|
|
1812
|
+
<path
|
|
1813
|
+
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"
|
|
1814
|
+
fill="#CCCCE8" />
|
|
1815
|
+
<path fill-rule="evenodd" clip-rule="evenodd"
|
|
1816
|
+
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"
|
|
1817
|
+
fill="#CCCCE8" />
|
|
1818
|
+
</svg>
|
|
1819
|
+
|
|
1820
|
+
<div class="tooltip">
|
|
1821
|
+
<div class="tooltip-textbox">
|
|
1822
|
+
<p class="tooltip-title">
|
|
1823
|
+
What is this?
|
|
1824
|
+
</p>
|
|
1825
|
+
<p class="tooltip-text">
|
|
1826
|
+
This rate reflects the current exchange rate for
|
|
1827
|
+
converting United States Dollars (USD) to Nigerian Naira
|
|
1828
|
+
(NGN). Please note that exchange rates are subject to
|
|
1829
|
+
change and may vary slightly at the time of the
|
|
1830
|
+
transaction.
|
|
1831
|
+
</p>
|
|
1832
|
+
</div>
|
|
1833
|
+
</div>
|
|
1834
|
+
</div>
|
|
1835
|
+
</div>
|
|
1836
|
+
<div>
|
|
1837
|
+
<p class="text-sm"> Pay
|
|
1838
|
+
<span id="container-payment-text"> USD 0</span>
|
|
1839
|
+
</p>
|
|
1840
|
+
</div>
|
|
1841
|
+
|
|
1842
|
+
</div>
|
|
1843
|
+
|
|
1844
|
+
<div class="flex justify-end">
|
|
1845
|
+
<div id="header-chip-amount" class="header-chip">
|
|
1846
|
+
NGN 1
|
|
1847
|
+
</div>
|
|
1848
|
+
</div>
|
|
1849
|
+
</div>
|
|
1850
|
+
<!-- body -->
|
|
1851
|
+
<div class="box-container-method">
|
|
1852
|
+
<div class="content active" data-content="0">
|
|
1853
|
+
</div>
|
|
1854
|
+
<div class="content" data-content="1"></div>
|
|
1855
|
+
<div class="content" data-content="2"></div>
|
|
1856
|
+
</div>
|
|
1857
|
+
|
|
1858
|
+
<div id="mob-container" class="md:hidden">
|
|
1859
|
+
|
|
1860
|
+
|
|
1861
|
+
</div>
|
|
1862
|
+
<!-- footer -->
|
|
1863
|
+
<div class="container-between gap-2 mt-20 mb-8 md:hidden" id="mob-action-btns">
|
|
1864
|
+
<button type="button" class="button-outline px-3 w-auto" id="change-method">
|
|
1865
|
+
<span class="text-[10px] mr-1">x</span> Change Payment Method
|
|
1866
|
+
</button>
|
|
1867
|
+
<button type="button" class="button-outline px-6 w-auto close-btn">
|
|
1868
|
+
<span class="text-[10px] mr-1">x</span> Cancel Payment
|
|
1869
|
+
</button>
|
|
1870
|
+
</div>
|
|
1871
|
+
<div class="container-center pt-2 pb-8 gap-1">
|
|
1872
|
+
<svg width="10" height="12" viewBox="0 0 10 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
1873
|
+
<path
|
|
1874
|
+
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"
|
|
1875
|
+
fill="#6D6A73" />
|
|
1876
|
+
</svg>
|
|
1877
|
+
|
|
1878
|
+
<p class="text-[10px] text-grey-100">
|
|
1879
|
+
PCI DSS Certified
|
|
1880
|
+
</p>
|
|
1881
|
+
</div>
|
|
1882
|
+
</div>
|
|
1883
|
+
</div>
|
|
1884
|
+
`;
|
|
1885
|
+
}
|
|
1886
|
+
}
|
|
1887
|
+
class g1 {
|
|
1888
|
+
constructor(t) {
|
|
1889
|
+
a(this, "container");
|
|
1890
|
+
this.container = t;
|
|
1891
|
+
}
|
|
1892
|
+
renderContent(t) {
|
|
1893
|
+
this.container.innerHTML = this.render();
|
|
1894
|
+
const e = document.getElementById("error-message-div");
|
|
1895
|
+
e && (e.classList.remove("hidden"), e.innerHTML = t || "Failed");
|
|
1896
|
+
}
|
|
1897
|
+
render() {
|
|
1898
|
+
return `
|
|
1899
|
+
<div class="box-container">
|
|
1900
|
+
<button type="button"
|
|
1901
|
+
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>
|
|
1902
|
+
<div class="container-center h-[40vh] hidden mx-auto" id="shared-error-container">
|
|
1903
|
+
<img src="" alt="error gif" class=" h-[50px] w-16" />
|
|
1904
|
+
<div id="error-message-div" class="hidden"></div>
|
|
1905
|
+
</div>
|
|
1906
|
+
</div>
|
|
1907
|
+
`;
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
class m1 {
|
|
1911
|
+
constructor(t) {
|
|
1912
|
+
a(this, "container");
|
|
1913
|
+
this.container = t;
|
|
1914
|
+
}
|
|
1915
|
+
renderContent() {
|
|
1916
|
+
return this.container;
|
|
1917
|
+
}
|
|
1918
|
+
mountLoader() {
|
|
1919
|
+
this.container.innerHTML = this.render();
|
|
1920
|
+
}
|
|
1921
|
+
updateMessage(t) {
|
|
1922
|
+
const e = document.getElementById("loader-message");
|
|
1923
|
+
e && (e.textContent = t, e.classList.remove("hidden"));
|
|
1924
|
+
}
|
|
1925
|
+
render() {
|
|
1926
|
+
return `
|
|
1927
|
+
<div class="box-container">
|
|
1928
|
+
<div class="container-center h-[40vh] hidden" id="loader">
|
|
1929
|
+
<img src="" alt="loader gif" />
|
|
1930
|
+
<div id="loader-message" class="hidden"></div>
|
|
1931
|
+
</div>
|
|
1932
|
+
</div>
|
|
1933
|
+
`;
|
|
1934
|
+
}
|
|
1935
|
+
}
|
|
1936
|
+
const E1 = "data:image/png;base64,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";
|
|
1937
|
+
class B1 {
|
|
1938
|
+
constructor(t, e, A, n, s) {
|
|
1939
|
+
a(this, "modalContainer");
|
|
1940
|
+
a(this, "currentPaymentMethod");
|
|
1941
|
+
a(this, "currentStep");
|
|
1942
|
+
a(this, "mainLayout");
|
|
1943
|
+
a(this, "encryption");
|
|
1944
|
+
a(this, "container");
|
|
1945
|
+
a(this, "mainScreen");
|
|
1946
|
+
a(this, "mainError");
|
|
1947
|
+
a(this, "mainLoader");
|
|
1948
|
+
a(this, "merchantPlanDetail", {});
|
|
1949
|
+
a(this, "merchantKey");
|
|
1950
|
+
a(this, "planId");
|
|
1951
|
+
a(this, "email");
|
|
1952
|
+
a(this, "amount");
|
|
1953
|
+
a(this, "isMobile", !1);
|
|
1954
|
+
var c;
|
|
1955
|
+
if (this.encryption = e, this.modalContainer = document.createElement("div"), this.modalContainer.innerHTML = X, this.merchantKey = t, this.email = A, this.amount = n || 0, !t || !A)
|
|
1956
|
+
throw this.closeModal(), new Error("Merchant key or email is required");
|
|
1957
|
+
document.body.appendChild(this.modalContainer), this.planId = s || "", this.isMobile = window.matchMedia("(max-width: 767px)").matches, this.currentPaymentMethod = this.isMobile ? 3 : 0, this.currentStep = 1;
|
|
1958
|
+
const i = document.getElementById("main-layout-container-screen");
|
|
1959
|
+
if (!i) throw new Error("SDK Layout not available");
|
|
1960
|
+
this.mainLayout = i, this.mainScreen = new p1(
|
|
1961
|
+
this.mainLayout,
|
|
1962
|
+
this.modalContainer,
|
|
1963
|
+
t,
|
|
1964
|
+
this.encryption,
|
|
1965
|
+
A,
|
|
1966
|
+
n
|
|
1967
|
+
), this.mainLoader = new m1(this.mainLayout), this.mainError = new g1(this.mainLayout), this.mainLoader.mountLoader();
|
|
1968
|
+
const o = this.mainLayout.querySelector("#loader");
|
|
1969
|
+
o && (o.classList.remove("hidden"), o.parentElement.classList.add("mx-auto"), (c = o.querySelector("img")) == null || c.setAttribute("src", b)), this.container = document.querySelectorAll(".content")[0];
|
|
1970
|
+
}
|
|
1971
|
+
closeBTN() {
|
|
1972
|
+
const t = document.body.querySelectorAll(".close-btn"), e = Array.from(t);
|
|
1973
|
+
e.length > 0 && e.forEach((A) => {
|
|
1974
|
+
A.addEventListener("click", () => {
|
|
1975
|
+
this.closeModal();
|
|
1976
|
+
});
|
|
1977
|
+
});
|
|
1978
|
+
}
|
|
1979
|
+
setup() {
|
|
1980
|
+
this.getPlanDetails();
|
|
1981
|
+
}
|
|
1982
|
+
getPlanDetails() {
|
|
1983
|
+
A1(this.merchantKey, this.planId).then((t) => {
|
|
1984
|
+
this.merchantPlanDetail = t, this.mainScreen.mountScreen(this.merchantPlanDetail);
|
|
1985
|
+
}).catch((t) => {
|
|
1986
|
+
var A;
|
|
1987
|
+
this.mainError.renderContent((t == null ? void 0 : t.message) || "Failed to called payment");
|
|
1988
|
+
const e = this.mainLayout.querySelector("#shared-error-container");
|
|
1989
|
+
e && (e.classList.remove("hidden"), e.parentElement.classList.add("mx-auto"), (A = e.querySelector("img")) == null || A.setAttribute("src", E1)), console.error({ err: t }), this.closeBTN();
|
|
1990
|
+
}).finally(() => {
|
|
1991
|
+
console.log("plan detail merchant informatio reached");
|
|
1992
|
+
});
|
|
1993
|
+
}
|
|
1685
1994
|
closeModal() {
|
|
1686
|
-
this.modalContainer && this.modalContainer.parentNode && document.body.removeChild(this.modalContainer);
|
|
1995
|
+
this.modalContainer && this.modalContainer.parentNode && document.body.removeChild(this.modalContainer), this.mainScreen.closeModal();
|
|
1687
1996
|
}
|
|
1688
1997
|
}
|
|
1689
1998
|
export {
|
|
1690
|
-
|
|
1999
|
+
B1 as CheckoutForm
|
|
1691
2000
|
};
|