@everymatrix/cashier-method-details 1.43.3 → 1.43.4
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@everymatrix/cashier-method-details",
|
3
|
-
"version": "1.43.
|
3
|
+
"version": "1.43.4",
|
4
4
|
"main": "index.js",
|
5
5
|
"svelte": "src/index.ts",
|
6
6
|
"scripts": {
|
@@ -35,5 +35,5 @@
|
|
35
35
|
"publishConfig": {
|
36
36
|
"access": "public"
|
37
37
|
},
|
38
|
-
"gitHead": "
|
38
|
+
"gitHead": "8464c47cb49b4ffa1c9debfac3a7dfc3097cf57a"
|
39
39
|
}
|
@@ -252,8 +252,9 @@
|
|
252
252
|
let showErrorModal = false;
|
253
253
|
let transactionId = '';
|
254
254
|
let showSpinner: boolean = false;
|
255
|
+
let abortController = new AbortController();
|
255
256
|
|
256
|
-
$: endpoint && session && selectedpaymentmethodname && currency &&
|
257
|
+
$: endpoint && session && selectedpaymentmethodname && currency && initMethod();
|
257
258
|
$: clientstyling && customStylingContainer && setClientStyling();
|
258
259
|
$: clientstylingurl && customStylingContainer && setClientStylingURL();
|
259
260
|
$: lang && setActiveLanguage();
|
@@ -262,7 +263,7 @@
|
|
262
263
|
$: fields.length && qrCodeContainer.length && generateQr();
|
263
264
|
$: fields.length && flatpickrEl.length && createDatePicker();
|
264
265
|
|
265
|
-
const
|
266
|
+
const initMethod = () => {
|
266
267
|
if (flatpickrEl.length) {
|
267
268
|
flatpickrEl.forEach(el => {
|
268
269
|
if (!el) {
|
@@ -305,6 +306,12 @@
|
|
305
306
|
})
|
306
307
|
}
|
307
308
|
|
309
|
+
const reinitMethod = (e) => {
|
310
|
+
if (abortController?.signal?.aborted && selectedpaymentmethodname === e.detail.Name) {
|
311
|
+
initMethod()
|
312
|
+
}
|
313
|
+
}
|
314
|
+
|
308
315
|
const createDatePicker = () => {
|
309
316
|
const dateOptions = {
|
310
317
|
[FieldTypes.Time]: {
|
@@ -369,6 +376,9 @@
|
|
369
376
|
});
|
370
377
|
|
371
378
|
const getPaymentDetails = () => {
|
379
|
+
abortPaymentFetch();
|
380
|
+
abortController = new AbortController();
|
381
|
+
const signal = abortController.signal;
|
372
382
|
showSpinner = true;
|
373
383
|
const url:URL = new URL(`${endpoint}/v1/player/${customerid}/payment/GetPaymentMethod`);
|
374
384
|
const headers = new Headers();
|
@@ -386,41 +396,53 @@
|
|
386
396
|
})
|
387
397
|
}
|
388
398
|
fetch(url, requestParams).then(res => res.json()).then(data => {
|
389
|
-
if (
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
399
|
+
if (!signal.aborted) {
|
400
|
+
if (data.error) {
|
401
|
+
window.postMessage({type: 'ShowSessionError', error: data.error}, window.location.href)
|
402
|
+
return;
|
403
|
+
}
|
404
|
+
if (data.ResponseCode === ResponseCode.PlayerSessionIsNotValid
|
405
|
+
|| data.ResponseCode === ResponseCode.Maintenance
|
406
|
+
|| data.ResponseCode === ResponseCode.JwtTokenError) {
|
407
|
+
errorResponseCode = data.ResponseCode;
|
408
|
+
setErrorResponseCode();
|
409
|
+
return;
|
410
|
+
}
|
411
|
+
if (data.ResponseCode !== ResponseCode.Success) {
|
412
|
+
errorResponseCode = data.ResponseCode;
|
413
|
+
return;
|
414
|
+
}
|
415
|
+
xPaymentSessionToken = data.XPaymentSessionToken;
|
416
|
+
selectedPaymentMethod = data.PaymentMethod;
|
417
|
+
editedAmount = Number(amount);
|
418
|
+
if (!selectedPaymentMethod.HideAmountField) {
|
419
|
+
validateAmount();
|
420
|
+
} else {
|
421
|
+
amountError = '';
|
422
|
+
}
|
423
|
+
fields = selectedPaymentMethod.Fields && selectedPaymentMethod.Fields.map(field => new PaymentMethodDetails(field));
|
424
|
+
fields.forEach(field => {
|
425
|
+
if (field?.defaultValue) {
|
426
|
+
prepareFields[field.name] = field.defaultValue;
|
427
|
+
}
|
428
|
+
validateField(field);
|
429
|
+
})
|
430
|
+
setConfirmModalInfo();
|
397
431
|
setErrorResponseCode();
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
432
|
+
hideMethodsList();
|
433
|
+
window.postMessage({
|
434
|
+
type: 'StartSessionCountdown',
|
435
|
+
xPaymentSessionToken,
|
436
|
+
selectedPaymentMethodName: selectedpaymentmethodname
|
437
|
+
}, window.location.href);
|
403
438
|
}
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
}
|
412
|
-
fields = selectedPaymentMethod.Fields && selectedPaymentMethod.Fields.map(field => new PaymentMethodDetails(field));
|
413
|
-
fields.forEach(field => {
|
414
|
-
if (field?.defaultValue) {
|
415
|
-
prepareFields[field.name] = field.defaultValue;
|
416
|
-
}
|
417
|
-
validateField(field);
|
418
|
-
})
|
419
|
-
setConfirmModalInfo();
|
420
|
-
setErrorResponseCode();
|
421
|
-
hideMethodsList();
|
422
|
-
window.postMessage({ type: 'StartSessionCountdown', xPaymentSessionToken, selectedPaymentMethodName: selectedpaymentmethodname }, window.location.href);
|
423
|
-
}).finally(() => showSpinner = false)
|
439
|
+
}).finally(() => { showSpinner = signal.aborted })
|
440
|
+
}
|
441
|
+
|
442
|
+
const abortPaymentFetch = ():void => {
|
443
|
+
if (abortController) {
|
444
|
+
abortController.abort();
|
445
|
+
}
|
424
446
|
}
|
425
447
|
|
426
448
|
const setClientStyling = ():void => {
|
@@ -466,6 +488,7 @@
|
|
466
488
|
window.addEventListener('confirmModal', confirmTxn, false);
|
467
489
|
window.addEventListener('closeIframe', closeIframe, false);
|
468
490
|
window.addEventListener('notificationButtonClick', retryRedirect, false);
|
491
|
+
window.addEventListener('selectPayMeth', reinitMethod, false)
|
469
492
|
document.addEventListener('click',closeAllLookups);
|
470
493
|
window.addEventListener('message', messageHandler, false);
|
471
494
|
dayjs.extend(customParseFormat);
|
@@ -475,6 +498,7 @@
|
|
475
498
|
window.removeEventListener('confirmModal', confirmTxn);
|
476
499
|
window.removeEventListener('closeIframe', closeIframe);
|
477
500
|
window.removeEventListener('notificationButtonClick', retryRedirect);
|
501
|
+
window.removeEventListener('selectPayMeth', reinitMethod, false)
|
478
502
|
window.removeEventListener('message', messageHandler);
|
479
503
|
}
|
480
504
|
});
|
@@ -594,6 +618,9 @@
|
|
594
618
|
}
|
595
619
|
|
596
620
|
const hidePaymentDetails = () => {
|
621
|
+
if (showSpinner) {
|
622
|
+
abortPaymentFetch()
|
623
|
+
}
|
597
624
|
dispatchEvent(new CustomEvent('hidePaymentDetails', {
|
598
625
|
detail: { hideMethodDetails: mobileView },
|
599
626
|
bubbles: true,
|
@@ -797,6 +824,12 @@
|
|
797
824
|
return ''
|
798
825
|
}
|
799
826
|
|
827
|
+
const keydownHandler = (event: KeyboardEvent) => {
|
828
|
+
const invalidKeys = ['+','-','e','E'];
|
829
|
+
if (invalidKeys.includes(event.key)) {
|
830
|
+
event.preventDefault();
|
831
|
+
}
|
832
|
+
}
|
800
833
|
const validateAmount = () => {
|
801
834
|
amountError = emptyAmountError() || minAmountError() ||
|
802
835
|
maxAmountError() || amountMultiplierError() ||
|
@@ -869,6 +902,7 @@
|
|
869
902
|
<input type="number"
|
870
903
|
bind:value={editedAmount}
|
871
904
|
on:input={() => validateAmount()}
|
905
|
+
on:keydown={(event) => keydownHandler(event)}
|
872
906
|
on:blur={() => {showError['amount'] = true; validateAmount()}}
|
873
907
|
placeholder="{$_('amountPlaceholder')}"
|
874
908
|
>
|