0.0.2 • Published 10 months ago

ngx-input-tell v0.0.2

Weekly downloads
-
License
-
Repository
-
Last release
10 months ago

International Telephone Input for Angular (NgxInputTel)

Build Status npm version npm

An Angular package for entering and validating international telephone numbers. It adds a flag dropdown to any input, detects the user's country, displays a relevant placeholder and provides formatting/validation methods.

alt

Compatibility:

Validation with google-libphonenumber

ngx-input-telAngularngx-bootstrap
16.x.x16.x.x>= 11.0.0

Installation

Install Dependencies

$ npm install ngx-input-tel-intl --save

$ npm install google-libphonenumber --save

$ ng add ngx-bootstrap

If you do not wish to use Bootstrap's global CSS, we now package the project with only the relevant bootstrap styling needed for the dropdown. As such, you can remove the bootstrap styling from angular.json.

Further, Angular CLI should tree-shake the rest of Ngx-Boostrap away if you don't utilize other dependencies from the bootstrap package. This should keep this dependency a lean feature-add

Add Dependency Style

Add 'intl-tel-input' style file:

./node_modules/ngx-input-tel-intl/build/css/input-tel-intl.css

to angular.json styles array:

"styles": [
"./node_modules/ngx-input-tel-intl/build/css/input-tel-intl.css",
"src/styles.css"
],

Install This Library

$ npm install ngx-input-tel --save

Usage

Import

Add NgxInputTelIntlModule to your module file:

imports: [NgxInputTelIntlModule];

You can use it by this way:

<form #f="ngForm" [formGroup]="phoneForm">
    <ngx-tel-input-intl
        [favoriteCountries]="favoriteCountries"
        [enableAutoCountrySelect]="true"
        [displayPlaceholder]="true"
        [selectedCountryISO]="CountryISO.FrenchPolynesia"
        [phoneValidation]="true"
        [separateDialCode]="separateDialCode"
        [numberFormat]="PhoneNumberFormat.INTERNATIONAL"
        searchCountryField="ALL"
        cssClass="custom"
        [formControl]="phone">
    </ngx-tel-input-intl>
</form>

You can choose to use a formControl or just a formControlName. It depends on your needs.

Options

OptionsTypeDefaultDescription
cssClassstringcontrol-formBootstrap input css class or your own custom one.
favoriteCountries<CountryISO>[][]List of countries, which will appear at the top.
onlyCountries<CountryISO>[][]List of manually selected countries, which will appear in the dropdown.
enableAutoCountrySelectbooleantrueToggle automatic country (flag) selection based on user input.
displayPlaceholderbooleantrueInput placeholder text, which adapts to the country selected.
customPlaceholderstringNoneCustom string to be inserted as a placeholder.
numberFormat<PhoneNumberFormat>PhoneNumberFormat.InternationalCustom string to be inserted as a placeholder.
displaySearchCountrybooleanfalseEnables input search box for countries in the flag dropdown.
searchCountryField<SearchCountryField>SearchCountryField.AllCustomize which fields to search in, if searchCountryFlag is enabled. Use SearchCountryField helper enum.
searchCountryPlaceholderstring'Search Country'Placeholder value for searchCountryField
maxLengthnumberNoneAdd character limit.
selectFirstCountrybooleantrueSelects first country from preferredCountries if is set. If not then uses main list.
phoneValidationbooleantrueDisable phone validation.
inputIdstringphoneUnique ID for <input> element.
selectedCountryISO<CountryISO>NoneSet specific country on load.
separateDialCodebooleanfalseVisually separate dialcode into the drop down element.
countryChange<Country>NoneEmits country value when the user selects a country from the dropdown.
lang<Country>frLanguage used for country name display and search.

Supported Formats

Following formats are supported

  • NATIONAL // Produces "044 668 18 00"
  • INTERNATIONAL // Produces "+41 44 668 18 00"
  • E164 // Produces "+41446681800"