p-intl-input-tel-gg
Version:
Forked project with improvements
398 lines (388 loc) • 11.9 kB
TypeScript
import * as i0 from '@angular/core';
import { OnChanges, OnDestroy, EventEmitter, SimpleChanges, OnInit, ElementRef } from '@angular/core';
import * as lpn from 'google-libphonenumber';
import { PhoneNumberFormat, PhoneNumberUtil, PhoneNumber } from 'google-libphonenumber';
import { ControlValueAccessor, Validator, FormControl, ValidationErrors, NgControl } from '@angular/forms';
declare enum CountryISO {
Afghanistan = "af",
Albania = "al",
Algeria = "dz",
AmericanSamoa = "as",
Andorra = "ad",
Angola = "ao",
Anguilla = "ai",
AntiguaAndBarbuda = "ag",
Argentina = "ar",
Armenia = "am",
Aruba = "aw",
Australia = "au",
Austria = "at",
Azerbaijan = "az",
Bahamas = "bs",
Bahrain = "bh",
Bangladesh = "bd",
Barbados = "bb",
Belarus = "by",
Belgium = "be",
Belize = "bz",
Benin = "bj",
Bermuda = "bm",
Bhutan = "bt",
Bolivia = "bo",
BosniaAndHerzegovina = "ba",
Botswana = "bw",
Brazil = "br",
BritishIndianOceanTerritory = "io",
BritishVirginIslands = "vg",
Brunei = "bn",
Bulgaria = "bg",
BurkinaFaso = "bf",
Burundi = "bi",
Cambodia = "kh",
Cameroon = "cm",
Canada = "ca",
CapeVerde = "cv",
CaribbeanNetherlands = "bq",
CaymanIslands = "ky",
CentralAfricanRepublic = "cf",
Chad = "td",
Chile = "cl",
China = "cn",
ChristmasIsland = "cx",
Cocos = "cc",
Colombia = "co",
Comoros = "km",
CongoDRCJamhuriYaKidemokrasiaYaKongo = "cd",
CongoRepublicCongoBrazzaville = "cg",
CookIslands = "ck",
CostaRica = "cr",
CôteDIvoire = "ci",
Croatia = "hr",
Cuba = "cu",
Curaçao = "cw",
Cyprus = "cy",
CzechRepublic = "cz",
Denmark = "dk",
Djibouti = "dj",
Dominica = "dm",
DominicanRepublic = "do",
Ecuador = "ec",
Egypt = "eg",
ElSalvador = "sv",
EquatorialGuinea = "gq",
Eritrea = "er",
Estonia = "ee",
Ethiopia = "et",
FalklandIslands = "fk",
FaroeIslands = "fo",
Fiji = "fj",
Finland = "fi",
France = "fr",
FrenchGuiana = "gf",
FrenchPolynesia = "pf",
Gabon = "ga",
Gambia = "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",
GuineaBissau = "gw",
Guyana = "gy",
Haiti = "ht",
Honduras = "hn",
HongKong = "hk",
Hungary = "hu",
Iceland = "is",
India = "in",
Indonesia = "id",
Iran = "ir",
Iraq = "iq",
Ireland = "ie",
IsleOfMan = "im",
Israel = "il",
Italy = "it",
Jamaica = "jm",
Japan = "jp",
Jersey = "je",
Jordan = "jo",
Kazakhstan = "kz",
Kenya = "ke",
Kiribati = "ki",
Kosovo = "xk",
Kuwait = "kw",
Kyrgyzstan = "kg",
Laos = "la",
Latvia = "lv",
Lebanon = "lb",
Lesotho = "ls",
Liberia = "lr",
Libya = "ly",
Liechtenstein = "li",
Lithuania = "lt",
Luxembourg = "lu",
Macau = "mo",
Macedonia = "mk",
Madagascar = "mg",
Malawi = "mw",
Malaysia = "my",
Maldives = "mv",
Mali = "ml",
Malta = "mt",
MarshallIslands = "mh",
Martinique = "mq",
Mauritania = "mr",
Mauritius = "mu",
Mayotte = "yt",
Mexico = "mx",
Micronesia = "fm",
Moldova = "md",
Monaco = "mc",
Mongolia = "mn",
Montenegro = "me",
Montserrat = "ms",
Morocco = "ma",
Mozambique = "mz",
Myanmar = "mm",
Namibia = "na",
Nauru = "nr",
Nepal = "np",
Netherlands = "nl",
NewCaledonia = "nc",
NewZealand = "nz",
Nicaragua = "ni",
Niger = "ne",
Nigeria = "ng",
Niue = "nu",
NorfolkIsland = "nf",
NorthKorea = "kp",
NorthernMarianaIslands = "mp",
Norway = "no",
Oman = "om",
Pakistan = "pk",
Palau = "pw",
Palestine = "ps",
Panama = "pa",
PapuaNewGuinea = "pg",
Paraguay = "py",
Peru = "pe",
Philippines = "ph",
Poland = "pl",
Portugal = "pt",
PuertoRico = "pr",
Qatar = "qa",
Réunion = "re",
Romania = "ro",
Russia = "ru",
Rwanda = "rw",
SaintBarthélemy = "bl",
SaintHelena = "sh",
SaintKittsAndNevis = "kn",
SaintLucia = "lc",
SaintMartin = "mf",
SaintPierreAndMiquelon = "pm",
SaintVincentAndTheGrenadines = "vc",
Samoa = "ws",
SanMarino = "sm",
SãoToméAndPríncipe = "st",
SaudiArabia = "sa",
Senegal = "sn",
Serbia = "rs",
Seychelles = "sc",
SierraLeone = "sl",
Singapore = "sg",
SintMaarten = "sx",
Slovakia = "sk",
Slovenia = "si",
SolomonIslands = "sb",
Somalia = "so",
SouthAfrica = "za",
SouthKorea = "kr",
SouthSudan = "ss",
Spain = "es",
SriLanka = "lk",
Sudan = "sd",
Suriname = "sr",
SvalbardAndJanMayen = "sj",
Swaziland = "sz",
Sweden = "se",
Switzerland = "ch",
Syria = "sy",
Taiwan = "tw",
Tajikistan = "tj",
Tanzania = "tz",
Thailand = "th",
TimorLeste = "tl",
Togo = "tg",
Tokelau = "tk",
Tonga = "to",
TrinidadAndTobago = "tt",
Tunisia = "tn",
Turkey = "tr",
Turkmenistan = "tm",
TurksAndCaicosIslands = "tc",
Tuvalu = "tv",
USVirginIslands = "vi",
Uganda = "ug",
Ukraine = "ua",
UnitedArabEmirates = "ae",
UnitedKingdom = "gb",
UnitedStates = "us",
Uruguay = "uy",
Uzbekistan = "uz",
Vanuatu = "vu",
VaticanCity = "va",
Venezuela = "ve",
Vietnam = "vn",
WallisAndFutuna = "wf",
WesternSahara = "eh",
Yemen = "ye",
Zambia = "zm",
Zimbabwe = "zw",
ÅlandIslands = "ax"
}
declare enum SearchCountryField {
DIALCODE = "dialCode",
ISO2 = "iso2",
NAME = "name"
}
declare class Country {
name: string;
iso2: string;
dialCode: string;
priority: number;
areaCodes?: string[];
htmlId: string;
flagClass: string;
placeHolder: string;
isFavorite: boolean;
constructor();
}
declare class IntlInputTelComponent implements OnChanges, OnDestroy, ControlValueAccessor, Validator {
cssClass: string;
favoriteCountries: string[];
onlyCountries: string[];
enableAutoCountrySelect: boolean;
displayPlaceholder: boolean;
customPlaceholder: string;
numberFormat: PhoneNumberFormat;
searchCountryField: SearchCountryField[];
selectFirstCountry: boolean;
inputId: string;
selectedCountryISO?: CountryISO;
separateDialCode: boolean;
showExamplePlaceholder: boolean;
phoneValidation: boolean;
private _lang;
set lang(value: string);
get lang(): string;
set disabled(value: boolean);
readonly countryChange: EventEmitter<Country>;
readonly SearchCountryField: typeof SearchCountryField;
phoneUtil: PhoneNumberUtil;
phoneNumberControl: FormControl<string | null>;
private destroy$;
countriesSignal: i0.WritableSignal<Country[]>;
selectedCountrySignal: i0.WritableSignal<Country>;
phoneState: i0.WritableSignal<{
number: null;
country: null;
valid: boolean;
formatted: string;
} | {
number: lpn.PhoneNumber;
country: string;
valid: boolean;
formatted: string;
} | {
number: null;
country: string;
valid: boolean;
formatted: string;
}>;
examplePlaceholder: i0.Signal<string>;
private get favorites();
private propagateChange;
private onTouched;
private onValidatorChange;
constructor();
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
init(): void;
getCurrentMaxLength(): number;
onInputKeyPress(event: KeyboardEvent): void;
onInputBlur(): void;
onCountrySelect(country: Country): void;
onPaste(event: ClipboardEvent): void;
protected fetchCountryData(): void;
private updateSelectedCountry;
private getPlaceholder;
writeValue(obj: string): void;
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
registerOnValidatorChange(fn: () => void): void;
setDisabledState(isDisabled: boolean): void;
validate(): ValidationErrors | null;
getErrorMessage(): string;
static ɵfac: i0.ɵɵFactoryDeclaration<IntlInputTelComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<IntlInputTelComponent, "p-intl-tel-input-gg", never, { "cssClass": { "alias": "cssClass"; "required": false; }; "favoriteCountries": { "alias": "favoriteCountries"; "required": false; }; "onlyCountries": { "alias": "onlyCountries"; "required": false; }; "enableAutoCountrySelect": { "alias": "enableAutoCountrySelect"; "required": false; }; "displayPlaceholder": { "alias": "displayPlaceholder"; "required": false; }; "customPlaceholder": { "alias": "customPlaceholder"; "required": false; }; "numberFormat": { "alias": "numberFormat"; "required": false; }; "searchCountryField": { "alias": "searchCountryField"; "required": false; }; "selectFirstCountry": { "alias": "selectFirstCountry"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "selectedCountryISO": { "alias": "selectedCountryISO"; "required": false; }; "separateDialCode": { "alias": "separateDialCode"; "required": false; }; "showExamplePlaceholder": { "alias": "showExamplePlaceholder"; "required": false; }; "phoneValidation": { "alias": "phoneValidation"; "required": false; }; "lang": { "alias": "lang"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "countryChange": "countryChange"; }, never, never, true, never>;
}
declare class NativeElementInjectorDirective implements OnInit {
private controlDir;
private host;
constructor(controlDir: NgControl, host: ElementRef<HTMLFormElement>);
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<NativeElementInjectorDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<NativeElementInjectorDirective, "[ngModel], [formControl], [formControlName]", never, {}, {}, never, never, true, never>;
}
declare class FavoriteElementInjectorDirective implements OnInit {
private el;
constructor(el: ElementRef);
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<FavoriteElementInjectorDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<FavoriteElementInjectorDirective, "[favorite]", never, {}, {}, never, never, true, never>;
}
declare class ChangeData {
number: string;
internationalNumber: string;
nationalNumber: string;
e164Number: string;
countryCode: string | undefined;
dialCode: string;
constructor(phoneNumber?: PhoneNumber);
}
declare class LocalPhoneUtils {
/**
* Returns parse PhoneNumber object.
* @param phoneNumber string
* @param regionCode string
*/
static getParsedNumber(phoneNumber?: string, regionCode?: string): PhoneNumber;
/**
* Return a ChangeData object initialized with a phone number
* @param phoneNumber
*/
static getChangeData(phoneNumber?: string): ChangeData;
/**
* Gets formatted example phone number from phoneUtil.
* @param numberFormat
* @param countryCode
*/
static getPhoneNumberPlaceHolder(numberFormat: PhoneNumberFormat, countryCode: string): string;
/**
* Sifts through all countries and returns iso code of the primary country
* based on the number provided.
* @param number PhoneNumber
* @param countryCode country code in number format
*/
static getCountryIsoCode(number: PhoneNumber, countryCode?: number): string | undefined;
}
export { ChangeData, CountryISO, FavoriteElementInjectorDirective, IntlInputTelComponent, LocalPhoneUtils, NativeElementInjectorDirective, SearchCountryField };
//# sourceMappingURL=index.d.ts.map