@jmt-code/phone-selector
Version:
Beautiful React component for country selection with flag images, phone input validation, and elegant glassmorphism design. Features dynamic mask templates and 150+ countries support.
1 lines • 57 kB
Source Map (JSON)
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/countries.ts","../src/lib/CountryPhoneInput.tsx"],"names":["applyMaskWithTemplate","digits","mask","out","digitIndex","i","maskChar","maskDigitsRequired","c","sanitizeDigits","value","formatWithCountry","country","localDigits","formatted","minRequired","maxRequired","digitCount","isValid","flagImageFromISO2","iso2","flagEmojiFromISO2","specialFlags","upperIso","COUNTRY_DATA","mapped","defaultCountries","findCountryByIso","countries","fallback","CountryPhoneInput","onChange","initialCountry","className","placeholder","size","disabled","iso","setIso","useState","useMemo","setLocalDigits","useEffect","emitChange","nextDigits","nextCountry","f","v","payload","onCountryChange","e","nextIso","onInputChange","inputValue","maxDigits","displayValue","inputPlaceholder","sizeClass","jsxs","jsx","a","b"],"mappings":"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AAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAC9D,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAC9D,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAC9D,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAC9D,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,qBAC9D,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAC9D,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAC9D,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAC9D,GAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA,CAAQ,GAAM,oBAAA,CAAQ,EAAA,CAAM,oBAAA,CAC9D,EAAA,CAAM,oBAAA,CAAQ,EAAA,CAAM,qBAAQ,EAAA,CAAM,oBAAA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","file":"index.cjs","sourcesContent":["import type { Country } from './types';\r\n\r\n// Mask uses '9' as digit placeholder, other chars are literals\r\nexport function applyMask(digits: string, mask: string): string {\r\n const out: string[] = [];\r\n let di = 0;\r\n for (let i = 0; i < mask.length; i++) {\r\n const m = mask[i];\r\n if (m === '9') {\r\n if (di < digits.length) {\r\n out.push(digits[di++]);\r\n } else {\r\n break;\r\n }\r\n } else {\r\n out.push(m);\r\n }\r\n }\r\n return out.join('');\r\n}\r\n\r\n// New function: Apply mask showing the complete template with placeholders\r\nexport function applyMaskWithTemplate(digits: string, mask: string): string {\r\n const out: string[] = [];\r\n let digitIndex = 0;\r\n \r\n for (let i = 0; i < mask.length; i++) {\r\n const maskChar = mask[i];\r\n if (maskChar === '9') {\r\n if (digitIndex < digits.length) {\r\n // Use the actual digit\r\n out.push(digits[digitIndex]);\r\n digitIndex++;\r\n } else {\r\n // Use a subtle placeholder for empty positions\r\n out.push('·');\r\n }\r\n } else {\r\n // Use literal character (separators like '(', ')', ' ', '-')\r\n out.push(maskChar);\r\n }\r\n }\r\n return out.join('');\r\n}\r\n\r\nexport function maskDigitsRequired(mask: string): number {\r\n return [...mask].filter(c => c === '9').length;\r\n}\r\n\r\nexport function isMaskedComplete(digits: string, mask: string): boolean {\r\n return digits.replace(/\\D/g, '').length >= maskDigitsRequired(mask);\r\n}\r\n\r\nexport function sanitizeDigits(value: string): string {\r\n return (value || '').replace(/\\D/g, '');\r\n}\r\n\r\nexport function getDynamicPlaceholder(mask: string, digits: string): string {\r\n // Generate a smart placeholder that shows the next expected separator\r\n // Examples: \r\n // - \"(999) 999-9999\" → \"(\" when empty, \") \" after 3 digits, \"-\" after 6 digits\r\n // - \"999 999 999\" → \"\" when empty, \" \" after 3 digits\r\n // - \"99 99 99 99 99\" → \"\" when empty, \" \" after 2 digits\r\n if (!mask) return '';\r\n \r\n let digitCount = 0;\r\n let nextSeparator = '';\r\n \r\n for (let i = 0; i < mask.length; i++) {\r\n const char = mask[i];\r\n \r\n if (char === '9') {\r\n digitCount++;\r\n // If we've matched all current digits, look for next separator\r\n if (digitCount > digits.length) {\r\n break;\r\n }\r\n } else {\r\n // This is a separator/fixed character\r\n if (digitCount === digits.length) {\r\n // We've matched all current digits, this is the next separator to show\r\n nextSeparator = char;\r\n // Look ahead to see if there are more consecutive separators\r\n let j = i + 1;\r\n while (j < mask.length && mask[j] !== '9') {\r\n nextSeparator += mask[j];\r\n j++;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n \r\n return nextSeparator;\r\n}\r\n\r\nexport function formatWithCountry(country: Country, localDigits: string): { formatted: string; isValid: boolean } {\r\n const formatted = applyMaskWithTemplate(localDigits, country.mask);\r\n const minRequired = country.minDigits ?? maskDigitsRequired(country.mask);\r\n const maxRequired = country.maxDigits ?? maskDigitsRequired(country.mask);\r\n const digitCount = localDigits.length;\r\n const isValid = digitCount >= minRequired && digitCount <= maxRequired;\r\n return { formatted, isValid };\r\n}\r\n\r\nexport function flagImageFromISO2(iso2: string): string {\r\n if (!iso2 || iso2.length !== 2) return 'https://flagcdn.com/w20/xx.png';\r\n \r\n // Use flagcdn.com for reliable flag images\r\n const lowerIso = iso2.toLowerCase();\r\n return `https://flagcdn.com/w20/${lowerIso}.png`;\r\n}\r\n\r\nexport function flagEmojiFromISO2(iso2: string): string {\r\n if (!iso2 || iso2.length !== 2) return '�';\r\n \r\n // Special cases for better flag support\r\n const specialFlags: Record<string, string> = {\r\n 'AD': '🇦🇩', 'AE': '🇦🇪', 'AF': '🇦🇫', 'AG': '🇦🇬', 'AL': '🇦🇱',\r\n 'AM': '🇦🇲', 'AO': '🇦🇴', 'AR': '🇦🇷', 'AT': '🇦🇹', 'AU': '🇦🇺',\r\n 'AZ': '🇦🇿', 'BA': '🇧🇦', 'BB': '🇧🇧', 'BD': '🇧🇩', 'BE': '🇧🇪',\r\n 'BF': '🇧🇫', 'BG': '🇧🇬', 'BH': '🇧🇭', 'BI': '🇧🇮', 'BJ': '🇧🇯',\r\n 'BN': '🇧🇳', 'BO': '🇧🇴', 'BR': '🇧🇷', 'BS': '🇧🇸', 'BT': '🇧🇹',\r\n 'BW': '🇧🇼', 'BY': '🇧🇾', 'BZ': '🇧🇿', 'CA': '🇨🇦', 'CD': '🇨🇩',\r\n 'CF': '🇨🇫', 'CG': '🇨🇬', 'CH': '🇨🇭', 'CI': '🇨🇮', 'CK': '🇨🇰',\r\n 'CL': '🇨🇱', 'CM': '🇨🇲', 'CN': '🇨🇳', 'CO': '🇨🇴', 'CR': '🇨🇷',\r\n 'CU': '🇨🇺', 'CV': '🇨🇻', 'CY': '🇨🇾', 'CZ': '🇨🇿', 'DE': '🇩🇪',\r\n 'DJ': '🇩🇯', 'DK': '🇩🇰', 'DM': '🇩🇲', 'DO': '🇩🇴', 'DZ': '🇩🇿',\r\n 'EC': '🇪🇨', 'EE': '🇪🇪', 'EG': '🇪🇬', 'EH': '🇪🇭', 'ER': '🇪🇷',\r\n 'ES': '🇪🇸', 'ET': '🇪🇹', 'FI': '🇫🇮', 'FJ': '🇫🇯', 'FM': '🇫🇲',\r\n 'FO': '🇫🇴', 'FR': '🇫🇷', 'GA': '🇬🇦', 'GB': '🇬🇧', 'GD': '🇬🇩',\r\n 'GE': '🇬🇪', 'GG': '🇬🇬', 'GH': '🇬🇭', 'GI': '🇬🇮', 'GL': '🇬🇱',\r\n 'GM': '🇬🇲', 'GN': '🇬🇳', 'GQ': '🇬🇶', 'GR': '🇬🇷', 'GT': '🇬🇹',\r\n 'GU': '🇬🇺', 'GW': '🇬🇼', 'GY': '🇬🇾', 'HK': '🇭🇰', 'HN': '🇭🇳',\r\n 'HR': '🇭🇷', 'HT': '🇭🇹', 'HU': '🇭🇺', 'ID': '🇮🇩', 'IE': '🇮🇪',\r\n 'IL': '🇮🇱', 'IM': '🇮🇲', 'IN': '🇮🇳', 'IQ': '🇮🇶', 'IR': '🇮🇷',\r\n 'IS': '🇮🇸', 'IT': '🇮🇹', 'JE': '🇯🇪', 'JM': '🇯🇲', 'JO': '🇯🇴',\r\n 'JP': '🇯🇵', 'KE': '🇰🇪', 'KG': '🇰🇬', 'KH': '🇰🇭', 'KI': '🇰🇮',\r\n 'KM': '🇰🇲', 'KN': '🇰🇳', 'KP': '🇰🇵', 'KR': '🇰🇷', 'KW': '🇰🇼',\r\n 'KY': '🇰🇾', 'KZ': '🇰🇿', 'LA': '🇱🇦', 'LB': '🇱🇧', 'LC': '🇱🇨',\r\n 'LI': '🇱🇮', 'LK': '🇱🇰', 'LR': '🇱🇷', 'LS': '🇱🇸', 'LT': '🇱🇹',\r\n 'LU': '🇱🇺', 'LV': '🇱🇻', 'LY': '🇱🇾', 'MA': '🇲🇦', 'MC': '🇲🇨',\r\n 'MD': '🇲🇩', 'ME': '🇲🇪', 'MG': '🇲🇬', 'MH': '🇲🇭', 'MK': '🇲🇰',\r\n 'ML': '🇲🇱', 'MM': '🇲🇲', 'MN': '🇲🇳', 'MO': '🇲🇴', 'MP': '🇲🇵',\r\n 'MR': '🇲🇷', 'MT': '🇲🇹', 'MU': '🇲🇺', 'MV': '🇲🇻', 'MW': '🇲🇼',\r\n 'MX': '🇲🇽', 'MY': '🇲🇾', 'MZ': '🇲🇿', 'NA': '🇳🇦', 'NC': '🇳🇨',\r\n 'NE': '🇳🇪', 'NG': '🇳🇬', 'NI': '🇳🇮', 'NL': '🇳🇱', 'NO': '🇳🇴',\r\n 'NP': '🇳🇵', 'NR': '🇳🇷', 'NU': '🇳🇺', 'NZ': '🇳🇿', 'OM': '🇴🇲',\r\n 'PA': '🇵🇦', 'PE': '🇵🇪', 'PF': '🇵🇫', 'PG': '🇵🇬', 'PH': '🇵🇭',\r\n 'PK': '🇵🇰', 'PL': '🇵🇱', 'PR': '🇵🇷', 'PS': '🇵🇸', 'PT': '🇵🇹',\r\n 'PW': '🇵🇼', 'PY': '🇵🇾', 'QA': '🇶🇦', 'RE': '🇷🇪', 'RO': '🇷🇴',\r\n 'RS': '🇷🇸', 'RU': '🇷🇺', 'RW': '🇷🇼', 'SA': '🇸🇦', 'SB': '🇸🇧',\r\n 'SC': '🇸🇨', 'SD': '🇸🇩', 'SE': '🇸🇪', 'SG': '🇸🇬', 'SI': '🇸🇮',\r\n 'SK': '🇸🇰', 'SL': '🇸🇱', 'SM': '🇸🇲', 'SN': '🇸🇳', 'SO': '🇸🇴',\r\n 'SR': '🇸🇷', 'SS': '🇸🇸', 'ST': '🇸🇹', 'SV': '🇸🇻', 'SX': '🇸🇽',\r\n 'SY': '🇸🇾', 'SZ': '🇸🇿', 'TC': '🇹🇨', 'TD': '🇹🇩', 'TG': '🇹🇬',\r\n 'TH': '🇹🇭', 'TJ': '🇹🇯', 'TK': '🇹🇰', 'TL': '🇹🇱', 'TM': '🇹🇲',\r\n 'TN': '🇹🇳', 'TO': '🇹🇴', 'TR': '🇹🇷', 'TT': '🇹🇹', 'TV': '🇹🇻',\r\n 'TW': '🇹🇼', 'TZ': '🇹🇿', 'UA': '🇺🇦', 'UG': '🇺🇬', 'US': '🇺🇸',\r\n 'UY': '🇺🇾', 'UZ': '🇺🇿', 'VA': '🇻🇦', 'VC': '🇻🇨', 'VE': '🇻🇪',\r\n 'VG': '🇻🇬', 'VI': '🇻🇮', 'VN': '🇻🇳', 'VU': '🇻🇺', 'WF': '🇼🇫',\r\n 'WS': '🇼🇸', 'XK': '🇽🇰', 'YE': '🇾🇪', 'YT': '🇾🇹', 'ZA': '🇿🇦',\r\n 'ZM': '🇿🇲', 'ZW': '🇿🇼'\r\n };\r\n\r\n const upperIso = iso2.toUpperCase();\r\n return specialFlags[upperIso] || '🌍';\r\n}\r\n","import type { Country } from './types';\r\nimport { flagImageFromISO2 } from './utils';\r\n\r\ntype CountryBase = { \r\n name: string; \r\n iso2: string; \r\n dialCode: string; \r\n mask?: string;\r\n minDigits?: number;\r\n maxDigits?: number;\r\n};\r\n\r\n// Expanded list of countries with ISO2 and dial codes. Masks default to NANP for +1 and generic otherwise.\r\n// Note: You can override masks by passing your own countries prop.\r\nconst COUNTRY_DATA: CountryBase[] = [\r\n // North America (NANP uses +1)\r\n { name: 'United States', iso2: 'US', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Canada', iso2: 'CA', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Dominican Republic', iso2: 'DO', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Puerto Rico', iso2: 'PR', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Jamaica', iso2: 'JM', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Trinidad and Tobago', iso2: 'TT', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Barbados', iso2: 'BB', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Bahamas', iso2: 'BS', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Saint Lucia', iso2: 'LC', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Saint Kitts and Nevis', iso2: 'KN', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Saint Vincent and the Grenadines', iso2: 'VC', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Grenada', iso2: 'GD', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Antigua and Barbuda', iso2: 'AG', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Dominica', iso2: 'DM', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Cayman Islands', iso2: 'KY', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Bermuda', iso2: 'BM', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Turks and Caicos Islands', iso2: 'TC', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'British Virgin Islands', iso2: 'VG', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'U.S. Virgin Islands', iso2: 'VI', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Guam', iso2: 'GU', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Northern Mariana Islands', iso2: 'MP', dialCode: '+1', mask: '(999) 999-9999' },\r\n { name: 'Sint Maarten', iso2: 'SX', dialCode: '+1', mask: '(999) 999-9999' },\r\n\r\n // Latin America\r\n { name: 'Mexico', iso2: 'MX', dialCode: '+52', mask: '99 9999 9999', minDigits: 10, maxDigits: 10 },\r\n { name: 'Guatemala', iso2: 'GT', dialCode: '+502', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'El Salvador', iso2: 'SV', dialCode: '+503', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Honduras', iso2: 'HN', dialCode: '+504', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Nicaragua', iso2: 'NI', dialCode: '+505', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Costa Rica', iso2: 'CR', dialCode: '+506', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Panama', iso2: 'PA', dialCode: '+507', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Belize', iso2: 'BZ', dialCode: '+501', mask: '999 9999', minDigits: 7, maxDigits: 7 },\r\n { name: 'Cuba', iso2: 'CU', dialCode: '+53', mask: '9 999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Haiti', iso2: 'HT', dialCode: '+509', mask: '99 99 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Dominican Republic', iso2: 'DO', dialCode: '+1', mask: '(999) 999-9999', minDigits: 10, maxDigits: 10 },\r\n { name: 'Colombia', iso2: 'CO', dialCode: '+57', mask: '999 999 9999', minDigits: 10, maxDigits: 10 },\r\n { name: 'Venezuela', iso2: 'VE', dialCode: '+58', mask: '999 999 9999', minDigits: 10, maxDigits: 10 },\r\n { name: 'Ecuador', iso2: 'EC', dialCode: '+593', mask: '99 999 9999', minDigits: 8, maxDigits: 9 },\r\n { name: 'Peru', iso2: 'PE', dialCode: '+51', mask: '999 999 999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Bolivia', iso2: 'BO', dialCode: '+591', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Paraguay', iso2: 'PY', dialCode: '+595', mask: '999 999999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Uruguay', iso2: 'UY', dialCode: '+598', mask: '9999 9999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Argentina', iso2: 'AR', dialCode: '+54', mask: '99 9999 9999', minDigits: 10, maxDigits: 11 },\r\n { name: 'Chile', iso2: 'CL', dialCode: '+56', mask: '9 9999 9999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Brazil', iso2: 'BR', dialCode: '+55', mask: '99 99999 9999', minDigits: 10, maxDigits: 11 },\r\n { name: 'Guyana', iso2: 'GY', dialCode: '+592', mask: '999 9999', minDigits: 7, maxDigits: 7 },\r\n { name: 'Suriname', iso2: 'SR', dialCode: '+597', mask: '999 9999', minDigits: 7, maxDigits: 7 },\r\n\r\n // Europe\r\n { name: 'Spain', iso2: 'ES', dialCode: '+34', mask: '999 999 999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Portugal', iso2: 'PT', dialCode: '+351', mask: '999 999 999', minDigits: 9, maxDigits: 9 },\r\n { name: 'France', iso2: 'FR', dialCode: '+33', mask: '99 99 99 99 99', minDigits: 10, maxDigits: 10 },\r\n { name: 'Andorra', iso2: 'AD', dialCode: '+376', mask: '999 999', minDigits: 6, maxDigits: 6 },\r\n { name: 'Monaco', iso2: 'MC', dialCode: '+377', mask: '99 99 99 99', minDigits: 8, maxDigits: 8 },\r\n { name: 'Italy', iso2: 'IT', dialCode: '+39', mask: '999 999 9999', minDigits: 8, maxDigits: 11 },\r\n { name: 'San Marino', iso2: 'SM', dialCode: '+378', mask: '9999 999999', minDigits: 10, maxDigits: 10 },\r\n { name: \"Vatican City\", iso2: 'VA', dialCode: '+39', mask: '99 9999 9999', minDigits: 10, maxDigits: 10 },\r\n { name: 'United Kingdom', iso2: 'GB', dialCode: '+44', mask: '99999 999999', minDigits: 10, maxDigits: 11 },\r\n { name: 'Ireland', iso2: 'IE', dialCode: '+353', mask: '99 999 9999', minDigits: 8, maxDigits: 9 },\r\n { name: 'Iceland', iso2: 'IS', dialCode: '+354', mask: '999 9999', minDigits: 7, maxDigits: 7 },\r\n { name: 'Norway', iso2: 'NO', dialCode: '+47', mask: '999 99 999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Sweden', iso2: 'SE', dialCode: '+46', mask: '99 999 99 99', minDigits: 9, maxDigits: 9 },\r\n { name: 'Finland', iso2: 'FI', dialCode: '+358', mask: '99 999 9999', minDigits: 9, maxDigits: 10 },\r\n { name: 'Denmark', iso2: 'DK', dialCode: '+45', mask: '99 99 99 99', minDigits: 8, maxDigits: 8 },\r\n { name: 'Netherlands', iso2: 'NL', dialCode: '+31', mask: '9 9999 9999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Belgium', iso2: 'BE', dialCode: '+32', mask: '999 99 99 99', minDigits: 8, maxDigits: 9 },\r\n { name: 'Germany', iso2: 'DE', dialCode: '+49', mask: '9999 9999999', minDigits: 10, maxDigits: 12 },\r\n { name: 'Poland', iso2: 'PL', dialCode: '+48', mask: '999 999 999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Czechia', iso2: 'CZ', dialCode: '+420', mask: '999 999 999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Slovakia', iso2: 'SK', dialCode: '+421', mask: '999 999 999', minDigits: 9, maxDigits: 9 },\r\n { name: 'Austria', iso2: 'AT', dialCode: '+43', mask: '999 9999999', minDigits: 10, maxDigits: 11 },\r\n { name: 'Switzerland', iso2: 'CH', dialCode: '+41', mask: '99 999 99 99', minDigits: 9, maxDigits: 9 },\r\n { name: 'Hungary', iso2: 'HU', dialCode: '+36', mask: '99 999 9999', minDigits: 8, maxDigits: 9 },\r\n { name: 'Slovenia', iso2: 'SI', dialCode: '+386', mask: '99 999 999', minDigits: 8, maxDigits: 8 },\r\n { name: 'Croatia', iso2: 'HR', dialCode: '+385' },\r\n { name: 'Bosnia and Herzegovina', iso2: 'BA', dialCode: '+387' },\r\n { name: 'Serbia', iso2: 'RS', dialCode: '+381' },\r\n { name: 'Montenegro', iso2: 'ME', dialCode: '+382' },\r\n { name: 'Kosovo', iso2: 'XK', dialCode: '+383' },\r\n { name: 'North Macedonia', iso2: 'MK', dialCode: '+389' },\r\n { name: 'Albania', iso2: 'AL', dialCode: '+355' },\r\n { name: 'Greece', iso2: 'GR', dialCode: '+30' },\r\n { name: 'Romania', iso2: 'RO', dialCode: '+40' },\r\n { name: 'Bulgaria', iso2: 'BG', dialCode: '+359' },\r\n { name: 'Moldova', iso2: 'MD', dialCode: '+373' },\r\n { name: 'Ukraine', iso2: 'UA', dialCode: '+380' },\r\n { name: 'Belarus', iso2: 'BY', dialCode: '+375' },\r\n { name: 'Lithuania', iso2: 'LT', dialCode: '+370' },\r\n { name: 'Latvia', iso2: 'LV', dialCode: '+371' },\r\n { name: 'Estonia', iso2: 'EE', dialCode: '+372' },\r\n\r\n // Africa\r\n { name: 'Morocco', iso2: 'MA', dialCode: '+212' },\r\n { name: 'Algeria', iso2: 'DZ', dialCode: '+213' },\r\n { name: 'Tunisia', iso2: 'TN', dialCode: '+216' },\r\n { name: 'Libya', iso2: 'LY', dialCode: '+218' },\r\n { name: 'Egypt', iso2: 'EG', dialCode: '+20' },\r\n { name: 'Western Sahara', iso2: 'EH', dialCode: '+212' },\r\n { name: 'Mauritania', iso2: 'MR', dialCode: '+222' },\r\n { name: 'Mali', iso2: 'ML', dialCode: '+223' },\r\n { name: 'Senegal', iso2: 'SN', dialCode: '+221' },\r\n { name: 'Gambia', iso2: 'GM', dialCode: '+220' },\r\n { name: 'Guinea-Bissau', iso2: 'GW', dialCode: '+245' },\r\n { name: 'Guinea', iso2: 'GN', dialCode: '+224' },\r\n { name: 'Sierra Leone', iso2: 'SL', dialCode: '+232' },\r\n { name: 'Liberia', iso2: 'LR', dialCode: '+231' },\r\n { name: 'Ivory Coast', iso2: 'CI', dialCode: '+225' },\r\n { name: 'Ghana', iso2: 'GH', dialCode: '+233' },\r\n { name: 'Burkina Faso', iso2: 'BF', dialCode: '+226' },\r\n { name: 'Togo', iso2: 'TG', dialCode: '+228' },\r\n { name: 'Benin', iso2: 'BJ', dialCode: '+229' },\r\n { name: 'Niger', iso2: 'NE', dialCode: '+227' },\r\n { name: 'Nigeria', iso2: 'NG', dialCode: '+234' },\r\n { name: 'Cameroon', iso2: 'CM', dialCode: '+237' },\r\n { name: 'Chad', iso2: 'TD', dialCode: '+235' },\r\n { name: 'Central African Republic', iso2: 'CF', dialCode: '+236' },\r\n { name: 'Equatorial Guinea', iso2: 'GQ', dialCode: '+240' },\r\n { name: 'Gabon', iso2: 'GA', dialCode: '+241' },\r\n { name: 'Republic of the Congo', iso2: 'CG', dialCode: '+242' },\r\n { name: 'DR Congo', iso2: 'CD', dialCode: '+243' },\r\n { name: 'Sao Tome and Principe', iso2: 'ST', dialCode: '+239' },\r\n { name: 'Angola', iso2: 'AO', dialCode: '+244' },\r\n { name: 'Cape Verde', iso2: 'CV', dialCode: '+238' },\r\n { name: 'South Sudan', iso2: 'SS', dialCode: '+211' },\r\n { name: 'Sudan', iso2: 'SD', dialCode: '+249' },\r\n { name: 'Ethiopia', iso2: 'ET', dialCode: '+251' },\r\n { name: 'Eritrea', iso2: 'ER', dialCode: '+291' },\r\n { name: 'Djibouti', iso2: 'DJ', dialCode: '+253' },\r\n { name: 'Somalia', iso2: 'SO', dialCode: '+252' },\r\n { name: 'Kenya', iso2: 'KE', dialCode: '+254' },\r\n { name: 'Uganda', iso2: 'UG', dialCode: '+256' },\r\n { name: 'Tanzania', iso2: 'TZ', dialCode: '+255' },\r\n { name: 'Rwanda', iso2: 'RW', dialCode: '+250' },\r\n { name: 'Burundi', iso2: 'BI', dialCode: '+257' },\r\n { name: 'Seychelles', iso2: 'SC', dialCode: '+248' },\r\n { name: 'Comoros', iso2: 'KM', dialCode: '+269' },\r\n { name: 'Mauritius', iso2: 'MU', dialCode: '+230' },\r\n { name: 'Madagascar', iso2: 'MG', dialCode: '+261' },\r\n { name: 'Reunion', iso2: 'RE', dialCode: '+262' },\r\n { name: 'Mayotte', iso2: 'YT', dialCode: '+262' },\r\n { name: 'Mozambique', iso2: 'MZ', dialCode: '+258' },\r\n { name: 'Zambia', iso2: 'ZM', dialCode: '+260' },\r\n { name: 'Zimbabwe', iso2: 'ZW', dialCode: '+263' },\r\n { name: 'Namibia', iso2: 'NA', dialCode: '+264' },\r\n { name: 'Botswana', iso2: 'BW', dialCode: '+267' },\r\n { name: 'Eswatini', iso2: 'SZ', dialCode: '+268' },\r\n { name: 'Lesotho', iso2: 'LS', dialCode: '+266' },\r\n { name: 'South Africa', iso2: 'ZA', dialCode: '+27' },\r\n { name: 'Malawi', iso2: 'MW', dialCode: '+265' },\r\n\r\n // Middle East / West Asia\r\n { name: 'Turkey', iso2: 'TR', dialCode: '+90' },\r\n { name: 'Cyprus', iso2: 'CY', dialCode: '+357' },\r\n { name: 'Israel', iso2: 'IL', dialCode: '+972' },\r\n { name: 'Palestine', iso2: 'PS', dialCode: '+970' },\r\n { name: 'Lebanon', iso2: 'LB', dialCode: '+961' },\r\n { name: 'Jordan', iso2: 'JO', dialCode: '+962' },\r\n { name: 'Syria', iso2: 'SY', dialCode: '+963' },\r\n { name: 'Iraq', iso2: 'IQ', dialCode: '+964' },\r\n { name: 'Kuwait', iso2: 'KW', dialCode: '+965' },\r\n { name: 'Saudi Arabia', iso2: 'SA', dialCode: '+966' },\r\n { name: 'Yemen', iso2: 'YE', dialCode: '+967' },\r\n { name: 'Oman', iso2: 'OM', dialCode: '+968' },\r\n { name: 'United Arab Emirates', iso2: 'AE', dialCode: '+971' },\r\n { name: 'Qatar', iso2: 'QA', dialCode: '+974' },\r\n { name: 'Bahrain', iso2: 'BH', dialCode: '+973' },\r\n { name: 'Iran', iso2: 'IR', dialCode: '+98' },\r\n\r\n // South Asia\r\n { name: 'Afghanistan', iso2: 'AF', dialCode: '+93' },\r\n { name: 'Pakistan', iso2: 'PK', dialCode: '+92' },\r\n { name: 'India', iso2: 'IN', dialCode: '+91' },\r\n { name: 'Bangladesh', iso2: 'BD', dialCode: '+880' },\r\n { name: 'Sri Lanka', iso2: 'LK', dialCode: '+94' },\r\n { name: 'Nepal', iso2: 'NP', dialCode: '+977' },\r\n { name: 'Bhutan', iso2: 'BT', dialCode: '+975' },\r\n { name: 'Maldives', iso2: 'MV', dialCode: '+960' },\r\n\r\n // Central Asia\r\n { name: 'Kazakhstan', iso2: 'KZ', dialCode: '+7' },\r\n { name: 'Kyrgyzstan', iso2: 'KG', dialCode: '+996' },\r\n { name: 'Tajikistan', iso2: 'TJ', dialCode: '+992' },\r\n { name: 'Turkmenistan', iso2: 'TM', dialCode: '+993' },\r\n { name: 'Uzbekistan', iso2: 'UZ', dialCode: '+998' },\r\n\r\n // East Asia\r\n { name: 'China', iso2: 'CN', dialCode: '+86' },\r\n { name: 'Hong Kong', iso2: 'HK', dialCode: '+852' },\r\n { name: 'Macau', iso2: 'MO', dialCode: '+853' },\r\n { name: 'Taiwan', iso2: 'TW', dialCode: '+886' },\r\n { name: 'Mongolia', iso2: 'MN', dialCode: '+976' },\r\n { name: 'North Korea', iso2: 'KP', dialCode: '+850' },\r\n { name: 'South Korea', iso2: 'KR', dialCode: '+82' },\r\n { name: 'Japan', iso2: 'JP', dialCode: '+81' },\r\n\r\n // Southeast Asia\r\n { name: 'Myanmar', iso2: 'MM', dialCode: '+95' },\r\n { name: 'Thailand', iso2: 'TH', dialCode: '+66' },\r\n { name: 'Laos', iso2: 'LA', dialCode: '+856' },\r\n { name: 'Cambodia', iso2: 'KH', dialCode: '+855' },\r\n { name: 'Vietnam', iso2: 'VN', dialCode: '+84' },\r\n { name: 'Malaysia', iso2: 'MY', dialCode: '+60' },\r\n { name: 'Singapore', iso2: 'SG', dialCode: '+65' },\r\n { name: 'Brunei', iso2: 'BN', dialCode: '+673' },\r\n { name: 'Philippines', iso2: 'PH', dialCode: '+63' },\r\n { name: 'Indonesia', iso2: 'ID', dialCode: '+62' },\r\n { name: 'East Timor', iso2: 'TL', dialCode: '+670' },\r\n\r\n // Oceania\r\n { name: 'Australia', iso2: 'AU', dialCode: '+61' },\r\n { name: 'New Zealand', iso2: 'NZ', dialCode: '+64' },\r\n { name: 'Fiji', iso2: 'FJ', dialCode: '+679' },\r\n { name: 'Papua New Guinea', iso2: 'PG', dialCode: '+675' },\r\n { name: 'Solomon Islands', iso2: 'SB', dialCode: '+677' },\r\n { name: 'Vanuatu', iso2: 'VU', dialCode: '+678' },\r\n { name: 'Samoa', iso2: 'WS', dialCode: '+685' },\r\n { name: 'Tonga', iso2: 'TO', dialCode: '+676' },\r\n { name: 'Kiribati', iso2: 'KI', dialCode: '+686' },\r\n { name: 'Tuvalu', iso2: 'TV', dialCode: '+688' },\r\n { name: 'Nauru', iso2: 'NR', dialCode: '+674' },\r\n { name: 'Palau', iso2: 'PW', dialCode: '+680' },\r\n { name: 'Marshall Islands', iso2: 'MH', dialCode: '+692' },\r\n { name: 'Micronesia', iso2: 'FM', dialCode: '+691' },\r\n