UNPKG

@junte/ui

Version:

Quality Angular UI components kit

52 lines 5.32 kB
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