@junte/ui
Version:
Quality Angular UI components kit
52 lines • 5.32 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, HostBinding, Input } from '@angular/core';
import { AbstractControl, ControlContainer, FormGroupName } from '@angular/forms';
import { PropertyApi } from '../../../core/decorators/api';
var FormLabelComponent = /** @class */ (function () {
function FormLabelComponent(parent) {
this.parent = parent;
this.host = 'jnt-form-label-host';
this.required = false;
}
FormLabelComponent.prototype.ngOnInit = function () {
var _this = this;
var control = this.parent.control.get(this.for);
if (!!control) {
control.statusChanges.subscribe(function () { return _this.check(control); });
this.check(control);
}
};
FormLabelComponent.prototype.check = function (control) {
if (!!control.validator && !!control.validator({})) {
this.required = control.validator({}).required;
}
else {
this.required = false;
}
};
FormLabelComponent.ctorParameters = function () { return [
{ type: ControlContainer }
]; };
__decorate([
HostBinding('attr.host'),
__metadata("design:type", Object)
], FormLabelComponent.prototype, "host", void 0);
__decorate([
PropertyApi({
description: 'The identifier of the item to associate with',
type: 'string'
}),
Input(),
__metadata("design:type", String)
], FormLabelComponent.prototype, "for", void 0);
FormLabelComponent = __decorate([
Component({
selector: 'jnt-form-label',
template: "<label child-of=\"jnt-form-label-host\" [for]=\"for\">\n <ng-content></ng-content>\n <span child-of=\"jnt-form-label-host\" data-required *ngIf=\"required\">*</span>\n</label>"
}),
__metadata("design:paramtypes", [ControlContainer])
], FormLabelComponent);
return FormLabelComponent;
}());
export { FormLabelComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVudGUvdWkvIiwic291cmNlcyI6WyJsaWIvZm9ybXMvZm9ybS9sYWJlbC9mb3JtLWxhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBTTNEO0lBY0UsNEJBQW9CLE1BQXdCO1FBQXhCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBWG5DLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUV0QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBVWpCLENBQUM7SUFFRCxxQ0FBUSxHQUFSO1FBQUEsaUJBTUM7UUFMQyxJQUFNLE9BQU8sR0FBbUIsSUFBSSxDQUFDLE1BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7WUFDYixPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBbkIsQ0FBbUIsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDcEI7SUFDSCxDQUFDO0lBRUQsa0NBQUssR0FBTCxVQUFNLE9BQXdCO1FBQzVCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWtCLEVBQUUsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBa0IsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ2pFO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtJQUNILENBQUM7O2dCQWpCMkIsZ0JBQWdCOztJQVg1QztRQURDLFdBQVcsQ0FBQyxXQUFXLENBQUM7O29EQUNhO0lBU3RDO1FBTEMsV0FBVyxDQUFDO1lBQ1gsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7UUFDRCxLQUFLLEVBQUU7O21EQUNJO0lBWkQsa0JBQWtCO1FBSjlCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsNkxBQTZDO1NBQzlDLENBQUM7eUNBZTRCLGdCQUFnQjtPQWRqQyxrQkFBa0IsQ0FnQzlCO0lBQUQseUJBQUM7Q0FBQSxBQWhDRCxJQWdDQztTQWhDWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cE5hbWUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUFwaSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZGVjb3JhdG9ycy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqbnQtZm9ybS1sYWJlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWxhYmVsLmVuY2Fwc3VsYXRlZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtTGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5ob3N0JylcbiAgcmVhZG9ubHkgaG9zdCA9ICdqbnQtZm9ybS1sYWJlbC1ob3N0JztcblxuICByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIEBQcm9wZXJ0eUFwaSh7XG4gICAgZGVzY3JpcHRpb246ICdUaGUgaWRlbnRpZmllciBvZiB0aGUgaXRlbSB0byBhc3NvY2lhdGUgd2l0aCcsXG4gICAgdHlwZTogJ3N0cmluZydcbiAgfSlcbiAgQElucHV0KClcbiAgZm9yOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJlbnQ6IENvbnRyb2xDb250YWluZXIpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGNvbnRyb2wgPSAoPEZvcm1Hcm91cE5hbWU+dGhpcy5wYXJlbnQpLmNvbnRyb2wuZ2V0KHRoaXMuZm9yKTtcbiAgICBpZiAoISFjb250cm9sKSB7XG4gICAgICBjb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hlY2soY29udHJvbCkpO1xuICAgICAgdGhpcy5jaGVjayhjb250cm9sKVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIGlmICghIWNvbnRyb2wudmFsaWRhdG9yICYmICEhY29udHJvbC52YWxpZGF0b3IoPEFic3RyYWN0Q29udHJvbD57fSkpIHtcbiAgICAgIHRoaXMucmVxdWlyZWQgPSBjb250cm9sLnZhbGlkYXRvcig8QWJzdHJhY3RDb250cm9sPnt9KS5yZXF1aXJlZDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuIl19