@ng-flexy/form
Version:
Flexy components and tools to build Angular 8+ applications
35 lines • 4.2 kB
JavaScript
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=