UNPKG

material-ui-phone-number

Version:

A material-ui react component to format phone numbers. Based on react-phone-input-2

1,571 lines (1,558 loc) 23.6 kB
// Country model: // [ // Country name, // Regions, // iso2 code, // International dial code, // Format (if available), // Order (if >1 country with same dial code), // Area codes (if >1 country with same dial code) // ] // // Regions: // ['america', 'europe', 'asia', 'oceania', 'africa'] // // Sub-regions: // ['north-america', 'south-america', 'central-america', 'carribean', // 'european-union', 'ex-ussr', 'middle-east', 'north-africa'] const rawAllCountries = [ [ 'Afghanistan', ['asia'], 'af', '93', ], [ 'Albania', ['europe'], 'al', '355', ], [ 'Algeria', ['africa', 'north-africa'], 'dz', '213', ], [ 'American Samoa', ['oceania'], 'as', '1684', ], [ 'Andorra', ['europe'], 'ad', '376', ], [ 'Angola', ['africa'], 'ao', '244', ], [ 'Anguilla', ['america', 'carribean'], 'ai', '1264', ], [ 'Antigua and Barbuda', ['america', 'carribean'], 'ag', '1268', ], [ 'Argentina', ['america', 'south-america'], 'ar', '54', '+.. (..) ........', ], [ 'Armenia', ['asia', 'ex-ussr'], 'am', '374', ], [ 'Aruba', ['america', 'carribean'], 'aw', '297', ], [ 'Australia', ['oceania'], 'au', '61', '+.. ... ... ...', ], [ 'Austria', ['europe', 'european-union'], 'at', '43', ], [ 'Azerbaijan', ['asia', 'ex-ussr'], 'az', '994', ], [ 'Bahamas', ['america', 'carribean'], 'bs', '1242', ], [ 'Bahrain', ['middle-east'], 'bh', '973', ], [ 'Bangladesh', ['asia'], 'bd', '880', ], [ 'Barbados', ['america', 'carribean'], 'bb', '1246', ], [ 'Belarus', ['europe', 'ex-ussr'], 'by', '375', '+... (..) ... .. ..', ], [ 'Belgium', ['europe', 'european-union'], 'be', '32', '+.. ... .. .. ..', ], [ 'Belize', ['america', 'central-america'], 'bz', '501', ], [ 'Benin', ['africa'], 'bj', '229', '+... .... ....', ], [ 'Bermuda', ['america', 'north-america'], 'bm', '1441', ], [ 'Bhutan', ['asia'], 'bt', '975', ], [ 'Bolivia', ['america', 'south-america'], 'bo', '591', ], [ 'Bosnia and Herzegovina', ['europe'], 'ba', '387', ], [ 'Botswana', ['africa'], 'bw', '267', ], [ 'Brazil', ['america', 'south-america'], 'br', '55', '+.. (..) .........', ], [ 'British Indian Ocean Territory', ['asia'], 'io', '246', ], [ 'British Virgin Islands', ['america', 'carribean'], 'vg', '1284', ], [ 'Brunei', ['asia'], 'bn', '673', ], [ 'Bulgaria', ['europe', 'european-union'], 'bg', '359', ], [ 'Burkina Faso', ['africa'], 'bf', '226', '+... .. .. .. ..', ], [ 'Burundi', ['africa'], 'bi', '257', '+... .. .. .. ..', ], [ 'Cambodia', ['asia'], 'kh', '855', ], [ 'Cameroon', ['africa'], 'cm', '237', ], [ 'Canada', ['america', 'north-america'], 'ca', '1', '+. (...) ...-....', 1, ['204', '236', '249', '250', '289', '306', '343', '365', '387', '403', '416', '418', '431', '437', '438', '450', '506', '514', '519', '548', '579', '581', '587', '604', '613', '639', '647', '672', '705', '709', '742', '778', '780', '782', '807', '819', '825', '867', '873', '902', '905'], ], [ 'Cape Verde', ['africa'], 'cv', '238', '+... ... .. ..', ], [ 'Caribbean Netherlands', ['america', 'carribean'], 'bq', '599', '', 1, ], [ 'Cayman Islands', ['america', 'carribean'], 'ky', '1345', ], [ 'Central African Republic', ['africa'], 'cf', '236', '+... .... ....', ], [ 'Chad', ['africa'], 'td', '235', '+... .. .. .. ..', ], [ 'Chile', ['america', 'south-america'], 'cl', '56', ], [ 'China', ['asia'], 'cn', '86', '+.. ..-.........', ], [ 'Colombia', ['america', 'south-america'], 'co', '57', ], [ 'Comoros', ['africa'], 'km', '269', '+... ... ....', ], [ 'Congo', ['africa'], 'cd', '243', ], [ 'Congo', ['africa'], 'cg', '242', '+... .. .. .....', ], [ 'Cook Islands', ['oceania'], 'ck', '682', ], [ 'Costa Rica', ['america', 'central-america'], 'cr', '506', '+... ....-....', ], [ 'Côte d’Ivoire', ['africa'], 'ci', '225', '+... .. .. .. ..', ], [ 'Croatia', ['europe', 'european-union'], 'hr', '385', ], [ 'Cuba', ['america', 'carribean'], 'cu', '53', ], [ 'Curaçao', ['america', 'carribean'], 'cw', '599', '', 0, ], [ 'Cyprus', ['europe', 'european-union'], 'cy', '357', '+... .. ......', ], [ 'Czech Republic', ['europe', 'european-union'], 'cz', '420', ], [ 'Denmark', ['europe', 'european-union'], 'dk', '45', '+.. .. .. .. ..', ], [ 'Djibouti', ['africa'], 'dj', '253', ], [ 'Dominica', ['america', 'carribean'], 'dm', '1767', ], [ 'Dominican Republic', ['america', 'carribean'], 'do', '1', '', 2, ['809', '829', '849'], ], [ 'Ecuador', ['america', 'south-america'], 'ec', '593', ], [ 'Egypt', ['africa', 'north-africa'], 'eg', '20', ], [ 'El Salvador', ['america', 'central-america'], 'sv', '503', '+... ....-....', ], [ 'Equatorial Guinea', ['africa'], 'gq', '240', '+... .. ... ....', ], [ 'Eritrea', ['africa'], 'er', '291', ], [ 'Estonia', ['europe', 'european-union', 'ex-ussr'], 'ee', '372', '+... .... ......', ], [ 'Ethiopia', ['africa'], 'et', '251', ], [ 'Falkland Islands', ['america', 'south-america'], 'fk', '500', ], [ 'Faroe Islands', ['europe'], 'fo', '298', ], [ 'Fiji', ['oceania'], 'fj', '679', ], [ 'Finland', ['europe', 'european-union'], 'fi', '358', '+... .. ... .. ..', ], [ 'France', ['europe', 'european-union'], 'fr', '33', '+.. . .. .. .. ..', ], [ 'French Guiana', ['america', 'south-america'], 'gf', '594', ], [ 'French Polynesia', ['oceania'], 'pf', '689', ], [ 'Gabon', ['africa'], 'ga', '241', '+... .. .. .. ..', ], [ 'Gambia', ['africa'], 'gm', '220', ], [ 'Georgia', ['asia', 'ex-ussr'], 'ge', '995', ], [ 'Germany', ['europe', 'european-union'], 'de', '49', '+.. .... ........', ], [ 'Ghana', ['africa'], 'gh', '233', ], [ 'Gibraltar', ['europe'], 'gi', '350', ], [ 'Greece', ['europe', 'european-union'], 'gr', '30', ], [ 'Greenland', ['america'], 'gl', '299', ], [ 'Grenada', ['america', 'carribean'], 'gd', '1473', ], [ 'Guadeloupe', ['america', 'carribean'], 'gp', '590', '', 0, ], [ 'Guam', ['oceania'], 'gu', '1671', ], [ 'Guatemala', ['america', 'central-america'], 'gt', '502', '+... ....-....', ], [ 'Guinea', ['africa'], 'gn', '224', '+... . ... ....', ], [ 'Guinea-Bissau', ['africa'], 'gw', '245', ], [ 'Guyana', ['america', 'south-america'], 'gy', '592', ], [ 'Haiti', ['america', 'carribean'], 'ht', '509', '+... ....-....', ], [ 'Honduras', ['america', 'central-america'], 'hn', '504', ], [ 'Hong Kong', ['asia'], 'hk', '852', '+... .... ....', ], [ 'Hungary', ['europe', 'european-union'], 'hu', '36', ], [ 'Iceland', ['europe'], 'is', '354', '+... ... ....', ], [ 'India', ['asia'], 'in', '91', '+.. .....-.....', ], [ 'Indonesia', ['asia'], 'id', '62', ], [ 'Iran', ['middle-east'], 'ir', '98', ], [ 'Iraq', ['middle-east'], 'iq', '964', ], [ 'Ireland', ['europe', 'european-union'], 'ie', '353', '+... .. .......', ], [ 'Israel', ['middle-east'], 'il', '972', '+... ... ... ....', ], [ 'Italy', ['europe', 'european-union'], 'it', '39', '+.. ... .......', 0, ], [ 'Jamaica', ['america', 'carribean'], 'jm', '1876', ], [ 'Japan', ['asia'], 'jp', '81', '+.. .. .... ....', ], [ 'Jordan', ['middle-east'], 'jo', '962', ], [ 'Kazakhstan', ['asia', 'ex-ussr'], 'kz', '7', '+. ... ...-..-..', 1, ['313', '327', '7172', '312', '73622', '321', '324', '336', '318', '315', '325', '311', '326', '310'], ], [ 'Kenya', ['africa'], 'ke', '254', ], [ 'Kiribati', ['oceania'], 'ki', '686', ], [ 'Kosovo', ['europe'], 'ks', '383', ], [ 'Kuwait', ['middle-east'], 'kw', '965', ], [ 'Kyrgyzstan', ['asia', 'ex-ussr'], 'kg', '996', ], [ 'Laos', ['asia'], 'la', '856', ], [ 'Latvia', ['europe', 'european-union', 'ex-ussr'], 'lv', '371', ], [ 'Lebanon', ['middle-east'], 'lb', '961', ], [ 'Lesotho', ['africa'], 'ls', '266', ], [ 'Liberia', ['africa'], 'lr', '231', ], [ 'Libya', ['africa', 'north-africa'], 'ly', '218', ], [ 'Liechtenstein', ['europe'], 'li', '423', ], [ 'Lithuania', ['europe', 'european-union', 'ex-ussr'], 'lt', '370', ], [ 'Luxembourg', ['europe', 'european-union'], 'lu', '352', '+.. . ... ... ...', ], [ 'Macau', ['asia'], 'mo', '853', ], [ 'Macedonia', ['europe'], 'mk', '389', ], [ 'Madagascar', ['africa'], 'mg', '261', '+... .. . ......', ], [ 'Malawi', ['africa'], 'mw', '265', ], [ 'Malaysia', ['asia'], 'my', '60', '+.. ..-....-....', ], [ 'Maldives', ['asia'], 'mv', '960', ], [ 'Mali', ['africa'], 'ml', '223', '+... .... ....', ], [ 'Malta', ['europe', 'european-union'], 'mt', '356', ], [ 'Marshall Islands', ['oceania'], 'mh', '692', ], [ 'Martinique', ['america', 'carribean'], 'mq', '596', ], [ 'Mauritania', ['africa'], 'mr', '222', '+... .... ....', ], [ 'Mauritius', ['africa'], 'mu', '230', '+... . ... ....', ], [ 'Mexico', ['america', 'central-america'], 'mx', '52', ], [ 'Micronesia', ['oceania'], 'fm', '691', ], [ 'Moldova', ['europe'], 'md', '373', '+... (..) ..-..-..', ], [ 'Monaco', ['europe'], 'mc', '377', ], [ 'Mongolia', ['asia'], 'mn', '976', ], [ 'Montenegro', ['europe'], 'me', '382', ], [ 'Montserrat', ['america', 'carribean'], 'ms', '1664', ], [ 'Morocco', ['africa', 'north-africa'], 'ma', '212', '+212-.........', ], [ 'Mozambique', ['africa'], 'mz', '258', '+... ... ......', ], [ 'Myanmar', ['asia'], 'mm', '95', ], [ 'Namibia', ['africa'], 'na', '264', ], [ 'Nauru', ['africa'], 'nr', '674', ], [ 'Nepal', ['asia'], 'np', '977', ], [ 'Netherlands', ['europe', 'european-union'], 'nl', '31', '+.. .. ........', ], [ 'New Caledonia', ['oceania'], 'nc', '687', ], [ 'New Zealand', ['oceania'], 'nz', '64', '+.. ...-...-....', ], [ 'Nicaragua', ['america', 'central-america'], 'ni', '505', ], [ 'Niger', ['africa'], 'ne', '227', '+... .. .. .. ..', ], [ 'Nigeria', ['africa'], 'ng', '234', ], [ 'Niue', ['asia'], 'nu', '683', ], [ 'Norfolk Island', ['oceania'], 'nf', '672', ], [ 'North Korea', ['asia'], 'kp', '850', ], [ 'Northern Mariana Islands', ['oceania'], 'mp', '1670', ], [ 'Norway', ['europe'], 'no', '47', '+.. ... .. ...', ], [ 'Oman', ['middle-east'], 'om', '968', ], [ 'Pakistan', ['asia'], 'pk', '92', '+.. ...-.......', ], [ 'Palau', ['oceania'], 'pw', '680', ], [ 'Palestine', ['middle-east'], 'ps', '970', ], [ 'Panama', ['america', 'central-america'], 'pa', '507', ], [ 'Papua New Guinea', ['oceania'], 'pg', '675', ], [ 'Paraguay', ['america', 'south-america'], 'py', '595', ], [ 'Peru', ['america', 'south-america'], 'pe', '51', ], [ 'Philippines', ['asia'], 'ph', '63', '+.. .... .......', ], [ 'Poland', ['europe', 'european-union'], 'pl', '48', '+.. ...-...-...', ], [ 'Portugal', ['europe', 'european-union'], 'pt', '351', ], [ 'Puerto Rico', ['america', 'carribean'], 'pr', '1', '', 3, ['787', '939'], ], [ 'Qatar', ['middle-east'], 'qa', '974', ], [ 'Réunion', ['africa'], 're', '262', '+.. . .. .. .. ..', ], [ 'Romania', ['europe', 'european-union'], 'ro', '40', ], [ 'Russia', ['europe', 'asia', 'ex-ussr'], 'ru', '7', '+. (...) ...-..-..', 0, ], [ 'Rwanda', ['africa'], 'rw', '250', '+... ... ... ...', ], [ 'Saint Barthélemy', ['america', 'carribean'], 'bl', '590', '', 1, ], [ 'Saint Helena', ['africa'], 'sh', '290', ], [ 'Saint Kitts and Nevis', ['america', 'carribean'], 'kn', '1869', ], [ 'Saint Lucia', ['america', 'carribean'], 'lc', '1758', ], [ 'Saint Martin', ['america', 'carribean'], 'mf', '590', '', 2, ], [ 'Saint Pierre and Miquelon', ['america', 'north-america'], 'pm', '508', ], [ 'Saint Vincent and the Grenadines', ['america', 'carribean'], 'vc', '1784', ], [ 'Samoa', ['oceania'], 'ws', '685', ], [ 'San Marino', ['europe'], 'sm', '378', ], [ 'São Tomé and Príncipe', ['africa'], 'st', '239', '+... ... ....', ], [ 'Saudi Arabia', ['middle-east'], 'sa', '966', ], [ 'Senegal', ['africa'], 'sn', '221', '+... .. ... .. ..', ], [ 'Serbia', ['europe'], 'rs', '381', ], [ 'Seychelles', ['africa'], 'sc', '248', '+... ... ....', // from https://en.wikipedia.org/wiki/Telephone_numbers_in_Seychelles ], [ 'Sierra Leone', ['africa'], 'sl', '232', ], [ 'Singapore', ['asia'], 'sg', '65', '+.. ....-....', ], [ 'Sint Maarten', ['america', 'carribean'], 'sx', '1721', ], [ 'Slovakia', ['europe', 'european-union'], 'sk', '421', ], [ 'Slovenia', ['europe', 'european-union'], 'si', '386', ], [ 'Solomon Islands', ['oceania'], 'sb', '677', ], [ 'Somalia', ['africa'], 'so', '252', ], [ 'South Africa', ['africa'], 'za', '27', '+.. .. ... ....', ], [ 'South Korea', ['asia'], 'kr', '82', '+.. ... .... ....', ], [ 'South Sudan', ['africa', 'north-africa'], 'ss', '211', ], [ 'Spain', ['europe', 'european-union'], 'es', '34', '+.. ... ... ...', ], [ 'Sri Lanka', ['asia'], 'lk', '94', ], [ 'Sudan', ['africa'], 'sd', '249', ], [ 'Suriname', ['america', 'south-america'], 'sr', '597', ], [ 'Swaziland', ['africa'], 'sz', '268', ], [ 'Sweden', ['europe', 'european-union'], 'se', '46', '+.. (..) ...-..-..', ], [ 'Switzerland', ['europe'], 'ch', '41', '+.. .. ... .. ..', ], [ 'Syria', ['middle-east'], 'sy', '963', ], [ 'Taiwan', ['asia'], 'tw', '886', ], [ 'Tajikistan', ['asia', 'ex-ussr'], 'tj', '992', ], [ 'Tanzania', ['africa'], 'tz', '255', ], [ 'Thailand', ['asia'], 'th', '66', ], [ 'Timor-Leste', ['asia'], 'tl', '670', ], [ 'Togo', ['africa'], 'tg', '228', '+... ... .....', ], [ 'Tokelau', ['oceania'], 'tk', '690', ], [ 'Tonga', ['oceania'], 'to', '676', ], [ 'Trinidad and Tobago', ['america', 'carribean'], 'tt', '1868', ], [ 'Tunisia', ['africa', 'north-africa'], 'tn', '216', '+... .. ... ...', ], [ 'Turkey', ['europe'], 'tr', '90', '+.. ... ... .. ..', ], [ 'Turkmenistan', ['asia', 'ex-ussr'], 'tm', '993', ], [ 'Turks and Caicos Islands', ['america', 'carribean'], 'tc', '1649', ], [ 'Tuvalu', ['asia'], 'tv', '688', ], [ 'U.S. Virgin Islands', ['america', 'carribean'], 'vi', '1340', ], [ 'Uganda', ['africa'], 'ug', '256', ], [ 'Ukraine', ['europe', 'ex-ussr'], 'ua', '380', '+... (..) ... .. ..', ], [ 'United Arab Emirates', ['middle-east'], 'ae', '971', ], [ 'United Kingdom', ['europe', 'european-union'], 'gb', '44', '+.. .... ......', ], [ 'United States', ['america', 'north-america'], 'us', '1', '+. (...) ...-....', 0, ['907', '205', '251', '256', '334', '479', '501', '870', '480', '520', '602', '623', '928', '209', '213', '310', '323', '408', '415', '510', '530', '559', '562', '619', '626', '650', '661', '707', '714', '760', '805', '818', '831', '858', '909', '916', '925', '949', '951', '303', '719', '970', '203', '860', '202', '302', '239', '305', '321', '352', '386', '407', '561', '727', '772', '813', '850', '863', '904', '941', '954', '229', '404', '478', '706', '770', '912', '808', '319', '515', '563', '641', '712', '208', '217', '309', '312', '618', '630', '708', '773', '815', '847', '219', '260', '317', '574', '765', '812', '316', '620', '785', '913', '270', '502', '606', '859', '225', '318', '337', '504', '985', '413', '508', '617', '781', '978', '301', '410', '207', '231', '248', '269', '313', '517', '586', '616', '734', '810', '906', '989', '218', '320', '507', '612', '651', '763', '952', '314', '417', '573', '636', '660', '816', '228', '601', '662', '406', '252', '336', '704', '828', '910', '919', '701', '308', '402', '603', '201', '609', '732', '856', '908', '973', '505', '575', '702', '775', '212', '315', '516', '518', '585', '607', '631', '716', '718', '845', '914', '216', '330', '419', '440', '513', '614', '740', '937', '405', '580', '918', '503', '541', '215', '412', '570', '610', '717', '724', '814', '401', '803', '843', '864', '605', '423', '615', '731', '865', '901', '931', '210', '214', '254', '281', '325', '361', '409', '432', '512', '713', '806', '817', '830', '903', '915', '936', '940', '956', '972', '979', '435', '801', '276', '434', '540', '703', '757', '804', '802', '206', '253', '360', '425', '509', '262', '414', '608', '715', '920', '304', '307'], ], [ 'Uruguay', ['america', 'south-america'], 'uy', '598', ], [ 'Uzbekistan', ['asia', 'ex-ussr'], 'uz', '998', ], [ 'Vanuatu', ['oceania'], 'vu', '678', ], [ 'Vatican City', ['europe'], 'va', '39', '+.. .. .... ....', 1, ], [ 'Venezuela', ['america', 'south-america'], 've', '58', ], [ 'Vietnam', ['asia'], 'vn', '84', ], [ 'Wallis and Futuna', ['oceania'], 'wf', '681', ], [ 'Yemen', ['middle-east'], 'ye', '967', ], [ 'Zambia', ['africa'], 'zm', '260', ], [ 'Zimbabwe', ['africa'], 'zw', '263', ], ]; const allCountryCodes = {}; function addCountryCode(iso2, dialCode, priority) { if (!(dialCode in allCountryCodes)) { allCountryCodes[dialCode] = []; } const index = priority || 0; allCountryCodes[dialCode][index] = iso2; } const allCountries = [].concat(...rawAllCountries.map((country) => { const [name, regions, iso2, dialCode, format, priority, areaCodes] = country; const countryItem = { name, regions, iso2, dialCode, priority, format: format || undefined, hasAreaCodes: areaCodes, }; const areaItems = []; if (countryItem.hasAreaCodes) { areaCodes.forEach((areaCode) => { const areaItem = { ...countryItem, regions, dialCode: `${dialCode}${areaCode}`, isAreaCode: true, }; areaItems.push(areaItem); addCountryCode(iso2, areaItem.dialCode); }); } addCountryCode( countryItem.iso2, countryItem.dialCode, countryItem.hasAreaCodes, ); return (areaItems.length > 0) ? [countryItem, ...areaItems] : [countryItem]; })); module.exports = { allCountries, allCountryCodes, };