npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mat-phone-code-validator

v1.0.5

Published

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14. This package can be used to implement phone code and phone number validation. this library uses a widely used and valid google phone code library [`googl

Downloads

11

Readme

MatPhoneCodeValidator

This library was generated with Angular CLI version 8.2.14. This package can be used to implement phone code and phone number validation. this library uses a widely used and valid google phone code library google-libphonenumber to validate the phone code and mobile number.

Install

Run this command in you angualr project npm i mat-phone-code-validator --save

alt invalid

Requirements

  1. This component works on FormsModule form group and form controls. Please include them. To get its importance you can view this article. https://dev.to/vishesh/angular-reactive-forms-formsmodule-is-it-necessary-2aca

Usage

@import '~@angular/material/prebuilt-themes/indigo-pink.css'; - Add this line to the main styles.css / styles.scss file. This is required because it only has the complete styles for the package.

Import the module,

import { MatPhoneCodeValidatorModule } from 'mat-phone-code-validator';

Add it to the module imports in the module.ts file

imports: [ MatPhoneCodeValidatorModule ],

Full sample module.ts below,

import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

/* Impot the module like this */
import { MatPhoneCodeValidatorModule } from 'mat-phone-code-validator';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    BrowserAnimationsModule,
    MatPhoneCodeValidatorModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Create a form control in component.ts

  phone = new FormGroup({
    code: new FormControl('', [Validators.required]),
    number: new FormControl('', [(control) => {
          if (!control.value) {
              return {req: 'Please enter the mobile number'};
          }
        },
      Validators.maxLength(15),
      Validators.minLength(5)
    ])
  });

Finally use like below in the component.html

<lib-mat-phone-code-validator [group]="phone"
    [hasCustomValidators]="true"
    [contryCode]="phone.get('code')"
    [mobileNumber]="phone.get('number')"></lib-mat-phone-code-validator>

Exposed attributes and events

Input attributes

  // Main form group that contains the code and number
  @Input() group: FormGroup;
  
  // Country code form control - This will contain the country code
  @Input() contryCode: FormControl;
  
  // Phone number form control
  @Input() mobileNumber: FormControl;
  
  // Error message label name - Default is Mobile number
  @Input() errorlabel = 'Mobile number';
  
  // Flag to recognise if there are any custom validators provided
  @Input() hasCustomValidators = false;
  
  // Place holder string - Default is Mobile number
  @Input() placeholder = 'Mobile number';

  // Mobile enumber input box label - Default is Mobile number
  @Input() label = 'Mobile number';
  
  // ID sttribute of mobile number input tag - Default is contact_mobile_number
  @Input() id = 'contact_mobile_number';

Style class that you can use to add more styles or overwrite

  1. .mobile-number - Main div wrapper
  2. .mobile-code - Contains the mobile code select box
  3. .mobile-input - Contains the mobile input field

Support

You can declare the custom validation function while initialising form control like below.

// The number key has the sample custom validator implementation
const form = new FormGroup({
    code: new FormControl('', [Validators.required]),
    number: new FormControl('', [(control) => {
            if(!control.value){
                return {req: 'Please enter the mobile number'};
            }
        }
    ])
});

Future TODO

  • Make it work without material
  • Add flags
  • Add auto mobile number formating based on code selection
  • Add tests