Implementation
static final List<CountryCode> countryCodes = [
const CountryCode(code: "AF", dialCode: "+93", name: "Afghanistan"),
const CountryCode(code: "AL", dialCode: "+355", name: "Albania"),
const CountryCode(code: "DZ", dialCode: "+213", name: "Algeria"),
const CountryCode(code: "AS", dialCode: "+1", name: "American Samoa"),
const CountryCode(code: "AD", dialCode: "+376", name: "Andorra"),
const CountryCode(code: "AO", dialCode: "+244", name: "Angola"),
const CountryCode(code: "AI", dialCode: "+1", name: "Anguilla"),
const CountryCode(code: "AG", dialCode: "+1", name: "Antigua and Barbuda"),
const CountryCode(code: "AR", dialCode: "+54", name: "Argentina"),
const CountryCode(code: "AM", dialCode: "+374", name: "Armenia"),
const CountryCode(code: "AW", dialCode: "+297", name: "Aruba"),
const CountryCode(code: "AU", dialCode: "+61", name: "Australia"),
const CountryCode(code: "AT", dialCode: "+43", name: "Austria"),
const CountryCode(code: "AZ", dialCode: "+994", name: "Azerbaijan"),
const CountryCode(code: "BS", dialCode: "+1", name: "Bahamas"),
const CountryCode(code: "BH", dialCode: "+973", name: "Bahrain"),
const CountryCode(code: "BD", dialCode: "+880", name: "Bangladesh"),
const CountryCode(code: "BB", dialCode: "+1", name: "Barbados"),
const CountryCode(code: "BY", dialCode: "+375", name: "Belarus"),
const CountryCode(code: "BE", dialCode: "+32", name: "Belgium"),
const CountryCode(code: "BZ", dialCode: "+501", name: "Belize"),
const CountryCode(code: "BJ", dialCode: "+229", name: "Benin"),
const CountryCode(code: "BM", dialCode: "+1", name: "Bermuda"),
const CountryCode(code: "BT", dialCode: "+975", name: "Bhutan"),
const CountryCode(code: "BO", dialCode: "+591", name: "Bolivia"),
const CountryCode(code: "BA", dialCode: "+387", name: "Bosnia and Herzegovina"),
const CountryCode(code: "BW", dialCode: "+267", name: "Botswana"),
const CountryCode(code: "BR", dialCode: "+55", name: "Brazil"),
const CountryCode(code: "IO", dialCode: "+246", name: "British Indian Ocean Territory"),
const CountryCode(code: "VG", dialCode: "+1", name: "British Virgin Islands"),
const CountryCode(code: "BN", dialCode: "+673", name: "Brunei"),
const CountryCode(code: "BG", dialCode: "+359", name: "Bulgaria"),
const CountryCode(code: "BF", dialCode: "+226", name: "Burkina Faso"),
const CountryCode(code: "BI", dialCode: "+257", name: "Burundi"),
const CountryCode(code: "KH", dialCode: "+855", name: "Cambodia"),
const CountryCode(code: "CM", dialCode: "+237", name: "Cameroon"),
const CountryCode(code: "CA", dialCode: "+1", name: "Canada"),
const CountryCode(code: "CV", dialCode: "+238", name: "Cape Verde"),
const CountryCode(code: "KY", dialCode: "+1", name: "Cayman Islands"),
const CountryCode(code: "CF", dialCode: "+236", name: "Central African Republic"),
const CountryCode(code: "TD", dialCode: "+235", name: "Chad"),
const CountryCode(code: "CL", dialCode: "+56", name: "Chile"),
const CountryCode(code: "CN", dialCode: "+86", name: "China"),
const CountryCode(code: "CO", dialCode: "+57", name: "Colombia"),
const CountryCode(code: "KM", dialCode: "+269", name: "Comoros"),
const CountryCode(code: "CK", dialCode: "+682", name: "Cook Islands"),
const CountryCode(code: "CR", dialCode: "+506", name: "Costa Rica"),
const CountryCode(code: "HR", dialCode: "+385", name: "Croatia"),
const CountryCode(code: "CU", dialCode: "+53", name: "Cuba"),
const CountryCode(code: "CW", dialCode: "+599", name: "Curaçao"),
const CountryCode(code: "CY", dialCode: "+357", name: "Cyprus"),
const CountryCode(code: "CZ", dialCode: "+420", name: "Czech Republic"),
const CountryCode(code: "CD", dialCode: "+243", name: "Democratic Republic of the Congo"),
const CountryCode(code: "DK", dialCode: "+45", name: "Denmark"),
const CountryCode(code: "DJ", dialCode: "+253", name: "Djibouti"),
const CountryCode(code: "DM", dialCode: "+1", name: "Dominica"),
const CountryCode(code: "DO", dialCode: "+1", name: "Dominican Republic"),
const CountryCode(code: "EC", dialCode: "+593", name: "Ecuador"),
const CountryCode(code: "EG", dialCode: "+20", name: "Egypt"),
const CountryCode(code: "SV", dialCode: "+503", name: "El Salvador"),
const CountryCode(code: "GQ", dialCode: "+240", name: "Equatorial Guinea"),
const CountryCode(code: "ER", dialCode: "+291", name: "Eritrea"),
const CountryCode(code: "EE", dialCode: "+372", name: "Estonia"),
const CountryCode(code: "ET", dialCode: "+251", name: "Ethiopia"),
const CountryCode(code: "FK", dialCode: "+500", name: "Falkland Islands"),
const CountryCode(code: "FO", dialCode: "+298", name: "Faroe Islands"),
const CountryCode(code: "FJ", dialCode: "+679", name: "Fiji"),
const CountryCode(code: "FI", dialCode: "+358", name: "Finland"),
const CountryCode(code: "FR", dialCode: "+33", name: "France"),
const CountryCode(code: "PF", dialCode: "+689", name: "French Polynesia"),
const CountryCode(code: "GA", dialCode: "+241", name: "Gabon"),
const CountryCode(code: "GM", dialCode: "+220", name: "Gambia"),
const CountryCode(code: "GE", dialCode: "+995", name: "Georgia"),
const CountryCode(code: "DE", dialCode: "+49", name: "Germany"),
const CountryCode(code: "GH", dialCode: "+233", name: "Ghana"),
const CountryCode(code: "GI", dialCode: "+350", name: "Gibraltar"),
const CountryCode(code: "GR", dialCode: "+30", name: "Greece"),
const CountryCode(code: "GL", dialCode: "+299", name: "Greenland"),
const CountryCode(code: "GD", dialCode: "+1", name: "Grenada"),
const CountryCode(code: "GU", dialCode: "+1", name: "Guam"),
const CountryCode(code: "GT", dialCode: "+502", name: "Guatemala"),
const CountryCode(code: "GG", dialCode: "+44", name: "Guernsey"),
const CountryCode(code: "GN", dialCode: "+224", name: "Guinea"),
const CountryCode(code: "GW", dialCode: "+245", name: "Guinea-Bissau"),
const CountryCode(code: "GY", dialCode: "+592", name: "Guyana"),
const CountryCode(code: "HT", dialCode: "+509", name: "Haiti"),
const CountryCode(code: "HN", dialCode: "+504", name: "Honduras"),
const CountryCode(code: "HK", dialCode: "+852", name: "Hong Kong"),
const CountryCode(code: "HU", dialCode: "+36", name: "Hungary"),
const CountryCode(code: "IS", dialCode: "+354", name: "Iceland"),
const CountryCode(code: "IN", dialCode: "+91", name: "India"),
const CountryCode(code: "ID", dialCode: "+62", name: "Indonesia"),
const CountryCode(code: "IR", dialCode: "+98", name: "Iran"),
const CountryCode(code: "IQ", dialCode: "+964", name: "Iraq"),
const CountryCode(code: "IE", dialCode: "+353", name: "Ireland"),
const CountryCode(code: "IM", dialCode: "+44", name: "Isle of Man"),
const CountryCode(code: "IL", dialCode: "+972", name: "Israel"),
const CountryCode(code: "IT", dialCode: "+39", name: "Italy"),
const CountryCode(code: "CI", dialCode: "+225", name: "Ivory Coast"),
const CountryCode(code: "JM", dialCode: "+1", name: "Jamaica"),
const CountryCode(code: "JP", dialCode: "+81", name: "Japan"),
const CountryCode(code: "JE", dialCode: "+44", name: "Jersey"),
const CountryCode(code: "JO", dialCode: "+962", name: "Jordan"),
const CountryCode(code: "KZ", dialCode: "+7", name: "Kazakhstan"),
const CountryCode(code: "KE", dialCode: "+254", name: "Kenya"),
const CountryCode(code: "KI", dialCode: "+686", name: "Kiribati"),
const CountryCode(code: "KW", dialCode: "+965", name: "Kuwait"),
const CountryCode(code: "KG", dialCode: "+996", name: "Kyrgyzstan"),
const CountryCode(code: "LA", dialCode: "+856", name: "Laos"),
const CountryCode(code: "LV", dialCode: "+371", name: "Latvia"),
const CountryCode(code: "LB", dialCode: "+961", name: "Lebanon"),
const CountryCode(code: "LS", dialCode: "+266", name: "Lesotho"),
const CountryCode(code: "LR", dialCode: "+231", name: "Liberia"),
const CountryCode(code: "LY", dialCode: "+218", name: "Libya"),
const CountryCode(code: "LI", dialCode: "+423", name: "Liechtenstein"),
const CountryCode(code: "LT", dialCode: "+370", name: "Lithuania"),
const CountryCode(code: "LU", dialCode: "+352", name: "Luxembourg"),
const CountryCode(code: "MO", dialCode: "+853", name: "Macau"),
const CountryCode(code: "MK", dialCode: "+389", name: "Macedonia"),
const CountryCode(code: "MG", dialCode: "+261", name: "Madagascar"),
const CountryCode(code: "MW", dialCode: "+265", name: "Malawi"),
const CountryCode(code: "MY", dialCode: "+60", name: "Malaysia"),
const CountryCode(code: "MV", dialCode: "+960", name: "Maldives"),
const CountryCode(code: "ML", dialCode: "+223", name: "Mali"),
const CountryCode(code: "MT", dialCode: "+356", name: "Malta"),
const CountryCode(code: "MH", dialCode: "+692", name: "Marshall Islands"),
const CountryCode(code: "MR", dialCode: "+222", name: "Mauritania"),
const CountryCode(code: "MU", dialCode: "+230", name: "Mauritius"),
const CountryCode(code: "YT", dialCode: "+262", name: "Mayotte"),
const CountryCode(code: "MX", dialCode: "+52", name: "Mexico"),
const CountryCode(code: "FM", dialCode: "+691", name: "Micronesia"),
const CountryCode(code: "MD", dialCode: "+373", name: "Moldova"),
const CountryCode(code: "MC", dialCode: "+377", name: "Monaco"),
const CountryCode(code: "MN", dialCode: "+976", name: "Mongolia"),
const CountryCode(code: "ME", dialCode: "+382", name: "Montenegro"),
const CountryCode(code: "MS", dialCode: "+1", name: "Montserrat"),
const CountryCode(code: "MA", dialCode: "+212", name: "Morocco"),
const CountryCode(code: "MZ", dialCode: "+258", name: "Mozambique"),
const CountryCode(code: "MM", dialCode: "+95", name: "Myanmar"),
const CountryCode(code: "NA", dialCode: "+264", name: "Namibia"),
const CountryCode(code: "NR", dialCode: "+674", name: "Nauru"),
const CountryCode(code: "NP", dialCode: "+977", name: "Nepal"),
const CountryCode(code: "NL", dialCode: "+31", name: "Netherlands"),
const CountryCode(code: "NZ", dialCode: "+64", name: "New Zealand"),
const CountryCode(code: "NI", dialCode: "+505", name: "Nicaragua"),
const CountryCode(code: "NE", dialCode: "+227", name: "Niger"),
const CountryCode(code: "NG", dialCode: "+234", name: "Nigeria"),
const CountryCode(code: "NU", dialCode: "+683", name: "Niue"),
const CountryCode(code: "NF", dialCode: "+672", name: "Norfolk Island"),
const CountryCode(code: "KP", dialCode: "+850", name: "North Korea"),
const CountryCode(code: "MP", dialCode: "+1", name: "Northern Mariana Islands"),
const CountryCode(code: "NO", dialCode: "+47", name: "Norway"),
const CountryCode(code: "OM", dialCode: "+968", name: "Oman"),
const CountryCode(code: "PK", dialCode: "+92", name: "Pakistan"),
const CountryCode(code: "PW", dialCode: "+680", name: "Palau"),
const CountryCode(code: "PS", dialCode: "+970", name: "Palestine"),
const CountryCode(code: "PA", dialCode: "+507", name: "Panama"),
const CountryCode(code: "PG", dialCode: "+675", name: "Papua New Guinea"),
const CountryCode(code: "PY", dialCode: "+595", name: "Paraguay"),
const CountryCode(code: "PE", dialCode: "+51", name: "Peru"),
const CountryCode(code: "PH", dialCode: "+63", name: "Philippines"),
const CountryCode(code: "PL", dialCode: "+48", name: "Poland"),
const CountryCode(code: "PT", dialCode: "+351", name: "Portugal"),
const CountryCode(code: "PR", dialCode: "+1", name: "Puerto Rico"),
const CountryCode(code: "QA", dialCode: "+974", name: "Qatar"),
const CountryCode(code: "CG", dialCode: "+242", name: "Republic of the Congo"),
const CountryCode(code: "RE", dialCode: "+262", name: "Réunion"),
const CountryCode(code: "RO", dialCode: "+40", name: "Romania"),
const CountryCode(code: "RU", dialCode: "+7", name: "Russia"),
const CountryCode(code: "RW", dialCode: "+250", name: "Rwanda"),
const CountryCode(code: "BL", dialCode: "+590", name: "Saint Barthélemy"),
const CountryCode(code: "SH", dialCode: "+290", name: "Saint Helena"),
const CountryCode(code: "KN", dialCode: "+1", name: "Saint Kitts and Nevis"),
const CountryCode(code: "LC", dialCode: "+1", name: "Saint Lucia"),
const CountryCode(code: "MF", dialCode: "+590", name: "Saint Martin"),
const CountryCode(code: "PM", dialCode: "+508", name: "Saint Pierre and Miquelon"),
const CountryCode(code: "VC", dialCode: "+1", name: "Saint Vincent and the Grenadines"),
const CountryCode(code: "WS", dialCode: "+685", name: "Samoa"),
const CountryCode(code: "SM", dialCode: "+378", name: "San Marino"),
const CountryCode(code: "ST", dialCode: "+239", name: "São Tomé and Príncipe"),
const CountryCode(code: "SA", dialCode: "+966", name: "Saudi Arabia"),
const CountryCode(code: "SN", dialCode: "+221", name: "Senegal"),
const CountryCode(code: "RS", dialCode: "+381", name: "Serbia"),
const CountryCode(code: "SC", dialCode: "+248", name: "Seychelles"),
const CountryCode(code: "SL", dialCode: "+232", name: "Sierra Leone"),
const CountryCode(code: "SG", dialCode: "+65", name: "Singapore"),
const CountryCode(code: "SX", dialCode: "+1", name: "Sint Maarten"),
const CountryCode(code: "SK", dialCode: "+421", name: "Slovakia"),
const CountryCode(code: "SI", dialCode: "+386", name: "Slovenia"),
const CountryCode(code: "SB", dialCode: "+677", name: "Solomon Islands"),
const CountryCode(code: "SO", dialCode: "+252", name: "Somalia"),
const CountryCode(code: "ZA", dialCode: "+27", name: "South Africa"),
const CountryCode(code: "KR", dialCode: "+82", name: "South Korea"),
const CountryCode(code: "SS", dialCode: "+211", name: "South Sudan"),
const CountryCode(code: "ES", dialCode: "+34", name: "Spain"),
const CountryCode(code: "LK", dialCode: "+94", name: "Sri Lanka"),
const CountryCode(code: "SD", dialCode: "+249", name: "Sudan"),
const CountryCode(code: "SR", dialCode: "+597", name: "Suriname"),
const CountryCode(code: "SJ", dialCode: "+47", name: "Svalbard and Jan Mayen"),
const CountryCode(code: "SZ", dialCode: "+268", name: "Swaziland"),
const CountryCode(code: "SE", dialCode: "+46", name: "Sweden"),
const CountryCode(code: "CH", dialCode: "+41", name: "Switzerland"),
const CountryCode(code: "SY", dialCode: "+963", name: "Syria"),
const CountryCode(code: "TW", dialCode: "+886", name: "Taiwan"),
const CountryCode(code: "TJ", dialCode: "+992", name: "Tajikistan"),
const CountryCode(code: "TZ", dialCode: "+255", name: "Tanzania"),
const CountryCode(code: "TH", dialCode: "+66", name: "Thailand"),
const CountryCode(code: "TL", dialCode: "+670", name: "Timor-Leste"),
const CountryCode(code: "TG", dialCode: "+228", name: "Togo"),
const CountryCode(code: "TK", dialCode: "+690", name: "Tokelau"),
const CountryCode(code: "TO", dialCode: "+676", name: "Tonga"),
const CountryCode(code: "TT", dialCode: "+1", name: "Trinidad and Tobago"),
const CountryCode(code: "TN", dialCode: "+216", name: "Tunisia"),
const CountryCode(code: "TR", dialCode: "+90", name: "Turkey"),
const CountryCode(code: "TM", dialCode: "+993", name: "Turkmenistan"),
const CountryCode(code: "TC", dialCode: "+1", name: "Turks and Caicos Islands"),
const CountryCode(code: "TV", dialCode: "+688", name: "Tuvalu"),
const CountryCode(code: "VI", dialCode: "+1", name: "U.S. Virgin Islands"),
const CountryCode(code: "UG", dialCode: "+256", name: "Uganda"),
const CountryCode(code: "UA", dialCode: "+380", name: "Ukraine"),
const CountryCode(code: "AE", dialCode: "+971", name: "United Arab Emirates"),
const CountryCode(code: "GB", dialCode: "+44", name: "United Kingdom"),
const CountryCode(code: "US", dialCode: "+1", name: "United States"),
const CountryCode(code: "UY", dialCode: "+598", name: "Uruguay"),
const CountryCode(code: "UZ", dialCode: "+998", name: "Uzbekistan"),
const CountryCode(code: "VU", dialCode: "+678", name: "Vanuatu"),
const CountryCode(code: "VA", dialCode: "+39", name: "Vatican City"),
const CountryCode(code: "VE", dialCode: "+58", name: "Venezuela"),
const CountryCode(code: "VN", dialCode: "+84", name: "Vietnam"),
const CountryCode(code: "WF", dialCode: "+681", name: "Wallis and Futuna"),
const CountryCode(code: "EH", dialCode: "+212", name: "Western Sahara"),
const CountryCode(code: "YE", dialCode: "+967", name: "Yemen"),
const CountryCode(code: "ZM", dialCode: "+260", name: "Zambia"),
const CountryCode(code: "ZW", dialCode: "+263", name: "Zimbabwe")
]..sort((a, b) => a.code.compareTo(b.code));