{"version":3,"file":"ngx-form-validations.mjs","sources":["../../../projects/ngx-form-validations/src/lib/ngx-form-validations.config.ts","../../../projects/ngx-form-validations/src/lib/Services/ngx-form-validations.service.ts","../../../projects/ngx-form-validations/src/lib/Components/ngx-form-validations-error.component.ts","../../../projects/ngx-form-validations/src/lib/Components/ngx-form-validations-error.component.html","../../../projects/ngx-form-validations/src/lib/Components/ngx-form-validations-validate.component.ts","../../../projects/ngx-form-validations/src/lib/Components/ngx-form-validations-control.component.ts","../../../projects/ngx-form-validations/src/lib/ngx-form-validations.module.ts","../../../projects/ngx-form-validations/src/public-api.ts","../../../projects/ngx-form-validations/src/ngx-form-validations.ts"],"sourcesContent":["import { INgxFormValidationsConfig } from \"./Models/ngx-form-validations-config.model\";\r\n\r\nexport const NgxFormValidationsConfig: INgxFormValidationsConfig = \r\n    {\r\n      \"required\": requiredConfig,\r\n      \"minlength\": minlengthConfig,\r\n      \"maxlength\": maxlengthConfig,\r\n      \"requiredTrue\": requiredTrueConfig,\r\n      \"pattern\": patternConfig,\r\n      \"email\": emailConfig,\r\n      \"max\": maxConfig,\r\n      \"min\": minConfig\r\n    };\r\n\r\nexport function requiredConfig(label: string) {  \r\n  return `'${label}' field is required`;\r\n}\r\nexport function minlengthConfig(label: string, error: any) {\r\n  return `${label} field must be no longer than ${error.requiredLength} characters`;\r\n}\r\nexport function maxlengthConfig(label: string, error: any) {\r\n  return `'${label}' field must be no longer than ${error.requiredLength} characters`;\r\n}\r\nexport function requiredTrueConfig(label: string) {\r\n  return `${label} field is required`;\r\n}\r\nexport function patternConfig(label: string) {\r\n  return `${label} field is invalid`;\r\n}\r\nexport function emailConfig(label: string) {\r\n  return `Invalid email address`;\r\n}\r\nexport function maxConfig(label: string, error: any) {  \r\n  return `${label} field must be no greater than ${error.max}`;\r\n}\r\nexport function minConfig(label: string, error: any) {\r\n  return `${label} field must be no less than ${error.min}`;\r\n}","import { Inject, Injectable } from \"@angular/core\";\r\nimport { INgxFormValidationsConfig } from \"../Models/ngx-form-validations-config.model\";\r\nimport { INgxFormValidationsError } from \"../Models/ngx-form-validations-error.model\";\r\nimport { NgxFormValidationsConfig } from \"../ngx-form-validations.config\";\r\n\r\n@Injectable()\r\nexport class NgxFormValidationsService {\r\n\r\n    constructor(@Inject(NgxFormValidationsConfig) private autoValidateConfig: INgxFormValidationsConfig) {\r\n        \r\n    }\r\n\r\n    getErrorMessage(error: INgxFormValidationsError, labelName: string): string {\r\n        var validateConfig = this.autoValidateConfig[error.type];\r\n        if(validateConfig)\r\n            return this.autoValidateConfig[error.type](labelName, error.value);\r\n        \r\n        return \"Not handled error\";\r\n    }\r\n\r\n}","import { AfterViewChecked, Component, ElementRef, Renderer2 } from \"@angular/core\";\r\nimport { AbstractControl, FormGroupDirective } from \"@angular/forms\";\r\nimport { MatCheckbox } from \"@angular/material/checkbox\";\r\nimport { INgxFormValidationsError } from \"../Models/ngx-form-validations-error.model\";\r\nimport { NgxFormValidationsService } from \"../Services/ngx-form-validations.service\";\r\n\r\n@Component({\r\n    selector: 'ngx-fv-error',\r\n    templateUrl: './ngx-form-validations-error.component.html',\r\n    providers: [NgxFormValidationsService]\r\n})\r\nexport class NgxFormValidationsErrorComponent implements AfterViewChecked {\r\n\r\n    control: AbstractControl;\r\n    private labelName: string | ElementRef;\r\n    form: FormGroupDirective;\r\n    private formControlInput: ElementRef;\r\n    private resetFormFunc: (value?: any) => void;\r\n    canShow: boolean = false;\r\n    \r\n    constructor(private autoValidateService: NgxFormValidationsService,\r\n        private renderer: Renderer2) {\r\n        \r\n    }\r\n\r\n    convertObjectToArray(obj: { [x: string]: any; }): INgxFormValidationsError[]{\r\n        if(obj)\r\n        {\r\n            if(this.formControlInput){\r\n                this.renderer.addClass(this.formControlInput.nativeElement, 'is-invalid');\r\n                this.renderer.removeClass(this.formControlInput.nativeElement, 'is-valid');\r\n            }\r\n\r\n            return Object.keys(obj).map(key => ({type: key, value: obj[key]}))\r\n        }\r\n        \r\n        if(this.formControlInput)\r\n        {\r\n            this.renderer.removeClass(this.formControlInput.nativeElement, 'is-invalid');\r\n            this.renderer.addClass(this.formControlInput.nativeElement, 'is-valid');\r\n        }\r\n\r\n        return [];\r\n    }\r\n\r\n    ngAfterViewChecked() {\r\n        this.canShow = true;\r\n    }\r\n\r\n    getErrorMessage(error: INgxFormValidationsError): string{\r\n        let labelName = this.labelName instanceof ElementRef ? (this.labelName as ElementRef).nativeElement.innerText : this.labelName;\r\n\r\n        return this.autoValidateService.getErrorMessage(error, labelName);\r\n    }\r\n\r\n    init(form: FormGroupDirective, control: AbstractControl, labelName: string | ElementRef, formControlInput: ElementRef) {\r\n        this.control = control;\r\n        this.labelName = labelName;       \r\n        this.form = form;\r\n        this.formControlInput = formControlInput;\r\n\r\n        this.resetFormFunc = form.resetForm;\r\n        form.resetForm = () => {\r\n            if(this.formControlInput){\r\n                this.renderer.removeClass(this.formControlInput.nativeElement, 'is-invalid');\r\n                this.renderer.removeClass(this.formControlInput.nativeElement, 'is-valid');\r\n            }\r\n            \r\n            this.resetFormFunc.apply(form, arguments);\r\n        }\r\n    }\r\n}","<ng-container *ngIf=\"canShow && ((form && form.submitted) || (control && control.dirty))\">\r\n    <div class=\"text-danger\" *ngFor=\"let error of convertObjectToArray(control.errors)\">\r\n        {{ getErrorMessage(error) }}\r\n    </div>\r\n</ng-container>","import { Component, Input, ContentChild, ElementRef } from \"@angular/core\";\r\nimport { AbstractControl, FormGroupDirective } from \"@angular/forms\";\r\nimport { NgxFormValidationsErrorComponent } from \"./ngx-form-validations-error.component\";\r\n\r\n@Component({\r\n    selector: 'ngx-fv-validate',\r\n    template: '<ng-content></ng-content>',\r\n})\r\nexport class NgxFormValidationsValidateComponent {\r\n\r\n    @Input() control: AbstractControl;\r\n    @Input(\"labelName\") labelNameString: string;\r\n    @ContentChild(NgxFormValidationsErrorComponent) private autoError: NgxFormValidationsErrorComponent;\r\n    @ContentChild('ngxFvName') private labelName: ElementRef;\r\n    @ContentChild('ngxFvFormControl') private formControlInput: ElementRef;\r\n\r\n    constructor() {\r\n        \r\n    }\r\n    \r\n    init(form: FormGroupDirective){\r\n        this.autoError.init(form, this.control, this.labelNameString || this.labelName, this.formControlInput);\r\n    }\r\n}","import { AfterContentInit, Component, ContentChildren, Input } from \"@angular/core\";\r\nimport { FormGroupDirective } from \"@angular/forms\";\r\nimport { NgxFormValidationsValidateComponent } from \"./ngx-form-validations-validate.component\";\r\n\r\n@Component({\r\n    selector: '[ngxFvControl]',\r\n    template: '<ng-content></ng-content>',\r\n})\r\nexport class NgxFormValidationsControlComponent implements AfterContentInit {\r\n\r\n    @Input() ngxFvControl: FormGroupDirective;\r\n    @ContentChildren(NgxFormValidationsValidateComponent, { descendants: true }) private autoValidateComponents: NgxFormValidationsValidateComponent[];\r\n\r\n    constructor() {\r\n        \r\n    }\r\n\r\n    ngAfterContentInit() {\r\n        if(this.autoValidateComponents && this.autoValidateComponents.length > 0){\r\n            this.autoValidateComponents.forEach(avc => avc.init(this.ngxFvControl))\r\n        }\r\n    }\r\n}","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgxFormValidationsControlComponent } from './Components/ngx-form-validations-control.component';\r\nimport { NgxFormValidationsErrorComponent } from './Components/ngx-form-validations-error.component';\r\nimport { NgxFormValidationsValidateComponent } from './Components/ngx-form-validations-validate.component';\r\nimport { NgxFormValidationsConfig } from './ngx-form-validations.config';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NgxFormValidationsErrorComponent,\r\n    NgxFormValidationsValidateComponent,\r\n    NgxFormValidationsControlComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    BrowserAnimationsModule,\r\n    ReactiveFormsModule,\r\n  ],\r\n  exports: [\r\n    NgxFormValidationsErrorComponent,\r\n    NgxFormValidationsValidateComponent,\r\n    NgxFormValidationsControlComponent\r\n  ],\r\n  providers: [{\r\n    provide: NgxFormValidationsConfig,\r\n    useValue: NgxFormValidationsConfig,\r\n  }]\r\n})\r\nexport class NgxFormValidationsModule { }\r\n","/*\r\n * Public API Surface of ngx-form-validation\r\n */\r\n\r\nexport * from './lib/Components/ngx-form-validations-control.component';\r\nexport * from './lib/Components/ngx-form-validations-error.component';\r\nexport * from './lib/Components/ngx-form-validations-validate.component';\r\nexport * from './lib/Models/ngx-form-validations-config.model';\r\nexport * from './lib/ngx-form-validations.module';\r\nexport * from './lib/ngx-form-validations.config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}