cs-country-selector
Version:
<h1>🌍 cs-country-selector</h1>
55 lines (52 loc) • 2.69 kB
TypeScript
import * as i0 from '@angular/core';
import { OnInit, OnDestroy, EventEmitter } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
interface Country {
code: string;
name: string;
flagUrl: string;
}
declare class CountrySelectorComponent implements OnInit, OnDestroy, ControlValueAccessor {
initialCountryCode: string;
includeFlags: boolean;
onlyCountries: string[];
excludeCountries: string[];
placeholder: string;
containerClass: string;
inputClass: string;
dropdownClass: string;
flagClass: string;
selectedFlagClass: string;
itemClass: string;
activeItemClass: string;
countrySelected: EventEmitter<Country | null>;
countries: Country[];
filteredCountries: Country[];
selectedCountry: Country | null;
countrySearchControl: FormControl<string | null>;
displayValue: string;
showDropdown: boolean;
highlightIndex: number;
activeDescendant: string;
private onChange;
private onTouched;
private destroy$;
private blurTimeout;
ngOnInit(): void;
ngOnDestroy(): void;
writeValue(country: Country | null): void;
registerOnChange(fn: (value: Country | null) => void): void;
registerOnTouched(fn: () => void): void;
setDisabledState(isDisabled: boolean): void;
private getFilteredCountries;
private _filterCountries;
selectCountry(country: Country | null): void;
onFocus(): void;
onBlur(): void;
onKeyDown(event: KeyboardEvent): void;
private setActiveDescendant;
static ɵfac: i0.ɵɵFactoryDeclaration<CountrySelectorComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<CountrySelectorComponent, "cs-country-selector", never, { "initialCountryCode": { "alias": "initialCountryCode"; "required": false; }; "includeFlags": { "alias": "includeFlags"; "required": false; }; "onlyCountries": { "alias": "onlyCountries"; "required": false; }; "excludeCountries": { "alias": "excludeCountries"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "inputClass": { "alias": "inputClass"; "required": false; }; "dropdownClass": { "alias": "dropdownClass"; "required": false; }; "flagClass": { "alias": "flagClass"; "required": false; }; "selectedFlagClass": { "alias": "selectedFlagClass"; "required": false; }; "itemClass": { "alias": "itemClass"; "required": false; }; "activeItemClass": { "alias": "activeItemClass"; "required": false; }; }, { "countrySelected": "countrySelected"; }, never, never, true, never>;
}
export { CountrySelectorComponent };
export type { Country };