57 lines
1.8 KiB
JavaScript
57 lines
1.8 KiB
JavaScript
(function attachGoPayUtils(root, factory) {
|
|
root.GoPayUtils = factory();
|
|
})(typeof self !== 'undefined' ? self : globalThis, function createGoPayUtils() {
|
|
const PLUS_PAYMENT_METHOD_PAYPAL = 'paypal';
|
|
const PLUS_PAYMENT_METHOD_GOPAY = 'gopay';
|
|
|
|
function normalizePlusPaymentMethod(value = '') {
|
|
return String(value || '').trim().toLowerCase() === PLUS_PAYMENT_METHOD_GOPAY
|
|
? PLUS_PAYMENT_METHOD_GOPAY
|
|
: PLUS_PAYMENT_METHOD_PAYPAL;
|
|
}
|
|
|
|
const DEFAULT_GOPAY_COUNTRY_CODE = '+86';
|
|
|
|
function normalizeGoPayCountryCode(value = '') {
|
|
const normalized = String(value || '').trim().replace(/[^\d+]/g, '');
|
|
const digits = normalized.replace(/\D/g, '');
|
|
return digits ? `+${digits}` : DEFAULT_GOPAY_COUNTRY_CODE;
|
|
}
|
|
|
|
function normalizeGoPayPhone(value = '') {
|
|
return String(value || '').trim().replace(/[^\d+]/g, '');
|
|
}
|
|
|
|
function normalizeGoPayPhoneForCountry(value = '', countryCode = DEFAULT_GOPAY_COUNTRY_CODE) {
|
|
const normalizedPhone = normalizeGoPayPhone(value);
|
|
const normalizedCountryCode = normalizeGoPayCountryCode(countryCode);
|
|
const countryDigits = normalizedCountryCode.replace(/\D/g, '');
|
|
let nationalNumber = normalizedPhone.replace(/\D/g, '');
|
|
|
|
if (countryDigits && nationalNumber.startsWith(countryDigits)) {
|
|
nationalNumber = nationalNumber.slice(countryDigits.length);
|
|
}
|
|
return nationalNumber;
|
|
}
|
|
|
|
function normalizeGoPayPin(value = '') {
|
|
return String(value || '').trim().replace(/[^\d]/g, '');
|
|
}
|
|
|
|
function normalizeGoPayOtp(value = '') {
|
|
return String(value || '').trim().replace(/[^\d]/g, '');
|
|
}
|
|
|
|
return {
|
|
DEFAULT_GOPAY_COUNTRY_CODE,
|
|
PLUS_PAYMENT_METHOD_GOPAY,
|
|
PLUS_PAYMENT_METHOD_PAYPAL,
|
|
normalizeGoPayCountryCode,
|
|
normalizeGoPayPhone,
|
|
normalizeGoPayPhoneForCountry,
|
|
normalizeGoPayOtp,
|
|
normalizeGoPayPin,
|
|
normalizePlusPaymentMethod,
|
|
};
|
|
});
|