Package Exports
- ngx-mat-tel-input
- ngx-mat-tel-input/bundles/ngx-mat-tel-input.umd.js
- ngx-mat-tel-input/fesm2015/ngx-mat-tel-input.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ngx-mat-tel-input) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
NgxMatTelInput
Angular Material component for inputting telephone numbers.
- Validates and formats phone numbers (via Google's libphonenumber)
- Material design
- Reactive forms
- 250 countries and dependent areas
- Flags optimized for low resolution
- Angular 8, 9, 10, 11, 12
Click here to see a StackBlitz demo.
Installation
Install peer dependencies:
$ npm install @angular/flex-layout ngx-mat-select-search google-libphonenumber world-countriesInstall the package using npm:
$ npm install ngx-mat-tel-inputNote: If you're running npm 7.0.0 or later, add
--legacy-peer-deps
Import the module into your app.module.ts:
import { NgxMatTelInputModule } from 'ngx-mat-tel-input';
@NgModule({
...
imports: [
...,
NgxMatTelInputModule
],
...
})Basic Usage
Template
<form [formGroup]="myFormGroup" (ngSubmit)="onSubmit()" autocomplete="off">
<mat-form-field appearance="outline">
<mat-label>Phone Number</mat-label>
<lib-ngx-mat-tel-input formControlName="phoneNumber">
</lib-ngx-mat-tel-input>
<mat-error *ngIf="phoneNumber.hasError('required')">
This field is <strong>required</strong>
</mat-error>
<mat-error *ngIf="phoneNumber.hasError('format')">
Phone number is <strong>invalid</strong>
</mat-error>
</mat-form-field>
</form>Component
import {Component} from '@angular/core';
import {FormGroup, FormControl, Validators} from '@angular/forms';
@Component({
selector: 'my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent {
myFormGroup = new FormGroup({
phoneNumber: new FormControl({value: '', disabled: false}, [Validators.required,]),
});
onSubmit(): void {
}
get phoneNumber(): FormControl {
return this.myFormGroup.get('phoneNumber') as FormControl;
}
}Errors
format
This error is triggered when the user's input does not form a valid phone number.
<mat-error *ngIf="phoneNumber.hasError('format')">
Phone number is <strong>invalid</strong>
</mat-error>country
This error is triggered when the user enters a phone number which belongs to a country or dependent area that isn't
in countryWhiteList, or is in countryBlacklist.
<mat-error *ngIf="phoneNumber.hasError('country')">
US numbers <strong>only</strong>
</mat-error>Options
| Option | Type | Optional? | Example | Description |
|---|---|---|---|---|
| defaultCountry | string |
Yes | [defaultCountry]="'US'" |
The country or dependent area to be selected by default in the country picker. If omitted, Afghanistan will be selected by default. |
| countryWhitelist | string[] |
Yes | [countryWhitelist]="['US', 'CA']" |
List of countries and dependent areas to include in the country picker. If omitted, all countries and dependant areas will be displayed. |
| countryBlacklist | string[] |
Yes | [countryBlacklist]="['DE','PA','NZ']" |
List of countries and dependent areas to exclude from the country picker. If omitted, all countries and dependant areas will be displayed. |
| format | number |
Yes | [format]="0" |
The format of the phone number written to form control bound to lib-ngx-mat-tel-input.
|
NOTE
Countries are represented by their ISO 3166-1 alpha-2 code (e.g. " FR" for France). Codes should consist of capital letters only with no extraneous whitespace.