@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
JavaScript
/**
* @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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLWVycm9yLW1lc3NhZ2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bhc2ktbmd0b29scy9saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hc2ktZXJyb3ItbWVzc2FnZXMvYXNpLWVycm9yLW1lc3NhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQVUsZUFBZSxFQUNuQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsR0FDaEQsTUFBTSxlQUFlLENBQUM7O0lBcUJyQiwwQkFBb0IsT0FBbUIsRUFDaUIsa0JBQXNDLEVBQ3BGO1FBRlUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNpQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3BGLGFBQVEsR0FBUixRQUFROzs7O3VCQVRDLEtBQUs7NkJBSVcsRUFBRTt5QkFDekIsS0FBSztLQUtoQjs7OztJQUVELG1DQUFROzs7SUFBUjtRQUFBLGlCQW1CQzs7UUFsQkMsSUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLEdBQUcscUJBQWdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQSxDQUFDO2FBQ2hGO1lBQUMsSUFBSSxDQUFDLENBQUM7O2dCQUNOLElBQU0sYUFBYSxxQkFBeUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFDO2dCQUN6RyxJQUFJLENBQUMsR0FBRyxxQkFBZ0IsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUEsQ0FBQzthQUM5RDtTQUNGO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDekMsS0FBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsS0FBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUMvQixLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixLQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkIsQ0FBQyxDQUFDO0tBQ0o7Ozs7SUFFRCw2Q0FBa0I7OztJQUFsQjtRQUNFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDeEU7S0FDRjs7OztJQUVELDBDQUFlOzs7SUFBZjs7UUFDRSxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQSxPQUFPO1lBQzNCLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDakMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxRQUFRLENBQUM7S0FDakI7SUFFRDs7T0FFRzs7Ozs7SUFDSCx5Q0FBYzs7OztJQUFkO1FBQUEsaUJBbUJDOztRQWxCQyxJQUFJLGFBQWEsR0FBc0IsRUFBRSxDQUFDO1FBQzFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQUEsT0FBTztvQkFDM0IsRUFBRSxDQUFDLENBQUMsS0FBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSSxDQUFDLE9BQU8sSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDM0gsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDN0I7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwRDtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2RDtLQUNGOztnQkFuRkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxxQ0FBcUM7b0JBQy9DLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRTtvQkFDckQsd05BQWdEO2lCQUNqRDs7OztnQkFSbUIsVUFBVTtnQkFKUixrQkFBa0IsdUJBNEJuQyxNQUFNLFNBQUMsVUFBVSxDQUFDLGNBQU0sT0FBQSxrQkFBa0IsRUFBbEIsQ0FBa0IsQ0FBQztnQkEzQnZDLFFBQVE7OztzQkFlZCxLQUFLOzBCQUVMLEtBQUs7MEJBRUwsS0FBSzsyQkFFTCxlQUFlLFNBQUMsVUFBVTs7MkJBdEI3Qjs7U0FhYSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXBOYW1lLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXNpTWVzc2FnZSB9IGZyb20gJy4vYXNpLW1lc3NhZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgQ29udGVudENoaWxkcmVuLFxuICBBZnRlckNvbnRlbnRJbml0LCBRdWVyeUxpc3QsIEluamVjdCwgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Vycm9yLW1lc3NhZ2VzICwgYXNpLWVycm9yLW1lc3NhZ2VzJyxcbiAgaG9zdDogeyAnY2xhc3MnOiAnYXNpLWNvbXBvbmVudCBhc2ktZXJyb3ItbWVzc2FnZXMnIH0sXG4gIHRlbXBsYXRlVXJsOiAnYXNpLWVycm9yLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBc2lFcnJvck1lc3NhZ2VzIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcblxuICAvKiogbGluayB0aGUgZXJyb3IgbWVzc2FnZXMgdG8gYSBmb3JtQ29udHJvbCAqL1xuICBASW5wdXQoKSBmb3I6IEZvcm1Db250cm9sO1xuICAvKiogbGluayB0aGUgZXJyb3IgbWVzc2FnZXMgdG8gYSBmb3JtQ29udHJvbCBieSBpcyBuYW1lICovXG4gIEBJbnB1dCgpIGZvck5hbWU6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgZXJyb3Igb25lIGJ5IG9uZSAqL1xuICBASW5wdXQoKSBzaG93T25lID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihBc2lNZXNzYWdlKSBtZXNzYWdlczogUXVlcnlMaXN0PEFzaU1lc3NhZ2U+O1xuXG4gIGVycm9yTWVzc2FnZXM6IEFycmF5PEFzaU1lc3NhZ2U+ID0gW107XG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gRm9ybUdyb3VwRGlyZWN0aXZlKSkgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZm9ybUdyb3VwTmFtZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEZvcm1Hcm91cE5hbWUsIG51bGwpO1xuICAgIGlmICh0aGlzLmZvck5hbWUpIHtcbiAgICAgIGlmICghZm9ybUdyb3VwTmFtZSkge1xuICAgICAgICB0aGlzLmZvciA9IDxGb3JtQ29udHJvbD50aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5jb250cm9sLmNvbnRyb2xzW3RoaXMuZm9yTmFtZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBncm91cEZvcm1OYW1lOiBGb3JtR3JvdXAgPSA8Rm9ybUdyb3VwPnRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLmNvbnRyb2wuY29udHJvbHNbZm9ybUdyb3VwTmFtZS5uYW1lXTtcbiAgICAgICAgdGhpcy5mb3IgPSA8Rm9ybUNvbnRyb2w+Z3JvdXBGb3JtTmFtZS5jb250cm9sc1t0aGlzLmZvck5hbWVdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLm5nU3VibWl0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgICB0aGlzLm9uU3RhdHVzQ2hhbmdlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5mb3Iuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdWJtaXR0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMub25TdGF0dXNDaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy5pc0ZpZWxkUmVxdWlyZWQoKSkge1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdhc2ktcmVxdWlyZWQnKTtcbiAgICB9XG4gIH1cblxuICBpc0ZpZWxkUmVxdWlyZWQoKSB7XG4gICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuZXJyb3IgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgcmVxdWlyZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXF1aXJlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2RlIGFwcGVsbMOpZSDDoCBjaGFxdWUgY2hhbmdlbWVudCBkZSBsJ2VudHLDqSBkdSBjb21wb3NhbnQgXCJmb3JcIlxuICAgKi9cbiAgb25TdGF0dXNDaGFuZ2UoKSB7XG4gICAgbGV0IG1lc3NhZ2VzRXJyb3I6IEFycmF5PEFzaU1lc3NhZ2U+ID0gW107XG4gICAgaWYgKHRoaXMuZm9yLnRvdWNoZWQgfHwgdGhpcy5zdWJtaXR0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmZvci5lcnJvcnMgIT0gbnVsbCAmJiB0aGlzLm1lc3NhZ2VzICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlcy5mb3JFYWNoKG1lc3NhZ2UgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZvci5lcnJvcnNbbWVzc2FnZS5lcnJvcl0gJiYgKCFtZXNzYWdlLm9uU3VibWl0IHx8IHRoaXMuc3VibWl0dGVkKSAmJiAhKHRoaXMuc2hvd09uZSAmJiBtZXNzYWdlc0Vycm9yLmxlbmd0aCA+IDApKSB7XG4gICAgICAgICAgICBtZXNzYWdlc0Vycm9yLnB1c2gobWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gbWVzc2FnZXNFcnJvcjtcbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYXNpLWhhcy1lcnJvcicpO1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYXNpLWhhcy1lcnJvcicpO1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=