UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

163 lines (162 loc) 14 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { FormControl, FormGroupDirective, FormGroupName } from '@angular/forms'; import { Injector } from '@angular/core'; import { AsiMessage } from './asi-message.directive'; import { Component, Input, ElementRef, ContentChildren, QueryList, Inject, forwardRef, } from '@angular/core'; var AsiErrorMessages = /** @class */ (function () { function AsiErrorMessages(element, formGroupDirective, injector) { this.element = element; this.formGroupDirective = formGroupDirective; this.injector = injector; /** * Display error one by one */ this.showOne = false; this.errorMessages = []; this.submitted = false; } /** * @return {?} */ AsiErrorMessages.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; /** @type {?} */ var formGroupName = this.injector.get(FormGroupName, null); if (this.forName) { if (!formGroupName) { this.for = /** @type {?} */ (this.formGroupDirective.control.controls[this.forName]); } else { /** @type {?} */ var groupFormName = /** @type {?} */ (this.formGroupDirective.control.controls[formGroupName.name]); this.for = /** @type {?} */ (groupFormName.controls[this.forName]); } } this.formGroupDirective.ngSubmit.subscribe(function () { _this.submitted = true; _this.onStatusChange(); }); this.for.statusChanges.subscribe(function () { _this.submitted = false; _this.onStatusChange(); }); }; /** * @return {?} */ AsiErrorMessages.prototype.ngAfterContentInit = /** * @return {?} */ function () { if (this.isFieldRequired()) { this.element.nativeElement.parentElement.classList.add('asi-required'); } }; /** * @return {?} */ AsiErrorMessages.prototype.isFieldRequired = /** * @return {?} */ function () { /** @type {?} */ var required = false; this.messages.forEach(function (element) { if (element.error === 'required') { required = true; } }); return required; }; /** * Methode appellée à chaque changement de l'entré du composant "for" */ /** * Methode appellée à chaque changement de l'entré du composant "for" * @return {?} */ AsiErrorMessages.prototype.onStatusChange = /** * Methode appellée à chaque changement de l'entré du composant "for" * @return {?} */ function () { var _this = this; /** @type {?} */ var messagesError = []; if (this.for.touched || this.submitted) { if (this.for.errors != null && this.messages != null) { this.messages.forEach(function (message) { if (_this.for.errors[message.error] && (!message.onSubmit || _this.submitted) && !(_this.showOne && messagesError.length > 0)) { messagesError.push(message); } }); } } this.errorMessages = messagesError; if (this.errorMessages.length > 0) { this.element.nativeElement.parentElement.classList.add('asi-has-error'); this.element.nativeElement.classList.add('active'); } else { this.element.nativeElement.parentElement.classList.remove('asi-has-error'); this.element.nativeElement.classList.remove('active'); } }; AsiErrorMessages.decorators = [ { type: Component, args: [{ selector: 'error-messages , asi-error-messages', host: { 'class': 'asi-component asi-error-messages' }, template: "<div class=\"errorPanel\">\r\n <ng-content select=\"message\"></ng-content>\r\n <div *ngFor=\"let message of errorMessages\" class=\"asi-error-message\">{{message.value | translate}}</div>\r\n</div>\r\n" }] } ]; /** @nocollapse */ AsiErrorMessages.ctorParameters = function () { return [ { type: ElementRef }, { type: FormGroupDirective, decorators: [{ type: Inject, args: [forwardRef(function () { return FormGroupDirective; }),] }] }, { type: Injector } ]; }; AsiErrorMessages.propDecorators = { for: [{ type: Input }], forName: [{ type: Input }], showOne: [{ type: Input }], messages: [{ type: ContentChildren, args: [AsiMessage,] }] }; return AsiErrorMessages; }()); export { AsiErrorMessages }; if (false) { /** * link the error messages to a formControl * @type {?} */ AsiErrorMessages.prototype.for; /** * link the error messages to a formControl by is name * @type {?} */ AsiErrorMessages.prototype.forName; /** * Display error one by one * @type {?} */ AsiErrorMessages.prototype.showOne; /** @type {?} */ AsiErrorMessages.prototype.messages; /** @type {?} */ AsiErrorMessages.prototype.errorMessages; /** @type {?} */ AsiErrorMessages.prototype.submitted; /** @type {?} */ AsiErrorMessages.prototype.element; /** @type {?} */ AsiErrorMessages.prototype.formGroupDirective; /** @type {?} */ AsiErrorMessages.prototype.injector; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWVycm9yLW1lc3NhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhc2ktbmd0b29scy9saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hc2ktZXJyb3ItbWVzc2FnZXMvYXNpLWVycm9yLW1lc3NhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQVUsZUFBZSxFQUNuQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsR0FDaEQsTUFBTSxlQUFlLENBQUM7O0lBcUJyQiwwQkFBb0IsT0FBbUIsRUFDaUIsa0JBQXNDLEVBQ3BGO1FBRlUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNpQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3BGLGFBQVEsR0FBUixRQUFROzs7O3VCQVRDLEtBQUs7NkJBSVcsRUFBRTt5QkFDekIsS0FBSztLQUtoQjs7OztJQUVELG1DQUFROzs7SUFBUjtRQUFBLGlCQW1CQzs7UUFsQkMsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEdBQUcscUJBQWdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxP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LENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2RDtLQUNGOztnQkFuRkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxxQ0FBcUM7b0JBQy9DLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRTtvQkFDckQsd05BQWdEO2lCQUNqRDs7OztnQkFSbUIsVUFBVTtnQkFKUixrQkFBa0IsdUJBNEJuQyxNQUFNLFNBQUMsVUFBVSxDQUFDLGNBQU0sT0FBQSxrQkFBa0IsRUFBbEIsQ0FBa0IsQ0FBQztnQkEzQnZDLFFBQVE7OztzQkFlZCxLQUFLOzBCQUVMLEtBQUs7MEJBRUwsS0FBSzsyQkFFTCxlQUFlLFNBQUMsVUFBVTs7MkJBdEI3Qjs7U0FhYSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXBOYW1lLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNpTWVzc2FnZSB9IGZyb20gJy4vYXNpLW1lc3NhZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgQ29udGVudENoaWxkcmVuLFxuICBBZnRlckNvbnRlbnRJbml0LCBRdWVyeUxpc3QsIEluamVjdCwgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Vycm9yLW1lc3NhZ2VzICwgYXNpLWVycm9yLW1lc3NhZ2VzJyxcbiAgaG9zdDogeyAnY2xhc3MnOiAnYXNpLWNvbXBvbmVudCBhc2ktZXJyb3ItbWVzc2FnZXMnIH0sXG4gIHRlbXBsYXRlVXJsOiAnYXNpLWVycm9yLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBc2lFcnJvck1lc3NhZ2VzIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcblxuICAvKiogbGluayB0aGUgZXJyb3IgbWVzc2FnZXMgdG8gYSBmb3JtQ29udHJvbCAqL1xuICBASW5wdXQoKSBmb3I6IEZvcm1Db250cm9sO1xuICAvKiogbGluayB0aGUgZXJyb3IgbWVzc2FnZXMgdG8gYSBmb3JtQ29udHJvbCBieSBpcyBuYW1lICovXG4gIEBJbnB1dCgpIGZvck5hbWU6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgZXJyb3Igb25lIGJ5IG9uZSAqL1xuICBASW5wdXQoKSBzaG93T25lID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihBc2lNZXNzYWdlKSBtZXNzYWdlczogUXVlcnlMaXN0PEFzaU1lc3NhZ2U+O1xuXG4gIGVycm9yTWVzc2FnZXM6IEFycmF5PEFzaU1lc3NhZ2U+ID0gW107XG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gRm9ybUdyb3VwRGlyZWN0aXZlKSkgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZm9ybUdyb3VwTmFtZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cE5hbWUsIG51bGwpO1xuICAgIGlmICh0aGlzLmZvck5hbWUpIHtcbiAgICAgIGlmICghZm9ybUdyb3VwTmFtZSkge1xuICAgICAgICB0aGlzLmZvciA9IDxGb3JtQ29udHJvbD50aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5jb250cm9sLmNvbnRyb2xzW3RoaXMuZm9yTmFtZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBncm91cEZvcm1OYW1lOiBGb3JtR3JvdXAgPSA8Rm9ybUdyb3VwPnRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmNvbnRyb2wuY29udHJvbHNbZm9ybUdyb3VwTmFtZS5uYW1lXTtcbiAgICAgICAgdGhpcy5mb3IgPSA8Rm9ybUNvbnRyb2w+Z3JvdXBGb3JtTmFtZS5jb250cm9sc1t0aGlzLmZvck5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLm5nU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5mb3Iuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc0ZpZWxkUmVxdWlyZWQoKSkge1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhc2ktcmVxdWlyZWQnKTtcbiAgICB9XG4gIH1cblxuICBpc0ZpZWxkUmVxdWlyZWQoKSB7XG4gICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuZXJyb3IgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgcmVxdWlyZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXF1aXJlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2RlIGFwcGVsbMOpZSDDoCBjaGFxdWUgY2hhbmdlbWVudCBkZSBsJ2VudHLDqSBkdSBjb21wb3NhbnQgXCJmb3JcIlxuICAgKi9cbiAgb25TdGF0dXNDaGFuZ2UoKSB7XG4gICAgbGV0IG1lc3NhZ2VzRXJyb3I6IEFycmF5PEFzaU1lc3NhZ2U+ID0gW107XG4gICAgaWYgKHRoaXMuZm9yLnRvdWNoZWQgfHwgdGhpcy5zdWJtaXR0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmZvci5lcnJvcnMgIT0gbnVsbCAmJiB0aGlzLm1lc3NhZ2VzICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKG1lc3NhZ2UgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZvci5lcnJvcnNbbWVzc2FnZS5lcnJvcl0gJiYgKCFtZXNzYWdlLm9uU3VibWl0IHx8IHRoaXMuc3VibWl0dGVkKSAmJiAhKHRoaXMuc2hvd09uZSAmJiBtZXNzYWdlc0Vycm9yLmxlbmd0aCA+IDApKSB7XG4gICAgICAgICAgICBtZXNzYWdlc0Vycm9yLnB1c2gobWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gbWVzc2FnZXNFcnJvcjtcbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYXNpLWhhcy1lcnJvcicpO1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYXNpLWhhcy1lcnJvcicpO1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=