@junte/ui
Version:
Quality Angular UI components kit
50 lines • 5.01 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';
let FormLabelComponent = class FormLabelComponent {
constructor(parent) {
this.parent = parent;
this.host = 'jnt-form-label-host';
this.required = false;
}
ngOnInit() {
const control = this.parent.control.get(this.for);
if (!!control) {
control.statusChanges.subscribe(() => this.check(control));
this.check(control);
}
}
check(control) {
if (!!control.validator && !!control.validator({})) {
this.required = control.validator({}).required;
}
else {
this.required = false;
}
}
};
FormLabelComponent.ctorParameters = () => [
{ 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);
export { FormLabelComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVudGUvdWkvIiwic291cmNlcyI6WyJsaWIvZm9ybXMvZm9ybS9sYWJlbC9mb3JtLWxhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBTTNELElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBYzdCLFlBQW9CLE1BQXdCO1FBQXhCLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBWG5DLFNBQUksR0FBRyxxQkFBcUIsQ0FBQztRQUV0QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBVWpCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQW1CLElBQUksQ0FBQyxNQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQ2IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDcEI7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQXdCO1FBQzVCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQWtCLEVBQUUsQ0FBQyxFQUFFO1lBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBa0IsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ2pFO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtJQUNILENBQUM7Q0FDRixDQUFBOztZQWxCNkIsZ0JBQWdCOztBQVg1QztJQURDLFdBQVcsQ0FBQyxXQUFXLENBQUM7O2dEQUNhO0FBU3RDO0lBTEMsV0FBVyxDQUFDO1FBQ1gsV0FBVyxFQUFFLDhDQUE4QztRQUMzRCxJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUM7SUFDRCxLQUFLLEVBQUU7OytDQUNJO0FBWkQsa0JBQWtCO0lBSjlCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxnQkFBZ0I7UUFDMUIsNkxBQTZDO0tBQzlDLENBQUM7cUNBZTRCLGdCQUFnQjtHQWRqQyxrQkFBa0IsQ0FnQzlCO1NBaENZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwTmFtZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFByb3BlcnR5QXBpIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzL2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pudC1mb3JtLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tbGFiZWwuZW5jYXBzdWxhdGVkLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1MYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhvc3QnKVxuICByZWFkb25seSBob3N0ID0gJ2pudC1mb3JtLWxhYmVsLWhvc3QnO1xuXG4gIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBpZGVudGlmaWVyIG9mIHRoZSBpdGVtIHRvIGFzc29jaWF0ZSB3aXRoJyxcbiAgICB0eXBlOiAnc3RyaW5nJ1xuICB9KVxuICBASW5wdXQoKVxuICBmb3I6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudDogQ29udHJvbENvbnRhaW5lcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgY29udHJvbCA9ICg8Rm9ybUdyb3VwTmFtZT50aGlzLnBhcmVudCkuY29udHJvbC5nZXQodGhpcy5mb3IpO1xuICAgIGlmICghIWNvbnRyb2wpIHtcbiAgICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGVjayhjb250cm9sKSk7XG4gICAgICB0aGlzLmNoZWNrKGNvbnRyb2wpXG4gICAgfVxuICB9XG5cbiAgY2hlY2soY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKCEhY29udHJvbC52YWxpZGF0b3IgJiYgISFjb250cm9sLnZhbGlkYXRvcig8QWJzdHJhY3RDb250cm9sPnt9KSkge1xuICAgICAgdGhpcy5yZXF1aXJlZCA9IGNvbnRyb2wudmFsaWRhdG9yKDxBYnN0cmFjdENvbnRyb2w+e30pLnJlcXVpcmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=