An Angular Material 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.
npm install ngx-mat-input-telAn Angular Material 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.

!NPM
!npm bundle size
!npm

- https://stackblitz.com/~/github.com/rbalet/ngx-mat-input-tel
This is a fork from the ngx-mat-intl-tel-input library whish is not maintained anymore.
Supports:
| Angular | ngx-mat-input-tel |
| ------- | ----------------- |
| >= 18 | >= 19.2.0 |
| >= 15 | < 19.2.0 |
- Validation with libphonenumber-js
$ npm i ngx-mat-input-tel@latest
$ npm i libphonenumber-js@latest
Add NgxMatInputTelComponent to your component file:
``ts`
imports: [NgxMatInputTelComponent]
Refer to main app in this repository for working example.
`html`
`html
`
If you want to show the sample number for the country selected or errors , use mat-hint anf mat-error as
`html`
| Options | Type | Default | Description |
| ------------------ | ------------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------- |
| ariaLabel | string | Select country | Aria label for the country selector button |off
| autocomplete | \| tel | off | For input autocompletion |string
| cssClass | | undefined | If input custom class are needed |Record
| countriesName | | COUNTRIES_NAME | For using different country names in the dropdown (Eg. Multilingual website) |CountryCode
| defaultCountry | | undefined | Default country code |boolean
| enablePlaceholder | | false | Input placeholder text, which adapts to the country selected. |boolean
| enableSearch | | false | Whether to display a search bar to help filter down the list of countries |string
| format | \\\\ | default | Format of "as you type" input. Possible values: national, international, default |boolean
| hideAreaCodes | | false | Hide the Area codes in the country dropdown selection |number
| maxLength | | 15 | max length of the input. |string[]
| onlyCountries | | [] | List of manually selected country abbreviations, which will appear in the dropdown. |string
| placeholder | | undefined | Placeholder for the input component. |string[]
| preferredCountries | | [] | List of country abbreviations, which will appear at the top. |boolean
| resetOnChange | | false | Reset input on country change |string
| searchPlaceholder | | Search ... | Placeholder for the search input |isPossible
| validation | \| isValid | isValid | Change the validation type |boolean
| separateDialCode | | false | Whether to separate the dial code from the input _Note: you'll have to manually add margin-left to your input_ |
| Options | Type | Default | Description |
| -------------- | ----------------------- | ----------- | ----------------- |
| countryChanged | EventEmitter | undefined | On country change |
| Name | Default | Explanation |
| -------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------- |
| --ngxMatInputTel-opacity | 0 | If you wish both, the country flag and the placeholder to be shown by default |--ngxMatInputTel-selector-opacity
| | 0 | If you wish the country flag to be shown by default |--ngxMatInputTel-placeholder-opacity
| | 0 | If you wish the placeholder flag to be shown by default |--ngxMatInputTel-flag-display
| | inline-block | If you wish to hide the country flag |--ngxMatInputTel-menu-flag-display
| | inline-block | If you wish to hide the country flag inside the menu only |--ngxMatInputTel-gap
| | 32px | If you wish to change the gap between the flag and the input field (Only works with separateDialCode) |
In case you had to manually remove the validator, the library exported it so you could add it back again.
| Name | Description | Example |
| ------------------------- | ----------------------------------------------- | ------------------------------------------------------ |
| ngxMatInputTelValidator | The actual phone validator used for the control | phoneControl.addValidators([ngxMatInputTlValidator]) |
- Fork repo.
- Go to ./projects/ngx-mat-input-tel./src/lib
- Update with new functionality.
- Update README.md
- Pull request.
- Build lib: $ npm run build_lib$ npm run copy-files
- Copy license and readme files: $ npm run npm_pack
- Create package: $ npm run package
- Build lib and create package:
After building and creating package, you can use it locally too.
In your project run:
$ npm install --save {{path to your local '*.tgz' package file}}`
- maintainer Raphaël Balet
- Forked from ngx-mat-intl-tel-input
Contributions are welcome! See our contribution notes.
