UNPKG

ngx-form-validator

Version:

A library for form validator specifically for Angular 2+ Usage for Reactive Forms

123 lines (117 loc) 3.66 kB
import { Subject } from 'rxjs/index'; import { takeUntil } from 'rxjs/internal/operators'; import '@angular/forms'; import { Component, Input, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NgxFormValidatorComponent { constructor() { this.destroy$ = new Subject(); } /** * @return {?} */ ngOnInit() { this.initControl(); } /** * @return {?} */ initControl() { this.control.statusChanges .pipe(takeUntil(this.destroy$)) .subscribe(newValue => { this.error = this.control.errors ? window['Object'].keys(this.control.errors)[0] : null; }); this.error = this.control.errors ? window['Object'].keys(this.control.errors)[0] : null; } /** * @return {?} */ ngOnDestroy() { this.destroy$.next(true); this.destroy$.unsubscribe(); } } NgxFormValidatorComponent.decorators = [ { type: Component, args: [{ selector: 'ngx-form-validator', template: ` <div *ngIf="control?.invalid && control?.touched" class="alert-text" > <div [ngSwitch]="error"> <div *ngSwitchCase="'required'"><div>Required field</div></div> <div *ngSwitchCase="'maxlength'"> <div *ngIf="control.errors.maxlength.requiredLength; else maxLength_zero" > Must contain from 1 to {{ control.errors.maxlength.requiredLength }} symbols </div> <ng-template #maxLength_zero> Must contain at least {{ control.errors.maxlength.requiredLength }} symbols </ng-template> </div> <div *ngSwitchCase="'minlength'"> Must contain at least {{ control.errors.minlength.requiredLength }} symbols </div> <div *ngSwitchCase="'email'">Enter a valid Email</div> <div *ngSwitchCase="'pattern'"> Enter a valid {{ propName || 'value' }} </div> <div *ngSwitchDefault>Required correct field</div> </div> </div> `, styles: [` .alert-text { position: absolute; width: 100%; text-align: right; color: #980000; background-color: transparent; font-size: 13px; } `] }] } ]; /** @nocollapse */ NgxFormValidatorComponent.ctorParameters = () => []; NgxFormValidatorComponent.propDecorators = { control: [{ type: Input }], propName: [{ type: Input }] }; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class NgxFormValidatorModule { } NgxFormValidatorModule.decorators = [ { type: NgModule, args: [{ declarations: [NgxFormValidatorComponent], imports: [CommonModule ], exports: [NgxFormValidatorComponent] },] } ]; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { NgxFormValidatorComponent, NgxFormValidatorModule }; //# sourceMappingURL=ngx-form-validator.js.map