Files
pagodera/lib/utils/countries.ts
T
2025-11-11 03:08:36 -03:00

74 lines
3.4 KiB
TypeScript

/**
* Lista de países com códigos de área para seleção de telefone
*/
export interface Country {
code: string; // Código ISO 3166-1 alpha-2
name: string; // Nome do país
dialCode: string; // Código de discagem internacional
flag: string; // Emoji da bandeira
}
/**
* Lista de países mais comuns com seus códigos de discagem
* Ordenado por popularidade/uso
*/
export const COUNTRIES: Country[] = [
{ code: "BR", name: "Brasil", dialCode: "+55", flag: "🇧🇷" },
{ code: "US", name: "Estados Unidos", dialCode: "+1", flag: "🇺🇸" },
{ code: "CA", name: "Canadá", dialCode: "+1", flag: "🇨🇦" },
{ code: "MX", name: "México", dialCode: "+52", flag: "🇲🇽" },
{ code: "AR", name: "Argentina", dialCode: "+54", flag: "🇦🇷" },
{ code: "CL", name: "Chile", dialCode: "+56", flag: "🇨🇱" },
{ code: "CO", name: "Colômbia", dialCode: "+57", flag: "🇨🇴" },
{ code: "PE", name: "Peru", dialCode: "+51", flag: "🇵🇪" },
{ code: "PT", name: "Portugal", dialCode: "+351", flag: "🇵🇹" },
{ code: "ES", name: "Espanha", dialCode: "+34", flag: "🇪🇸" },
{ code: "GB", name: "Reino Unido", dialCode: "+44", flag: "🇬🇧" },
{ code: "FR", name: "França", dialCode: "+33", flag: "🇫🇷" },
{ code: "DE", name: "Alemanha", dialCode: "+49", flag: "🇩🇪" },
{ code: "IT", name: "Itália", dialCode: "+39", flag: "🇮🇹" },
{ code: "NL", name: "Holanda", dialCode: "+31", flag: "🇳🇱" },
{ code: "BE", name: "Bélgica", dialCode: "+32", flag: "🇧🇪" },
{ code: "CH", name: "Suíça", dialCode: "+41", flag: "🇨🇭" },
{ code: "AT", name: "Áustria", dialCode: "+43", flag: "🇦🇹" },
{ code: "PL", name: "Polônia", dialCode: "+48", flag: "🇵🇱" },
{ code: "RU", name: "Rússia", dialCode: "+7", flag: "🇷🇺" },
{ code: "CN", name: "China", dialCode: "+86", flag: "🇨🇳" },
{ code: "JP", name: "Japão", dialCode: "+81", flag: "🇯🇵" },
{ code: "KR", name: "Coreia do Sul", dialCode: "+82", flag: "🇰🇷" },
{ code: "IN", name: "Índia", dialCode: "+91", flag: "🇮🇳" },
{ code: "AU", name: "Austrália", dialCode: "+61", flag: "🇦🇺" },
{ code: "NZ", name: "Nova Zelândia", dialCode: "+64", flag: "🇳🇿" },
{ code: "ZA", name: "África do Sul", dialCode: "+27", flag: "🇿🇦" },
{ code: "EG", name: "Egito", dialCode: "+20", flag: "🇪🇬" },
{ code: "TR", name: "Turquia", dialCode: "+90", flag: "🇹🇷" },
{ code: "SA", name: "Arábia Saudita", dialCode: "+966", flag: "🇸🇦" },
{ code: "AE", name: "Emirados Árabes", dialCode: "+971", flag: "🇦🇪" },
{ code: "IL", name: "Israel", dialCode: "+972", flag: "🇮🇱" },
{ code: "UY", name: "Uruguai", dialCode: "+598", flag: "🇺🇾" },
{ code: "PY", name: "Paraguai", dialCode: "+595", flag: "🇵🇾" },
{ code: "BO", name: "Bolívia", dialCode: "+591", flag: "🇧🇴" },
{ code: "VE", name: "Venezuela", dialCode: "+58", flag: "🇻🇪" },
{ code: "EC", name: "Equador", dialCode: "+593", flag: "🇪🇨" },
];
/**
* País padrão (Brasil)
*/
export const DEFAULT_COUNTRY: Country = COUNTRIES[0];
/**
* Busca país por código
*/
export function getCountryByCode(code: string): Country | undefined {
return COUNTRIES.find((c) => c.code === code);
}
/**
* Busca país por código de discagem
*/
export function getCountryByDialCode(dialCode: string): Country | undefined {
return COUNTRIES.find((c) => c.dialCode === dialCode);
}