@ng-dynamic-forms/core
Version:
A rapid form development library for Angular
31 lines • 5.9 kB
JavaScript
import { Directive } from "@angular/core";
import { DynamicFormControlComponent } from "./dynamic-form-control.component";
import { isString } from "../utils/core.utils";
import * as i0 from "@angular/core";
import * as i1 from "../service/dynamic-form-layout.service";
import * as i2 from "../service/dynamic-form-validation.service";
// tslint:disable-next-line:directive-class-suffix
export class DynamicFormControlWithTemplateComponent extends DynamicFormControlComponent {
constructor(layoutService, validationService) {
super(layoutService, validationService);
this.layoutService = layoutService;
this.validationService = validationService;
}
ngAfterViewInit() {
this.layoutService
.filterTemplatesByModel(this.model, this.templates)
.forEach(template => this.bindTemplate(template));
}
bindTemplate(template) {
if (isString(template.as) && this.templateDirectives.has(template.as)) {
const property = this.templateDirectives.get(template.as);
this.viewChild[property] = this.mapTemplate(template);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormControlWithTemplateComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i2.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: DynamicFormControlWithTemplateComponent, usesInheritance: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicFormControlWithTemplateComponent, decorators: [{
type: Directive
}], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i2.DynamicFormValidationService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wtd2l0aC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1keW5hbWljLWZvcm1zL2NvcmUvc3JjL2xpYi9jb21wb25lbnQvZHluYW1pYy1mb3JtLWNvbnRyb2wtd2l0aC10ZW1wbGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBR2pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQUsvQyxrREFBa0Q7QUFDbEQsTUFBTSxPQUFnQix1Q0FBd0MsU0FBUSwyQkFBMkI7SUFPN0YsWUFBZ0MsYUFBdUMsRUFDdkMsaUJBQStDO1FBQzNFLEtBQUssQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUZaLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO0lBRS9FLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGFBQWE7YUFDYixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFNRCxZQUFZLENBQUMsUUFBa0M7UUFDM0MsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ25FLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBVyxDQUFDO1lBRXBFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RDtJQUNMLENBQUM7OEdBNUJpQix1Q0FBdUM7a0dBQXZDLHVDQUF1Qzs7MkZBQXZDLHVDQUF1QztrQkFGNUQsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xXaXRoVGVtcGxhdGUgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC13aXRoLXRlbXBsYXRlLWludGVyZmFjZVwiO1xuaW1wb3J0IHsgRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZS9keW5hbWljLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sQ29tcG9uZW50IH0gZnJvbSBcIi4vZHluYW1pYy1mb3JtLWNvbnRyb2wuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUxheW91dFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tbGF5b3V0LnNlcnZpY2VcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZS9keW5hbWljLWZvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlXCI7XG5cbkBEaXJlY3RpdmUoKVxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUNvbnRyb2xXaXRoVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIER5bmFtaWNGb3JtQ29udHJvbFdpdGhUZW1wbGF0ZSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICByZWFkb25seSB0ZW1wbGF0ZURpcmVjdGl2ZXMhOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuXG4gICAgdGVtcGxhdGVzPzogUXVlcnlMaXN0PER5bmFtaWNUZW1wbGF0ZURpcmVjdGl2ZT4gfCBEeW5hbWljVGVtcGxhdGVEaXJlY3RpdmVbXTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIobGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlXG4gICAgICAgICAgICAuZmlsdGVyVGVtcGxhdGVzQnlNb2RlbCh0aGlzLm1vZGVsLCB0aGlzLnRlbXBsYXRlcylcbiAgICAgICAgICAgIC5mb3JFYWNoKHRlbXBsYXRlID0+IHRoaXMuYmluZFRlbXBsYXRlKHRlbXBsYXRlKSk7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0IHZpZXdDaGlsZCgpOiBhbnk7XG5cbiAgICBhYnN0cmFjdCBtYXBUZW1wbGF0ZSh0ZW1wbGF0ZTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGJpbmRUZW1wbGF0ZSh0ZW1wbGF0ZTogRHluYW1pY1RlbXBsYXRlRGlyZWN0aXZlKSB7XG4gICAgICAgIGlmIChpc1N0cmluZyh0ZW1wbGF0ZS5hcykgJiYgdGhpcy50ZW1wbGF0ZURpcmVjdGl2ZXMuaGFzKHRlbXBsYXRlLmFzKSkge1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLnRlbXBsYXRlRGlyZWN0aXZlcy5nZXQodGVtcGxhdGUuYXMpIGFzIHN0cmluZztcblxuICAgICAgICAgICAgdGhpcy52aWV3Q2hpbGRbcHJvcGVydHldID0gdGhpcy5tYXBUZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=