UNPKG

@yoyoboot/l-52abp-ng-form-generator

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.

6,189 lines 476 kB
import * as i0 from '@angular/core';
import { Injectable, EventEmitter, Directive, Input, Output, ViewChild, Component, NgModule, ContentChild, HostListener, HostBinding, Inject, ElementRef, forwardRef, Pipe } from '@angular/core';
import * as i2 from '@angular/forms';
import { NgModel, ControlContainer, NgForm, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
import { Subject } from 'rxjs';
import * as i3 from '@angular/common';
import { CommonModule, DOCUMENT } from '@angular/common';
import { deepCopy } from '@delon/util';
import * as i1 from 'ng-zorro-antd/form';
import { NzFormModule } from 'ng-zorro-antd/form';
import * as i3$1 from 'ng-zorro-antd/button';
import { NzButtonModule } from 'ng-zorro-antd/button';
import * as i3$2 from 'ng-zorro-antd/grid';
import { NzGridModule } from 'ng-zorro-antd/grid';
import * as i8 from 'ng-zorro-antd/core/wave';
import * as i9 from 'ng-zorro-antd/core/transition-patch';
import * as i2$1 from 'ng-zorro-antd/input-number';
import { NzInputNumberModule, NzInputNumberComponent } from 'ng-zorro-antd/input-number';
import * as i29 from 'ng-zorro-antd/switch';
import { NzSwitchModule } from 'ng-zorro-antd/switch';
import * as i4 from 'ng-zorro-antd/input';
import { NzInputModule } from 'ng-zorro-antd/input';
import * as i2$2 from 'ng-zorro-antd/select';
import { NzSelectModule } from 'ng-zorro-antd/select';
import * as i1$1 from 'ng-zorro-antd/layout';
import { NzLayoutModule } from 'ng-zorro-antd/layout';
import * as i23 from 'ng-zorro-antd/tabs';
import { NzTabsModule } from 'ng-zorro-antd/tabs';
import * as i21 from 'ng-zorro-antd/drawer';
import { NzDrawerModule } from 'ng-zorro-antd/drawer';
import { DelonFormModule } from '@delon/form';
import * as i2$3 from '@delon/abc/page-header';
import { PageHeaderModule } from '@delon/abc/page-header';
import * as i6 from '@delon/abc/result';
import { ResultModule } from '@delon/abc/result';
import * as i4$1 from '@delon/abc/se';
import { SEModule } from '@delon/abc/se';
import * as i3$3 from '@delon/abc/st';
import { STModule } from '@delon/abc/st';
import * as i5 from '@delon/abc/sv';
import { SVModule } from '@delon/abc/sv';
import * as i12 from 'ng-zorro-antd/alert';
import { NzAlertModule } from 'ng-zorro-antd/alert';
import * as i15 from 'ng-zorro-antd/avatar';
import { NzAvatarModule } from 'ng-zorro-antd/avatar';
import * as i16 from 'ng-zorro-antd/card';
import { NzCardModule } from 'ng-zorro-antd/card';
import * as i4$2 from 'ng-zorro-antd/checkbox';
import { NzCheckboxModule } from 'ng-zorro-antd/checkbox';
import * as i17 from 'ng-zorro-antd/dropdown';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import * as i25 from 'ng-zorro-antd/icon';
import { NzIconModule } from 'ng-zorro-antd/icon';
import * as i22 from 'ng-zorro-antd/modal';
import { NzModalModule } from 'ng-zorro-antd/modal';
import * as i18 from 'ng-zorro-antd/popconfirm';
import { NzPopconfirmModule } from 'ng-zorro-antd/popconfirm';
import * as i20 from 'ng-zorro-antd/popover';
import { NzPopoverModule } from 'ng-zorro-antd/popover';
import * as i13 from 'ng-zorro-antd/progress';
import { NzProgressModule } from 'ng-zorro-antd/progress';
import * as i27 from 'ng-zorro-antd/spin';
import { NzSpinModule } from 'ng-zorro-antd/spin';
import * as i2$4 from 'ng-zorro-antd/table';
import { NzTableModule } from 'ng-zorro-antd/table';
import * as i24 from 'ng-zorro-antd/tooltip';
import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
import * as i28 from 'ng-zorro-antd/collapse';
import { NzCollapseModule } from 'ng-zorro-antd/collapse';
import * as i3$4 from 'ng-zorro-antd/radio';
import { NzRadioModule } from 'ng-zorro-antd/radio';
import * as i32 from 'ng-zorro-antd/empty';
import { NzEmptyModule } from 'ng-zorro-antd/empty';
import * as i1$2 from 'ng-zorro-antd/date-picker';
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
import * as i34 from 'ng-zorro-antd/tag';
import { NzTagModule } from 'ng-zorro-antd/tag';
import * as i35 from 'ng-zorro-antd/time-picker';
import { NzTimePickerModule } from 'ng-zorro-antd/time-picker';
import * as i36 from 'ng-zorro-antd/image';
import { NzImageModule } from 'ng-zorro-antd/image';
import * as i37 from 'ng-zorro-antd/slider';
import { NzSliderModule } from 'ng-zorro-antd/slider';
import * as i38 from 'ng-zorro-antd/rate';
import { NzRateModule } from 'ng-zorro-antd/rate';
import * as i39 from 'ng-zorro-antd/upload';
import { NzUploadModule } from 'ng-zorro-antd/upload';
import * as i1$4 from 'ngx-color-picker';
import { ColorPickerModule } from 'ngx-color-picker';
import * as moment from 'moment';
import E from 'wangeditor';
import * as i1$3 from 'ng-zorro-antd/message';

class RWidgetFormService {
    constructor() {
        this.inputsSubject = new Subject();
    }
    inputsChange(value) {
        this.inputsSubject.next(value);
    }
    clearSubject() {
        this.inputsSubject.next();
        this.inputsSubject.complete();
        this.inputsSubject = new Subject();
    }
}
RWidgetFormService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
RWidgetFormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormService, decorators: [{
            type: Injectable,
            args: [{
                    providedIn: 'root'
                }]
        }], ctorParameters: function () { return []; } });

class DynamicComponentBase {
    constructor() {
        this.readyChange = new EventEmitter();
        this.valueChange = new EventEmitter();
        this.initConfig();
    }
    set config(val) {
        this._config = val;
        if (val) {
            this.configChange(val);
        }
    }
    get config() {
        return this._config;
    }
    get data() {
        return this.config;
    }
    ngOnInit() {
        this.imReady();
    }
    registerOnChange(fn) {
        this.valueChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.config.disabled = isDisabled;
    }
    writeValue(obj) {
        this.config.value = obj;
    }
    imReady() {
        this.ready = true;
        this.readyChange.emit(true);
    }
    onChange(val) {
        this.valueChange.emit(val);
        if (typeof this.config.onChange === 'function') {
            this.config.onChange(this.config.name, val);
        }
    }
    /** 初始化配置 */
    initConfig() { }
}
DynamicComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
DynamicComponentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DynamicComponentBase, inputs: { config: "config" }, outputs: { readyChange: "readyChange", valueChange: "valueChange" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentBase, decorators: [{
            type: Directive
        }], ctorParameters: function () { return []; }, propDecorators: { config: [{
                type: Input
            }], readyChange: [{
                type: Output
            }], valueChange: [{
                type: Output
            }] } });

class RenderComponentBase extends DynamicComponentBase {
    constructor(injector) {
        super();
        this._rWidgetFormService = injector.get(RWidgetFormService);
    }
    ngAfterViewInit() {
        // console.log(this, this.parent, 'RenderComponentBase ngAfterViewInit');
        this._rWidgetFormService.inputsChange(this);
    }
    ngOnDestroy() {
        // console.log(this, 'RenderComponentBase ngOnDestroy');
    }
}
RenderComponentBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RenderComponentBase, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
RenderComponentBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: RenderComponentBase, viewQueries: [{ propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }], usesInheritance: true, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RenderComponentBase, decorators: [{
            type: Directive
        }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { ngModel: [{
                type: ViewChild,
                args: [NgModel]
            }] } });

class DynamicComponentRegistryService {
    constructor() {
        this._componentTypes = {};
    }
    get componentTypes() {
        return this._componentTypes;
    }
    setDefault(componentType) {
        this.defaultComponentType = componentType;
    }
    register(type, componentType) {
        this._componentTypes[type] = componentType;
    }
    has(type) {
        return this._componentTypes.hasOwnProperty(type);
    }
    getType(type) {
        if (this.has(type)) {
            return this._componentTypes[type];
        }
        return this.defaultComponentType;
    }
}
class DefaultDynamicComponentRegistryService extends DynamicComponentRegistryService {
    constructor() {
        super();
    }
}

class DynamicComponentFactoryService {
    constructor(registry, resolver) {
        this.registry = registry;
        this.resolver = resolver;
    }
    createByType(container, componentType) {
        const componentFactory = this.resolver
            .resolveComponentFactory(componentType);
        return container.createComponent(componentFactory);
    }
    createByName(container, typeName) {
        if (!this.registry.has(typeName)) {
            console.warn(`dcf: No component for type "${typeName}"`);
        }
        const componentClass = this.registry.getType(typeName);
        const componentFactory = this.resolver.resolveComponentFactory(componentClass);
        return container.createComponent(componentFactory);
    }
}
DynamicComponentFactoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentFactoryService, deps: [{ token: DynamicComponentRegistryService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
DynamicComponentFactoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentFactoryService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentFactoryService, decorators: [{
            type: Injectable
        }], ctorParameters: function () { return [{ type: DynamicComponentRegistryService }, { type: i0.ComponentFactoryResolver }]; } });

class DynamicComponentTerminatorService {
    constructor() {
        this.onDestroy = new Subject();
    }
    destroy() {
        this.onDestroy.next(true);
    }
}
DynamicComponentTerminatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentTerminatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
DynamicComponentTerminatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentTerminatorService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentTerminatorService, decorators: [{
            type: Injectable
        }], ctorParameters: function () { return []; } });

class DynamicComponentComponent {
    constructor(viewContainerRef, factory, terminator) {
        this.viewContainerRef = viewContainerRef;
        this.factory = factory;
        this.terminator = terminator;
        this.unsubscribe$ = new Subject();
    }
    ngOnInit() {
        this.terminator.onDestroy.subscribe(() => this.ngOnDestroy());
    }
    ngOnChanges(changes) {
        if (changes.is && changes.is.currentValue) {
            const is = changes.is.currentValue;
            if (this.ref) {
                this.viewContainerRef.remove(0);
            }
            if (typeof is === 'string') {
                this.ref = this.factory.createByName(this.viewContainerRef, is);
            }
            else {
                this.ref = this.factory.createByType(this.viewContainerRef, is);
            }
        }
        // 输入参数
        if (changes.data && changes.data.currentValue && typeof changes.data.currentValue === 'object') {
            if (this.ref) {
                this.ref.instance.config = changes.data.currentValue;
            }
        }
    }
    ngOnDestroy() {
        const { unsubscribe$ } = this;
        unsubscribe$.next();
        unsubscribe$.complete();
        this.ref.destroy();
    }
}
DynamicComponentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentComponent, deps: [{ token: i0.ViewContainerRef }, { token: DynamicComponentFactoryService }, { token: DynamicComponentTerminatorService }], target: i0.ɵɵFactoryTarget.Component });
DynamicComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DynamicComponentComponent, selector: "[d-component]", inputs: { is: "is", data: "data" }, providers: [DynamicComponentFactoryService, DynamicComponentTerminatorService], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentComponent, decorators: [{
            type: Component,
            args: [{
                    // eslint-disable-next-line @angular-eslint/component-selector
                    selector: '[d-component]',
                    template: ``,
                    providers: [DynamicComponentFactoryService, DynamicComponentTerminatorService]
                }]
        }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: DynamicComponentFactoryService }, { type: DynamicComponentTerminatorService }]; }, propDecorators: { is: [{
                type: Input
            }], data: [{
                type: Input
            }] } });

class DynamicComponentRComponent {
    constructor(viewContainerRef, factory, terminator) {
        this.viewContainerRef = viewContainerRef;
        this.factory = factory;
        this.terminator = terminator;
        this.unsubscribe$ = new Subject();
    }
    ngOnInit() {
        this.terminator.onDestroy.subscribe(() => this.ngOnDestroy());
    }
    ngOnChanges(changes) {
        if (changes.is && changes.is.currentValue) {
            const is = changes.is.currentValue;
            if (this.ref) {
                this.viewContainerRef.remove(0);
            }
            if (typeof is === 'string') {
                this.ref = this.factory.createByName(this.viewContainerRef, is);
            }
            else {
                this.ref = this.factory.createByType(this.viewContainerRef, is);
            }
        }
        // 输入参数
        if (changes.data && changes.data.currentValue && typeof changes.data.currentValue === 'object') {
            if (this.ref) {
                this.ref.instance.config = changes.data.currentValue;
            }
        }
    }
    ngOnDestroy() {
        const { unsubscribe$ } = this;
        unsubscribe$.next();
        unsubscribe$.complete();
        this.ref.destroy();
    }
}
DynamicComponentRComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentRComponent, deps: [{ token: i0.ViewContainerRef }, { token: DynamicComponentFactoryService }, { token: DynamicComponentTerminatorService }], target: i0.ɵɵFactoryTarget.Component });
DynamicComponentRComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DynamicComponentRComponent, selector: "[d-component-r]", inputs: { is: "is", data: "data" }, providers: [DynamicComponentFactoryService, DynamicComponentTerminatorService], usesOnChanges: true, ngImport: i0, template: ``, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentRComponent, decorators: [{
            type: Component,
            args: [{
                    // eslint-disable-next-line @angular-eslint/component-selector
                    selector: '[d-component-r]',
                    template: ``,
                    providers: [DynamicComponentFactoryService, DynamicComponentTerminatorService]
                }]
        }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: DynamicComponentFactoryService }, { type: DynamicComponentTerminatorService }]; }, propDecorators: { is: [{
                type: Input
            }], data: [{
                type: Input
            }] } });

const ALL = [DynamicComponentComponent, DynamicComponentRComponent];
class DynamicComponentModule {
    static forRoot() {
        return {
            ngModule: DynamicComponentModule,
            providers: [{ provide: DynamicComponentRegistryService, useClass: DefaultDynamicComponentRegistryService }]
        };
    }
}
DynamicComponentModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
DynamicComponentModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentModule, declarations: [DynamicComponentComponent, DynamicComponentRComponent], imports: [CommonModule], exports: [DynamicComponentComponent, DynamicComponentRComponent] });
DynamicComponentModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentModule, providers: [], imports: [[CommonModule]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicComponentModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [CommonModule],
                    declarations: [...ALL],
                    exports: [...ALL],
                    providers: []
                }]
        }] });

var DataPointDataType;
(function (DataPointDataType) {
    DataPointDataType["Boolean"] = "Boolean";
    DataPointDataType["Decimal"] = "Decimal";
    DataPointDataType["Fixed"] = "Fixed";
    DataPointDataType["Float"] = "Float";
    DataPointDataType["Integer"] = "Integer";
    DataPointDataType["String"] = "String";
    DataPointDataType["Timestamp"] = "Timestamp";
})(DataPointDataType || (DataPointDataType = {}));
var ValidationRuleType;
(function (ValidationRuleType) {
    ValidationRuleType["Limit"] = "Limit";
    ValidationRuleType["Effective"] = "Effective";
})(ValidationRuleType || (ValidationRuleType = {}));

class WidgetFormRenderBase {
    constructor(injector) {
        /** 要渲染的组件发生变更 */
        this.widgetChange = new EventEmitter();
        /** 当前选中的组件 */
        this.selectComponent = {};
        /** 当前选中的组件发生变更 */
        this.selectComponentChange = new EventEmitter();
        /** 复制部件 */
        this.cloneComponent = new EventEmitter();
        /** 删除部件 */
        this.deleteComponent = new EventEmitter();
        /** 清空子组件 */
        this.clearComponent = new EventEmitter();
        /** 禁用拖拽 */
        this.disableDragDrop = false;
    }
    /** 当前是否存在子组件 */
    get existChildren() {
        return Array.isArray(this.component.children) && this.component.children.length > 0;
    }
    // ============================== 抛事件
    /** 调用克隆组件 */
    callCloneComponent(widget) {
        this.cloneComponent.emit(widget);
    }
    /** 调用删除组件 */
    callDeleteComponent(widget) {
        this.selectComponent = null;
        this.selectComponentChange.emit(null);
        this.deleteComponent.emit(widget);
    }
    /** 调用清空子组件 */
    callClearComponent(widget) {
        this.clearComponent.emit(widget);
    }
    /** 调用选中组件 */
    callSelectWidgetChange(widget, e) {
        this.selectComponent = widget;
        this.selectComponentChange.emit(widget);
        if (e) {
            e.preventDefault();
            e.stopPropagation();
        }
        return false;
    }
    // ============================== 处理
    /** 处理选中组件 */
    handleSelectComponent(widgetOrIndex, e) {
        if (typeof widgetOrIndex === 'number') {
            this.selectComponent = this.component.children[widgetOrIndex];
        }
        else {
            this.selectComponent = widgetOrIndex;
        }
        this.selectComponentChange.emit(this.selectComponent);
        return;
    }
    /** 处理复制组件 */
    handleComponentClone(index) {
        let cloneData = deepCopy(this.component.children[index]);
        cloneData.id = `id_${Math.ceil(Math.random() * 99999)}`;
        cloneData.name = `field${Math.ceil(Math.random() * 99999)}`;
        for (const item of cloneData.children) {
            item.id = `id_${Math.ceil(Math.random() * 99999)}`;
            item.name = `field${Math.ceil(Math.random() * 99999)}`;
        }
        this.component.children.splice(index, 0, cloneData);
        this.handleSelectComponent(index + 1);
    }
    /** 处理删除组件 */
    handleComponentDelete(index) {
        this.selectComponent = null;
        if (this.component.children.length - 1 === index) {
            if (index === 0) {
                this.selectComponent = null;
            }
            else {
                this.handleSelectComponent(index - 1);
            }
        }
        else {
            this.handleSelectComponent(index + 1);
        }
        this.component.children.splice(index, 1);
    }
    /** 清空组件 */
    handleComponentClear(index) {
        this.component.children[index].children = [];
    }
    getLabelWidth(item) {
        if (typeof item.labelWidth !== 'number') {
            item.labelWidth = 100;
        }
        return `${item.labelWidth}px`;
    }
    // ============================== 拖拽
    /** 拖拽结束 */
    onDragged(effect, parent, item) {
        // 排序
        if (effect === 'move') {
            const index = parent.children.indexOf(item);
            parent.children.splice(index, 1);
        }
    }
    /** 放下 */
    onDngDrop(event, target) {
        if (!target) {
            return;
        }
        if (!Array.isArray(target.children)) {
            target.children = [];
        }
        // 处理index
        let eventIndex = event.index;
        if (typeof eventIndex === 'undefined') {
            eventIndex = target.children.length;
        }
        // 处理数据
        const newWidget = event.data;
        // copy的数据进行处理
        if (event.dropEffect === 'copy') {
            newWidget.id = `id_${Math.ceil(Math.random() * 99999)}`;
            newWidget.name = `field${Math.ceil(Math.random() * 99999)}`;
            newWidget.placeholder = '';
            newWidget.span = 24;
            if (!Array.isArray(newWidget.children)) {
                newWidget.children = [];
            }
        }
        // 处理目标数组
        if (event.dropEffect === 'copy' || event.dropEffect === 'move') {
            target.children.splice(eventIndex, 0, newWidget);
        }
        if (target.bordered)
            event.data.bordered = true;
    }
}
WidgetFormRenderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetFormRenderBase, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
WidgetFormRenderBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: WidgetFormRenderBase, inputs: { parentComponent: "parentComponent", component: "component", widgetIndex: "widgetIndex", selectComponent: "selectComponent", disableDragDrop: "disableDragDrop" }, outputs: { widgetChange: "widgetChange", selectComponentChange: "selectComponentChange", cloneComponent: "cloneComponent", deleteComponent: "deleteComponent", clearComponent: "clearComponent" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetFormRenderBase, decorators: [{
            type: Directive
        }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { parentComponent: [{
                type: Input
            }], component: [{
                type: Input
            }], widgetChange: [{
                type: Output
            }], widgetIndex: [{
                type: Input
            }], selectComponent: [{
                type: Input
            }], selectComponentChange: [{
                type: Output
            }], cloneComponent: [{
                type: Output
            }], deleteComponent: [{
                type: Output
            }], clearComponent: [{
                type: Output
            }], disableDragDrop: [{
                type: Input
            }] } });

class DWidgetFormItemComponent {
    constructor() { }
    getComponent(widget) {
        if (!widget) {
            return '';
        }
        if (widget.startsWith('d-')) {
            return widget;
        }
        return `d-${widget}`;
    }
}
DWidgetFormItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DWidgetFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DWidgetFormItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DWidgetFormItemComponent, selector: "[d-widget-form-item]", inputs: { item: "item" }, ngImport: i0, template: "<ng-container *ngIf=\"item\" [ngSwitch]=\"item.widget\">\n  <ng-container *ngSwitchDefault>\n    <div d-component [is]=\"getComponent(item.widget)\" [data]=\"item\"> </div>\n  </ng-container>\n</ng-container>\n", components: [{ type: DynamicComponentComponent, selector: "[d-component]", inputs: ["is", "data"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DWidgetFormItemComponent, decorators: [{
            type: Component,
            args: [{
                    // eslint-disable-next-line @angular-eslint/component-selector
                    selector: '[d-widget-form-item]',
                    templateUrl: './d-widget-form-item.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { item: [{
                type: Input
            }] } });

const DROP_EFFECTS = ["move", "copy", "link"];
const CUSTOM_MIME_TYPE = "application/x-dnd";
const JSON_MIME_TYPE = "application/json";
const MSIE_MIME_TYPE = "Text";
function mimeTypeIsCustom(mimeType) {
    return mimeType.substr(0, CUSTOM_MIME_TYPE.length) === CUSTOM_MIME_TYPE;
}
function getWellKnownMimeType(event) {
    if (event.dataTransfer) {
        const types = event.dataTransfer.types;
        // IE 9 workaround.
        if (!types) {
            return MSIE_MIME_TYPE;
        }
        for (let i = 0; i < types.length; i++) {
            if (types[i] === MSIE_MIME_TYPE
                || types[i] === JSON_MIME_TYPE
                || mimeTypeIsCustom(types[i])) {
                return types[i];
            }
        }
    }
    return null;
}
function setDragData(event, data, effectAllowed) {
    // Internet Explorer and Microsoft Edge don't support custom mime types, see design doc:
    // https://github.com/marceljuenemann/angular-drag-and-drop-lists/wiki/Data-Transfer-Design
    const mimeType = CUSTOM_MIME_TYPE + (data.type ? ("-" + data.type) : "");
    const dataString = JSON.stringify(data);
    try {
        event.dataTransfer.setData(mimeType, dataString);
    }
    catch (e) {
        //   Setting a custom MIME type did not work, we are probably in IE or Edge.
        try {
            event.dataTransfer.setData(JSON_MIME_TYPE, dataString);
        }
        catch (e) {
            //   We are in Internet Explorer and can only use the Text MIME type. Also note that IE
            //   does not allow changing the cursor in the dragover event, therefore we have to choose
            //   the one we want to display now by setting effectAllowed.
            const effectsAllowed = filterEffects(DROP_EFFECTS, effectAllowed);
            event.dataTransfer.effectAllowed = effectsAllowed[0];
            event.dataTransfer.setData(MSIE_MIME_TYPE, dataString);
        }
    }
}
function getDropData(event, dragIsExternal) {
    // check if the mime type is well known
    const mimeType = getWellKnownMimeType(event);
    // drag did not originate from [dndDraggable]
    if (dragIsExternal === true) {
        if (mimeType !== null
            && mimeTypeIsCustom(mimeType)) {
            // the type of content is well known and safe to handle
            return JSON.parse(event.dataTransfer.getData(mimeType));
        }
        // the contained data is unknown, let user handle it
        return {};
    }
    // the type of content is well known and safe to handle
    return JSON.parse(event.dataTransfer.getData(mimeType));
}
function filterEffects(effects, allowed) {
    if (allowed === "all"
        || allowed === "uninitialized") {
        return effects;
    }
    return effects.filter(function (effect) {
        return allowed.toLowerCase().indexOf(effect) !== -1;
    });
}
function getDirectChildElement(parentElement, childElement) {
    let directChild = childElement;
    while (directChild.parentNode !== parentElement) {
        // reached root node without finding given parent
        if (!directChild.parentNode) {
            return null;
        }
        directChild = directChild.parentNode;
    }
    return directChild;
}
function shouldPositionPlaceholderBeforeElement(event, element, horizontal) {
    const bounds = element.getBoundingClientRect();
    // If the pointer is in the upper half of the list item element,
    // we position the placeholder before the list item, otherwise after it.
    if (horizontal) {
        return (event.clientX < bounds.left + bounds.width / 2);
    }
    return (event.clientY < bounds.top + bounds.height / 2);
}
function calculateDragImageOffset(event, dragImage) {
    const dragImageComputedStyle = window.getComputedStyle(dragImage);
    const paddingTop = parseFloat(dragImageComputedStyle.paddingTop) || 0;
    const paddingLeft = parseFloat(dragImageComputedStyle.paddingLeft) || 0;
    const borderTop = parseFloat(dragImageComputedStyle.borderTopWidth) || 0;
    const borderLeft = parseFloat(dragImageComputedStyle.borderLeftWidth) || 0;
    return {
        x: event.offsetX + paddingLeft + borderLeft,
        y: event.offsetY + paddingTop + borderTop
    };
}
function setDragImage(event, dragImage, offsetFunction) {
    const offset = offsetFunction(event, dragImage) || { x: 0, y: 0 };
    event.dataTransfer.setDragImage(dragImage, offset.x, offset.y);
}

const _dndState = {
    isDragging: false,
    dropEffect: "none",
    effectAllowed: "all",
    type: undefined
};
function startDrag(event, effectAllowed, type) {
    _dndState.isDragging = true;
    _dndState.dropEffect = "none";
    _dndState.effectAllowed = effectAllowed;
    _dndState.type = type;
    event.dataTransfer.effectAllowed = effectAllowed;
}
function endDrag() {
    _dndState.isDragging = false;
    _dndState.dropEffect = undefined;
    _dndState.effectAllowed = undefined;
    _dndState.type = undefined;
}
function setDropEffect(event, dropEffect) {
    if (_dndState.isDragging === true) {
        _dndState.dropEffect = dropEffect;
    }
    event.dataTransfer.dropEffect = dropEffect;
}
function getDropEffect(event, effectAllowed) {
    const dataTransferEffectAllowed = (event.dataTransfer) ? event.dataTransfer.effectAllowed : "uninitialized";
    let effects = filterEffects(DROP_EFFECTS, dataTransferEffectAllowed);
    if (_dndState.isDragging === true) {
        effects = filterEffects(effects, _dndState.effectAllowed);
    }
    if (effectAllowed) {
        effects = filterEffects(effects, effectAllowed);
    }
    // MacOS automatically filters dataTransfer.effectAllowed depending on the modifier keys,
    // therefore the following modifier keys will only affect other operating systems.
    if (effects.length === 0) {
        return "none";
    }
    if (event.ctrlKey && effects.indexOf("copy") !== -1) {
        return "copy";
    }
    if (event.altKey && effects.indexOf("link") !== -1) {
        return "link";
    }
    return effects[0];
}
function getDndType(event) {
    if (_dndState.isDragging === true) {
        return _dndState.type;
    }
    const mimeType = getWellKnownMimeType(event);
    if (mimeType === null) {
        return undefined;
    }
    if (mimeType === MSIE_MIME_TYPE
        || mimeType === JSON_MIME_TYPE) {
        return undefined;
    }
    return mimeType.substr(CUSTOM_MIME_TYPE.length + 1) || undefined;
}
function isExternalDrag() {
    return _dndState.isDragging === false;
}
const dndState = _dndState;

class DndPlaceholderRefDirective {
    constructor(elementRef) {
        this.elementRef = elementRef;
    }
}
DndPlaceholderRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndPlaceholderRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
DndPlaceholderRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]", ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndPlaceholderRefDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: "[dndPlaceholderRef]"
                }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
class DndDropzoneDirective {
    constructor(ngZone, elementRef, renderer) {
        this.ngZone = ngZone;
        this.elementRef = elementRef;
        this.renderer = renderer;
        this.dndAllowExternal = false;
        this.dndHorizontal = false;
        this.dndDragoverClass = "dndDragover";
        this.dndDropzoneDisabledClass = "dndDropzoneDisabled";
        this.dndDragover = new EventEmitter();
        this.dndDrop = new EventEmitter();
        this.placeholder = null;
        this.disabled = false;
        this.dragEnterEventHandler = (event) => this.onDragEnter(event);
        this.dragOverEventHandler = (event) => this.onDragOver(event);
        this.dragLeaveEventHandler = (event) => this.onDragLeave(event);
    }
    set dndDisableIf(value) {
        this.disabled = !!value;
        if (this.disabled) {
            this.renderer.addClass(this.elementRef.nativeElement, this.dndDropzoneDisabledClass);
        }
        else {
            this.renderer.removeClass(this.elementRef.nativeElement, this.dndDropzoneDisabledClass);
        }
    }
    set dndDisableDropIf(value) {
        this.dndDisableIf = value;
    }
    ngAfterViewInit() {
        this.placeholder = this.tryGetPlaceholder();
        this.removePlaceholderFromDOM();
        this.ngZone.runOutsideAngular(() => {
            this.elementRef.nativeElement.addEventListener("dragenter", this.dragEnterEventHandler);
            this.elementRef.nativeElement.addEventListener("dragover", this.dragOverEventHandler);
            this.elementRef.nativeElement.addEventListener("dragleave", this.dragLeaveEventHandler);
        });
    }
    ngOnDestroy() {
        this.elementRef.nativeElement.removeEventListener("dragenter", this.dragEnterEventHandler);
        this.elementRef.nativeElement.removeEventListener("dragover", this.dragOverEventHandler);
        this.elementRef.nativeElement.removeEventListener("dragleave", this.dragLeaveEventHandler);
    }
    onDragEnter(event) {
        // check if another dropzone is activated
        if (event._dndDropzoneActive === true) {
            this.cleanupDragoverState();
            return;
        }
        // set as active if the target element is inside this dropzone
        if (typeof event._dndDropzoneActive === "undefined") {
            const newTarget = document.elementFromPoint(event.clientX, event.clientY);
            if (this.elementRef.nativeElement.contains(newTarget)) {
                event._dndDropzoneActive = true;
            }
        }
        // check if this drag event is allowed to drop on this dropzone
        const type = getDndType(event);
        if (this.isDropAllowed(type) === false) {
            return;
        }
        // allow the dragenter
        event.preventDefault();
    }
    onDragOver(event) {
        // With nested dropzones, we want to ignore this event if a child dropzone
        // has already handled a dragover.  Historically, event.stopPropagation() was
        // used to prevent this bubbling, but that prevents any dragovers outside the
        // ngx-drag-drop component, and stops other use cases such as scrolling on drag.
        // Instead, we can check if the event was already prevented by a child and bail early.
        if (event.defaultPrevented) {
            return;
        }
        // check if this drag event is allowed to drop on this dropzone
        const type = getDndType(event);
        if (this.isDropAllowed(type) === false) {
            return;
        }
        this.checkAndUpdatePlaceholderPosition(event);
        const dropEffect = getDropEffect(event, this.dndEffectAllowed);
        if (dropEffect === "none") {
            this.cleanupDragoverState();
            return;
        }
        // allow the dragover
        event.preventDefault();
        // set the drop effect
        setDropEffect(event, dropEffect);
        this.dndDragover.emit(event);
        this.renderer.addClass(this.elementRef.nativeElement, this.dndDragoverClass);
    }
    onDrop(event) {
        try {
            // check if this drag event is allowed to drop on this dropzone
            const type = getDndType(event);
            if (this.isDropAllowed(type) === false) {
                return;
            }
            const data = getDropData(event, isExternalDrag());
            if (this.isDropAllowed(data.type) === false) {
                return;
            }
            // signal custom drop handling
            event.preventDefault();
            const dropEffect = getDropEffect(event);
            setDropEffect(event, dropEffect);
            if (dropEffect === "none") {
                return;
            }
            const dropIndex = this.getPlaceholderIndex();
            // if for whatever reason the placeholder is not present in the DOM but it should be there
            // we don't allow/emit the drop event since it breaks the contract
            // seems to only happen if drag and drop is executed faster than the DOM updates
            if (dropIndex === -1) {
                return;
            }
            this.dndDrop.emit({
                event: event,
                dropEffect: dropEffect,
                isExternal: isExternalDrag(),
                data: data.data,
                index: dropIndex,
                type: type,
            });
            event.stopPropagation();
        }
        finally {
            this.cleanupDragoverState();
        }
    }
    onDragLeave(event) {
        // check if still inside this dropzone and not yet handled by another dropzone
        if (typeof event._dndDropzoneActive === "undefined") {
            const newTarget = document.elementFromPoint(event.clientX, event.clientY);
            if (this.elementRef.nativeElement.contains(newTarget)) {
                event._dndDropzoneActive = true;
                return;
            }
        }
        this.cleanupDragoverState();
        // cleanup drop effect when leaving dropzone
        setDropEffect(event, "none");
    }
    isDropAllowed(type) {
        // dropzone is disabled -> deny it
        if (this.disabled === true) {
            return false;
        }
        // if drag did not start from our directive
        // and external drag sources are not allowed -> deny it
        if (isExternalDrag() === true
            && this.dndAllowExternal === false) {
            return false;
        }
        // no filtering by types -> allow it
        if (!this.dndDropzone) {
            return true;
        }
        // no type set -> allow it
        if (!type) {
            return true;
        }
        if (Array.isArray(this.dndDropzone) === false) {
            throw new Error("dndDropzone: bound value to [dndDropzone] must be an array!");
        }
        // if dropzone contains type -> allow it
        return this.dndDropzone.indexOf(type) !== -1;
    }
    tryGetPlaceholder() {
        if (typeof this.dndPlaceholderRef !== "undefined") {
            return this.dndPlaceholderRef.elementRef.nativeElement;
        }
        // TODO nasty workaround needed because if ng-container / template is used @ContentChild() or DI will fail because
        // of wrong context see angular bug https://github.com/angular/angular/issues/13517
        return this.elementRef.nativeElement.querySelector("[dndPlaceholderRef]");
    }
    removePlaceholderFromDOM() {
        if (this.placeholder !== null
            && this.placeholder.parentNode !== null) {
            this.placeholder.parentNode.removeChild(this.placeholder);
        }
    }
    checkAndUpdatePlaceholderPosition(event) {
        if (this.placeholder === null) {
            return;
        }
        // make sure the placeholder is in the DOM
        if (this.placeholder.parentNode !== this.elementRef.nativeElement) {
            this.renderer.appendChild(this.elementRef.nativeElement, this.placeholder);
        }
        // update the position if the event originates from a child element of the dropzone
        const directChild = getDirectChildElement(this.elementRef.nativeElement, event.target);
        // early exit if no direct child or direct child is placeholder
        if (directChild === null
            || directChild === this.placeholder) {
            return;
        }
        const positionPlaceholderBeforeDirectChild = shouldPositionPlaceholderBeforeElement(event, directChild, this.dndHorizontal);
        if (positionPlaceholderBeforeDirectChild) {
            // do insert before only if necessary
            if (directChild.previousSibling !== this.placeholder) {
                this.renderer.insertBefore(this.elementRef.nativeElement, this.placeholder, directChild);
            }
        }
        else {
            // do insert after only if necessary
            if (directChild.nextSibling !== this.placeholder) {
                this.renderer.insertBefore(this.elementRef.nativeElement, this.placeholder, directChild.nextSibling);
            }
        }
    }
    getPlaceholderIndex() {
        if (this.placeholder === null) {
            return undefined;
        }
        const element = this.elementRef.nativeElement;
        return Array.prototype.indexOf.call(element.children, this.placeholder);
    }
    cleanupDragoverState() {
        this.renderer.removeClass(this.elementRef.nativeElement, this.dndDragoverClass);
        this.removePlaceholderFromDOM();
    }
}
DndDropzoneDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndDropzoneDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
DndDropzoneDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DndDropzoneDirective, selector: "[dndDropZone]", inputs: { dndDropzone: "dndDropzone", dndEffectAllowed: "dndEffectAllowed", dndAllowExternal: "dndAllowExternal", dndHorizontal: "dndHorizontal", dndDragoverClass: "dndDragoverClass", dndDropzoneDisabledClass: "dndDropzoneDisabledClass", dndDisableIf: "dndDisableIf", dndDisableDropIf: "dndDisableDropIf" }, outputs: { dndDragover: "dndDragover", dndDrop: "dndDrop" }, host: { listeners: { "drop": "onDrop($event)" } }, queries: [{ propertyName: "dndPlaceholderRef", first: true, predicate: DndPlaceholderRefDirective, descendants: true }], ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndDropzoneDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: "[dndDropZone]"
                }]
        }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { dndDropzone: [{
                type: Input
            }], dndEffectAllowed: [{
                type: Input
            }], dndAllowExternal: [{
                type: Input
            }], dndHorizontal: [{
                type: Input
            }], dndDragoverClass: [{
                type: Input
            }], dndDropzoneDisabledClass: [{
                type: Input
            }], dndDragover: [{
                type: Output
            }], dndDrop: [{
                type: Output
            }], dndPlaceholderRef: [{
                type: ContentChild,
                args: [DndPlaceholderRefDirective]
            }], dndDisableIf: [{
                type: Input
            }], dndDisableDropIf: [{
                type: Input
            }], onDrop: [{
                type: HostListener,
                args: ["drop", ["$event"]]
            }] } });

class DndDragImageRefDirective {
    constructor(parent, elementRef) {
        parent.registerDragImage(elementRef);
    }
}
DndDragImageRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndDragImageRefDirective, deps: [{ token: DndDraggableDirective }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
DndDragImageRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DndDragImageRefDirective, selector: "[dndDragImageRef]", ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndDragImageRefDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[dndDragImageRef]'
                }]
        }], ctorParameters: function () { return [{ type: DndDraggableDirective }, { type: i0.ElementRef }]; } });
class DndDraggableDirective {
    constructor(elementRef, renderer, ngZone) {
        this.elementRef = elementRef;
        this.renderer = renderer;
        this.ngZone = ngZone;
        this.dndEffectAllowed = 'copy';
        this.dndDraggingClass = 'dndDragging';
        this.dndDraggingSourceClass = 'dndDraggingSource';
        this.dndDraggableDisabledClass = 'dndDraggableDisabled';
        this.dndDragImageOffsetFunction = calculateDragImageOffset;
        this.dndStart = new EventEmitter();
        this.dndDrag = new EventEmitter();
        this.dndEnd = new EventEmitter();
        this.dndMoved = new EventEmitter();
        this.dndCopied = new EventEmitter();
        this.dndLinked = new EventEmitter();
        this.dndCanceled = new EventEmitter();
        this.draggable = true;
        this.isDragStarted = false;
        this.dragEventHandler = (event) => this.onDrag(event);
    }
    set dndDisableIf(value) {
        this.draggable = !value;
        if (this.draggable) {
            this.renderer.removeClass(this.elementRef.nativeElement, this.dndDraggableDisabledClass);
        }
        else {
            this.renderer.addClass(this.elementRef.nativeElement, this.dndDraggableDisabledClass);
        }
    }
    set dndDisableDragIf(value) {
        this.dndDisableIf = value;
    }
    ngAfterViewInit() {
        this.ngZone.runOutsideAngular(() => {
            this.elementRef.nativeElement.addEventListener('drag', this.dragEventHandler);
        });
    }
    ngOnDestroy() {
        this.elementRef.nativeElement.removeEventListener('drag', this.dragEventHandler);
        if (this.isDragStarted === true) {
            endDrag();
        }
    }
    // @ts-ignore
    onDragStart(event) {
        if (this.draggable === false) {
            return false;
        }
        // check if there is dnd handle and if the dnd handle was used to start the drag
        if (typeof this.dndHandle !== 'undefined'
            && typeof event._dndUsingHandle === 'undefined') {
            return false;
        }
        // initialize global state
        startDrag(event, this.dndEffectAllowed, this.dndType);
        this.isDragStarted = true;
        setDragData(event, { data: this.dndDraggable, type: this.dndType }, dndState.effectAllowed);
        this.dragImage = this.determineDragImage();
        // set dragging css class prior to setDragImage so styles are applied before
        // TODO breaking change: add class to elementRef rather than drag image which could be another element
        this.renderer.addClass(this.dragImage, this.dndDraggingClass);
        // set custom dragimage if present
        // set dragimage if drag is started from dndHandle
        if (typeof this.dndDragImageElementRef !== 'undefined'
            || typeof event._dndUsingHandle !== 'undefined') {
            setDragImage(event, this.dragImage, this.dndDragImageOffsetFunction);
        }
        // add dragging source css class on first drag event
        const unregister = this.renderer.listen(this.elementRef.nativeElement, 'drag', () => {
            this.renderer.addClass(this.elementRef.nativeElement, this.dndDraggingSourceClass);
            unregister();
        });
        this.dndStart.emit(event);
        event.stopPropagation();
    }
    onDrag(event) {
        this.dndDrag.emit(event);
    }
    onDragEnd(event) {
        // get drop effect from custom stored state as its not reliable across browsers
        const dropEffect = dndState.dropEffect;
        let dropEffectEmitter;
        switch (dropEffect) {
            case 'copy':
                dropEffectEmitter = this.dndCopied;
                break;
            case 'link':
                dropEffectEmitter = this.dndLinked;
                break;
            case 'move':
                dropEffectEmitter = this.dndMoved;
                break;
            default:
                dropEffectEmitter = this.dndCanceled;
                break;
        }
        dropEffectEmitter.emit(event);
        this.dndEnd.emit(event);
        // reset global state
        endDrag();
        this.isDragStarted = false;
        this.renderer.removeClass(this.dragImage, this.dndDraggingClass);
        // IE9 special hammering
        window.setTimeout(() => {
            this.renderer.removeClass(this.elementRef.nativeElement, this.dndDraggingSourceClass);
        }, 0);
        event.stopPropagation();
    }
    registerDragHandle(handle) {
        this.dndHandle = handle;
    }
    registerDragImage(elementRef) {
        this.dndDragImageElementRef = elementRef;
    }
    determineDragImage() {
        // evaluate custom drag image existence
        if (typeof this.dndDragImageElementRef !== 'undefined') {
            return this.dndDragImageElementRef.nativeElement;
        }
        else {
            return this.elementRef.nativeElement;
        }
    }
}
DndDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
DndDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: { dndDraggable: "dndDraggable", dndEffectAllowed: "dndEffectAllowed", dndType: "dndType", dndDraggingClass: "dndDraggingClass", dndDraggingSourceClass: "dndDraggingSourceClass", dndDraggableDisabledClass: "dndDraggableDisabledClass", dndDragImageOffsetFunction: "dndDragImageOffsetFunction", dndDisableIf: "dndDisableIf", dndDisableDragIf: "dndDisableDragIf" }, outputs: { dndStart: "dndStart", dndDrag: "dndDrag", dndEnd: "dndEnd", dndMoved: "dndMoved", dndCopied: "dndCopied", dndLinked: "dndLinked", dndCanceled: "dndCanceled" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndDraggableDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: '[dndDraggable]'
                }]
        }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { dndDraggable: [{
                type: Input
            }], dndEffectAllowed: [{
                type: Input
            }], dndType: [{
                type: Input
            }], dndDraggingClass: [{
                type: Input
            }], dndDraggingSourceClass: [{
                type: Input
            }], dndDraggableDisabledClass: [{
                type: Input
            }], dndDragImageOffsetFunction: [{
                type: Input
            }], dndStart: [{
                type: Output
            }], dndDrag: [{
                type: Output
            }], dndEnd: [{
                type: Output
            }], dndMoved: [{
                type: Output
            }], dndCopied: [{
                type: Output
            }], dndLinked: [{
                type: Output
            }], dndCanceled: [{
                type: Output
            }], draggable: [{
                type: HostBinding,
                args: ['attr.draggable']
            }], dndDisableIf: [{
                type: Input
            }], dndDisableDragIf: [{
                type: Input
            }], onDragStart: [{
                type: HostListener,
                args: ['dragstart', ['$event']]
            }], onDragEnd: [{
                type: HostListener,
                args: ['dragend', ['$event']]
            }] } });

class DWidgetFormRenderComponent extends WidgetFormRenderBase {
    constructor(injector) {
        super(injector);
    }
}
DWidgetFormRenderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DWidgetFormRenderComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
DWidgetFormRenderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DWidgetFormRenderComponent, selector: "[d-widget-form-render]", usesInheritance: true, ngImport: i0, template: "<!-- \u6839\u636E\u7C7B\u578B\u8FDB\u884C\u6E32\u67D3 -->\n<ng-container [ngSwitch]=\"component.widget\">\n  <ng-container *ngSwitchCase=\"'layout-form'\">\n    <ng-container *ngTemplateOutlet=\"formRender; context: { $implicit: component, parentComponent: parentComponent }\"> </ng-container>\n  </ng-container>\n  <ng-container *ngSwitchCase=\"'group'\">\n    <ng-container *ngTemplateOutlet=\"groupRender; context: { $implicit: component, parentComponent: parentComponent }\"></ng-container>\n  </ng-container>\n  <ng-container *ngSwitchCase=\"'title'\">\n    <ng-container *ngTemplateOutlet=\"titleRender; context: { $implicit: component, parentComponent: parentComponent }\"></ng-container>\n  </ng-container>\n  <ng-container *ngSwitchDefault>\n    <ng-container *ngTemplateOutlet=\"defaultRender; context: { $implicit: component, parentComponent: parentComponent }\"></ng-container>\n  </ng-container>\n</ng-container>\n\n<!-- \u8868\u5355 -->\n<ng-template #formRender let-subComponent let-parentComponent=\"parentComponent\">\n  <form #widgetFormRef=\"ngForm\" nz-row nz-form style=\"height: 100%\" [ngClass]=\"{ formBordered: subComponent.bordered }\">\n    <div\n      dndDropZone\n      [dndDisableIf]=\"disableDragDrop\"\n      [dndAllowExternal]=\"true\"\n      (dndDrop)=\"onDngDrop($event, subComponent)\"\n      [ngStyle]=\"{ 'min-height: 300px;': subComponent.children.length === 0 }\"\n      class=\"widget-form-list\"\n      style=\"width: 100%; text-align: left\"\n    >\n      <div dndPlaceholderRef class=\"widget-form-item-placeholder\"></div>\n\n      <ng-container *ngFor=\"let childComponent of subComponent.children; let i = index\">\n        <div\n          [dndDraggable]=\"childComponent\"\n          [dndDisableIf]=\"disableDragDrop\"\n          dndEffectAllowed=\"move\"\n          (dndMoved)=\"onDragged('move', subComponent, childComponent)\"\n          nz-col\n          [nzMd]=\"childComponent.span || 12\"\n          [nzXs]=\"24\"\n          [nzOffset]=\"childComponent.offset || 0\"\n          class=\"widget-form-list-item\"\n          [attr.data-id]=\"childComponent.id\"\n          [attr.id]=\"'widget-' + childComponent.id\"\n          style=\"display: inline-block; width: 100%; float: left\"\n        >\n          <div>\n            <div\n              d-widget-form-render\n              [disableDragDrop]=\"disableDragDrop\"\n              [parentComponent]=\"subComponent\"\n              [component]=\"childComponent\"\n              [widgetIndex]=\"i\"\n              [selectComponent]=\"selectComponent\"\n              (selectComponentChange)=\"handleSelectComponent($event)\"\n              (cloneComponent)=\"handleComponentClone(i)\"\n              (deleteComponent)=\"handleComponentDelete(i)\"\n              (clearComponent)=\"handleComponentClear(i)\"\n            >\n            </div>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </form>\n</ng-template>\n<!-- group -->\n<ng-template #groupRender let-subComponent let-parentComponent=\"parentComponent\">\n  <!-- \u5217\u8868 -->\n  <nz-form-item\n    class=\"widget-form-item\"\n    [ngClass]=\"{ active: selectComponent === subComponent, required: subComponent.required }\"\n    (click)=\"callSelectWidgetChange(subComponent, $event)\"\n  >\n    <nz-form-label *ngIf=\"!subComponent.bordered\" [hidden]=\"subComponent.hiddenLabel\" [nzRequired]=\"subComponent.required\" nzSpan=\"24\">\n      <div>{{ subComponent.label }}</div>\n    </nz-form-label>\n    <nz-form-control nzSpan=\"24\">\n      <!-- \u6E32\u67D3\u666E\u901A\u63A7\u4EF6 -->\n      <div\n        dndDropZone\n        [dndDisableIf]=\"disableDragDrop\"\n        [dndAllowExternal]=\"true\"\n        (dndDrop)=\"onDngDrop($event, subComponent)\"\n        [ngStyle]=\"{ 'min-height: 300px;': subComponent.children.length === 0 }\"\n        class=\"d-groups widget-form-container\"\n        style=\"width: 100%; text-align: left\"\n      >\n        <!-- palceholder -->\n        <div dndPlaceholderRef class=\"widget-form-item-placeholder\"></div>\n\n        <!-- \u6E32\u67D3\u5B50\u9879 -->\n        <ng-container *ngFor=\"let childComponent of subComponent.children; let i = index\">\n          <div\n            [dndDraggable]=\"childComponent\"\n            [dndDisableIf]=\"disableDragDrop\"\n            dndEffectAllowed=\"move\"\n            (dndMoved)=\"onDragged('move', subComponent, childComponent)\"\n            nz-col\n            [nzMd]=\"childComponent.span || 12\"\n            [nzXs]=\"24\"\n            [nzOffset]=\"childComponent.offset || 0\"\n            class=\"widget-form-list-item\"\n            [attr.data-id]=\"childComponent.id\"\n            [attr.id]=\"'widget-' + childComponent.id\"\n            style=\"display: inline-block; width: 100%; float: left\"\n          >\n            <div>\n              <div\n                d-widget-form-render\n                [disableDragDrop]=\"disableDragDrop\"\n                [parentComponent]=\"subComponent\"\n                [component]=\"childComponent\"\n                [widgetIndex]=\"i\"\n                [selectComponent]=\"selectComponent\"\n                (selectComponentChange)=\"handleSelectComponent($event)\"\n                (cloneComponent)=\"handleComponentClone(i)\"\n                (deleteComponent)=\"handleComponentDelete(i)\"\n                (clearComponent)=\"handleComponentClear(i)\"\n              >\n              </div>\n            </div>\n          </div>\n        </ng-container>\n      </div>\n      <!-- \u63A7\u4EF6\u906E\u7F69 -->\n      <div class=\"widget-mask\"></div>\n    </nz-form-control>\n    <!-- \u529F\u80FD\u6309\u94AE -->\n    <ng-container *ngIf=\"selectComponent === subComponent && !selectComponent.editLabel && !disableDragDrop\">\n      <button\n        nz-button\n        class=\"widget-action-clone\"\n        title=\"\u590D\u5236\"\n        nzType=\"primary\"\n        nzShape=\"circle\"\n        (click)=\"callCloneComponent(subComponent)\"\n        nzSize=\"small\"\n        >c\n      </button>\n      <button\n        nz-button\n        class=\"widget-action-delete\"\n        title=\"\u5220\u9664\"\n        nzDanger\n        nzShape=\"circle\"\n        nzSize=\"small\"\n        (click)=\"callDeleteComponent(subComponent)\"\n        >d\n      </button>\n    </ng-container>\n  </nz-form-item>\n</ng-template>\n\n<!-- title -->\n<ng-template #titleRender let-subComponent let-parentComponent=\"parentComponent\">\n  <nz-form-item\n    class=\"widget-form-item\"\n    [ngClass]=\"{ active: selectComponent === subComponent, required: subComponent.required }\"\n    (click)=\"callSelectWidgetChange(subComponent, $event)\"\n  >\n    <nz-form-control>\n      <!-- \u6E32\u67D3\u666E\u901A\u63A7\u4EF6 -->\n      <div d-widget-form-item [item]=\"subComponent\"></div>\n      <!-- \u63A7\u4EF6\u906E\u7F69 -->\n      <div class=\"widget-mask\"></div>\n    </nz-form-control>\n    <!-- \u529F\u80FD\u6309\u94AE -->\n    <ng-container *ngIf=\"selectComponent === subComponent && !selectComponent.editLabel && !disableDragDrop\">\n      <button\n        nz-button\n        class=\"widget-action-clone\"\n        title=\"\u590D\u5236\"\n        nzType=\"primary\"\n        nzShape=\"circle\"\n        (click)=\"callCloneComponent(subComponent)\"\n        nzSize=\"small\"\n        >c\n      </button>\n      <button\n        nz-button\n        class=\"widget-action-delete\"\n        title=\"\u5220\u9664\"\n        nzDanger\n        nzShape=\"circle\"\n        nzSize=\"small\"\n        (click)=\"callDeleteComponent(subComponent)\"\n        >d\n      </button>\n    </ng-container>\n  </nz-form-item>\n</ng-template>\n\n<!-- \u9ED8\u8BA4 -->\n<ng-template #defaultRender let-subComponent let-parentComponent=\"parentComponent\">\n  <nz-form-item\n    class=\"widget-form-item\"\n    [ngClass]=\"{\n      active: selectComponent === subComponent,\n      required: subComponent.required,\n      bordered: parentComponent.bordered\n    }\"\n    (click)=\"callSelectWidgetChange(subComponent, $event)\"\n  >\n    <!-- \u663E\u793A\u8FB9\u6846\u65F6\uFF0C\u9690\u85CFlabel\uFF0C parentComponent.bordered -->\n    <!-- \u6807\u9898 -->\n    <nz-form-label\n      *ngIf=\"!parentComponent.bordered\"\n      [hidden]=\"subComponent.hiddenLabel\"\n      [style.width]=\"getLabelWidth(subComponent)\"\n      [nzRequired]=\"subComponent.required\"\n    >\n      <div>{{ subComponent.label }}</div>\n    </nz-form-label>\n    <nz-form-control>\n      <!-- \u6E32\u67D3\u666E\u901A\u63A7\u4EF6 -->\n      <div d-widget-form-item [item]=\"subComponent\"></div>\n      <!-- \u63A7\u4EF6\u906E\u7F69 -->\n      <div class=\"widget-mask\"></div>\n    </nz-form-control>\n    <!-- \u529F\u80FD\u6309\u94AE -->\n    <ng-container *ngIf=\"selectComponent === subComponent && !selectComponent.editLabel && !disableDragDrop\">\n      <button\n        nz-button\n        class=\"widget-action-clone\"\n        title=\"\u590D\u5236\"\n        nzType=\"primary\"\n        nzShape=\"circle\"\n        (click)=\"callCloneComponent(subComponent)\"\n        nzSize=\"small\"\n        >c\n      </button>\n      <button\n        nz-button\n        class=\"widget-action-delete\"\n        title=\"\u5220\u9664\"\n        nzDanger\n        nzShape=\"circle\"\n        nzSize=\"small\"\n        (click)=\"callDeleteComponent(subComponent)\"\n        >d\n      </button>\n    </ng-container>\n  </nz-form-item>\n</ng-template>\n", styles: ["nz-form-label{text-align:left}\n"], components: [{ type: DWidgetFormRenderComponent, selector: "[d-widget-form-render]" }, { type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { type: DWidgetFormItemComponent, selector: "[d-widget-form-item]", inputs: ["item"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i1.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon"], exportAs: ["nzForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: DndDropzoneDirective, selector: "[dndDropZone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: DndPlaceholderRefDirective, selector: "[dndPlaceholderRef]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: DndDraggableDirective, selector: "[dndDraggable]", inputs: ["dndDraggable", "dndEffectAllowed", "dndType", "dndDraggingClass", "dndDraggingSourceClass", "dndDraggableDisabledClass", "dndDragImageOffsetFunction", "dndDisableIf", "dndDisableDragIf"], outputs: ["dndStart", "dndDrag", "dndEnd", "dndMoved", "dndCopied", "dndLinked", "dndCanceled"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DWidgetFormRenderComponent, decorators: [{
            type: Component,
            args: [{
                    // eslint-disable-next-line @angular-eslint/component-selector
                    selector: '[d-widget-form-render]',
                    templateUrl: './d-widget-form-render.component.html',
                    styleUrls: ['./d-widget-form-render.component.less']
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class WidgetConfigComponent {
    constructor() {
        this.dateArr = ['year', 'month', 'week', 'date', 'datetime', 'time', 'daterange', 'timerange', 'datetimerange', 'dates'];
    }
    ngOnInit() {
        console.log('');
    }
    ngOnChanges(changes) {
        if (changes.data) {
            this.processorData(changes.data.currentValue);
        }
    }
    processorData(data) {
        if (!data) {
            return;
        }
        if (typeof this.data.labelWidth !== 'number') {
            this.data.labelWidth = 100;
        }
        this.configComponentName = this.getComponent(data);
    }
    getComponent(data) {
        return `d-${data.widget}-config`;
    }
}
WidgetConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
WidgetConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: WidgetConfigComponent, selector: "app-widget-config", inputs: { data: "data", defaultValues: "defaultValues" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"widget-config\" *ngIf=\"data\">\n  <form nz-form #formRef=\"ngForm\">\n    <!-- \u540D\u79F0 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u540D\u79F0</nz-form-label>\n      <nz-form-control>\n        <input nz-input #nameInput=\"ngModel\" name=\"name\" type=\"text\" [(ngModel)]=\"data.name\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u6807\u9898 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u6807\u9898</nz-form-label>\n      <nz-form-control>\n        <input nz-input #labelInput=\"ngModel\" name=\"label\" type=\"text\" [(ngModel)]=\"data.label\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u6807\u9898\u5BBD\u5EA6 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u6807\u9898\u5BBD\u5EA6</nz-form-label>\n      <nz-form-control>\n        <nz-input-number #labelWidthInput=\"ngModel\" name=\"labelWidth\" [(ngModel)]=\"data.labelWidth\" [nzMin]=\"0\" [nzMax]=\"9999\">\n        </nz-input-number>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u8868\u5355\u6805\u683C -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u8868\u5355\u6805\u683C</nz-form-label>\n      <nz-form-control>\n        <nz-input-number #spanInput=\"ngModel\" name=\"span\" [(ngModel)]=\"data.span\" [nzMin]=\"1\" [nzMax]=\"24\"></nz-input-number>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u662F\u5426\u53EF\u89C1 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u53EF\u89C1</nz-form-label>\n      <nz-form-control>\n        <nz-switch #displayInput=\"ngModel\" name=\"display\" [(ngModel)]=\"data.display\"></nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u662F\u5426\u5FC5\u586B -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u5FC5\u586B</nz-form-label>\n      <nz-form-control>\n        <nz-switch #requiredInput=\"ngModel\" name=\"required\" [(ngModel)]=\"data.required\"></nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u5360\u4F4D\u5185\u5BB9 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"6\">\u5360\u4F4D\u5185\u5BB9</nz-form-label>\n      <nz-form-control>\n        <input nz-input #placeholderInput=\"ngModel\" name=\"placeholder\" type=\"text\" [(ngModel)]=\"data.placeholder\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u7EC4\u4EF6\u7279\u5B9A\u914D\u7F6E -->\n    <div d-component [is]=\"configComponentName\" [data]=\"data\"></div>\n  </form>\n</div>\n", styles: ["nz-form-label{text-align:left}\n"], components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: i29.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize"], exportAs: ["nzSwitch"] }, { type: DynamicComponentComponent, selector: "[d-component]", inputs: ["is", "data"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon"], exportAs: ["nzForm"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-widget-config',
                    templateUrl: './widget-config.component.html',
                    styleUrls: ['./widget-config.component.less']
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { data: [{
                type: Input
            }], defaultValues: [{
                type: Input
            }] } });

class FormConfigComponent {
    mapBool(list, bool) {
        list.map(v => {
            v.bordered = bool;
            if (v.children.length) {
                this.mapBool(v.children, bool);
            }
        });
    }
    borderedChange(bool) {
        if (bool) {
            this.mapBool([this.data], true);
        }
        else {
            this.mapBool([this.data], false);
        }
    }
}
FormConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
FormConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: FormConfigComponent, selector: "app-form-config", inputs: { data: "data" }, ngImport: i0, template: "<div class=\"form-config-container\">\n  <form nz-form #formRef=\"ngForm\">\n    <!-- \u8868\u5355\u5E03\u5C40 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"12\">\u8868\u5355\u5E03\u5C40</nz-form-label>\n      <nz-form-control>\n        <nz-select #formLayoutInput=\"ngModel\" name=\"formLayout\" [(ngModel)]=\"data.formLayout\">\n          <nz-option nzLabel=\"\u6C34\u5E73\" nzValue=\"horizontal\"></nz-option>\n          <nz-option nzLabel=\"\u5782\u76F4\" nzValue=\"vertical\"></nz-option>\n          <nz-option nzLabel=\"\u884C\u5185\" nzValue=\"inline\"></nz-option>\n        </nz-select>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u8868\u5355\u5185\u7EC4\u4EF6\u5C3A\u5BF8 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"12\">\u7EC4\u4EF6\u5C3A\u5BF8</nz-form-label>\n      <nz-form-control>\n        <nz-select #formSizeInput=\"ngModel\" name=\"formSize\" [(ngModel)]=\"data.formSize\">\n          <nz-option nzLabel=\"\u9ED8\u8BA4\" nzValue=\"default\"></nz-option>\n          <nz-option nzLabel=\"\u5927\" nzValue=\"large\"></nz-option>\n          <nz-option nzLabel=\"\u5C0F\" nzValue=\"small\"></nz-option>\n        </nz-select>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u663E\u793A\u6309\u94AE -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"12\">\u663E\u793A\u6309\u94AE</nz-form-label>\n      <nz-form-control>\n        <nz-switch #formBtnInput=\"ngModel\" name=\"formBtn\" [(ngModel)]=\"data.formBtn\"></nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u663E\u793A\u63D0\u4EA4\u6309\u94AE -->\n    <nz-form-item *ngIf=\"data.formBtn\">\n      <nz-form-label [nzSpan]=\"12\">\u663E\u793A\u63D0\u4EA4\u6309\u94AE</nz-form-label>\n      <nz-form-control>\n        <nz-switch #formBtnSubmitInput=\"ngModel\" name=\"formBtnSubmit\" [(ngModel)]=\"data.formBtnSubmit\"></nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u63D0\u4EA4\u6309\u94AE\u6587\u672C -->\n    <nz-form-item *ngIf=\"data.formBtn && data.formBtnSubmit\">\n      <nz-form-label [nzSpan]=\"12\">\u63D0\u4EA4\u6309\u94AE\u6587\u672C</nz-form-label>\n      <nz-form-control>\n        <input nz-input #formBtnSubmitTextInput=\"ngModel\" name=\"formBtnSubmitText\" type=\"text\" [(ngModel)]=\"data.formBtnSubmitText\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u663E\u793A\u91CD\u7F6E\u6309\u94AE -->\n    <nz-form-item *ngIf=\"data.formBtn\">\n      <nz-form-label [nzSpan]=\"12\">\u663E\u793A\u91CD\u7F6E\u6309\u94AE</nz-form-label>\n      <nz-form-control>\n        <nz-switch #formBtnResetInput=\"ngModel\" name=\"formBtnReset\" [(ngModel)]=\"data.formBtnReset\"></nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u91CD\u7F6E\u6309\u94AE\u6587\u672C -->\n    <nz-form-item *ngIf=\"data.formBtn && data.formBtnReset\">\n      <nz-form-label [nzSpan]=\"12\">\u91CD\u7F6E\u6309\u94AE\u6587\u672C</nz-form-label>\n      <nz-form-control>\n        <input nz-input #formBtnResetText=\"ngModel\" name=\"formBtnResetText\" type=\"text\" [(ngModel)]=\"data.formBtnResetText\" />\n      </nz-form-control>\n    </nz-form-item>\n\n    <!-- \u8868\u5355\u6837\u5F0F\u6A21\u7248 -->\n    <nz-form-item>\n      <nz-form-label [nzSpan]=\"12\">\u8868\u683C\u6837\u5F0F</nz-form-label>\n      <nz-form-control>\n        <nz-switch #formBtnInput=\"ngModel\" name=\"bordered\" [ngModel]=\"bordered\" (ngModelChange)=\"borderedChange($event)\"></nz-switch>\n      </nz-form-control>\n    </nz-form-item>\n  </form>\n</div>\n", styles: ["nz-form-label{text-align:left}\n"], components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { type: i2$2.NzOptionComponent, selector: "nz-option", inputs: ["nzLabel", "nzValue", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { type: i29.NzSwitchComponent, selector: "nz-switch", inputs: ["nzLoading", "nzDisabled", "nzControl", "nzCheckedChildren", "nzUnCheckedChildren", "nzSize"], exportAs: ["nzSwitch"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon"], exportAs: ["nzForm"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-form-config',
                    templateUrl: './form-config.component.html',
                    styleUrls: ['./form-config.component.less']
                }]
        }], propDecorators: { data: [{
                type: Input
            }] } });

const componentGroups = [
    {
        label: '布局控件',
        components: [
            {
                label: '分组',
                type: 'string',
                widget: 'group',
                icon: 'icon-fenzu'
            },
            {
                label: '标题',
                type: 'string',
                widget: 'title',
                icon: 'icon-biaoti'
            },
            {
                label: '图片',
                type: 'img',
                widget: 'image',
                icon: 'icon-tupian'
            }
        ]
    },
    {
        label: '基础控件',
        components: [
            {
                label: '单行文本',
                type: 'string',
                widget: 'string',
                icon: 'icon-danhangwenben'
            },
            {
                label: '多行文本',
                type: 'string',
                widget: 'textarea',
                icon: 'icon-duohangwenben'
            },
            {
                label: '数字输入',
                type: 'number',
                widget: 'number',
                icon: "icon-shuzishuru"
            },
            {
                label: '单项框组',
                type: 'string',
                widget: 'radio',
                icon: "icon-danxiangxuankuang-copy"
            },
            {
                label: '多选框组',
                type: 'string',
                widget: 'checkbox',
                icon: "icon-duoxiangxuankuang"
            },
            {
                label: '下拉选择',
                type: 'number',
                widget: 'select',
                icon: "icon-xialaxuanze"
            },
            {
                label: '日期选择器',
                type: 'string',
                widget: 'date',
                icon: "icon-riqixuanze"
            },
            {
                label: '日期范围选择器',
                type: 'string',
                widget: 'date-range',
                icon: "icon-riqifanweixuanze"
            },
            {
                label: '文件上传',
                type: 'string',
                widget: 'uploadfile',
                icon: "icon-wenjianshangchuan"
            },
            {
                label: '颜色选择',
                type: 'string',
                widget: 'colorpicker',
                icon: "icon-yansexuanze"
            },
            {
                label: '评分',
                type: 'string',
                widget: 'rate',
                icon: "icon-pingfen"
            },
            {
                label: '滑块',
                type: 'string',
                widget: 'slider',
                icon: "icon-huakuai"
            },
            {
                label: '分割线',
                type: 'string',
                widget: 'splitline',
                icon: "icon-fengexian"
            },
            {
                label: '文本',
                type: 'string',
                widget: 'text',
                icon: "icon-wenben"
            },
            {
                label: '富文本',
                type: 'string',
                widget: 'ueditor',
                icon: "icon-fuwenben"
            }
        ]
    },
    {
        label: '动态表单项',
        components: [
            {
                label: '文本输入',
                type: 'string',
                widget: 'con-string',
                icon: "icon-wenben"
            },
            {
                label: '整数数字输入',
                type: 'number-integer',
                widget: 'con-number-integer',
                icon: "icon-zhengshushuzishuru"
            },
            {
                label: '浮点数字输入',
                type: 'number-float',
                widget: 'con-number-float',
                icon: "icon-fudianshuzi"
            },
            {
                label: '十进制数字输入',
                type: 'number-decimal',
                widget: 'con-number-decimal',
                icon: "icon-shijinzhi"
            },
            {
                label: '单项框组',
                type: 'boolean',
                widget: 'con-boolean',
                icon: "icon-danxiangxuankuang-copy"
            },
            {
                label: '固定值',
                type: 'string',
                widget: 'con-fixed',
                icon: "icon-gudingzhi"
            },
            {
                label: '时间选择器',
                type: 'string',
                widget: 'con-timestamp',
                icon: "icon-riqixuanze"
            }
        ]
    }
];

class RWidgetFormRenderBase {
    constructor() {
        /** disabled */
        this.disabled = false;
        /** 是否显示按钮 */
        this.showButton = true;
    }
    /** 是否显示边框 */
    // @Input() bordered: boolean = false;
    getLabelWidth(item) {
        if (typeof item.labelWidth !== 'number') {
            item.labelWidth = 100;
        }
        return `${item.labelWidth}px`;
    }
}
RWidgetFormRenderBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormRenderBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
RWidgetFormRenderBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: RWidgetFormRenderBase, inputs: { parentComponent: "parentComponent", component: "component", disabled: "disabled", showButton: "showButton" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormRenderBase, decorators: [{
            type: Directive
        }], ctorParameters: function () { return []; }, propDecorators: { parentComponent: [{
                type: Input
            }], component: [{
                type: Input
            }], disabled: [{
                type: Input
            }], showButton: [{
                type: Input
            }] } });

class RWidgetFormItemComponent {
    constructor() { }
    getComponent(widget) {
        if (!widget) {
            return '';
        }
        if (widget.startsWith('d-')) {
            return `r-${widget}`;
        }
        return `r-d-${widget}`;
    }
}
RWidgetFormItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
RWidgetFormItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RWidgetFormItemComponent, selector: "[r-widget-form-item],r-widget-form-item", inputs: { item: "item" }, ngImport: i0, template: "<ng-container *ngIf=\"item\" [ngSwitch]=\"getComponent(item.widget)\">\n  <ng-container *ngSwitchDefault>\n    <div d-component-r [is]=\"getComponent(item.widget)\" [data]=\"item\"> </div>\n  </ng-container>\n</ng-container>\n", components: [{ type: DynamicComponentRComponent, selector: "[d-component-r]", inputs: ["is", "data"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }], viewProviders: [
        {
            provide: ControlContainer,
            useExisting: NgForm
        }
    ] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormItemComponent, decorators: [{
            type: Component,
            args: [{
                    selector: '[r-widget-form-item],r-widget-form-item',
                    templateUrl: './r-widget-form-item.component.html',
                    styles: [],
                    viewProviders: [
                        {
                            provide: ControlContainer,
                            useExisting: NgForm
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { item: [{
                type: Input
            }] } });

class RWidgetFormRenderComponent {
    /** 页面表单 */
    constructor() {
        /** disabled */
        this.disabled = false;
        /** 是否显示按钮 */
        this.showButton = true;
    }
    /** 是否显示边框 */
    // @Input() bordered: boolean = false;
    getLabelWidth(item) {
        if (typeof item.labelWidth !== 'number') {
            item.labelWidth = 100;
        }
        return `${item.labelWidth}px`;
    }
}
RWidgetFormRenderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormRenderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
RWidgetFormRenderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RWidgetFormRenderComponent, selector: "[r-widget-form-render],r-widget-form-render", inputs: { parentComponent: "parentComponent", component: "component", disabled: "disabled", showButton: "showButton" }, ngImport: i0, template: "<!-- \u6839\u636E\u7C7B\u578B\u8FDB\u884C\u6E32\u67D3 -->\n<ng-container [ngSwitch]=\"component.widget\">\n  <!-- <ng-container *ngSwitchCase=\"'layout-form'\">\n    <ng-container *ngTemplateOutlet=\"formRender; context: { $implicit: component, parentComponent: parentComponent }\"> </ng-container>\n  </ng-container> -->\n  <ng-container *ngSwitchCase=\"'group'\">\n    <ng-container *ngTemplateOutlet=\"groupRender; context: { $implicit: component, parentComponent: parentComponent }\"></ng-container>\n  </ng-container>\n  <ng-container *ngSwitchCase=\"'title'\">\n    <ng-container *ngTemplateOutlet=\"titleRender; context: { $implicit: component, parentComponent: parentComponent }\"></ng-container>\n  </ng-container>\n  <ng-container *ngSwitchDefault>\n    <ng-container *ngTemplateOutlet=\"defaultRender; context: { $implicit: component, parentComponent: parentComponent }\"></ng-container>\n  </ng-container>\n</ng-container>\n\n<!-- \u8868\u5355 -->\n<!-- <ng-template #formRender let-subComponent let-parentComponent=\"parentComponent\">\n  <form #widgetFormRef=\"ngForm\" nz-row nz-form style=\"height: 100%\" [ngClass]=\"{ formBordered: parentComponent.bordered }\">\n    <div class=\"widget-form-list\" style=\"width: 100%; text-align: left\">\n      <ng-container *ngFor=\"let component of parentComponent.children; let i = index\">\n        <div\n          nz-col\n          [nzMd]=\"component.span || 12\"\n          [nzXs]=\"24\"\n          [nzOffset]=\"component.offset || 0\"\n          class=\"widget-form-list-item\"\n          [attr.data-id]=\"component.id\"\n          [attr.id]=\"'widget-' + component.id\"\n          style=\"display: inline-block; width: 100%; float: left\"\n        >\n          <div>\n            <div r-widget-form-render [parentComponent]=\"parentComponent\" [component]=\"component\"> </div>\n          </div>\n        </div>\n      </ng-container>\n    </div>\n  </form>\n</ng-template> -->\n\n<!-- group -->\n<ng-template #groupRender let-subComponent let-parentComponent=\"parentComponent\" let-index=\"index\">\n  <!-- \u5217\u8868 -->\n  <nz-form-item class=\"widget-form-item r-d-groups\" [ngClass]=\"{ required: subComponent.required, bordered: parentComponent.bordered }\">\n    <nz-form-label *ngIf=\"!parentComponent.bordered\" [hidden]=\"subComponent.hiddenLabel\" [nzRequired]=\"subComponent.required\" nzSpan=\"24\">\n      <div>{{ subComponent.label }}</div>\n    </nz-form-label>\n    <nz-form-control nzSpan=\"24\" *ngIf=\"subComponent.children.length\">\n      <!-- \u6E32\u67D3\u5B50\u9879 -->\n      <ng-container *ngFor=\"let childrenComponent of subComponent.children; let i = index\">\n        <div\n          nz-col\n          [nzMd]=\"childrenComponent.span || 12\"\n          [nzXs]=\"24\"\n          [nzOffset]=\"childrenComponent.offset || 0\"\n          class=\"widget-form-list-item\"\n          [attr.data-id]=\"childrenComponent.id\"\n          [attr.id]=\"'widget-' + childrenComponent.id\"\n          style=\"display: inline-block; width: 100%; float: left\"\n        >\n          <div r-widget-form-render [parentComponent]=\"subComponent\" [component]=\"childrenComponent\"> </div>\n        </div>\n      </ng-container>\n    </nz-form-control>\n    <div class=\"line-top\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-right\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-bottom\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-left\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n  </nz-form-item>\n</ng-template>\n\n<!-- title -->\n<ng-template #titleRender let-subComponent let-parentComponent=\"parentComponent\" let-index=\"index\">\n  <nz-form-item\n    class=\"widget-form-item r-d-title\"\n    [ngClass]=\"{ required: subComponent.required, bordered: parentComponent.bordered, parentGroup: parentComponent.widget === 'group' }\"\n  >\n    <nz-form-control>\n      <!-- \u6E32\u67D3title\u63A7\u4EF6 -->\n      <div r-widget-form-item [item]=\"subComponent\"></div>\n    </nz-form-control>\n    <div class=\"line-top\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-right\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-bottom\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-left\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n  </nz-form-item>\n</ng-template>\n\n<!-- \u9ED8\u8BA4 -->\n<ng-template #defaultRender let-subComponent let-parentComponent=\"parentComponent\" let-index=\"index\">\n  <nz-form-item\n    class=\"widget-form-item\"\n    [ngClass]=\"{\n      required: subComponent.required,\n      bordered: parentComponent.bordered,\n      parentGroup: parentComponent.widget === 'group'\n    }\"\n  >\n    <!-- \u663E\u793A\u8FB9\u6846\u65F6\uFF0C\u9690\u85CFlabel\uFF0C parentComponent.bordered -->\n    <!-- \u6807\u9898 -->\n    <nz-form-label\n      *ngIf=\"!parentComponent.bordered\"\n      [hidden]=\"subComponent.hiddenLabel\"\n      [style.width]=\"getLabelWidth(subComponent)\"\n      [nzRequired]=\"subComponent.required\"\n    >\n      <div>{{ subComponent.label }}</div>\n    </nz-form-label>\n    <nz-form-control>\n      <r-widget-form-item [item]=\"subComponent\"></r-widget-form-item>\n    </nz-form-control>\n    <div class=\"line-top\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-right\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-bottom\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n    <div class=\"line-left\" [ngStyle]=\"{ display: parentComponent.widget === 'group' ? 'none' : 'block' }\"></div>\n  </nz-form-item>\n</ng-template>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: RWidgetFormRenderComponent, selector: "[r-widget-form-render],r-widget-form-render", inputs: ["parentComponent", "component", "disabled", "showButton"] }, { type: RWidgetFormItemComponent, selector: "[r-widget-form-item],r-widget-form-item", inputs: ["item"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], viewProviders: [
        {
            provide: ControlContainer,
            useExisting: NgForm
        }
    ] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormRenderComponent, decorators: [{
            type: Component,
            args: [{
                    selector: '[r-widget-form-render],r-widget-form-render',
                    templateUrl: './r-widget-form-render.component.html',
                    styles: [],
                    viewProviders: [
                        {
                            provide: ControlContainer,
                            useExisting: NgForm
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { parentComponent: [{
                type: Input
            }], component: [{
                type: Input
            }], disabled: [{
                type: Input
            }], showButton: [{
                type: Input
            }] } });

class RWidgetButtonComponent {
    constructor() {
        this.submitForm = new EventEmitter();
        this.resetForm = new EventEmitter();
    }
    ngOnInit() { }
    _submitForm() {
        this.submitForm.emit();
    }
    _resetForm() {
        this.resetForm.emit();
    }
}
RWidgetButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
RWidgetButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RWidgetButtonComponent, selector: "r-widget-button,[r-widget-button]", outputs: { submitForm: "submitForm", resetForm: "resetForm" }, ngImport: i0, template: "<nz-form-item class=\"sf-btns\" style=\"width: 100%; text-align: center; padding-top: 20px\">\n  <div nz-col class=\"ant-form-item-control\">\n    <div class=\"ant-form-item-control-input\">\n      <div class=\"ant-form-item-control-input-content\">\n        <button nz-button type=\"button\" [nzType]=\"'primary'\" (click)=\"_submitForm()\">\u4FDD\u5B58</button>\n        <button nz-button type=\"button\" (click)=\"_resetForm()\">\u91CD\u7F6E</button>\n      </div>\n    </div>\n  </div>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetButtonComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'r-widget-button,[r-widget-button]',
                    templateUrl: './r-widget-button.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { submitForm: [{
                type: Output
            }], resetForm: [{
                type: Output
            }] } });

class RWidgetFormComponent extends RWidgetFormRenderBase {
    constructor(cdr, fb, _rWidgetFormService, zone) {
        super();
        this.cdr = cdr;
        this.fb = fb;
        this._rWidgetFormService = _rWidgetFormService;
        this.zone = zone;
        this.inputs = [];
        /** 表单提交 */
        this.submitForm = new EventEmitter();
        /** 表单重置 */
        this.resetForm = new EventEmitter();
        /** 是否显示默认按钮 */
        this.showButton = true;
        this.formId = 'formId' + Math.random().toString(36).substr(3, 16) + new Date().getTime();
        this.inputsSubscribe = this._rWidgetFormService.inputsSubject.subscribe(res => {
            let _this = this;
            let input = res;
            /**
             * 注册formControl 以及 默认值赋值
             */
            if (input && input.ngModel && this.validateForm) {
                if (input.data.formId === this.formId) {
                    this.inputs.push(input.ngModel);
                    this.validateForm.addControl(input.ngModel);
                }
            }
            /**
             * disabled状态添加
             */
            setTimeout(() => {
                console.log(this.validateForm.form, this.formId, 'inputsSubscribe');
                if (_this.validateForm && _this.validateForm.form) {
                    _this.validateForm.form.patchValue(_this.formData);
                    if (_this.disabled) {
                        input.config.disabled = true;
                    }
                    else {
                        input.config.disabled = false;
                    }
                }
            }, 100);
        });
    }
    ngOnInit() { }
    ngAfterViewInit() {
        console.log(this.formData, 'formData');
        this.importJsonFun();
    }
    ngOnChanges(changes) {
        if (changes.previewJson) {
            this.importJsonFun();
        }
    }
    /** 导入原始json面板 */
    importJsonFun() {
        this.inputs.map(dir => {
            this.validateForm.removeControl(dir);
        });
        this.rootComponent = null;
        try {
            const component = JSON.parse(this.previewJson);
            if (component) {
                this.setFormId([component]);
                this.rootComponent = JSON.parse(JSON.stringify(component, null, '\t'));
            }
        }
        catch (_a) { }
    }
    setFormId(list) {
        if (list.length) {
            list.map(item => {
                item.formId = this.formId;
                if (item.children.length) {
                    this.setFormId(item.children);
                }
            });
        }
    }
    _submitForm() {
        for (const key in this.validateForm.form.controls) {
            this.validateForm.form.controls[key].markAsDirty();
            this.validateForm.form.controls[key].updateValueAndValidity();
        }
        if (this.validateForm.valid) {
            this.submitForm.emit(this.validateForm.form.value);
        }
    }
    _resetForm() {
        this.validateForm.resetForm();
        this.resetForm.emit();
    }
    /**
     * 组件销毁时解除订阅,重置form
     */
    ngOnDestroy() {
        this.rootComponent = null;
        this.inputs.map(dir => {
            this.validateForm.removeControl(dir);
        });
        this.inputs = [];
        this.inputsSubscribe.unsubscribe();
    }
}
RWidgetFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.FormBuilder }, { token: RWidgetFormService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
RWidgetFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RWidgetFormComponent, selector: "r-widget-form", inputs: { previewJson: "previewJson", formData: "formData", showButton: "showButton", disabled: "disabled" }, outputs: { submitForm: "submitForm", resetForm: "resetForm" }, host: { properties: { "class.r-widget-form": "true" } }, viewQueries: [{ propertyName: "validateForm", first: true, predicate: ["validateForm"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- \u6E32\u67D3 -->\n<form #validateForm=\"ngForm\" nz-row nz-form [ngClass]=\"{ formBordered: !!rootComponent && !!rootComponent.bordered }\">\n  <div class=\"widget-form-list\" style=\"width: 100%\" *ngIf=\"rootComponent && rootComponent.children\">\n    <ng-container *ngFor=\"let subComponent of rootComponent.children; let i = index\">\n      <div\n        nz-col\n        [nzMd]=\"subComponent.span || 12\"\n        [nzXs]=\"24\"\n        [nzOffset]=\"subComponent.offset || 0\"\n        class=\"widget-form-list-item\"\n        [attr.data-id]=\"subComponent.id\"\n        [attr.id]=\"'widget-' + subComponent.id\"\n        style=\"display: inline-block; width: 100%; float: left\"\n      >\n        <div>\n          <r-widget-form-render [parentComponent]=\"rootComponent\" [component]=\"subComponent\"> </r-widget-form-render>\n        </div>\n      </div>\n    </ng-container>\n  </div>\n  <div *ngIf=\"showButton\">\n    <r-widget-button (resetForm)=\"_resetForm()\" (submitForm)=\"_submitForm()\"></r-widget-button>\n  </div>\n</form>\n", components: [{ type: RWidgetFormRenderComponent, selector: "[r-widget-form-render],r-widget-form-render", inputs: ["parentComponent", "component", "disabled", "showButton"] }, { type: RWidgetButtonComponent, selector: "r-widget-button,[r-widget-button]", outputs: ["submitForm", "resetForm"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i1.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon"], exportAs: ["nzForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetFormComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'r-widget-form',
                    templateUrl: './r-widget-form.component.html',
                    host: {
                        '[class.r-widget-form]': 'true'
                    }
                }]
        }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.FormBuilder }, { type: RWidgetFormService }, { type: i0.NgZone }]; }, propDecorators: { validateForm: [{
                type: ViewChild,
                args: ['validateForm', { static: false }]
            }], previewJson: [{
                type: Input
            }], submitForm: [{
                type: Output
            }], resetForm: [{
                type: Output
            }], formData: [{
                type: Input
            }], showButton: [{
                type: Input
            }], disabled: [{
                type: Input
            }] } });

class FormDesignerComponent {
    constructor(document) {
        this.document = document;
        this.logo = 'assets/logo.png';
        /** 所有控件 */
        this.componentGroups = [];
        /** 表单控件 */
        this.rootComponent = {
            id: 'widget-form',
            type: 'form',
            widget: 'layout-form',
            labelPosition: 'left',
            labelSuffix: ':',
            gutter: 0,
            children: [],
            // 表单独有配置
            formLayout: 'horizontal',
            formSize: 'default',
            formBtn: true,
            formBtnSubmit: true,
            formBtnSubmitText: '提交',
            formBtnReset: true,
            formBtnResetText: '重置',
            bordered: false
        };
        /** 历史记录 */
        this.history = {
            index: 0,
            maxStep: 20,
            steps: []
        };
        /** 工具条 */
        this.toolbar = ['import', 'generate', 'preview', 'previewBorderd', 'clear'];
    }
    ngOnInit() {
        this.componentGroups = [...componentGroups];
    }
    /** 运行 */
    run() { }
    /** 显示json */
    showJson() { }
    /** 导出vue文件 */
    download() { }
    /** 复制代码 */
    copy() { }
    /** 清空 */
    empty() { }
    handleSelectWidget(widget, i) {
        this.selectComponent = widget;
    }
    /** 撤销 */
    handleUndo() { }
    /** 重做 */
    handleRedo() { }
    /** 导入JSON */
    handleImportJson() {
        this.importJsonVisible = true;
    }
    /** 生成JSON */
    handleGenerateJson() {
        this.previewJson = null;
        this.selectComponent = null;
        this.previewJsonVisible = true;
        this.previewJson = JSON.stringify(this.rootComponent, null, '\t');
    }
    /** 预览 */
    handlePreview() {
        this.previewJson = null;
        this.selectComponent = null;
        this.previewFormVisible = true;
        this.previewJson = JSON.stringify(this.rootComponent, null, '\t');
    }
    /** 清空 */
    handleClear() {
        this.selectComponent = null;
        this.rootComponent.children = [];
    }
    /** 关闭导入json面板 */
    closeImportJson() {
        try {
            const component = JSON.parse(this.importJson);
            if (component) {
                this.rootComponent = component;
            }
        }
        catch (_a) { }
        this.importJsonVisible = false;
    }
    /** 获取当前json */
    getJson() {
        return (this.previewJson = JSON.stringify(this.rootComponent, null, '\t'));
    }
    /** 使用接口返回值渲染form组件 */
    importJsonByApi(val) {
        this.importJson = val;
        this.closeImportJson();
    }
    /** 关闭预览表单json面板 */
    closePreviewJson() {
        this.previewJsonVisible = false;
        this.previewJson = null;
    }
    /** 关闭预览表单面板 */
    closePreviewForm() {
        this.previewForm = null;
        this.previewFormVisible = false;
    }
    sfSubmit(value) {
        console.log(value, 'sfSubmit');
    }
    sfReset(value) {
        console.log(value, 'sfReset');
    }
}
FormDesignerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormDesignerComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
FormDesignerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: FormDesignerComponent, selector: "app-form-designer", ngImport: i0, template: "<div class=\"form-designer\">\n  <nz-layout>\n    <!-- \u5DE6\u4FA7\u63A7\u4EF6 -->\n    <nz-sider [nzWidth]=\"260\">\n      <div class=\"fields-list\">\n        <div\n          *ngFor=\"let componentGroup of componentGroups; let listIndex = index\"\n          id=\"components_{{ listIndex }}\"\n          dndDropZone\n          [dndAllowExternal]=\"true\"\n        >\n          <div class=\"field-title\">{{ componentGroup.label }}</div>\n\n          <div\n            *ngFor=\"let component of componentGroup.components; let index\"\n            class=\"ghost field-label\"\n            [dndDraggable]=\"component\"\n            dndEffectAllowed=\"copy\"\n          >\n            <a>\n              <i class=\"modules\" [ngClass]=\"component.icon\"></i>\n              <span>{{ component.label }}</span>\n            </a>\n          </div>\n        </div>\n      </div>\n    </nz-sider>\n\n    <!-- \u4E2D\u95F4\u5185\u5BB9 -->\n    <nz-layout class=\"widget-container\">\n      <!-- \u9876\u90E8\u5DE5\u5177\u6761 -->\n      <nz-header class=\"widget-container-header\">\n        <div *ngIf=\"undoRedo\">\n          <a nz-button nzType=\"link\" [disabled]=\"history.index === 0\" (click)=\"handleUndo()\">\u64A4\u9500</a>\n          <a nz-button nzType=\"link\" [disabled]=\"history.index === history.steps.length - 1\" (click)=\"handleUndo()\">\u91CD\u505A</a>\n        </div>\n        <div style=\"display: flex; align-items: center\">\n          <a *ngIf=\"toolbar.includes('import')\" nz-button nzType=\"link\" (click)=\"handleImportJson()\">\u5BFC\u5165JSON</a>\n          <a *ngIf=\"toolbar.includes('generate')\" nz-button nzType=\"link\" (click)=\"handleGenerateJson()\">\u751F\u6210JOSN</a>\n          <a *ngIf=\"toolbar.includes('preview')\" nz-button nzType=\"link\" (click)=\"handlePreview()\">\u9884\u89C8</a>\n          <a *ngIf=\"toolbar.includes('clear')\" nz-button nzType=\"link\" (click)=\"handleClear()\">\u6E05\u7A7A</a>\n        </div>\n      </nz-header>\n      <!-- \u4E2D\u95F4\u753B\u677F -->\n      <nz-content>\n        <!-- \u6E32\u67D3 -->\n        <div d-widget-form-render [component]=\"rootComponent\" [(selectComponent)]=\"selectComponent\" class=\"widget-form-container\"> </div>\n      </nz-content>\n    </nz-layout>\n\n    <!-- \u53F3\u4FA7\u914D\u7F6E -->\n    <nz-sider class=\"right-sider\" [nzWidth]=\"320\">\n      <nz-tabset>\n        <nz-tab nzTitle=\"\u7EC4\u4EF6\u5C5E\u6027\" nzActive>\n          <app-widget-config class=\"p-20\" [data]=\"selectComponent\" [defaultValues]=\"defaultValues\"></app-widget-config>\n        </nz-tab>\n        <nz-tab nzTitle=\"\u8868\u5355\u5C5E\u6027\"><app-form-config class=\"p-20\" [data]=\"rootComponent\"></app-form-config></nz-tab>\n      </nz-tabset>\n    </nz-sider>\n  </nz-layout>\n\n  <!-- \u5BFC\u5165json -->\n  <nz-drawer\n    [nzClosable]=\"true\"\n    [nzVisible]=\"importJsonVisible\"\n    [nzWidth]=\"'100%'\"\n    [nzBodyStyle]=\"{ overflow: 'auto' }\"\n    nzPlacement=\"right\"\n    nzTitle=\"\u5BFC\u5165JSON\"\n    (nzOnClose)=\"closeImportJson()\"\n  >\n    <ng-container *nzDrawerContent>\n      <textarea *ngIf=\"importJsonVisible\" nz-input [(ngModel)]=\"importJson\" [nzAutosize]=\"{ minRows: 10, maxRows: 50 }\"></textarea>\n    </ng-container>\n  </nz-drawer>\n\n  <!-- \u9884\u89C8json -->\n  <nz-drawer\n    [nzClosable]=\"true\"\n    [nzVisible]=\"previewJsonVisible\"\n    [nzWidth]=\"'100%'\"\n    [nzBodyStyle]=\"{ overflow: 'auto' }\"\n    nzPlacement=\"right\"\n    nzTitle=\"\u9884\u89C8JSON\"\n    (nzOnClose)=\"closePreviewJson()\"\n  >\n    <ng-container *nzDrawerContent>\n      <textarea *ngIf=\"previewJson\" nz-input [ngModel]=\"previewJson\" readonly [nzAutosize]=\"{ minRows: 10, maxRows: 50 }\"></textarea>\n    </ng-container>\n  </nz-drawer>\n\n  <!-- \u9884\u89C8\u8868\u5355 -->\n  <nz-drawer\n    [nzClosable]=\"true\"\n    [nzVisible]=\"previewFormVisible\"\n    [nzWidth]=\"'100%'\"\n    [nzBodyStyle]=\"{ overflow: 'auto' }\"\n    nzPlacement=\"right\"\n    nzTitle=\"\u9884\u89C8\u8868\u5355\"\n    (nzOnClose)=\"closePreviewForm()\"\n  >\n    <ng-container *nzDrawerContent>\n      <r-widget-form [previewJson]=\"previewJson\" (submitForm)=\"sfSubmit($event)\" (resetForm)=\"sfReset($event)\"></r-widget-form>\n    </ng-container>\n  </nz-drawer>\n</div>\n", styles: ["app-form-designer ::-webkit-scrollbar{width:0!important;height:0!important}app-form-designer ::-webkit-scrollbar-thumb{background-color:#fff!important}app-form-designer ::-webkit-scrollbar-thumb,app-form-designer ::-webkit-scrollbar-track{border-radius:10px!important;-webkit-box-shadow:inset 0 0 6px transparent!important}app-form-designer ::-webkit-scrollbar-track{background-color:transparent!important}app-form-designer nz-header,app-form-designer nz-content,app-form-designer nz-footer,app-form-designer nz-sider{background-color:#fff!important}app-form-designer nz-content{min-height:120px}app-form-designer nz-layout:last-child{margin:0}app-form-designer .right-sider .ant-tabs>.ant-tabs-nav .ant-tabs-nav-list{width:100%}app-form-designer .right-sider .ant-tabs>.ant-tabs-nav .ant-tabs-nav-list .ant-tabs-tab{width:50%}app-form-designer .right-sider .ant-tabs-tab .ant-tabs-tab-btn{margin:0 auto}app-form-designer .right-sider .p-20{display:block;padding:20px}app-form-designer .ant-tabs-nav{margin-bottom:0!important}app-form-designer .components-list{box-sizing:border-box;height:100%;padding:8px}app-form-designer .components-list .components-item{display:inline-block;width:48%;margin:1%;transition:transform 0ms!important}app-form-designer .form-designer .fields-list{text-align:left}app-form-designer .form-designer .fields-list .field-title{display:flex;width:100%;padding:8px 12px;font-size:13px}app-form-designer .form-designer .fields-list .field-label.w100{width:98%}app-form-designer .form-designer .fields-list .field-label{position:relative;left:0;display:block;float:left;width:48%;margin:1%;overflow:hidden;color:#333;font-size:12px;line-height:26px;white-space:nowrap;text-overflow:ellipsis;border:1px solid #f4f6fc}app-form-designer .form-designer .fields-list .field-label .modules{padding-right:5px}app-form-designer .form-designer .fields-list .field-label a{display:block;padding:0 10px;color:#333;background:#f4f6fc;border:1px solid #f4f6fc;cursor:move}app-form-designer .form-designer .fields-list .field-label:hover{color:#409eff;border:1px dashed #409eff}app-form-designer .form-designer .widget-container{border-right:1px solid #e0e0e0;border-left:1px solid #e0e0e0}app-form-designer .form-designer .widget-container .widget-container-header{display:flex;align-items:center;justify-content:space-between;height:46px!important;border-bottom:solid 2px #e4e7ed;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-align:center;-ms-flex-align:center}app-form-designer .form-designer .d-groups{position:relative;z-index:101;min-height:150px;padding-bottom:20px;overflow:auto;background:#fff;border:1px dashed #ccc}app-form-designer .widget-form-container{height:100%}app-form-designer .widget-form-container>.ant-form{height:100%}app-form-designer .widget-form-container .edit-label{width:100%}app-form-designer .widget-form-container .widget-form-list{height:100%;min-height:calc(100% - 45px);padding-bottom:50px;overflow:hidden;overflow-y:scroll}app-form-designer .widget-form-container .widget-form-list .widget-form-item{position:relative;min-height:55px;margin:0;padding:5px 10px 18px}app-form-designer .widget-form-container .widget-form-list .widget-form-item .widget-mask{position:absolute;top:0;z-index:100;width:100%;height:100%}app-form-designer .widget-form-container .widget-form-list .widget-form-item .widget-action-clone{position:absolute;right:80px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-list .widget-form-item .widget-action-delete{position:absolute;right:40px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-list .widget-form-item.active{background:#ecf5ff;border-left:3px solid #409eff}app-form-designer .widget-form-container .widget-form-list .widget-form-table{position:relative;float:left;width:100%;padding:2px}app-form-designer .widget-form-container .widget-form-list .widget-form-table:hover{background:#ecf8ff;cursor:move}app-form-designer .widget-form-container .widget-form-list .widget-form-table.active{background:#ecf5ff;border-left:3px solid #409eff}app-form-designer .widget-form-container .widget-form-table__content{width:100%;min-height:103px;padding:10px 5px;overflow-y:hidden;outline:1px dashed #ccc;outline-offset:-1px}app-form-designer .widget-form-container .widget-form-table__content .widget-action-clone{position:absolute;right:75px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-table__content .widget-action-delete{position:absolute;right:5px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-table__content .widget-action-clear{position:absolute;right:40px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item{position:relative;height:100%;padding:1px}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .ant-card{margin-bottom:0}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .ant-card .ant-card-head{padding:0;color:#909399;font-weight:500}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .ant-card .ant-card-head .ant-card-head-title{padding:12px 0}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .ant-card .ant-card-body{padding:12px 10px}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .widget-mask{position:absolute;top:0;z-index:100;width:100%;height:100%}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .widget-action-clone{position:absolute;right:40px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item .widget-action-delete{position:absolute;right:5px;bottom:-8px;z-index:102}app-form-designer .widget-form-container .widget-form-table__content .widget-form-table__item.active{outline:1px solid #409eff;outline-offset:-1px}.widget-form-item-placeholder{display:inline-block;width:100%;min-height:2px;background-color:#8bbb11}r-widget-form .formBordered .widget-form-list{border:1px solid rgba(0,0,0,.5)}r-widget-form .formBordered .widget-form-list .widget-form-item{margin-bottom:0}r-widget-form .widget-form-list{overflow:hidden}r-widget-form .widget-form-list .widget-form-item{position:relative;margin-bottom:10px}r-widget-form .widget-form-list .widget-form-item .ant-form-item-control:first-child:not([class^=\"ant-col-\"]):not([class*=\" ant-col-\"]){width:100%;padding:10px}r-widget-form .widget-form-list .widget-form-item.bordered .line-top{position:absolute;top:0;width:10000px;height:0;border-top:1px solid rgba(0,0,0,.5);transform:translateY(-50%)}r-widget-form .widget-form-list .widget-form-item.bordered .line-right{position:absolute;right:0;width:1px;height:10000px;border-left:1px solid rgba(0,0,0,.5);transform:translate(-50%)}r-widget-form .widget-form-list .widget-form-item.bordered .line-bottom{position:absolute;bottom:0;width:10000px;height:0;border-top:1px solid rgba(0,0,0,.5);transform:translateY(-50%)}r-widget-form .widget-form-list .widget-form-item.bordered .line-left{position:absolute;left:0;width:0;height:10000px;border-left:1px solid rgba(0,0,0,.5);transform:translate(-50%)}r-widget-form .widget-form-list .widget-form-item.bordered.parentGroup:before{border-color:transparent}r-widget-form .widget-form-list .widget-form-item.bordered.parentGroup:after{border-color:transparent}r-widget-form .widget-form-list nz-form-control{position:relative}r-widget-form .widget-form-list .r-d-groups{position:relative;background:#fff}r-widget-form .widget-form-list .r-d-title{position:relative;background:#fff}r-widget-form .widget-form-list .r-d-title.bordered{background:none}\n"], components: [{ type: i1$1.NzLayoutComponent, selector: "nz-layout", exportAs: ["nzLayout"] }, { type: i1$1.NzSiderComponent, selector: "nz-sider", inputs: ["nzWidth", "nzTheme", "nzCollapsedWidth", "nzBreakpoint", "nzZeroTrigger", "nzTrigger", "nzReverseArrow", "nzCollapsible", "nzCollapsed"], outputs: ["nzCollapsedChange"], exportAs: ["nzSider"] }, { type: i1$1.NzHeaderComponent, selector: "nz-header", exportAs: ["nzHeader"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { type: i1$1.NzContentComponent, selector: "nz-content", exportAs: ["nzContent"] }, { type: DWidgetFormRenderComponent, selector: "[d-widget-form-render]" }, { type: i23.NzTabSetComponent, selector: "nz-tabset", inputs: ["nzTabPosition", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact", "nzSelectedIndex", "nzTabBarExtraContent"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabset"] }, { type: i23.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { type: WidgetConfigComponent, selector: "app-widget-config", inputs: ["data", "defaultValues"] }, { type: FormConfigComponent, selector: "app-form-config", inputs: ["data"] }, { type: i21.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzPlacement", "nzMaskStyle", "nzBodyStyle", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible", "nzContent", "nzTitle", "nzFooter", "nzWrapClassName"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { type: RWidgetFormComponent, selector: "r-widget-form", inputs: ["previewJson", "formData", "showButton", "disabled"], outputs: ["submitForm", "resetForm"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: DndDropzoneDirective, selector: "[dndDropZone]", inputs: ["dndDropzone", "dndEffectAllowed", "dndAllowExternal", "dndHorizontal", "dndDragoverClass", "dndDropzoneDisabledClass", "dndDisableIf", "dndDisableDropIf"], outputs: ["dndDragover", "dndDrop"] }, { type: DndDraggableDirective, selector: "[dndDraggable]", inputs: ["dndDraggable", "dndEffectAllowed", "dndType", "dndDraggingClass", "dndDraggingSourceClass", "dndDraggableDisabledClass", "dndDragImageOffsetFunction", "dndDisableIf", "dndDisableDragIf"], outputs: ["dndStart", "dndDrag", "dndEnd", "dndMoved", "dndCopied", "dndLinked", "dndCanceled"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i21.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormDesignerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-form-designer',
                    templateUrl: './form-designer.component.html',
                    styleUrls: ['form-designer.component.less']
                }]
        }], ctorParameters: function () { return [{ type: Document, decorators: [{
                    type: Inject,
                    args: [DOCUMENT]
                }] }]; } });

class DndHandleDirective {
    constructor(parent) {
        this.draggable = true;
        parent.registerDragHandle(this);
    }
    onDragEvent(event) {
        event._dndUsingHandle = true;
    }
}
DndHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndHandleDirective, deps: [{ token: DndDraggableDirective }], target: i0.ɵɵFactoryTarget.Directive });
DndHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DndHandleDirective, selector: "[dndHandle]", host: { listeners: { "dragstart": "onDragEvent($event)", "dragend": "onDragEvent($event)" }, properties: { "attr.draggable": "this.draggable" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndHandleDirective, decorators: [{
            type: Directive,
            args: [{
                    // eslint-disable-next-line @angular-eslint/directive-selector
                    selector: "[dndHandle]"
                }]
        }], ctorParameters: function () { return [{ type: DndDraggableDirective }]; }, propDecorators: { draggable: [{
                type: HostBinding,
                args: ["attr.draggable"]
            }], onDragEvent: [{
                type: HostListener,
                args: ["dragstart", ["$event"]]
            }, {
                type: HostListener,
                args: ["dragend", ["$event"]]
            }] } });

class DndModule {
}
DndModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
DndModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndModule, declarations: [DndDraggableDirective,
        DndDropzoneDirective,
        DndHandleDirective,
        DndPlaceholderRefDirective,
        DndDragImageRefDirective], imports: [CommonModule], exports: [DndDraggableDirective,
        DndDropzoneDirective,
        DndHandleDirective,
        DndPlaceholderRefDirective,
        DndDragImageRefDirective] });
DndModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndModule, imports: [[
            CommonModule
        ]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DndModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule
                    ],
                    declarations: [
                        DndDraggableDirective,
                        DndDropzoneDirective,
                        DndHandleDirective,
                        DndPlaceholderRefDirective,
                        DndDragImageRefDirective
                    ],
                    exports: [
                        DndDraggableDirective,
                        DndDropzoneDirective,
                        DndHandleDirective,
                        DndPlaceholderRefDirective,
                        DndDragImageRefDirective
                    ]
                }]
        }] });

const SHARED_DELON_MODULES = [PageHeaderModule, STModule, SEModule, SVModule, ResultModule];

const SHARED_ZORRO_MODULES = [
    NzFormModule,
    NzGridModule,
    NzButtonModule,
    NzInputModule,
    NzInputNumberModule,
    NzAlertModule,
    NzProgressModule,
    NzSelectModule,
    NzAvatarModule,
    NzCardModule,
    NzDropDownModule,
    NzPopconfirmModule,
    NzTableModule,
    NzPopoverModule,
    NzDrawerModule,
    NzModalModule,
    NzTabsModule,
    NzToolTipModule,
    NzIconModule,
    NzCheckboxModule,
    NzSpinModule,
    NzCollapseModule,
    NzSwitchModule,
    NzRadioModule,
    NzLayoutModule,
    NzEmptyModule,
    NzDatePickerModule,
    NzTagModule,
    NzTimePickerModule,
    NzImageModule,
    NzSliderModule,
    NzRateModule,
    NzUploadModule
];

class EffectiveDisplayComponent {
    constructor() {
        // 数据类型
        this.type = DataPointDataType;
    }
    ngOnInit() { }
}
EffectiveDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EffectiveDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
EffectiveDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"effective\" *ngIf=\"config.dataType !== type.Timestamp\">{{ '\u6709\u6548\u503C' }} : {{ config.effective }}</div>\n<div class=\"effective\" *ngIf=\"config.dataType === type.Timestamp\"\n  >{{ '\u6709\u6548\u503C' }} : {{ config.effective | date: 'yyyy-MM-dd HH:mm:ss' }}</div\n>\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "date": i3.DatePipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EffectiveDisplayComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-effective-display',
                    templateUrl: './effective-display.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { config: [{
                type: Input
            }] } });

class LimitDisplayComponent {
    constructor() { }
    ngOnInit() { }
}
LimitDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LimitDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
LimitDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: LimitDisplayComponent, selector: "app-limit-display", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"limit\" *ngIf=\"config.displayLimits\">\n  <!-- \u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650 -->\n  <span\n    [ngClass]=\"{\n      hasEerror:\n        !config.isLimitOverrideAllowed &&\n        config.dataValue !== null &&\n        config.lowerLimit !== null &&\n        config.lowerLimit !== undefined &&\n        config.dataValue < config.lowerLimit\n    }\"\n    >{{ '\u4E0B\u9650\u503C' }} : {{ config.lowerLimit }}</span\n  >\n\n  <span\n    [ngClass]=\"{\n      hasEerror:\n        !config.isLimitOverrideAllowed &&\n        config.dataValue !== null &&\n        config.upperLimit !== null &&\n        config.upperLimit !== undefined &&\n        config.dataValue > config.upperLimit\n    }\"\n    >{{ '\u4E0A\u9650\u503C' }} : {{ config.upperLimit }}</span\n  >\n</div>\n", styles: ["\n      .hasEerror {\n        color: red;\n      }\n    "], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: LimitDisplayComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-limit-display',
                    templateUrl: './limit-display.component.html',
                    styles: [
                        `
      .hasEerror {
        color: red;
      }
    `
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { config: [{
                type: Input
            }] } });

class TagsSelectComponent {
    constructor() {
        // 数据类型
        this.type = DataPointDataType;
        this.inputVisible = false;
        this.inputValue = '';
        this._value = [];
        this.valueChange = new EventEmitter();
    }
    set dataType(val) {
        this.value = [];
        console.log(val, 'dataType');
        this._dataType = val;
    }
    get dataType() {
        return this._dataType;
    }
    set value(val) {
        this.writeValue(val);
    }
    get value() {
        return this._value;
    }
    ngOnInit() { }
    onChange(val) {
        this.valueChange.emit(this._value);
    }
    handleClose(removedTag) {
        this.value = this.value.filter(tag => tag !== removedTag);
    }
    sliceTagName(tag) {
        const isLongTag = tag.length > 20;
        return isLongTag ? `${tag.slice(0, 20)}...` : tag;
    }
    showInput() {
        this.inputVisible = true;
        setTimeout(() => {
            // console.log(this);
            if (this.inputElementRef instanceof NzInputNumberComponent) {
                this.inputElementRef.inputElement.nativeElement.focus();
            }
            else if (this.inputElementRef instanceof ElementRef) {
                this.inputElementRef.nativeElement.focus();
            }
            // this.inputElement.inputElement.nativeElement.focus();
        }, 500);
    }
    handleInputConfirm() {
        // todo 重复校验 更新时传入的是字符串数组
        if (this.inputValue && this.value.indexOf(this.inputValue) === -1) {
            this.value = [...this.value, this.inputValue];
        }
        this.inputValue = '';
        this.inputVisible = false;
        // this.showInput(); // 回车后继续
    }
    writeValue(obj) {
        this._value = obj;
        this.onChange(this._value);
    }
    registerOnChange(fn) {
        this.valueChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        // this.readonly = isDisabled;
    }
}
TagsSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TagsSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
TagsSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TagsSelectComponent, selector: "app-tags-select", inputs: { dataType: "dataType", name: "name", value: "value" }, outputs: { valueChange: "valueChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            multi: true,
            useExisting: forwardRef(() => TagsSelectComponent)
        }
    ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<nz-tag *ngFor=\"let tag of value; let i = index\" [nzMode]=\"'closeable'\" (nzOnClose)=\"handleClose(tag)\">\n  {{ sliceTagName(tag) }}\n</nz-tag>\n<nz-tag *ngIf=\"!inputVisible\" class=\"editable-tag\" nzNoAnimation (click)=\"showInput()\">\n  <i nz-icon nzType=\"plus\"></i>\n  {{ 'NewTag' }}\n</nz-tag>\n\n<!-- String -->\n<input\n  [name]=\"name + '_add'\"\n  #inputElement\n  nz-input\n  nzSize=\"small\"\n  *ngIf=\"inputVisible && dataType === type.String\"\n  type=\"text\"\n  [(ngModel)]=\"inputValue\"\n  style=\"width: 78px\"\n  (blur)=\"handleInputConfirm()\"\n  (keydown.enter)=\"handleInputConfirm()\"\n/>\n<!-- Float & auto-focus -->\n<nz-input-number\n  [name]=\"name + '_add'\"\n  #inputElement\n  nz-input\n  nzSize=\"small\"\n  *ngIf=\"inputVisible && (dataType === type.Float || dataType === type.Decimal)\"\n  [(ngModel)]=\"inputValue\"\n  style=\"width: 78px\"\n  (blur)=\"handleInputConfirm()\"\n  (keydown.enter)=\"handleInputConfirm()\"\n></nz-input-number>\n\n<!-- Integer -->\n<nz-input-number\n  [name]=\"name + '_add'\"\n  #inputElement\n  nz-input\n  [nzStep]=\"1\"\n  nzPrecisionMode=\"cut\"\n  [nzPrecision]=\"0\"\n  nzSize=\"small\"\n  *ngIf=\"inputVisible && dataType === type.Integer\"\n  [(ngModel)]=\"inputValue\"\n  style=\"width: 78px\"\n  (blur)=\"handleInputConfirm()\"\n  (keydown.enter)=\"handleInputConfirm()\"\n>\n</nz-input-number>\n\n<span>\u70B9\u51FB\u8F93\u5165,\u56DE\u8F66\u952E\u65B0\u589E</span>\n", styles: [""], components: [{ type: i34.NzTagComponent, selector: "nz-tag", inputs: ["nzMode", "nzChecked", "nzColor"], outputs: ["nzOnClose", "nzCheckedChange"], exportAs: ["nzTag"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i25.NzIconDirective, selector: "[nz-icon]", inputs: ["nzRotate", "nzSpin", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TagsSelectComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-tags-select',
                    templateUrl: './tags-select.component.html',
                    styleUrls: ['./tags-select.component.less'],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            multi: true,
                            useExisting: forwardRef(() => TagsSelectComponent)
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { inputElementRef: [{
                type: ViewChild,
                args: ['inputElement', { static: false }]
            }], dataType: [{
                type: Input
            }], name: [{
                type: Input
            }], value: [{
                type: Input
            }], valueChange: [{
                type: Output
            }] } });

class FixedDisplayComponent {
    constructor() { }
    ngOnInit() { }
}
FixedDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FixedDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
FixedDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: FixedDisplayComponent, selector: "app-fixed-display", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"fixedValue\"\n  >{{ '\u56FA\u5B9A\u503C' }} : <span [ngClass]=\"{ hasEerror: config.dataValue !== config.fixedValue }\">{{ config.fixedValue }}</span>\n</div>\n", styles: ["\n      .hasEerror {\n        color: red;\n      }\n    "], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FixedDisplayComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-fixed-display',
                    templateUrl: './fixed-display.component.html',
                    styles: [
                        `
      .hasEerror {
        color: red;
      }
    `
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { config: [{
                type: Input
            }] } });

class DatePickerBase {
    constructor() {
        /**
         * 是否显示清除按钮
         */
        this.nzAllowClear = true;
        /**
         * 自动获取焦点
         */
        this.nzAutoFocus = false;
        /**
         * 选择器
         */
        this.nzClassName = '';
        /**
         * 禁用
         */
        this.nzDisabled = false;
        /**
         * 额外的弹出日历样式
         */
        this.nzPopupStyle = {};
        /**
         * 输入框大小
         */
        this.nzSize = 'default';
        /**
         * 自定义输入框样式
         */
        this.nzStyle = {};
        /**
         * 弹出日历和关闭日历的回调
         */
        this.nzOnOpenChange = new EventEmitter();
    }
    /**
     * 控制弹层展开状态发生改变
     * @param event
     */
    onNzOnOpenChange(event) {
        this.nzOpen = event;
        this.nzOnOpenChange.emit(event);
    }
}
DatePickerBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DatePickerBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
DatePickerBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: DatePickerBase, inputs: { name: "name", nzAllowClear: "nzAllowClear", nzAutoFocus: "nzAutoFocus", nzClassName: "nzClassName", nzDateRender: "nzDateRender", nzDisabled: "nzDisabled", nzDisabledDate: "nzDisabledDate", nzLocale: "nzLocale", nzOpen: "nzOpen", nzPopupStyle: "nzPopupStyle", nzDropdownClassName: "nzDropdownClassName", nzSize: "nzSize", nzStyle: "nzStyle" }, outputs: { nzOnOpenChange: "nzOnOpenChange" }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DatePickerBase, decorators: [{
            type: Directive
        }], ctorParameters: function () { return []; }, propDecorators: { name: [{
                type: Input
            }], nzAllowClear: [{
                type: Input
            }], nzAutoFocus: [{
                type: Input
            }], nzClassName: [{
                type: Input
            }], nzDateRender: [{
                type: Input
            }], nzDisabled: [{
                type: Input
            }], nzDisabledDate: [{
                type: Input
            }], nzLocale: [{
                type: Input
            }], nzOpen: [{
                type: Input
            }], nzPopupStyle: [{
                type: Input
            }], nzDropdownClassName: [{
                type: Input
            }], nzSize: [{
                type: Input
            }], nzStyle: [{
                type: Input
            }], nzOnOpenChange: [{
                type: Output
            }] } });

class DatePickerComponent extends DatePickerBase {
    constructor() {
        super();
        /**
         * 展示的日期格式,见nzFormat特别说明
         */
        this.nzFormat = 'yyyy-MM-dd';
        /**
         * nzShowToday
         */
        this.nzShowToday = true;
        /**
         * 点击确定按钮的回调
         */
        this.nzOnOk = new EventEmitter();
        /**
         * 时间发生变化的回调
         */
        this.ngModelChange = new EventEmitter();
    }
    onNzOk(event) {
        if (event && moment.isDate(event)) {
            this.nzOnOk.emit(moment(event));
        }
        else {
            this.nzOnOk.emit(undefined);
        }
    }
    onNgModelChangeChange(event) {
        if (event && moment.isDate(event)) {
            this.ngModelChange.emit(moment(event));
        }
        else {
            this.ngModelChange.emit(undefined);
        }
    }
    registerOnChange(fn) {
        this.ngModelChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.nzDisabled = isDisabled;
    }
    writeValue(obj) {
        if (obj && moment.isMoment(obj)) {
            this.value = obj.toDate();
        }
        else {
            this.value = obj;
        }
    }
}
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DatePickerComponent, selector: "d-date-picker", inputs: { ngModel: "ngModel", nzDisabledTime: "nzDisabledTime", nzFormat: "nzFormat", nzRenderExtraFooter: "nzRenderExtraFooter", nzShowTime: "nzShowTime", nzShowToday: "nzShowToday", nzPlaceHolder: "nzPlaceHolder" }, outputs: { nzOnOk: "nzOnOk", ngModelChange: "ngModelChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DatePickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-date-picker\r\n        [nzAllowClear]=\"nzAllowClear\"\r\n        [nzAutoFocus]=\"nzAutoFocus\"\r\n        [nzDateRender]=\"nzDateRender\"\r\n        [nzDisabled]=\"nzDisabled\"\r\n        [nzDisabledDate]=\"nzDisabledDate\"\r\n        [nzLocale]=\"nzLocale\"\r\n        [nzPopupStyle]=\"nzPopupStyle\"\r\n        [nzDropdownClassName]=\"nzDropdownClassName\"\r\n        [nzSize]=\"nzSize\"\r\n\r\n\r\n        [nzDisabledTime]=\"nzDisabledTime\"\r\n        [nzFormat]=\"nzFormat\"\r\n        [nzRenderExtraFooter]=\"nzRenderExtraFooter\"\r\n        [nzShowTime]=\"nzShowTime\"\r\n        [nzShowToday]=\"nzShowToday\"\r\n        [nzPlaceHolder]=\"nzPlaceHolder\"\r\n\r\n        [(ngModel)]=\"value\"\r\n        (nzOnOk)=\"onNzOk($event)\"\r\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\r\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\">\r\n\r\n</nz-date-picker>\r\n", styles: [":host ::ng-deep{width:100%}nz-date-picker{width:100%}\n"], components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DatePickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'd-date-picker',
                    templateUrl: './date-picker.component.html',
                    styleUrls: ['./date-picker.component.less'],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DatePickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
                type: Input
            }], nzDisabledTime: [{
                type: Input
            }], nzFormat: [{
                type: Input
            }], nzRenderExtraFooter: [{
                type: Input
            }], nzShowTime: [{
                type: Input
            }], nzShowToday: [{
                type: Input
            }], nzPlaceHolder: [{
                type: Input
            }], nzOnOk: [{
                type: Output
            }], ngModelChange: [{
                type: Output
            }] } });

class YearPickerComponent extends DatePickerBase {
    constructor() {
        super();
        /**
         * 展示的日期格式,见nzFormat特别说明
         */
        this.nzFormat = 'yyyy';
        /**
         * 时间发生变化的回调
         */
        this.ngModelChange = new EventEmitter();
    }
    onNgModelChangeChange(event) {
        if (event && moment.isDate(event)) {
            this.ngModelChange.emit(moment(event));
        }
        else {
            this.ngModelChange.emit(undefined);
        }
    }
    registerOnChange(fn) {
        this.ngModelChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.nzDisabled = isDisabled;
    }
    writeValue(obj) {
        if (obj && moment.isMoment(obj)) {
            this.value = obj.toDate();
        }
        else {
            this.value = obj;
        }
    }
}
YearPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: YearPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
YearPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: YearPickerComponent, selector: "d-year-picker", inputs: { ngModel: "ngModel", nzFormat: "nzFormat", nzRenderExtraFooter: "nzRenderExtraFooter", nzPlaceHolder: "nzPlaceHolder" }, outputs: { ngModelChange: "ngModelChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => YearPickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-year-picker\r\n        [nzAllowClear]=\"nzAllowClear\"\r\n        [nzAutoFocus]=\"nzAutoFocus\"\r\n        [nzDisabled]=\"nzDisabled\"\r\n        [nzDisabledDate]=\"nzDisabledDate\"\r\n        [nzLocale]=\"nzLocale\"\r\n        [nzPopupStyle]=\"nzPopupStyle\"\r\n        [nzDropdownClassName]=\"nzDropdownClassName\"\r\n        [nzSize]=\"nzSize\"\r\n\r\n\r\n        [nzFormat]=\"nzFormat\"\r\n        [nzRenderExtraFooter]=\"nzRenderExtraFooter\"\r\n        [nzPlaceHolder]=\"nzPlaceHolder\"\r\n\r\n        [(ngModel)]=\"value\"\r\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\r\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\">\r\n\r\n</nz-year-picker>\r\n", components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1$2.NzYearPickerComponent, selector: "nz-year-picker", exportAs: ["nzYearPicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: YearPickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'd-year-picker',
                    templateUrl: './year-picker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => YearPickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
                type: Input
            }], nzFormat: [{
                type: Input
            }], nzRenderExtraFooter: [{
                type: Input
            }], nzPlaceHolder: [{
                type: Input
            }], ngModelChange: [{
                type: Output
            }] } });

class MonthPickerComponent extends DatePickerBase {
    constructor() {
        super();
        /**
         * 展示的日期格式,见nzFormat特别说明
         */
        this.nzFormat = 'yyyy-MM';
        /**
         * 时间发生变化的回调
         */
        this.ngModelChange = new EventEmitter();
    }
    onNgModelChangeChange(event) {
        if (event && moment.isDate(event)) {
            this.ngModelChange.emit(moment(event));
        }
        else {
            this.ngModelChange.emit(undefined);
        }
    }
    registerOnChange(fn) {
        this.ngModelChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.nzDisabled = isDisabled;
    }
    writeValue(obj) {
        if (obj && moment.isMoment(obj)) {
            this.value = obj.toDate();
        }
        else {
            this.value = obj;
        }
    }
}
MonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: MonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
MonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: MonthPickerComponent, selector: "d-month-picker", inputs: { ngModel: "ngModel", nzDisabledTime: "nzDisabledTime", nzFormat: "nzFormat", nzRenderExtraFooter: "nzRenderExtraFooter", nzPlaceHolder: "nzPlaceHolder" }, outputs: { ngModelChange: "ngModelChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => MonthPickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-month-picker\r\n        [nzAllowClear]=\"nzAllowClear\"\r\n        [nzAutoFocus]=\"nzAutoFocus\"\r\n        [nzDisabled]=\"nzDisabled\"\r\n        [nzDisabledDate]=\"nzDisabledDate\"\r\n        [nzLocale]=\"nzLocale\"\r\n        [nzPopupStyle]=\"nzPopupStyle\"\r\n        [nzDropdownClassName]=\"nzDropdownClassName\"\r\n        [nzSize]=\"nzSize\"\r\n\r\n        [nzFormat]=\"nzFormat\"\r\n        [nzRenderExtraFooter]=\"nzRenderExtraFooter\"\r\n        [nzPlaceHolder]=\"nzPlaceHolder\"\r\n\r\n        [(ngModel)]=\"value\"\r\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\r\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\">\r\n\r\n</nz-month-picker>\r\n", components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1$2.NzMonthPickerComponent, selector: "nz-month-picker", exportAs: ["nzMonthPicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: MonthPickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'd-month-picker',
                    templateUrl: './month-picker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => MonthPickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
                type: Input
            }], nzDisabledTime: [{
                type: Input
            }], nzFormat: [{
                type: Input
            }], nzRenderExtraFooter: [{
                type: Input
            }], nzPlaceHolder: [{
                type: Input
            }], ngModelChange: [{
                type: Output
            }] } });

class WeekPickerComponent extends DatePickerBase {
    constructor() {
        super();
        /**
         * 展示的日期格式,见nzFormat特别说明
         */
        this.nzFormat = 'yyyy-ww';
        /**
         * 时间发生变化的回调
         */
        this.ngModelChange = new EventEmitter();
    }
    onNgModelChangeChange(event) {
        if (event && moment.isDate(event)) {
            this.ngModelChange.emit(moment(event));
        }
        else {
            this.ngModelChange.emit(undefined);
        }
    }
    registerOnChange(fn) {
        this.ngModelChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.nzDisabled = isDisabled;
    }
    writeValue(obj) {
        if (obj && moment.isMoment(obj)) {
            this.value = obj.toDate();
        }
        else {
            this.value = obj;
        }
    }
}
WeekPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WeekPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
WeekPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: WeekPickerComponent, selector: "d-week-picker", inputs: { ngModel: "ngModel", nzFormat: "nzFormat", nzPlaceHolder: "nzPlaceHolder" }, outputs: { ngModelChange: "ngModelChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => WeekPickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-week-picker\r\n        [nzAllowClear]=\"nzAllowClear\"\r\n        [nzAutoFocus]=\"nzAutoFocus\"\r\n        [nzDisabled]=\"nzDisabled\"\r\n        [nzDisabledDate]=\"nzDisabledDate\"\r\n        [nzLocale]=\"nzLocale\"\r\n        [nzPopupStyle]=\"nzPopupStyle\"\r\n        [nzDropdownClassName]=\"nzDropdownClassName\"\r\n        [nzSize]=\"nzSize\"\r\n\r\n\r\n        [nzFormat]=\"nzFormat\"\r\n        [nzPlaceHolder]=\"nzPlaceHolder\"\r\n\r\n        [(ngModel)]=\"value\"\r\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\r\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\"\r\n>\r\n\r\n</nz-week-picker>\r\n", components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1$2.NzWeekPickerComponent, selector: "nz-week-picker", exportAs: ["nzWeekPicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WeekPickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'd-week-picker',
                    templateUrl: './week-picker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => WeekPickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
                type: Input
            }], nzFormat: [{
                type: Input
            }], nzPlaceHolder: [{
                type: Input
            }], ngModelChange: [{
                type: Output
            }] } });

class RangePickerComponent extends DatePickerBase {
    constructor() {
        super();
        /**
         * 展示的日期格式,见nzFormat特别说明
         */
        this.nzFormat = 'yyyy-MM-dd';
        /**
         * 点击确定按钮的回调
         */
        this.nzOnOk = new EventEmitter();
        /**
         * 时间发生变化的回调
         */
        this.ngModelChange = new EventEmitter();
        /**
         * 待选日期发生变化的回调
         */
        this.nzOnCalendarChange = new EventEmitter();
    }
    /**
     * 点击确定按钮的回调
     * @param event
     */
    onNzOk(event) {
        if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {
            const eArr = [moment(event[0]), moment(event[1])];
            this.nzOnOk.emit(eArr);
        }
        else {
            this.nzOnOk.emit(undefined);
        }
    }
    /**
     * 时间发生变化的回调
     * @param event
     */
    onNgModelChangeChange(event) {
        if (Array.isArray(event) && event.length === 2) {
            this.ngModelChange.emit(event.map(o => {
                return moment(o);
            }));
        }
        else {
            this.ngModelChange.emit(undefined);
        }
    }
    /**
     * 待选日期发生变化的回调
     * @param event
     */
    onNzOnCalendarChange(event) {
        if (Array.isArray(event) && event.length === 2) {
            this.nzOnCalendarChange.emit(event.map(o => {
                return moment(o);
            }));
        }
        else {
            this.nzOnCalendarChange.emit(undefined);
        }
    }
    registerOnChange(fn) {
        this.ngModelChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.nzDisabled = isDisabled;
    }
    writeValue(obj) {
        if (obj && Array.isArray(obj) && obj.length === 2 && moment.isMoment(obj[0]) && moment.isMoment(obj[1])) {
            this.value = [obj[0].toDate(), obj[1].toDate()];
        }
        else {
            this.value = obj;
        }
    }
}
RangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
RangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RangePickerComponent, selector: "d-range-picker", inputs: { ngModel: "ngModel", nzDisabledTime: "nzDisabledTime", nzFormat: "nzFormat", nzRanges: "nzRanges", nzRenderExtraFooter: "nzRenderExtraFooter", nzShowTime: "nzShowTime", nzPlaceHolder: "nzPlaceHolder" }, outputs: { nzOnOk: "nzOnOk", ngModelChange: "ngModelChange", nzOnCalendarChange: "nzOnCalendarChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RangePickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-range-picker\r\n  [nzAllowClear]='nzAllowClear'\r\n  [nzAutoFocus]='nzAutoFocus'\r\n  [nzDateRender]='nzDateRender'\r\n  [nzDisabled]='nzDisabled'\r\n  [nzDisabledDate]='nzDisabledDate'\r\n  [nzLocale]='nzLocale'\r\n  [nzPopupStyle]='nzPopupStyle'\r\n  [nzDropdownClassName]='nzDropdownClassName'\r\n  [nzSize]='nzSize'\r\n  [nzDisabledTime]='nzDisabledTime'\r\n  [nzFormat]='nzFormat'\r\n  [nzRenderExtraFooter]='nzRenderExtraFooter'\r\n  [nzShowTime]='nzShowTime'\r\n  [nzPlaceHolder]='nzPlaceHolder'\r\n  [nzRanges]='nzRanges'\r\n  [(ngModel)]='value'\r\n  (nzOnOk)='onNzOk($event)'\r\n  (ngModelChange)='onNgModelChangeChange($event)'\r\n  (nzOnCalendarChange)='onNzOnCalendarChange($event)'\r\n  (nzOnOpenChange)='onNzOnOpenChange($event)'\r\n>\r\n</nz-range-picker>\r\n", components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1$2.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RangePickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'd-range-picker',
                    templateUrl: './range-picker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RangePickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
                type: Input
            }], nzDisabledTime: [{
                type: Input
            }], nzFormat: [{
                type: Input
            }], nzRanges: [{
                type: Input
            }], nzRenderExtraFooter: [{
                type: Input
            }], nzShowTime: [{
                type: Input
            }], nzPlaceHolder: [{
                type: Input
            }], nzOnOk: [{
                type: Output
            }], ngModelChange: [{
                type: Output
            }], nzOnCalendarChange: [{
                type: Output
            }] } });

class TimePickerComponent extends DatePickerBase {
    constructor() {
        super();
        /**
         * 展示的日期格式,见nzFormat特别说明
         */
        this.nzFormat = 'HH:mm:ss';
        /**
         * 自动获取焦点
         */
        this.nzAutoFocus = false;
        /**
         * 隐藏禁止选择的选项
         */
        this.nzHideDisabledOptions = false;
        /**
         * 小时选项间隔
         */
        this.nzHourStep = 1;
        /**
         * 分钟选项间隔
         */
        this.nzMinuteStep = 1;
        /**
         * 	秒选项间隔
         */
        this.nzSecondStep = 1;
        /**
         * 面板是否打开,可双向绑定
         */
        this.nzOpen = false;
        /**
         * 弹出层类名
         */
        this.nzPopupClassName = '';
        /**
         * 当 [ngModel] 不存在时,可以设置面板打开时默认选中的值
         */
        this.nzDefaultOpenValue = new Date();
        /**
         * 使用12小时制,为true时format默认为h:mm:ss a
         */
        this.nzUse12Hours = false;
        /**
         * 点击确定按钮的回调
         */
        this.nzOnOk = new EventEmitter();
        /**
         * 时间发生变化的回调
         */
        this.ngModelChange = new EventEmitter();
        /**
         * 待选日期发生变化的回调
         */
        this.nzOnCalendarChange = new EventEmitter();
    }
    /**
     * 点击确定按钮的回调
     * @param event 数据
     */
    onNzOk(event) {
        if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {
            this.nzOnOk.emit(event.map(o => {
                return moment(o);
            }));
        }
        else {
            this.nzOnOk.emit(undefined);
        }
    }
    /**
     * 时间发生变化的回调
     * @param event 数据
     */
    onNgModelChangeChange(event) {
        if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {
            this.ngModelChange.emit(event.map(o => {
                return moment(o);
            }));
        }
        else {
            this.ngModelChange.emit(undefined);
        }
    }
    /**
     * 待选日期发生变化的回调
     * @param event 数据
     */
    onNzOnCalendarChange(event) {
        if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {
            this.nzOnCalendarChange.emit(event.map(o => {
                return moment(o);
            }));
        }
        else {
            this.nzOnCalendarChange.emit(undefined);
        }
    }
    registerOnChange(fn) {
        this.ngModelChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) {
        this.nzDisabled = isDisabled;
    }
    writeValue(obj) {
        if (obj && moment.isMoment(obj)) {
            this.value = obj.toDate();
        }
        else {
            this.value = obj;
        }
    }
}
TimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
TimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: TimePickerComponent, selector: "d-time-picker", inputs: { ngModel: "ngModel", nzDisabledTime: "nzDisabledTime", nzFormat: "nzFormat", nzRanges: "nzRanges", nzRenderExtraFooter: "nzRenderExtraFooter", nzShowTime: "nzShowTime", nzPlaceHolder: "nzPlaceHolder", nzAddOn: "nzAddOn", nzAutoFocus: "nzAutoFocus", nzDisabledHours: "nzDisabledHours", nzDisabledMinutes: "nzDisabledMinutes", nzDisabledSeconds: "nzDisabledSeconds", nzHideDisabledOptions: "nzHideDisabledOptions", nzHourStep: "nzHourStep", nzMinuteStep: "nzMinuteStep", nzSecondStep: "nzSecondStep", nzOpen: "nzOpen", nzPopupClassName: "nzPopupClassName", nzDefaultOpenValue: "nzDefaultOpenValue", nzUse12Hours: "nzUse12Hours" }, outputs: { nzOnOk: "nzOnOk", ngModelChange: "ngModelChange", nzOnCalendarChange: "nzOnCalendarChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => TimePickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-time-picker [nzAutoFocus]='nzAutoFocus' [nzDisabled]='nzDisabled' [nzSize]='nzSize' [nzFormat]='nzFormat'\r\n                [nzAddOn]='nzAddOn' [nzDisabledHours]='nzDisabledHours' [nzDisabledMinutes]='nzDisabledMinutes'\r\n                [nzDefaultOpenValue]='nzDefaultOpenValue' [nzDisabledSeconds]='nzDisabledSeconds'\r\n                [nzHideDisabledOptions]='nzHideDisabledOptions' [nzHourStep]='nzHourStep' [nzMinuteStep]='nzMinuteStep'\r\n                [nzSecondStep]='nzSecondStep' [nzOpen]='nzOpen' [nzPopupClassName]='nzPopupClassName'\r\n                [nzUse12Hours]='nzUse12Hours'\r\n                [nzPlaceHolder]='nzPlaceHolder' [(ngModel)]='value'\r\n                (ngModelChange)='onNgModelChangeChange($event)'\r\n                (nzOpenChange)='onNzOnOpenChange($event)'>\r\n</nz-time-picker>\r\n", components: [{ type: i35.NzTimePickerComponent, selector: "nz-time-picker", inputs: ["nzId", "nzSize", "nzHourStep", "nzMinuteStep", "nzSecondStep", "nzClearText", "nzNowText", "nzOkText", "nzPopupClassName", "nzPlaceHolder", "nzFormat", "nzOpen", "nzUse12Hours", "nzSuffixIcon", "nzHideDisabledOptions", "nzAllowEmpty", "nzDisabled", "nzAutoFocus", "nzBackdrop", "nzAddOn", "nzDefaultOpenValue", "nzDisabledHours", "nzDisabledMinutes", "nzDisabledSeconds"], outputs: ["nzOpenChange"], exportAs: ["nzTimePicker"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: TimePickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'd-time-picker',
                    templateUrl: './time-picker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => TimePickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{
                type: Input
            }], nzDisabledTime: [{
                type: Input
            }], nzFormat: [{
                type: Input
            }], nzRanges: [{
                type: Input
            }], nzRenderExtraFooter: [{
                type: Input
            }], nzShowTime: [{
                type: Input
            }], nzPlaceHolder: [{
                type: Input
            }], nzAddOn: [{
                type: Input
            }], nzAutoFocus: [{
                type: Input
            }], nzDisabledHours: [{
                type: Input
            }], nzDisabledMinutes: [{
                type: Input
            }], nzDisabledSeconds: [{
                type: Input
            }], nzHideDisabledOptions: [{
                type: Input
            }], nzHourStep: [{
                type: Input
            }], nzMinuteStep: [{
                type: Input
            }], nzSecondStep: [{
                type: Input
            }], nzOpen: [{
                type: Input
            }], nzPopupClassName: [{
                type: Input
            }], nzDefaultOpenValue: [{
                type: Input
            }], nzUse12Hours: [{
                type: Input
            }], nzOnOk: [{
                type: Output
            }], ngModelChange: [{
                type: Output
            }], nzOnCalendarChange: [{
                type: Output
            }] } });

const COMPONENTS$3 = [
    TagsSelectComponent,
    LimitDisplayComponent,
    EffectiveDisplayComponent,
    FixedDisplayComponent,
    DatePickerComponent,
    RangePickerComponent,
    YearPickerComponent,
    MonthPickerComponent,
    WeekPickerComponent,
    TimePickerComponent
];
class DSharedModule {
}
DSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
DSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSharedModule, declarations: [TagsSelectComponent,
        LimitDisplayComponent,
        EffectiveDisplayComponent,
        FixedDisplayComponent,
        DatePickerComponent,
        RangePickerComponent,
        YearPickerComponent,
        MonthPickerComponent,
        WeekPickerComponent,
        TimePickerComponent], imports: [CommonModule,
        FormsModule,
        ColorPickerModule, i2$3.PageHeaderModule, i3$3.STModule, i4$1.SEModule, i5.SVModule, i6.ResultModule, i1.NzFormModule, i3$2.NzGridModule, i3$1.NzButtonModule, i4.NzInputModule, i2$1.NzInputNumberModule, i12.NzAlertModule, i13.NzProgressModule, i2$2.NzSelectModule, i15.NzAvatarModule, i16.NzCardModule, i17.NzDropDownModule, i18.NzPopconfirmModule, i2$4.NzTableModule, i20.NzPopoverModule, i21.NzDrawerModule, i22.NzModalModule, i23.NzTabsModule, i24.NzToolTipModule, i25.NzIconModule, i4$2.NzCheckboxModule, i27.NzSpinModule, i28.NzCollapseModule, i29.NzSwitchModule, i3$4.NzRadioModule, i1$1.NzLayoutModule, i32.NzEmptyModule, i1$2.NzDatePickerModule, i34.NzTagModule, i35.NzTimePickerModule, i36.NzImageModule, i37.NzSliderModule, i38.NzRateModule, i39.NzUploadModule], exports: [TagsSelectComponent,
        LimitDisplayComponent,
        EffectiveDisplayComponent,
        FixedDisplayComponent,
        DatePickerComponent,
        RangePickerComponent,
        YearPickerComponent,
        MonthPickerComponent,
        WeekPickerComponent,
        TimePickerComponent] });
DSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSharedModule, imports: [[
            CommonModule,
            FormsModule,
            ColorPickerModule,
            ...SHARED_DELON_MODULES,
            ...SHARED_ZORRO_MODULES
            // WidgetFormControlsModule,
            // DynamicComponentModule
        ]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSharedModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule,
                        FormsModule,
                        ColorPickerModule,
                        ...SHARED_DELON_MODULES,
                        ...SHARED_ZORRO_MODULES
                        // WidgetFormControlsModule,
                        // DynamicComponentModule
                    ],
                    declarations: [...COMPONENTS$3],
                    exports: [...COMPONENTS$3]
                }]
        }] });

class DStringComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    ngAfterViewInit() { }
    configChange(config) { }
}
DStringComponent.KEY = 'd-string';
DStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DStringComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DStringComponent, selector: "app-d-string", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DStringComponent),
            multi: true
        }
    ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input\n  nz-input\n  #input=\"ngModel\"\n  [name]=\"config.name\"\n  [placeholder]=\"config.placeholder\"\n  [(ngModel)]=\"config.value\"\n  (ngModelChange)=\"onChange($event)\"\n  [required]=\"config.required\"\n/>\n", directives: [{ type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DStringComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-string',
                    templateUrl: './d-string.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DStringComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { input: [{
                type: ViewChild,
                args: ['input']
            }] } });

class DTextareaComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (typeof config.autosize !== 'string' && typeof config.autosize !== 'boolean') {
            config.autoszie = true;
        }
    }
}
DTextareaComponent.KEY = 'd-textarea';
DTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextareaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DTextareaComponent, selector: "app-d-textarea", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DTextareaComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<textarea\n  nz-input\n  [name]=\"config.name\"\n  [placeholder]=\"config.placeholder\"\n  [(ngModel)]=\"config.value\"\n  (ngModelChange)=\"onChange($event)\"\n  [nzAutosize]=\"config.autosize\"\n  [required]=\"config.required\"\n  style=\"height: 107px; min-height: 107px\"\n></textarea>\n", directives: [{ type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextareaComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-textarea',
                    templateUrl: './d-textarea.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DTextareaComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DNumberComponent extends DynamicComponentBase {
    // @HostBinding('style.float') float = 'left';
    constructor() {
        super();
    }
    configChange(config) {
        // if (typeof config.min !== 'number') {
        //   config.min = 0;
        // }
        // if (typeof config.max !== 'number') {
        //   config.max = 100;
        // }
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
    }
}
DNumberComponent.KEY = 'd-number';
DNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DNumberComponent, selector: "app-d-number", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DNumberComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-input-number\n  [name]=\"config.name\"\n  [nzPlaceHolder]=\"config.placeholder\"\n  [(ngModel)]=\"config.value\"\n  (ngModelChange)=\"onChange($event)\"\n  [nzMin]=\"config.min\"\n  [nzMax]=\"config.max\"\n  [nzStep]=\"config.step\"\n  [required]=\"config.required\"\n  style=\"width: 100%\"\n></nz-input-number>\n", components: [{ type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DNumberComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-number',
                    templateUrl: './d-number.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DNumberComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DRadioComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: '1',
                    label: '选项1'
                },
                {
                    value: '2',
                    label: '选项2'
                },
                {
                    value: '3',
                    label: '选项3'
                }
            ];
        }
    }
}
DRadioComponent.KEY = 'd-radio';
DRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRadioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DRadioComponent, selector: "app-d-radio", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DRadioComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-radio-group [name]=\"config.name\" [(ngModel)]=\"config.value\" (ngModelChange)=\"onChange($event)\" [required]=\"config.required\">\n  <ng-container *ngFor=\"let item of config.dataSource\">\n    <label nz-radio [nzValue]=\"item.value\">{{ item.label }}</label>\n  </ng-container>\n</nz-radio-group>\n", components: [{ type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRadioComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-radio',
                    templateUrl: './d-radio.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DRadioComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DCheckboxComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: '1',
                    label: '选项1'
                },
                {
                    value: '2',
                    label: '选项2'
                },
                {
                    value: '3',
                    label: '选项3'
                }
            ];
        }
        if (Array.isArray(config.dataSource) && config.value) {
            config.dataSource.map(data => {
                let valueArr = config.value.split(',');
                if (valueArr.includes(data.value)) {
                    data.checked = true;
                }
            });
        }
    }
}
DCheckboxComponent.KEY = 'd-checkbox';
DCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DCheckboxComponent, selector: "app-d-checkbox", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DCheckboxComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-checkbox-group [name]=\"config.name\" [(ngModel)]=\"config.dataSource\" (ngModelChange)=\"onChange($event)\" [required]=\"config.required\">\n</nz-checkbox-group>\n", components: [{ type: i4$2.NzCheckboxGroupComponent, selector: "nz-checkbox-group", inputs: ["nzDisabled"], exportAs: ["nzCheckboxGroup"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DCheckboxComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-checkbox',
                    templateUrl: './d-checkbox.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DCheckboxComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DSelectComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (typeof config.showSearch !== 'boolean') {
            config.showSearch = true;
        }
        if (typeof config.allowClear !== 'boolean') {
            config.allowClear = true;
        }
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: '1',
                    label: '选项1'
                },
                {
                    value: '2',
                    label: '选项2'
                },
                {
                    value: '3',
                    label: '选项3'
                }
            ];
        }
    }
}
DSelectComponent.KEY = 'd-select';
DSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DSelectComponent, selector: "app-d-select", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DSelectComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-select\n  [name]=\"config.name\"\n  [nzShowSearch]=\"config.showSearch\"\n  [nzAllowClear]=\"config.allowClear\"\n  [nzPlaceHolder]=\"config.placeholder\"\n  [(ngModel)]=\"config.value\"\n  (ngModelChange)=\"onChange($event)\"\n  [required]=\"config.required\"\n>\n  <ng-container *ngFor=\"let item of config.dataSource\">\n    <nz-option [nzLabel]=\"item.label\" [nzValue]=\"item.value\"></nz-option>\n  </ng-container>\n</nz-select>\n", components: [{ type: i2$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { type: i2$2.NzOptionComponent, selector: "nz-option", inputs: ["nzLabel", "nzValue", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSelectComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-select',
                    templateUrl: './d-select.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DSelectComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

// 名字改了  类名改了  后面的BaseId 和Id也根据Rdo来改
class GDatePipe$1 {
    transform(value, args) {
        if (value) {
            var timestamp = Date.parse(value);
            return moment(timestamp).format();
        }
    }
}
GDatePipe$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDatePipe$1, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
GDatePipe$1.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDatePipe$1, name: "datePipe" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDatePipe$1, decorators: [{
            type: Pipe,
            args: [{
                    name: 'datePipe'
                }]
        }] });

class DDateComponent extends DynamicComponentBase {
    // @HostBinding('style.float') float = 'left';
    constructor() {
        super();
        this.dateFormat = 'yyyy-MM-dd';
    }
    configChange(config) {
        if (typeof config.allowClear !== 'boolean') {
            config.allowClear = true;
        }
        // config.value = '2021-12-12';
        // if (config.value) {
        //   config.value = new Date();
        //   console.log(config.value, ' config.value');
        // }
    }
}
DDateComponent.KEY = 'd-date';
DDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DDateComponent, selector: "app-d-date", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DDateComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-date-picker\n  [name]=\"config.name\"\n  [nzPlaceHolder]=\"config.placeholder\"\n  [nzAllowClear]=\"config.allowClear\"\n  [ngModel]=\"config.value | datePipe\"\n  (ngModelChange)=\"onChange($event)\"\n  [nzFormat]=\"dateFormat\"\n  [required]=\"config.required\"\n  style=\"width: 100%\"\n></nz-date-picker>\n", components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "datePipe": GDatePipe$1 } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-date',
                    templateUrl: './d-date.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DDateComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

// 名字改了  类名改了  后面的BaseId 和Id也根据Rdo来改
class GDateRangePipe$1 {
    transform(value, args) {
        let start, end;
        if (value) {
            let valueArr = value.split(',');
            if (valueArr && valueArr[0]) {
                var timestamp = Date.parse(valueArr[0]);
                start = moment(timestamp).format();
            }
            if (valueArr && valueArr[1]) {
                var timestamp = Date.parse(valueArr[1]);
                end = moment(timestamp).format();
            }
            return [start, end];
        }
    }
}
GDateRangePipe$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDateRangePipe$1, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
GDateRangePipe$1.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDateRangePipe$1, name: "dateRangePipe" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDateRangePipe$1, decorators: [{
            type: Pipe,
            args: [{
                    name: 'dateRangePipe'
                }]
        }] });

class DDateRangeComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dateFormat = 'yyyy-MM-dd';
    }
    configChange(config) {
        if (typeof config.allowClear !== 'boolean') {
            config.allowClear = true;
        }
        // config.value = '2020-12-12,2020-12-20';
        // if (config.value && config.value.length) {
        //   let arr = config.value.split(',');
        //   config.value = arr;
        // }
        // if (config.placeholder && config.placeholder.length) {
        //   let arr = config.placeholder.split(',');
        //   config.placeholder = arr;
        // }
    }
}
DDateRangeComponent.KEY = 'd-date-range';
DDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DDateRangeComponent, selector: "app-d-date-range", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DDateRangeComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-range-picker\n  [name]=\"config.name\"\n  [nzPlaceHolder]=\"config.placeholder\"\n  [nzAllowClear]=\"config.allowClear\"\n  [ngModel]=\"config.value | dateRangePipe\"\n  (ngModelChange)=\"onChange($event)\"\n  [nzFormat]=\"dateFormat\"\n  [required]=\"config.required\"\n  style=\"width: 100%\"\n></nz-range-picker>\n", components: [{ type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1$2.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "dateRangePipe": GDateRangePipe$1 } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateRangeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-date-range',
                    templateUrl: './d-date-range.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DDateRangeComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DStringConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        // if (!Array.isArray(config.value)) {
        //   config.value = [];
        // }
    }
    ngOnInit() { }
}
DStringConfigComponent.KEY = 'd-string-config';
DStringConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DStringConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DStringConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DStringConfigComponent, selector: "app-d-string-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DStringConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-string-config',
                    templateUrl: './d-string-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DTextareaConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DTextareaConfigComponent.KEY = 'd-textarea-config';
DTextareaConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextareaConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DTextareaConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DTextareaConfigComponent, selector: "app-d-textarea-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextareaConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-textarea-config',
                    templateUrl: './d-textarea-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DRadioConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
    addRow() {
        const newRow = {
            value: '',
            label: ''
        };
        this.config.dataSource = [...this.config.dataSource, newRow];
    }
    deleteRow(i) {
        this.config.dataSource.splice(i, 1);
    }
}
DRadioConfigComponent.KEY = 'd-radio-config';
DRadioConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRadioConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DRadioConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DRadioConfigComponent, selector: "app-d-radio-config", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"config\">\n  <nz-form-item *ngIf=\"config\">\n    <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n    <nz-form-control>\n      <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n    </nz-form-control>\n  </nz-form-item>\n\n  <nz-form-item>\n    <nz-form-label [nzSpan]=\"6\">\u5B57\u5178\u914D\u7F6E</nz-form-label>\n    <nz-form-control nzSpan=\"24\">\n      <nz-table nzSize=\"small\">\n        <ng-container *ngIf=\"data.dataSource.length\">\n          <tr *ngFor=\"let item of data.dataSource; let i = index\">\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'label' + i\" type=\"text\" [(ngModel)]=\"item.label\" />\n            </td>\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'value' + i\" type=\"text\" [(ngModel)]=\"item.value\" />\n            </td>\n            <!-- <td>\n                        <input nz-input #nameInput=\"ngModel\" [name]=\"'desc' + i\" type=\"text\" [(ngModel)]=\"item.desc\" />\n                    </td> -->\n            <td>\n              <button nz-button type=\"link\" (click)=\"deleteRow(i)\">\u5220\u9664</button>\n            </td>\n          </tr>\n        </ng-container>\n      </nz-table>\n      <button nz-button (click)=\"addRow()\">\u6DFB\u52A0\u5217</button>\n    </nz-form-control>\n  </nz-form-item>\n</ng-container>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$4.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzPaginationPosition", "nzScroll", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange"], exportAs: ["nzTable"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { type: i2$4.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRadioConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-radio-config',
                    templateUrl: './d-radio-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DCheckboxConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
    addRow() {
        const newRow = {
            value: '',
            label: ''
        };
        this.config.dataSource = [...this.config.dataSource, newRow];
    }
    deleteRow(i) {
        this.config.dataSource.splice(i, 1);
    }
}
DCheckboxConfigComponent.KEY = 'd-checkbox-config';
DCheckboxConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DCheckboxConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DCheckboxConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DCheckboxConfigComponent, selector: "app-d-checkbox-config", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"config\">\n  <nz-form-item *ngIf=\"config\">\n    <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n    <nz-form-control>\n      <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n    </nz-form-control>\n  </nz-form-item>\n\n  <nz-form-item>\n    <nz-form-label [nzSpan]=\"6\">\u5B57\u5178\u914D\u7F6E</nz-form-label>\n    <nz-form-control nzSpan=\"24\">\n      <nz-table nzSize=\"small\">\n        <ng-container *ngIf=\"data.dataSource.length\">\n          <tr *ngFor=\"let item of data.dataSource; let i = index\">\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'label' + i\" type=\"text\" [(ngModel)]=\"item.label\" />\n            </td>\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'value' + i\" type=\"text\" [(ngModel)]=\"item.value\" />\n            </td>\n            <!-- <td>\n                      <input nz-input #nameInput=\"ngModel\" [name]=\"'desc' + i\" type=\"text\" [(ngModel)]=\"item.desc\" />\n                  </td> -->\n            <td>\n              <button nz-button type=\"link\" (click)=\"deleteRow(i)\">\u5220\u9664</button>\n            </td>\n          </tr>\n        </ng-container>\n      </nz-table>\n      <button nz-button (click)=\"addRow()\">\u6DFB\u52A0\u5217</button>\n    </nz-form-control>\n  </nz-form-item>\n</ng-container>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$4.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzPaginationPosition", "nzScroll", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange"], exportAs: ["nzTable"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { type: i2$4.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DCheckboxConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-checkbox-config',
                    templateUrl: './d-checkbox-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DNumberConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        // if (!Array.isArray(config.value)) {
        //   config.value = [];
        // }
    }
}
DNumberConfigComponent.KEY = 'd-number-config';
DNumberConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DNumberConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DNumberConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DNumberConfigComponent, selector: "app-d-number-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <nz-input-number #nameInput=\"ngModel\" name=\"value\" type=\"number\" [(ngModel)]=\"config.value\" style=\"width: 100%\"></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DNumberConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-number-config',
                    templateUrl: './d-number-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DDateConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DDateConfigComponent.KEY = 'd-date-config';
DDateConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DDateConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DDateConfigComponent, selector: "app-d-date-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-date-config',
                    templateUrl: './d-date-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DDateRangeConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        // if (!Array.isArray(config.value)) {
        //   config.value = [];
        // }
    }
}
DDateRangeConfigComponent.KEY = 'd-date-range-config';
DDateRangeConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateRangeConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DDateRangeConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DDateRangeConfigComponent, selector: "app-d-date-range-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DDateRangeConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-date-range-config',
                    templateUrl: './d-date-range-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DSelectConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
    addRow() {
        const newRow = {
            value: '',
            label: ''
        };
        this.config.dataSource = [...this.config.dataSource, newRow];
    }
    deleteRow(i) {
        this.config.dataSource.splice(i, 1);
    }
}
DSelectConfigComponent.KEY = 'd-select-config';
DSelectConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSelectConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DSelectConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DSelectConfigComponent, selector: "app-d-select-config", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"config\">\n  <nz-form-item *ngIf=\"config\">\n    <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n    <nz-form-control>\n      <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n    </nz-form-control>\n  </nz-form-item>\n\n  <nz-form-item>\n    <nz-form-label [nzSpan]=\"6\">\u5B57\u5178\u914D\u7F6E</nz-form-label>\n    <nz-form-control nzSpan=\"24\">\n      <nz-table nzSize=\"small\">\n        <ng-container *ngIf=\"data.dataSource.length\">\n          <tr *ngFor=\"let item of data.dataSource; let i = index\">\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'label' + i\" type=\"text\" [(ngModel)]=\"item.label\" />\n            </td>\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'value' + i\" type=\"text\" [(ngModel)]=\"item.value\" />\n            </td>\n            <!-- <td>\n                    <input nz-input #nameInput=\"ngModel\" [name]=\"'desc' + i\" type=\"text\" [(ngModel)]=\"item.desc\" />\n                </td> -->\n            <td>\n              <button nz-button type=\"link\" (click)=\"deleteRow(i)\">\u5220\u9664</button>\n            </td>\n          </tr>\n        </ng-container>\n      </nz-table>\n      <button nz-button (click)=\"addRow()\">\u6DFB\u52A0\u5217</button>\n    </nz-form-control>\n  </nz-form-item>\n</ng-container>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$4.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzPaginationPosition", "nzScroll", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange"], exportAs: ["nzTable"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { type: i2$4.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSelectConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-select-config',
                    templateUrl: './d-select-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConNumberDecimalComponent extends DynamicComponentBase {
    constructor() {
        super();
        // @HostBinding('style.float') float = 'left';
        this.ruleType = ValidationRuleType;
    }
    configChange(config) {
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
        if (!config.effective) {
            config.effective = [];
        }
    }
}
DConNumberDecimalComponent.KEY = 'd-con-number-decimal';
DConNumberDecimalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberDecimalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConNumberDecimalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConNumberDecimalComponent, selector: "app-d-con-number-decimal", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConNumberDecimalComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <nz-input-number\n      [name]=\"config.name\"\n      [nzPlaceHolder]=\"config.placeholder\"\n      [(ngModel)]=\"config.value\"\n      (ngModelChange)=\"onChange($event)\"\n      [nzPrecision]=\"config.precision\"\n      nzPrecisionMode=\"cut\"\n      [nzMin]=\"config.min\"\n      [nzMax]=\"config.max\"\n      [nzStep]=\"config.step\"\n      style=\"width: 100%\"\n      [required]=\"config.required\"\n    ></nz-input-number>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Limit\">\n    <app-limit-display [config]=\"config\"> </app-limit-display>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Effective && config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: LimitDisplayComponent, selector: "app-limit-display", inputs: ["config"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberDecimalComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-number-decimal',
                    templateUrl: './d-con-number-decimal.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConNumberDecimalComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DConNumberFloatComponent extends DynamicComponentBase {
    constructor() {
        super();
        // @HostBinding('style.float') float = 'left';
        this.ruleType = ValidationRuleType;
    }
    configChange(config) {
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
        if (!config.effective) {
            config.effective = [];
        }
    }
}
DConNumberFloatComponent.KEY = 'd-con-number-float';
DConNumberFloatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberFloatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConNumberFloatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConNumberFloatComponent, selector: "app-d-con-number-float", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConNumberFloatComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <nz-input-number\n      [name]=\"config.name\"\n      [nzPlaceHolder]=\"config.placeholder\"\n      [(ngModel)]=\"config.value\"\n      (ngModelChange)=\"onChange($event)\"\n      [nzPrecision]=\"config.precision\"\n      nzPrecisionMode=\"cut\"\n      [nzMin]=\"config.min\"\n      [nzMax]=\"config.max\"\n      [nzStep]=\"config.step\"\n      style=\"width: 100%\"\n      [required]=\"config.required\"\n    ></nz-input-number>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Limit\">\n    <app-limit-display [config]=\"config\"> </app-limit-display>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Effective && config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: LimitDisplayComponent, selector: "app-limit-display", inputs: ["config"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberFloatComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-number-float',
                    templateUrl: './d-con-number-float.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConNumberFloatComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DConNumberIntegerComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.ruleType = ValidationRuleType;
    }
    configChange(config) {
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
        if (!config.effective) {
            config.effective = [];
        }
    }
}
DConNumberIntegerComponent.KEY = 'd-con-number-integer';
DConNumberIntegerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberIntegerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConNumberIntegerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConNumberIntegerComponent, selector: "app-d-con-number-integer", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConNumberIntegerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <nz-input-number\n      [name]=\"config.name\"\n      [nzPlaceHolder]=\"config.placeholder\"\n      [(ngModel)]=\"config.value\"\n      (ngModelChange)=\"onChange($event)\"\n      [nzPrecision]=\"0\"\n      nzPrecisionMode=\"cut\"\n      [nzMin]=\"config.min\"\n      [nzMax]=\"config.max\"\n      [nzStep]=\"config.step\"\n      style=\"width: 100%\"\n      [required]=\"config.required\"\n    ></nz-input-number>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Limit\">\n    <app-limit-display [config]=\"config\"> </app-limit-display>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Effective && config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: LimitDisplayComponent, selector: "app-limit-display", inputs: ["config"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberIntegerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-number-integer',
                    templateUrl: './d-con-number-integer.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConNumberIntegerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DConNumberDecimalConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
        this.ruleType = ValidationRuleType;
        this.rule = this.ruleType.Limit;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.Decimal;
    }
    configChange(config) {
        this.typeChangeConfig(config.ruleType);
    }
    typeChangeConfig(obj) {
        this.rule = obj;
    }
    /**
     *
     * @param obj 类型切换
     */
    typeChange(obj) {
        this.rule = obj;
        if (obj === this.ruleType.Limit) {
            this.config.effective = [];
        }
        else if (obj === this.ruleType.Effective) {
            this.config.displayLimits = undefined; // 显示上下限
            this.config.lowerLimit = undefined; // 下限
            this.config.upperLimit = undefined; // 上限
            this.config.isLimitOverrideAllowed = undefined; // 是否允许超上下限
        }
    }
}
DConNumberDecimalConfigComponent.KEY = 'd-con-number-decimal-config';
DConNumberDecimalConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberDecimalConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConNumberDecimalConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConNumberDecimalConfigComponent, selector: "app-d-con-number-decimal-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      #nameInput=\"ngModel\"\n      name=\"value\"\n      type=\"number\"\n      [(ngModel)]=\"config.value\"\n      [nzPrecision]=\"0\"\n      nzPrecisionMode=\"cut\"\n      style=\"width: 100%\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n<!-- \u6821\u9A8C\u65B9\u5F0F -->\n<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u6821\u9A8C\u65B9\u5F0F</nz-form-label>\n  <nz-form-control>\n    <nz-radio-group name=\"validationRuleType\" [(ngModel)]=\"config.ruleType\" (ngModelChange)=\"typeChange($event)\" style=\"width: 100%\">\n      <label nz-radio nzValue=\"Limit\">\u4E0A\u4E0B\u9650</label>\n      <label nz-radio nzValue=\"Effective\">\u6709\u6548\u503C</label>\n    </nz-radio-group>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u662F\u5426\u663E\u793A\u4E0A\u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u663E\u793A\u4E0A\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <label nz-checkbox #editionNameInput=\"ngModel\" name=\"DisplayLimits\" [(ngModel)]=\"config.displayLimits\"></label>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <label nz-checkbox #editionNameInput=\"ngModel\" name=\"IsLimitOverrideAllowed\" [(ngModel)]=\"config.isLimitOverrideAllowed\"></label>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      class=\"labelStyle\"\n      #editionNameInput=\"ngModel\"\n      [nzStep]=\"1\"\n      name=\"LowerLimit\"\n      [nzMax]=\"config.upperLimit\"\n      [(ngModel)]=\"config.lowerLimit\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u4E0A\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u4E0A\u9650 </nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      class=\"labelStyle\"\n      #editionNameInput=\"ngModel\"\n      [nzStep]=\"1\"\n      [nzMin]=\"config.lowerLimit\"\n      name=\"UpperLimit\"\n      [(ngModel)]=\"config.upperLimit\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u6709\u6548\u503C -->\n<nz-form-item *ngIf=\"rule == ruleType.Effective\">\n  <nz-form-label [nzSpan]=\"6\">\u6709\u6548\u503C</nz-form-label>\n  <nz-form-control>\n    <app-tags-select name=\"effectiveSelect\" ngDefaultControl [dataType]=\"config.dataType\" [(ngModel)]=\"config.effective\"></app-tags-select>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { type: i4$2.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: TagsSelectComponent, selector: "app-tags-select", inputs: ["dataType", "name", "value"], outputs: ["valueChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberDecimalConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-number-decimal-config',
                    templateUrl: './d-con-number-decimal-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConNumberFloatConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
        this.ruleType = ValidationRuleType;
        this.rule = this.ruleType.Limit;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.Float;
    }
    configChange(config) {
        this.typeChangeConfig(config.ruleType);
    }
    typeChangeConfig(obj) {
        this.rule = obj;
    }
    /**
     *
     * @param obj 类型切换
     */
    typeChange(obj) {
        this.rule = obj;
        if (obj === this.ruleType.Limit) {
            this.config.effective = [];
        }
        else if (obj === this.ruleType.Effective) {
            this.config.displayLimits = undefined; // 显示上下限
            this.config.lowerLimit = undefined; // 下限
            this.config.upperLimit = undefined; // 上限
            this.config.isLimitOverrideAllowed = undefined; // 是否允许超上下限
        }
    }
}
DConNumberFloatConfigComponent.KEY = 'd-con-number-float-config';
DConNumberFloatConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberFloatConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConNumberFloatConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConNumberFloatConfigComponent, selector: "app-d-number-float-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      #nameInput=\"ngModel\"\n      name=\"value\"\n      type=\"number\"\n      [(ngModel)]=\"config.value\"\n      [nzPrecision]=\"0\"\n      nzPrecisionMode=\"cut\"\n      style=\"width: 100%\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n<!-- \u6821\u9A8C\u65B9\u5F0F -->\n<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u6821\u9A8C\u65B9\u5F0F</nz-form-label>\n  <nz-form-control>\n    <nz-radio-group name=\"validationRuleType\" [(ngModel)]=\"config.ruleType\" (ngModelChange)=\"typeChange($event)\" style=\"width: 100%\">\n      <label nz-radio nzValue=\"Limit\">\u4E0A\u4E0B\u9650</label>\n      <label nz-radio nzValue=\"Effective\">\u6709\u6548\u503C</label>\n    </nz-radio-group>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u662F\u5426\u663E\u793A\u4E0A\u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u663E\u793A\u4E0A\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <label nz-checkbox #editionNameInput=\"ngModel\" name=\"DisplayLimits\" [(ngModel)]=\"config.displayLimits\"></label>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <label nz-checkbox #editionNameInput=\"ngModel\" name=\"IsLimitOverrideAllowed\" [(ngModel)]=\"config.isLimitOverrideAllowed\"></label>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      class=\"labelStyle\"\n      #editionNameInput=\"ngModel\"\n      [nzStep]=\"1\"\n      name=\"LowerLimit\"\n      [nzMax]=\"config.upperLimit\"\n      [(ngModel)]=\"config.lowerLimit\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u4E0A\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u4E0A\u9650 </nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      class=\"labelStyle\"\n      #editionNameInput=\"ngModel\"\n      [nzStep]=\"1\"\n      [nzMin]=\"config.lowerLimit\"\n      name=\"UpperLimit\"\n      [(ngModel)]=\"config.upperLimit\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u6709\u6548\u503C -->\n<nz-form-item *ngIf=\"rule == ruleType.Effective\">\n  <nz-form-label [nzSpan]=\"6\">\u6709\u6548\u503C</nz-form-label>\n  <nz-form-control>\n    <app-tags-select name=\"effectiveSelect\" ngDefaultControl [dataType]=\"config.dataType\" [(ngModel)]=\"config.effective\"></app-tags-select>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { type: i4$2.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: TagsSelectComponent, selector: "app-tags-select", inputs: ["dataType", "name", "value"], outputs: ["valueChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberFloatConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-number-float-config',
                    templateUrl: './d-number-float-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConNumberIntegerConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
        this.ruleType = ValidationRuleType;
        this.rule = this.ruleType.Limit;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.Integer;
    }
    configChange(config) {
        this.typeChangeConfig(config.ruleType);
    }
    typeChangeConfig(obj) {
        this.rule = obj;
    }
    /**
     *
     * @param obj 类型切换
     */
    typeChange(obj) {
        this.rule = obj;
        if (obj === this.ruleType.Limit) {
            this.config.effective = [];
        }
        else if (obj === this.ruleType.Effective) {
            this.config.displayLimits = undefined; // 显示上下限
            this.config.lowerLimit = undefined; // 下限
            this.config.upperLimit = undefined; // 上限
            this.config.isLimitOverrideAllowed = undefined; // 是否允许超上下限
        }
    }
}
DConNumberIntegerConfigComponent.KEY = 'd-con-number-integer-config';
DConNumberIntegerConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberIntegerConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConNumberIntegerConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConNumberIntegerConfigComponent, selector: "app-d-con-number-integer-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      #nameInput=\"ngModel\"\n      name=\"value\"\n      type=\"number\"\n      [(ngModel)]=\"config.value\"\n      [nzPrecision]=\"0\"\n      nzPrecisionMode=\"cut\"\n      style=\"width: 100%\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n<!-- \u6821\u9A8C\u65B9\u5F0F -->\n<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u6821\u9A8C\u65B9\u5F0F</nz-form-label>\n  <nz-form-control>\n    <nz-radio-group name=\"validationRuleType\" [(ngModel)]=\"config.ruleType\" (ngModelChange)=\"typeChange($event)\" style=\"width: 100%\">\n      <label nz-radio nzValue=\"Limit\">\u4E0A\u4E0B\u9650</label>\n      <label nz-radio nzValue=\"Effective\">\u6709\u6548\u503C</label>\n    </nz-radio-group>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u662F\u5426\u663E\u793A\u4E0A\u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u663E\u793A\u4E0A\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <label nz-checkbox #editionNameInput=\"ngModel\" name=\"DisplayLimits\" [(ngModel)]=\"config.displayLimits\"></label>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u662F\u5426\u5141\u8BB8\u8D85\u4E0A\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <label nz-checkbox #editionNameInput=\"ngModel\" name=\"IsLimitOverrideAllowed\" [(ngModel)]=\"config.isLimitOverrideAllowed\"></label>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u4E0B\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u4E0B\u9650</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      class=\"labelStyle\"\n      #editionNameInput=\"ngModel\"\n      [nzStep]=\"1\"\n      [nzPrecision]=\"0\"\n      nzPrecisionMode=\"cut\"\n      name=\"LowerLimit\"\n      [nzMax]=\"config.upperLimit\"\n      [(ngModel)]=\"config.lowerLimit\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u4E0A\u9650 -->\n<nz-form-item *ngIf=\"rule == ruleType.Limit\">\n  <nz-form-label [nzSpan]=\"6\">\u4E0A\u9650 </nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      class=\"labelStyle\"\n      #editionNameInput=\"ngModel\"\n      [nzStep]=\"1\"\n      [nzMin]=\"config.lowerLimit\"\n      nzPrecisionMode=\"cut\"\n      [nzPrecision]=\"0\"\n      name=\"UpperLimit\"\n      [(ngModel)]=\"config.upperLimit\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u6709\u6548\u503C -->\n<nz-form-item *ngIf=\"rule == ruleType.Effective\">\n  <nz-form-label [nzSpan]=\"6\">\u6709\u6548\u503C</nz-form-label>\n  <nz-form-control>\n    <app-tags-select name=\"effectiveSelect\" ngDefaultControl [dataType]=\"config.dataType\" [(ngModel)]=\"config.effective\"></app-tags-select>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { type: i4$2.NzCheckboxComponent, selector: "[nz-checkbox]", inputs: ["nzValue", "nzAutoFocus", "nzDisabled", "nzIndeterminate", "nzChecked", "nzId"], outputs: ["nzCheckedChange"], exportAs: ["nzCheckbox"] }, { type: TagsSelectComponent, selector: "app-tags-select", inputs: ["dataType", "name", "value"], outputs: ["valueChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConNumberIntegerConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-number-integer-config',
                    templateUrl: './d-con-number-integer-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConStringComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!config.effective) {
            config.effective = [];
        }
    }
}
DConStringComponent.KEY = 'd-con-string';
DConStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConStringComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConStringComponent, selector: "app-d-con-string", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConStringComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <input\n      nz-input\n      [name]=\"config.name\"\n      [placeholder]=\"config.placeholder\"\n      [(ngModel)]=\"config.value\"\n      (ngModelChange)=\"onChange($event)\"\n      [required]=\"config.required\"\n    />\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConStringComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-string',
                    templateUrl: './d-con-string.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConStringComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DConStringConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.String;
    }
    configChange(config) { }
}
DConStringConfigComponent.KEY = 'd-con-string-config';
DConStringConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConStringConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConStringConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConStringConfigComponent, selector: "app-d-con-string-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n<!-- \u6709\u6548\u503C -->\n<nz-form-item>\n  <nz-form-label [nzSpan]=\"6\">\u6709\u6548\u503C</nz-form-label>\n  <nz-form-control>\n    <app-tags-select name=\"effectiveSelect\" ngDefaultControl [dataType]=\"config.dataType\" [(ngModel)]=\"config.effective\"></app-tags-select>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: TagsSelectComponent, selector: "app-tags-select", inputs: ["dataType", "name", "value"], outputs: ["valueChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConStringConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-string-config',
                    templateUrl: './d-con-string-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConBooleanConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.Boolean;
    }
    configChange(config) {
        this.change(config.value);
    }
    change(val) {
        if (typeof val !== 'boolean') {
            if (val === 'true') {
                this.config.value = true;
            }
            else if (val === 'false') {
                this.config.value = false;
            }
            else {
                this.config.value = undefined;
            }
        }
        else {
            this.config.value = val;
        }
    }
}
DConBooleanConfigComponent.KEY = 'd-con-boolean-config';
DConBooleanConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConBooleanConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConBooleanConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConBooleanConfigComponent, selector: "app-d-con-boolean-config", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"config\">\n  <nz-form-item *ngIf=\"config\">\n    <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n    <nz-form-control>\n      <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [ngModel]=\"config.value\" (ngModelChange)=\"change($event)\" />\n    </nz-form-control>\n  </nz-form-item>\n\n  <nz-form-item>\n    <nz-form-label [nzSpan]=\"6\">\u5B57\u5178\u914D\u7F6E</nz-form-label>\n    <nz-form-control nzSpan=\"24\">\n      <nz-table nzSize=\"small\">\n        <ng-container *ngIf=\"data.dataSource.length\">\n          <tr *ngFor=\"let item of data.dataSource; let i = index\">\n            <td>\n              <input nz-input #nameInput=\"ngModel\" [name]=\"'label' + i\" type=\"text\" [(ngModel)]=\"item.label\" />\n            </td>\n            <td>\n              {{ item.value }}\n            </td>\n          </tr>\n        </ng-container>\n      </nz-table>\n    </nz-form-control>\n  </nz-form-item>\n</ng-container>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$4.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzPaginationPosition", "nzScroll", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange"], exportAs: ["nzTable"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$4.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { type: i2$4.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConBooleanConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-boolean-config',
                    templateUrl: './d-con-boolean-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConBooleanComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: true,
                    label: '是'
                },
                {
                    value: false,
                    label: '否'
                }
            ];
        }
    }
}
DConBooleanComponent.KEY = 'd-con-boolean';
DConBooleanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConBooleanComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConBooleanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConBooleanComponent, selector: "app-d-con-boolean", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConBooleanComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-radio-group [name]=\"config.name\" [(ngModel)]=\"config.value\" (ngModelChange)=\"onChange($event)\" [required]=\"config.required\">\n  <ng-container *ngFor=\"let item of config.dataSource\">\n    <label nz-radio [nzValue]=\"item.value\">{{ item.label }}</label>\n  </ng-container>\n</nz-radio-group>\n", components: [{ type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConBooleanComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-boolean',
                    templateUrl: './d-con-boolean.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConBooleanComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DConFixedConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.Fixed;
    }
    configChange(config) { }
}
DConFixedConfigComponent.KEY = 'd-con-fixed-config';
DConFixedConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConFixedConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConFixedConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConFixedConfigComponent, selector: "app-d-con-fixed-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input\n      nz-input\n      [name]=\"config.name\"\n      [placeholder]=\"config.placeholder\"\n      [(ngModel)]=\"config.value\"\n      [required]=\"config.required\"\n      (ngModelChange)=\"onChange($event)\"\n    />\n  </nz-form-control>\n</nz-form-item>\n\n<!-- \u56FA\u5B9A\u503C -->\n<nz-form-item>\n  <nz-form-label [nzSpan]=\"6\">\u56FA\u5B9A\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input name=\"fixedValue\" [(ngModel)]=\"config.fixedValue\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConFixedConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-fixed-config',
                    templateUrl: './d-con-fixed-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConFixedComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!config.effective) {
            config.effective = [];
        }
    }
}
DConFixedComponent.KEY = 'd-con-fixed';
DConFixedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConFixedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConFixedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConFixedComponent, selector: "app-d-con-fixed", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConFixedComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <input\n      nz-input\n      [name]=\"config.name\"\n      [placeholder]=\"config.placeholder\"\n      [(ngModel)]=\"config.value\"\n      (ngModelChange)=\"onChange($event)\"\n      [required]=\"config.required\"\n    />\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.fixedValue\">\n    <app-fixed-display [config]=\"config\"> </app-fixed-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: FixedDisplayComponent, selector: "app-fixed-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConFixedComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-fixed',
                    templateUrl: './d-con-fixed.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConFixedComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DConTimestampConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.dataType = DataPointDataType;
    }
    ngOnInit() {
        /** 数据类型设置 */
        this.config.dataType = this.dataType.Timestamp;
    }
    configChange(config) { }
}
DConTimestampConfigComponent.KEY = 'd-con-timestamp-config';
DConTimestampConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConTimestampConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConTimestampConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConTimestampConfigComponent, selector: "app-d-con-timestamp-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <d-date-picker\n      [nzShowTime]=\"true\"\n      nzFormat=\"yyyy-MM-dd HH:mm:ss\"\n      name=\"value\"\n      #nameInput=\"ngModel\"\n      [(ngModel)]=\"config.value\"\n    ></d-date-picker>\n  </nz-form-control>\n</nz-form-item>\n<!-- \u6709\u6548\u503C -->\n<nz-form-item>\n  <nz-form-label [nzSpan]=\"6\">\u6709\u6548\u503C</nz-form-label>\n  <nz-form-control>\n    <d-date-picker\n      [nzShowTime]=\"true\"\n      nzFormat=\"yyyy-MM-dd HH:mm:ss\"\n      name=\"effective\"\n      #effectiveInput=\"ngModel\"\n      [(ngModel)]=\"config.effective\"\n    ></d-date-picker>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: DatePickerComponent, selector: "d-date-picker", inputs: ["ngModel", "nzDisabledTime", "nzFormat", "nzRenderExtraFooter", "nzShowTime", "nzShowToday", "nzPlaceHolder"], outputs: ["nzOnOk", "ngModelChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConTimestampConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-timestamp-config',
                    templateUrl: './d-con-timestamp-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DConTimestampComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DConTimestampComponent.KEY = 'd-con-timestamp';
DConTimestampComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConTimestampComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DConTimestampComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DConTimestampComponent, selector: "app-d-con-timestamp", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DConTimestampComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <d-date-picker\n      [nzShowTime]=\"true\"\n      nzFormat=\"yyyy-MM-dd HH:mm:ss\"\n      name=\"value\"\n      #nameInput=\"ngModel\"\n      [(ngModel)]=\"config.value\"\n      [required]=\"config.required\"\n      style=\"width: 100%\"\n    ></d-date-picker>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.effective\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: DatePickerComponent, selector: "d-date-picker", inputs: ["ngModel", "nzDisabledTime", "nzFormat", "nzRenderExtraFooter", "nzShowTime", "nzShowToday", "nzPlaceHolder"], outputs: ["nzOnOk", "ngModelChange"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DConTimestampComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-con-timestamp',
                    templateUrl: './d-con-timestamp.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DConTimestampComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DTitleComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (typeof config.paddingLeft !== 'string') {
            config.paddingLeft = '10px';
        }
        if (typeof config.fontSize !== 'string') {
            config.fontSize = '18px';
        }
        if (typeof config.color !== 'string') {
            config.color = '#000000';
        }
        if (typeof config.weight !== 'number') {
            config.weight = '400';
        }
    }
}
DTitleComponent.KEY = 'd-title';
DTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DTitleComponent, selector: "app-d-title", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DTitleComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div class=\"d-title\" [ngStyle]=\"{ paddingLeft: config.paddingLeft, fontSize: config.fontSize, color: config.color, weight: config.weight }\">\n  {{ config.label }}\n</div>\n", styles: [""], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTitleComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-title',
                    templateUrl: './d-title.component.html',
                    styles: [``],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DTitleComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DTitleConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DTitleConfigComponent.KEY = 'd-title-config';
DTitleConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTitleConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DTitleConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DTitleConfigComponent, selector: "app-d-title-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u8DDD\u5DE6\u8FB9\u8FB9\u8DDD</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"paddingLeft\" type=\"text\" [(ngModel)]=\"config.paddingLeft\" />\n  </nz-form-control>\n</nz-form-item>\n\n<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u5B57\u4F53\u989C\u8272</nz-form-label>\n  <nz-form-control>\n    <!-- <color-sketch [color]=\"config.color\" (onChangeComplete)=\"changeComplete($event)\"></color-sketch> -->\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.color\" />\n  </nz-form-control>\n</nz-form-item>\n\n<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u5B57\u4F53\u5927\u5C0F</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.fontSize\" />\n  </nz-form-control>\n</nz-form-item>\n<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u7C97\u4F53</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.weight\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTitleConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-title-config',
                    templateUrl: './d-title-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DGroupsConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        // if (!Array.isArray(config.value)) {
        //   config.value = [];
        // }
    }
}
DGroupsConfigComponent.KEY = 'd-group-config';
DGroupsConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DGroupsConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DGroupsConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DGroupsConfigComponent, selector: "app-d-groups-config", usesInheritance: true, ngImport: i0, template: "" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DGroupsConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-groups-config',
                    templateUrl: './d-groups-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DGroupsComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    ngAfterViewInit() { }
    configChange(config) {
        if (!config.labelPosition) {
            config.labelPosition = 'top';
        }
    }
    selectComponentChange(value) { }
}
DGroupsComponent.KEY = 'd-group';
DGroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DGroupsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DGroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DGroupsComponent, selector: "app-d-groups", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DGroupsComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<!-- <div d-widget-form-render #widgetFormRender [(component)]=\"childrenComponent\" class=\"d-groups widget-form-container\"> </div> -->\n", styles: ["\n      .d-groups {\n        min-height: 100px;\n        background: #fff;\n        border: 1px dashed #ccc;\n        position: relative;\n        z-index: 1001;\n      }\n    "] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DGroupsComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-groups',
                    templateUrl: './d-groups.component.html',
                    styles: [
                        `
      .d-groups {
        min-height: 100px;
        background: #fff;
        border: 1px dashed #ccc;
        position: relative;
        z-index: 1001;
      }
    `
                    ],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DGroupsComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DImageComponent extends DynamicComponentBase {
    constructor() {
        super();
        this.fallback = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==';
    }
    configChange(config) {
        if (!config.width) {
            config.width = '200';
        }
        if (!config.height) {
            config.height = '200';
        }
    }
}
DImageComponent.KEY = 'd-image';
DImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DImageComponent, selector: "app-d-image", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DImageComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<img nz-image [width]=\"config.width\" [height]=\"config.height\" [nzSrc]=\"config.value\" [nzFallback]=\"fallback\" alt=\"\" />\n", directives: [{ type: i36.NzImageDirective, selector: "img[nz-image]", inputs: ["nzSrc", "nzSrcset", "nzDisablePreview", "nzFallback", "nzPlaceholder"], exportAs: ["nzImage"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DImageComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-image',
                    templateUrl: './d-image.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DImageComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DImageConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!config.width) {
            config.width = '200';
        }
        if (!config.height) {
            config.height = '200';
        }
    }
}
DImageConfigComponent.KEY = 'd-image-config';
DImageConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DImageConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DImageConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DImageConfigComponent, selector: "app-d-image-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u7F51\u5740</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n<nz-form-item>\n  <nz-form-label [nzSpan]=\"6\">\u56FE\u7247\u5BBD\u5EA6</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"width\" [(ngModel)]=\"config.width\" />\n  </nz-form-control>\n</nz-form-item>\n<nz-form-item>\n  <nz-form-label [nzSpan]=\"6\">\u56FE\u7247\u9AD8\u5EA6</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"height\" [(ngModel)]=\"config.height\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DImageConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-image-config',
                    templateUrl: './d-image-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DUeditorComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    ngOnDestroy() {
        if (this.editor) {
            this.editor.destroy();
        }
        this.editor = null;
    }
    ngAfterViewInit() {
        this.createEditor();
    }
    configChange(config) {
        this.createEditor();
    }
    createEditor() {
        setTimeout(() => {
            if (this.config.name && this.editerDom && !this.editor) {
                this.editor = new E(`#${this.config.name}`);
                this.editor.config.zIndex = 99;
                this.editor.config.focus = false;
                this.editor.create();
            }
        }, 0);
    }
}
DUeditorComponent.KEY = 'd-ueditor';
DUeditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUeditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DUeditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DUeditorComponent, selector: "app-d-ueditor", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DUeditorComponent),
            multi: true
        }
    ], viewQueries: [{ propertyName: "editerDom", first: true, predicate: ["editerDom"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- \u52A0\u8F7D\u7F16\u8F91\u5668\u7684\u5BB9\u5668 -->\n<div [id]=\"config.name\" #editerDom> </div>\n", styles: [""] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUeditorComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-ueditor',
                    templateUrl: './d-ueditor.component.html',
                    styles: [``],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DUeditorComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { editerDom: [{
                type: ViewChild,
                args: ['editerDom']
            }] } });

class DUeditorConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DUeditorConfigComponent.KEY = 'd-ueditor-config';
DUeditorConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUeditorConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DUeditorConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DUeditorConfigComponent, selector: "app-d-ueditor-config", usesInheritance: true, ngImport: i0, template: "" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUeditorConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-ueditor-config',
                    templateUrl: './d-ueditor-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DTextComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    ngAfterViewInit() {
        setTimeout(() => {
            this.config.labelWidth = 0;
        }, 0);
    }
    configChange(config) {
        if (config && !config.value) {
            this.config.value = '示例文字';
        }
    }
}
DTextComponent.KEY = 'd-text';
DTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DTextComponent, selector: "app-d-text", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DTextComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div>\n  {{ config.value }}\n</div>\n" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-text',
                    templateUrl: './d-text.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DTextComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DTextConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DTextConfigComponent.KEY = 'd-text-config';
DTextConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DTextConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DTextConfigComponent, selector: "app-d-text-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <input nz-input #nameInput=\"ngModel\" name=\"value\" type=\"text\" [(ngModel)]=\"config.value\" />\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DTextConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-text-config',
                    templateUrl: './d-text-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DUploadfileComponent extends DynamicComponentBase {
    constructor(msg) {
        super();
        this.msg = msg;
    }
    configChange(config) { }
    handleChange(info) {
        if (info.file.status !== 'uploading') {
            console.log(info.file, info.fileList);
        }
        if (info.file.status === 'done') {
            this.msg.success(`${info.file.name} file uploaded successfully`);
        }
        else if (info.file.status === 'error') {
            this.msg.error(`${info.file.name} file upload failed.`);
        }
    }
}
DUploadfileComponent.KEY = 'd-uploadfile';
DUploadfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUploadfileComponent, deps: [{ token: i1$3.NzMessageService }], target: i0.ɵɵFactoryTarget.Component });
DUploadfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DUploadfileComponent, selector: "app-d-uploadfile", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DUploadfileComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-upload\n  nzAction=\"https://www.mocky.io/v2/5cc8019d300000980a055e76\"\n  [nzHeaders]=\"{ authorization: 'authorization-text' }\"\n  (nzChange)=\"handleChange($event)\"\n>\n  <button nz-button>\n    <i nz-icon nzType=\"upload\"></i>\n    \u70B9\u51FB\u4E0A\u4F20\n  </button>\n</nz-upload>\n", components: [{ type: i39.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzDirectory", "nzOpenFileDialogOnClick", "nzFilter", "nzFileList", "nzDisabled", "nzListType", "nzMultiple", "nzName", "nzShowButton", "nzWithCredentials", "nzIconRender", "nzFileListRender", "nzShowUploadList", "nzFileType", "nzAccept", "nzAction", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzHeaders", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i25.NzIconDirective, selector: "[nz-icon]", inputs: ["nzRotate", "nzSpin", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUploadfileComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-uploadfile',
                    templateUrl: './d-uploadfile.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DUploadfileComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i1$3.NzMessageService }]; } });

class DUploadfileConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DUploadfileConfigComponent.KEY = 'd-uploadfile-config';
DUploadfileConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUploadfileConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DUploadfileConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DUploadfileConfigComponent, selector: "app-d-uploadfile-config", usesInheritance: true, ngImport: i0, template: "" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DUploadfileConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-uploadfile-config',
                    templateUrl: './d-uploadfile-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DSplitlineComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    ngAfterViewInit() {
        setTimeout(() => {
            this.config.labelWidth = 0;
        }, 0);
    }
    configChange(config) { }
}
DSplitlineComponent.KEY = 'd-splitline';
DSplitlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSplitlineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DSplitlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DSplitlineComponent, selector: "app-d-splitline", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DSplitlineComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div class=\"splitline\" style=\"border-bottom: 1px solid #000\"></div>\n" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSplitlineComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-splitline',
                    templateUrl: './d-splitline.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DSplitlineComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DSplitlineConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DSplitlineConfigComponent.KEY = 'd-splitline-config';
DSplitlineConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSplitlineConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DSplitlineConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DSplitlineConfigComponent, selector: "app-d-splitline-config", usesInheritance: true, ngImport: i0, template: "" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSplitlineConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-splitline-config',
                    templateUrl: './d-splitline-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DSliderConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DSliderConfigComponent.KEY = 'd-slider-config';
DSliderConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSliderConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DSliderConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DSliderConfigComponent, selector: "app-d-slider-config", usesInheritance: true, ngImport: i0, template: "<nz-form-item *ngIf=\"config\">\n  <nz-form-label [nzSpan]=\"6\">\u9ED8\u8BA4\u503C</nz-form-label>\n  <nz-form-control>\n    <nz-input-number\n      #nameInput=\"ngModel\"\n      name=\"value\"\n      type=\"number\"\n      [nzMin]=\"0\"\n      [nzMax]=\"1000000000\"\n      [(ngModel)]=\"config.value\"\n      style=\"width: 100%\"\n    ></nz-input-number>\n  </nz-form-control>\n</nz-form-item>\n", components: [{ type: i1.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i1.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzRequired", "nzNoColon", "nzTooltipIcon", "nzFor", "nzTooltipTitle"], exportAs: ["nzFormLabel"] }, { type: i1.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus", "nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra"], exportAs: ["nzFormControl"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSliderConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-slider-config',
                    templateUrl: './d-slider-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DSliderComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (typeof config.value === 'number') {
            config.value = 0;
        }
    }
}
DSliderComponent.KEY = 'd-slider';
DSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DSliderComponent, selector: "app-d-slider", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DSliderComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-slider [(ngModel)]=\"config.value\" [nzDisabled]=\"config.disabled\"></nz-slider>\n", components: [{ type: i37.NzSliderComponent, selector: "nz-slider", inputs: ["nzDisabled", "nzDots", "nzIncluded", "nzRange", "nzVertical", "nzReverse", "nzMarks", "nzMax", "nzMin", "nzStep", "nzTooltipVisible", "nzTooltipPlacement", "nzDefaultValue", "nzTipFormatter"], outputs: ["nzOnAfterChange"], exportAs: ["nzSlider"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DSliderComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-slider',
                    templateUrl: './d-slider.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DSliderComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DRateConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DRateConfigComponent.KEY = 'd-rate-config';
DRateConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRateConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DRateConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DRateConfigComponent, selector: "app-d-rate-config", usesInheritance: true, ngImport: i0, template: "" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRateConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-rate-config',
                    templateUrl: './d-rate-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DRateComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (typeof config.value !== 'number') {
            config.value = 3;
        }
    }
}
DRateComponent.KEY = 'd-rate';
DRateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DRateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DRateComponent, selector: "app-d-rate", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DRateComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-rate [ngModel]=\"config.value\" nzAllowHalf [nzDisabled]=\"config.disabled\"></nz-rate>\n", components: [{ type: i38.NzRateComponent, selector: "nz-rate", inputs: ["nzAllowClear", "nzAllowHalf", "nzDisabled", "nzAutoFocus", "nzCount", "nzTooltips", "nzCharacter"], outputs: ["nzOnBlur", "nzOnFocus", "nzOnHoverChange", "nzOnKeyDown"], exportAs: ["nzRate"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DRateComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-rate',
                    templateUrl: './d-rate.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DRateComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class DColorpickerConfigComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) { }
}
DColorpickerConfigComponent.KEY = 'd-colorpicker-config';
DColorpickerConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DColorpickerConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DColorpickerConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DColorpickerConfigComponent, selector: "app-d-colorpicker-config", usesInheritance: true, ngImport: i0, template: "" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DColorpickerConfigComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-colorpicker-config',
                    templateUrl: './d-colorpicker-config.component.html',
                    styles: []
                }]
        }], ctorParameters: function () { return []; } });

class DColorpickerComponent extends DynamicComponentBase {
    constructor() {
        super();
    }
    configChange(config) {
        if (!config.value) {
            config.value = '#000';
        }
    }
}
DColorpickerComponent.KEY = 'd-colorpicker';
DColorpickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DColorpickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
DColorpickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DColorpickerComponent, selector: "app-d-colorpicker", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => DColorpickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div\n  [(colorPicker)]=\"config.value\"\n  [style.background]=\"config.value\"\n  [style.width]=\"'40px'\"\n  [style.height]=\"'40px'\"\n  [style.border]=\"'1px solid '\"\n></div>\n", directives: [{ type: i1$4.ColorPickerDirective, selector: "[colorPicker]", inputs: ["cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpPresetLabel", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "colorPicker", "cpPresetColors"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DColorpickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-d-colorpicker',
                    templateUrl: './d-colorpicker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => DColorpickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; } });

class WidgetFormControlsModule {
    constructor(registryService) {
        // 控件注册
        registryService.setDefault(DStringComponent);
        registryService.register(DStringComponent.KEY, DStringComponent);
        registryService.register(DTextareaComponent.KEY, DTextareaComponent);
        registryService.register(DNumberComponent.KEY, DNumberComponent);
        registryService.register(DRadioComponent.KEY, DRadioComponent);
        registryService.register(DCheckboxComponent.KEY, DCheckboxComponent);
        registryService.register(DSelectComponent.KEY, DSelectComponent);
        registryService.register(DDateComponent.KEY, DDateComponent);
        registryService.register(DDateRangeComponent.KEY, DDateRangeComponent);
        registryService.register(DTitleComponent.KEY, DTitleComponent);
        registryService.register(DGroupsComponent.KEY, DGroupsComponent);
        registryService.register(DConStringComponent.KEY, DConStringComponent);
        registryService.register(DConNumberDecimalComponent.KEY, DConNumberDecimalComponent);
        registryService.register(DConNumberFloatComponent.KEY, DConNumberFloatComponent);
        registryService.register(DConNumberIntegerComponent.KEY, DConNumberIntegerComponent);
        registryService.register(DConFixedComponent.KEY, DConFixedComponent);
        registryService.register(DConBooleanComponent.KEY, DConBooleanComponent);
        registryService.register(DConTimestampComponent.KEY, DConTimestampComponent);
        registryService.register(DImageComponent.KEY, DImageComponent);
        // 控件配置器
        registryService.register(DStringConfigComponent.KEY, DStringConfigComponent);
        registryService.register(DTextareaConfigComponent.KEY, DTextareaConfigComponent);
        registryService.register(DNumberConfigComponent.KEY, DNumberConfigComponent);
        registryService.register(DRadioConfigComponent.KEY, DRadioConfigComponent);
        registryService.register(DCheckboxConfigComponent.KEY, DCheckboxConfigComponent);
        registryService.register(DSelectConfigComponent.KEY, DSelectConfigComponent);
        registryService.register(DDateConfigComponent.KEY, DDateConfigComponent);
        registryService.register(DDateRangeConfigComponent.KEY, DDateRangeConfigComponent);
        registryService.register(DTitleConfigComponent.KEY, DTitleConfigComponent);
        registryService.register(DConStringConfigComponent.KEY, DConStringConfigComponent);
        registryService.register(DConNumberDecimalConfigComponent.KEY, DConNumberDecimalConfigComponent);
        registryService.register(DConNumberFloatConfigComponent.KEY, DConNumberFloatConfigComponent);
        registryService.register(DConNumberIntegerConfigComponent.KEY, DConNumberIntegerConfigComponent);
        registryService.register(DConFixedConfigComponent.KEY, DConFixedConfigComponent);
        registryService.register(DConBooleanConfigComponent.KEY, DConBooleanConfigComponent);
        registryService.register(DConTimestampConfigComponent.KEY, DConTimestampConfigComponent);
        registryService.register(DGroupsConfigComponent.KEY, DGroupsConfigComponent);
        registryService.register(DImageConfigComponent.KEY, DImageConfigComponent);
        registryService.register(DUeditorComponent.KEY, DUeditorComponent);
        registryService.register(DUeditorConfigComponent.KEY, DUeditorConfigComponent);
        registryService.register(DTextComponent.KEY, DTextComponent);
        registryService.register(DTextConfigComponent.KEY, DTextConfigComponent);
        registryService.register(DUploadfileComponent.KEY, DUploadfileComponent);
        registryService.register(DUploadfileConfigComponent.KEY, DUploadfileConfigComponent);
        registryService.register(DSplitlineComponent.KEY, DSplitlineComponent);
        registryService.register(DSplitlineConfigComponent.KEY, DSplitlineConfigComponent);
        registryService.register(DSliderComponent.KEY, DSliderComponent);
        registryService.register(DSliderConfigComponent.KEY, DSliderConfigComponent);
        registryService.register(DRateComponent.KEY, DRateComponent);
        registryService.register(DRateConfigComponent.KEY, DRateConfigComponent);
        registryService.register(DColorpickerComponent.KEY, DColorpickerComponent);
        registryService.register(DColorpickerConfigComponent.KEY, DColorpickerConfigComponent);
    }
}
WidgetFormControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetFormControlsModule, deps: [{ token: DynamicComponentRegistryService }], target: i0.ɵɵFactoryTarget.NgModule });
WidgetFormControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetFormControlsModule, declarations: [DStringComponent,
        DTextareaComponent,
        DNumberComponent,
        DRadioComponent,
        DCheckboxComponent,
        DSelectComponent,
        DDateComponent,
        DDateRangeComponent,
        DStringConfigComponent,
        DTextareaConfigComponent,
        DRadioConfigComponent,
        DCheckboxConfigComponent,
        DNumberConfigComponent,
        DImageComponent,
        DDateConfigComponent,
        DDateRangeConfigComponent,
        DSelectConfigComponent,
        DTitleComponent,
        DGroupsComponent,
        DConStringComponent,
        DConNumberDecimalComponent,
        DConNumberFloatComponent,
        DConNumberIntegerComponent,
        DConFixedComponent,
        DConBooleanComponent,
        DConStringConfigComponent,
        DConNumberDecimalConfigComponent,
        DConNumberFloatConfigComponent,
        DConNumberIntegerConfigComponent,
        DConFixedConfigComponent,
        DConBooleanConfigComponent,
        DConTimestampComponent,
        DConTimestampConfigComponent,
        DImageConfigComponent,
        DTitleConfigComponent,
        DGroupsConfigComponent,
        DUeditorComponent,
        DUeditorConfigComponent,
        DTextComponent,
        DTextConfigComponent,
        DUploadfileComponent,
        DUploadfileConfigComponent,
        DSplitlineComponent,
        DSplitlineConfigComponent,
        DSliderComponent,
        DSliderConfigComponent,
        DRateComponent,
        DRateConfigComponent,
        DColorpickerComponent,
        DColorpickerConfigComponent,
        GDatePipe$1,
        GDateRangePipe$1], imports: [CommonModule,
        FormsModule, i2$3.PageHeaderModule, i3$3.STModule, i4$1.SEModule, i5.SVModule, i6.ResultModule, i1.NzFormModule, i3$2.NzGridModule, i3$1.NzButtonModule, i4.NzInputModule, i2$1.NzInputNumberModule, i12.NzAlertModule, i13.NzProgressModule, i2$2.NzSelectModule, i15.NzAvatarModule, i16.NzCardModule, i17.NzDropDownModule, i18.NzPopconfirmModule, i2$4.NzTableModule, i20.NzPopoverModule, i21.NzDrawerModule, i22.NzModalModule, i23.NzTabsModule, i24.NzToolTipModule, i25.NzIconModule, i4$2.NzCheckboxModule, i27.NzSpinModule, i28.NzCollapseModule, i29.NzSwitchModule, i3$4.NzRadioModule, i1$1.NzLayoutModule, i32.NzEmptyModule, i1$2.NzDatePickerModule, i34.NzTagModule, i35.NzTimePickerModule, i36.NzImageModule, i37.NzSliderModule, i38.NzRateModule, i39.NzUploadModule, DynamicComponentModule,
        DSharedModule,
        ColorPickerModule] });
WidgetFormControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetFormControlsModule, imports: [[
            CommonModule,
            FormsModule,
            ...SHARED_DELON_MODULES,
            ...SHARED_ZORRO_MODULES,
            DynamicComponentModule,
            DSharedModule,
            ColorPickerModule
        ]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetFormControlsModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule,
                        FormsModule,
                        ...SHARED_DELON_MODULES,
                        ...SHARED_ZORRO_MODULES,
                        DynamicComponentModule,
                        DSharedModule,
                        ColorPickerModule
                    ],
                    declarations: [
                        DStringComponent,
                        DTextareaComponent,
                        DNumberComponent,
                        DRadioComponent,
                        DCheckboxComponent,
                        DSelectComponent,
                        DDateComponent,
                        DDateRangeComponent,
                        DStringConfigComponent,
                        DTextareaConfigComponent,
                        DRadioConfigComponent,
                        DCheckboxConfigComponent,
                        DNumberConfigComponent,
                        DImageComponent,
                        DDateConfigComponent,
                        DDateRangeConfigComponent,
                        DSelectConfigComponent,
                        DTitleComponent,
                        DGroupsComponent,
                        DConStringComponent,
                        DConNumberDecimalComponent,
                        DConNumberFloatComponent,
                        DConNumberIntegerComponent,
                        DConFixedComponent,
                        DConBooleanComponent,
                        DConStringConfigComponent,
                        DConNumberDecimalConfigComponent,
                        DConNumberFloatConfigComponent,
                        DConNumberIntegerConfigComponent,
                        DConFixedConfigComponent,
                        DConBooleanConfigComponent,
                        DConTimestampComponent,
                        DConTimestampConfigComponent,
                        DImageConfigComponent,
                        DTitleConfigComponent,
                        DGroupsConfigComponent,
                        DUeditorComponent,
                        DUeditorConfigComponent,
                        DTextComponent,
                        DTextConfigComponent,
                        DUploadfileComponent,
                        DUploadfileConfigComponent,
                        DSplitlineComponent,
                        DSplitlineConfigComponent,
                        DSliderComponent,
                        DSliderConfigComponent,
                        DRateComponent,
                        DRateConfigComponent,
                        DColorpickerComponent,
                        DColorpickerConfigComponent,
                        GDatePipe$1,
                        GDateRangePipe$1
                    ],
                    exports: []
                }]
        }], ctorParameters: function () { return [{ type: DynamicComponentRegistryService }]; } });

class RWidgetControlComponent {
    constructor() { }
    ngOnInit() { }
}
RWidgetControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
RWidgetControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RWidgetControlComponent, selector: "r-widget-control", inputs: { control: "control" }, ngImport: i0, template: "<div>\n  <ng-content> </ng-content>\n\n  <div style=\"color: red\" *ngIf=\"control && (!!control.dirty || !!control.touched) && control.hasError('required')\">\u5FC5\u586B\u6821\u9A8C.</div>\n</div>\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], viewProviders: [
        {
            provide: ControlContainer,
            useExisting: NgForm
        }
    ] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RWidgetControlComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'r-widget-control',
                    templateUrl: './r-widget-control.component.html',
                    styles: [],
                    viewProviders: [
                        {
                            provide: ControlContainer,
                            useExisting: NgForm
                        }
                    ]
                }]
        }], ctorParameters: function () { return []; }, propDecorators: { control: [{
                type: Input
            }] } });

class RStringComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RStringComponent.KEY = 'r-d-string';
RStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RStringComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RStringComponent, selector: "app-r-string", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RStringComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <input\n    nz-input\n    [name]=\"config.name\"\n    [placeholder]=\"config.placeholder\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    [attr.id]=\"config.name\"\n    [(ngModel)]=\"config.value\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n  />\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }], directives: [{ type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RStringComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-string',
                    templateUrl: './r-string.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RStringComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RTextareaComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (typeof config.autosize !== 'string' && typeof config.autosize !== 'boolean') {
            config.autoszie = true;
        }
    }
}
RTextareaComponent.KEY = 'r-d-textarea';
RTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RTextareaComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RTextareaComponent, selector: "app-r-textarea", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RTextareaComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<textarea\n  nz-input\n  [name]=\"config.name\"\n  [placeholder]=\"config.placeholder\"\n  [(ngModel)]=\"config.value\"\n  (ngModelChange)=\"onChange($event)\"\n  [nzAutosize]=\"config.autosize\"\n  [required]=\"config.required\"\n  [disabled]=\"config.disabled\"\n  style=\"height: 107px; min-height: 107px\"\n></textarea>\n", directives: [{ type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RTextareaComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-textarea',
                    templateUrl: './r-textarea.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RTextareaComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RNumberComponent extends RenderComponentBase {
    // @HostBinding('style.float') float = 'left';
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        // if (typeof config.min !== 'number') {
        //   config.min = 0;
        // }
        // if (typeof config.max !== 'number') {
        //   config.max = 100;
        // }
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
    }
}
RNumberComponent.KEY = 'r-d-number';
RNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RNumberComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RNumberComponent, selector: "app-r-number", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RNumberComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-input-number\n    [name]=\"config.name\"\n    [nzPlaceHolder]=\"config.placeholder\"\n    [(ngModel)]=\"config.value\"\n    (ngModelChange)=\"onChange($event)\"\n    [nzMin]=\"config.min\"\n    [nzMax]=\"config.max\"\n    [nzStep]=\"config.step\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n    style=\"width: 100%\"\n  ></nz-input-number>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RNumberComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-number',
                    templateUrl: './r-number.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RNumberComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RRadioComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: '1',
                    label: '选项1'
                },
                {
                    value: '2',
                    label: '选项2'
                },
                {
                    value: '3',
                    label: '选项3'
                }
            ];
        }
    }
}
RRadioComponent.KEY = 'r-d-radio';
RRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RRadioComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RRadioComponent, selector: "app-r-radio", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RRadioComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-radio-group\n    [name]=\"config.name\"\n    [(ngModel)]=\"config.value\"\n    (ngModelChange)=\"onChange($event)\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n  >\n    <ng-container *ngFor=\"let item of config.dataSource\">\n      <label nz-radio [nzValue]=\"item.value\">{{ item.label }}</label>\n    </ng-container>\n  </nz-radio-group>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RRadioComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-radio',
                    templateUrl: './r-radio.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RRadioComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RCheckboxComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: '1',
                    label: '选项1'
                },
                {
                    value: '2',
                    label: '选项2'
                },
                {
                    value: '3',
                    label: '选项3'
                }
            ];
        }
        if (Array.isArray(config.dataSource) && config.value) {
            config.dataSource.map(data => {
                let valueArr = config.value.split(',');
                if (valueArr.includes(data.value)) {
                    data.checked = true;
                }
            });
        }
    }
}
RCheckboxComponent.KEY = 'r-d-checkbox';
RCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RCheckboxComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RCheckboxComponent, selector: "app-r-checkbox", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RCheckboxComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-checkbox-group\n    [name]=\"config.name\"\n    [(ngModel)]=\"config.dataSource\"\n    (ngModelChange)=\"onChange($event)\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n  >\n  </nz-checkbox-group>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i4$2.NzCheckboxGroupComponent, selector: "nz-checkbox-group", inputs: ["nzDisabled"], exportAs: ["nzCheckboxGroup"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RCheckboxComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-checkbox',
                    templateUrl: './r-checkbox.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RCheckboxComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RSelectComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (typeof config.showSearch !== 'boolean') {
            config.showSearch = true;
        }
        if (typeof config.allowClear !== 'boolean') {
            config.allowClear = true;
        }
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: '1',
                    label: '选项1'
                },
                {
                    value: '2',
                    label: '选项2'
                },
                {
                    value: '3',
                    label: '选项3'
                }
            ];
        }
    }
}
RSelectComponent.KEY = 'r-d-select';
RSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RSelectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RSelectComponent, selector: "app-r-select", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RSelectComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-select\n    [name]=\"config.name\"\n    [nzShowSearch]=\"config.showSearch\"\n    [nzAllowClear]=\"config.allowClear\"\n    [nzPlaceHolder]=\"config.placeholder\"\n    [(ngModel)]=\"config.value\"\n    (ngModelChange)=\"onChange($event)\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n  >\n    <ng-container *ngFor=\"let item of config.dataSource\">\n      <nz-option [nzLabel]=\"item.label\" [nzValue]=\"item.value\"></nz-option>\n    </ng-container>\n  </nz-select>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i2$2.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { type: i2$2.NzOptionComponent, selector: "nz-option", inputs: ["nzLabel", "nzValue", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RSelectComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-select',
                    templateUrl: './r-select.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RSelectComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

// 名字改了  类名改了  后面的BaseId 和Id也根据Rdo来改
class GDatePipe {
    transform(value, args) {
        if (value) {
            var timestamp = Date.parse(value);
            return moment(timestamp).format();
        }
    }
}
GDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
GDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDatePipe, name: "datePipe" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDatePipe, decorators: [{
            type: Pipe,
            args: [{
                    name: 'datePipe'
                }]
        }] });

class RDateComponent extends RenderComponentBase {
    // @HostBinding('style.float') float = 'left';
    constructor(injector) {
        super(injector);
        this.dateFormat = 'yyyy-MM-dd';
    }
    configChange(config) {
        if (typeof config.allowClear !== 'boolean') {
            config.allowClear = true;
        }
        // config.value = '2021-12-12';
        // if (config.value) {
        //   config.value = new Date();
        //   console.log(config.value, ' config.value');
        // }
    }
}
RDateComponent.KEY = 'r-d-date';
RDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RDateComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RDateComponent, selector: "app-r-date", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RDateComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-date-picker\n    [name]=\"config.name\"\n    [nzPlaceHolder]=\"config.placeholder\"\n    [nzAllowClear]=\"config.allowClear\"\n    [ngModel]=\"config.value | datePipe\"\n    (ngModelChange)=\"onChange($event)\"\n    [nzFormat]=\"dateFormat\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n    style=\"width: 100%\"\n  ></nz-date-picker>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "datePipe": GDatePipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RDateComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-date',
                    templateUrl: './r-date.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RDateComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

// 名字改了  类名改了  后面的BaseId 和Id也根据Rdo来改
class GDateRangePipe {
    transform(value, args) {
        let start, end;
        if (value) {
            let valueArr = value.split(',');
            if (valueArr && valueArr[0]) {
                var timestamp = Date.parse(valueArr[0]);
                start = moment(timestamp).format();
            }
            if (valueArr && valueArr[1]) {
                var timestamp = Date.parse(valueArr[1]);
                end = moment(timestamp).format();
            }
            return [start, end];
        }
    }
}
GDateRangePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDateRangePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
GDateRangePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDateRangePipe, name: "dateRangePipe" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GDateRangePipe, decorators: [{
            type: Pipe,
            args: [{
                    name: 'dateRangePipe'
                }]
        }] });

class RDateRangeComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
        this.dateFormat = 'yyyy-MM-dd';
    }
    configChange(config) {
        if (typeof config.allowClear !== 'boolean') {
            config.allowClear = true;
        }
        // config.value = '2020-12-12,2020-12-20';
        // if (config.value && config.value.length) {
        //   let arr = config.value.split(',');
        //   config.value = arr;
        // }
        // if (config.placeholder && config.placeholder.length) {
        //   let arr = config.placeholder.split(',');
        //   config.placeholder = arr;
        // }
    }
}
RDateRangeComponent.KEY = 'r-d-date-range';
RDateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RDateRangeComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RDateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RDateRangeComponent, selector: "app-r-date-range", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RDateRangeComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-range-picker\n    [name]=\"config.name\"\n    [nzPlaceHolder]=\"config.placeholder\"\n    [nzAllowClear]=\"config.allowClear\"\n    [ngModel]=\"config.value | dateRangePipe\"\n    (ngModelChange)=\"onChange($event)\"\n    [nzFormat]=\"dateFormat\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n    style=\"width: 100%\"\n  ></nz-range-picker>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i1$2.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1$2.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "dateRangePipe": GDateRangePipe } });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RDateRangeComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-date-range',
                    templateUrl: './r-date-range.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RDateRangeComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConNumberDecimalComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
        // @HostBinding('style.float') float = 'left';
        this.ruleType = ValidationRuleType;
    }
    configChange(config) {
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
        if (!config.effective) {
            config.effective = [];
        }
    }
}
RConNumberDecimalComponent.KEY = 'r-d-con-number-decimal';
RConNumberDecimalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConNumberDecimalComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConNumberDecimalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConNumberDecimalComponent, selector: "app-r-con-number-decimal", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConNumberDecimalComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <r-widget-control [control]=\"firstnameControl\">\n      <nz-input-number\n        [name]=\"config.name\"\n        [nzPlaceHolder]=\"config.placeholder\"\n        [(ngModel)]=\"config.value\"\n        (ngModelChange)=\"onChange($event)\"\n        [nzPrecision]=\"config.precision\"\n        nzPrecisionMode=\"cut\"\n        [nzMin]=\"config.min\"\n        [nzMax]=\"config.max\"\n        [nzStep]=\"config.step\"\n        style=\"width: 100%\"\n        ngDefaultControl\n        #firstnameControl=\"ngModel\"\n        [required]=\"config.required\"\n        [disabled]=\"config.disabled\"\n      ></nz-input-number>\n    </r-widget-control>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Limit\">\n    <app-limit-display [config]=\"config\"> </app-limit-display>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Effective && config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: LimitDisplayComponent, selector: "app-limit-display", inputs: ["config"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConNumberDecimalComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-number-decimal',
                    templateUrl: './r-con-number-decimal.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConNumberDecimalComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConNumberFloatComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
        // @HostBinding('style.float') float = 'left';
        this.ruleType = ValidationRuleType;
    }
    configChange(config) {
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
        if (!config.effective) {
            config.effective = [];
        }
    }
}
RConNumberFloatComponent.KEY = 'r-d-con-number-float';
RConNumberFloatComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConNumberFloatComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConNumberFloatComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConNumberFloatComponent, selector: "app-r-con-number-float", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConNumberFloatComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <r-widget-control [control]=\"firstnameControl\">\n      <nz-input-number\n        [name]=\"config.name\"\n        [nzPlaceHolder]=\"config.placeholder\"\n        [(ngModel)]=\"config.value\"\n        (ngModelChange)=\"onChange($event)\"\n        [nzPrecision]=\"config.precision\"\n        nzPrecisionMode=\"cut\"\n        [nzMin]=\"config.min\"\n        [nzMax]=\"config.max\"\n        [nzStep]=\"config.step\"\n        style=\"width: 100%\"\n        ngDefaultControl\n        #firstnameControl=\"ngModel\"\n        [required]=\"config.required\"\n        [disabled]=\"config.disabled\"\n      ></nz-input-number>\n    </r-widget-control>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Limit\">\n    <app-limit-display [config]=\"config\"> </app-limit-display>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Effective && config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: LimitDisplayComponent, selector: "app-limit-display", inputs: ["config"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConNumberFloatComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-number-float',
                    templateUrl: './r-con-number-float.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConNumberFloatComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConNumberIntegerComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
        this.ruleType = ValidationRuleType;
    }
    configChange(config) {
        if (typeof config.step !== 'number') {
            config.step = 1;
        }
        if (!config.effective) {
            config.effective = [];
        }
    }
}
RConNumberIntegerComponent.KEY = 'r-d-con-number-integer';
RConNumberIntegerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConNumberIntegerComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConNumberIntegerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConNumberIntegerComponent, selector: "app-r-con-number-integer", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConNumberIntegerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <r-widget-control [control]=\"firstnameControl\">\n      <nz-input-number\n        [name]=\"config.name\"\n        [nzPlaceHolder]=\"config.placeholder\"\n        [(ngModel)]=\"config.value\"\n        (ngModelChange)=\"onChange($event)\"\n        [nzPrecision]=\"0\"\n        nzPrecisionMode=\"cut\"\n        [nzMin]=\"config.min\"\n        [nzMax]=\"config.max\"\n        [nzStep]=\"config.step\"\n        style=\"width: 100%\"\n        ngDefaultControl\n        #firstnameControl=\"ngModel\"\n        [required]=\"config.required\"\n        [disabled]=\"config.disabled\"\n      ></nz-input-number>\n    </r-widget-control>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Limit\">\n    <app-limit-display [config]=\"config\"> </app-limit-display>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.ruleType === ruleType.Effective && config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i2$1.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecisionMode", "nzPlaceHolder", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzAutoFocus", "nzFormatter", "nzPrecision"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }, { type: LimitDisplayComponent, selector: "app-limit-display", inputs: ["config"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConNumberIntegerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-number-integer',
                    templateUrl: './r-con-number-integer.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConNumberIntegerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConStringComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (!config.effective) {
            config.effective = [];
        }
    }
}
RConStringComponent.KEY = 'r-d-con-string';
RConStringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConStringComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConStringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConStringComponent, selector: "app-r-con-string", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConStringComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <r-widget-control [control]=\"firstnameControl\">\n      <input\n        nz-input\n        [name]=\"config.name\"\n        [placeholder]=\"config.placeholder\"\n        ngDefaultControl\n        #firstnameControl=\"ngModel\"\n        [(ngModel)]=\"config.value\"\n        (ngModelChange)=\"onChange($event)\"\n        [required]=\"config.required\"\n        [disabled]=\"config.disabled\"\n      />\n    </r-widget-control>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.effective.length\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConStringComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-string',
                    templateUrl: './r-con-string.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConStringComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConBooleanComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (!Array.isArray(config.dataSource)) {
            config.dataSource = [
                {
                    value: true,
                    label: '是'
                },
                {
                    value: false,
                    label: '否'
                }
            ];
        }
    }
}
RConBooleanComponent.KEY = 'r-d-con-boolean';
RConBooleanComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConBooleanComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConBooleanComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConBooleanComponent, selector: "app-r-con-boolean", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConBooleanComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control [control]=\"firstnameControl\">\n  <nz-radio-group\n    [name]=\"config.name\"\n    [(ngModel)]=\"config.value\"\n    (ngModelChange)=\"onChange($event)\"\n    [required]=\"config.required\"\n    [disabled]=\"config.disabled\"\n    ngDefaultControl\n    #firstnameControl=\"ngModel\"\n  >\n    <ng-container *ngFor=\"let item of config.dataSource\">\n      <label nz-radio [nzValue]=\"item.value\">{{ item.label }}</label>\n    </ng-container>\n  </nz-radio-group>\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: i3$4.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i3$4.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConBooleanComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-boolean',
                    templateUrl: './r-con-boolean.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConBooleanComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConFixedComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (!config.effective) {
            config.effective = [];
        }
    }
}
RConFixedComponent.KEY = 'r-d-con-fixed';
RConFixedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConFixedComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConFixedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConFixedComponent, selector: "app-r-con-fixed", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConFixedComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <r-widget-control [control]=\"firstnameControl\">\n      <input\n        nz-input\n        [name]=\"config.name\"\n        [placeholder]=\"config.placeholder\"\n        [(ngModel)]=\"config.value\"\n        (ngModelChange)=\"onChange($event)\"\n        [required]=\"config.required\"\n        [disabled]=\"config.disabled\"\n        ngDefaultControl\n        #firstnameControl=\"ngModel\"\n      />\n    </r-widget-control>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.fixedValue\">\n    <app-fixed-display [config]=\"config\"> </app-fixed-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: FixedDisplayComponent, selector: "app-fixed-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i4.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConFixedComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-fixed',
                    templateUrl: './r-con-fixed.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConFixedComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RConTimestampComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RConTimestampComponent.KEY = 'r-d-con-timestamp';
RConTimestampComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConTimestampComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RConTimestampComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RConTimestampComponent, selector: "app-r-con-timestamp", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RConTimestampComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-row nzGutter=\"24\">\n  <nz-col [nzSm]=\"24\">\n    <r-widget-control [control]=\"firstnameControl\">\n      <d-date-picker\n        [nzShowTime]=\"true\"\n        nzFormat=\"yyyy-MM-dd HH:mm:ss\"\n        [name]=\"config.name\"\n        ngDefaultControl\n        #firstnameControl=\"ngModel\"\n        [(ngModel)]=\"config.value\"\n        [required]=\"config.required\"\n        [disabled]=\"config.disabled\"\n        style=\"width: 100%\"\n      ></d-date-picker>\n    </r-widget-control>\n  </nz-col>\n  <nz-col [nzSm]=\"24\" *ngIf=\"config.effective\">\n    <app-effective-display [config]=\"config\"> </app-effective-display>\n  </nz-col>\n</nz-row>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }, { type: DatePickerComponent, selector: "d-date-picker", inputs: ["ngModel", "nzDisabledTime", "nzFormat", "nzRenderExtraFooter", "nzShowTime", "nzShowToday", "nzPlaceHolder"], outputs: ["nzOnOk", "ngModelChange"] }, { type: EffectiveDisplayComponent, selector: "app-effective-display", inputs: ["config"] }], directives: [{ type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RConTimestampComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-con-timestamp',
                    templateUrl: './r-con-timestamp.component.html',
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RConTimestampComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RTitleComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (typeof config.paddingLeft !== 'string') {
            config.paddingLeft = '10px';
        }
        if (typeof config.fontSize !== 'string') {
            config.fontSize = '18px';
        }
        if (typeof config.color !== 'string') {
            config.color = '#000000';
        }
        if (typeof config.weight !== 'number') {
            config.weight = '400';
        }
    }
}
RTitleComponent.KEY = 'r-d-title';
RTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RTitleComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RTitleComponent, selector: "app-r-title", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RTitleComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div class=\"d-title\" [ngStyle]=\"{ paddingLeft: config.paddingLeft, fontSize: config.fontSize, color: config.color, weight: config.weight }\">\n  {{ config.label }}\n</div>\n", styles: [""], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RTitleComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-title',
                    templateUrl: './r-title.component.html',
                    styles: [``],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RTitleComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RGroupsComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) {
        if (!config.labelPosition) {
            config.labelPosition = 'top';
        }
    }
    selectComponentChange(value) { }
}
RGroupsComponent.KEY = 'r-d-group';
RGroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RGroupsComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RGroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RGroupsComponent, selector: "app-r-groups", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RGroupsComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<!-- <div d-widget-form-render #widgetFormRender [(component)]=\"childrenComponent\" class=\"d-groups widget-form-container\"> </div> -->\n", styles: ["\n      .d-groups {\n        min-height: 100px;\n        background: #fff;\n        border: 1px dashed #ccc;\n        position: relative;\n        z-index: 1001;\n      }\n    "] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RGroupsComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-groups',
                    templateUrl: './r-groups.component.html',
                    styles: [
                        `
      .d-groups {
        min-height: 100px;
        background: #fff;
        border: 1px dashed #ccc;
        position: relative;
        z-index: 1001;
      }
    `
                    ],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RGroupsComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RImageComponent extends RenderComponentBase {
    // @HostBinding('style.float') float = 'left';
    constructor(injector) {
        super(injector);
        this.fallback = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMIAAADDCAYAAADQvc6UAAABRWlDQ1BJQ0MgUHJvZmlsZQAAKJFjYGASSSwoyGFhYGDIzSspCnJ3UoiIjFJgf8LAwSDCIMogwMCcmFxc4BgQ4ANUwgCjUcG3awyMIPqyLsis7PPOq3QdDFcvjV3jOD1boQVTPQrgSkktTgbSf4A4LbmgqISBgTEFyFYuLykAsTuAbJEioKOA7DkgdjqEvQHEToKwj4DVhAQ5A9k3gGyB5IxEoBmML4BsnSQk8XQkNtReEOBxcfXxUQg1Mjc0dyHgXNJBSWpFCYh2zi+oLMpMzyhRcASGUqqCZ16yno6CkYGRAQMDKMwhqj/fAIcloxgHQqxAjIHBEugw5sUIsSQpBobtQPdLciLEVJYzMPBHMDBsayhILEqEO4DxG0txmrERhM29nYGBddr//5/DGRjYNRkY/l7////39v///y4Dmn+LgeHANwDrkl1AuO+pmgAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAwqADAAQAAAABAAAAwwAAAAD9b/HnAAAHlklEQVR4Ae3dP3PTWBSGcbGzM6GCKqlIBRV0dHRJFarQ0eUT8LH4BnRU0NHR0UEFVdIlFRV7TzRksomPY8uykTk/zewQfKw/9znv4yvJynLv4uLiV2dBoDiBf4qP3/ARuCRABEFAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghggQAQZQKAnYEaQBAQaASKIAQJEkAEEegJmBElAoBEgghgg0Aj8i0JO4OzsrPv69Wv+hi2qPHr0qNvf39+iI97soRIh4f3z58/u7du3SXX7Xt7Z2enevHmzfQe+oSN2apSAPj09TSrb+XKI/f379+08+A0cNRE2ANkupk+ACNPvkSPcAAEibACyXUyfABGm3yNHuAECRNgAZLuYPgEirKlHu7u7XdyytGwHAd8jjNyng4OD7vnz51dbPT8/7z58+NB9+/bt6jU/TI+AGWHEnrx48eJ/EsSmHzx40L18+fLyzxF3ZVMjEyDCiEDjMYZZS5wiPXnyZFbJaxMhQIQRGzHvWR7XCyOCXsOmiDAi1HmPMMQjDpbpEiDCiL358eNHurW/5SnWdIBbXiDCiA38/Pnzrce2YyZ4//59F3ePLNMl4PbpiL2J0L979+7yDtHDhw8vtzzvdGnEXdvUigSIsCLAWavHp/+qM0BcXMd/q25n1vF57TYBp0a3mUzilePj4+7k5KSLb6gt6ydAhPUzXnoPR0dHl79WGTNCfBnn1uvSCJdegQhLI1vvCk+fPu2ePXt2tZOYEV6/fn31dz+shwAR1sP1cqvLntbEN9MxA9xcYjsxS1jWR4AIa2Ibzx0tc44fYX/16lV6NDFLXH+YL32jwiACRBiEbf5KcXoTIsQSpzXx4N28Ja4BQoK7rgXiydbHjx/P25TaQAJEGAguWy0+2Q8PD6/Ki4R8EVl+bzBOnZY95fq9rj9zAkTI2SxdidBHqG9+skdw43borCXO/ZcJdraPWdv22uIEiLA4q7nvvCug8WTqzQveOH26fodo7g6uFe/a17W3+nFBAkRYENRdb1vkkz1CH9cPsVy/jrhr27PqMYvENYNlHAIesRiBYwRy0V+8iXP8+/fvX11Mr7L7ECueb/r48eMqm7FuI2BGWDEG8cm+7G3NEOfmdcTQw4h9/55lhm7DekRYKQPZF2ArbXTAyu4kDYB2YxUzwg0gi/41ztHnfQG26HbGel/crVrm7tNY+/1btkOEAZ2M05r4FB7r9GbAIdxaZYrHdOsgJ/wCEQY0J74TmOKnbxxT9n3FgGGWWsVdowHtjt9Nnvf7yQM2aZU/TIAIAxrw6dOnAWtZZcoEnBpNuTuObWMEiLAx1HY0ZQJEmHJ3HNvGCBBhY6jtaMoEiJB0Z29vL6ls58vxPcO8/zfrdo5qvKO+d3Fx8Wu8zf1dW4p/cPzLly/dtv9Ts/EbcvGAHhHyfBIhZ6NSiIBTo0LNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiECRCjUbEPNCRAhZ6NSiAARCjXbUHMCRMjZqBQiQIRCzTbUnAARcjYqhQgQoVCzDTUnQIScjUohAkQo1GxDzQkQIWejUogAEQo121BzAkTI2agUIkCEQs021JwAEXI2KoUIEKFQsw01J0CEnI1KIQJEKNRsQ80JECFno1KIABEKNdtQcwJEyNmoFCJAhELNNtScABFyNiqFCBChULMNNSdAhJyNSiEC/wGgKKC4YMA4TAAAAABJRU5ErkJggg==';
    }
    configChange(config) {
        if (!config.width) {
            config.width = '200';
        }
        if (!config.height) {
            config.height = '200';
        }
    }
}
RImageComponent.KEY = 'r-d-image';
RImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RImageComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RImageComponent, selector: "app-r-image", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RImageComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<r-widget-control>\n  <img\n    nz-image\n    [name]=\"config.name\"\n    [width]=\"config.width\"\n    [height]=\"config.height\"\n    [nzSrc]=\"config.value\"\n    [nzFallback]=\"fallback\"\n    alt=\"\"\n  />\n</r-widget-control>\n", components: [{ type: RWidgetControlComponent, selector: "r-widget-control", inputs: ["control"] }], directives: [{ type: i36.NzImageDirective, selector: "img[nz-image]", inputs: ["nzSrc", "nzSrcset", "nzDisablePreview", "nzFallback", "nzPlaceholder"], exportAs: ["nzImage"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RImageComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-image',
                    templateUrl: './r-image.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RImageComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RColorpickerComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RColorpickerComponent.KEY = 'r-d-colorpicker';
RColorpickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RColorpickerComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RColorpickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RColorpickerComponent, selector: "app-r-colorpicker", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RColorpickerComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div\n  ngDefaultControl\n  #firstnameControl=\"ngModel\"\n  [name]=\"config.name\"\n  [(ngModel)]=\"config.value\"\n  [(colorPicker)]=\"config.value\"\n  [style.background]=\"config.value\"\n  [style.width]=\"'40px'\"\n  [style.height]=\"'40px'\"\n  [style.border]=\"'1px solid '\"\n></div>\n", directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1$4.ColorPickerDirective, selector: "[colorPicker]", inputs: ["cpWidth", "cpHeight", "cpToggle", "cpDisabled", "cpIgnoredElements", "cpFallbackColor", "cpColorMode", "cpCmykEnabled", "cpOutputFormat", "cpAlphaChannel", "cpDisableInput", "cpDialogDisplay", "cpSaveClickOutside", "cpCloseClickOutside", "cpUseRootViewContainer", "cpPosition", "cpPositionOffset", "cpPositionRelativeToArrow", "cpOKButton", "cpOKButtonText", "cpOKButtonClass", "cpCancelButton", "cpCancelButtonText", "cpCancelButtonClass", "cpPresetLabel", "cpPresetColorsClass", "cpMaxPresetColorsLength", "cpPresetEmptyMessage", "cpPresetEmptyMessageClass", "cpAddColorButton", "cpAddColorButtonText", "cpAddColorButtonClass", "cpRemoveColorButtonClass", "colorPicker", "cpPresetColors"], outputs: ["cpInputChange", "cpToggleChange", "cpSliderChange", "cpSliderDragEnd", "cpSliderDragStart", "colorPickerOpen", "colorPickerClose", "colorPickerCancel", "colorPickerSelect", "colorPickerChange", "cpCmykColorChange", "cpPresetColorsChange"], exportAs: ["ngxColorPicker"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RColorpickerComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-colorpicker',
                    templateUrl: './r-colorpicker.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RColorpickerComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RRateComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RRateComponent.KEY = 'r-d-rate';
RRateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RRateComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RRateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RRateComponent, selector: "app-r-rate", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RRateComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-rate\n  ngDefaultControl\n  #firstnameControl=\"ngModel\"\n  [name]=\"config.name\"\n  [(ngModel)]=\"config.value\"\n  nzAllowHalf\n  [nzDisabled]=\"config.disabled\"\n></nz-rate>\n", components: [{ type: i38.NzRateComponent, selector: "nz-rate", inputs: ["nzAllowClear", "nzAllowHalf", "nzDisabled", "nzAutoFocus", "nzCount", "nzTooltips", "nzCharacter"], outputs: ["nzOnBlur", "nzOnFocus", "nzOnHoverChange", "nzOnKeyDown"], exportAs: ["nzRate"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RRateComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-rate',
                    templateUrl: './r-rate.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RRateComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RSliderComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RSliderComponent.KEY = 'r-d-slider';
RSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RSliderComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RSliderComponent, selector: "app-r-slider", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RSliderComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-slider\n  ngDefaultControl\n  #firstnameControl=\"ngModel\"\n  [name]=\"config.name\"\n  [(ngModel)]=\"config.value\"\n  [nzDisabled]=\"config.disabled\"\n></nz-slider>\n", components: [{ type: i37.NzSliderComponent, selector: "nz-slider", inputs: ["nzDisabled", "nzDots", "nzIncluded", "nzRange", "nzVertical", "nzReverse", "nzMarks", "nzMax", "nzMin", "nzStep", "nzTooltipVisible", "nzTooltipPlacement", "nzDefaultValue", "nzTipFormatter"], outputs: ["nzOnAfterChange"], exportAs: ["nzSlider"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RSliderComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-slider',
                    templateUrl: './r-slider.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RSliderComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RSplitlineComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RSplitlineComponent.KEY = 'r-d-splitline';
RSplitlineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RSplitlineComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RSplitlineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RSplitlineComponent, selector: "app-r-splitline", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RSplitlineComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div class=\"splitline\" style=\"border-bottom: 1px solid #000\"></div>\n" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RSplitlineComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-splitline',
                    templateUrl: './r-splitline.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RSplitlineComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RTextComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RTextComponent.KEY = 'r-d-text';
RTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RTextComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RTextComponent, selector: "app-r-text", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RTextComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<div>\n  {{ config.value }}\n</div>\n" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RTextComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-text',
                    templateUrl: './r-text.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RTextComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class GUeditorComponent {
    constructor(injector, viewRef, elementRef) {
        this.valueChange = new EventEmitter();
    }
    ngOnInit() { }
    ngOnDestroy() {
        if (this.editor) {
            this.editor.destroy();
        }
        this.editor = null;
    }
    ngAfterViewInit() {
        const div = document.createElement('div');
        div.id = `r_${this.guid2()}`;
        this.ueditor.nativeElement.append(div);
        const self = this;
        this.editor = new E(`#${div.id}`);
        this.editor.config.zIndex = 99;
        this.editor.config.focus = false;
        // 配置 onchange 回调函数
        this.editor.config.onchange = function (newHtml) {
            self.valueChange.emit(newHtml);
        };
        this.editor.create();
    }
    writeValue(obj) {
        if (!obj) {
            this.editor.txt.html('');
        }
        else {
            this.editor.txt.html(obj);
        }
    }
    registerOnChange(fn) {
        this.valueChange.emit = fn;
    }
    registerOnTouched(fn) { }
    setDisabledState(isDisabled) { }
    guid2() {
        function S4() {
            return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
        }
        return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();
    }
}
GUeditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GUeditorComponent, deps: [{ token: i0.Injector }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
GUeditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: GUeditorComponent, selector: "app-g-ueditor", inputs: { value: "value" }, outputs: { valueChange: "valueChange" }, providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => GUeditorComponent),
            multi: true
        }
    ], viewQueries: [{ propertyName: "ueditor", first: true, predicate: ["ueditor"], descendants: true }], ngImport: i0, template: "<div #ueditor></div>\n" });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: GUeditorComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-g-ueditor',
                    templateUrl: './g-ueditor.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => GUeditorComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }]; }, propDecorators: { value: [{
                type: Input
            }], valueChange: [{
                type: Output
            }], ueditor: [{
                type: ViewChild,
                args: ['ueditor']
            }] } });

class RUeditorComponent extends RenderComponentBase {
    constructor(injector) {
        super(injector);
    }
    configChange(config) { }
}
RUeditorComponent.KEY = 'r-d-ueditor';
RUeditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RUeditorComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
RUeditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RUeditorComponent, selector: "app-r-ueditor", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RUeditorComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<!-- \u52A0\u8F7D\u7F16\u8F91\u5668\u7684\u5BB9\u5668 -->\n<!-- <div [id]=\"'r_' + config.name\" #editerDom> </div> -->\n<!-- <input type=\"hidden\" ngDefaultControl #firstnameControl=\"ngModel\" [name]=\"config.name\" [(ngModel)]=\"config.value\" /> -->\n<app-g-ueditor ngDefaultControl #firstnameControl=\"ngModel\" [name]=\"config.name\" [(ngModel)]=\"config.value\"></app-g-ueditor>\n", components: [{ type: GUeditorComponent, selector: "app-g-ueditor", inputs: ["value"], outputs: ["valueChange"] }], directives: [{ type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RUeditorComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-ueditor',
                    templateUrl: './r-ueditor.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RUeditorComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }]; } });

class RUploadfileComponent extends RenderComponentBase {
    constructor(injector, msg) {
        super(injector);
        this.msg = msg;
    }
    configChange(config) { }
    handleChange(info) {
        if (info.file.status !== 'uploading') {
            console.log(info.file, info.fileList);
        }
        if (info.file.status === 'done') {
            this.msg.success(`${info.file.name} file uploaded successfully`);
        }
        else if (info.file.status === 'error') {
            this.msg.error(`${info.file.name} file upload failed.`);
        }
    }
}
RUploadfileComponent.KEY = 'r-d-uploadfile';
RUploadfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RUploadfileComponent, deps: [{ token: i0.Injector }, { token: i1$3.NzMessageService }], target: i0.ɵɵFactoryTarget.Component });
RUploadfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RUploadfileComponent, selector: "app-r-uploadfile", providers: [
        {
            provide: NG_VALUE_ACCESSOR,
            useExisting: forwardRef(() => RUploadfileComponent),
            multi: true
        }
    ], usesInheritance: true, ngImport: i0, template: "<nz-upload\n  nzAction=\"https://www.mocky.io/v2/5cc8019d300000980a055e76\"\n  [nzHeaders]=\"{ authorization: 'authorization-text' }\"\n  (nzChange)=\"handleChange($event)\"\n>\n  <button nz-button>\n    <i nz-icon nzType=\"upload\"></i>\n    \u70B9\u51FB\u4E0A\u4F20\n  </button>\n</nz-upload>\n", components: [{ type: i39.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzDirectory", "nzOpenFileDialogOnClick", "nzFilter", "nzFileList", "nzDisabled", "nzListType", "nzMultiple", "nzName", "nzShowButton", "nzWithCredentials", "nzIconRender", "nzFileListRender", "nzShowUploadList", "nzFileType", "nzAccept", "nzAction", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzHeaders", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }, { type: i3$1.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i9.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { type: i25.NzIconDirective, selector: "[nz-icon]", inputs: ["nzRotate", "nzSpin", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RUploadfileComponent, decorators: [{
            type: Component,
            args: [{
                    selector: 'app-r-uploadfile',
                    templateUrl: './r-uploadfile.component.html',
                    styles: [],
                    providers: [
                        {
                            provide: NG_VALUE_ACCESSOR,
                            useExisting: forwardRef(() => RUploadfileComponent),
                            multi: true
                        }
                    ]
                }]
        }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$3.NzMessageService }]; } });

const COMPONENTS$2 = [
    GUeditorComponent,
    RWidgetControlComponent,
    RStringComponent,
    RTextareaComponent,
    RNumberComponent,
    RRadioComponent,
    RCheckboxComponent,
    RSelectComponent,
    RDateComponent,
    RDateRangeComponent,
    RTitleComponent,
    RGroupsComponent,
    RConStringComponent,
    RConNumberDecimalComponent,
    RConNumberFloatComponent,
    RConNumberIntegerComponent,
    RConFixedComponent,
    RConBooleanComponent,
    RConTimestampComponent,
    RImageComponent,
    RSliderComponent,
    RRateComponent,
    RUeditorComponent,
    RTextComponent,
    RUploadfileComponent,
    RSplitlineComponent,
    RColorpickerComponent
];
class WidgetRenderModule {
    constructor(registryService) {
        // 控件注册
        registryService.setDefault(RStringComponent);
        registryService.register(RStringComponent.KEY, RStringComponent);
        registryService.register(RTextareaComponent.KEY, RTextareaComponent);
        registryService.register(RNumberComponent.KEY, RNumberComponent);
        registryService.register(RRadioComponent.KEY, RRadioComponent);
        registryService.register(RCheckboxComponent.KEY, RCheckboxComponent);
        registryService.register(RSelectComponent.KEY, RSelectComponent);
        registryService.register(RDateComponent.KEY, RDateComponent);
        registryService.register(RDateRangeComponent.KEY, RDateRangeComponent);
        registryService.register(RTitleComponent.KEY, RTitleComponent);
        registryService.register(RGroupsComponent.KEY, RGroupsComponent);
        registryService.register(RConStringComponent.KEY, RConStringComponent);
        registryService.register(RConNumberDecimalComponent.KEY, RConNumberDecimalComponent);
        registryService.register(RConNumberFloatComponent.KEY, RConNumberFloatComponent);
        registryService.register(RConNumberIntegerComponent.KEY, RConNumberIntegerComponent);
        registryService.register(RConFixedComponent.KEY, RConFixedComponent);
        registryService.register(RConBooleanComponent.KEY, RConBooleanComponent);
        registryService.register(RConTimestampComponent.KEY, RConTimestampComponent);
        registryService.register(RImageComponent.KEY, RImageComponent);
        registryService.register(RSliderComponent.KEY, RSliderComponent);
        registryService.register(RRateComponent.KEY, RRateComponent);
        registryService.register(RUeditorComponent.KEY, RUeditorComponent);
        registryService.register(RTextComponent.KEY, RTextComponent);
        registryService.register(RUploadfileComponent.KEY, RUploadfileComponent);
        registryService.register(RSplitlineComponent.KEY, RSplitlineComponent);
        registryService.register(RColorpickerComponent.KEY, RColorpickerComponent);
    }
}
WidgetRenderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetRenderModule, deps: [{ token: DynamicComponentRegistryService }], target: i0.ɵɵFactoryTarget.NgModule });
WidgetRenderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetRenderModule, declarations: [GUeditorComponent,
        RWidgetControlComponent,
        RStringComponent,
        RTextareaComponent,
        RNumberComponent,
        RRadioComponent,
        RCheckboxComponent,
        RSelectComponent,
        RDateComponent,
        RDateRangeComponent,
        RTitleComponent,
        RGroupsComponent,
        RConStringComponent,
        RConNumberDecimalComponent,
        RConNumberFloatComponent,
        RConNumberIntegerComponent,
        RConFixedComponent,
        RConBooleanComponent,
        RConTimestampComponent,
        RImageComponent,
        RSliderComponent,
        RRateComponent,
        RUeditorComponent,
        RTextComponent,
        RUploadfileComponent,
        RSplitlineComponent,
        RColorpickerComponent, GDatePipe, GDateRangePipe], imports: [CommonModule,
        FormsModule,
        ReactiveFormsModule, i2$3.PageHeaderModule, i3$3.STModule, i4$1.SEModule, i5.SVModule, i6.ResultModule, i1.NzFormModule, i3$2.NzGridModule, i3$1.NzButtonModule, i4.NzInputModule, i2$1.NzInputNumberModule, i12.NzAlertModule, i13.NzProgressModule, i2$2.NzSelectModule, i15.NzAvatarModule, i16.NzCardModule, i17.NzDropDownModule, i18.NzPopconfirmModule, i2$4.NzTableModule, i20.NzPopoverModule, i21.NzDrawerModule, i22.NzModalModule, i23.NzTabsModule, i24.NzToolTipModule, i25.NzIconModule, i4$2.NzCheckboxModule, i27.NzSpinModule, i28.NzCollapseModule, i29.NzSwitchModule, i3$4.NzRadioModule, i1$1.NzLayoutModule, i32.NzEmptyModule, i1$2.NzDatePickerModule, i34.NzTagModule, i35.NzTimePickerModule, i36.NzImageModule, i37.NzSliderModule, i38.NzRateModule, i39.NzUploadModule, DynamicComponentModule,
        ColorPickerModule,
        DSharedModule], exports: [GUeditorComponent,
        RWidgetControlComponent,
        RStringComponent,
        RTextareaComponent,
        RNumberComponent,
        RRadioComponent,
        RCheckboxComponent,
        RSelectComponent,
        RDateComponent,
        RDateRangeComponent,
        RTitleComponent,
        RGroupsComponent,
        RConStringComponent,
        RConNumberDecimalComponent,
        RConNumberFloatComponent,
        RConNumberIntegerComponent,
        RConFixedComponent,
        RConBooleanComponent,
        RConTimestampComponent,
        RImageComponent,
        RSliderComponent,
        RRateComponent,
        RUeditorComponent,
        RTextComponent,
        RUploadfileComponent,
        RSplitlineComponent,
        RColorpickerComponent, GDatePipe, GDateRangePipe] });
WidgetRenderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetRenderModule, imports: [[
            CommonModule,
            FormsModule,
            ReactiveFormsModule,
            ...SHARED_DELON_MODULES,
            ...SHARED_ZORRO_MODULES,
            DynamicComponentModule,
            ColorPickerModule,
            DSharedModule
        ]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: WidgetRenderModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule,
                        FormsModule,
                        ReactiveFormsModule,
                        ...SHARED_DELON_MODULES,
                        ...SHARED_ZORRO_MODULES,
                        DynamicComponentModule,
                        ColorPickerModule,
                        DSharedModule
                    ],
                    declarations: [...COMPONENTS$2, GDatePipe, GDateRangePipe],
                    exports: [...COMPONENTS$2, GDatePipe, GDateRangePipe]
                }]
        }], ctorParameters: function () { return [{ type: DynamicComponentRegistryService }]; } });

const COMPONENTS$1 = [
    RWidgetFormRenderComponent,
    RWidgetFormItemComponent,
    RWidgetFormComponent,
    RWidgetButtonComponent,
    RWidgetFormComponent
];
class FormRenderModule {
    constructor() { }
}
FormRenderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormRenderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
FormRenderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormRenderModule, declarations: [RWidgetFormRenderComponent,
        RWidgetFormItemComponent,
        RWidgetFormComponent,
        RWidgetButtonComponent,
        RWidgetFormComponent], imports: [CommonModule,
        FormsModule,
        ReactiveFormsModule,
        DndModule,
        DelonFormModule,
        DSharedModule,
        DynamicComponentModule,
        WidgetRenderModule, i2$3.PageHeaderModule, i3$3.STModule, i4$1.SEModule, i5.SVModule, i6.ResultModule, i1.NzFormModule, i3$2.NzGridModule, i3$1.NzButtonModule, i4.NzInputModule, i2$1.NzInputNumberModule, i12.NzAlertModule, i13.NzProgressModule, i2$2.NzSelectModule, i15.NzAvatarModule, i16.NzCardModule, i17.NzDropDownModule, i18.NzPopconfirmModule, i2$4.NzTableModule, i20.NzPopoverModule, i21.NzDrawerModule, i22.NzModalModule, i23.NzTabsModule, i24.NzToolTipModule, i25.NzIconModule, i4$2.NzCheckboxModule, i27.NzSpinModule, i28.NzCollapseModule, i29.NzSwitchModule, i3$4.NzRadioModule, i1$1.NzLayoutModule, i32.NzEmptyModule, i1$2.NzDatePickerModule, i34.NzTagModule, i35.NzTimePickerModule, i36.NzImageModule, i37.NzSliderModule, i38.NzRateModule, i39.NzUploadModule], exports: [RWidgetFormRenderComponent,
        RWidgetFormItemComponent,
        RWidgetFormComponent,
        RWidgetButtonComponent,
        RWidgetFormComponent] });
FormRenderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormRenderModule, imports: [[
            CommonModule,
            FormsModule,
            ReactiveFormsModule,
            DndModule,
            DelonFormModule,
            DSharedModule,
            DynamicComponentModule,
            WidgetRenderModule,
            ...SHARED_DELON_MODULES,
            ...SHARED_ZORRO_MODULES
        ]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormRenderModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule,
                        FormsModule,
                        ReactiveFormsModule,
                        DndModule,
                        DelonFormModule,
                        DSharedModule,
                        DynamicComponentModule,
                        WidgetRenderModule,
                        ...SHARED_DELON_MODULES,
                        ...SHARED_ZORRO_MODULES
                    ],
                    declarations: [...COMPONENTS$1],
                    exports: [...COMPONENTS$1]
                }]
        }], ctorParameters: function () { return []; } });

const COMPONENTS = [
    DWidgetFormRenderComponent,
    DWidgetFormItemComponent,
    FormDesignerComponent,
    FormConfigComponent,
    WidgetConfigComponent
];
class FormDesignerModule {
    constructor() { }
}
FormDesignerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormDesignerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
FormDesignerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormDesignerModule, declarations: [DWidgetFormRenderComponent,
        DWidgetFormItemComponent,
        FormDesignerComponent,
        FormConfigComponent,
        WidgetConfigComponent], imports: [CommonModule,
        FormsModule,
        DndModule,
        DelonFormModule,
        DSharedModule,
        WidgetFormControlsModule,
        FormRenderModule, DynamicComponentModule, i2$3.PageHeaderModule, i3$3.STModule, i4$1.SEModule, i5.SVModule, i6.ResultModule, i1.NzFormModule, i3$2.NzGridModule, i3$1.NzButtonModule, i4.NzInputModule, i2$1.NzInputNumberModule, i12.NzAlertModule, i13.NzProgressModule, i2$2.NzSelectModule, i15.NzAvatarModule, i16.NzCardModule, i17.NzDropDownModule, i18.NzPopconfirmModule, i2$4.NzTableModule, i20.NzPopoverModule, i21.NzDrawerModule, i22.NzModalModule, i23.NzTabsModule, i24.NzToolTipModule, i25.NzIconModule, i4$2.NzCheckboxModule, i27.NzSpinModule, i28.NzCollapseModule, i29.NzSwitchModule, i3$4.NzRadioModule, i1$1.NzLayoutModule, i32.NzEmptyModule, i1$2.NzDatePickerModule, i34.NzTagModule, i35.NzTimePickerModule, i36.NzImageModule, i37.NzSliderModule, i38.NzRateModule, i39.NzUploadModule], exports: [DWidgetFormRenderComponent,
        DWidgetFormItemComponent,
        FormDesignerComponent,
        FormConfigComponent,
        WidgetConfigComponent] });
FormDesignerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormDesignerModule, imports: [[
            CommonModule,
            FormsModule,
            DndModule,
            DelonFormModule,
            DSharedModule,
            WidgetFormControlsModule,
            FormRenderModule,
            // DynamicComponentModule,
            DynamicComponentModule.forRoot(),
            ...SHARED_DELON_MODULES,
            ...SHARED_ZORRO_MODULES
        ]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormDesignerModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [
                        CommonModule,
                        FormsModule,
                        DndModule,
                        DelonFormModule,
                        DSharedModule,
                        WidgetFormControlsModule,
                        FormRenderModule,
                        // DynamicComponentModule,
                        DynamicComponentModule.forRoot(),
                        ...SHARED_DELON_MODULES,
                        ...SHARED_ZORRO_MODULES
                    ],
                    declarations: [...COMPONENTS],
                    exports: [...COMPONENTS]
                }]
        }], ctorParameters: function () { return []; } });

// abp module
const ALL_MODULES = [CommonModule, FormDesignerModule, FormRenderModule, DSharedModule];
class L52AbpFormGeneratorModule {
}
L52AbpFormGeneratorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: L52AbpFormGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
L52AbpFormGeneratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: L52AbpFormGeneratorModule, imports: [CommonModule, FormDesignerModule, FormRenderModule, DSharedModule], exports: [CommonModule, FormDesignerModule, FormRenderModule, DSharedModule] });
L52AbpFormGeneratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: L52AbpFormGeneratorModule, providers: [], imports: [[...ALL_MODULES], CommonModule, FormDesignerModule, FormRenderModule, DSharedModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: L52AbpFormGeneratorModule, decorators: [{
            type: NgModule,
            args: [{
                    imports: [...ALL_MODULES],
                    declarations: [],
                    entryComponents: [],
                    exports: [...ALL_MODULES],
                    providers: []
                }]
        }] });

/**
 * Generated bundle index. Do not edit.
 */

export { CUSTOM_MIME_TYPE, DROP_EFFECTS, DSharedModule, DWidgetFormItemComponent, DWidgetFormRenderComponent, DataPointDataType, DatePickerBase, DatePickerComponent, DefaultDynamicComponentRegistryService, DndDragImageRefDirective, DndDraggableDirective, DndDropzoneDirective, DndHandleDirective, DndModule, DndPlaceholderRefDirective, DynamicComponentBase, DynamicComponentComponent, DynamicComponentFactoryService, DynamicComponentModule, DynamicComponentRComponent, DynamicComponentRegistryService, DynamicComponentTerminatorService, EffectiveDisplayComponent, FixedDisplayComponent, FormConfigComponent, FormDesignerComponent, FormDesignerModule, FormRenderModule, JSON_MIME_TYPE, L52AbpFormGeneratorModule, LimitDisplayComponent, MSIE_MIME_TYPE, MonthPickerComponent, RWidgetButtonComponent, RWidgetFormComponent, RWidgetFormItemComponent, RWidgetFormRenderComponent, RangePickerComponent, RenderComponentBase, SHARED_DELON_MODULES, SHARED_ZORRO_MODULES, TagsSelectComponent, TimePickerComponent, ValidationRuleType, WeekPickerComponent, WidgetConfigComponent, YearPickerComponent, calculateDragImageOffset, filterEffects, getDirectChildElement, getDropData, getWellKnownMimeType, mimeTypeIsCustom, setDragData, setDragImage, shouldPositionPlaceholderBeforeElement };
//# sourceMappingURL=yoyoboot-l-52abp-ng-form-generator.js.map