ngx-antd-json-schema-form
Version:
JSON form schema using ant-design and prismjs
631 lines (610 loc) • 30.4 kB
JavaScript
import { __spread, __assign } from 'tslib';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgZorroAntdModule, NZ_I18N, en_US } from 'ng-zorro-antd';
import { registerLocaleData } from '@angular/common';
import en from '@angular/common/locales/en';
import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
import 'prismjs/prism';
import 'prismjs/components/prism-typescript';
import 'prismjs/components/prism-sql';
import 'prismjs/components/prism-http';
import { Component, Input, Output, EventEmitter, ViewEncapsulation, ViewChild, ComponentFactoryResolver, Directive, ViewContainerRef, NgModule } from '@angular/core';
import { DomSanitizer, BrowserModule } from '@angular/platform-browser';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
// ['', [ Validators.pattern(/^[0-9 ]{1,15}$/)]]
var NgxAntdJsonSchemaFormComponent = /** @class */ (function () {
function NgxAntdJsonSchemaFormComponent() {
this.schema = [];
this.registeredForm = new EventEmitter();
this.formChange = new EventEmitter();
this.formTouch = new EventEmitter();
this.submit = new EventEmitter();
this.formValid = new EventEmitter();
this.formSettings = this.getDefaultSettings();
}
/**
* @param {?} changes
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes["schema"]) {
this.schema = changes["schema"]["currentValue"];
this.registerForm();
}
if (changes["settings"]) {
this.settings = changes["settings"]["currentValue"];
this.formSettings = this.mergeFormSettings(this.formSettings, this.settings);
this.submitButtonConfig = this.getSubmitButtonConfig(this.formSettings.submitButton);
}
};
/**
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.registerForm = /**
* @return {?}
*/
function () {
this.form = this.createGroup(this.schema);
this.registeredForm.emit(this.form);
this.handleEmitters();
this.onFormUpdate();
};
/**
* @param {?} event
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.handleSubmit = /**
* @param {?} event
* @return {?}
*/
function (event) {
event.preventDefault();
event.stopPropagation();
this.submit.emit(this.form.getRawValue());
};
/**
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.onFormUpdate = /**
* @return {?}
*/
function () {
var _this = this;
this.form.valueChanges.subscribe((/**
* @param {?} val
* @return {?}
*/
function (val) {
_this.schema.forEach((/**
* @param {?} item
* @return {?}
*/
function (item) {
if (val[item.key] !== undefined) {
item.value = val[item.key];
}
}));
_this.handleEmitters();
}));
};
/**
* @param {?} schema
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.createGroup = /**
* @param {?} schema
* @return {?}
*/
function (schema) {
/** @type {?} */
var group = {};
if (schema) {
schema.forEach((/**
* @param {?} item
* @return {?}
*/
function (item) {
/** @type {?} */
var value = item.value !== undefined ? item.value : "";
/** @type {?} */
var formState = { value: value, disabled: item.disabled || false };
group[item.key] = item.required ? new FormControl(formState, Validators.required) : new FormControl(formState);
}));
}
return new FormGroup(group);
};
/**
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.handleEmitters = /**
* @return {?}
*/
function () {
/** @type {?} */
var isFormValid = this.form.valid;
this.submitButtonConfig = this.getSubmitButtonConfig({ disabled: !isFormValid });
this.formValid.emit(isFormValid);
if (this.form.dirty) {
this.formChange.emit({ raw: this.form.getRawValue(), schema: this.schema });
this.formTouch.emit(this.form.dirty);
}
};
/**
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.getDefaultSettings = /**
* @return {?}
*/
function () {
/** @type {?} */
var formCommonSettings = {
nzGutter: 8,
itemClass: "",
nzSpanLabel: 8,
labelClass: "",
nzSpanControl: 16,
fieldClass: ""
};
/** @type {?} */
var defaultSettings = (/** @type {?} */ (__assign({}, formCommonSettings, { submitButton: (/** @type {?} */ ({
show: true,
label: "Submit",
disabled: false
})) })));
return JSON.parse(JSON.stringify(defaultSettings));
};
/**
* @param {?=} newConfig
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.getSubmitButtonConfig = /**
* @param {?=} newConfig
* @return {?}
*/
function (newConfig) {
if (newConfig === void 0) { newConfig = {}; }
/** @type {?} */
var defaultConfig = Object.assign((/** @type {?} */ (__assign({ key: "submit", type: "button" }, this.formSettings.submitButton))), newConfig);
this.formSettings.submitButton = defaultConfig;
return JSON.parse(JSON.stringify(defaultConfig));
};
/**
* @param {?} dest
* @param {?} source
* @return {?}
*/
NgxAntdJsonSchemaFormComponent.prototype.mergeFormSettings = /**
* @param {?} dest
* @param {?} source
* @return {?}
*/
function (dest, source) {
/** @type {?} */
var newSubmitButtonConfig = source.submitButton || {};
/** @type {?} */
var submitButtonConfig = Object.assign(dest.submitButton, newSubmitButtonConfig);
/** @type {?} */
var settings = Object.assign(dest, source);
settings.submitButton = submitButtonConfig;
return settings;
};
NgxAntdJsonSchemaFormComponent.decorators = [
{ type: Component, args: [{
selector: "ngx-antd-json-schema-form",
template: "<form *ngIf=\"form\" class=\"json-schema-form\" nz-form [formGroup]=\"form\" (submit)=\"handleSubmit($event)\">\n <ng-container *ngFor=\"let field of schema\" dynamicField [config]=\"field\" [settings]=\"formSettings\" [group]=\"form\">\n </ng-container>\n <json-schema-form-button\n *ngIf=\"formSettings.submitButton.show\"\n [group]=\"form\"\n [config]=\"submitButtonConfig\"\n [settings]=\"formSettings\"\n >\n </json-schema-form-button>\n</form>\n",
encapsulation: ViewEncapsulation.None,
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
/** @nocollapse */
NgxAntdJsonSchemaFormComponent.ctorParameters = function () { return []; };
NgxAntdJsonSchemaFormComponent.propDecorators = {
schema: [{ type: Input }],
settings: [{ type: Input }],
registeredForm: [{ type: Output }],
formChange: [{ type: Output }],
formTouch: [{ type: Output }],
submit: [{ type: Output }],
formValid: [{ type: Output }]
};
return NgxAntdJsonSchemaFormComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormButtonComponent = /** @class */ (function () {
function FormButtonComponent() {
}
/**
* @param {?} changes
* @return {?}
*/
FormButtonComponent.prototype.ngOnChanges = /**
* @param {?} changes
* @return {?}
*/
function (changes) {
if (changes["group"]) {
this.group = changes["group"]["currentValue"];
}
if (changes["config"]) {
this.config = changes["config"]["currentValue"];
}
if (changes["settings"]) {
this.settings = changes["settings"]["currentValue"];
}
};
FormButtonComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-button",
template: "<nz-form-item\n class=\"json-form-schema-field json-schema-form-button {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-control\n nz-col\n [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\"\n [nzOffset]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n >\n <button\n nz-button\n nzType=\"primary\"\n [disabled]=\"config.disabled\"\n type=\"submit\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n >\n {{ config.label }}\n </button>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
FormButtonComponent.propDecorators = {
group: [{ type: Input }],
config: [{ type: Input }],
settings: [{ type: Input }]
};
return FormButtonComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormInputComponent = /** @class */ (function () {
function FormInputComponent() {
}
FormInputComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-input",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n <span [innerHTML]=\"config.label\"></span>\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <input\n nz-input\n [readonly]=\"config.readonly\"\n [formControlName]=\"config.key\"\n [id]=\"config.key\"\n [placeholder]=\"config.placeholder || config.label\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n />\n <nz-form-explain *ngIf=\"group.get(config.key).dirty && group.get(config.key).errors\">\n Please enter {{ config.label }}\n </nz-form-explain>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
return FormInputComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormCheckboxComponent = /** @class */ (function () {
function FormCheckboxComponent() {
}
FormCheckboxComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-checkbox",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n {{ config.label }}\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <label\n nz-checkbox\n [formControlName]=\"config.key\"\n [ngModel]=\"config.value\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n >\n </label>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
return FormCheckboxComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormSelectComponent = /** @class */ (function () {
function FormSelectComponent() {
}
FormSelectComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-select",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n <span [innerHTML]=\"config.label\"></span>\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <nz-select\n [formControlName]=\"config.key\"\n [(ngModel)]=\"config.value\"\n nzAllowClear\n [nzPlaceHolder]=\"config.placeholder || config.label\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n >\n <nz-option\n *ngFor=\"let option of config.options\"\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n [nzDisabled]=\"option.disabled\"\n >\n </nz-option>\n </nz-select>\n <nz-form-explain *ngIf=\"group.get(config.key).dirty && group.get(config.key).errors\">\n Please choose an option\n </nz-form-explain>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
return FormSelectComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormTextareaComponent = /** @class */ (function () {
function FormTextareaComponent() {
}
FormTextareaComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-textarea",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n {{ config.label }}\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <textarea\n rows=\"6\"\n nz-input\n [readonly]=\"config.readonly\"\n [formControlName]=\"config.key\"\n [id]=\"config.key\"\n [placeholder]=\"config.placeholder || config.label\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n ></textarea>\n <nz-form-explain *ngIf=\"group.get(config.key).dirty && group.get(config.key).errors\">\n Please enter {{ config.label }}\n </nz-form-explain>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
return FormTextareaComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormPrismComponent = /** @class */ (function () {
function FormPrismComponent() {
}
/**
* @return {?}
*/
FormPrismComponent.prototype.onContentChanged = /**
* @return {?}
*/
function () {
this.codeViewChild.nativeElement.innerHTML = this.config.value
? this.encodeEntities(this.config.value)
: this.rawViewChild.nativeElement.innerHTML;
Prism.highlightElement(this.codeViewChild.nativeElement);
};
/**
* @return {?}
*/
FormPrismComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
this.observer.observe(this.rawViewChild.nativeElement, {
characterData: true,
childList: true,
subtree: true
});
this.onContentChanged();
};
/**
* @return {?}
*/
FormPrismComponent.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
this.onContentChanged();
};
/**
* @return {?}
*/
FormPrismComponent.prototype.ngAfterContentInit = /**
* @return {?}
*/
function () {
this.observer = new MutationObserver(this.onContentChanged.bind(this));
};
/**
* @return {?}
*/
FormPrismComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.observer) {
this.observer.disconnect();
}
};
/**
* @param {?} value
* @return {?}
*/
FormPrismComponent.prototype.encodeEntities = /**
* @param {?} value
* @return {?}
*/
function (value) {
return value
.replace(/&/g, "&")
.replace(/"/g, """)
.replace(/'/g, "'")
.replace(/</g, "<")
.replace(/>/g, ">");
};
FormPrismComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-prism",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n {{ config.label }}\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <div hidden #raw style=\"display: none\">\n <ng-content></ng-content>\n </div>\n <pre class=\"prism-pre\" [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\">\n <code class=\"prism-code language-{{config.language}}\" #code></code>\n </pre>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}pre.prism-pre{white-space:inherit;background:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px}code.prism-code{word-break:break-all;white-space:pre-wrap}"]
}] }
];
/** @nocollapse */
FormPrismComponent.ctorParameters = function () { return []; };
FormPrismComponent.propDecorators = {
rawViewChild: [{ type: ViewChild, args: ["raw",] }],
codeViewChild: [{ type: ViewChild, args: ["code",] }]
};
return FormPrismComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormRadioComponent = /** @class */ (function () {
function FormRadioComponent() {
}
FormRadioComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-radio",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n {{ config.label }}\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <nz-radio-group\n [formControlName]=\"config.key\"\n [(ngModel)]=\"config.value\"\n nzName=\"{{ config.key }}-radio-group\"\n [nzButtonStyle]=\"'solid'\"\n >\n <label\n [hidden]=\"config.type === 'radio-button'\"\n *ngFor=\"let option of config.options\"\n nz-radio\n [nzValue]=\"option.value\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n >\n {{ option.label }}\n </label>\n <label\n [hidden]=\"config.type === 'radio'\"\n *ngFor=\"let option of config.options\"\n nz-radio-button\n [nzValue]=\"option.value\"\n [ngClass]=\"config.fieldClass ? config.fieldClass : settings.fieldClass\"\n >\n {{ option.label }}\n </label>\n </nz-radio-group>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
return FormRadioComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var FormIconComponent = /** @class */ (function () {
function FormIconComponent(sanitizer) {
this.sanitizer = sanitizer;
}
/**
* @param {?} style
* @return {?}
*/
FormIconComponent.prototype.sanitizeStyle = /**
* @param {?} style
* @return {?}
*/
function (style) {
if (style) {
return this.sanitizer.bypassSecurityTrustStyle(style);
}
};
FormIconComponent.decorators = [
{ type: Component, args: [{
selector: "json-schema-form-icon",
template: "<nz-form-item\n *ngIf=\"!config.hidden\"\n class=\"json-form-schema-field {{ config.itemClass ? config.itemClass : settings.itemClass }}\"\n [formGroup]=\"group\"\n nz-row\n [nzGutter]=\"config.nzGutter ? config.nzGutter : settings.nzGutter\"\n nzFlex\n>\n <nz-form-label\n nz-col\n [nzSpan]=\"config.nzSpanLabel ? config.nzSpanLabel : settings.nzSpanLabel\"\n [nzRequired]=\"config.required\"\n [nzFor]=\"config.key\"\n [ngClass]=\"config.labelClass ? config.labelClass : settings.labelClass\"\n >\n {{ config.label }}\n </nz-form-label>\n <nz-form-control nz-col [nzSpan]=\"config.nzSpanControl ? config.nzSpanControl : settings.nzSpanControl\">\n <i\n nz-icon\n [nzType]=\"config.icon.type\"\n [nzTheme]=\"config.icon.theme\"\n [nzSpin]=\"config.icon.spin\"\n [nzTwotoneColor]=\"config.icon.twotoneColor\"\n [nzIconfont]=\"config.icon.iconFont\"\n [nzRotate]=\"config.icon.rotate\"\n [ngClass]=\"config.icon.class\"\n >\n </i>\n </nz-form-control>\n</nz-form-item>\n",
styles: [".json-form-schema-field.ant-form-item{padding-bottom:0;margin-bottom:0}"]
}] }
];
/** @nocollapse */
FormIconComponent.ctorParameters = function () { return [
{ type: DomSanitizer }
]; };
return FormIconComponent;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
var components = {
button: FormButtonComponent,
input: FormInputComponent,
select: FormSelectComponent,
checkbox: FormCheckboxComponent,
radio: FormRadioComponent,
"radio-button": FormRadioComponent,
textarea: FormTextareaComponent,
prism: FormPrismComponent,
icon: FormIconComponent
};
var DynamicFieldDirective = /** @class */ (function () {
function DynamicFieldDirective(resolver, container) {
this.resolver = resolver;
this.container = container;
}
Object.defineProperty(DynamicFieldDirective.prototype, "isValid", {
get: /**
* @return {?}
*/
function () {
return this.group.controls[this.config.key].valid;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
DynamicFieldDirective.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
if (this.component) {
this.component.instance.group = this.group;
this.component.instance.config = this.config;
this.component.instance.settings = this.settings;
}
};
/**
* @return {?}
*/
DynamicFieldDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
if (!components[this.config.type]) {
/** @type {?} */
var supportedTypes = Object.keys(components).join(", ");
throw new Error("Trying to use an unsupported type (" + this.config.type + ").\n Supported types: " + supportedTypes);
}
/** @type {?} */
var 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 = function () { return [
{ type: ComponentFactoryResolver },
{ type: ViewContainerRef }
]; };
DynamicFieldDirective.propDecorators = {
group: [{ type: Input }],
config: [{ type: Input }],
settings: [{ type: Input }]
};
return DynamicFieldDirective;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
registerLocaleData(en);
/** @type {?} */
var childComponents = [
FormButtonComponent,
FormInputComponent,
FormSelectComponent,
FormCheckboxComponent,
FormRadioComponent,
FormTextareaComponent,
FormPrismComponent,
FormIconComponent
];
var ɵ0 = en_US;
var NgxAntdJsonSchemaFormModule = /** @class */ (function () {
function NgxAntdJsonSchemaFormModule() {
}
NgxAntdJsonSchemaFormModule.decorators = [
{ type: NgModule, args: [{
declarations: __spread([NgxAntdJsonSchemaFormComponent, DynamicFieldDirective], childComponents),
imports: [BrowserModule, NgZorroAntdModule, FormsModule, ReactiveFormsModule, BrowserAnimationsModule],
providers: [{ provide: NZ_I18N, useValue: ɵ0 }],
entryComponents: childComponents,
exports: [NgxAntdJsonSchemaFormComponent]
},] }
];
return NgxAntdJsonSchemaFormModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
export { NgxAntdJsonSchemaFormComponent, NgxAntdJsonSchemaFormModule, FormButtonComponent as ɵb, FormCheckboxComponent as ɵe, FormIconComponent as ɵi, FormInputComponent as ɵc, FormPrismComponent as ɵh, FormRadioComponent as ɵf, FormSelectComponent as ɵd, FormTextareaComponent as ɵg, DynamicFieldDirective as ɵa };
//# sourceMappingURL=ngx-antd-json-schema-form.js.map