libmodulor
Version:
A TypeScript library to create platform-agnostic applications
272 lines (271 loc) • 8.53 kB
JavaScript
import { TString } from '../base/TString.js';
export class TCountryISO3166Alpha2 extends TString {
// From https://www.iban.com/country-codes
static OPTIONS = [
['Afghanistan', 'AF'],
['Albania', 'AL'],
['Algeria', 'DZ'],
['American Samoa', 'AS'],
['Andorra', 'AD'],
['Angola', 'AO'],
['Anguilla', 'AI'],
['Antarctica', 'AQ'],
['Antigua and Barbuda', 'AG'],
['Argentina', 'AR'],
['Armenia', 'AM'],
['Aruba', 'AW'],
['Australia', 'AU'],
['Austria', 'AT'],
['Azerbaijan', 'AZ'],
['Bahamas (the)', 'BS'],
['Bahrain', 'BH'],
['Bangladesh', 'BD'],
['Barbados', 'BB'],
['Belarus', 'BY'],
['Belgium', 'BE'],
['Belize', 'BZ'],
['Benin', 'BJ'],
['Bermuda', 'BM'],
['Bhutan', 'BT'],
['Bolivia (Plurinational State of)', 'BO'],
['Bonaire, Sint Eustatius and Saba', 'BQ'],
['Bosnia and Herzegovina', 'BA'],
['Botswana', 'BW'],
['Bouvet Island', 'BV'],
['Brazil', 'BR'],
['British Indian Ocean Territory (the)', 'IO'],
['Brunei Darussalam', 'BN'],
['Bulgaria', 'BG'],
['Burkina Faso', 'BF'],
['Burundi', 'BI'],
['Cabo Verde', 'CV'],
['Cambodia', 'KH'],
['Cameroon', 'CM'],
['Canada', 'CA'],
['Cayman Islands (the)', 'KY'],
['Central African Republic (the)', 'CF'],
['Chad', 'TD'],
['Chile', 'CL'],
['China', 'CN'],
['Christmas Island', 'CX'],
['Cocos (Keeling) Islands (the)', 'CC'],
['Colombia', 'CO'],
['Comoros (the)', 'KM'],
['Congo (the Democratic Republic of the)', 'CD'],
['Congo (the)', 'CG'],
['Cook Islands (the)', 'CK'],
['Costa Rica', 'CR'],
['Croatia', 'HR'],
['Cuba', 'CU'],
['Curaçao', 'CW'],
['Cyprus', 'CY'],
['Czechia', 'CZ'],
["Côte d'Ivoire", 'CI'],
['Denmark', 'DK'],
['Djibouti', 'DJ'],
['Dominica', 'DM'],
['Dominican Republic (the)', 'DO'],
['Ecuador', 'EC'],
['Egypt', 'EG'],
['El Salvador', 'SV'],
['Equatorial Guinea', 'GQ'],
['Eritrea', 'ER'],
['Estonia', 'EE'],
['Eswatini', 'SZ'],
['Ethiopia', 'ET'],
['Falkland Islands (the) [Malvinas]', 'FK'],
['Faroe Islands (the)', 'FO'],
['Fiji', 'FJ'],
['Finland', 'FI'],
['France', 'FR'],
['French Guiana', 'GF'],
['French Polynesia', 'PF'],
['French Southern Territories (the)', 'TF'],
['Gabon', 'GA'],
['Gambia (the)', 'GM'],
['Georgia', 'GE'],
['Germany', 'DE'],
['Ghana', 'GH'],
['Gibraltar', 'GI'],
['Greece', 'GR'],
['Greenland', 'GL'],
['Grenada', 'GD'],
['Guadeloupe', 'GP'],
['Guam', 'GU'],
['Guatemala', 'GT'],
['Guernsey', 'GG'],
['Guinea', 'GN'],
['Guinea-Bissau', 'GW'],
['Guyana', 'GY'],
['Haiti', 'HT'],
['Heard Island and McDonald Islands', 'HM'],
['Holy See (the)', 'VA'],
['Honduras', 'HN'],
['Hong Kong', 'HK'],
['Hungary', 'HU'],
['Iceland', 'IS'],
['India', 'IN'],
['Indonesia', 'ID'],
['Iran (Islamic Republic of)', 'IR'],
['Iraq', 'IQ'],
['Ireland', 'IE'],
['Isle of Man', 'IM'],
['Israel', 'IL'],
['Italy', 'IT'],
['Jamaica', 'JM'],
['Japan', 'JP'],
['Jersey', 'JE'],
['Jordan', 'JO'],
['Kazakhstan', 'KZ'],
['Kenya', 'KE'],
['Kiribati', 'KI'],
["Korea (the Democratic People's Republic of)", 'KP'],
['Korea (the Republic of)', 'KR'],
['Kuwait', 'KW'],
['Kyrgyzstan', 'KG'],
["Lao People's Democratic Republic (the)", 'LA'],
['Latvia', 'LV'],
['Lebanon', 'LB'],
['Lesotho', 'LS'],
['Liberia', 'LR'],
['Libya', 'LY'],
['Liechtenstein', 'LI'],
['Lithuania', 'LT'],
['Luxembourg', 'LU'],
['Macao', 'MO'],
['Madagascar', 'MG'],
['Malawi', 'MW'],
['Malaysia', 'MY'],
['Maldives', 'MV'],
['Mali', 'ML'],
['Malta', 'MT'],
['Marshall Islands (the)', 'MH'],
['Martinique', 'MQ'],
['Mauritania', 'MR'],
['Mauritius', 'MU'],
['Mayotte', 'YT'],
['Mexico', 'MX'],
['Micronesia (Federated States of)', 'FM'],
['Moldova (the Republic of)', 'MD'],
['Monaco', 'MC'],
['Mongolia', 'MN'],
['Montenegro', 'ME'],
['Montserrat', 'MS'],
['Morocco', 'MA'],
['Mozambique', 'MZ'],
['Myanmar', 'MM'],
['Namibia', 'NA'],
['Nauru', 'NR'],
['Nepal', 'NP'],
['Netherlands (the)', 'NL'],
['New Caledonia', 'NC'],
['New Zealand', 'NZ'],
['Nicaragua', 'NI'],
['Niger (the)', 'NE'],
['Nigeria', 'NG'],
['Niue', 'NU'],
['Norfolk Island', 'NF'],
['Northern Mariana Islands (the)', 'MP'],
['Norway', 'NO'],
['Oman', 'OM'],
['Pakistan', 'PK'],
['Palau', 'PW'],
['Palestine, State of', 'PS'],
['Panama', 'PA'],
['Papua New Guinea', 'PG'],
['Paraguay', 'PY'],
['Peru', 'PE'],
['Philippines (the)', 'PH'],
['Pitcairn', 'PN'],
['Poland', 'PL'],
['Portugal', 'PT'],
['Puerto Rico', 'PR'],
['Qatar', 'QA'],
['Republic of North Macedonia', 'MK'],
['Romania', 'RO'],
['Russian Federation (the)', 'RU'],
['Rwanda', 'RW'],
['Réunion', 'RE'],
['Saint Barthélemy', 'BL'],
['Saint Helena, Ascension and Tristan da Cunha', 'SH'],
['Saint Kitts and Nevis', 'KN'],
['Saint Lucia', 'LC'],
['Saint Martin (French part)', 'MF'],
['Saint Pierre and Miquelon', 'PM'],
['Saint Vincent and the Grenadines', 'VC'],
['Samoa', 'WS'],
['San Marino', 'SM'],
['Sao Tome and Principe', 'ST'],
['Saudi Arabia', 'SA'],
['Senegal', 'SN'],
['Serbia', 'RS'],
['Seychelles', 'SC'],
['Sierra Leone', 'SL'],
['Singapore', 'SG'],
['Sint Maarten (Dutch part)', 'SX'],
['Slovakia', 'SK'],
['Slovenia', 'SI'],
['Solomon Islands', 'SB'],
['Somalia', 'SO'],
['South Africa', 'ZA'],
['South Georgia and the South Sandwich Islands', 'GS'],
['South Sudan', 'SS'],
['Spain', 'ES'],
['Sri Lanka', 'LK'],
['Sudan (the)', 'SD'],
['Suriname', 'SR'],
['Svalbard and Jan Mayen', 'SJ'],
['Sweden', 'SE'],
['Switzerland', 'CH'],
['Syrian Arab Republic', 'SY'],
['Taiwan (Province of China)', 'TW'],
['Tajikistan', 'TJ'],
['Tanzania, United Republic of', 'TZ'],
['Thailand', 'TH'],
['Timor-Leste', 'TL'],
['Togo', 'TG'],
['Tokelau', 'TK'],
['Tonga', 'TO'],
['Trinidad and Tobago', 'TT'],
['Tunisia', 'TN'],
['Turkey', 'TR'],
['Turkmenistan', 'TM'],
['Turks and Caicos Islands (the)', 'TC'],
['Tuvalu', 'TV'],
['Uganda', 'UG'],
['Ukraine', 'UA'],
['United Arab Emirates (the)', 'AE'],
['United Kingdom of Great Britain and Northern Ireland (the)', 'GB'],
['United States Minor Outlying Islands (the)', 'UM'],
['United States of America (the)', 'US'],
['Uruguay', 'UY'],
['Uzbekistan', 'UZ'],
['Vanuatu', 'VU'],
['Venezuela (Bolivarian Republic of)', 'VE'],
['Viet Nam', 'VN'],
['Virgin Islands (British)', 'VG'],
['Virgin Islands (U.S.)', 'VI'],
['Wallis and Futuna', 'WF'],
['Western Sahara', 'EH'],
['Yemen', 'YE'],
['Zambia', 'ZM'],
['Zimbabwe', 'ZW'],
['Åland Islands', 'AX'],
];
constructor() {
super({
maxLength: 2,
minLength: 2,
});
this.setOptions(TCountryISO3166Alpha2.OPTIONS.map(([name, code]) => ({
label: name,
value: code,
})));
}
tName() {
return 'CountryISO3166Alpha2';
}
example() {
return 'FR';
}
}