From e9172392b53b92f04ed2a2e9f105df7197bd5b84 Mon Sep 17 00:00:00 2001 From: Oleksandr Turchyn Date: Fri, 11 Oct 2024 23:45:33 +0300 Subject: [PATCH] add the phone code selector --- app/javascript/submission_form/geo.js | 1445 +++++++++++++++++ app/javascript/submission_form/phone_step.vue | 124 +- 2 files changed, 1548 insertions(+), 21 deletions(-) create mode 100644 app/javascript/submission_form/geo.js diff --git a/app/javascript/submission_form/geo.js b/app/javascript/submission_form/geo.js new file mode 100644 index 00000000..e66fa478 --- /dev/null +++ b/app/javascript/submission_form/geo.js @@ -0,0 +1,1445 @@ +const countries = [ + { + name: 'United States', + dial: '1', + flag: '๐Ÿ‡บ๐Ÿ‡ธ', + tz: [ + 'America/New_York', + 'America/Chicago', + 'America/Denver', + 'America/Los_Angeles', + 'America/Anchorage', + 'America/Adak', + 'Pacific/Honolulu' + ] + }, + { + name: 'Afghanistan', + dial: '93', + flag: '๐Ÿ‡ฆ๐Ÿ‡ซ', + tz: ['Asia/Kabul'] + }, + { + name: 'Aland Islands', + dial: '358', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฝ', + tz: ['Europe/Mariehamn'] + }, + { + name: 'Albania', + dial: '355', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฑ', + tz: ['Europe/Tirane'] + }, + { + name: 'Algeria', + dial: '213', + flag: '๐Ÿ‡ฉ๐Ÿ‡ฟ', + tz: ['Africa/Algiers'] + }, + { + name: 'American Samoa', + dial: '1684', + flag: '๐Ÿ‡ฆ๐Ÿ‡ธ', + tz: ['Pacific/Pago_Pago'] + }, + { + name: 'Andorra', + dial: '376', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฉ', + tz: ['Europe/Andorra'] + }, + { + name: 'Angola', + dial: '244', + flag: '๐Ÿ‡ฆ๐Ÿ‡ด', + tz: ['Africa/Luanda'] + }, + { + name: 'Anguilla', + dial: '1264', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฎ', + tz: ['America/Anguilla'] + }, + { + name: 'Antigua and Barbuda', + dial: '1268', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฌ', + tz: ['America/Antigua'] + }, + { + name: 'Argentina', + dial: '54', + flag: '๐Ÿ‡ฆ๐Ÿ‡ท', + tz: [ + 'America/Argentina/Buenos_Aires', + 'America/Argentina/Catamarca', + 'America/Argentina/Cordoba', + 'America/Argentina/Jujuy', + 'America/Argentina/La_Rioja', + 'America/Argentina/Mendoza', + 'America/Argentina/Rio_Gallegos', + 'America/Argentina/Salta', + 'America/Argentina/San_Juan', + 'America/Argentina/San_Luis', + 'America/Argentina/Tucuman', + 'America/Argentina/Ushuaia' + ] + }, + { + name: 'Armenia', + dial: '374', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฒ', + tz: ['Asia/Yerevan'] + }, + { + name: 'Aruba', + dial: '297', + flag: '๐Ÿ‡ฆ๐Ÿ‡ผ', + tz: ['America/Aruba'] + }, + { + name: 'Australia', + dial: '61', + flag: '๐Ÿ‡ฆ๐Ÿ‡บ', + tz: [ + 'Australia/Adelaide', + 'Australia/Brisbane', + 'Australia/Broken_Hill', + 'Australia/Currie', + 'Australia/Darwin', + 'Australia/Eucla', + 'Australia/Hobart', + 'Australia/Lindeman', + 'Australia/Lord_Howe', + 'Australia/Melbourne', + 'Australia/Perth', + 'Australia/Sydney' + ] + }, + { + name: 'Austria', + dial: '43', + flag: '๐Ÿ‡ฆ๐Ÿ‡น', + tz: ['Europe/Vienna'] + }, + { + name: 'Azerbaijan', + dial: '994', + flag: '๐Ÿ‡ฆ๐Ÿ‡ฟ', + tz: ['Asia/Baku'] + }, + { + name: 'Bahamas', + dial: '1242', + flag: '๐Ÿ‡ง๐Ÿ‡ธ', + tz: ['America/Nassau'] + }, + { + name: 'Bahrain', + dial: '973', + flag: '๐Ÿ‡ง๐Ÿ‡ญ', + tz: ['Asia/Bahrain'] + }, + { + name: 'Bangladesh', + dial: '880', + flag: '๐Ÿ‡ง๐Ÿ‡ฉ', + tz: ['Asia/Dhaka'] + }, + { + name: 'Barbados', + dial: '1246', + flag: '๐Ÿ‡ง๐Ÿ‡ง', + tz: ['America/Barbados'] + }, + { + name: 'Belgium', + dial: '32', + flag: '๐Ÿ‡ง๐Ÿ‡ช', + tz: ['Europe/Brussels'] + }, + { + name: 'Belize', + dial: '501', + flag: '๐Ÿ‡ง๐Ÿ‡ฟ', + tz: ['America/Belize'] + }, + { + name: 'Benin', + dial: '229', + flag: '๐Ÿ‡ง๐Ÿ‡ฏ', + tz: ['Africa/Porto-Novo'] + }, + { + name: 'Bermuda', + dial: '1441', + flag: '๐Ÿ‡ง๐Ÿ‡ฒ', + tz: ['Atlantic/Bermuda'] + }, + { + name: 'Bhutan', + dial: '975', + flag: '๐Ÿ‡ง๐Ÿ‡น', + tz: ['Asia/Thimphu'] + }, + { + name: 'Bolivia', + dial: '591', + flag: '๐Ÿ‡ง๐Ÿ‡ด', + tz: ['America/La_Paz'] + }, + { + name: 'Bosnia and Herzegovina', + dial: '387', + flag: '๐Ÿ‡ง๐Ÿ‡ฆ', + tz: ['Europe/Sarajevo'] + }, + { + name: 'Botswana', + dial: '267', + flag: '๐Ÿ‡ง๐Ÿ‡ผ', + tz: ['Africa/Gaborone'] + }, + { + name: 'Brazil', + dial: '55', + flag: '๐Ÿ‡ง๐Ÿ‡ท', + tz: [ + 'America/Araguaina', + 'America/Bahia', + 'America/Belem', + 'America/Boa_Vista', + 'America/Campo_Grande', + 'America/Cuiaba', + 'America/Eirunepe', + 'America/Fortaleza', + 'America/Maceio', + 'America/Manaus', + 'America/Noronha', + 'America/Porto_Velho', + 'America/Recife', + 'America/Rio_Branco', + 'America/Santarem', + 'America/Sao_Paulo' + ] + }, + { + name: 'British Indian Ocean Territory', + dial: '246', + flag: '๐Ÿ‡ฎ๐Ÿ‡ด', + tz: ['Indian/Chagos'] + }, + { + name: 'Brunei Darussalam', + dial: '673', + flag: '๐Ÿ‡ง๐Ÿ‡ณ', + tz: ['Asia/Brunei'] + }, + { + name: 'Bulgaria', + dial: '359', + flag: '๐Ÿ‡ง๐Ÿ‡ฌ', + tz: ['Europe/Sofia'] + }, + { + name: 'Burkina Faso', + dial: '226', + flag: '๐Ÿ‡ง๐Ÿ‡ซ', + tz: ['Africa/Ouagadougou'] + }, + { + name: 'Burundi', + dial: '257', + flag: '๐Ÿ‡ง๐Ÿ‡ฎ', + tz: ['Africa/Bujumbura'] + }, + { + name: 'Cambodia', + dial: '855', + flag: '๐Ÿ‡ฐ๐Ÿ‡ญ', + tz: ['Asia/Phnom_Penh'] + }, + { + name: 'Cameroon', + dial: '237', + flag: '๐Ÿ‡จ๐Ÿ‡ฒ', + tz: ['Africa/Douala'] + }, + { + name: 'Canada', + dial: '1', + flag: '๐Ÿ‡จ๐Ÿ‡ฆ', + tz: [ + 'America/Atikokan', + 'America/Blanc-Sablon', + 'America/Cambridge_Bay', + 'America/Creston', + 'America/Dawson', + 'America/Dawson_Creek', + 'America/Edmonton', + 'America/Fort_Nelson', + 'America/Glace_Bay', + 'America/Goose_Bay', + 'America/Halifax', + 'America/Inuvik', + 'America/Iqaluit', + 'America/Moncton', + 'America/Nipigon', + 'America/Pangnirtung', + 'America/Rainy_River', + 'America/Rankin_Inlet', + 'America/Regina', + 'America/Resolute', + 'America/St_Johns', + 'America/Swift_Current', + 'America/Thunder_Bay', + 'America/Toronto', + 'America/Vancouver', + 'America/Whitehorse', + 'America/Winnipeg', + 'America/Yellowknife' + ] + }, + { + name: 'Cape Verde', + dial: '238', + flag: '๐Ÿ‡จ๐Ÿ‡ป', + tz: ['Atlantic/Cape_Verde'] + }, + { + name: 'Cayman Islands', + dial: '1345', + flag: '๐Ÿ‡ฐ๐Ÿ‡พ', + tz: ['America/Cayman'] + }, + { + name: 'Chad', + dial: '235', + flag: '๐Ÿ‡น๐Ÿ‡ฉ', + tz: ['Africa/Ndjamena'] + }, + { + name: 'Chile', + dial: '56', + flag: '๐Ÿ‡จ๐Ÿ‡ฑ', + tz: ['America/Punta_Arenas', 'America/Santiago', 'Pacific/Easter'] + }, + { + name: 'China', + dial: '86', + flag: '๐Ÿ‡จ๐Ÿ‡ณ', + tz: ['Asia/Shanghai', 'Asia/Urumqi'] + }, + { + name: 'Christmas Island', + dial: '61', + flag: '๐Ÿ‡จ๐Ÿ‡ฝ', + tz: ['Indian/Christmas'] + }, + { + name: 'Cocos (Keeling) Islands', + dial: '61', + flag: '๐Ÿ‡จ๐Ÿ‡จ', + tz: ['Indian/Cocos'] + }, + { + name: 'Colombia', + dial: '57', + flag: '๐Ÿ‡จ๐Ÿ‡ด', + tz: ['America/Bogota'] + }, + { + name: 'Comoros', + dial: '269', + flag: '๐Ÿ‡ฐ๐Ÿ‡ฒ', + tz: ['Indian/Comoro'] + }, + { + name: 'Congo, The Democratic Republic of the', + dial: '243', + flag: '๐Ÿ‡จ๐Ÿ‡ฉ', + tz: ['Africa/Kinshasa', 'Africa/Lubumbashi'] + }, + { + name: 'Cook Islands', + dial: '682', + flag: '๐Ÿ‡จ๐Ÿ‡ฐ', + tz: ['Pacific/Rarotonga'] + }, + { + name: 'Costa Rica', + dial: '506', + flag: '๐Ÿ‡จ๐Ÿ‡ท', + tz: ['America/Costa_Rica'] + }, + { + name: "Cรดte d'Ivoire", + dial: '225', + flag: '๐Ÿ‡จ๐Ÿ‡ฎ', + tz: ['Africa/Abidjan'] + }, + { + name: 'Croatia', + dial: '385', + flag: '๐Ÿ‡ญ๐Ÿ‡ท', + tz: ['Europe/Zagreb'] + }, + { + name: 'Cyprus', + dial: '357', + flag: '๐Ÿ‡จ๐Ÿ‡พ', + tz: ['Asia/Nicosia', 'Asia/Famagusta'] + }, + { + name: 'Czech Republic', + dial: '420', + flag: '๐Ÿ‡จ๐Ÿ‡ฟ', + tz: ['Europe/Prague'] + }, + { + name: 'Denmark', + dial: '45', + flag: '๐Ÿ‡ฉ๐Ÿ‡ฐ', + tz: ['Europe/Copenhagen'] + }, + { + name: 'Djibouti', + dial: '253', + flag: '๐Ÿ‡ฉ๐Ÿ‡ฏ', + tz: ['Africa/Djibouti'] + }, + { + name: 'Dominica', + dial: '1767', + flag: '๐Ÿ‡ฉ๐Ÿ‡ฒ', + tz: ['America/Dominica'] + }, + { + name: 'Dominican Republic', + dial: '1849', + flag: '๐Ÿ‡ฉ๐Ÿ‡ด', + tz: ['America/Santo_Domingo'] + }, + { + name: 'Ecuador', + dial: '593', + flag: '๐Ÿ‡ช๐Ÿ‡จ', + tz: ['America/Guayaquil', 'Pacific/Galapagos'] + }, + { + name: 'Egypt', + dial: '20', + flag: '๐Ÿ‡ช๐Ÿ‡ฌ', + tz: ['Africa/Cairo'] + }, + { + name: 'El Salvador', + dial: '503', + flag: '๐Ÿ‡ธ๐Ÿ‡ป', + tz: ['America/El_Salvador'] + }, + { + name: 'Equatorial Guinea', + dial: '240', + flag: '๐Ÿ‡ฌ๐Ÿ‡ถ', + tz: ['Africa/Malabo'] + }, + { + name: 'Eritrea', + dial: '291', + flag: '๐Ÿ‡ช๐Ÿ‡ท', + tz: ['Africa/Asmara'] + }, + { + name: 'Estonia', + dial: '372', + flag: '๐Ÿ‡ช๐Ÿ‡ช', + tz: ['Europe/Tallinn'] + }, + { + name: 'Ethiopia', + dial: '251', + flag: '๐Ÿ‡ช๐Ÿ‡น', + tz: ['Africa/Addis_Ababa'] + }, + { + name: 'Falkland Islands (Malvinas)', + dial: '500', + flag: '๐Ÿ‡ซ๐Ÿ‡ฐ', + tz: ['Atlantic/Stanley'] + }, + { + name: 'Faroe Islands', + dial: '298', + flag: '๐Ÿ‡ซ๐Ÿ‡ด', + tz: ['Atlantic/Faroe'] + }, + { + name: 'Fiji', + dial: '679', + flag: '๐Ÿ‡ซ๐Ÿ‡ฏ', + tz: ['Pacific/Fiji'] + }, + { + name: 'Finland', + dial: '358', + flag: '๐Ÿ‡ซ๐Ÿ‡ฎ', + tz: ['Europe/Helsinki'] + }, + { + name: 'France', + dial: '33', + flag: '๐Ÿ‡ซ๐Ÿ‡ท', + tz: ['Europe/Paris'] + }, + { + name: 'French Guiana', + dial: '594', + flag: '๐Ÿ‡ฌ๐Ÿ‡ซ', + tz: ['America/Cayenne'] + }, + { + name: 'French Polynesia', + dial: '689', + flag: '๐Ÿ‡ต๐Ÿ‡ซ', + tz: ['Pacific/Tahiti', 'Pacific/Marquesas', 'Pacific/Gambier'] + }, + { + name: 'Gabon', + dial: '241', + flag: '๐Ÿ‡ฌ๐Ÿ‡ฆ', + tz: ['Africa/Libreville'] + }, + { + name: 'Gambia', + dial: '220', + flag: '๐Ÿ‡ฌ๐Ÿ‡ฒ', + tz: ['Africa/Banjul'] + }, + { + name: 'Georgia', + dial: '995', + flag: '๐Ÿ‡ฌ๐Ÿ‡ช', + tz: ['Asia/Tbilisi'] + }, + { + name: 'Germany', + dial: '49', + flag: '๐Ÿ‡ฉ๐Ÿ‡ช', + tz: ['Europe/Berlin', 'Europe/Busingen'] + }, + { + name: 'Ghana', + dial: '233', + flag: '๐Ÿ‡ฌ๐Ÿ‡ญ', + tz: ['Africa/Accra'] + }, + { + name: 'Gibraltar', + dial: '350', + flag: '๐Ÿ‡ฌ๐Ÿ‡ฎ', + tz: ['Europe/Gibraltar'] + }, + { + name: 'Greece', + dial: '30', + flag: '๐Ÿ‡ฌ๐Ÿ‡ท', + tz: ['Europe/Athens'] + }, + { + name: 'Greenland', + dial: '299', + flag: '๐Ÿ‡ฌ๐Ÿ‡ฑ', + tz: [ + 'America/Nuuk', + 'America/Danmarkshavn', + 'America/Scoresbysund', + 'America/Thule' + ] + }, + { + name: 'Grenada', + dial: '1473', + flag: '๐Ÿ‡ฌ๐Ÿ‡ฉ', + tz: ['America/Grenada'] + }, + { + name: 'Guadeloupe', + dial: '590', + flag: '๐Ÿ‡ฌ๐Ÿ‡ต', + tz: ['America/Guadeloupe'] + }, + { + name: 'Guam', + dial: '1671', + flag: '๐Ÿ‡ฌ๐Ÿ‡บ', + tz: ['Pacific/Guam'] + }, + { + name: 'Guatemala', + dial: '502', + flag: '๐Ÿ‡ฌ๐Ÿ‡น', + tz: ['America/Guatemala'] + }, + { + name: 'Guinea', + dial: '224', + flag: '๐Ÿ‡ฌ๐Ÿ‡ณ', + tz: ['Africa/Conakry'] + }, + { + name: 'Guinea-Bissau', + dial: '245', + flag: '๐Ÿ‡ฌ๐Ÿ‡ผ', + tz: ['Africa/Bissau'] + }, + { + name: 'Guyana', + dial: '592', + flag: '๐Ÿ‡ฌ๐Ÿ‡พ', + tz: ['America/Guyana'] + }, + { + name: 'Haiti', + dial: '509', + flag: '๐Ÿ‡ญ๐Ÿ‡น', + tz: ['America/Port-au-Prince'] + }, + { + name: 'Honduras', + dial: '504', + flag: '๐Ÿ‡ญ๐Ÿ‡ณ', + tz: ['America/Tegucigalpa'] + }, + { + name: 'Hong Kong', + dial: '852', + flag: '๐Ÿ‡ญ๐Ÿ‡ฐ', + tz: ['Asia/Hong_Kong'] + }, + { + name: 'Hungary', + dial: '36', + flag: '๐Ÿ‡ญ๐Ÿ‡บ', + tz: ['Europe/Budapest'] + }, + + { + name: 'Iceland', + dial: '354', + flag: '๐Ÿ‡ฎ๐Ÿ‡ธ', + tz: ['Atlantic/Reykjavik'] + }, + { + name: 'India', + dial: '91', + flag: '๐Ÿ‡ฎ๐Ÿ‡ณ', + tz: ['Asia/Kolkata'] + }, + { + name: 'Indonesia', + dial: '62', + flag: '๐Ÿ‡ฎ๐Ÿ‡ฉ', + tz: [ + 'Asia/Jakarta', + 'Asia/Pontianak', + 'Asia/Makassar', + 'Asia/Jayapura' + ] + }, + { + name: 'Iraq', + dial: '964', + flag: '๐Ÿ‡ฎ๐Ÿ‡ถ', + tz: ['Asia/Baghdad'] + }, + { + name: 'Ireland', + dial: '353', + flag: '๐Ÿ‡ฎ๐Ÿ‡ช', + tz: ['Europe/Dublin'] + }, + { + name: 'Isle of Man', + dial: '44', + flag: '๐Ÿ‡ฎ๐Ÿ‡ฒ', + tz: ['Europe/Isle_of_Man'] + }, + { + name: 'Israel', + dial: '972', + flag: '๐Ÿ‡ฎ๐Ÿ‡ฑ', + tz: ['Asia/Jerusalem'] + }, + { + name: 'Italy', + dial: '39', + flag: '๐Ÿ‡ฎ๐Ÿ‡น', + tz: ['Europe/Rome'] + }, + { + name: 'Jamaica', + dial: '1876', + flag: '๐Ÿ‡ฏ๐Ÿ‡ฒ', + tz: ['America/Jamaica'] + }, + { + name: 'Japan', + dial: '81', + flag: '๐Ÿ‡ฏ๐Ÿ‡ต', + tz: ['Asia/Tokyo'] + }, + { + name: 'Jersey', + dial: '44', + flag: '๐Ÿ‡ฏ๐Ÿ‡ช', + tz: ['Europe/Jersey'] + }, + { + name: 'Jordan', + dial: '962', + flag: '๐Ÿ‡ฏ๐Ÿ‡ด', + tz: ['Asia/Amman'] + }, + { + name: 'Kazakhstan', + dial: '7', + flag: '๐Ÿ‡ฐ๐Ÿ‡ฟ', + tz: [ + 'Asia/Almaty', + 'Asia/Qyzylorda', + 'Asia/Aqtobe', + 'Asia/Aqtau', + 'Asia/Oral' + ] + }, + { + name: 'Kenya', + dial: '254', + flag: '๐Ÿ‡ฐ๐Ÿ‡ช', + tz: ['Africa/Nairobi'] + }, + { + name: 'Kiribati', + dial: '686', + flag: '๐Ÿ‡ฐ๐Ÿ‡ฎ', + tz: ['Pacific/Tarawa', 'Pacific/Enderbury', 'Pacific/Kiritimati'] + }, + { + name: 'South Korea', + dial: '82', + flag: '๐Ÿ‡ฐ๐Ÿ‡ท', + tz: ['Asia/Seoul'] + }, + { + name: 'Kuwait', + dial: '965', + flag: '๐Ÿ‡ฐ๐Ÿ‡ผ', + tz: ['Asia/Kuwait'] + }, + { + name: 'Kyrgyzstan', + dial: '996', + flag: '๐Ÿ‡ฐ๐Ÿ‡ฌ', + tz: ['Asia/Bishkek'] + }, + { + name: 'Laos', + dial: '856', + flag: '๐Ÿ‡ฑ๐Ÿ‡ฆ', + tz: ['Asia/Vientiane'] + }, + { + name: 'Latvia', + dial: '371', + flag: '๐Ÿ‡ฑ๐Ÿ‡ป', + tz: ['Europe/Riga'] + }, + { + name: 'Lebanon', + dial: '961', + flag: '๐Ÿ‡ฑ๐Ÿ‡ง', + tz: ['Asia/Beirut'] + }, + { + name: 'Lesotho', + dial: '266', + flag: '๐Ÿ‡ฑ๐Ÿ‡ธ', + tz: ['Africa/Maseru'] + }, + { + name: 'Liberia', + dial: '231', + flag: '๐Ÿ‡ฑ๐Ÿ‡ท', + tz: ['Africa/Monrovia'] + }, + { + name: 'Liechtenstein', + dial: '423', + flag: '๐Ÿ‡ฑ๐Ÿ‡ฎ', + tz: ['Europe/Vaduz'] + }, + { + name: 'Lithuania', + dial: '370', + flag: '๐Ÿ‡ฑ๐Ÿ‡น', + tz: ['Europe/Vilnius'] + }, + { + name: 'Luxembourg', + dial: '352', + flag: '๐Ÿ‡ฑ๐Ÿ‡บ', + tz: ['Europe/Luxembourg'] + }, + { + name: 'Macao', + dial: '853', + flag: '๐Ÿ‡ฒ๐Ÿ‡ด', + tz: ['Asia/Macau'] + }, + { + name: 'North Macedonia', + dial: '389', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฐ', + tz: ['Europe/Skopje'] + }, + { + name: 'Madagascar', + dial: '261', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฌ', + tz: ['Indian/Antananarivo'] + }, + { + name: 'Malawi', + dial: '265', + flag: '๐Ÿ‡ฒ๐Ÿ‡ผ', + tz: ['Africa/Blantyre'] + }, + { + name: 'Malaysia', + dial: '60', + flag: '๐Ÿ‡ฒ๐Ÿ‡พ', + tz: ['Asia/Kuala_Lumpur', 'Asia/Kuching'] + }, + { + name: 'Maldives', + dial: '960', + flag: '๐Ÿ‡ฒ๐Ÿ‡ป', + tz: ['Indian/Maldives'] + }, + { + name: 'Mali', + dial: '223', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฑ', + tz: ['Africa/Bamako'] + }, + { + name: 'Malta', + dial: '356', + flag: '๐Ÿ‡ฒ๐Ÿ‡น', + tz: ['Europe/Malta'] + }, + { + name: 'Marshall Islands', + dial: '692', + flag: '๐Ÿ‡ฒ๐Ÿ‡ญ', + tz: ['Pacific/Majuro', 'Pacific/Kwajalein'] + }, + { + name: 'Martinique', + dial: '596', + flag: '๐Ÿ‡ฒ๐Ÿ‡ถ', + tz: ['America/Martinique'] + }, + { + name: 'Mauritania', + dial: '222', + flag: '๐Ÿ‡ฒ๐Ÿ‡ท', + tz: ['Africa/Nouakchott'] + }, + { + name: 'Mauritius', + dial: '230', + flag: '๐Ÿ‡ฒ๐Ÿ‡บ', + tz: ['Indian/Mauritius'] + }, + { + name: 'Mayotte', + dial: '262', + flag: '๐Ÿ‡พ๐Ÿ‡น', + tz: ['Indian/Mayotte'] + }, + { + name: 'Mexico', + dial: '52', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฝ', + tz: [ + 'America/Bahia_Banderas', + 'America/Cancun', + 'America/Chihuahua', + 'America/Hermosillo', + 'America/Matamoros', + 'America/Mazatlan', + 'America/Merida', + 'America/Mexico_City', + 'America/Monterrey', + 'America/Ojinaga', + 'America/Tijuana' + ] + }, + { + name: 'Micronesia, Federated States of', + dial: '691', + flag: '๐Ÿ‡ซ๐Ÿ‡ฒ', + tz: ['Pacific/Chuuk', 'Pacific/Pohnpei', 'Pacific/Kosrae'] + }, + + { + name: 'Moldova', + dial: '373', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฉ', + tz: ['Europe/Chisinau'] + }, + { + name: 'Monaco', + dial: '377', + flag: '๐Ÿ‡ฒ๐Ÿ‡จ', + tz: ['Europe/Monaco'] + }, + { + name: 'Mongolia', + dial: '976', + flag: '๐Ÿ‡ฒ๐Ÿ‡ณ', + tz: ['Asia/Ulaanbaatar', 'Asia/Hovd', 'Asia/Choibalsan'] + }, + { + name: 'Montenegro', + dial: '382', + flag: '๐Ÿ‡ฒ๐Ÿ‡ช', + tz: ['Europe/Podgorica'] + }, + { + name: 'Montserrat', + dial: '1664', + flag: '๐Ÿ‡ฒ๐Ÿ‡ธ', + tz: ['America/Montserrat'] + }, + { + name: 'Morocco', + dial: '212', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฆ', + tz: ['Africa/Casablanca'] + }, + { + name: 'Mozambique', + dial: '258', + flag: '๐Ÿ‡ฒ๐Ÿ‡ฟ', + tz: ['Africa/Maputo'] + }, + { + name: 'Namibia', + dial: '264', + flag: '๐Ÿ‡ณ๐Ÿ‡ฆ', + tz: ['Africa/Windhoek'] + }, + { + name: 'Nauru', + dial: '674', + flag: '๐Ÿ‡ณ๐Ÿ‡ท', + tz: ['Pacific/Nauru'] + }, + { + name: 'Nepal', + dial: '977', + flag: '๐Ÿ‡ณ๐Ÿ‡ต', + tz: ['Asia/Kathmandu'] + }, + { + name: 'Netherlands', + dial: '31', + flag: '๐Ÿ‡ณ๐Ÿ‡ฑ', + tz: ['Europe/Amsterdam'] + }, + { + name: 'New Caledonia', + dial: '687', + flag: '๐Ÿ‡ณ๐Ÿ‡จ', + tz: ['Pacific/Noumea'] + }, + { + name: 'New Zealand', + dial: '64', + flag: '๐Ÿ‡ณ๐Ÿ‡ฟ', + tz: ['Pacific/Auckland', 'Pacific/Chatham'] + }, + { + name: 'Niger', + dial: '227', + flag: '๐Ÿ‡ณ๐Ÿ‡ช', + tz: ['Africa/Niamey'] + }, + { + name: 'Nigeria', + dial: '234', + flag: '๐Ÿ‡ณ๐Ÿ‡ฌ', + tz: ['Africa/Lagos'] + }, + { + name: 'Niue', + dial: '683', + flag: '๐Ÿ‡ณ๐Ÿ‡บ', + tz: ['Pacific/Niue'] + }, + { + name: 'Norfolk Island', + dial: '672', + flag: '๐Ÿ‡ณ๐Ÿ‡ซ', + tz: ['Pacific/Norfolk'] + }, + { + name: 'Northern Mariana Islands', + dial: '1670', + flag: '๐Ÿ‡ฒ๐Ÿ‡ต', + tz: ['Pacific/Saipan'] + }, + { + name: 'Norway', + dial: '47', + flag: '๐Ÿ‡ณ๐Ÿ‡ด', + tz: ['Europe/Oslo'] + }, + { + name: 'Oman', + dial: '968', + flag: '๐Ÿ‡ด๐Ÿ‡ฒ', + tz: ['Asia/Muscat'] + }, + { + name: 'Pakistan', + dial: '92', + flag: '๐Ÿ‡ต๐Ÿ‡ฐ', + tz: ['Asia/Karachi'] + }, + { + name: 'Palau', + dial: '680', + flag: '๐Ÿ‡ต๐Ÿ‡ผ', + tz: ['Pacific/Palau'] + }, + { + name: 'Panama', + dial: '507', + flag: '๐Ÿ‡ต๐Ÿ‡ฆ', + tz: ['America/Panama'] + }, + { + name: 'Papua New Guinea', + dial: '675', + flag: '๐Ÿ‡ต๐Ÿ‡ฌ', + tz: ['Pacific/Port_Moresby', 'Pacific/Bougainville'] + }, + { + name: 'Paraguay', + dial: '595', + flag: '๐Ÿ‡ต๐Ÿ‡พ', + tz: ['America/Asuncion'] + }, + { + name: 'Peru', + dial: '51', + flag: '๐Ÿ‡ต๐Ÿ‡ช', + tz: ['America/Lima'] + }, + { + name: 'Philippines', + dial: '63', + flag: '๐Ÿ‡ต๐Ÿ‡ญ', + tz: ['Asia/Manila'] + }, + { + name: 'Pitcairn', + dial: '872', + flag: '๐Ÿ‡ต๐Ÿ‡ณ', + tz: ['Pacific/Pitcairn'] + }, + { + name: 'Poland', + dial: '48', + flag: '๐Ÿ‡ต๐Ÿ‡ฑ', + tz: ['Europe/Warsaw'] + }, + { + name: 'Portugal', + dial: '351', + flag: '๐Ÿ‡ต๐Ÿ‡น', + tz: ['Europe/Lisbon', 'Atlantic/Madeira', 'Atlantic/Azores'] + }, + { + name: 'Puerto Rico', + dial: '1939', + flag: '๐Ÿ‡ต๐Ÿ‡ท', + tz: ['America/Puerto_Rico'] + }, + { + name: 'Qatar', + dial: '974', + flag: '๐Ÿ‡ถ๐Ÿ‡ฆ', + tz: ['Asia/Qatar'] + }, + { + name: 'Romania', + dial: '40', + flag: '๐Ÿ‡ท๐Ÿ‡ด', + tz: ['Europe/Bucharest'] + }, + { + name: 'Rwanda', + dial: '250', + flag: '๐Ÿ‡ท๐Ÿ‡ผ', + tz: ['Africa/Kigali'] + }, + { + name: 'Reunion', + dial: '262', + flag: '๐Ÿ‡ท๐Ÿ‡ช', + tz: ['Indian/Reunion'] + }, + { + name: 'Saint Barthelemy', + dial: '590', + flag: '๐Ÿ‡ง๐Ÿ‡ฑ', + tz: ['America/St_Barthelemy'] + }, + { + name: 'Saint Helena, Ascension and Tristan Da Cunha', + dial: '290', + flag: '๐Ÿ‡ธ๐Ÿ‡ญ', + tz: ['Atlantic/St_Helena'] + }, + { + name: 'Saint Kitts and Nevis', + dial: '1869', + flag: '๐Ÿ‡ฐ๐Ÿ‡ณ', + tz: ['America/St_Kitts'] + }, + { + name: 'Saint Lucia', + dial: '1758', + flag: '๐Ÿ‡ฑ๐Ÿ‡จ', + tz: ['America/St_Lucia'] + }, + { + name: 'Saint Martin', + dial: '590', + flag: '๐Ÿ‡ฒ๐Ÿ‡ซ', + tz: ['America/Marigot'] + }, + { + name: 'Saint Pierre and Miquelon', + dial: '508', + flag: '๐Ÿ‡ต๐Ÿ‡ฒ', + tz: ['America/Miquelon'] + }, + { + name: 'Saint Vincent and the Grenadines', + dial: '1784', + flag: '๐Ÿ‡ป๐Ÿ‡จ', + tz: ['America/St_Vincent'] + }, + { + name: 'Samoa', + dial: '685', + flag: '๐Ÿ‡ผ๐Ÿ‡ธ', + tz: ['Pacific/Apia'] + }, + { + name: 'San Marino', + dial: '378', + flag: '๐Ÿ‡ธ๐Ÿ‡ฒ', + tz: ['Europe/San_Marino'] + }, + { + name: 'Sao Tome and Principe', + dial: '239', + flag: '๐Ÿ‡ธ๐Ÿ‡น', + tz: ['Africa/Sao_Tome'] + }, + { + name: 'Saudi Arabia', + dial: '966', + flag: '๐Ÿ‡ธ๐Ÿ‡ฆ', + tz: ['Asia/Riyadh'] + }, + { + name: 'Senegal', + dial: '221', + flag: '๐Ÿ‡ธ๐Ÿ‡ณ', + tz: ['Africa/Dakar'] + }, + { + name: 'Serbia', + dial: '381', + flag: '๐Ÿ‡ท๐Ÿ‡ธ', + tz: ['Europe/Belgrade'] + }, + { + name: 'Seychelles', + dial: '248', + flag: '๐Ÿ‡ธ๐Ÿ‡จ', + tz: ['Indian/Mahe'] + }, + + { + name: 'Sierra Leone', + dial: '232', + flag: '๐Ÿ‡ธ๐Ÿ‡ฑ', + tz: ['Africa/Freetown'] + }, + { + name: 'Singapore', + dial: '65', + flag: '๐Ÿ‡ธ๐Ÿ‡ฌ', + tz: ['Asia/Singapore'] + }, + { + name: 'Slovakia', + dial: '421', + flag: '๐Ÿ‡ธ๐Ÿ‡ฐ', + tz: ['Europe/Bratislava'] + }, + { + name: 'Slovenia', + dial: '386', + flag: '๐Ÿ‡ธ๐Ÿ‡ฎ', + tz: ['Europe/Ljubljana'] + }, + { + name: 'Solomon Islands', + dial: '677', + flag: '๐Ÿ‡ธ๐Ÿ‡ง', + tz: ['Pacific/Guadalcanal'] + }, + { + name: 'South Africa', + dial: '27', + flag: '๐Ÿ‡ฟ๐Ÿ‡ฆ', + tz: ['Africa/Johannesburg'] + }, + { + name: 'Spain', + dial: '34', + flag: '๐Ÿ‡ช๐Ÿ‡ธ', + tz: ['Europe/Madrid', 'Africa/Ceuta', 'Atlantic/Canary'] + }, + { + name: 'Sri Lanka', + dial: '94', + flag: '๐Ÿ‡ฑ๐Ÿ‡ฐ', + tz: ['Asia/Colombo'] + }, + { + name: 'Suriname', + dial: '597', + flag: '๐Ÿ‡ธ๐Ÿ‡ท', + tz: ['America/Paramaribo'] + }, + { + name: 'Svalbard and Jan Mayen', + dial: '47', + flag: '๐Ÿ‡ธ๐Ÿ‡ฏ', + tz: ['Arctic/Longyearbyen'] + }, + { + name: 'Eswatini', + dial: '268', + flag: '๐Ÿ‡ธ๐Ÿ‡ฟ', + tz: ['Africa/Mbabane'] + }, + { + name: 'Sweden', + dial: '46', + flag: '๐Ÿ‡ธ๐Ÿ‡ช', + tz: ['Europe/Stockholm'] + }, + { + name: 'Switzerland', + dial: '41', + flag: '๐Ÿ‡จ๐Ÿ‡ญ', + tz: ['Europe/Zurich'] + }, + { + name: 'Taiwan', + dial: '886', + flag: '๐Ÿ‡น๐Ÿ‡ผ', + tz: ['Asia/Taipei'] + }, + { + name: 'Tajikistan', + dial: '992', + flag: '๐Ÿ‡น๐Ÿ‡ฏ', + tz: ['Asia/Dushanbe'] + }, + { + name: 'Tanzania, United Republic of', + dial: '255', + flag: '๐Ÿ‡น๐Ÿ‡ฟ', + tz: ['Africa/Dar_es_Salaam'] + }, + { + name: 'Thailand', + dial: '66', + flag: '๐Ÿ‡น๐Ÿ‡ญ', + tz: ['Asia/Bangkok'] + }, + { + name: 'Timor-Leste', + dial: '670', + flag: '๐Ÿ‡น๐Ÿ‡ฑ', + tz: ['Asia/Dili'] + }, + { + name: 'Togo', + dial: '228', + flag: '๐Ÿ‡น๐Ÿ‡ฌ', + tz: ['Africa/Lome'] + }, + { + name: 'Tokelau', + dial: '690', + flag: '๐Ÿ‡น๐Ÿ‡ฐ', + tz: ['Pacific/Fakaofo'] + }, + { + name: 'Tonga', + dial: '676', + flag: '๐Ÿ‡น๐Ÿ‡ด', + tz: ['Pacific/Tongatapu'] + }, + { + name: 'Trinidad and Tobago', + dial: '1868', + flag: '๐Ÿ‡น๐Ÿ‡น', + tz: ['America/Port_of_Spain'] + }, + { + name: 'Tunisia', + dial: '216', + flag: '๐Ÿ‡น๐Ÿ‡ณ', + tz: ['Africa/Tunis'] + }, + { + name: 'Turkey', + dial: '90', + flag: '๐Ÿ‡น๐Ÿ‡ท', + tz: ['Europe/Istanbul'] + }, + { + name: 'Turkmenistan', + dial: '993', + flag: '๐Ÿ‡น๐Ÿ‡ฒ', + tz: ['Asia/Ashgabat'] + }, + { + name: 'Turks and Caicos Islands', + dial: '1649', + flag: '๐Ÿ‡น๐Ÿ‡จ', + tz: ['America/Grand_Turk'] + }, + { + name: 'Tuvalu', + dial: '688', + flag: '๐Ÿ‡น๐Ÿ‡ป', + tz: ['Pacific/Funafuti'] + }, + { + name: 'Uganda', + dial: '256', + flag: '๐Ÿ‡บ๐Ÿ‡ฌ', + tz: ['Africa/Kampala'] + }, + { + name: 'Ukraine', + dial: '380', + flag: '๐Ÿ‡บ๐Ÿ‡ฆ', + tz: [ + 'Europe/Kyiv', + 'Europe/Kiev', + 'Europe/Uzhgorod', + 'Europe/Zaporozhye' + ] + }, + { + name: 'United Arab Emirates', + dial: '971', + flag: '๐Ÿ‡ฆ๐Ÿ‡ช', + tz: ['Asia/Dubai'] + }, + { + name: 'United Kingdom', + dial: '44', + flag: '๐Ÿ‡ฌ๐Ÿ‡ง', + tz: ['Europe/London'] + }, + { + name: 'Uruguay', + dial: '598', + flag: '๐Ÿ‡บ๐Ÿ‡พ', + tz: ['America/Montevideo'] + }, + { + name: 'Uzbekistan', + dial: '998', + flag: '๐Ÿ‡บ๐Ÿ‡ฟ', + tz: ['Asia/Samarkand', 'Asia/Tashkent'] + }, + { + name: 'Vanuatu', + dial: '678', + flag: '๐Ÿ‡ป๐Ÿ‡บ', + tz: ['Pacific/Efate'] + }, + { + name: 'Vietnam', + dial: '84', + flag: '๐Ÿ‡ป๐Ÿ‡ณ', + tz: ['Asia/Ho_Chi_Minh'] + }, + { + name: 'Virgin Islands, British', + dial: '1284', + flag: '๐Ÿ‡ป๐Ÿ‡ฌ', + tz: ['America/Tortola'] + }, + { + name: 'Virgin Islands, U.S.', + dial: '1340', + flag: '๐Ÿ‡ป๐Ÿ‡ฎ', + tz: ['America/St_Thomas'] + }, + { + name: 'Wallis and Futuna', + dial: '681', + flag: '๐Ÿ‡ผ๐Ÿ‡ซ', + tz: ['Pacific/Wallis'] + }, + { + name: 'Yemen', + dial: '967', + flag: '๐Ÿ‡พ๐Ÿ‡ช', + tz: ['Asia/Aden'] + }, + { + name: 'Zambia', + dial: '260', + flag: '๐Ÿ‡ฟ๐Ÿ‡ฒ', + tz: ['Africa/Lusaka'] + } +] + +const countryFlags = countries.reduce((acc, country) => { + acc[country.flag] = country + return acc +}, {}) + +export default { countries, countryFlags } diff --git a/app/javascript/submission_form/phone_step.vue b/app/javascript/submission_form/phone_step.vue index d3e33a41..27a44f3c 100644 --- a/app/javascript/submission_form/phone_step.vue +++ b/app/javascript/submission_form/phone_step.vue @@ -61,30 +61,51 @@ - +
+
+ {{ selectedCountry.flag }} +{{ selectedCountry.dial }} +
+ +
+ +