@junte/ui
Version:
Quality Angular UI components kit
64 lines • 7.18 kB
JavaScript
import { __decorate, __metadata, __param } from "tslib";
import { Component, ContentChildren, Host, HostBinding, Input, Optional, QueryList, SkipSelf } from '@angular/core';
import { AbstractControl, ControlContainer, FormArrayName, FormGroupDirective, FormGroupName } from '@angular/forms';
import { PropertyApi } from '../../../core/decorators/api';
import { UI } from '../../../core/enums/ui';
import { FormMessageComponent } from '../message/form-message.component';
var FormControlComponent = /** @class */ (function () {
function FormControlComponent(parent) {
this.parent = parent;
this.host = 'jnt-form-control-host';
this.ui = UI;
}
FormControlComponent.prototype.ngAfterViewInit = function () {
var _this = this;
this.messages.changes.subscribe(function () { return _this.check(); });
this.check();
};
FormControlComponent.prototype.check = function () {
var _this = this;
this.messages.forEach(function (message) {
return message.active = !!(_this.control.hasError(message.validator) && _this.control.dirty);
});
};
Object.defineProperty(FormControlComponent.prototype, "control", {
get: function () {
return this.parent instanceof FormGroupName
|| this.parent instanceof FormGroupDirective
|| this.parent instanceof FormArrayName
? this.parent.control.get(this.name) : null;
},
enumerable: true,
configurable: true
});
FormControlComponent.ctorParameters = function () { return [
{ type: ControlContainer, decorators: [{ type: Optional }, { type: Host }, { type: SkipSelf }] }
]; };
__decorate([
HostBinding('attr.host'),
__metadata("design:type", Object)
], FormControlComponent.prototype, "host", void 0);
__decorate([
ContentChildren(FormMessageComponent),
__metadata("design:type", QueryList)
], FormControlComponent.prototype, "messages", void 0);
__decorate([
PropertyApi({
description: 'Form control name',
type: 'string'
}),
Input(),
__metadata("design:type", String)
], FormControlComponent.prototype, "name", void 0);
FormControlComponent = __decorate([
Component({
selector: 'jnt-form-control',
template: "<jnt-stack child-of=\"jnt-form-control-host\" [gutter]=\"ui.gutter.tiny\" [align]=\"ui.align.stretch\">\n <ng-content></ng-content>\n</jnt-stack>"
}),
__param(0, Optional()), __param(0, Host()), __param(0, SkipSelf()),
__metadata("design:paramtypes", [ControlContainer])
], FormControlComponent);
return FormControlComponent;
}());
export { FormControlComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9mb3Jtcy9mb3JtL2NvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsSUFBSSxFQUNKLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU16RTtJQWlCRSw4QkFBb0QsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFkbkUsU0FBSSxHQUFHLHVCQUF1QixDQUFDO1FBRXhDLE9BQUUsR0FBRyxFQUFFLENBQUM7SUFhUixDQUFDO0lBRUQsOENBQWUsR0FBZjtRQUFBLGlCQUdDO1FBRkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsS0FBSyxFQUFFLEVBQVosQ0FBWSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELG9DQUFLLEdBQUw7UUFBQSxpQkFHQztRQUZDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQUEsT0FBTztZQUMzQixPQUFBLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQW5GLENBQW1GLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsc0JBQUkseUNBQU87YUFBWDtZQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sWUFBWSxhQUFhO21CQUN4QyxJQUFJLENBQUMsTUFBTSxZQUFZLGtCQUFrQjttQkFDekMsSUFBSSxDQUFDLE1BQU0sWUFBWSxhQUFhO2dCQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hELENBQUM7OztPQUFBOztnQkFsQjJELGdCQUFnQix1QkFBL0QsUUFBUSxZQUFJLElBQUksWUFBSSxRQUFROztJQWR6QztRQURDLFdBQVcsQ0FBQyxXQUFXLENBQUM7O3NEQUNlO0lBS3hDO1FBREMsZUFBZSxDQUFDLG9CQUFvQixDQUFDO2tDQUM1QixTQUFTOzBEQUF1QjtJQU8xQztRQUxDLFdBQVcsQ0FBQztZQUNYLFdBQVcsRUFBRSxtQkFBbUI7WUFDaEMsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDO1FBQ0QsS0FBSyxFQUFFOztzREFDSztJQWZGLG9CQUFvQjtRQUpoQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLDhKQUErQztTQUNoRCxDQUFDO1FBa0JhLFdBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxXQUFBLElBQUksRUFBRSxDQUFBLEVBQUUsV0FBQSxRQUFRLEVBQUUsQ0FBQTt5Q0FBaUIsZ0JBQWdCO09BakJqRSxvQkFBb0IsQ0FxQ2hDO0lBQUQsMkJBQUM7Q0FBQSxBQXJDRCxJQXFDQztTQXJDWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUFycmF5TmFtZSwgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXBOYW1lIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUHJvcGVydHlBcGkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnMvYXBpJztcbmltcG9ydCB7IFVJIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy91aSc7XG5pbXBvcnQgeyBGb3JtTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UvZm9ybS1tZXNzYWdlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pudC1mb3JtLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLmVuY2Fwc3VsYXRlZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5ob3N0JylcbiAgcmVhZG9ubHkgaG9zdCA9ICdqbnQtZm9ybS1jb250cm9sLWhvc3QnO1xuXG4gIHVpID0gVUk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtTWVzc2FnZUNvbXBvbmVudClcbiAgbWVzc2FnZXM6IFF1ZXJ5TGlzdDxGb3JtTWVzc2FnZUNvbXBvbmVudD47XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ0Zvcm0gY29udHJvbCBuYW1lJyxcbiAgICB0eXBlOiAnc3RyaW5nJ1xuICB9KVxuICBASW5wdXQoKVxuICBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudDogQ29udHJvbENvbnRhaW5lcikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubWVzc2FnZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGVjaygpKTtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBjaGVjaygpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLmZvckVhY2gobWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5hY3RpdmUgPSAhISh0aGlzLmNvbnRyb2wuaGFzRXJyb3IobWVzc2FnZS52YWxpZGF0b3IpICYmIHRoaXMuY29udHJvbC5kaXJ0eSkpO1xuICB9XG5cbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgaW5zdGFuY2VvZiBGb3JtR3JvdXBOYW1lXG4gICAgfHwgdGhpcy5wYXJlbnQgaW5zdGFuY2VvZiBGb3JtR3JvdXBEaXJlY3RpdmVcbiAgICB8fCB0aGlzLnBhcmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheU5hbWVcbiAgICAgID8gdGhpcy5wYXJlbnQuY29udHJvbC5nZXQodGhpcy5uYW1lKSA6IG51bGw7XG4gIH1cblxufVxuIl19