Skip to content

Latest commit

 

History

History
145 lines (115 loc) · 3.21 KB

README.md

File metadata and controls

145 lines (115 loc) · 3.21 KB

NgxRequisite

ngx-requisite library - custom Validators, Utility functions for common development.


npm bundle size (scoped) npm (scoped) jsDelivr hits (npm scoped) node-current


Installation

npm i @slck/ngx-requisite --save

Methods

- isNullOrUndefined
- isDate
- isObject
- leadZeroForMonthOrDay
- remainingDaysHoursFormTwoDates
- toCamelCaseKeys

Validators

Requisite validators

  • whitespace
  • isNegative
  • decimalPrecision

Usage

Model driven

import ReactiveFormsModule in app.module.ts

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

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

@NgModule({
    imports: [BrowserModule, ReactiveFormsModule],
    declarations: [AppComponent],
    bootstrap: [AppComponent]
})
export class AppModule {
}

ngx-requisite import CustomValidators in app.component.ts

import { Component } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
import { requisiteValidators } from '@slck/ngx-requisite';

@Component({
    selector: 'app',
    template: require('./app.html')
})
export class AppComponent {
  devForm = this.fb.group({
    userName: ['', [requisiteValidators.whitespace]],
  });

  get controls(){
    return this.devForm.controls;
  }

  constructor(private fb: FormBuilder) {}
}
<form [formGroup]="form">
  <input type="text" name="" id="" formControlName="userName" />
  <div class="" *ngIf="controls.userName.hasError('whitespace')">having space</div>
</form>

isNegative

new FormControl('', requisiteValidators.isNegative)

decimalPrecision

new FormControl('',requisiteValidators.decimalPrecision)

toCamelCaseKeys

import { toCamelCaseKeys } from '@slck/ngx-requisite';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss'],
})
export class AppComponent implements OnInit  {
  ngOnInit(): void {
    const uncap = toCamelCaseKeys({
      Name: '@slck/ngx-requisite',
      Address: {
        Home: 'uhi'
      },
      Urls: [
        {Path: 'google', Location: 'us'}
      ]
    })
  }
}

 -- output: 
    {
      name: '@slck/ngx-requisite',
      address: {
        home: 'uhi'
      },
      urls: [
        {Path: 'google', Location: 'us'}
      ]
    }

For developers

To run the project : npm start Don't forget to run npm test and npm lint before each pull request. Thanks !