angular-phone-utils-lib
Version:
Angular library for phone number formatting and validation based on libphonenumber-js
139 lines (95 loc) • 3.1 kB
Markdown
# Angular Phone Utils
This an Angular library (and can be used with Angular projects only).
Since version 0.0.19, it is a wrapper arround [google-libphonenumber](https://www.npmjs.com/package/google-libphonenumber) for Angular. Because of the huge bundle size, from version 0.1.0 it was replaced by [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js)
## Install
```
npm install --save angular-phone-utils-lib
```
## PhoneUtilsService
### Usage
```
import { PhoneUtilsService } from 'angular-phone-utils-lib';
// Inject in your component or service:
constructor(private phoneUtils: PhoneUtilsService) { }
```
### Methods
- **getInternational(value: string, country: string)** - Transform a given phone number to international format
- @param value Phone numer
- @param country Two-letters country code
- @returns string
- **getNational(value: string, country: string)** - Transform a given phone number to its national format
- @param value Phone numer
- @param country Two-letters country code
- @returns string
- **getPlain(value: string, country: string)** - International format without inner spaces (PNF.E164)
- @param value Phone numer
- @param country Two-letters country code
- @returns string
- **isValid(value: string, country: string)** - General purpose validator. Use in conjunction with other services
and components. The method will return true when arguments relates to a phone number from the selected country.
- @param value Phone numer
- @param country Two-letters country code
- @returns boolean
- **isValidFormControl(country: string)** - Reactive form validator. It will set **phoneInvalid** property
in related form control error's object.
- @param country Two-letters country code. Usage:
```
// app.component.ts
constructor(public phoneValidatorService: PhoneValidatorService) { }
public getForm() {
this.form = new FormGroup({
phone: new FormControl('', [
Validators.required,
this.phoneValidatorService.isValidPhone('BG')
])
});
}
// app.component.html
<span *ngIf="form.get('phone')?.errors?.phoneInvalid">{{ 'FORM.ERROR.PHONE_FORMAT.INVALID' | translate }}</span>
```
## InternationalFormatPipe
### Usage
Import **AngularPhoneUtilsLibModule** in the module where you want to use it:
```
import { AngularPhoneUtilsLibModule } from 'angular-phone-utils-lib';
@NgModule({
imports: [
...,
AngularPhoneUtilsLibModule
]
})
export class UserModule() { }
```
And then it can be used as:
```
{{ '02 1234567' | internationalFormat : 'BG' }}
```
which will produce:
```
+359 2 123 4567
```
## NationalFormatPipe
### Usage
Import **AngularPhoneUtilsLibModule** in the module where you want to use it:
```
import { AngularPhoneUtilsLibModule } from 'angular-phone-utils-lib';
@NgModule({
imports: [
...,
AngularPhoneUtilsLibModule
]
})
export class UserModule() { }
```
And then it can be used as:
```
{{ '02 1234567' | nationalFormat : 'BG' }}
```
which will produce:
```
02 123 4567
```
## Build and publish
```
npm run build:publish
```