ngx-form-validator
Version:
A library for form validator specifically for Angular 2+ Usage for Reactive Forms
123 lines (117 loc) • 3.66 kB
JavaScript
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