UNPKG

@ng-flexy/form

Version:

Flexy components and tools to build Angular 8+ applications

35 lines 4.2 kB
import { Directive, ElementRef, Input, Renderer2 } from '@angular/core'; import { bindAttributes } from './attr.binder.utils'; export class FlexyFormAttributesDirective { constructor(renderer, el) { this.renderer = renderer; this.el = el; } ngOnInit() { if (this.componentSchema && this.componentSchema.attributes) { bindAttributes(this.componentSchema, this.el.nativeElement, this.renderer, this.flexyForm.currentData); this._changesSubscription = this.flexyForm.currentData$.subscribe(data => { bindAttributes(this.componentSchema, this.el.nativeElement, this.renderer, data); }); } } ngOnDestroy() { if (this._changesSubscription) { this._changesSubscription.unsubscribe(); } } } FlexyFormAttributesDirective.decorators = [ { type: Directive, args: [{ selector: '[flexyFormAttributes]' },] } ]; FlexyFormAttributesDirective.ctorParameters = () => [ { type: Renderer2 }, { type: ElementRef } ]; FlexyFormAttributesDirective.propDecorators = { flexyForm: [{ type: Input }], componentSchema: [{ type: Input }] }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlcy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtL3NyYy9saWIvY29tcG9uZW50cy9hdHRyaWJ1dGVzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLckQsTUFBTSxPQUFPLDRCQUE0QjtJQU12QyxZQUFvQixRQUFtQixFQUFVLEVBQWM7UUFBM0MsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLE9BQUUsR0FBRixFQUFFLENBQVk7SUFBRyxDQUFDO0lBRW5FLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUU7WUFDM0QsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZFLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkYsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7O1lBeEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2FBQ2xDOzs7WUFSeUQsU0FBUztZQUEvQyxVQUFVOzs7d0JBVTNCLEtBQUs7OEJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZsZXh5Rm9ybUZpZWxkTGF5b3V0U2NoZW1hIH0gZnJvbSAnLi4vbW9kZWxzL2xheW91dC1zY2hlbWEubW9kZWwnO1xuaW1wb3J0IHsgRmxleHlGb3JtIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBiaW5kQXR0cmlidXRlcyB9IGZyb20gJy4vYXR0ci5iaW5kZXIudXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZmxleHlGb3JtQXR0cmlidXRlc10nXG59KVxuZXhwb3J0IGNsYXNzIEZsZXh5Rm9ybUF0dHJpYnV0ZXNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGZsZXh5Rm9ybTogRmxleHlGb3JtO1xuICBASW5wdXQoKSBjb21wb25lbnRTY2hlbWE6IEZsZXh5Rm9ybUZpZWxkTGF5b3V0U2NoZW1hO1xuXG4gIHByaXZhdGUgX2NoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50U2NoZW1hICYmIHRoaXMuY29tcG9uZW50U2NoZW1hLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGJpbmRBdHRyaWJ1dGVzKHRoaXMuY29tcG9uZW50U2NoZW1hLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuZmxleHlGb3JtLmN1cnJlbnREYXRhKTtcbiAgICAgIHRoaXMuX2NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmZsZXh5Rm9ybS5jdXJyZW50RGF0YSQuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICBiaW5kQXR0cmlidXRlcyh0aGlzLmNvbXBvbmVudFNjaGVtYSwgdGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCBkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jaGFuZ2VzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9jaGFuZ2VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=