UNPKG

@junte/ui

Version:

Quality Angular UI components kit

55 lines 6.56 kB
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'; let FormControlComponent = class FormControlComponent { constructor(parent) { this.parent = parent; this.host = 'jnt-form-control-host'; this.ui = UI; } ngAfterViewInit() { this.messages.changes.subscribe(() => this.check()); this.check(); } check() { this.messages.forEach(message => message.active = !!(this.control.hasError(message.validator) && this.control.dirty)); } get control() { return this.parent instanceof FormGroupName || this.parent instanceof FormGroupDirective || this.parent instanceof FormArrayName ? this.parent.control.get(this.name) : null; } }; FormControlComponent.ctorParameters = () => [ { 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); export { FormControlComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BqdW50ZS91aS8iLCJzb3VyY2VzIjpbImxpYi9mb3Jtcy9mb3JtL2NvbnRyb2wvZm9ybS1jb250cm9sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsSUFBSSxFQUNKLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU16RSxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQWlCL0IsWUFBb0QsTUFBd0I7UUFBeEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFkbkUsU0FBSSxHQUFHLHVCQUF1QixDQUFDO1FBRXhDLE9BQUUsR0FBRyxFQUFFLENBQUM7SUFhUixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQzlCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxZQUFZLGFBQWE7ZUFDeEMsSUFBSSxDQUFDLE1BQU0sWUFBWSxrQkFBa0I7ZUFDekMsSUFBSSxDQUFDLE1BQU0sWUFBWSxhQUFhO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEQsQ0FBQztDQUVGLENBQUE7O1lBcEI2RCxnQkFBZ0IsdUJBQS9ELFFBQVEsWUFBSSxJQUFJLFlBQUksUUFBUTs7QUFkekM7SUFEQyxXQUFXLENBQUMsV0FBVyxDQUFDOztrREFDZTtBQUt4QztJQURDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQzs4QkFDNUIsU0FBUztzREFBdUI7QUFPMUM7SUFMQyxXQUFXLENBQUM7UUFDWCxXQUFXLEVBQUUsbUJBQW1CO1FBQ2hDLElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQztJQUNELEtBQUssRUFBRTs7a0RBQ0s7QUFmRixvQkFBb0I7SUFKaEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGtCQUFrQjtRQUM1Qiw4SkFBK0M7S0FDaEQsQ0FBQztJQWtCYSxXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxJQUFJLEVBQUUsQ0FBQSxFQUFFLFdBQUEsUUFBUSxFQUFFLENBQUE7cUNBQWlCLGdCQUFnQjtHQWpCakUsb0JBQW9CLENBcUNoQztTQXJDWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUFycmF5TmFtZSwgRm9ybUdyb3VwRGlyZWN0aXZlLCBGb3JtR3JvdXBOYW1lIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUHJvcGVydHlBcGkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnMvYXBpJztcbmltcG9ydCB7IFVJIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9lbnVtcy91aSc7XG5pbXBvcnQgeyBGb3JtTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UvZm9ybS1tZXNzYWdlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pudC1mb3JtLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLmVuY2Fwc3VsYXRlZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5ob3N0JylcbiAgcmVhZG9ubHkgaG9zdCA9ICdqbnQtZm9ybS1jb250cm9sLWhvc3QnO1xuXG4gIHVpID0gVUk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtTWVzc2FnZUNvbXBvbmVudClcbiAgbWVzc2FnZXM6IFF1ZXJ5TGlzdDxGb3JtTWVzc2FnZUNvbXBvbmVudD47XG5cbiAgQFByb3BlcnR5QXBpKHtcbiAgICBkZXNjcmlwdGlvbjogJ0Zvcm0gY29udHJvbCBuYW1lJyxcbiAgICB0eXBlOiAnc3RyaW5nJ1xuICB9KVxuICBASW5wdXQoKVxuICBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHBhcmVudDogQ29udHJvbENvbnRhaW5lcikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubWVzc2FnZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGVjaygpKTtcbiAgICB0aGlzLmNoZWNrKCk7XG4gIH1cblxuICBjaGVjaygpIHtcbiAgICB0aGlzLm1lc3NhZ2VzLmZvckVhY2gobWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5hY3RpdmUgPSAhISh0aGlzLmNvbnRyb2wuaGFzRXJyb3IobWVzc2FnZS52YWxpZGF0b3IpICYmIHRoaXMuY29udHJvbC5kaXJ0eSkpO1xuICB9XG5cbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgaW5zdGFuY2VvZiBGb3JtR3JvdXBOYW1lXG4gICAgfHwgdGhpcy5wYXJlbnQgaW5zdGFuY2VvZiBGb3JtR3JvdXBEaXJlY3RpdmVcbiAgICB8fCB0aGlzLnBhcmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheU5hbWVcbiAgICAgID8gdGhpcy5wYXJlbnQuY29udHJvbC5nZXQodGhpcy5uYW1lKSA6IG51bGw7XG4gIH1cblxufVxuIl19