PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / v3 / src / assets / js / common / phone.js
ameliabooking / v3 / src / assets / js / common Last commit date
appointments.js 1 day ago attendees.js 1 month ago colorManipulation.js 1 month ago customer.js 1 month ago date.js 1 month ago defaultCustomize.js 1 month ago employee.js 1 week ago events.js 1 month ago formFieldsTemplates.js 1 month ago formatting.js 1 month ago helper.js 1 week ago image.js 1 month ago integrationApple.js 1 month ago integrationGoogle.js 1 month ago integrationOutlook.js 1 month ago integrationRazorpay.js 1 day ago integrationStripe.js 1 month ago integrationZoom.js 1 month ago licence.js 1 month ago liveAnnouncer.js 1 month ago phone.js 1 month ago pricing.js 1 month ago recurring.js 1 week ago responsive.js 1 month ago scrollElements.js 1 month ago settings.js 1 month ago translationsElementPlus.js 1 day ago utilHeaderHeight.js 1 month ago whiteLabel.js 1 day ago
phone.js
54 lines
1 import { parsePhoneNumberFromString } from 'libphonenumber-js'
2
3 /**
4 * Returns phone value with country calling code (e.g. +381641234567).
5 *
6 * @param {string|number|null|undefined} value
7 * @param {import('maz-ui/components').MazInputPhoneNumberData|null|undefined} phoneData
8 * @param {string|undefined|null} countryCode
9 * @returns {string}
10 */
11 export function getInternationalPhoneValue(value, phoneData, countryCode) {
12 const normalizedValue = value == null ? '' : String(value).trim()
13
14 if (!normalizedValue && !phoneData?.nationalNumber) {
15 return ''
16 }
17
18 if (phoneData?.e164) {
19 return phoneData.e164
20 }
21
22 if (phoneData?.formatInternational) {
23 return phoneData.formatInternational.replace(/\s+/g, '')
24 }
25
26 if (normalizedValue.startsWith('+')) {
27 return normalizedValue.replace(/\s+/g, '')
28 }
29
30 const country = (phoneData?.countryCode || phoneData?.parsedCountryCode || countryCode || '')
31 .toString()
32 .toUpperCase()
33
34 if (country && normalizedValue) {
35 const parsed = parsePhoneNumberFromString(normalizedValue, country)
36
37 if (parsed) {
38 return parsed.format('E.164')
39 }
40 }
41
42 if (phoneData?.countryCallingCode && phoneData?.nationalNumber) {
43 return `+${phoneData.countryCallingCode}${phoneData.nationalNumber}`
44 }
45
46 if (phoneData?.countryCallingCode && normalizedValue) {
47 const nationalDigits = normalizedValue.replace(/\D/g, '')
48
49 return nationalDigits ? `+${phoneData.countryCallingCode}${nationalDigits}` : ''
50 }
51
52 return normalizedValue
53 }
54