You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

255 lines
3.5 KiB

/**
* ITU-T E.164 country calling codes mapped by ISO 3166-1 alpha-2 country code.
* Ultra-lightweight (~3KB) replacement for importing the entire google-libphonenumber
* library into the critical bootstrap and I18n bundles.
*/
export const COUNTRY_CALLING_CODES: Readonly<Record<string, string>> = {
AF: "93",
AL: "355",
DZ: "213",
AS: "1",
AD: "376",
AO: "244",
AI: "1",
AG: "1",
AR: "54",
AM: "374",
AW: "297",
AU: "61",
AT: "43",
AZ: "994",
BS: "1",
BH: "973",
BD: "880",
BB: "1",
BY: "375",
BE: "32",
BZ: "501",
BJ: "229",
BM: "1",
BT: "975",
BO: "591",
BA: "387",
BW: "267",
BR: "55",
IO: "246",
VG: "1",
BN: "673",
BG: "359",
BF: "226",
BI: "257",
KH: "855",
CM: "237",
CA: "1",
CV: "238",
KY: "1",
CF: "236",
TD: "235",
CL: "56",
CN: "86",
CX: "61",
CC: "61",
CO: "57",
KM: "269",
CK: "682",
CR: "506",
HR: "385",
CU: "53",
CW: "599",
CY: "357",
CZ: "420",
CD: "243",
DK: "45",
DJ: "253",
DM: "1",
DO: "1",
EC: "593",
EG: "20",
SV: "503",
GQ: "240",
ER: "291",
EE: "372",
SZ: "268",
ET: "251",
FK: "500",
FO: "298",
FJ: "679",
FI: "358",
FR: "33",
GF: "594",
PF: "689",
GA: "241",
GM: "220",
GE: "995",
DE: "49",
GH: "233",
GI: "350",
GR: "30",
GL: "299",
GD: "1",
GP: "590",
GU: "1",
GT: "502",
GG: "44",
GN: "224",
GW: "245",
GY: "592",
HT: "509",
HN: "504",
HK: "852",
HU: "36",
IS: "354",
IN: "91",
ID: "62",
IR: "98",
IQ: "964",
IE: "353",
IM: "44",
IL: "972",
IT: "39",
CI: "225",
JM: "1",
JP: "81",
JE: "44",
JO: "962",
KZ: "7",
KE: "254",
KI: "686",
XK: "383",
KW: "965",
KG: "996",
LA: "856",
LV: "371",
LB: "961",
LS: "266",
LR: "231",
LY: "218",
LI: "423",
LT: "370",
LU: "352",
MO: "853",
MG: "261",
MW: "265",
MY: "60",
MV: "960",
ML: "223",
MT: "356",
MH: "692",
MQ: "596",
MR: "222",
MU: "230",
YT: "262",
MX: "52",
FM: "691",
MD: "373",
MC: "377",
MN: "976",
ME: "382",
MS: "1",
MA: "212",
MZ: "258",
MM: "95",
NA: "264",
NR: "674",
NP: "977",
NL: "31",
NC: "687",
NZ: "64",
NI: "505",
NE: "227",
NG: "234",
NU: "683",
NF: "672",
KP: "850",
MK: "389",
MP: "1",
NO: "47",
OM: "968",
PK: "92",
PW: "680",
PS: "970",
PA: "507",
PG: "675",
PY: "595",
PE: "51",
PH: "63",
PL: "48",
PT: "351",
PR: "1",
QA: "974",
CG: "242",
RE: "262",
RO: "40",
RU: "7",
RW: "250",
BL: "590",
SH: "290",
KN: "1",
LC: "1",
MF: "590",
PM: "508",
VC: "1",
WS: "685",
SM: "378",
ST: "239",
SA: "966",
SN: "221",
RS: "381",
SC: "248",
SL: "232",
SG: "65",
SX: "1",
SK: "421",
SI: "386",
SB: "677",
SO: "252",
ZA: "27",
KR: "82",
SS: "211",
ES: "34",
LK: "94",
SD: "249",
SR: "597",
SE: "46",
CH: "41",
SY: "963",
TW: "886",
TJ: "992",
TZ: "255",
TH: "66",
TL: "670",
TG: "228",
TK: "690",
TO: "676",
TT: "1",
TN: "216",
TR: "90",
TM: "993",
TC: "1",
TV: "688",
UG: "256",
UA: "380",
AE: "971",
GB: "44",
US: "1",
UY: "598",
UZ: "998",
VU: "678",
VA: "379",
VE: "58",
VN: "84",
VI: "1",
WF: "681",
EH: "212",
YE: "967",
ZM: "260",
ZW: "263",
};
export function getCallingCodeForCountry(
isoCode?: string | null,
): string | undefined {
if (!isoCode) return undefined;
const upper = isoCode.trim().toUpperCase();
return COUNTRY_CALLING_CODES[upper];
}