!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/forms"),require("rxjs"),require("rxjs/operators"),require("@angular/core"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-validation-summary",["exports","@angular/forms","rxjs","rxjs/operators","@angular/core","@angular/common"],e):e(r["angular-validation-summary"]={},r.ng.forms,r.rxjs,r.rxjs.operators,r.ng.core,r.ng.common)}(this,function(r,u,e,t,n,o){"use strict";var a=function(){function r(){}return r.prototype.generateValidationMessages=function(o,a){var i=this;void 0===a&&(a="");var s=[];return Object.keys(o.controls).forEach(function(r){var e=o.controls[r];if(e instanceof u.FormGroup||e instanceof u.FormArray){var t=a+r+": ";s.push.apply(s,i.generateValidationMessages(e,t))}else if(e instanceof u.FormControl){var n=a+r;s.push.apply(s,i.getErrorsFromFormControl(e,n))}}),s},r.prototype.getErrorsFromFormControl=function(r,t){var n=[],o=r.errors;if(null!==o){if(o.required&&n.push(t+" is required."),o.minlength){var e=o.minlength.requiredLength,a=e-o.minlength.actualLength;n.push(t+" minimum length is "+e+". Please add "+a+" characters.")}if(o.maxlength){var i=o.maxlength.requiredLength,s=o.maxlength.actualLength-i;n.push(t+" maximum length is "+i+". Please delete "+s+" characters.")}return o.email&&n.push(t+" must be a valid email address."),Object.keys(o).forEach(function(r){var e=o[r];"string"==typeof e&&n.push(t+" "+e)}),n}},r.decorators=[{type:n.Injectable,args:[{providedIn:"root"}]}],r.ctorParameters=function(){return[]},r.ngInjectableDef=n.defineInjectable({factory:function(){return new r},token:r,providedIn:"root"}),r}(),i=function(){function r(r){this.validationService=r,this.validationMessage="Please fix the following errors:",this.hideUntilSubmit=!1,this.errors=[],this.ngUnsubscribe=new e.Subject}return Object.defineProperty(r.prototype,"showValidationSummary",{get:function(){return(!this.hideUntilSubmit||!1!==this.form.submitted)&&0<this.errors.length},enumerable:!0,configurable:!0}),r.prototype.ngOnInit=function(){var e=this;if(this.form instanceof u.NgForm==!1)throw new Error("You must supply angular-validation-summary with an NgForm.");this.form.statusChanges.pipe(t.takeUntil(this.ngUnsubscribe)).subscribe(function(r){"PENDING"!==r&&"DISABLED"!==r&&("VALID"!==r?e.errors=e.validationService.generateValidationMessages(e.form.control):e.errors.length=0)})},r.prototype.ngOnDestroy=function(){this.ngUnsubscribe.next(),this.ngUnsubscribe.complete()},r.decorators=[{type:n.Component,args:[{selector:"angular-validation-summary",template:'<div *ngIf="showValidationSummary" class="validation-summary">\n    <p class="validation-message">{{ validationMessage }}</p>\n    <ul class="validation-error-list">\n        <li *ngFor="let error of errors" class="validation-error">{{ error }}</li>\n    </ul>\n</div>',styles:[""]}]}],r.ctorParameters=function(){return[{type:a}]},r.propDecorators={form:[{type:n.Input}],validationMessage:[{type:n.Input}],hideUntilSubmit:[{type:n.Input}]},r}(),s=function(){function r(){}return r.decorators=[{type:n.NgModule,args:[{declarations:[i],imports:[o.CommonModule],exports:[i]}]}],r}();r.AngularValidationSummaryService=a,r.AngularValidationSummaryComponent=i,r.AngularValidationSummaryModule=s,Object.defineProperty(r,"__esModule",{value:!0})});
//# sourceMappingURL=angular-validation-summary.umd.min.js.map