UNPKG

ngx-antd-json-schema-form

Version:
105 lines 9.97 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { ComponentFactoryResolver, Directive, Input, ViewContainerRef } from "@angular/core"; import { FormGroup } from "@angular/forms"; import { FormButtonComponent } from "../components/form-button/form-button.component"; import { FormInputComponent } from "../components/form-input/form-input.component"; import { FormCheckboxComponent } from "../components/form-checkbox/form-checkbox.component"; import { FormSelectComponent } from "../components/form-select/form-select.component"; import { FormTextareaComponent } from "../components/form-textarea/form-textarea.component"; import { FormPrismComponent } from "../components/form-prism/form-prism.component"; import { FormRadioComponent } from "../components/form-radio/form-radio.component"; import { FormIconComponent } from "../components/form-icon/form-icon.component"; /** @type {?} */ const components = { button: FormButtonComponent, input: FormInputComponent, select: FormSelectComponent, checkbox: FormCheckboxComponent, radio: FormRadioComponent, "radio-button": FormRadioComponent, textarea: FormTextareaComponent, prism: FormPrismComponent, icon: FormIconComponent }; export class DynamicFieldDirective { /** * @param {?} resolver * @param {?} container */ constructor(resolver, container) { this.resolver = resolver; this.container = container; } /** * @return {?} */ get isValid() { return this.group.controls[this.config.key].valid; } /** * @return {?} */ ngOnChanges() { if (this.component) { this.component.instance.group = this.group; this.component.instance.config = this.config; this.component.instance.settings = this.settings; } } /** * @return {?} */ ngOnInit() { if (!components[this.config.type]) { /** @type {?} */ const supportedTypes = Object.keys(components).join(", "); throw new Error(`Trying to use an unsupported type (${this.config.type}). Supported types: ${supportedTypes}`); } /** @type {?} */ const component = this.resolver.resolveComponentFactory(components[this.config.type]); this.component = this.container.createComponent(component); this.component.instance.group = this.group; this.component.instance.config = this.config; this.component.instance.settings = this.settings; } } DynamicFieldDirective.decorators = [ { type: Directive, args: [{ selector: "[dynamicField]" },] } ]; /** @nocollapse */ DynamicFieldDirective.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: ViewContainerRef } ]; DynamicFieldDirective.propDecorators = { group: [{ type: Input }], config: [{ type: Input }], settings: [{ type: Input }] }; if (false) { /** @type {?} */ DynamicFieldDirective.prototype.group; /** @type {?} */ DynamicFieldDirective.prototype.config; /** @type {?} */ DynamicFieldDirective.prototype.settings; /** @type {?} */ DynamicFieldDirective.prototype.component; /** * @type {?} * @private */ DynamicFieldDirective.prototype.resolver; /** * @type {?} * @private */ DynamicFieldDirective.prototype.container; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pY0ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFudGQtanNvbi1zY2hlbWEtZm9ybS8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2R5bmFtaWNGaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLHdCQUF3QixFQUV4QixTQUFTLEVBQ1QsS0FBSyxFQUlMLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O01BRTFFLFVBQVUsR0FBb0M7SUFDbEQsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsUUFBUSxFQUFFLHFCQUFxQjtJQUMvQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGNBQWMsRUFBRSxrQkFBa0I7SUFDbEMsUUFBUSxFQUFFLHFCQUFxQjtJQUMvQixLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLElBQUksRUFBRSxpQkFBaUI7Q0FDeEI7QUFLRCxNQUFNLE9BQU8scUJBQXFCOzs7OztJQVdoQyxZQUFvQixRQUFrQyxFQUFVLFNBQTJCO1FBQXZFLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDOzs7O0lBTi9GLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEQsQ0FBQzs7OztJQU1ELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDbEQ7SUFDSCxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTs7a0JBQzNCLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FDYixzQ0FBc0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJOzJCQUNuQyxjQUFjLEVBQUUsQ0FDcEMsQ0FBQztTQUNIOztjQUNLLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFRLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkQsQ0FBQzs7O1lBckNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCOzs7O1lBbkNDLHdCQUF3QjtZQU94QixnQkFBZ0I7OztvQkE4QmYsS0FBSztxQkFDTCxLQUFLO3VCQUNMLEtBQUs7Ozs7SUFGTixzQ0FBMEI7O0lBQzFCLHVDQUFxQjs7SUFDckIseUNBQWdDOztJQU1oQywwQ0FBK0I7Ozs7O0lBRW5CLHlDQUEwQzs7Ozs7SUFBRSwwQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENvbXBvbmVudFJlZixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBGaWVsZCwgRm9ybVNldHRpbmdzIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuaW1wb3J0IHsgRm9ybUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Zvcm0tYnV0dG9uL2Zvcm0tYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZm9ybS1jaGVja2JveC9mb3JtLWNoZWNrYm94LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybVNlbGVjdENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Zvcm0tc2VsZWN0L2Zvcm0tc2VsZWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybVRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZm9ybS10ZXh0YXJlYS9mb3JtLXRleHRhcmVhLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybVByaXNtQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZm9ybS1wcmlzbS9mb3JtLXByaXNtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybVJhZGlvQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZm9ybS1yYWRpby9mb3JtLXJhZGlvLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRm9ybUljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9mb3JtLWljb24vZm9ybS1pY29uLmNvbXBvbmVudFwiO1xuXG5jb25zdCBjb21wb25lbnRzOiB7IFt0eXBlOiBzdHJpbmddOiBUeXBlPEZpZWxkPiB9ID0ge1xuICBidXR0b246IEZvcm1CdXR0b25Db21wb25lbnQsXG4gIGlucHV0OiBGb3JtSW5wdXRDb21wb25lbnQsXG4gIHNlbGVjdDogRm9ybVNlbGVjdENvbXBvbmVudCxcbiAgY2hlY2tib3g6IEZvcm1DaGVja2JveENvbXBvbmVudCxcbiAgcmFkaW86IEZvcm1SYWRpb0NvbXBvbmVudCxcbiAgXCJyYWRpby1idXR0b25cIjogRm9ybVJhZGlvQ29tcG9uZW50LFxuICB0ZXh0YXJlYTogRm9ybVRleHRhcmVhQ29tcG9uZW50LFxuICBwcmlzbTogRm9ybVByaXNtQ29tcG9uZW50LFxuICBpY29uOiBGb3JtSWNvbkNvbXBvbmVudFxufTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltkeW5hbWljRmllbGRdXCJcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkRGlyZWN0aXZlIGltcGxlbWVudHMgRmllbGQsIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgY29uZmlnOiBhbnk7XG4gIEBJbnB1dCgpIHNldHRpbmdzOiBGb3JtU2V0dGluZ3M7XG5cbiAgZ2V0IGlzVmFsaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAuY29udHJvbHNbdGhpcy5jb25maWcua2V5XS52YWxpZDtcbiAgfVxuXG4gIGNvbXBvbmVudDogQ29tcG9uZW50UmVmPEZpZWxkPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHByaXZhdGUgY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLmNvbXBvbmVudCkge1xuICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuY29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5zZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3M7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCFjb21wb25lbnRzW3RoaXMuY29uZmlnLnR5cGVdKSB7XG4gICAgICBjb25zdCBzdXBwb3J0ZWRUeXBlcyA9IE9iamVjdC5rZXlzKGNvbXBvbmVudHMpLmpvaW4oXCIsIFwiKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRyeWluZyB0byB1c2UgYW4gdW5zdXBwb3J0ZWQgdHlwZSAoJHt0aGlzLmNvbmZpZy50eXBlfSkuXG4gICAgICAgIFN1cHBvcnRlZCB0eXBlczogJHtzdXBwb3J0ZWRUeXBlc31gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PEZpZWxkPihjb21wb25lbnRzW3RoaXMuY29uZmlnLnR5cGVdKTtcbiAgICB0aGlzLmNvbXBvbmVudCA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xuICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmdyb3VwID0gdGhpcy5ncm91cDtcbiAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5jb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5zZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3M7XG4gIH1cbn1cbiJdfQ==